CN113821821A - 安全架构系统、安全架构系统的密码运算方法和计算设备 - Google Patents

安全架构系统、安全架构系统的密码运算方法和计算设备 Download PDF

Info

Publication number
CN113821821A
CN113821821A CN202111398355.7A CN202111398355A CN113821821A CN 113821821 A CN113821821 A CN 113821821A CN 202111398355 A CN202111398355 A CN 202111398355A CN 113821821 A CN113821821 A CN 113821821A
Authority
CN
China
Prior art keywords
subsystem
cryptographic engine
access
hardware
execution environment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111398355.7A
Other languages
English (en)
Other versions
CN113821821B (zh
Inventor
郭御风
马卓
冯彦朝
张明
朱青山
胡乔乔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Phytium Technology Co Ltd
Original Assignee
Phytium Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Phytium Technology Co Ltd filed Critical Phytium Technology Co Ltd
Priority to CN202111398355.7A priority Critical patent/CN113821821B/zh
Publication of CN113821821A publication Critical patent/CN113821821A/zh
Application granted granted Critical
Publication of CN113821821B publication Critical patent/CN113821821B/zh
Priority to US17/992,223 priority patent/US20230161885A1/en
Priority to EP22209120.9A priority patent/EP4187422A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本公开提供一种安全架构系统、安全架构系统的密码运算方法和计算设备。根据本公开实施例的安全架构系统包括:一个或多个子系统;硬件密码引擎,其中,一个或多个子系统中的一个或多个具有访问硬件密码引擎的访问权限;和控制器,配置成指示具有访问权限的子系统经由访问接口访问硬件密码引擎,以控制该硬件密码引擎进行密码运算。

Description

安全架构系统、安全架构系统的密码运算方法和计算设备
技术领域
本公开的一些实施例涉及处理器技术领域,更具体地涉及一种安全架构系统、安全架构系统的密码运算方法和计算设备。
背景技术
随着对安全性要求的不断增加,密码技术逐步应用到各种计算设备中。密码技术是保护信息安全的根基,已经成为信息系统比不可少的重要组成。在相关处理器中,一般采用普通运算指令以软件方式实现密码运算,但是这种方式的密码运算性能较低,无法满足很多应用场景的需求。此外,以软件方式实现的密码运算存在较高受到物理攻击、恶意访问等安全风险。
发明内容
本公开的一些实施例提供了一种安全架构系统、安全架构系统的密码运算方法和计算设备,用于基于安全架构系统的子系统与硬件密码引擎之间的访问接口来控制实现密码运算,提高密码运算的性能以及安全性。
根据本公开的一方面,提供了一种安全架构系统。具体的,该安全架构系统包括:一个或多个子系统;硬件密码引擎,其中,一个或多个子系统中的一个或多个具有访问硬件密码引擎的访问权限;和控制器,配置成指示具有访问权限的子系统经由访问接口访问硬件密码引擎,以控制硬件密码引擎进行密码运算。在根据本公开实施例的安全架构系统中,在各个子系统与硬件密码引擎之间,基于专用地访问接口来控制硬件密码引擎进行密码运算,从而进一步提高系统关于密码运算的安全性,降低重要信息泄露的风险。根据本公开的一些实施例,一个或多个子系统包括:第一执行环境子系统和安全元件子系统,其中,第一执行环境子系统不具有访问硬件密码引擎的访问权限,安全元件子系统具有访问硬件密码引擎的访问权限,并经由第一访问接口来访问硬件密码引擎。以这种方式,不具有访问权限的第一执行环境子系统不具有对于硬件密码引擎的访问接口,从而能够避免不具有访问权限的第一执行环境子系统由于访问硬件密码引擎造成资源泄露,保证与进行密码运算相关的数据的安全性。
根据本公开的一些实施例,第一执行环境子系统配置成:响应于控制器的指示向安全元件子系统发送密码运算请求,其中,密码运算请求指示用于进行密码运算的密钥信息和数据信息;安全元件子系统配置成:获得来自第一执行环境子系统的密码运算请求,将密钥信息以及数据信息经由第一访问接口传递至硬件密码引擎,以用于硬件密码引擎基于密钥信息对数据信息进行密码运算。以这种方式,具有访问硬件密码引擎权限的安全元件子系统能够经由第一访问接口来进行与硬件密码引擎之间的数据传输,由此通过安全元件子系统来将第一执行环境子系统的与密码运算请求相关的信息传递至密码引擎进行加解密运算,从而能够避免密钥信息的泄露。
根据本公开的一些实施例,安全架构系统还包括共享内存,安全元件子系统还配置成:经由第一访问接口获得硬件密码引擎进行密码运算的运算结果,并将运算结果存储于共享内存中;第一执行环境子系统还配置成:从共享内存获得硬件密码引擎进行密码运算的运算结果。以这种方式,第一执行环境子系统从共享内存中获得密码运算的运算结果,保证第一执行环境子系统与安全元件子系统之间的硬件隔离,保证安全元件子系统所管理的资源的安全性。
根据本公开的一些实施例,一个或多个子系统包括:第一执行环境子系统和安全元件子系统,其中,第一执行环境子系统具有访问硬件密码引擎访问权限,并经由第二访问接口来访问硬件密码引擎,安全元件子系统不具有访问硬件密码引擎的访问权限。以这种方式,通过设置专用的访问接口,具有访问权限的第一执行环境子系统能够直接访问硬件密码引擎,从而能够灵活地指示密码引擎执行相应的密码运算。
根据本公开的一些实施例,第一执行环境子系统配置成:响应于控制器的指示向安全元件子系统请求用于进行密码运算的密钥信息,并将密钥信息与数据信息经由第二访问接口传递至硬件密码引擎,以用于硬件密码引擎基于密钥信息对数据信息进行密码运算;以及经由第二访问接口获得硬件密码引擎进行密码运算的运算结果。以这种方式,第一执行环境子系统在需要进行密码运算的情况下,能够向安全元件子系统请求密钥信息,并将密钥信息与数据信息经由访问接口传递至密码引擎进行运算,通过访问接口的方式来实现进行密码运算的数据隔离,保证数据安全。
根据本公开的一些实施例,安全架构系统还包括共享内存,安全元件子系统配置成:对于用于进行密码运算的密钥信息的请求,响应于第一执行环境子系统具有使用密钥信息的访问权限,将密钥信息经由共享内存传递至第一执行环境子系统,其中,密钥信息包括基于由请求所指示的根密钥产生的派生密钥。以这种方式,第一执行环境子系统从共享内存中获得用于进行密码运算的密钥信息,并且还对密钥信息的访问权限进行验证,保证密钥信息访问的安全性,以及保证第一执行环境子系统与安全元件子系统之间的硬件隔离,保证安全元件子系统所存储的资源的安全性。
根据本公开的一些实施例,一个或多个子系统包括:第一执行环境子系统和安全元件子系统,其中,第一执行环境子系统具有访问硬件密码引擎访问权限,并经由第三访问接口来访问硬件密码引擎;安全元件子系统具有访问硬件密码引擎的访问权限,并经由第四访问接口来访问硬件密码引擎。以这种方式,具有访问权限的第一执行环境子系统和安全元件子系统通过各自的访问接口来实现对于硬件密码引擎的访问控制,能够实现子系统之间的数据隔离,保证密码运算的数据安全。
根据本公开的一些实施例,第一执行环境子系统配置成:响应于控制器的指示向安全元件子系统请求用于进行密码运算的密钥信息,将数据信息经由第三访问接口传递至硬件密码引擎,以用于硬件密码引擎基于密钥信息对数据信息进行密码运算。以这种方式,第一执行环境子系统在需要进行密码运算的情况下,能够向安全元件子系统请求密钥信息,并将数据信息经由访问接口传递至密码引擎进行运算,通过访问接口的方式来实现进行密码运算的数据隔离,保证数据安全。
根据本公开的一些实施例,安全元件子系统配置成:对于用于进行密码运算的密钥信息的请求,响应于第一执行环境子系统具有使用密钥信息的访问权限,将密钥信息经由第四访问接口传递至硬件密码引擎,以用于硬件密码引擎基于密钥信息对数据信息进行密码运算,其中,密钥信息包括基于由请求所指示的根密钥产生的派生密钥;以及第一执行环境子系统还配置成:经由第三访问接口获得硬件密码引擎进行密码运算的运算结果。以这种方式,第一执行环境子系统向安全元件子系统请求密钥信息,使得安全元件子系统对密钥信息的访问权限进行验证,保证密钥信息访问的安全性,此外,第一执行环境子系统能够经由特定于其的访问接口来获得运算结果,保证数据安全。
根据本公开的一些实施例,第一执行环境子系统包括普通执行环境子系统和可信执行环境子系统中的至少一种。
根据本公开的另一方面,还提供了一种用于安全架构系统的密码运算方法。具体的,安全架构系统包括一个或多个子系统,其中,一个或多个子系统中的一个或多个具有访问硬件密码引擎的访问权限,密码运算方法包括:通过控制器指示具有访问权限的子系统经由访问接口访问硬件密码引擎,以控制硬件密码引擎进行密码运算。在根据本公开实施例的密码运算方法中,在各个子系统与硬件密码引擎之间,基于专用地访问接口来控制硬件密码引擎进行密码运算,从而进一步提高系统关于密码运算的安全性,降低重要信息泄露的风险。
根据本公开的一些实施例,一个或多个子系统包括:第一执行环境子系统和安全元件子系统,其中,第一执行环境子系统不具有访问硬件密码引擎的访问权限,安全元件子系统具有访问硬件密码引擎的访问权限,并经由第一访问接口来访问硬件密码引擎,其中,控制硬件密码引擎进行密码运算包括:通过第一执行环境子系统响应于控制器的指示向安全元件子系统发送密码运算请求,其中,密码运算请求指示用于进行密码运算的密钥信息和数据信息;通过安全元件子系统获得来自第一执行环境子系统的密码运算请求,将密钥信息以及数据信息经由第一访问接口传递至硬件密码引擎,以用于硬件密码引擎基于密钥信息对数据信息进行密码运算。以这种方式,不具有访问权限的第一执行环境子系统不具有对于硬件密码引擎的访问接口,从而能够避免不具有访问权限的第一执行环境子系统由于访问硬件密码引擎造成资源泄露,保证与进行密码运算相关的数据的安全性。此外,具有访问硬件密码引擎权限的安全元件子系统能够经由第一访问接口来进行与硬件密码引擎之间的数据传输,由此通过安全元件子系统来将第一执行环境子系统的与密码运算请求相关的信息传递至密码引擎进行加解密运算,从而能够避免密钥信息的泄露。
根据本公开的一些实施例,密码运算方法还包括:通过安全元件子系统经由第一访问接口获得硬件密码引擎进行密码运算的运算结果,并将运算结果存储于共享内存中;以及通过第一执行环境子系统从共享内存获得硬件密码引擎进行密码运算的运算结果。以这种方式,第一执行环境子系统从共享内存中获得密码运算的运算结果,保证第一执行环境子系统与安全元件子系统之间的硬件隔离,保证安全元件子系统所管理的资源的安全性。
根据本公开的一些实施例,一个或多个子系统包括:第一执行环境子系统和安全元件子系统,其中,第一执行环境子系统具有访问硬件密码引擎的访问权限,并经由第二访问接口来访问硬件密码引擎,安全元件子系统不具有访问硬件密码引擎的访问权限,其中,控制硬件密码引擎进行密码运算包括:通过第一执行环境子系统响应于控制器的指示向安全元件子系统请求用于进行密码运算的密钥信息,并将密钥信息与数据信息经由第二访问接口传递至硬件密码引擎,以用于硬件密码引擎基于密钥信息对数据信息进行密码运算。根据本公开的一些实施例,密码运算方法还包括:通过第一执行环境子系统经由第二访问接口获得硬件密码引擎进行密码运算的运算结果。以这种方式,通过设置专用的访问接口,具有访问权限的第一执行环境子系统能够直接访问硬件密码引擎,从而能够灵活地指示密码引擎执行相应的密码运算。此外,第一执行环境子系统在需要进行密码运算的情况下,能够向安全元件子系统请求密钥信息,并将密钥信息与数据信息经由访问接口传递至密码引擎进行运算,通过访问接口的方式来实现进行密码运算的数据隔离,保证数据安全。
根据本公开的一些实施例,密码运算方法还包括:对于用于进行密码运算的密钥信息的请求,通过安全元件子系统响应于第一执行环境子系统具有使用密钥信息的访问权限,将密钥信息经由共享内存传递至第一执行环境子系统,其中,密钥信息包括基于由请求所指示的根密钥产生的派生密钥。以这种方式,第一执行环境子系统从共享内存中获得用于进行密码运算的密钥信息,并且还对密钥信息的访问权限进行验证,保证密钥信息访问的安全性,以及保证第一执行环境子系统与安全元件子系统之间的硬件隔离,保证安全元件子系统所存储的资源的安全性。
根据本公开的一些实施例,一个或多个子系统包括:第一执行环境子系统和安全元件子系统,其中,第一执行环境子系统具有访问硬件密码引擎访问权限,并经由第三访问接口来访问硬件密码引擎;安全元件子系统具有访问硬件密码引擎的访问权限,并经由第四访问接口来访问硬件密码引擎,其中,控制硬件密码引擎进行密码运算包括:通过第一执行环境子系统响应于控制器的指示向安全元件子系统请求用于进行密码运算的密钥信息,将数据信息经由第三访问接口传递至硬件密码引擎,以用于硬件密码引擎基于密钥信息对数据信息进行密码运算。以这种方式,具有访问权限的第一执行环境子系统和安全元件子系统通过各自的访问接口来实现对于硬件密码引擎的访问控制,能够实现子系统之间的数据隔离,保证密码运算的数据安全。此外,第一执行环境子系统在需要进行密码运算的情况下,能够向安全元件子系统请求密钥信息,并将数据信息经由访问接口传递至密码引擎进行运算,通过访问接口的方式来实现进行密码运算的数据隔离,保证数据安全。
根据本公开的一些实施例,密码运算方法还包括:对于用于进行密码运算的密钥信息的请求,通过安全元件子系统响应于第一执行环境子系统具有使用密钥信息的访问权限,将密钥信息经由第四访问接口传递至硬件密码引擎,以用于硬件密码引擎基于密钥信息对数据信息进行密码运算,其中,密钥信息包括基于由请求所指示的根密钥产生的派生密钥;以及通过第一执行环境子系统经由第三访问接口获得硬件密码引擎进行密码运算的运算结果。以这种方式,第一执行环境子系统向安全元件子系统请求密钥信息,使得安全元件子系统对密钥信息的访问权限进行验证,保证密钥信息访问的安全性,此外,第一执行环境子系统能够经由特定于其的访问接口来获得运算结果,保证数据安全。
根据本公开的一些实施例,第一执行环境子系统包括普通执行环境子系统和可信执行环境子系统中的至少一种。
根据本公开的又一方面,还提供了一种计算设备。根据本公开的一些实施例,该计算机设备包括如上所描述的安全架构系统。
根据本公开一些实施例的安全架构系统、安全架构系统的密码运算方法和计算设备,其中,安全架构系统中具有访问硬件密码引擎的访问权限的子系统通过访问接口来实现密码运算,提高密码运算的性能,保证密码运算过程中涉及的密钥信息、数据信息以及运算结果的安全性。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本公开一些实施例的安全架构系统的示意性框图;
图2示出了安全架构系统关于子系统的示意性框图;
图3A示出了应用根据本公开一些实施例的安全架构系统的终端设备的示意图;
图3B示出了应用根据本公开一些实施例的安全架构系统的系统示意图;
图4示出了根据本公开一些实施例的安全架构系统的示意性框图;
图5示出了根据本公开一些实施例的安全架构系统的另一示意性框图;
图6示出了根据本公开一些实施例的安全架构系统的又一示意性框图;
图7示出了根据本公开一些实施例的密码运算方法的示意性流程图;
图8示出了根据本公开一些实施例的密码运算方法的交互流程图;
图9示出了根据本公开一些实施例的计算设备的示意性框图;
图10示出了根据本公开一些实施例的电子设备的示意性框图;
图11示出了根据本公开一些实施例的示例性电子设备架构的示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
此外,如本公开和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的,例如,通过利用各种接口和线路进行连接以实现信息交互。
随着计算设备对安全需求的增加,越来越多的安全技术逐步应用到各种计算设备中,其中,密码技术成为安全架构系统的重要组成部分。密码学有多种用途,其是许多安全架构系统的关键部分。安全架构系统例如可以使用密码技术来阻止攻击者获得重要数据、伪造身份或者篡改文件。如果无法保证密码运算过程中所涉及的信息的安全性,将使设备的安全环境变得非常脆弱,容易由于软件攻击或物理攻击等因素而导致重要资源泄露,例如,与支付相关联的重要数据等。
本公开的一些实施例提供了一种安全架构系统,其中,不仅基于各个与安全级别相关的子系统来保证设备安全性,还设置硬件密码引擎,并且,在各个子系统与硬件密码引擎之间,基于专用地访问接口来控制密码引擎进行密码运算,从而进一步提高设备关于密码运算的安全性,降低重要信息泄露的风险。
图1示出了根据本公开一些实施例的安全架构系统的示意性框图。如图1所示,根据本公开实施例的安全架构系统100可以包括一个或多个子系统101、硬件密码引擎102以及控制器103。根据本公开一些实施例,一个或多个子系统101中的一个或多个具有访问硬件密码引擎102的访问权限,接着,能够经由控制器指示该具有访问权限的子系统经由访问接口来访问硬件密码引擎,以控制硬件密码引擎进行密码运算。
作为一种实现方式,根据本公开一些实施例的安全架构系统可以具有三类子系统,分别为普通执行环境(Rich Execution Environment,REE)子系统、可信执行环境(Trusted Execution Environment,TEE)子系统以及安全元件(Secure Element,SE)子系统。其中,REE中运行的应用可以称为客户端应用(Client Application,CA),其安全性较低,容易受到攻击。TEE中运行的应用可以称为可信应用(TEE Application,TA),其安全性高于REE,例如用于支持支付业务中校验支付环境等功能。SE中运行的应用可以称为安全元件应用(Applet),其安全性在这三类子系统中最高。通过这三类子系统之间的相互配合来保证系统安全。由于SE相较于REE和TEE的安全性最高,SE中一般存储有重要资源,诸如根密钥等信息。
根据本公开的一些实施例,能够基于访问接口来控制上述各个子系统对于安全架构系统的访问权限。作为示例,在REE不具有对于硬件密码引擎的访问权限的情况下,将不具有REE对于该硬件密码引擎的访问接口,由此能够避免由于REE受到攻击而泄露硬件密码引擎相关信息的风险。可以理解的是,本公开不对根据本公开实施例的安全架构系统中的子系统的具体实现形式进行限制,例如,在其他实现方式中,安全架构系统也可以仅具有REE、TEE和SE中的一种或多种。
作为一种实现方式,根据本公开一些实施例的硬件密码引擎能够支持所需的密码运算算法,例如,相关的密码运算算法主要包括对称密码算法、非对称密码算法、杂凑算法等。非对称密码是指加密和解密使用不同密钥的加密算法。
作为示例,根据本公开一些实施例的硬件密码引擎可以设计成用于实现非对称加密算法硬件加速。非对称加密算法采用的两个密钥分别称为公开密钥(公钥)和私有密钥(私钥),公钥与私钥成对出现。如果利用公钥(或者私钥)对数据进行加密,只有使用对应的私钥(或者公钥)才能对数据进行解密。非对称加密在信息加密、登录认证、数字签名、数字证书等领域具有广泛应用。例如,在用户一需要向用户二发送信息时,通常采用用户二的公钥进行加密,用户二收到加密数据以后采用其自身的私钥进行解密,且只有用户二具有该私钥。在用户一向用户二发送签名的时候,用户一可以采用自己的私钥进行加密,用户二可以基于用户一的公钥验证签名。采用私钥进行签名表征了只有信息拥有者才能进行签名,具有不可抵赖性。
作为另一示例,根据本公开一些实施例的硬件密码引擎可以设计成用于实现对称加密算法硬件加速。对称密码算法是指加密和解密使用相同密钥的加密算法。数据发送方使用密钥将明文加密后发送,数据接收方接收到数据后使用相同的密钥将密文恢复为明文。在对称加密算法中,由于发送方和接收方使用相同的密钥对数据进行加解密,加密的安全性不仅取决于加密算法本身,密钥的安全性同样重要。加解密在同一个系统中或固定密钥的环境中通常无需进行密钥交换,只需要对密钥设置一定的访问权限即可,而加解密在不同的系统中且不使用固定密钥时,就需要实现密钥的交换。对称密码算法具有加密速度快、加密效率高的特点,适合数据量比较大的加密场景。
作为又一示例,根据本公开一些实施例的硬件密码引擎可以设计成用于实现杂凑算法硬件加速。杂凑算法又称散列算法或哈希算法,其中采用把任意长度的输入消息串变化成固定长度的输出串的函数。杂凑算法生成杂凑值的过程是单向的,逆向操作难以完成,而且碰撞(两个不同的输入产生相同的杂凑值)发生的机率非常小。杂凑算法在现代密码学中起着重要的作用,只有输入同样的明文,才能得到相同的密文,一般用于数据的完整性校验、身份认证、数字签名、密钥推导、消息认证码等应用领域。
此外,根据本公开一些实施例的硬件密码引擎可以设计成用于实现真随机数生成。在密码体制中,对称加密算法中的密钥、非对称加密算法中的素数及其密钥的产生都需要随机数。由此可以配置该硬件密码引擎以使得其具备专用的物理随机源以生产所需的随机数。
可以理解的是,根据本公开一些实施例的硬件密码引擎可以是具有以上各类加密算法中的一种或者多种,或者,还可以用于实现其他的加密算法或者功能,在此不作限制。
作为一种实现方式,根据本公开一些实施例的控制器可以实现为诸如片上系统(SOC)的处理器,也就是说,由处理器例如通过指令来控制具有访问权限的子系统经由访问接口指示硬件密码引擎实现密码运算。或者,控制器也可以实现在安全架构系统的内部,在此不作限制。可以理解的是,控制器可以以软件或者硬件的方式来实现对于子系统的指示,从而使得子系统可以基于控制器发起的指令执行相关的动作。此外,控制器对于各子系统的上述指示操作可以是直接地指示或者间接地指示,在此也不作限制。
根据本公开的一些实施例的安全架构系统100中,具有访问硬件密码引擎的访问权限的子系统具有与硬件密码引擎之间的访问接口,接着,能够经由控制器指示该具有访问权限的子系统经由访问接口来访问硬件密码引擎,以控制硬件密码引擎进行密码运算。通过设置访问接口来实现对于硬件密码引擎的访问控制,这使得系统能够更灵活地以硬件方式进行密码运算,密码运算的运行性能也得到提升,从而满足很多应用场景的需求。
为了更清楚地描述关于根据本公开一些实施例的安全架构系统的技术方案,首先结合图2对包括REE、TEE和SE三个子系统情形的安全架构系统进行简单介绍。如图2所示,安全架构系统200包括上述3个子系统,其中,上述三个子系统也可以称为三种应用环境。可以理解的是,根据本公开一些实施例的安全架构系统的具体实现结构并不限于图2所示出的场景,例如,安全架构系统可以仅包括REE和TEE中的其中一种,或者在其他可能的实现方式中,REE和TEE可以实现成一个整体以作为子系统,此不作限制。
具体的,REE可以包括运行在通用的嵌入式处理器上的一般操作系统,其中安装有应用程序,图2中示出了应用程序1至应用程序n,例如,例如,应用程序可以是涉及支付场景的程序,其中实现诸如浏览商品、选择商品、提交订单等基本业务。尽管在REE中采取了很多诸如设备访问控制、设备数据加密机制、应用运行时的隔离机制、基于权限校验的访问控制等安全措施,但仍无法保证应用中重要数据的安全性。
接着,TEE可以是运行于一般操作系统之外的独立运行环境,其可以向诸如REE提供可信服务并且与REE相隔离,即REE及其上的应用程序无法直接访问TEE的硬件和软件资源。例如,TEE中可以执行可信应用,诸如图2中示出的可信应用1至可信应用p,通过可信应用来对REE提供可信赖的运行环境,再通过对机密性、完整性的保护和数据访问权限的控制,确保端到端的安全性。此外,TEE可以与REE并行运行,并且例如通过安全的应用程序编程接口(Application Programming Interface,API)与REE进行交互。
TEE提供了REE更高安全级别的运行环境,但无法提供硬件隔离级别的安全的密钥存储和密钥运行环境。一般地,TEE可以为REE提供很多的API,供REE调用TEE的资源,TEE提供的用于进行服务的API越多,TEE面临的风险将越大,很难保证API本身不存在安全隐患,诸如安全漏洞,进而导致TEE内的密钥等资源存在安全风险。进一步地,TEE内将会运行多种TA,TA之间完全依赖于TEE操作系统提供的隔离机制,没有硬件级别的隔离,这使得如果TA本身存在安全漏洞或者TA自己主动访问对应于其他TA的密钥或根密钥,也会导致密钥等敏感资源存在很大安全风险。
接着,提出基于SE来构建可信安全的资源存储和运算环境。一般地,SE中的软件系统相对简单,包括较少的硬件元器件,因此容易建立物理防护和实施安全保障,从而提高SE的安全强度,以服务于安全性要求更高的安全系统。其中,可以将SE中的应用安全应用,诸如图2中示出的安全应用1至安全应用m。
可以理解的是,根据本公开的一些实施例提供的安全架构系统可以具有如图2所示的REE、TEE和SE三种子系统,或者也可以具有其他的子系统结构,例如,仅包括REE和SE子系统等情形,本公开并不对此进行限制。
接下来,将对应用根据本公开一些实施例的安全架构系统的计算设备进行描述。
具体的,计算设备可以是能够安装应用程序并实现相应应用功能的移动终端、台式计算机、平板电脑、个人计算机(Personal Computer,PC)、个人数字助理(personaldigital assistant,PDA)、智能手表、上网本、可穿戴电子设备、增强现实(AugmentedReality,AR)设备等,本公开不对该计算设备的具体形式作特殊限制。
在至少一些实施例中,根据本公开实施例的安全架构系统可以在诸如图3A示出的移动终端300中实现。
如图3A所示,移动终端300具体可以包括:处理器301、射频(Radio Frequency,RF)电路302、存储器303、触摸显示屏304、蓝牙装置305、一个或多个传感器306、无线保真(Wireless Fidelity,WI-FI)装置307、定位装置308、音频电路309、外设接口310以及电源装置311等部件。这些部件可以通过一根或多根通信总线或信号线进行通信。本领域技术人员可以理解,图3A中示出的硬件结构并不构成对移动终端的限定,移动终端300可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图3A对移动终端300的各个部件进行具体的介绍。
首先,处理器301是移动终端300的控制中心,利用各种接口和线路连接移动终端300的各个部分,通过运行或执行存储在存储器303内的应用程序,以及调用存储在存储器303内的数据,执行移动终端300的各种功能和处理数据。在一些实施例中,处理器301可包括一个或多个处理单元。举例来说,处理器301可以是各类处理器芯片。
射频电路302可用于在收发信息或通话过程中,无线信号的接收和发送。特别地,射频电路302可以将基站的下行数据接收后,给处理器301处理,另外,将涉及上行的数据发送给基站。通常,射频电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频电路302还可以通过无线通信和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统、通用分组无线服务、码分多址、宽带码分多址、长期演进、电子邮件、短消息服务等。
存储器303用于存储应用程序以及相关的数据,处理器301通过运行存储在存储器303的应用程序以及数据,执行移动终端300的各种功能以及数据处理。存储器303主要包括存储程序区以及存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(例如,实现网络购物功能的应用程序等);存储数据区可以存储根据使用移动终端300时所创建的数据(例如,商品浏览数据、订单数据等)。此外,存储器303可以包括高速随机存取存储器(Random Access Memory,RAM),还可以包括非易失存储器,例如磁盘存储器件、闪存器件或其他易失性固态存储器件等。存储器303可以存储各类操作系统。上述存储器303可以是独立的,通过上述通信总线与处理器301相连接,此外,存储器303也可以和处理器301集成在一起。
触摸显示屏304具体可以包括触控板304-1和显示器304-2。
其中,触控板304-1可采集移动终端300的用户在其上或附近的触摸操作(或者称为触摸事件),例如用户使用手指、触控笔等任何适合的物体在触控板304-1之上或在触控板304-1附近的操作,并将采集到的触摸信息发送给其他器件(例如,处理器301)。用户在触控板304-1附近的触摸事件可以称之为悬浮触控。悬浮触控可以是指用户无需为了选择、移动或拖动目标(例如图标等)而直接地接触该触控板304-1,而只需用户位于设备附近以便执行所想要的功能。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型来实现触控板304-1。
显示器(或称为显示屏)304-2可以用于显示由用户输入的信息或提供给用户的信息以及移动终端300的各种菜单。可以采用液晶显示器、有机发光二极管等形式来配置显示器304-2。触控板304-1可以覆盖在显示器304-2之上,当触控板304-1检测到在其上或附近的触摸事件后,递送给处理器301以确定触摸事件的参数,随后处理器301可以根据触摸事件的参数在显示器304-2上提供对应的输出数据,例如,产品列表等。尽管在图3A中,触控板304-1与显示屏304-2是作为两个独立的部件来实现移动终端300的输入和输出功能,但是在一些实施例中,可以将触控板304-1与显示屏304-2集成以实现移动终端300的输入和输出功能。可以理解的是,触摸显示屏304是由多层的材料堆叠而成,图3A中只展示出了触控板(层)和显示屏(层),其他层在图3A中未予描述。另外,触控板304-1可以以全面板的形式配置在移动终端300的正面,显示屏304-2也可以以全面板的形式配置在移动终端300的正面,这样使得在终端设备的正面实现无边框的结构。
进一步地,移动终端300还可以具有指纹识别功能。例如,可以在移动终端300的背面(例如后置摄像头的下方)配置指纹采集器件312,或者在移动终端300的正面(例如触摸显示屏304的下方)配置指纹采集器件312。又例如,可以在触摸显示屏304中配置指纹采集器件312来实现指纹识别功能,即指纹采集器件312可以与触摸显示屏304集成在一起来实现移动终端300的指纹识别功能。在这种情况下,该指纹采集器件312配置在触摸显示屏304中,可以是触摸显示屏304的一部分,也可以以其他方式配置在触摸显示屏304中。指纹采集器件312的主要部件可以是指纹传感器,该指纹传感器可以采用任何类型的感测技术,包括但不限于光学式、电容式、压电式或超声波传感技术等。
移动终端300还可以包括蓝牙装置305,用于实现移动终端300与其他短距离的设备(例如手机、智能手表等)之间的数据交换。具体的,蓝牙装置305可以是集成电路或者蓝牙芯片等。
移动终端300还可以包括至少一种传感器306,例如光学传感器、运动传感器以及其他传感器。具体的,光学传感器可包括环境光传感器及接近传感器,其中,环境光传感器可以根据环境光线的明暗来调节触摸显示屏304的显示器的亮度,接近传感器可以在移动终端300移动到耳边时,关闭显示器的电源。作为运动传感器的一种,加速计传感器可以检测各个方向上(一般为三轴)加速度的大小,静止时可以检测出重力的大小及方向,以用于识别手机姿态的应用(例如,横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(例如,计步器、敲击)等。移动终端300还可以配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
WI-FI装置307用于为移动终端300提供遵循WI-FI相关标准协议的网络接入,移动终端300可以通过WI-FI装置307接入到WI-FI接入点,进而帮助用户接收或发送数据,例如,收发电子邮件、浏览网页和访问流媒体等,其为用户提供了无线的宽带互联网访问。在其他一些示例中,该WI-FI装置307也可以作为WI-FI无线接入点,可以为其他设备提供WI-FI网络接入。
定位装置308用于为移动终端300提供地理位置信息。可以理解的是,该定位装置308具体可以是全球定位系统(Global Positioning System,GPS)或北斗卫星导航系统、俄罗斯GLONASS等定位系统的接收器。定位装置308在接收到上述定位系统发送的地理位置信息后,例如可以将该信息发送给处理器301进行处理,或者发送给存储器303进行保存。在另外的一些示例中,该定位装置308还可以是辅助全球卫星定位系统(Assisted GlobalPositioning System,AGPS)的接收器,AGPS系统通过作为辅助服务器来协助定位装置308完成测距和定位服务。在这种情况下,辅助定位服务器通过无线通信网络与设备例如移动终端300的定位装置308(例如GPS接收器)通信而提供定位协助。在另外的一些示例中,该定位装置308也可以是基于WI-FI接入点的定位技术。由于每一个WI-FI接入点都有一个全球唯一的(Media Access Control,MAC)地址,终端设备在开启WI-FI的情况下即可扫描并收集周围的WI-FI接入点的广播信号,因此可以获取到WI-FI接入点广播出来的MAC地址。终端设备将这些能够标示WI-FI接入点的数据(例如MAC地址)通过无线通信网络发送给位置服务器,由位置服务器检索出每一个WI-FI接入点的地理位置,并结合WI-FI广播信号的强弱程度,计算出该终端设备的地理位置并发送到该终端设备的定位装置308中。
音频电路309例如可以包括扬声器和麦克风,以用于提供用户与移动终端300之间的音频接口。音频电路309可以将接收到的音频数据转换成电信号,并将电信号传输到扬声器,由扬声器转换为声音信号输出。另一方面,麦克风将收集的声音信号转换为电信号,由音频电路309接收后将其转换为音频数据,再将音频数据输出至射频电路302以发送给例如另一设备,或者将音频数据输出至存储器303以便进一步处理。
外设接口310用于为外部的输入/输出设备(例如键盘、鼠标、外接显示器、外部存储器、用户识别模块卡等)提供各种接口。例如,通过通用串行总线(Universal SerialBus,USB)接口与鼠标连接,通过用户识别模块卡卡槽上的金属触点与电信运营商提供的用户识别模块卡(Subscriber Identification Module,SIM)进行连接。外设接口310可以被用来将上述外部的输入/输出外围设备耦接到处理器301和存储器303。
移动终端300还可以包括给各个部件供电的电源装置311(例如电池和电源管理芯片),电池可以通过电源管理芯片与处理器301逻辑相连,从而通过电源装置311实现管理充电、放电、以及功耗管理等功能。
尽管图3A未示出,移动终端300还可以包括摄像头(前置摄像头和/或后置摄像头)、闪光灯、微型投影装置、近场通信(Near Field Communication,NFC)装置等,在此不再赘述。
以下各个实施例中描述的安全架构系统均可以在具有上述硬件结构的移动终端300中实现。尽管如此,可以理解的是,本文中描述的安全架构系统也可以应用于其他合适的计算设备中,而非仅限于结合图3A描述的移动终端。
图3B示出了应用根据本公开一些实施例的安全架构系统的系统示意图。如图3B所示,应用系统例如可以包括终端设备321、网络322以及服务器323。
终端设备321可以是示出的移动终端,也可是固定终端,其通过网络322与服务器323进行数据传输。终端设备321上可以布置有根据本公开一些实施例的安全架构系统(例如如图1所示),此外,终端设备321上也可以安装有各类应用程序,例如购物类应用、网页浏览器应用、视频播放类应用、新闻资讯类应用等。此外,终端设备321可以包括输入/输出装置,从而还可以接收用户操作,例如通过触摸显示屏来接收用户的触控、手势操作等,又或者通过麦克风来接收用户的语音操作。然后,终端设备321可以基于接收的操作来生成请求消息。经由网络322,终端设备321可以将上述请求消息发送至服务器323,并接收服务器323响应于该请求消息返回的数据。终端设备321可以根据服务器323返回的数据来进行显示,例如,在终端设备321的显示屏上显示接收的显示数据,诸如视频或者图像。此外,接收的数据还可以包括其他信息,例如该视频的显示时间点、显示时长等信息。可替代地,服务器323也可以无需接收到该请求消息而直接地将数据发送给终端设备321,以在终端设备321上进行相应地处理过程。
终端设备321可以是具有显示屏并且支持程序运行的各种设备。如上所述,终端设备321可以是示出的移动终端,例如该移动终端具有以上结合图3A描述的组件。作为其他示例,终端设备321也可以是智能电视、平板电脑、电子书阅读器、MP4(Moving PictureExperts Group Audio Layer IV)播放器、膝上型便携计算机和台式计算机等等。此外,终端设备321还可以以软件形式实现各个模块的功能,在此不作具体限定。
网络322可以是有线网络也可以是无线网络,在此不作限制。服务器323可以是提供各种服务的服务器,例如接收终端设备321发送的数据流,并进行缓存。此外,服务器323还可以接收终端设备321发送的请求消息,对该请求消息进行分析,并将分析结果(例如,与请求信息对应的数据流)发送给终端设备321。可以根据不同的应用类型布置不同的服务器,例如,服务器323可以是即时通信服务器、支付应用服务器、信息展示应用服务器、资源管理服务器等。可以理解的是,图3B中示出的终端设备321、网络322和服务器323的数目仅仅是示意性的。根据实际的应用场景,可以具有任意数目的终端设备、网络和服务器。
下文中,将如图3A所示的安全架构系统关于子系统情形作为具体示例来描述根据本公开一些实施例的安全架构系统。可以理解的是,根据本公开实施例的安全架构系统中包括的子系统的情形并不限于此。
根据本公开的一些实施例,一个或多个子系统(如图1中的子系统101)可以包括:第一执行环境子系统和安全元件子系统。根据本公开的一些实施例,第一执行环境子系统不具有访问硬件密码引擎的访问权限,安全元件子系统具有访问硬件密码引擎的访问权限,并经由第一访问接口来访问硬件密码引擎。
具体的,上述第一执行环境子系统可以包括普通执行环境子系统(REE)和可信执行环境子系统(TEE)中的至少一种。作为具体示例,第一执行环境子系统可以包括REE和TEE两者。也就是说,REE和TEE两者均不具有访问硬件密码引擎的访问权限,在以上两者有需求进行密码运算的情况下,例如可以通过请求具有访问权限的安全元件子系统来控制硬件密码引擎进行相应的处理。
通过上述基于访问接口的访问控制方式,能够使得与密码运算相关联的资源与REE、TEE等其他安全性较低的子系统隔离开,在保证正常实现应用程序功能的情况下,控制资源的访问,避免由于在诸如密钥使用期间发生资源泄露。
接下来,将结合附图来详细描述在上述实施例中,基于安全架构系统进行密码运算的实现过程。
首先,图4示出了根据本公开一些实施例的安全架构系统的示意性框图,如图4所示,安全架构系统400包括三个子系统REE、TEE和SE,其中,REE、TEE与SE通过交互通道进行交互,例如传输数据以及请求消息等。例如,REE与TEE不存在直接访问SE的物理通路,只能通过共享内存等交互的方式向SE提出请求,由SE向REE、TEE提供服务。关于SE,作为一种实现方式,SE包括执行引擎、静态随机存取存储器(SRAM)、非易矢性存储器、以及密钥派生模块(Key Derivation Function,KDF)。其中,诸如根密钥等重要资源可以存入SE内的非易失性存储器,并且由SE固件或硬件保证根密钥不具有传递出SE的软件或硬件路径。此外,SE内集成的密钥派生模块KDF例如可以实现为软件或硬件并用于实现基于根密钥产生派生密钥。例如,KDF可以是哈希函数,通常用来将短密码变成长密码。
具体的,上述共享内存可以是指在多处理器的计算机系统中,可以被不同处理器访问的大容量内存。由于多个处理器需要快速访问存储器,这样就要对存储器进行缓存。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。在如图4所示的安全架构系统400中,只有SE具有访问硬件密码引擎的权限,并经由访问接口401来访问硬件密码引擎。此外,作为第一执行环境子系统的REE与TEE不具有直接访问该硬件密码引擎的访问权限,也即不具有相应的直接访问接口。
可以理解的是,在根据本公开实施例的安全架构系统中,对于不具有访问权限的子系统,在实现方式上可以不配置相应的直接访问接口,或者,也可以对于REE、TEE和SE三者均设置相应的直接访问接口,在不具有访问权限的情形下,可以通过指令或者硬件方式关闭对应的访问接口,在此不作限制。例如,在图4示出的实施例中,关闭REE与TEE对硬件密码引擎的访问接口,相应地,图4中未示出REE与TEE对于硬件密码引擎的直接访问接口。
作为示例,在SE需要基于硬件密码引擎进行密码运算的情况下,可以由SE直接经由访问接口401来指示硬件密码引擎进行相应的密码运算,例如,密码运算包括使得硬件密码引擎基于经由访问接口401提供的密钥对数据进行加密等。例如,需要对其进行加密的数据可以是经由接口401提供至硬件密码引擎的。又例如,该数据也可以是存储在某个硬件密码引擎可访问的存储器中,SE可以仅对硬件密码引擎指示该数据在存储中的存储地址。
作为示例的应用,在REE或者TEE需要基于硬件密码引擎进行密码运算的情况下,可以请求SE提供密码运算服务。
根据本公开的一些实施例,第一执行环境子系统配置成:响应于控制器的指示向安全元件子系统发送密码运算请求,其中,密码运算请求指示用于进行密码运算的密钥信息和数据信息。安全元件子系统配置成:获得来自第一执行环境子系统的密码运算请求,将密钥信息以及数据信息经由第一访问接口传递至硬件密码引擎,以用于硬件密码引擎基于密钥信息对数据信息进行密码运算。
具体的,以TEE作为上述第一执行环境子系统进行描述。首先,TEE首先向SE发出密码运算请求,密码运算请求中可以携带密钥相关信息和需要加解密数据的相关信息,密钥相关信息例如可以是SE中存储的密钥标识、用于密钥派生的参数等。密码运算请求例如可以是直接携带需要进行加密的数据、或者,也可以携带数据块的地址与大小等参数。
接着,SE可以经由访问接口401将与密钥标识对应的密钥以及数据相关信息传递至硬件密码引擎,以进行相应的密码运算。
根据本公开的一些实施例,安全元件子系统可以进一步配置成:经由第一访问接口获得硬件密码引擎进行密码运算的运算结果,并将运算结果存储于共享内存中;第一执行环境子系统还配置成:从共享内存获得硬件密码引擎进行密码运算的运算结果。由于TEE不具有直接访问硬件密码引擎的访问接口,由此,对于运算结果,也可以通过SE经由访问接口401获得,并通过SE与TEE之间的共享内存传递回TEE,即,TEE从共享内存中获得请求的密码运算结果。
根据本公开的一些实施例,在收到来自TEE的密码运算请求之后,SE还可以配置成对密钥相关信息进行判断。如果请求中携带的是密钥标识,则可以判断请求方(即TEE)是否具有使用该密钥的权限(如验证证书等),响应于具有使用权限,则将该密钥传递至密码引擎。响应于TEE不具有使用该密钥的使用权限,则可以拒绝将该密钥传递至密码引擎。
通过上述由SE实现的密钥鉴权过程能够进一步保证请求用于进行密码运算的诸如根密钥的安全性,避免不具有使用权限的TEE基于该根密钥进行相应的越权计算,造成系统安全性降低。
此外,如果密码运算请求中携带的用于密钥派生的参数(例如,根密钥的标识、派生密钥的长度、派生密钥进行的轮次等),则SE可以利用KDF基于密钥派生的参数进行密钥派生过程,并将产生的派生密钥以及数据信息传递至硬件密码引擎以进行运算。进一步地,SE还可以如上描述类似地对用于密钥派生的参数中的根密钥进行鉴权,以确定请求方TEE是否具有使用该根密钥进行密钥派生的权限,从而保证根密钥及其派生密钥的安全性。
在上述实施例中,硬件密码引擎只能被SE访问,而REE与TEE只能请求SE提供相应的密码运算服务。由于SE固件比较小,且一般是由芯片厂商开发提供,其相比于TEE或者REE存在安全漏洞的风险是极低的,由此上述实施例中的安全架构系统能够有效地保护诸如根密钥等资源的安全性。
图5示出了根据本公开一些实施例的安全架构系统的另一示意性框图。相比于图4所示的框图,图5仅在子系统对于硬件密码引擎的访问接口方式上存在差异。
在图5所示的安全架构系统500中,第一执行环境子系统包括TEE和REE,第一执行环境子系统具有访问硬件密码引擎访问权限,并经由第二访问接口来访问硬件密码引擎,如图5所示的,具有访问权限的REE经由接口501访问密码引擎,TEE经由接口502访问密码引擎。而SE不具有直接访问硬件密码引擎的访问权限,相应地,SE不具有直接访问硬件密码引擎的访问接口。在接下来关于图5的介绍中,仅描述与图4不同的结构及其实施的步骤,而与图4类似的部分则不再重复介绍。
根据本公开的一些实施例,第一执行环境子系统(TEE或REE)可以配置成:响应于控制器的指示向安全元件子系统(SE)请求用于进行密码运算的密钥信息,并将密钥信息与数据信息经由第二访问接口(接口501或接口502)传递至硬件密码引擎,以用于硬件密码引擎基于密钥信息对数据信息进行密码运算,以及经由第二访问接口获得硬件密码引擎进行密码运算的运算结果。
在上述实施例中,在REE或者TEE需要基于硬件密码引擎进行密码运算的情况下,由于其具有相应的直接访问接口,可以直接地经由各自的访问接口指示硬件密码引擎进行密码运算,例如,REE可以经由接口501、TEE可以经由接口502将相应的密钥信息以及数据信息传递至硬件密码引擎。并且,在硬件密码引擎结束计算之后,REE和TEE可以直接地经由各自的访问接口来获得运算结果。此外,对应于REE的接口501以及对应于TEE的接口502可以是相互隔离的,例如,TEE不具有经由接口501访问硬件密码引擎的功能。通过硬件接口的隔离,使得REE与TEE的访问过程及各自涉及的数据信息得到隔离,降低数据安全风险。
相比于图4所示的场景,TEE与REE具有直接访问硬件密码引擎的权限,由此无需请求SE经由上述接口401来实现相应的密码运算,这有利于提高运算效率。此外,如上所描述的,对于包括REE、TEE和SE三者的安全架构系统,由于SE的安全级别高于REE和TEE,使得SE中通常存储重要的资源,诸如用户根密钥等。在TEE或REE需要进行密码运算的过程中,其中用于加密的密钥可能是存储于SE中的根密钥。由此,在指示硬件密码引擎进行密码运算之前,REE或TEE需要向SE请求用于进行密码运算的密钥信息。
根据本公开的一些实施例,安全元件子系统可以配置成:对于用于进行密码运算的密钥信息的请求,响应于第一执行环境子系统具有使用密钥信息的访问权限,将密钥信息经由共享内存传递至第一执行环境子系统,其中,密钥信息包括基于由请求所指示的根密钥产生的派生密钥。
以TEE作为示例,TEE首先可以向SE发送密钥请求,以请求SE提供相应的密钥信息。接着,SE可以对TEE针对该密钥的使用权限进行校验,响应于请求方TEE具有使用权限则例如可以基于该请求所对应的根密钥进行密钥派生,并将产生的派生密钥作为上述密钥信息经由共享内存提供给TEE。
在上述实施例中,硬件密码引擎只能被TEE或REE访问而不能被SE直接访问,REE与TEE可以直接指示硬件密码引擎来进行密码运算。此外,在用于加密的密钥相关信息存储于SE的情况下,TEE或REE可以请求SE提供相应的密钥派生服务,以基于派生的密钥指示相应的密码运算。首先,由于SE固件比较小,且一般是由芯片厂商开发提供,其相比于TEE或者REE存在安全漏洞的风险是极低的,由此上述实施例中的安全架构系统中,由SE存储的重要资源不具有提供至SE外部的接口或者通路,在需要使用其中存储的某些信息(诸如根密钥)的情况下,可以基于SE的KDF产生派生密钥,并将派生密钥用于相应的计算,由此能够避免SE中存储的重要资源的泄露风险,从而能够有效地保护诸如根密钥等资源的安全性。
图6示出了根据本公开一些实施例的安全架构系统的又一示意性框图。相比于图4或图5所示的框图,图6仅在子系统对于硬件密码引擎的访问接口方式上存在差异。
在图6所示的安全架构系统600中,第一执行环境子系统包括TEE和REE,第一执行环境子系统具有访问硬件密码引擎访问权限,并经由第三访问接口来访问硬件密码引擎,此外,SE也具有访问硬件密码引擎的访问权限,并经由第四访问接口来访问硬件密码引擎。如图6所示出的,具有访问权限的REE经由接口601访问密码引擎,TEE经由接口602访问密码引擎。此外,SE也具有访问硬件密码引擎的访问权限,相应地,SE经由接口603来访问硬件密码引擎。
根据本公开的一些实施例,第一执行环境子系统(TEE和REE)可以配置成:响应于控制器的指示向安全元件子系统请求用于进行密码运算的密钥信息,将数据信息经由第三访问接口传递至硬件密码引擎,以用于硬件密码引擎基于密钥信息对数据信息进行密码运算。
根据本公开的一些实施例,安全元件子系统可以配置成:对于用于进行密码运算的密钥信息的请求,响应于第一执行环境子系统具有使用密钥信息的访问权限,将密钥信息经由第四访问接口传递至硬件密码引擎,以用于硬件密码引擎基于密钥信息对数据信息进行密码运算,其中,密钥信息包括基于由请求所指示的根密钥产生的派生密钥;以及第一执行环境子系统还配置成:经由第三访问接口获得硬件密码引擎进行密码运算的运算结果。
在图6所示的实施例中,安全架构系统的三种子系统REE、TEE和SE均具有各自的直接访问接口以访问密码引擎。作为示例,在SE需要基于硬件密码引擎进行密码运算的情况下,可以由SE直接经由访问接口603来指示硬件密码引擎进行相应的密码运算,例如,密码运算包括使得硬件密码引擎基于经由访问接口603提供的密钥对数据进行加密等。接着,SE可以经由该接口603获得加密运算结果。
作为另一示例,在REE或者TEE需要基于硬件密码引擎进行密码运算的情况下,由于其具有相应的访问接口,可以直接地经由各自的访问接口指示硬件密码引擎进行密码运算,例如,REE可以经由接口601、TEE可以经由接口602将相应的密钥信息以及数据信息传递至硬件密码引擎。并且,在硬件密码引擎结束计算之后,REE和TEE可以直接地经由各自的访问接口来获得运算结果。此外,对应于REE的接口601以及对应于TEE的接口602可以是相互隔离的,例如,TEE不具有经由接口601访问硬件密码引擎的功能。通过硬件接口的隔离,使得REE与TEE的访问过程及各自涉及的数据信息得到隔离,降低数据安全风险。
进一步地,在TEE或REE需要进行密码运算的过程中,其中用于加密的密钥可能是存储于SE中的根密钥。由此,在指示硬件密码引擎进行密码运算之前,REE或TEE需要向SE请求用于进行密码运算的密钥信息。作为示例,SE可以基于TEE的派生密钥请求来进行密钥派生,此外,在进行派生之前,SE还可以对请求方TEE的使用权限进行校验,以保证根密钥的安全性。
此外,相比于图5中的SE不具有与密码引擎之间的直接访问接口,图6中的SE具有与密码引擎之间的直接访问接口603,由此,在图6所示的实施例中,诸如KDF产生的派生密钥可以经由接口603提供至密码引擎,以用于TEE的相关密码运算,在这种情况下,TEE仅需经由接口602提供相应的数据信息而密钥信息由SE提供。可选地,对于产生的派生密钥,SE也可以如上所述的经由共享内存提供给TEE,并使得TEE经由接口602将密钥信息以及数据信息提供至密码引擎。
在根据本公开实施例的安全架构系统中,基于特定的访问接口来实现子系统与硬件密码引擎之间的访问控制,通过硬件的方式来密码运算,提高加密性能,此外,基于访问接口的物理隔离使得不具有访问权限的子系统无法直接访问密码引擎,而是需要向具有访问权限的子系统请求相应的服务,基于该请求,能够对各个访问过程所涉及的使用权限进行鉴权例如验证签名等,以充分保证数据的安全性,由此,利用根据本公开实施例的安全架构系统能够有效提高数据安全性,避免进行具有安全隐患的访问操作,避免重要信息泄露等安全隐患。进一步地,提高终端设备的安全性有利于丰富设备的应用场景,例如,在个人手机产品中也能够安装对于安全性要求较高的程序并实现相应的功能,保证用户的信息安全,有利于构建安全可靠的产品使用环境。
根据本公开的另一方面,还提供了一种用于安全架构系统的密码运算方法。根据本公开实施例,此安全架构系统可以是上文结合图1描述的安全架构系统。对于根据本公开一些实施例的安全架构系统,不仅基于各个与安全级别相关的子系统来保证设备安全性,还设置硬件密码引擎,并且,在各个子系统与硬件密码引擎之间,基于专用地访问接口来控制密码引擎进行密码运算,从而进一步提高设备关于密码运算的安全性,降低重要信息泄露的风险。
根据本公开的一些实施例,安全架构系统可以包括一个或多个子系统、硬件密码引擎以及控制器,其中,一个或多个子系统中的一个或多个具有访问硬件密码引擎的访问权限。图7示出了根据本公开一些实施例的密码运算方法的示意性流程图,如图7所示,该方法700可以包括步骤S701,通过控制器指示具有访问权限的子系统经由访问接口访问硬件密码引擎,以控制硬件密码引擎进行密码运算。根据本公开一些实施例,对于具有访问硬件密码引擎的访问权限的子系统,能够经由控制器的指示来经由访问接口访问硬件密码引擎,以控制硬件密码引擎进行密码运算。
根据本公开的一些实施例,能够基于访问接口来控制上述各个子系统对于安全架构系统的访问权限。作为示例,在REE不具有对于硬件密码引擎的访问权限的情况下,将不具有REE对于该硬件密码引擎的访问接口,由此能够避免由于REE受到攻击而泄露硬件密码引擎相关信息的风险。可以理解的是,本公开不对根据本公开实施例的安全架构系统中的子系统的具体实现形式进行限制,例如,在其他实现方式中,安全架构系统也可以仅具有REE、TEE和SE中的一种或多种。
作为一种实现方式,根据本公开一些实施例的硬件密码引擎能够支持所需的密码运算算法,例如,相关的密码运算算法主要包括对称密码算法、非对称密码算法、杂凑算法等。非对称密码是指加密和解密使用不同密钥的加密算法。可以理解的是,根据本公开一些实施例的硬件密码引擎可以是具有以上各类加密算法中的一种或者多种,或者,还可以用于实现其他的加密算法或者功能,在此不作限制。
作为一种实现方式,根据本公开一些实施例的控制器可以实现为诸如SOC的处理器,也就是说,由处理器例如通过指令来控制具有访问权限的子系统经由访问接口指示硬件密码引擎实现密码运算。或者,控制器也可以实现在安全架构系统的内部,在此不作限制。可以理解的是,控制器可以以软件或者硬件的方式来实现对于子系统的指示,从而使得子系统可以基于控制器发起的指令执行相关的动作。此外,控制器对于各子系统的上述指示操作可以是直接地指示或者间接地指示,在此也不作限制。
对于根据本公开的一些实施例的密码运算方法所适用的安全架构系统,具有访问硬件密码引擎的访问权限的子系统具有与硬件密码引擎之间的访问接口,接着,能够经由控制器指示该具有访问权限的子系统经由访问接口来访问硬件密码引擎,以控制硬件密码引擎进行密码运算。通过设置访问接口来实现对于硬件密码引擎的访问控制,这使得系统能够更灵活地以硬件方式进行密码运算,密码运算的运行性能也得到提升,从而满足很多应用场景的需求。
需要说明的是,根据本公开实施例的密码运算方法可以适用于安全性要求较高的应用环境,例如,对SE中存储的重要资源进行管理。作为示例,与SE中存储的重要资源相关的应用例如可以是银行卡、公交卡、U盾等传统智能卡(Smart Card)。实施上述密码运算方法的安全架构系统能够为用户提供更高安全性的服务。
根据本公开的一些实施例,一个或多个子系统包括:第一执行环境子系统和安全元件子系统,其中,第一执行环境子系统不具有直接访问硬件密码引擎的访问权限,安全元件子系统具有访问硬件密码引擎的访问权限,并经由第一访问接口来访问硬件密码引擎。根据本公开的一些实施例,第一执行环境子系统包括普通执行环境子系统和可信执行环境子系统中的至少一种。
根据本公开的一些实施例,控制硬件密码引擎进行密码运算包括:通过第一执行环境子系统响应于控制器的指示向安全元件子系统发送密码运算请求,其中,密码运算请求指示用于进行密码运算的密钥信息和数据信息;通过安全元件子系统获得来自第一执行环境子系统的密码运算请求,将密钥信息以及数据信息经由第一访问接口传递至硬件密码引擎,以用于硬件密码引擎基于密钥信息对数据信息进行密码运算。
根据本公开的一些实施例,该密码运算方法还可以包括:通过安全元件子系统经由第一访问接口获得硬件密码引擎进行密码运算的运算结果,并将运算结果存储于共享内存中;以及通过第一执行环境子系统从共享内存获得硬件密码引擎进行密码运算的运算结果。
图8示出了根据本公开一些实施例的密码运算方法的交互流程图。如图8所示出的示例中,安全架构系统关于子系统的结构可以参见图4,其中,仅SE具有访问硬件密码引擎的访问接口。
基于如图4所示的安全架构系统,REE、TEE与SE三者相互配合来保证系统安全。此外,由于SE相较于REE和TEE的安全性最高,SE中一般存储有重要资源,诸如根密钥等信息。
首先,如图8所示,例如,在涉及支付的应用场景中,用户可以首先基于REE中的应用程序实现诸如浏览商品、选择商品、提交订单等基本业务,接着,由REE向TEE发送可信服务请求,使得业务流程跳转到TEE中,以实现诸如校验支付环境、显示支付信息,用户输入支付密钥或验证指纹等过程。接着,在TEE需要针对某些数据进行加密运算的情况下,可以由TEE向SE发送密码运算请求,以请求SE提供相应的服务,其中,密码运算请求指示用于进行密码运算的密钥信息和数据信息。在获得密码运算请求之后,SE可以将密钥信息以及数据信息经由第一访问接口(例如图4中的接口401)传递至硬件密码引擎,响应于运算结果,SE经由该访问接口获得运算结果,并将运算结果存储于共享内存中。然后,由TEE经由共享内存获得运算结果,并根据业务需要将相关数据返回至REE。
此外,响应于S2的请求,SE可以确定请求方TEE是否具有使用相应密钥信息的权限,如果确定TEE具有使用权限则允许访问该根密钥或者进行密钥派生,以指示密码引擎进行相应的密码运算。SE通过权限校验来保证其中存储的资源的安全性。
在上述实施例中,硬件密码引擎只能被SE访问,而REE与TEE只能请求SE提供相应的密码运算服务。由于SE固件比较小,且一般是由芯片厂商开发提供,其相比于TEE或者REE存在安全漏洞的风险是极低的,由此上述实施例中的安全架构系统能够有效地保护诸如根密钥等资源的安全性。
根据本公开的一些实施例,一个或多个子系统包括:第一执行环境子系统和安全元件子系统,其中,第一执行环境子系统具有访问硬件密码引擎的访问权限,并经由第二访问接口来访问硬件密码引擎,安全元件子系统不具有访问硬件密码引擎的访问权限,其中,第一执行环境子系统包括普通执行环境子系统和可信执行环境子系统中的至少一种。
根据本公开的一些实施例,控制硬件密码引擎进行密码运算包括:通过第一执行环境子系统响应于控制器的指示向安全元件子系统请求用于进行密码运算的密钥信息,并将密钥信息与数据信息经由第二访问接口传递至硬件密码引擎,以用于硬件密码引擎基于密钥信息对数据信息进行密码运算,方法还包括:通过第一执行环境子系统经由第二访问接口获得硬件密码引擎进行密码运算的运算结果。
根据本公开的一些实施例,该密码运算方法还可以包括:对于用于进行密码运算的密钥信息的请求,通过安全元件子系统响应于第一执行环境子系统具有使用密钥信息的访问权限,将密钥信息经由共享内存传递至第一执行环境子系统,其中,密钥信息包括基于由请求所指示的根密钥产生的派生密钥。
在上述实施例中,密码运算方法所对应的安全架构系统关于子系统的结构可以参见图5,其中,作为第一执行环境子系统的REE和TEE具有访问硬件密码引擎访问权限,REE经由访问接口501来访问硬件密码引擎,TEE经由访问接口502来访问硬件密码引擎,而安全元件子系统SE不具有访问硬件密码引擎的访问权限。关于这些实施例中密码运算方法实现的步骤可以参见上文结合图5的描述,在此不再重复。
根据本公开的一些实施例,一个或多个子系统包括:第一执行环境子系统和安全元件子系统,其中,第一执行环境子系统具有访问硬件密码引擎访问权限,并经由第三访问接口来访问硬件密码引擎;安全元件子系统具有访问硬件密码引擎的访问权限,并经由第四访问接口来访问硬件密码引擎,其中,第一执行环境子系统包括普通执行环境子系统和可信执行环境子系统中的至少一种。
根据本公开的一些实施例,控制硬件密码引擎进行密码运算包括:通过第一执行环境子系统响应于控制器的指示向安全元件子系统请求用于进行密码运算的密钥信息,将数据信息经由第三访问接口传递至硬件密码引擎,以用于硬件密码引擎基于密钥信息对数据信息进行密码运算。
根据本公开的一些实施例,该密码运算方法还可以包括:对于用于进行密码运算的密钥信息的请求,通过安全元件子系统响应于第一执行环境子系统具有使用密钥信息的访问权限,将密钥信息经由第四访问接口传递至硬件密码引擎,以用于硬件密码引擎基于密钥信息对数据信息进行密码运算,其中,密钥信息包括基于由请求所指示的根密钥产生的派生密钥;以及通过第一执行环境子系统经由第三访问接口获得硬件密码引擎进行密码运算的运算结果。
在上述实施例中,密码运算方法所对应的安全架构系统关于子系统的结构可以参见图6,其中,作为第一执行环境子系统的REE和TEE具有访问硬件密码引擎访问权限,REE经由访问接口601来访问硬件密码引擎,TEE经由访问接口602来访问硬件密码引擎。此外,安全元件子系统SE也具有访问硬件密码引擎的访问权限,并经由访问接口603来访问硬件密码引擎。关于这些实施例中密码运算方法实现的步骤可以参见上文结合图6的描述,在此不再重复。
根据本公开的又一方面,还提供了一种计算设备。图9示出了根据本公开一些实施例的计算设备的示意性框图。具体的,根据本公开一些实施例的计算设备1000可以配置有如上所描述的安全架构系统1010。该安全架构系统可以包括一个或多个子系统,硬件密码引擎以及控制器,其中,基于特定的访问接口来实现子系统与硬件密码引擎之间的访问控制。关于计算设备中布置的安全架构系统的具体形式以及实现的功能可以参照上文,在此不再重复描述。
利用包括根据本公开实施例的安全架构系统的计算设备,能够有效提高数据安全性,避免进行具有安全隐患的访问操作,避免重要信息泄露等安全隐患。进一步地,提高计算设备的安全性有利于丰富设备的应用场景,例如,在个人手机产品中也能够安装对于安全性要求较高的程序并实现相应的功能,保证用户的信息安全,有利于构建安全可靠的产品使用环境。
此外,图10示出了根据本公开一些实施例的电子设备的示意性框图,如图10所示,电子设备2000可以配置有处理器2010以及存储器2020。其中,存储器2020中存储有计算机可读代码,该计算机可读代码当由处理器2010运行时,可以促使处理器实施根据本公开一些实施例的密码运算方法。或者,处理器2010也可以实施上文描述的额控制器所实现的部分或者全部功能,例如,处理器可以指令诸如TEE或者REE开始进行相应的密码运算过程。具体的,电子设备2000中可以布置有如图4-图6之一所示的安全架构系统,并经由上述安全架构系统来实现根据本公开一些实施例的密码运算方法。
处理器2010可以根据存储在存储器2020中的程序执行各种动作和处理。具体地,处理器2010可以是一种集成电路芯片,具有信号的处理能力。上述处理器可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以是X86架构或者是ARM架构等。处理器2010能够实现或者执行本公开实施例中公开的各种方法、步骤及逻辑框图。
存储器2020存储有计算机可执行指令代码,该指令代码在被处理器2010执行时用于实现根据本公开实施例的密码运算方法。存储器2020可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率同步动态随机存取存储器(DDRSDRAM)、增强型同步动态随机存取存储器(ESDRAM)、同步连接动态随机存取存储器(SLDRAM)和直接内存总线随机存取存储器(DR RAM)。应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
根据本公开实施例的安全架构系统或者方法也可以借助于图11所示的计算设备3000的架构来实现。如图11所示,计算设备3000可以包括总线3010、一个或多个CPU 3020、只读存储器(ROM)3030、随机存取存储器(RAM)3040、连接到网络的通信端口3050、输入/输出3060、硬盘3070等。计算设备3000中的存储设备,例如ROM 3030或硬盘3070可以存储本公开提供的密码运算方法的处理和/或通信使用的各种数据或文件以及CPU所执行的程序指令。计算设备3000还可以包括用户界面3080。
当然,图11所示的架构只是示例性的,在实现不同的设备时,根据实际需要,可以省略图11示出的计算设备中的一个或多个组件。作为示例,上述计算设备3000可以实现为安装有应用程序的移动终端,并且,移动终端中实施有根据本公开实施例的安全架构系统,并实施相应的功能。
在根据本公开一些实施例提供的安全架构系统、安全架构系统的密码运算方法和计算设备中,其中,安全架构系统中具有访问硬件密码引擎的访问权限的子系统通过访问接口来实现密码运算,提高密码运算的性能,保证密码运算过程中涉及的密钥信息、数据信息以及运算结果的安全性。使得在关于密码运算的各个阶段均具有较高的安全级别,避免重要信息泄露等安全隐患。
本领域技术人员能够理解,本公开所披露的内容可以出现多种变型和改进。例如,以上所描述的各种设备或组件可以通过硬件实现,也可以通过软件、固件、或者三者中的一些或全部的组合实现。
此外,虽然本公开对根据本公开的实施例的系统中的某些单元做出了各种引用,然而,任何数量的不同单元可以被使用并运行在客户端和/或服务器上。单元仅是说明性的,并且系统和方法的不同方面可以使用不同单元。
本公开中使用了流程图用来说明根据本公开的实施例的方法的步骤。应当理解的是,前面或后面的步骤不一定按照顺序来精确的进行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中。
本领域普通技术人员可以理解上述方法中的全部或部分的步骤可通过计算机程序来指令相关硬件完成,程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本公开并不限制于任何特定形式的硬件和软件的结合。
除非另有定义,这里使用的所有术语具有与本公开所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。
以上是对本公开的说明,而不应被认为是对其的限制。尽管描述了本公开的若干示例性实施例,但本领域技术人员将容易地理解,在不背离本公开的新颖教学和优点的前提下可以对示例性实施例进行许多修改。因此,所有这些修改都意图包含在权利要求书所限定的本公开范围内。应当理解,上面是对本公开的说明,而不应被认为是限于所公开的特定实施例,并且对所公开的实施例以及其他实施例的修改意图包含在所附权利要求书的范围内。本公开由权利要求书及其等效物限定。

Claims (20)

1.一种安全架构系统,其特征在于,所述安全架构系统包括:
一个或多个子系统;
硬件密码引擎,其中,所述一个或多个子系统中的一个或多个具有访问所述硬件密码引擎的访问权限;和
控制器,配置成指示具有所述访问权限的子系统经由访问接口访问所述硬件密码引擎,以控制所述硬件密码引擎进行密码运算。
2.如权利要求1所述的安全架构系统,其特征在于,所述一个或多个子系统包括:第一执行环境子系统和安全元件子系统,其中,
所述第一执行环境子系统不具有访问所述硬件密码引擎的访问权限,所述安全元件子系统具有访问所述硬件密码引擎的访问权限,并经由第一访问接口来访问所述硬件密码引擎。
3.如权利要求2所述的安全架构系统,其特征在于,所述第一执行环境子系统配置成:
响应于所述控制器的指示向所述安全元件子系统发送密码运算请求,其中,所述密码运算请求指示用于进行密码运算的密钥信息和数据信息;
所述安全元件子系统配置成:
获得来自所述第一执行环境子系统的所述密码运算请求,将所述密钥信息以及所述数据信息经由所述第一访问接口传递至所述硬件密码引擎,以用于所述硬件密码引擎基于所述密钥信息对所述数据信息进行密码运算。
4.如权利要求3所述的安全架构系统,其特征在于,所述安全架构系统还包括共享内存,所述安全元件子系统还配置成:
经由所述第一访问接口获得所述硬件密码引擎进行密码运算的运算结果,并将所述运算结果存储于所述共享内存中;
所述第一执行环境子系统还配置成:
从所述共享内存获得所述硬件密码引擎进行密码运算的运算结果。
5.如权利要求1所述的安全架构系统,其特征在于,所述一个或多个子系统包括:第一执行环境子系统和安全元件子系统,其中,
所述第一执行环境子系统具有访问所述硬件密码引擎访问权限,并经由第二访问接口来访问所述硬件密码引擎,所述安全元件子系统不具有访问所述硬件密码引擎的访问权限。
6.如权利要求5所述的安全架构系统,其特征在于,所述第一执行环境子系统配置成:
响应于所述控制器的指示向所述安全元件子系统请求用于进行密码运算的密钥信息,并将所述密钥信息与数据信息经由所述第二访问接口传递至所述硬件密码引擎,以用于所述硬件密码引擎基于所述密钥信息对所述数据信息进行密码运算;以及
经由所述第二访问接口获得所述硬件密码引擎进行密码运算的运算结果。
7.如权利要求6所述的安全架构系统,其特征在于,所述安全架构系统还包括共享内存,所述安全元件子系统配置成:
对于用于进行密码运算的密钥信息的请求,响应于所述第一执行环境子系统具有使用所述密钥信息的访问权限,将所述密钥信息经由所述共享内存传递至所述第一执行环境子系统,其中,所述密钥信息包括基于由所述请求所指示的根密钥产生的派生密钥。
8.如权利要求1所述的安全架构系统,其特征在于,所述一个或多个子系统包括:第一执行环境子系统和安全元件子系统,其中,
所述第一执行环境子系统具有访问所述硬件密码引擎访问权限,并经由第三访问接口来访问所述硬件密码引擎;所述安全元件子系统具有访问所述硬件密码引擎的访问权限,并经由第四访问接口来访问所述硬件密码引擎。
9.如权利要求8所述的安全架构系统,其特征在于,所述第一执行环境子系统配置成:
响应于所述控制器的指示向所述安全元件子系统请求用于进行密码运算的密钥信息,将数据信息经由所述第三访问接口传递至所述硬件密码引擎,以用于所述硬件密码引擎基于所述密钥信息对所述数据信息进行密码运算。
10.如权利要求9所述的安全架构系统,其特征在于,所述安全元件子系统配置成:
对于用于进行密码运算的密钥信息的请求,响应于所述第一执行环境子系统具有使用所述密钥信息的访问权限,将所述密钥信息经由所述第四访问接口传递至所述硬件密码引擎,以用于所述硬件密码引擎基于所述密钥信息对所述数据信息进行密码运算,其中,所述密钥信息包括基于由所述请求所指示的根密钥产生的派生密钥;以及
所述第一执行环境子系统还配置成:
经由所述第三访问接口获得所述硬件密码引擎进行密码运算的运算结果。
11.如权利要求2-10中的任一项所述的安全架构系统,其特征在于,所述第一执行环境子系统包括普通执行环境子系统和可信执行环境子系统中的至少一种。
12.一种用于安全架构系统的密码运算方法,其特征在于,所述安全架构系统包括一个或多个子系统,其中,所述一个或多个子系统中的一个或多个具有访问硬件密码引擎的访问权限,所述方法包括:
通过控制器指示具有所述访问权限的子系统经由访问接口访问所述硬件密码引擎,以控制所述硬件密码引擎进行密码运算。
13.如权利要求12所述的方法,其特征在于,所述一个或多个子系统包括:第一执行环境子系统和安全元件子系统,其中,所述第一执行环境子系统不具有访问所述硬件密码引擎的访问权限,所述安全元件子系统具有访问所述硬件密码引擎的访问权限,并经由第一访问接口来访问所述硬件密码引擎,其中,
所述控制所述硬件密码引擎进行密码运算包括:
通过所述第一执行环境子系统响应于所述控制器的指示向所述安全元件子系统发送密码运算请求,其中,所述密码运算请求指示用于进行密码运算的密钥信息和数据信息;
通过所述安全元件子系统获得来自所述第一执行环境子系统的所述密码运算请求,将所述密钥信息以及所述数据信息经由所述第一访问接口传递至所述硬件密码引擎,以用于所述硬件密码引擎基于所述密钥信息对所述数据信息进行密码运算。
14.如权利要求13所述的方法,其特征在于,所述方法还包括:
通过所述安全元件子系统经由所述第一访问接口获得所述硬件密码引擎进行密码运算的运算结果,并将所述运算结果存储于共享内存中;以及
通过所述第一执行环境子系统从所述共享内存获得所述硬件密码引擎进行密码运算的运算结果。
15.如权利要求12所述的方法,其特征在于,所述一个或多个子系统包括:第一执行环境子系统和安全元件子系统,其中,所述第一执行环境子系统具有访问所述硬件密码引擎的访问权限,并经由第二访问接口来访问所述硬件密码引擎,所述安全元件子系统不具有访问所述硬件密码引擎的访问权限,其中,
所述控制所述硬件密码引擎进行密码运算包括:
通过所述第一执行环境子系统响应于所述控制器的指示向所述安全元件子系统请求用于进行密码运算的密钥信息,并将所述密钥信息与数据信息经由所述第二访问接口传递至所述硬件密码引擎,以用于所述硬件密码引擎基于所述密钥信息对所述数据信息进行密码运算,所述方法还包括:
通过所述第一执行环境子系统经由所述第二访问接口获得所述硬件密码引擎进行密码运算的运算结果。
16.如权利要求15所述的方法,其特征在于,所述方法还包括:
对于用于进行密码运算的密钥信息的请求,通过所述安全元件子系统响应于所述第一执行环境子系统具有使用所述密钥信息的访问权限,将所述密钥信息经由共享内存传递至所述第一执行环境子系统,其中,所述密钥信息包括基于由所述请求所指示的根密钥产生的派生密钥。
17.如权利要求12所述的方法,其特征在于,所述一个或多个子系统包括:第一执行环境子系统和安全元件子系统,其中,所述第一执行环境子系统具有访问所述硬件密码引擎访问权限,并经由第三访问接口来访问所述硬件密码引擎;所述安全元件子系统具有访问所述硬件密码引擎的访问权限,并经由第四访问接口来访问所述硬件密码引擎,其中,
所述控制所述硬件密码引擎进行密码运算包括:
通过所述第一执行环境子系统响应于所述控制器的指示向所述安全元件子系统请求用于进行密码运算的密钥信息,将数据信息经由所述第三访问接口传递至所述硬件密码引擎,以用于所述硬件密码引擎基于所述密钥信息对所述数据信息进行密码运算。
18.如权利要求17所述的方法,其特征在于,所述方法还包括:
对于用于进行密码运算的密钥信息的请求,通过所述安全元件子系统响应于所述第一执行环境子系统具有使用所述密钥信息的访问权限,将所述密钥信息经由所述第四访问接口传递至所述硬件密码引擎,以用于所述硬件密码引擎基于所述密钥信息对所述数据信息进行密码运算,其中,所述密钥信息包括基于由所述请求所指示的根密钥产生的派生密钥;以及
通过所述第一执行环境子系统经由所述第三访问接口获得所述硬件密码引擎进行密码运算的运算结果。
19.如权利要求13-18中的任一项所述的方法,其特征在于,所述第一执行环境子系统包括普通执行环境子系统和可信执行环境子系统中的至少一种。
20.一种计算设备,其特征在于,所述计算机设备包括如权利要求1-11中任一项所述的安全架构系统。
CN202111398355.7A 2021-11-24 2021-11-24 安全架构系统、安全架构系统的密码运算方法和计算设备 Active CN113821821B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202111398355.7A CN113821821B (zh) 2021-11-24 2021-11-24 安全架构系统、安全架构系统的密码运算方法和计算设备
US17/992,223 US20230161885A1 (en) 2021-11-24 2022-11-22 Security architecture system, cryptographic operation method for security architecture system, and computing device
EP22209120.9A EP4187422A1 (en) 2021-11-24 2022-11-23 Security architecture system, cryptographic operation method for security architecture system, and computing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111398355.7A CN113821821B (zh) 2021-11-24 2021-11-24 安全架构系统、安全架构系统的密码运算方法和计算设备

Publications (2)

Publication Number Publication Date
CN113821821A true CN113821821A (zh) 2021-12-21
CN113821821B CN113821821B (zh) 2022-02-15

Family

ID=78919785

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111398355.7A Active CN113821821B (zh) 2021-11-24 2021-11-24 安全架构系统、安全架构系统的密码运算方法和计算设备

Country Status (3)

Country Link
US (1) US20230161885A1 (zh)
EP (1) EP4187422A1 (zh)
CN (1) CN113821821B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114911726A (zh) * 2022-07-15 2022-08-16 飞腾信息技术有限公司 数据传输方法、相关装置、系统及计算机可读存储介质
CN117353921A (zh) * 2023-12-06 2024-01-05 飞腾信息技术有限公司 密钥管理方法、装置、计算设备及计算机可读存储介质

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101411121A (zh) * 2006-07-10 2009-04-15 三星电子株式会社 基于装置临近度提供访问权限的方法及所述方法使用的中央访问装置
CN101820342A (zh) * 2010-03-31 2010-09-01 北京飞天诚信科技有限公司 硬件加密引擎的实现方法
CN102696038A (zh) * 2009-12-31 2012-09-26 桑迪士克科技股份有限公司 用于提供可缩放内容保护系统的存储器件和方法
CN104081712A (zh) * 2012-02-09 2014-10-01 英特尔公司 使用隐藏的根密钥的可重复的应用特定的加密密钥获得
CN106415564A (zh) * 2014-06-05 2017-02-15 索尼公司 可信执行环境的动态配置
CN106980794A (zh) * 2017-04-01 2017-07-25 北京元心科技有限公司 基于TrustZone的文件加解密方法、装置及终端设备
CN107408096A (zh) * 2015-03-04 2017-11-28 高通股份有限公司 对硬件块的适应性存取控制
CN107851162A (zh) * 2015-07-20 2018-03-27 英特尔公司 用于对安全i/o的密码引擎进行安全编程的技术
CN110321713A (zh) * 2019-07-08 2019-10-11 北京可信华泰信息技术有限公司 基于双体系架构的可信计算平台的动态度量方法和装置
CN110334512A (zh) * 2019-07-08 2019-10-15 北京可信华泰信息技术有限公司 基于双体系架构的可信计算平台的静态度量方法和装置
CN110543764A (zh) * 2019-09-11 2019-12-06 天津飞腾信息技术有限公司 片上系统内存防护方法、密码加速引擎及内存防护装置
CN111429254A (zh) * 2020-03-19 2020-07-17 腾讯科技(深圳)有限公司 一种业务数据处理方法、设备以及可读存储介质
CN111767586A (zh) * 2020-06-09 2020-10-13 北京智芯微电子科技有限公司 内置硬件密码学算法协处理器的微处理器及安全芯片
US20200380149A1 (en) * 2019-05-31 2020-12-03 Apple Inc. Separation of managed and unmanaged data in a computing device
CN112136131A (zh) * 2018-05-17 2020-12-25 三星电子株式会社 连接到多个处理器的安全模块的控制方法以及用于实现该方法的电子装置
CN112149144A (zh) * 2019-06-28 2020-12-29 英特尔公司 聚合密码引擎
CN113420308A (zh) * 2021-07-01 2021-09-21 联芸科技(杭州)有限公司 用于加密存储器的数据访问控制方法及控制系统
US20210312091A1 (en) * 2018-05-25 2021-10-07 Secure-Ic Sas Multi-master security circuit
CN113678129A (zh) * 2019-02-22 2021-11-19 西门子股份公司 授权对计算机化系统中的对象的访问的方法、计算机程序产品和现场设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11436343B2 (en) * 2019-12-31 2022-09-06 Arm Limited Device, system, and method of policy enforcement for rich execution environment
CN113449346B (zh) * 2021-09-01 2021-12-14 飞腾信息技术有限公司 微处理器、数据处理方法、电子设备和存储介质

Patent Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101411121A (zh) * 2006-07-10 2009-04-15 三星电子株式会社 基于装置临近度提供访问权限的方法及所述方法使用的中央访问装置
CN102696038A (zh) * 2009-12-31 2012-09-26 桑迪士克科技股份有限公司 用于提供可缩放内容保护系统的存储器件和方法
CN101820342A (zh) * 2010-03-31 2010-09-01 北京飞天诚信科技有限公司 硬件加密引擎的实现方法
CN104081712A (zh) * 2012-02-09 2014-10-01 英特尔公司 使用隐藏的根密钥的可重复的应用特定的加密密钥获得
CN106415564A (zh) * 2014-06-05 2017-02-15 索尼公司 可信执行环境的动态配置
CN107408096A (zh) * 2015-03-04 2017-11-28 高通股份有限公司 对硬件块的适应性存取控制
CN107851162A (zh) * 2015-07-20 2018-03-27 英特尔公司 用于对安全i/o的密码引擎进行安全编程的技术
CN106980794A (zh) * 2017-04-01 2017-07-25 北京元心科技有限公司 基于TrustZone的文件加解密方法、装置及终端设备
CN112136131A (zh) * 2018-05-17 2020-12-25 三星电子株式会社 连接到多个处理器的安全模块的控制方法以及用于实现该方法的电子装置
US20210312091A1 (en) * 2018-05-25 2021-10-07 Secure-Ic Sas Multi-master security circuit
CN113678129A (zh) * 2019-02-22 2021-11-19 西门子股份公司 授权对计算机化系统中的对象的访问的方法、计算机程序产品和现场设备
US20200380149A1 (en) * 2019-05-31 2020-12-03 Apple Inc. Separation of managed and unmanaged data in a computing device
CN112149144A (zh) * 2019-06-28 2020-12-29 英特尔公司 聚合密码引擎
CN110321713A (zh) * 2019-07-08 2019-10-11 北京可信华泰信息技术有限公司 基于双体系架构的可信计算平台的动态度量方法和装置
CN110334512A (zh) * 2019-07-08 2019-10-15 北京可信华泰信息技术有限公司 基于双体系架构的可信计算平台的静态度量方法和装置
CN110543764A (zh) * 2019-09-11 2019-12-06 天津飞腾信息技术有限公司 片上系统内存防护方法、密码加速引擎及内存防护装置
CN111429254A (zh) * 2020-03-19 2020-07-17 腾讯科技(深圳)有限公司 一种业务数据处理方法、设备以及可读存储介质
CN111767586A (zh) * 2020-06-09 2020-10-13 北京智芯微电子科技有限公司 内置硬件密码学算法协处理器的微处理器及安全芯片
CN113420308A (zh) * 2021-07-01 2021-09-21 联芸科技(杭州)有限公司 用于加密存储器的数据访问控制方法及控制系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114911726A (zh) * 2022-07-15 2022-08-16 飞腾信息技术有限公司 数据传输方法、相关装置、系统及计算机可读存储介质
CN117353921A (zh) * 2023-12-06 2024-01-05 飞腾信息技术有限公司 密钥管理方法、装置、计算设备及计算机可读存储介质
CN117353921B (zh) * 2023-12-06 2024-02-13 飞腾信息技术有限公司 密钥管理方法、装置、计算设备及计算机可读存储介质

Also Published As

Publication number Publication date
US20230161885A1 (en) 2023-05-25
CN113821821B (zh) 2022-02-15
EP4187422A1 (en) 2023-05-31

Similar Documents

Publication Publication Date Title
CN112733107B (zh) 一种信息验证的方法、相关装置、设备以及存储介质
CN113821835B (zh) 密钥管理方法、密钥管理装置和计算设备
EP3605989B1 (en) Information sending method, information receiving method, apparatus, and system
US10601795B2 (en) Service processing method and electronic device
CN109600223B (zh) 验证方法、激活方法、装置、设备及存储介质
CN111193695B (zh) 一种第三方账号登录的加密方法、装置及存储介质
CN110492990B (zh) 区块链场景下的私钥管理方法、装置及系统
US9386045B2 (en) Device communication based on device trustworthiness
EP3602388A1 (en) Blockchain node communication method and apparatus
WO2021208615A1 (zh) 用户邀请方法、装置、计算机设备及计算机可读存储介质
US10601590B1 (en) Secure secrets in hardware security module for use by protected function in trusted execution environment
CN113821803B (zh) 安全架构系统、安全管理方法和计算设备
US20230161885A1 (en) Security architecture system, cryptographic operation method for security architecture system, and computing device
CN111563251B (zh) 一种终端设备中私密信息的加密方法和相关装置
US11943256B2 (en) Link detection method and apparatus, electronic device, and storage medium
EP3764258B1 (en) Constructing common trusted application for a plurality of applications
US20210034763A1 (en) Splitting Sensitive Data and Storing Split Sensitive Data in Different Application Environments
US20230075275A1 (en) Secure pairing and pairing lock for accessory devices
CN113821841B (zh) 资源管理方法、计算装置、计算设备和可读存储介质
CN108737341B (zh) 业务处理方法、终端及服务器
CN110140124B (zh) 分组应用使用同一密钥共享数据
US20230101005A1 (en) Quick response codes for data transfer
CN117714087A (zh) 文件加密传输方法、系统、介质及设备
KR20190020542A (ko) 장치 내 브라우저의 스크립트 엔진과 외부 이동 단말기를 이용한 전자 서명 메시지 생성

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant