CN112041838A - 安全区交互 - Google Patents
安全区交互 Download PDFInfo
- Publication number
- CN112041838A CN112041838A CN201880092591.6A CN201880092591A CN112041838A CN 112041838 A CN112041838 A CN 112041838A CN 201880092591 A CN201880092591 A CN 201880092591A CN 112041838 A CN112041838 A CN 112041838A
- Authority
- CN
- China
- Prior art keywords
- entity
- identity
- zone
- assertion
- secure
- 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
Links
- 230000003993 interaction Effects 0.000 title description 2
- 238000000034 method Methods 0.000 claims abstract description 124
- 238000004891 communication Methods 0.000 claims description 55
- 238000013475 authorization Methods 0.000 claims description 37
- 238000007789 sealing Methods 0.000 claims description 36
- 230000015654 memory Effects 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 27
- 230000007246 mechanism Effects 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 8
- 239000000284 extract Substances 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 9
- 239000000872 buffer Substances 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000004224 protection Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/74—Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/32—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
- G06Q20/322—Aspects of commerce using mobile devices [M-devices]
- G06Q20/3227—Aspects of commerce using mobile devices [M-devices] using secure elements embedded in M-devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4014—Identity check for transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/405—Establishing or using transaction specific rules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
- H04L9/0844—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
- H04W12/047—Key management, e.g. using generic bootstrapping architecture [GBA] without using a trusted network node as an anchor
- H04W12/0471—Key exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/018—Certifying business or products
- G06Q30/0185—Product, service or business identity fraud
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/127—Trusted platform modules [TPM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Software Systems (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
本公开的各方面提供了与安全区有关的各种方法。例如,一种用于安全区实体对第二实体进行认证的方法可以包括:由安全区实体的主机计算设备的一个或多个处理器接收请求和对第二实体的身份的断言,该断言包括用于第二身份的身份信息;使用安全区实体的断言验证器来确定断言是否有效;当断言有效时,提取身份信息;使用用于安全区实体的访问控制列表来对第二实体进行认证以确定身份信息是否满足访问控制列表的预期;当身份信息满足访问控制列表的预期时,完成请求。
Description
相关申请的交叉引用
本申请要求于2018年4月30日提交的美国临时申请No.62/664,463的申请日的权益,其公开内容通过引用合并于此。
背景技术
安全区技术可以使软件程序员能够开发安全的应用,这些应用被包含在称为安全区(enclave)的安全执行环境中。能够通过代码身份来识别安全区。安全区的代码身份封装安全区编写者对安全区行为的预期,并且通常包括关于正在安全区内部运行的代码、在其中运行代码的环境以及影响代码执行的任何附加参数的密码信息。安全区代码身份是由安全区执行的许多安全操作的基础。
在安全区内部运行的应用通常具有像存储器和代码完整性及存储器加密一样的保护措施。这些保护措施保护安全区免受在其外部执行的代码例如操作***或管理程序的影响。附加地,安全区能够提供它们正在运行的代码的可验证证明。这是在安全区***内启用信任的关键安全性属性。利用这些保护和安全性保证,程序设计员能够编写应用,该应用首先验证它确实在运行预期代码,执行一些安全性敏感的计算,并且将任何附加应用秘密供应到安全区中或从安全区中提取任何附加应用秘密。像这样的单安全区***对简单应用来说是足够的,在简单应用中,应用逻辑是自包含的并且不需要与外部实体进行通信。然而,这种相同的安全性并未很好地转化到涉及多个本地和远程安全区实体的更复杂***。
一些***也提供秘密密封,该秘密密封允许对秘密进行加密,使得仅具有特定身份的实体才能够打开它。前述安全区技术可以提供用于供应被绑定到安全区的身份的指定子集的密钥的硬件支持。这可以授予安全区密封秘密使得它们仅能够由在同一机器上执行的其身份与由密封器机器指定的子集匹配的另一安全区解封的能力。
发明内容
本公开的各方面提供了一种用于安全区实体对第二实体进行认证的方法。该方法包括:由安全区实体的主机计算设备的一个或多个处理器接收请求和对第二实体的身份的断言,该断言包括用于第二身份的身份信息;由一个或多个处理器使用安全区实体的断言验证器来确定断言是否有效;当断言有效时,由一个或多个处理器提取身份信息;由一个或多个处理器使用用于安全区实体的访问控制列表来对第二实体进行认证以确定身份信息是否满足访问控制列表的预期;以及当身份信息满足访问控制列表的预期时,由一个或多个处理器完成请求。
在一个示例中,第二实体是非安全区实体。在另一示例中,第二实体是第二安全区实体。在另一示例中,断言无效,从而拒绝请求。在另一示例中,当身份信息不满足访问控制列表的预期时,拒绝请求。在另一示例中,该方法还包括:使用安全区实体的断言生成器来生成包括用于安全区实体的身份信息的第二断言;以及将第二断言发送到第二实体以进行验证。在另一示例中,断言验证器包括用于验证断言并从经验证的断言中提取身份的指令。在另一示例中,断言验证器提供指示断言是否有效的布尔响应。在另一示例中,该方法还包括使用身份访问控制列表评估器来确定身份信息是否满足访问控制列表的预期,并且身份访问控制列表评估器包括用于对由实体拥有的身份集进行操作并且对照访问控制策略来评估该身份集的指令。在此示例中,身份访问控制列表评估器提供指示身份信息是否满足访问控制列表的预期匹配的布尔响应。此外,访问控制列表包括安全区身份预期的表达式,并且身份预期用于确定身份信息是否满足访问控制列表的预期。此外或替换地,安全区身份预期经由一个或多个逻辑运算被配置为包括两个或更多个身份预期的谓词。此外或替换地,每个身份预期包括参考身份和匹配规范,并且其中,至少一个参考身份和至少一个匹配规范用于确定身份信息是否满足访问控制列表的预期。
在另一示例中,安全区实体包括安全区服务器,该安全区服务器包括被配置成接收并完成请求的指令,并且其中,该安全区服务器用于完成请求。在另一示例中,身份信息包括身份描述,该身份描述将断言的身份分类为由安全区实体支持的身份类型并且识别负责处理该身份类型的身份的机构。在此示例中,机构用于识别断言验证器以便确定断言是否有效。此外或替换地,机构用于识别库以便确定身份信息是否满足访问控制列表的预期。附加地或替换地,机构用于识别包括接口的插件以便确定断言是否有效并且以便确定身份信息是否满足访问控制列表的预期。在另一示例中,安全区实体和第二实***于主机计算设备的本地存储器中。在另一示例中,第二实***于第二主机计算设备的本地存储器中,第二主机计算设备与主机计算设备不同。
本公开的另一方面提供了一种在安全区实体与第二实体之间建立通信信道的方法。该方法包括:由安全区实体的主机计算设备的一个或多个处理器从第二实体接收要发起通信信道的请求;由一个或多个处理器与第二实体协商用于通信信道的记录协议和用于以密码方式保护在通信信道之上发送的业务的秘密密钥;以及在协商完成之后,利用使用记录协议并且使用秘密密钥的通信信道与第二实体进行通信以对在通信信道之上交换的数据进行加密和认证。
在一个示例中,该方法还包括由一个或多个处理器进行证明和认证过程以验证第二实体的身份,证明过程包括接收第二实体的身份的断言并且验证第二实体的身份。在此示例中,证明和认证过程进一步包括将安全区实体的身份的断言发送到第二实体。在另一示例中,协商记录协议在进行证明和认证过程之前发生。在此示例中,该方法进一步包括在进行证明和认证过程之前协商身份的一种或多种类型的断言,使得在证明和认证过程中使用身份的一种或多种类型的断言。在此示例中,协商身份的一种或多种类型的断言包括识别安全区实体能够做出并验证的一种或多种类型的断言。此外或替换地,协商身份的一种或多种类型的断言包括接收第二实体能够做出并验证的一种或多种类型的断言。
在另一示例中,请求作为对安全区实体的远程过程调用被接收。在另一示例中,记录协议是消息传递协议,该消息传递协议用于在使用通信信道与第二实体进行通信时发送应用级数据。在另一示例中,该方法还包括由一个或多个处理器进行认证和授权过程以验证第二实体的身份,并且在协商完成之后进行认证和授权过程的至少一部分。在此示例中,认证和授权过程的第一部分包括验证接收到的第二实体的身份的断言。在另一示例中,认证和授权过程的第二部分包括使用从断言中提取的身份信息来授权第二实体。在此示例中,在使用通信信道来通信之前执行第一部分并且在使用通信信道来通信之前执行第二部分。或者,该方法还包括当安全区实体不能够对第二实体进行认证时中止通信信道。在另一示例中,在协商秘密密钥之前协商记录协议。在另一示例中,第二实体是非安全区实体。在另一示例中,第二实体是第二安全区实体。在此示例中,协商是利用第二安全区实体的安全区服务器来进行的,该安全区服务器被配置为包括被配置成接收并完成请求的指令的安全区服务器,并且其中,安全区服务器用于完成请求。在另一示例中,安全区实体和第二实***于主机计算设备的本地存储器中。在另一示例中,在另一示例中,第二实***于第二主机计算设备的本地存储器中,第二主机计算设备与主机计算设备不同。
本公开的另一方面提供了一种在主机计算设备的第一安全区实体中密封秘密的方法。该方法包括:由主机计算设备的一个或多个处理器向第一安全区实体的密封库输入报头和秘密,该报头包括用于秘密的身份访问控制列表;由一个或多个处理器使用密封库来生成密钥;由一个或多个处理器将密钥和身份访问控制列表发送到第二安全区实体;响应于发送,由一个或多个处理器从第二安全区实体接收密钥的密封版本;由一个或多个处理器使用密封库来密封秘密;以及将密钥的密封版本和身份访问控制列表附加到密封的秘密。
在一个示例中,密封库包括用于通过接受密封的数据来解封数据并且输出解封数据的指令。在另一示例中,该方法还包括经由远程过程调用与第二安全区实体建立通信。在此示例中,该方法还包括使用密封库来识别第二安全区实体的位置以便建立通信。在另一示例中,所接收到的密封密钥独立于第二安全区实体的主机计算设备。在另一示例中,该方法还包括在发送密钥之前使用身份访问控制列表来对第二安全区实体进行认证。在另一示例中,第一安全区实体不能够访问用于生成密钥的密封版本的主秘密密钥的未加密版本,使得第一安全区实体不能够解封密钥的密封版本。在另一示例中,该方法还包括将密封的秘密和附加的密钥的密封版本发送到第三安全区实体。在此示例中,秘密仅能够在秘密已被密封之后被发送到第三安全区实体。在另一示例中,身份访问控制列表识别能够解封密封的秘密的一个或多个实体。在另一示例中,密封秘密包括将秘密密封到白名单,该白名单允许其身份满足身份访问控制列表中的至少一个身份预期的任何安全区实体解封密封的秘密。在另一示例中,密封秘密包括将秘密密封到白名单,该白名单允许其身份满足身份访问控制列表中的所有身份预期的任何安全区实体解封密封的秘密。
在另一示例中,该方法也包括:向第一安全区实体的密封库输入包括附加的第二密钥的密封版本的第二密封的秘密;由一个或多个处理器向第三安全区实体发送请求以解封第二密封的秘密;由一个或多个处理器接收第二密钥的解封版本;以及由一个或多个处理器使用密封库来解封第二秘密。在此示例中,第三安全区实体是全部运行相同的代码并且各自拥有共享主秘密的多个相同的安全区实例中的一个,使得第一安全区实体能够将请求发送到多个相同的安全区实例中的任一个。此外,如果第三安全区实体不可用,则将请求发送到第四安全区实体。另外,从第四安全区实体接收第二密钥的解封版本,并且第四安全区实体是多个相同的安全区实例中的一个。此外或替换地,在使用用于第二密封的秘密的身份访问控制列表来在第一安全区实体与第二安全区实体之间建立远程过程调用通信信道之后发送请求。此外或替换地,该方法还包括使用密封库来识别第三安全区实体的位置以便将请求发送到第三安全区实体。在另一示例中,第二安全区实体是远程密封超级管理员(root),使得第二安全区实体是与第一安全区实体不同的安全区。在另一示例中,第一安全区实体和第二安全区实***于主机计算设备的本地存储器中。在另一示例中,第二安全区实***于第二主机计算设备的本地存储器中,第二主机计算设备与主机计算设备不同。
附图说明
图1是根据本公开的各方面的示例***的功能图。
图2是图1的***的各方面的功能图。
图3-7是依照本公开的各方面的代码的示例表示。
图8A-8B是依照本公开的各方面的证明、认证和授权概念的示例流程。
图9是依照本公开的各方面的握手协议的示例流程。
图10是依照本公开的各方面的报头的示例配置。
图11是依照本公开的各方面的密封的秘密的示例配置。
图12是依照本公开的各方面的秘密密封框架的示例流程。
具体实施方式
概述
本公开的各方面涉及即使在此类安全区实体通过不同的安全区技术被支持或者使用不同的安全区技术被开发并存在于不同的机器上的情况下的安全区的识别和认证。本文描述的识别和认证特征可以涉及多个不同的概念,包括如在下面更详细地讨论的证明(其中安全区或非安全区实体做出关于其身份的主张)、认证(其中一个安全区能够验证或确认另一安全区或实体的身份的属性)和授权(其中基于安全区的身份该安全区被提供对信息和/或操作的访问)。如本文所使用的,身份可以表示实体的一些唯一特性。这些特性可以由其他实体使用以得出关于该实体的预期行为的推理。在涉及多个安全区的***中,安全区能够对安全区对等方进行认证(通过向该安全区呈现其代码身份的证明)。证明对于在两个实体之间建立安全通信可能是必要的,并且也可以使得更高级***能够支持授权和访问控制。
典型安全区应该仅具有用于证明和认证的一种类型的代码身份,因为安全区通过一种类型的安全区技术被支持。然而,在更复杂的场景中当***包括通过不同类型的技术支持的多个安全区时,需要支持其他形式的证明和(附加地)其他类型的身份。例如,安全区能够拥有除代码身份以外的其他类型的身份,诸如证书或令牌以及与代码身份无关的其他特征。附加地,如果安全区***包括非安全区实体以及安全区实体两者,则***可能需要支持除代码身份以外的身份,诸如其他密码凭证,如令牌或证书。在一些实例中,安全区***也可以包括可能根本不拥有任何密码凭证的实体,因此,***可能需要支持未经认证的实体的概念。由于一些证明机制是CPU特定的并且仅能够在特定机器或计算设备中被有意义地使用,所以也需要提供证明代码身份的替代机制使得证明对远程实体或甚至非安全区实体而言有意义。
为了使得能实现在支持许多不同类型的身份的身份框架中实现证明、认证和授权所需的操作,可以在安全区***中的每个安全区处采用三个角色或编程接口,包括生成器、验证器和评估器。断言生成器可以包括用于代表安全区***中的实体生成断言的指令。在这方面,每个断言生成器可以提供生成做出身份的主张的断言的操作。通过这些操作生成的断言可以是以密码方式可验证的。
断言验证器可以包括用于验证断言并且从经验证的断言中提取身份的指令。断言验证器可以提供验证特定类型的身份的断言的操作。在这方面,对于不同类型的实体安全区可以包括不同的断言验证器。
身份访问控制列表(ACL)可以包括数据,该数据由创建了安全区的应用的用户或程序设计员定义以便评估安全区身份预期的任意逻辑表达式。身份ACL为用户提供了用于针对任何给定情形、关系或安全区确切地指定什么属性是相关的方式。每个安全区也可以包括一个或多个身份ACL评估器,该一个或多个身份ACL评估器包括用于对由实体拥有的身份集进行操作并且对照访问控制策略来评估该身份集的指令。
每个安全区也可以包括安全区客户端和安全区服务器。安全区客户端可以包括用于生成对安全区***内的其他安全区或实体的远程过程调用(RPC)的指令。类似地,安全区服务器可以包括用于接收由安全区***内的其他安全区或实体或从安全区***内的其他安全区或实体生成的请求并对其做出响应的指令。
身份框架可以为身份、断言和身份预期定义公共表示。例如,身份框架可以包括由身份框架支持的身份类或身份类别以及识别或定义负责处理特定类型的身份或断言的实体的机构指定。
身份框架中的不同类型的身份可以共享公共表示。例如,每个身份可以具有身份描述,该身份描述将身份分类为由身份框架支持的身份类中的一个并且还识别负责处理该类型的身份的机构。当对身份、断言和身份预期定义公共操作时,可以使用这些公共表示。也可以按这些公共表示而不是这些构造的具体形式或实例来定义针对身份框架中的前述编程接口中的每一个的操作。通过按这些公共表示定义操作,能够将不同的身份、断言和身份预期统一成单个统一框架。
所描述的身份框架可以是可扩展的以便支持安全区身份的各种表示法。可以以插件的形式提供对框架的扩展。插件可以是针对特定身份和断言类型实现三个编程接口中的每一个的库。利用身份框架的应用还可以同时地利用许多插件。这可以提供支持多种类型的安全区身份的丰富开发环境。
与单安全区应用比,在多个安全区的***内的通信还带来更有挑战性的问题。单安全区应用可能仅需要在安全区与本地不可信的调用者之间交换信息。通常通过给程序设计员提供简单的消息传递机制以及能够用于开发安全安全区应用的证明原语来解决此问题。在多安全区***中,情况可能是需要通信的安全区位于不同的机器上和/或由不同的安全区技术来支持。他们必须依靠诸如UDP或TCP套接字的不可信通信机制来发送和接收消息。为了在建立通信信道时提供附加安全性,这些安全区可以利用远程过程调用(RPC)安全框架,该RPC安全框架提供用于使得安全区能够执行相互认证/证明的附加消息,以及就能用于对他们的通信进行加密的加密密钥达成一致。
保证安全区通信的一个可能的方式是修改安全区之间的应用级协议以自组织(ad-hoc)方式并入安全区证明。例如,考虑使得安全区A能够从安全区B中检索秘密的协议。这可以由两个安全区使用像下列一样的消息的序列来实现:
安全区A→安全区B
消息1:识别秘密并请求挑战
安全区B→安全区A
消息2:包含挑战
安全区A→安全区B
消息3:提供公共密钥,以及对绑定到该挑战和公共密钥的安全区A的身份的证明
安全区B→安全区A
消息4:包含用公共密钥加密的实际秘密
然而,安全协议开发对编程具有挑战性、危险易出错,并且将大部分安全性负担留给程序设计员。虽然有一些协议可用,但是这些协议受限制,因为它们特定于支持安全区的技术。例如,英特尔的提供认证机制以及密钥交换的增强型隐私ID(EPID)协议仅支持对SGX安全区的证明。存在能够用于建立安全且经认证的信道的各种其他密码握手协议,诸如传输层安全性(TLS)或应用层传输安全性(ALTS)。然而,这些协议均不支持基于安全区代码身份或多于一种形式的身份的认证。
为了解决这些限制,身份框架能够用于通过提供在通信信道的建立期间执行基于安全区身份的认证的握手协议来实现基于安全区身份的RPC安全性***。握手协议可以利用断言生成器和断言验证器的各种实现方式以使得能够在两个实体之间交换断言,从而允许实体相互地认证。通过使用上述身份框架,握手协议可以能够启用支持任意类型的安全区身份的统一认证机制。
可以使用RPC安全性***,其中基于安全区身份使RPC信道安全并且在该信道之上路由RPC。在这方面,能够将进出安全区的调用建模为RPC。也能够将此RPC安全性***应用于安全区对之间或拥有一些密码凭证的安全区和非安全区实体之间的调用。
为了发起RPC信道,可以在信道建立期间执行握手协议。握手协议可以用于在后续建立的信道上实现特定安全性保证并且可以提供信道机密性、使用一个或多个安全区身份的认证以及对更高级授权***的支持。握手协议可以在RPC通信信道的建立期间被使用并且可以在安全区客户端和安全区服务器交换任何应用级数据之前发生。在握手协议期间,实体交换并验证断言,协商记录协议,并且协商用于以密码方式保护在信道之上发送的将来业务的秘密密钥。在握手协议完成之后,安全区客户端和安全区服务器使用记录协议来通信并且交换的所有数据都用秘密密钥进行加密。
可以将支持RPC安全性***的编程接口实现为以上讨论的库。该库可以定义断言的字节的确切格式和解释。由于库的使用,所以握手协议不必严格地指定断言的格式、断言要约和断言请求,并且握手协议可以在表示断言、断言请求和断言要约的不透明字节块(blob)上操作。在下面描述可能的协议的简化示例。
握手协议允许在交换期间断言各种身份。能在客户端和服务器两者上配置所期望的断言。能通过静态注册以握手注册这些库,并且所有注册的库都能被添加到注册图并且能够被查询以检查特定库的存在。使用这种注册图,安全区客户端和安全区服务器(或非安全区实体的RPC服务器)能够取决于其配置和哪些库可用来生成并验证断言。
握手协议支持对各种类型的安全区身份的认证并且允许参与者在认证过程期间交换多个身份。与身份框架一样,能够通过为新的身份添加新的断言生成器和断言验证器来使RPC安全性***适于新的身份。在握手协议已完成之后,安全区客户端和安全区服务器两者(或非安全区实体的RPC服务器)都可以访问连接的认证属性,以便访问另一者的身份信息以继续相互认证。
如以上所指出的,一些***也授予安全区密封秘密的能力,使得它们仅能够通过在同一机器上执行的其身份与由密封器指定的子集匹配的另一安全区来解封。然而,这些特征不能够用于将秘密密封到其身份与密封器的身份不匹配的安全区,此类特征也不能用于将秘密密封到在不同的机器或计算设备上执行的安全区。
因此,身份框架的另一可能的应用可以包括秘密密封框架。秘密密封框架可以使得能够在多安全区***内对敏感秘密进行密码密封并且仅向***中独立于实体驻留在其上的特定主机或计算设备的授权实体公开此类秘密。
秘密密封框架工作可以涉及SecretSealer接口。SecretSealer可以接受报头、秘密和附加的经认证的数据并且输出密封秘密。这种附加的经认证的数据可以在经由本文描述的RPC通信信道运送期间被加密,但是可能以其他方式不被加密。SecretSealer还可以包括通过接受密封的秘密来解封秘密的指令并且输出秘密。报头可以包括关于秘密的元数据,以及被允许解封秘密的安全区身份的身份ACL。此报头也可以被包括在由SecretSealer输出的密封的秘密中并且可以由SecretSealer验证以便输出秘密。
实际实现密封和解封的实体可以是密封超级管理员(root)并且可以是本地实体或远程实体。本地密封超级管理员可以是在与SecretSealer相同的安全区中执行的超级管理员。远程密封超级管理员可以是在与SecretSealer不同的安全区中执行的超级管理员。远程密封超级管理员可以经由本文讨论的RPC通信信道和握手协议起作用。像这样,远程密封超级管理员能够利用断言生成器和断言验证器接口来对做出要密封或解封秘密的请求的安全区客户端执行认证。这也允许远程超级管理员以密码方式验证安全区客户端的身份,从而只有当请求者的身份与存在于密封秘密的报头中的身份ACL匹配时才允许远程超级管理员解封秘密。此外,安全区客户端可以利用由远程密封超级管理员进行的断言,并且在其身份与客户端的身份预期不匹配的情况下拒绝与远程超级管理员进行通信。
远程密封超级管理员可以包括全部都运行相同的代码并且各自拥有共享主秘密的多个相同的安全区实例。此主秘密用于导出密封单独的秘密的密钥并且只能在远程密封超级管理员安全区实例中以未加密形式使用。
与以上讨论的身份ACL一样,用于密封的秘密的身份ACL可以包括安全区身份预期的集合。因为组成ACL的身份预期是使用逻辑运算符的任意嵌套来分组的,所以这可以在密封秘密时给SecretSealer提供一定灵活性。
在这里描述的特征提供了将安全区身份和证明的各种表示法统一成单个、技术不可知的框架的复杂多安全区***。这些***对于指望用于其应用的附加安全性的安全区技术或想要减轻关于在云中运行安全性敏感工作流的担忧的用户来说是尤其有用的。身份框架经由插件也可扩展且可组合。例如,能够任意地扩展本文描述的身份框架以增加对新型身份的支持。这种扩展性是经由框架的插件模型启用的。像这样,用户能够选择要在其应用中使用哪些扩展,从而启用对仅其特定应用中需要的身份的支持。
此外,RPC安全性***特征可以允许实现和单独的安全区应用一样安全的多安全区***。这些特征在安全区不知道其他实体(即RPC的接收方)的位置的情形下是尤其有用的,并且这些特征很好地拓展到较大安全区***从而使RPC安全性***变得尤其可用于基于云的计算。这是因为信道是安全的,使得仅参与建立信道的实体能够读取和写入到信道,参与建立信道的实体交换并验证彼此的安全区身份,并且两个实体都能够设立授权策略以控制能够由经认证的实体在信道上做出哪些调用。能够在多安全区***中利用此RPC安全性***以在该***中的两个安全区或安全区实体与非安全区实体之间启用安全且经认证的通信信道并且还提供调用级授权。
本文讨论的秘密密封框架还提供用于独立于密封器的身份和在其上密封秘密的硬件的秘密的密封。像这样,秘密密封框架可以使得能够在多安全区***内对敏感秘密进行密码密封并且仅向***中独立于实体驻留在其上的特定主机或计算设备的授权实体公开此类秘密。
示例***
图1包括可以在其中实现本文描述的特征的示例安全区***100。不应该将其认为是限制本公开的范围或本文描述的特征的有用性。在此示例中,安全区***100能够包括经由网络150连接的计算设备110、120、130和存储***140。每个计算设备110、120、130能够包含通常存在于通用计算设备中的一个或多个处理器112、存储器114和其它组件。
尽管在***100中描绘了仅几个计算设备和存储***,但是可以将***扩展到任何数目的附加设备。除了包括经由网络连接的多个计算设备和存储***的***之外,本文描述的特征还可以同样地适用于其它类型的设备,诸如单独的芯片,包括并入片上***(Soc)的芯片或具有存储器的其它芯片,其可以包括一个或者多个安全区。
计算设备110、120、130中的每一个的存储器114能够存储可由一个或多个处理器112访问的信息,包括能够由一个或多个处理器执行的指令。存储器也能够包括能够由处理器检索、操纵或存储的数据。存储器可以是能够存储可由处理器访问的信息的任何非暂时性类型,诸如硬盘驱动器、存储卡、ROM、RAM、DVD、CD-ROM、支持写入的存储器和只读存储器。
指令可以是要由一个或多个处理器直接执行的任何指令集,诸如机器代码,或者是要由一个或多个处理器间接执行的任何指令集,诸如脚本。在那方面,能够在本文中互换地使用术语“指令”、“应用”、“步骤”和“程序”。指令能够被以目标代码格式存储以供由处理器直接处理,或者以包括被按需解释或提前编译的独立源代码模块的脚本或合集的任何其它计算设备语言存储。在下面更详细地说明指令的功能、方法和例程。
数据可以由一个或多个处理器112依照指令来检索、存储或修改。例如,尽管本文描述的主题不受任何特定数据结构限制,但是数据能够被存储在计算机寄存器中,作为具有许多不同字段和记录的表存储在关系数据库中,或者存储在XML文档中。数据也能够被以诸如但不限于二进制值、ASCII或Unicode的任何计算设备可读格式格式化。此外,数据能够包括足以识别相关信息的任何信息,诸如数字、描述性文本、专有代码、指针、对存储在其它存储器中如在其它网络位置处的数据的引用、或由函数使用来计算相关数据的信息。
一个或多个处理器112可以是任何常规的处理器,诸如可商购的CPU。或者,处理器可以是诸如专用集成电路(“ASIC”)或其它基于硬件的处理器的专用组件。尽管不必要,但是计算设备110中的一个或多个可以包括专门的硬件组件以执行具体计算过程,诸如更快或更高效地对视频进行解码、使视频帧与图像匹配、使视频失真、对失真视频进行编码等。
尽管图1在功能上将计算设备110的处理器、存储器和其它元件图示为在同一块内,但是处理器、计算机、计算设备或存储器实际上能够包括可以或可能未被存储在同一物理壳体中的多个处理器、计算机、计算设备或存储器。例如,存储器可以是位于与计算设备110的壳体不同的壳体中的硬盘驱动器或其它存储介质。因此,对处理器、计算机、计算设备或存储器的引用将被理解成包括对可能或可能不并行操作的处理器、计算机、计算设备或存储器的合集的引用。例如,计算设备110可以包括作为负载平衡服务器场、分布式***等操作的服务器计算设备。又另外,尽管下述一些功能被指示为在具有单个处理器的单个计算设备上进行,但是本文描述的主题的各个方面能够由多个计算设备来实现,例如,通过网络150传送信息。
计算设备110、120、130中的每一个均可以处于网络150的不同节点处并且能够与网络150的其它节点直接和间接进行通信。尽管在图1中描绘了仅几个计算设备,但是应该领会,典型***能够包括大量连接的计算设备,其中每个不同的计算设备处于网络150的不同节点处。本文描述的网络150和中间节点能够使用各种协议和***来互连,使得网络可以是因特网、万维网、特定内联网、广域网或局域网的一部分。网络能够利用标准通信协议,诸如以太网、WiFi和HTTP、一个或多个公司专有的协议以及前述的各种组合。尽管当如上所述发送或接收信息时获得了某些优点,但是本文描述的主题的其它方面不限于信息的任何特定传输方式。
像以上讨论的存储器一样,存储***140也可以存储能够由计算设备110、120、130访问的信息。然而,在这种情况下,存储***140可以存储能够通过网络150访问的信息。与存储器一样,存储***能够包括能够存储可由处理器访问的信息的任何非暂时性类型,诸如硬盘驱动器、存储卡、ROM、RAM、DVD、CD-ROM、支持写入的存储器和只读存储器。
在此示例中,计算设备110、120、130中的每一个的指令可以包括一个或多个应用。这些应用可以在存储器内(本地地在存储器114处或远程地在存储***140处)定义安全区160、170、180、190。每个安全区可以由其上存储安全区的硬件“托管”。例如,计算设备110可以是用于安全区160和170的主机计算设备,并且计算设备120可以是安全区180的主机计算设备。每个安全区可以用于存储数据和指令,同时限制其他应用使用此类数据和指令。例如,数据可以包括敏感信息,诸如密码、***数据、社会保险号或用户想要保密的任何其他信息。并且,如下面进一步讨论的,指令可以用于限制对这种数据的访问。尽管计算设备110仅包括两个安全区,计算设备120仅包括1个安全区,计算设备130不包括安全区,并且存储***140仅包括1个安全区,但是可以用计算设备110、120的存储器、存储***140或***100的任何其他设备来定义任何数量的安全区。
这些安全区中的每一个都可以被认为是安全区***100的“实体”。类似地,计算设备130的应用或计算设备130或其他设备或应用,诸如固定功能安全性ASIC、智能卡以及托管在云中的远程服务也可能被视为“非安全区”实体。
作为实体,安全区可以具有或者被用于生成可以在安全区***100的身份框架中启用证明和认证的身份和断言。断言可以是身份的以密码方式可验证的主张。然而,为了启用授权,可以使用包括基础参考身份的身份预期和指定与预期相关的参考身份的子集的匹配规范。在这方面,身份预期可以表示身份的预期或者说安全区***内的实体将如何陈述另一实体的身份应该是什么的预期。
为了启用在身份框架中实现证明、认证和授权所需的操作,可以在安全区***100中的每个安全区处采用三个角色或编程接口,包括生成器、验证器和评估器。例如,转向图2,安全区160、170、180、190各自包括一个或多个断言生成器210、212、214、216。每个安全区可以包括不同类型的断言生成器用于不同类型的断言,因为每种类型的身份可以具有许多不同类型的断言。断言生成器可以包括用于代表安全区***中的实体生成断言的指令。在这方面,每个断言生成器可以提供生成对身份做出主张的断言的操作。通过这些操作生成的断言可以是以密码方式可验证的。
此外,验证器能够验证断言以确定对断言的主张是否有效。例如,每个安全区160、170、180、190包括一个或多个断言验证器220、222、224、226。断言验证器可以包括用于验证断言并且从经验证的断言中提取身份的指令。断言验证器可以提供验证特定类型的身份的断言的操作。在这方面,安全区可以包括不同的断言验证器用于不同类型的身份。在操作中,给定断言,断言验证器可以确定断言中的身份的主张是否有效。作为示例,断言验证器可以返回指示是否能够验证断言的布尔响应(即,是/否应答)。如果断言有效且被验证,则断言验证器也可以从断言中提取身份。
每个安全区160、170、180、190还可以包括身份访问控制列表(ACL)230、232、234、236。这些身份ACL中的每一个可以包括由创建了安全区的应用的用户或程序设计员定义以便评估安全区身份预期的任意逻辑表达式的数据。安全区身份预期由参考身份和匹配规范构成。像这样,身份ACL为用于提供了针对任何给定情形、关系或安全区确切地指定什么属性是相关的方式。例如,如果E的参考身份的匹配规范子集与I的匹配规范子集相同,则安全区身份I将被认为满足身份预期E。
每个安全区160、170、180、190还可以包括一个或多个身份ACL评估器240、242、244、246。这些身份ACL评估器可以包括用于对由实体拥有的身份集进行操作并且对照访问控制策略来评估该身份集的指令。可以将访问控制策略指定为对一个或多个身份预期的谓词(predicate)。在实现级,能够将此类谓词指定为经由像与(AND)、或(OR)和非(NOT)一样的任意逻辑运算组合在一起的一个或多个身份预期。
身份ACL评估器还可以提供对照身份ACL谓词或基线身份预期来匹配身份的操作。换句话说,给定身份和身份ACL谓词身份预期,此身份ACL评估器检查身份是否与预期匹配。例如,如果两者不兼容,则身份ACL评估器可以返回“假”。如果两者兼容但不匹配,则身份ACL评估器也可以返回“假”。否则,如果匹配检出,则身份ACL评估器可以返回“真”。
能够利用一个或多个子操作来实现安全区***100中的身份ACL评估器中的一个或多个。例如,身份预期匹配器可以提供对照身份预期来匹配身份的操作。此操作可以将匹配规范应用于参考身份,然后执行匹配。这可以提供布尔结果(即是/否应答)。此操作能够用于实现对复杂逻辑谓词的评估。身份ACL评估器因此能够按此身份预期匹配器实现谓词评估。作为示例,考虑在以下谓词中将身份预期A、B和C链接在一起的ACL L:((A或B)与C)。身份ACL评估器通过将每个单独的匹配操作(例如,对照A匹配N、对照B匹配N、对照C匹配N)委托给身份预期匹配器来对照此ACL来评估身份列表N。相同的身份预期匹配器可以处理所有这些匹配操作,或者每个匹配能够由不同的身份预期匹配器来处理。身份预期匹配器也可以将一些匹配操作委托给其他匹配器并汇总结果。
每个安全区还可以包括安全区客户端250、252、254、256和安全区服务器260、262、264、266。安全区客户端可以包括用于生成对安全区服务器100内的其他安全区或实体的远程过程调用(RPC)的指令。类似地,安全区服务器可以包括用于接收由安全区***内的其他安全区或实体或从其生成的请求并对其做出响应的指令。
身份框架可以为身份、断言和身份预期定义公共表示。例如,身份框架可以包括由身份框架支持的身份类或身份类别以及例如如图4和图6中所示在用于身份或断言的身份或机构描述中定义的机构指定,该机构指定识别或定义负责处理特定类型的身份或断言的实体。作为示例,身份框架可以支持两种(或更多种)身份类:代码身份和基于证书的身份。像这样,代码身份可以包括“ABC”代码身份和“123”代码身份,其中ABC代码身份由ABC机构处理,并且123代码身份由123机构处理。拥有ABC代码身份或123代码身份的实体能够在身份框架中表示其身份。类似地,断言可以包括“XYZ”类型断言和“456”类型断言,其中XYZ类型断言由XYZ机构处理,并且456类型断言由456机构处理。当然,ABC、123、XYZ和456仅仅是抽象示例;也可以使用具有不同指定的任何数目的附加身份和机构。图3提供了利用协议缓冲区枚举器来定义支持的身份类的示例。
身份框架中的身份可以共享公共表示。例如,每个身份可以具有身份描述,该身份描述将身份分类为由身份框架支持的身份类型或类中的一种,并且也识别附加到实际身份的负责处理该类型的身份的机构。身份描述允许以一致方式表示不同类型的身份。例如,具有机构值的身份描述能用如图4中所示的协议缓冲区消息加以表示。
实际身份可以是利用任何底层编码或数据表示的不透明字节块。通过检查身份的身份描述,可以确定用于身份的身份类并且可以对块进行解码以提取身份的其他细节。能够例如通过如图5中所示的协议缓冲区消息来表示身份。
身份框架中的断言可以具有与身份类似的表示。像身份一样,断言可能具有断言描述。断言描述可以将在断言中被断言的身份分类为由身份框架支持的身份类中的一种并且也可以识别处理该类型的断言的机构。图6提供了利用协议缓冲区枚举器定义具有机构值的断言描述的示例。
断言包括身份的类型、机构以及包含实际的以密码方式可验证的身份的主张的字节块。在这方面,块是对身份的实际断言。身份和机构的类型指示如何解释块,使得能够将块传递到正确的断言验证器以进行验证。断言能够例如用如图7中所示的协议缓冲区消息加以表示。
当对身份、断言和身份预期定义公共操作时,可以使用这些公共表示。也可以按这些公共表示而不是这些构造的具体形式或实例来定义针对身份框架中的前述编程接口中的每一个的操作。通过按这些公共表示来定义操作,能够将不同的身份、断言和身份预期统一成单个、统一的框架。
所描述的身份框架可以是可扩展的以便支持安全区身份的各种表示法。可以以插件的形式提供对框架的扩展。插件可以是针对特定身份和断言类型实现三个编程接口中的每一个的库。在这方面,不同的库可以被用于不同类型的断言或不同类型的身份,但是如果两种类型的断言非常类似,则可以通过同一库来处理它们。或者,单个库可以能够处理不止一种类型的断言。可以将库***到身份框架中,使得库能够与整个身份框架相结合地被使用。利用身份框架的应用也可以同时地利用许多插件。这可以提供支持多种类型的安全区身份的丰富开发环境。
可以使用支持抽象类(接口)的某种表示法的任何编程语言来实现此身份框架。出于图示目的,本文的示例涉及在C++生态***中实现的身份框架,其中协议缓冲区被用作用于身份、断言和身份预期的数据表示格式,但是也可以采用其他语言和数据表示格式。能够将上述编程接口中的每一个定义为Java类或C++类,其中每个操作作为虚拟类方法存在。组件库也可以用于提供每个编程接口的具体实现方式。例如,能够直接利用组件库,诸如以生成具体断言或执行身份匹配,或者可以在利用上述抽象身份和断言特征的更高级***的上下文中使用组件库。例如,身份匹配操作可能需要按需访问各种具体实现方式。
一种可能的方法可以利用委托(delegation)和静态注册的组合。首先,接口的具体实现方式可以用于处理所有可能的身份类型。这种类可以被称为委托器。在给定程序中,可以实例化这种类的恰好一个实例,使得该类是单例。每一个其他具体实现方式也可以被实例化一次,然后***到执行单元范围的注册图中。在这方面,注册图的实例可以存在于安全区内部,并且注册图的另一实例可以存在于安全区外部。例如,给定不同的位置,这些实例可以是相同的或具有微小差异。能经由可用组件库的静态注册来填充此注册图。为了执行身份匹配,可以用输入调用委托器的匹配操作。委托器可以用身份描述来查询注册图以找到用于该身份的身份匹配器的适当的具体实现方式。如果存在这样的实现方式,则委托器可以将调用委托给相应对象上的匹配操作。如果实现方式不存在,则委托器可能返回指示身份类型不被支持的错误。
图8A和图8B提供在上述身份框架内的操作中的证明、认证和授权概念的视觉表示。安全区A和安全区B可以表示在通过相同或不同的安全区技术来支持的并在安全区***内操作的相同的计算设备上(诸如安全区160和170)或不同的计算设备上(诸如安全区160和180)运行的两个不同的安全区。在这方面,此类信息的实际处理可以由安全区驻留在其上或者以其他方式在安全区上(例如,远程地)操作的计算设备的处理器112来执行。
转向图8A,在步骤(1)处,安全区A的计算设备处的应用(经由一个或多个处理器112)使用安全区A的断言生成器来生成安全区A的身份的断言。在步骤(2)处,由安全区A经由通信信道(例如在本地或通过网络150)将断言发送到安全区B。在步骤(3a)处,安全区B的计算设备处的应用(经由一个或多个处理器112)利用安全区B的断言验证器来验证所接收到的断言。如果安全区B的断言验证器返回“假”,则因为来自安全区A的断言无效,所以认证过程结束。如果安全区B的断言验证器在步骤(3b)处返回“真”,则断言验证器从断言中提取身份。
转向图8B,在步骤4处,在认证之后,安全区A的安全区客户端(图8B中的RPC客户端)可以用于经由通信信道(例如在本地或通过网络150)对安全区B发起RPC。在步骤5a处,安全区B的RPC服务器可以用于提取客户端身份(经由一个或多个处理器112)并且在步骤5b处可以使用安全区B的身份ACL评估器来确定身份是否与用于RPC服务器的授权策略或ACL匹配。如果安全区B的身份ACL评估器返回“假”,则RPC被拒绝,因为所提取的身份无效或者说不满足ACL中定义的预期。如果安全区B的身份ACL评估器验证器在步骤(6)处返回“真”,则所提取的身份确实满足ACL中定义的预期。因此,安全区B的RPC服务器可以完成由安全区A的安全区客户端请求的RPC。
可以以各种方式使用上述身份框架。例如,该身份框架能够用于通过提供在通信信道的建立期间执行基于安全区身份的认证的握手协议来实现基于安全区身份的RPC安全性***。握手协议可以利用断言生成器和断言验证器的各种实现方式以使得能够在两个实体之间交换断言,从而允许实体相互认证。通过使用上述身份框架,握手协议可以能够启用支持任意类型的安全区身份的统一认证机制。
可以使用RPC安全性***,其中基于安全区身份使RPC信道安全并且在该信道之上路由RPC。在这方面,能够将进出安全区的调用建模为RPC。例如,不可信实体可以使RPC进入向不可信调用者提供API的安全区。类似地,在相反情形下,安全区可以对主机或本地计算设备做出传出RPC,以便请求某种***资源或者编写日志消息。也能够将RPC安全性***应用于安全区实体之间的调用。想要做出调用进入另一安全区的安全区能够向在该安全区中运行的安全区服务器发出RPC。附加地,也能够将此RPC安全性***应用于拥有一些密码凭证的安全区实体和非安全区实体之间的调用。
如以上所指出的,为了发起RPC信道,可以在信道建立期间执行握手协议。握手协议可以用于在后续建立的信道上实现特定安全性保证并且可以提供信道机密性、使用一个或多个安全区身份的认证以及对更高级授权***的支持。
图9是根据前述握手协议的“客户端”与“服务器”之间的消息的示例流程。发起连接的实体是客户端。客户端与服务器建立信道。客户端或服务器任一个可以是安全区实体,并且情况可能是两者都是安全区实体。在这方面,客户端可以表示诸如安全区160的第一安全区或实体的安全区客户端,或诸如客户端计算设备110、120或130的应用的安全区客户端的非安全区实体,而服务器可以表示诸如安全区170、180的第二安全区或实体的安全区服务器或诸如客户端计算设备110、120或130的应用的非安全区实体。
握手协议可以在RPC通信信道的建立期间被使用并且可以在客户端和服务器交换任何应用级数据之前发生。在握手协议期间,实体交换并验证断言,如以上关于图8A所讨论的,协商记录协议,并且协商用于以密码方式保护通过信道发送的将来业务的秘密密钥。在握手协议完成之后,客户端和服务器使用记录协议来通信,并且所有交换的数据都用秘密密钥进行加密和/或认证。
参考图9,从客户端到服务器的消息1和从服务器到客户端的消息2可以使得参与者(即服务器和客户端)能够协商断言的类型、握手密码套件、记录协议和握手协议版本。通过允许参与者协商将使用哪些类型的断言,握手协议能够支持满足两个参与者的安全性预期的认证。这种协商(消息1和消息2)能够在任何身份被断言之前在握手开始时进行。因此,发起交换的参与者通过向第二参与者发送包含其断言请求和断言要约的消息(消息1)来担任“客户端”角色。第二参与者担任“服务器”的角色。服务器接收客户端的要约和请求,根据服务器能够断言并验证的哪些身份在它们之间选择,然后发回服务器自己的要约和请求(消息2)。
可以将支持RPC安全性***的编程接口实现为以上讨论的库。该库可以定义断言的字节的确切格式和解释。由于库的使用,所以握手协议不必严格地指定断言的格式、断言要约和断言请求,并且握手协议可以在表示断言、断言请求和断言要约的字节的不透明块上操作。握手协议将大部分工作留给库,但是在握手协议期间的特定时间调用那些接口。在下面描述可能的协议的简化示例。
握手协议允许在交换期间断言各种身份。能在客户端和服务器两者上配置所期望的断言。每个参与者将使用适当的库来按需生成(使用断言生成器)并验证(使用断言验证器)断言。再次,如上所述能通过静态注册向握手库注册这些库,并且所有注册的库都能被添加到前述注册图并且能够被查询以检查特定库的存在。握手库可以用于进行握手协议。在这方面,客户端和服务器中的每一个均具有它自己的握手库。使用此注册图,安全区客户端和安全区服务器(或非安全区实体的RPC服务器)能够取决于其配置和哪些库可用来生成并验证断言。
返回图9,记录协议可以是用于发送应用级数据的消息传递协议。对于安全区***100,这可以被用作通过其发送RPC和所有RPC元数据的基础协议。作为示例,RPC安全性***能采用gRPC,该gRPC将HTTP用于消息成帧,而记录协议能将具有128比特密钥的AES-GCM和偶数奇数方案用于划分计数器空间。一旦握手完成,然后就将使用此协议来使HTTP帧安全。
消息3和消息4允许实现客户端与服务器之间的认证。例如,服务器可以使用服务器的断言生成器来生成服务器的身份的断言。服务器然后可以将此断言发送到客户端(消息3)。此后,客户端将使用客户端的断言验证器来验证断言。类似地,客户端可以使用客户端的断言生成器来生成客户端的身份的断言。客户端然后可以将此断言发送到服务器(消息4)。此后,服务器将使用服务器的断言验证器来验证断言。在这方面,消息3和消息4可以与图2A的步骤2相对应。如果断言未被验证或者客户端和/或服务器的断言验证器返回假,如在图8A的步骤3A中一样,则客户端和/或服务器可以中止握手。
握手协议支持针对各种类型的安全区身份的认证并且允许参与者在认证过程期间交换多个身份。与身份框架一样,能通过为这些身份添加新的断言生成器和断言验证器来使RPC安全性***适于新的身份。因此,能够如以上讨论的ABC、123、XYZ和456示例中所讨论的那样任意地扩展这些身份。换句话说,如果新的身份被添加到身份框架,则握手协议是独立于此的并且不需要被改变。这是因为握手协议不需要理解特定身份的细节或甚至不需要理解如何对其进行操作。
消息5和消息6可以通过允许握手参与者就握手密码套件达成一致并且协商会话加密密钥来启用信道机密性。信道机密性允许在信道上传输的数据对信道参与者保持秘密。会话加密密钥仅对参与握手的参与者是已知的并且用于对信道上的其他业务进行加密和/或认证。因此,第三方不能窃听和/或篡改这些实体之间的通信。
作为示例,能够通过Diffie-Hellman密钥交换来实现对会话加密密钥的协商。在这种交换中,参与者、客户端和服务器可以生成临时的Diffie-Hellman密钥对。该密钥对包括由参与者保密的私密密钥和能够与其他参与者共享的公共密钥。参与者交换他们的Diffie-Hellman公共密钥,然后使用椭圆曲线密码学,参与者能够计算秘密值。然后能够将此秘密值用作密钥导出函数(KDF)如HKDF的输入,以导出会话加密密钥。KDF也能够将来自握手的附加上下文信息如握手转录的哈希作为进入密钥导出过程的输入。这将提供如下属性:所导出的密钥被以密码方式绑定到在握手期间交换和验证的身份以及在握手中早期交换以建立会话唯一性的任何随机值。
在握手协议已完成之后,如在图8A的步骤(3b)和图8B中的步骤(4)-(6b)中一样,安全区客户端和安全区服务器(或非安全区实体的RPC服务器)两者都可以访问连接的认证属性以便访问另一者的身份信息以继续进行授权。这使得客户端和服务器能够建立并实施访问控制策略。在RPC安全性***的上下文中,这意指对RPC安全性***中定义的特定RPC实施访问控制策略。例如,在服务器侧的授权策略可以用于强制客户端满足某些身份要求。RPC安全性***也支持客户端侧授权决策。这是安全区安全性模型的基础,因为客户端本身能够拥有秘密并且必须确保它们仅将这些秘密发送到授权实体。
在使用握手协议建立了RPC通信信道之后,两个实体可以继续通过所建立的安全信道发送其RPC业务。如果RPC通信信道满足两个参与者的认证要求,则建立了RPC通信信道,但是可能在这之上存在附加授权约束。例如,在安全区服务器与远程安全区客户端进行通信的情况下,安全区服务器可以接受由具有任何123代码身份的安全区客户端或从其生成的RPC,但是对于高度敏感的RPC的集合可能具有特定代码身份要求。
可以以各种方式实现授权层,该授权层使得被调用者能够检查调用者是否满足特定调用的身份预期。在一种方法中,可以将授权机制内置到RPC***中(例如gRPC)。安全区服务器和安全区客户端可以在它们被编程时被配置有它们相应的授权策略,并且RPC安全性***然后自动地实施这些策略。当做出调用时,授权层可以访问RPC通信信道的底层认证属性以确定是否满足授权策略。在另一方法中,可以将授权逻辑写入到安全区应用逻辑中,诸如直接写入到安全区客户端或安全区服务器中。例如,程序设计员可以访问信道的底层认证属性并且定义程序设计员自己的授权逻辑以便允许安全区检查调用者或被调用者是否满足特定调用的身份预期。这在RPC框架不具有内置授权的情况下和/或在程序设计员需要利用比可经由RPC授权策略表达的东西更复杂的逻辑的情况下是尤其有用的。
这两种方法都可能需要访问从以上讨论的握手协议的结果中提取的底层信道认证属性。可以将这个封装在任一信道上的认证上下文对象中。安全区客户端的认证上下文包含关于安全区服务器的身份信息,而安全区服务器的认证上下文包含关于安全区客户端的身份信息。因为认证过程基于前述身份框架,所以能够在握手协议期间提取各种类型的安全区身份并且将它们存储在诸如协议缓冲区的公共数据表示中。
能够按RPC名称和安全区身份ACL(即,安全区身份预期的任意逻辑组合)定义授权策略本身。例如,一个示例授权策略将使具有特定名称的RPC与安全区身份预期相关联。更复杂的授权策略将使RPC与逻辑谓词相关联,该逻辑谓词将各种安全区身份预期一起串成更复杂的预期。在这方面,授权过程可以继续利用如图8B中所示的身份ACL评估器。
身份框架的另一可能的应用可以包括秘密密封框架。秘密密封框架可以使得能够在多安全区***内启用敏感秘密的密码密封并且仅向***中独立于实体驻留在其上的特定主机或计算设备的授权实体公开此类秘密。
秘密密封框架可以涉及SecretSealer接口。例如,如图2中所示,安全区160、170、180、190中的每一个均包括一个或多个SecretSealer280、282、284、286。可以将每个SecretSealer认为是包括用于密封秘密的指令的“密封器库”。例如,SecretSealer可以接受报头、秘密和附加的经认证的数据并且输出密封秘密。这种附加的经认证的数据可以在经由上述RPC通信信道运送期间被加密,但是可能以其它方式不被加密。SecretSealer还可以包括用于通过接受密封的秘密来解封秘密的指令并且输出秘密。
报头可以包括关于秘密的元数据,以及被允许解封秘密的安全区身份的身份ACL。此报头也可以被包括在由SecretSealer输出的密封的秘密中并且可以由SecretSealer验证以便输出秘密。图10表示报头的配置,并且图11表示密封的秘密的配置。
实际地实现密封和解封的实体可以是密封超级管理员并且可以是本地实体或远程实体的任一个。本地密封超级管理员可以是在与SecretSealer相同的安全区中执行的超级管理员。本地密封超级管理员可以直接利用对密钥调配的硬件支持来将秘密密封到SecretSealer的安全区的身份。例如,在一些密封技术中本地密封超级管理员可以将秘密绑定到代码身份(对实现安全区的代码的度量)或签名者身份(对签名于安全区的实体的度量)的任一个。然而,此类本地密封超级管理员可能受限制,因为它们可能不能够将秘密绑定到具有与SecretSealer的安全区完全不同的身份的安全区或在不同的主机或计算设备上运行的安全区。
远程密封超级管理员可以是在与SecretSealer不同的安全区中执行的超级管理员。远程密封超级管理员也可以在独立安全区中运行并且从安全区客户端接收对密封和解封秘密的请求。远程密封超级管理员可能也需要经由RPC进行通信。在这方面,远程密封超级管理员可以经由以上讨论的RPC通信信道和握手协议起作用。像这样,远程密封超级管理员能够利用断言生成器和断言验证器接口来对做出要密封或解封秘密的请求的安全区客户端执行认证。这也允许远程超级管理员以密码方式验证安全区客户端的身份,从而只有当请求者的身份与存在于密封的秘密的报头中的身份ACL匹配时才允许远程超级管理员解封秘密。此外,安全区客户端可以利用由远程密封超级管理员进行的断言,并且在其身份与客户端的身份预期不匹配的情况下拒绝与远程超级管理员进行通信。
远程密封超级管理员不需要利用硬件支持来为密封秘密调配密封密钥。这样做可以导致有问题的情形。例如,如果远程密封超级管理员损坏或丢失,则对照其密封的所有秘密也将丢失。为了解决此问题,远程密封超级管理员可以包括全部都运行相同的代码并且各自拥有共享主秘密的多个相同的安全区实例。在这方面,如果远程密封超级管理员的安全区中的一个损坏或丢失,则多个安全区中的其他安全区可以“填入”并提供密钥来解封由损坏安全区先前密封的秘密。
此主秘密用于导出密封单独的秘密的密钥。主密钥只能在远程密封超级管理员安全区实例内以未加密形式使用。为了可用性和可靠性起见,一个实现方式可以使用基于本地超级管理员的SecretSealer(受硬件调配的密钥保护)来以加密形式将主密钥存留在远程超级管理员安全区之外。
与以上讨论的身份ACL一样,用于密封的秘密的身份ACL可以包括安全区身份预期的集合。因为组成ACL的身份预期是使用逻辑运算符的任意嵌套来分组的,所以这可以在密封秘密时给SecretSealer提供一定灵活性。例如,能够将秘密密封到白名单,从而允许其身份满足身份ACL中的至少一个身份预期的任何安全区解封秘密。此外或替换地,能够密封秘密,使得它只能被其身份满足用于密封的秘密的身份ACL中的所有身份预期的安全区解封。
除了报头和加密数据之外,密封的秘密还包含“附加的经认证的数据”和“簿记信息”。这些条数据被以明文、未加密形式呈现,其真实性能够通过解封秘密来建立。“附加的经认证的数据”可以由SecretSealer提供并且可以允许将未加密数据以密码方式绑定到密封的秘密。“簿记信息”可以由远程密封超级管理员提供并且可以由SecretSealer视为不透明数据。此数据能够由密封超级管理员使用来存储与秘密有关的任何内部的、实现方式特定的数据。
图12提供了上述秘密密封框架的各方面的视觉表示。再次,安全区A和安全区B可以表示在通过相同或不同的安全区技术来支持并在安全区***内操作的不同的计算设备上运行的两个不同的安全区(诸如安全区160和180)。在这方面,此类信息的实际处理可以由安全区驻留在其上或在安全区上以其他方式操作的计算设备的处理器112来执行。
图12的远程密封超级管理员在与安全区A和B的SecretSealer不同的安全区中执行。因此,如果安全区A是安全区160,则远程密封超级管理员可以在安全区170、安全区180或安全区190中。像这样,出于演示的目的,机器1可以是指计算设备110,安全区A可以是指安全区160,机器2可以是指计算设备120,安全区B可以是指安全区180,并且远程密封超级管理员可以在例如由计算设备130或某个其他计算设备操作的安全区190中。当然,其他配置也是可能的。例如,机器1和机器2可以对应于同一计算设备,诸如计算设备120,其中安全区A是安全区160,而安全区B是安全区170。
参考图10,在步骤(1)处,安全区A的计算设备处的应用(经由一个或多个处理器112)可以输入要将秘密密封到安全区A的SecretSealer(密封库)中的请求。此请求包括报头、秘密和附加的经认证的数据。如以上所指出的,报头包括用于要密封的秘密的身份ACL。SecretSealer生成密钥(gen_key())并且在步骤(2)处向远程密封超级管理员发送包括由SecretSealer生成的密钥和用于要被密封的秘密的身份ACL的请求(seal(key,acl))。远程密封器超级管理员的位置和/或身份可以由程序设计员选择并定义在SecretSealer中。当然,可以在安全区A和远程密封超级管理员的安全区使用上述握手协议来建立RPC通信信道之后发送请求,并且远程密封超级管理员和安全区A能够如以上所讨论的那样使用用于要被密封的秘密的身份ACL来对彼此进行认证。
一旦远程密封超级管理员接收到请求,远程密封超级管理员就可以使用主秘密密钥来密封密钥(sealed_key)。在步骤(3)处,将密封的密钥发回到安全区A的SecretSealer。SecretSealer然后使用原始密钥来对秘密进行加密(enc(secret,key))并且将密封的密钥以及身份ACL附加到在步骤(4)处生成的密封的秘密。此后,密封的秘密能够离开安全区A。例如,可以将密封的秘密从机器1发送到机器2。
为了解封秘密,可以将密封的秘密与要解封密封的秘密的请求一起传递给安全区B的SecretSealer。作为响应,安全区B的SecretSealer然后可以在步骤(7)处从密封的秘密中读取密封的密钥(read_sealed_key(secret))并且发送包括密封的密钥的请求(unseal(sealed_key))。可以在安全区B和远程密封超级管理员的安全区使用上述握手协议来建立RPC通信信道之后发送此请求,并且远程密封超级管理员和安全区B能够如以上所讨论的那样使用附加到密封的秘密的身份ACL来对彼此进行认证。
一旦远程密封超级管理员接收到请求,远程密封超级管理员就可以使用主秘密密钥来解封密封的密钥(unsealed_key)。在步骤(7)处,将解封的密钥(其是由安全区A的SecretSealer生成的原始密钥)发回到安全区B的SecretSealer。该SecretSealer然后在步骤(8)处使用该解封的密钥来对密封的秘密进行解密(dec(secret,key))。此后,能够在安全区B处处理解封的秘密。
也能够以其他方式实现远程密封超级管理员。例如,远程超级管理员可以生成密封的密钥和解封的密钥两者,并且/或者客户端可以向远程密封超级管理员发送未加密数据(即明文)以进行加密。
大多数上述替代示例不是相互排斥的,而是可以被按照各种组合实现以实现独特的优点。因为可在不脱离由权利要求所限定的主题的情况下利用上面讨论的特征的这些及其它变化和组合,所以应该通过图示而不是通过限制由权利要求所限定的主题来进行实施例的上述描述。作为示例,不必以上述精确次序执行前面的操作。相反,可以不同的次序(诸如相反的或同时地)来处理各个步骤。除非另外陈述,否则还可省略步骤。此外,本文描述的示例的提供以及用短语表示为“诸如”、“包括”等的条款不应该被解释为将权利要求的主题限于具体示例;相反,这些示例旨在图示许多可能的实施例中的仅一个。另外,不同的附图中的相同的附图标记可识别相同或类似的元素。
Claims (60)
1.一种用于安全区实体对第二实体进行认证的方法,所述方法包括:
由所述安全区实体的主机计算设备的一个或多个处理器接收请求和对所述第二实体的身份的断言,所述断言包括用于第二身份的身份信息;
由所述一个或多个处理器使用所述安全区实体的断言验证器来确定所述断言是否有效;
当所述断言有效时,由所述一个或多个处理器提取所述身份信息;
由所述一个或多个处理器使用用于所述安全区实体的访问控制列表来对所述第二实体进行认证以确定所述身份信息是否满足所述访问控制列表的预期;以及
当所述身份信息满足所述访问控制列表的预期时,由所述一个或多个处理器完成所述请求。
2.根据权利要求1所述的方法,其中,所述第二实体是非安全区实体。
3.根据权利要求1所述的方法,其中,所述第二实体是第二安全区实体。
4.根据权利要求1所述的方法,其中,当所述断言无效时,拒绝所述请求。
5.根据权利要求1所述的方法,其中,当所述身份信息不满足所述访问控制列表的预期时,拒绝所述请求。
6.根据权利要求1所述的方法,进一步包括:
使用所述安全区实体的断言生成器来生成包括用于所述安全区实体的身份信息的第二断言;以及
将所述第二断言发送到所述第二实体以进行验证。
7.根据权利要求1所述的方法,其中,所述断言验证器包括用于验证断言并且从经验证的断言中提取身份的指令。
8.根据权利要求1所述的方法,其中,所述断言验证器提供指示所述断言是否有效的布尔响应。
9.根据权利要求1所述的方法,进一步包括,使用身份访问控制列表评估器来确定所述身份信息是否满足所述访问控制列表的预期,其中,所述身份访问控制列表评估器包括用于对由实体拥有的身份集进行操作并且对照访问控制策略来评估该身份集的指令。
10.根据权利要求9所述的方法,其中,所述身份访问控制列表评估器提供指示所述身份信息是否满足所述访问控制列表的预期匹配的布尔响应。
11.根据权利要求10所述的方法,其中,所述访问控制列表包括安全区身份预期的表达式,并且所述身份预期用于确定所述身份信息是否满足所述访问控制列表的预期。
12.根据权利要求10所述的方法,其中,所述安全区身份预期经由一个或多个逻辑运算被配置为包括两个或更多个身份预期的谓词。
13.根据权利要求10所述的方法,其中,每个身份预期包括参考身份和匹配规范,并且其中,至少一个参考身份和至少一个匹配规范用于确定所述身份信息是否满足所述访问控制列表的预期。
14.根据权利要求1所述的方法,其中,所述安全区实体包括安全区服务器,所述安全区服务器包括被配置成接收并完成所述请求的指令,并且其中,所述安全区服务器用于完成所述请求。
15.根据权利要求1所述的方法,其中,所述身份信息包括身份描述,所述身份描述将所述断言的身份分类为由所述安全区实体支持的身份类型并且识别负责处理该身份类型的身份的机构。
16.根据权利要求15所述的方法,其中,所述机构用于识别所述断言验证器以便确定所述断言是否有效。
17.根据权利要求15所述的方法,其中,所述机构用于识别库以便确定所述身份信息是否满足所述访问控制列表的预期。
18.根据权利要求15所述的方法,其中,所述机构用于识别包括接口的插件以便确定所述断言是否有效并且以便确定所述身份信息是否满足所述访问控制列表的预期。
19.根据权利要求1所述的方法,其中,所述安全区实体和所述第二实***于所述主机计算设备的本地存储器中。
20.根据权利要求1所述的方法,其中,所述第二实***于第二主机计算设备的本地存储器中,所述第二主机计算设备与所述主机计算设备不同。
21.一种在安全区实体与第二实体之间建立通信信道的方法,所述方法包括:
由所述安全区实体的主机计算设备的一个或多个处理器从所述第二实体接收要发起所述通信信道的请求;
由所述一个或多个处理器与所述第二实体协商用于所述通信信道的记录协议和用于以密码方式保护在所述通信信道上发送的业务的秘密密钥;以及
在所述协商完成之后,利用使用所述记录协议并且使用所述秘密密钥的所述通信信道与所述第二实体进行通信以对在所述通信信道上交换的数据进行加密和认证。
22.根据权利要求21所述的方法,进一步包括由所述一个或多个处理器进行证明和认证过程以验证所述第二实体的身份,其中,所述过程包括:
接收所述第二实体的身份的断言;以及
验证所述第二实体的身份。
23.根据权利要求22所述的方法,其中,所述证明和认证过程进一步包括将所述安全区实体的身份的断言发送到所述第二实体。
24.根据权利要求22所述的方法,其中,协商所述记录协议在进行所述证明和认证过程之前发生。
25.根据权利要求22所述的方法,进一步包括在进行所述证明和认证过程之前协商身份的一种或多种类型的断言,使得在所述断言和认证过程中使用所述身份的一种或多种类型的断言。
26.根据权利要求25所述的方法,其中,协商身份的一种或多种类型的断言包括识别所述安全区实体能够做出并验证的一种或多种类型的断言。
27.根据权利要求25所述的方法,其中,协商身份的一种或多种类型的断言包括接收所述第二实体能够做出并验证的一种或多种类型的断言。
28.根据权利要求21所述的方法,其中,所述请求作为对所述安全区实体的远程过程调用被接收。
29.根据权利要求21所述的方法,其中,所述记录协议是消息传递协议,所述消息传递协议用于在使用所述通信信道与所述第二实体进行通信时发送应用级数据。
30.根据权利要求21所述的方法,进一步包括由所述一个或多个处理器进行认证和授权过程以验证所述第二实体的身份,其中,在所述协商完成之后进行所述认证和认证过程的至少一部分。
31.根据权利要求30所述的方法,其中,所述认证和授权过程的第一部分包括验证接收到的所述第二实体的身份的断言。
32.根据权利要求31所述的方法,其中,所述认证和授权过程的第二部分包括使用从所述断言中提取的身份信息来授权所述第二实体。
33.根据权利要求32所述的方法,其中,在使用所述通信信道来通信之前执行所述第一部分并且在使用所述通信信道来通信之前执行所述第二部分。
34.根据权利要求31所述的方法,进一步包括当所述安全区实体不能够对所述第二实体进行认证时中止所述通信信道。
35.根据权利要求21所述的方法,其中,在协商所述秘密密钥之前协商所述记录协议。
36.根据权利要求21所述的方法,其中,所述第二实体是非安全区实体。
37.根据权利要求21所述的方法,其中,所述第二实体是第二安全区实体。
38.根据权利要求37所述的方法,其中,所述协商是利用所述第二安全区实体的安全区服务器来进行的,所述安全区服务器被配置为包括被配置成接收并完成所述请求的指令的安全区服务器,并且其中,所述安全区服务器用于完成请求。
39.根据权利要求21所述的方法,其中,所述安全区实体和所述第二实***于所述主机计算设备的本地存储器中。
40.根据权利要求21所述的方法,其中,所述第二实***于第二主机计算设备的本地存储器中,所述第二主机计算设备与所述主机计算设备不同。
41.一种在主机计算设备的第一安全区实体中密封秘密的方法,所述方法包括:
由所述主机计算设备的一个或多个处理器向所述第一安全区实体的密封库输入报头和秘密,所述报头包括用于所述秘密的身份访问控制列表;
由所述一个或多个处理器使用所述密封库来生成密钥;
由所述一个或多个处理器将所述密钥和所述身份访问控制列表发送到第二安全区实体;
响应于所述发送,由所述一个或多个处理器从所述第二安全区实体接收所述密钥的密封版本;
由所述一个或多个处理器使用所述密封库来密封所述秘密;以及
将所述密钥的密封版本和所述身份访问控制列表附加到所述密封的秘密。
42.根据权利要求41所述的方法,其中,所述密封库包括用于通过接受密封的数据来解封数据并且输出所述解封数据的指令。
43.根据权利要求41所述的方法,进一步包括,经由远程过程调用与所述第二安全区实体建立通信。
44.根据权利要求43所述的方法,进一步包括,使用所述密封库来识别所述第二安全区实体的位置以便建立所述通信。
45.根据权利要求41所述的方法,其中,所接收到的密封密钥独立于所述第二安全区实体的主机计算设备。
46.根据权利要求41所述的方法,进一步包括,在发送所述密钥之前使用所述身份访问控制列表来对所述第二安全区实体进行认证。
47.根据权利要求41所述的方法,其中,所述第一安全区实体不能够访问用于生成所述密钥的密封版本的主秘密密钥的未加密版本,使得所述第一安全区实体不能够解封所述密钥的密封版本。
48.根据权利要求41所述的方法,进一步包括,将所述密封的秘密和附加的所述密钥的密封版本发送到第三安全区实体。
49.根据权利要求48所述的方法,其中,所述秘密仅能够在所述秘密已被密封之后被发送到所述第三安全区实体。
50.根据权利要求41所述的方法,其中,所述身份访问控制列表识别能够解封所述密封的秘密的一个或多个实体。
51.根据权利要求41所述的方法,其中,密封所述秘密包括将所述秘密密封到白名单,所述白名单允许其身份满足所述身份访问控制列表中的至少一个身份预期的任何安全区实体解封所述密封的秘密。
52.根据权利要求41所述的方法,其中,密封所述秘密包括将所述秘密密封到白名单,所述白名单允许其身份满足所述身份访问控制列表中的所有身份预期的任何安全区实体解封所述密封的秘密。
53.根据权利要求41所述的方法,进一步包括:
向所述第一安全区实体的密封库输入包括附加的第二密钥的密封版本的第二密封的秘密;
由所述一个或多个处理器向第三安全区实体发送请求以解封所述第二密封秘密;
由所述一个或多个处理器接收所述第二密钥的解封版本;以及
由所述一个或多个处理器使用所述密封库来解封所述第二秘密。
54.根据权利要求53所述的方法,其中,所述第三安全区实体是全部运行相同的代码并且各自拥有共享主秘密的多个相同的安全区实例中的一个,使得所述第一安全区实体能够将所述请求发送到所述多个相同的安全区实例中的任一个。
55.根据权利要求54所述的方法,其中,如果所述第三安全区实体不可用,则将所述请求发送到第四安全区实体,并且其中,从所述第四安全区实体接收所述第二密钥的解封版本,并且其中,所述第四安全区实体是所述多个相同的安全区实例中的一个。
56.根据权利要求53所述的方法,其中,所述请求是在使用用于所述第二密封的秘密的身份访问控制列表来在所述第一安全区实体与所述第二安全区实体之间建立远程过程调用通信信道之后发送的。
57.根据权利要求53所述的方法,进一步包括,使用所述密封库来识别所述第三安全区实体的位置以便将所述请求发送到所述第三安全区实体。
58.根据权利要求41所述的方法,其中,所述第二安全区实体是远程密封超级管理员,使得所述第二安全区实体是与所述第一安全区实体不同的安全区。
59.根据权利要求41所述的方法,其中,所述第一安全区实体和所述第二安全区实***于所述主机计算设备的本地存储器中。
60.根据权利要求41所述的方法,其中,所述第二安全区实***于第二主机计算设备的本地存储器中,所述第二主机计算设备与所述主机计算设备不同。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862664463P | 2018-04-30 | 2018-04-30 | |
US62/664,463 | 2018-04-30 | ||
PCT/US2018/042684 WO2019212580A1 (en) | 2018-04-30 | 2018-07-18 | Enclave interactions |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112041838A true CN112041838A (zh) | 2020-12-04 |
CN112041838B CN112041838B (zh) | 2024-07-23 |
Family
ID=63104116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880092591.6A Active CN112041838B (zh) | 2018-04-30 | 2018-07-18 | 安全区交互 |
Country Status (4)
Country | Link |
---|---|
US (3) | US11509643B2 (zh) |
EP (2) | EP3788528B1 (zh) |
CN (1) | CN112041838B (zh) |
WO (1) | WO2019212580A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115455398A (zh) * | 2022-11-11 | 2022-12-09 | 中诚华隆计算机技术有限公司 | 一种基于SoC的物联网终端配置更新方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11693952B2 (en) * | 2018-10-31 | 2023-07-04 | Vmware, Inc. | System and method for providing secure execution environments using virtualization technology |
US20210200858A1 (en) * | 2019-12-28 | 2021-07-01 | Intel Corporation | Executing code in protected memory containers by trust domains |
US11469890B2 (en) * | 2020-02-06 | 2022-10-11 | Google Llc | Derived keys for connectionless network protocols |
CN112231652B (zh) * | 2020-10-28 | 2022-02-22 | 百度在线网络技术(北京)有限公司 | 可信环境远程验证方法、装置、设备、***及介质 |
US20240022423A1 (en) * | 2021-03-12 | 2024-01-18 | Meta Platforms, Inc. | Processing private information in a distributed enclave framework |
US20220400113A1 (en) * | 2021-06-15 | 2022-12-15 | Fortinet, Inc | Systems and methods for focused learning of application structure and ztna policy generation |
EP4174695A1 (en) * | 2021-10-29 | 2023-05-03 | Thales Dis France SAS | Method to store data persistently by a software payload |
CN114268507B (zh) * | 2021-12-30 | 2023-12-05 | 天翼物联科技有限公司 | 一种基于sgx的网络云安全优化方法、***及相关介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101589361A (zh) * | 2007-01-26 | 2009-11-25 | 微软公司 | 控制数字身份表示的分发和使用 |
CN101764742A (zh) * | 2009-12-30 | 2010-06-30 | 福建星网锐捷网络有限公司 | 一种网络资源访问控制***及方法 |
CN103166969A (zh) * | 2013-03-12 | 2013-06-19 | 南京邮电大学 | 一种基于云计算平台的安全云控制器访问方法 |
CN103460738A (zh) * | 2011-03-23 | 2013-12-18 | 交互数字专利控股公司 | 用于使网络通信安全的***和方法 |
US20180059917A1 (en) * | 2016-08-23 | 2018-03-01 | Ricoh Company, Ltd. | Information processing apparatus, information processing system, and information processing method |
Family Cites Families (195)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5970250A (en) | 1994-03-24 | 1999-10-19 | International Business Machines Corporation | System, method, and computer program product for scoping operating system semanticis in a computing environment supporting multi-enclave processes |
US7761910B2 (en) * | 1994-12-30 | 2010-07-20 | Power Measurement Ltd. | System and method for assigning an identity to an intelligent electronic device |
US6085217A (en) | 1997-03-28 | 2000-07-04 | International Business Machines Corporation | Method and apparatus for controlling the assignment of units of work to a workload enclave in a client/server system |
US7086086B2 (en) * | 1999-02-27 | 2006-08-01 | Alonzo Ellis | System and method for maintaining N number of simultaneous cryptographic sessions using a distributed computing environment |
US6938159B1 (en) * | 1999-09-23 | 2005-08-30 | Intel Corporation | Continuous verification system |
US6779112B1 (en) * | 1999-11-05 | 2004-08-17 | Microsoft Corporation | Integrated circuit devices with steganographic authentication, and steganographic authentication methods |
WO2001043344A1 (en) * | 1999-12-13 | 2001-06-14 | Rsa Security Inc. | System and method for generating and managing attribute certificates |
US8005965B2 (en) * | 2001-06-30 | 2011-08-23 | International Business Machines Corporation | Method and system for secure server-based session management using single-use HTTP cookies |
US7024555B2 (en) | 2001-11-01 | 2006-04-04 | Intel Corporation | Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment |
US7246236B2 (en) * | 2002-04-18 | 2007-07-17 | Nokia Corporation | Method and apparatus for providing peer authentication for a transport layer session |
US7260090B2 (en) * | 2002-04-26 | 2007-08-21 | Ontash & Ermac, Inc. | Analog gateway |
US20030236975A1 (en) * | 2002-06-20 | 2003-12-25 | International Business Machines Corporation | System and method for improved electronic security credentials |
US7962655B2 (en) * | 2002-07-29 | 2011-06-14 | Oracle International Corporation | Using an identity-based communication layer for computing device communication |
US20040030764A1 (en) * | 2002-08-08 | 2004-02-12 | International Business Machines Corporation | Identity assertion token principal mapping for common secure interoperability |
AU2003265434A1 (en) * | 2002-08-12 | 2004-02-25 | Wireless Security Corporation | Fine grained access control for wireless networks |
US20050050316A1 (en) * | 2003-08-25 | 2005-03-03 | Amir Peles | Passive SSL decryption |
US7788711B1 (en) * | 2003-10-09 | 2010-08-31 | Oracle America, Inc. | Method and system for transferring identity assertion information between trusted partner sites in a network using artifacts |
US7966499B2 (en) * | 2004-01-28 | 2011-06-21 | Irdeto Canada Corporation | System and method for obscuring bit-wise and two's complement integer computations in software |
US20050204345A1 (en) * | 2004-02-25 | 2005-09-15 | Rivera Jose G. | Method and apparatus for monitoring computer software |
US7322026B2 (en) * | 2004-03-02 | 2008-01-22 | Hewlett-Packard Development Company, L.P. | Scoring assertions |
US20050276413A1 (en) | 2004-06-14 | 2005-12-15 | Raja Neogi | Method and apparatus to manage heterogeneous cryptographic operations |
US7581248B2 (en) * | 2004-06-28 | 2009-08-25 | International Business Machines Corporation | Federated identity brokering |
US20060021004A1 (en) * | 2004-07-21 | 2006-01-26 | International Business Machines Corporation | Method and system for externalized HTTP authentication |
US7657940B2 (en) * | 2004-10-28 | 2010-02-02 | Cisco Technology, Inc. | System for SSL re-encryption after load balance |
US7904940B1 (en) * | 2004-11-12 | 2011-03-08 | Symantec Corporation | Automated environmental policy awareness |
US7559087B2 (en) * | 2004-12-10 | 2009-07-07 | Microsoft Corporation | Token generation method and apparatus |
US7661131B1 (en) * | 2005-02-03 | 2010-02-09 | Sun Microsystems, Inc. | Authentication of tunneled connections |
US7624433B1 (en) * | 2005-02-24 | 2009-11-24 | Intuit Inc. | Keyfob for use with multiple authentication entities |
US20060225055A1 (en) * | 2005-03-03 | 2006-10-05 | Contentguard Holdings, Inc. | Method, system, and device for indexing and processing of expressions |
US20060274695A1 (en) * | 2005-06-03 | 2006-12-07 | Nokia Corporation | System and method for effectuating a connection to a network |
US8468359B2 (en) * | 2006-06-30 | 2013-06-18 | Novell, Inc. | Credentials for blinded intended audiences |
US8365294B2 (en) * | 2006-06-30 | 2013-01-29 | Intel Corporation | Hardware platform authentication and multi-platform validation |
US7966646B2 (en) * | 2006-07-31 | 2011-06-21 | Aruba Networks, Inc. | Stateless cryptographic protocol-based hardware acceleration |
US8245285B1 (en) * | 2006-09-22 | 2012-08-14 | Oracle America, Inc. | Transport-level web application security on a resource-constrained device |
US8316422B2 (en) * | 2006-10-17 | 2012-11-20 | Sap Ag | Propagation of principal authentication data in a mediated communication scenario |
US20090077655A1 (en) * | 2007-09-19 | 2009-03-19 | Novell, Inc. | Processing html extensions to enable support of information cards by a relying party |
US8984265B2 (en) | 2007-03-30 | 2015-03-17 | Intel Corporation | Server active management technology (AMT) assisted secure boot |
US8145909B1 (en) * | 2007-05-16 | 2012-03-27 | Adobe Systems Incorporated | Digitally signing an electronic document using seed data |
GB2456290B (en) * | 2007-10-05 | 2011-03-30 | Iti Scotland Ltd | Distributed protocol for authorisation |
US8700094B2 (en) * | 2007-11-15 | 2014-04-15 | Ubeeairwalk, Inc. | System, method, and computer-readable medium for call termination processing by a femtocell system |
US8220035B1 (en) * | 2008-02-29 | 2012-07-10 | Adobe Systems Incorporated | System and method for trusted embedded user interface for authentication |
US8555078B2 (en) * | 2008-02-29 | 2013-10-08 | Adobe Systems Incorporated | Relying party specifiable format for assertion provider token |
US8353016B1 (en) * | 2008-02-29 | 2013-01-08 | Adobe Systems Incorporated | Secure portable store for security skins and authentication information |
US8434125B2 (en) * | 2008-03-05 | 2013-04-30 | The Boeing Company | Distributed security architecture |
US7860983B1 (en) * | 2008-08-11 | 2010-12-28 | The United States Of America As Represented By The Secretary Of The Navy | Enterprise identity orchestration server |
US8565436B2 (en) * | 2008-12-15 | 2013-10-22 | Ebay Inc. | Secure self managed data (SSMD) |
US8442527B1 (en) * | 2009-01-23 | 2013-05-14 | Sprint Communications Company L.P. | Cellular authentication for authentication to a service |
US8631486B1 (en) * | 2009-03-31 | 2014-01-14 | Emc Corporation | Adaptive identity classification |
JP5326974B2 (ja) * | 2009-09-30 | 2013-10-30 | 富士通株式会社 | 中継装置、異なる端末装置間のサービス継続方法、及び中継プログラム |
US9087200B2 (en) | 2009-12-22 | 2015-07-21 | Intel Corporation | Method and apparatus to provide secure application execution |
US8155036B1 (en) * | 2010-02-19 | 2012-04-10 | Lockheed Martin Corporation | Portable multi-level security communications system |
JP2011186817A (ja) * | 2010-03-09 | 2011-09-22 | Toshiba Corp | 論理検証装置及び論理検証方法 |
US9699168B2 (en) * | 2010-12-13 | 2017-07-04 | International Business Machines Corporation | Method and system for authenticating a rich client to a web or cloud application |
US8972746B2 (en) | 2010-12-17 | 2015-03-03 | Intel Corporation | Technique for supporting multiple secure enclaves |
US8656360B2 (en) * | 2011-04-20 | 2014-02-18 | International Business Machines Corporation | Collaborative software debugging in a distributed system with execution resumption on consensus |
JP5845393B2 (ja) * | 2011-04-28 | 2016-01-20 | パナソニックIpマネジメント株式会社 | 暗号通信装置および暗号通信システム |
US8949938B2 (en) * | 2011-10-27 | 2015-02-03 | Cisco Technology, Inc. | Mechanisms to use network session identifiers for software-as-a-service authentication |
US9026789B2 (en) * | 2011-12-23 | 2015-05-05 | Blackberry Limited | Trusted certificate authority to create certificates based on capabilities of processes |
US8621590B2 (en) * | 2012-03-19 | 2013-12-31 | Cable Television Laboratories, Inc. | Multiple access point zero sign-on |
US8887256B2 (en) * | 2012-05-16 | 2014-11-11 | Cable Television Laboratories, Inc. | Establishing virtual private network session using roaming credentials |
EP2850552B1 (en) * | 2012-05-16 | 2019-05-08 | Okta, Inc. | Systems and methods for providing and managing distributed enclaves |
US9460077B1 (en) * | 2012-06-29 | 2016-10-04 | Mckesson Corporation | Data validation |
US9152781B2 (en) * | 2012-08-09 | 2015-10-06 | Cisco Technology, Inc. | Secure mobile client with assertions for access to service provider applications |
US9043632B2 (en) * | 2012-09-25 | 2015-05-26 | Apple Inc. | Security enclave processor power control |
US8873747B2 (en) * | 2012-09-25 | 2014-10-28 | Apple Inc. | Key management using security enclave processor |
US8775757B2 (en) | 2012-09-25 | 2014-07-08 | Apple Inc. | Trust zone support in system on a chip having security enclave processor |
US10382202B1 (en) * | 2012-09-28 | 2019-08-13 | EMC IP Holding Company LLC | Method and apparatus for federated identity and authentication services |
US8942379B2 (en) | 2012-10-17 | 2015-01-27 | Cisco Technology, Inc. | Timeslot encryption in an optical transport network |
US9405562B2 (en) | 2012-10-18 | 2016-08-02 | Broadcom Corporation | Set top box application in a concurrent dual environment |
US9519803B2 (en) | 2012-11-30 | 2016-12-13 | Intel Corporation | Secure environment for graphics processing units |
US9747102B2 (en) | 2012-12-28 | 2017-08-29 | Intel Corporation | Memory management in secure enclaves |
US20140189246A1 (en) | 2012-12-31 | 2014-07-03 | Bin Xing | Measuring applications loaded in secure enclaves at runtime |
US9049013B2 (en) | 2013-03-14 | 2015-06-02 | Sprint Communications Company L.P. | Trusted security zone containers for the protection and confidentiality of trusted service manager data |
US20140281560A1 (en) | 2013-03-15 | 2014-09-18 | Ologn Technologies Ag | Secure zone on a virtual machine for digital communications |
US9177353B2 (en) | 2013-03-15 | 2015-11-03 | Intel Corporation | Secure rendering of display surfaces |
US9430384B2 (en) | 2013-03-31 | 2016-08-30 | Intel Corporation | Instructions and logic to provide advanced paging capabilities for secure enclave page caches |
US9087202B2 (en) | 2013-05-10 | 2015-07-21 | Intel Corporation | Entry/exit architecture for protected device modules |
US9251047B1 (en) | 2013-05-13 | 2016-02-02 | Amazon Technologies, Inc. | Backup of volatile memory to persistent storage |
WO2014196966A1 (en) * | 2013-06-04 | 2014-12-11 | Intel Corporation | Technologies for hardening the security of digital information on client platforms |
US9654473B2 (en) * | 2013-06-28 | 2017-05-16 | Bmc Software, Inc. | Authentication proxy agent |
US9276750B2 (en) * | 2013-07-23 | 2016-03-01 | Intel Corporation | Secure processing environment measurement and attestation |
US9767044B2 (en) | 2013-09-24 | 2017-09-19 | Intel Corporation | Secure memory repartitioning |
US10121144B2 (en) | 2013-11-04 | 2018-11-06 | Apple Inc. | Using biometric authentication for NFC-based payments |
US9159114B2 (en) * | 2013-11-08 | 2015-10-13 | Qualcomm Incorporated | Texture decompression for graphics processors |
CN105745661B (zh) | 2013-12-19 | 2020-05-05 | 英特尔公司 | 对权限管理的内容的基于策略的受信任的检测 |
US9448950B2 (en) | 2013-12-24 | 2016-09-20 | Intel Corporation | Using authenticated manifests to enable external certification of multi-processor platforms |
US9462001B2 (en) * | 2014-01-15 | 2016-10-04 | Cisco Technology, Inc. | Computer network access control |
US9525664B2 (en) * | 2014-02-28 | 2016-12-20 | Symantec Corporation | Systems and methods for providing secure access to local network devices |
US10069868B2 (en) * | 2014-03-28 | 2018-09-04 | Intel Corporation | Systems and methods to facilitate multi-factor authentication policy enforcement using one or more policy handlers |
US20160036786A1 (en) * | 2014-08-02 | 2016-02-04 | Hardik Prakash GANDHI | System and method facilitating enhanced inter-object and human-object interactivity using networked electronic devices |
US10061915B1 (en) * | 2014-09-03 | 2018-08-28 | Amazon Technologies, Inc. | Posture assessment in a secure execution environment |
US9584517B1 (en) | 2014-09-03 | 2017-02-28 | Amazon Technologies, Inc. | Transforms within secure execution environments |
US9754116B1 (en) | 2014-09-03 | 2017-09-05 | Amazon Technologies, Inc. | Web services in secure execution environments |
US9246690B1 (en) | 2014-09-03 | 2016-01-26 | Amazon Technologies, Inc. | Secure execution environment services |
US9705879B2 (en) * | 2014-09-17 | 2017-07-11 | Microsoft Technology Licensing, Llc | Efficient and reliable attestation |
JP6526181B2 (ja) * | 2014-09-30 | 2019-06-05 | サイトリックス システムズ,インコーポレイテッド | スマートカードによるログオンおよび連携されたフルドメインログオン |
US10181027B2 (en) | 2014-10-17 | 2019-01-15 | Intel Corporation | Interface between a device and a secure processing environment |
US9813400B2 (en) * | 2014-11-07 | 2017-11-07 | Probaris Technologies, Inc. | Computer-implemented systems and methods of device based, internet-centric, authentication |
JP6495629B2 (ja) | 2014-11-21 | 2019-04-03 | 株式会社東芝 | 情報処理システム、読出装置、情報処理装置、および、情報処理方法 |
US9843452B2 (en) * | 2014-12-15 | 2017-12-12 | Amazon Technologies, Inc. | Short-duration digital certificate issuance based on long-duration digital certificate validation |
US9940456B2 (en) | 2014-12-16 | 2018-04-10 | Intel Corporation | Using trusted execution environments for security of code and data |
US9524249B2 (en) | 2014-12-23 | 2016-12-20 | Intel Corporation | Memory encryption engine integration |
US9852301B2 (en) * | 2014-12-24 | 2017-12-26 | Intel Corporation | Creating secure channels between a protected execution environment and fixed-function endpoints |
US9444627B2 (en) | 2014-12-24 | 2016-09-13 | Intel Corporation | System and method for providing global platform compliant trusted execution environment |
US9996690B2 (en) * | 2014-12-27 | 2018-06-12 | Mcafee, Llc | Binary translation of a trusted binary with input tagging |
US9798559B2 (en) * | 2014-12-27 | 2017-10-24 | Mcafee, Inc. | Trusted binary translation |
US9805344B1 (en) * | 2015-01-23 | 2017-10-31 | Island Intellectual Property, Llc | Notification system and method |
WO2016123109A1 (en) * | 2015-01-26 | 2016-08-04 | Mobile Iron, Inc. | Identity proxy to provide access control and single sign on |
US9560078B2 (en) | 2015-02-04 | 2017-01-31 | Intel Corporation | Technologies for scalable security architecture of virtualized networks |
US9444948B1 (en) * | 2015-03-11 | 2016-09-13 | Verizon Patent And Licensing Inc. | Portal for toll free media subscription campaigns |
US9749310B2 (en) * | 2015-03-27 | 2017-08-29 | Intel Corporation | Technologies for authentication and single-sign-on using device security assertions |
US9606940B2 (en) * | 2015-03-27 | 2017-03-28 | Intel Corporation | Methods and apparatus to utilize a trusted loader in a trusted computing environment |
US11032379B2 (en) * | 2015-04-24 | 2021-06-08 | Citrix Systems, Inc. | Secure in-band service detection |
IL238690B (en) | 2015-05-07 | 2019-07-31 | Mellanox Technologies Ltd | Network-based computational accelerator |
US9747546B2 (en) | 2015-05-21 | 2017-08-29 | Google Inc. | Neural network processor |
US20160350534A1 (en) * | 2015-05-29 | 2016-12-01 | Intel Corporation | System, apparatus and method for controlling multiple trusted execution environments in a system |
US10079880B2 (en) * | 2015-06-07 | 2018-09-18 | Apple Inc. | Automatic identification of invalid participants in a secure synchronization system |
US20160366123A1 (en) * | 2015-06-10 | 2016-12-15 | Mcafee, Inc. | Device naming in an internet of things |
US11057364B2 (en) * | 2015-06-15 | 2021-07-06 | Airwatch Llc | Single sign-on for managed mobile devices |
US9619697B2 (en) * | 2015-06-16 | 2017-04-11 | HotCoal Inc. | Identity authentication platform |
US9838367B2 (en) * | 2015-06-26 | 2017-12-05 | Intel Corporation | Binding a trusted input session to a trusted output session |
US9716710B2 (en) | 2015-06-26 | 2017-07-25 | Intel Corporation | Technologies for virtualized access to security services provided by a converged manageability and security engine |
US20170012990A1 (en) * | 2015-07-08 | 2017-01-12 | International Business Machines Corporation | Indirect user authentication |
US10303900B2 (en) | 2015-07-20 | 2019-05-28 | Intel Corporation | Technologies for secure programming of a cryptographic engine for trusted I/O |
US10140457B2 (en) | 2015-07-31 | 2018-11-27 | Intel Corporation | Secure input/output device management |
US20170093572A1 (en) | 2015-09-25 | 2017-03-30 | Mcafee, Inc. | Systems and methods for utilizing hardware assisted protection for media content |
US9735962B1 (en) | 2015-09-30 | 2017-08-15 | EMC IP Holding Company LLC | Three layer key wrapping for securing encryption keys in a data storage system |
GB2543072B (en) * | 2015-10-07 | 2021-02-10 | Enclave Networks Ltd | Public key infrastructure & method of distribution |
US10079684B2 (en) * | 2015-10-09 | 2018-09-18 | Intel Corporation | Technologies for end-to-end biometric-based authentication and platform locality assertion |
US9866546B2 (en) * | 2015-10-29 | 2018-01-09 | Airwatch Llc | Selectively enabling multi-factor authentication for managed devices |
US10187374B2 (en) * | 2015-10-29 | 2019-01-22 | Airwatch Llc | Multi-factor authentication for managed applications using single sign-on technology |
US10565370B2 (en) * | 2015-12-24 | 2020-02-18 | Intel Corporation | System and method for enabling secure memory transactions using enclaves |
US10382210B2 (en) * | 2016-01-10 | 2019-08-13 | Apple Inc. | Secure device pairing |
US10334009B2 (en) * | 2016-01-29 | 2019-06-25 | Viasat, Inc. | Systems and methods for managing content distribution to an in-transit media system |
US10511578B2 (en) * | 2016-03-04 | 2019-12-17 | Intel Corporation | Technologies for secure content display with panel self-refresh |
US10410009B2 (en) * | 2016-03-08 | 2019-09-10 | Oracle International Corporation | Partial-context policy enforcement |
US10354095B2 (en) | 2016-03-31 | 2019-07-16 | Intel Corporation | Methods and apparatus to initialize enclaves on target processors |
US10691627B2 (en) | 2016-04-01 | 2020-06-23 | Intel Corporation | Avoiding redundant memory encryption in a cryptographic protection system |
WO2017197400A1 (en) * | 2016-05-13 | 2017-11-16 | Mobile Iron, Inc. | Unified vpn and identity based authentication to cloud-based services |
US10498531B2 (en) * | 2016-05-23 | 2019-12-03 | Apple Inc. | Electronic subscriber identity module (eSIM) provisioning error recovery |
US10856122B2 (en) * | 2016-05-31 | 2020-12-01 | Intel Corporation | System, apparatus and method for scalable internet of things (IoT) device on-boarding with quarantine capabilities |
US10135622B2 (en) | 2016-06-03 | 2018-11-20 | Intel Corporation | Flexible provisioning of attestation keys in secure enclaves |
US10708067B2 (en) | 2016-06-18 | 2020-07-07 | Intel Corporation | Platform attestation and registration for servers |
US11144911B2 (en) * | 2016-06-20 | 2021-10-12 | Intel Corporation | Technologies for device commissioning |
US10375177B1 (en) * | 2016-06-21 | 2019-08-06 | Amazon Technologies, Inc. | Identity mapping for federated user authentication |
WO2018027059A1 (en) * | 2016-08-03 | 2018-02-08 | KryptCo, Inc. | Systems and methods for delegated cryptography |
US9779352B1 (en) * | 2016-08-10 | 2017-10-03 | Elwha Llc | Systems and methods for individual identification and authorization utilizing conformable electronics |
US11165591B2 (en) * | 2016-09-08 | 2021-11-02 | Cable Television Laboratories, Inc. | System and method for a dynamic-PKI for a social certificate authority |
US10346641B2 (en) * | 2016-09-23 | 2019-07-09 | Intel Corporation | Processors, methods, systems, and instructions to determine whether to load encrypted copies of protected container pages into protected container memory |
US20180097809A1 (en) * | 2016-09-30 | 2018-04-05 | Intel Corporation | Securing access to cloud components |
US10528721B2 (en) * | 2016-10-20 | 2020-01-07 | Intel Corporation | Trusted packet processing for multi-domain separatization and security |
US10642972B2 (en) * | 2016-10-20 | 2020-05-05 | Intel Corporation | Extending packet processing to trusted programmable and fixed-function accelerators |
US9971702B1 (en) | 2016-10-24 | 2018-05-15 | Intel Corporation | Nested exception handling |
US10164778B2 (en) * | 2016-12-15 | 2018-12-25 | Alibaba Group Holding Limited | Method and system for distributing attestation key and certificate in trusted computing |
US10007464B1 (en) * | 2016-12-23 | 2018-06-26 | Advanced Micro Devices, Inc. | Method and apparatus for integration of non-volatile memory |
US10338957B2 (en) * | 2016-12-27 | 2019-07-02 | Intel Corporation | Provisioning keys for virtual machine secure enclaves |
US20180183578A1 (en) | 2016-12-27 | 2018-06-28 | Intel Corporation | Provisioning keys for virtual machine scaling |
US20180183586A1 (en) * | 2016-12-28 | 2018-06-28 | Intel Corporation | Assigning user identity awareness to a cryptographic key |
US10091195B2 (en) * | 2016-12-31 | 2018-10-02 | Nok Nok Labs, Inc. | System and method for bootstrapping a user binding |
US10178131B2 (en) * | 2017-01-23 | 2019-01-08 | Cisco Technology, Inc. | Entity identification for enclave segmentation in a network |
US10530777B2 (en) | 2017-01-24 | 2020-01-07 | Microsoft Technology Licensing, Llc | Data unsealing with a sealing enclave |
US10877785B2 (en) | 2017-01-24 | 2020-12-29 | Microsoft Technology Licensing, Llc | Enclave abstraction model |
CN108345782B (zh) * | 2017-01-25 | 2021-02-12 | 杨建纲 | 智能型硬件安全载具 |
CN108345785B (zh) * | 2017-01-25 | 2021-05-11 | 杨建纲 | 内建智能安全行动装置 |
US11210412B1 (en) * | 2017-02-01 | 2021-12-28 | Ionic Security Inc. | Systems and methods for requiring cryptographic data protection as a precondition of system access |
US10685131B1 (en) * | 2017-02-03 | 2020-06-16 | Rockloans Marketplace Llc | User authentication |
US10630654B2 (en) | 2017-03-22 | 2020-04-21 | Microsoft Technology Licensing, Llc | Hardware-accelerated secure communication management |
CN106997438B (zh) | 2017-03-29 | 2019-11-12 | 山东英特力数据技术有限公司 | 一种可信服务器cpu设计方法 |
US10726120B2 (en) * | 2017-03-31 | 2020-07-28 | Intel Corporation | System, apparatus and method for providing locality assertion between a security processor and an enclave |
US10911538B2 (en) * | 2017-04-11 | 2021-02-02 | Fortanix, Inc. | Management of and persistent storage for nodes in a secure cluster |
US10303953B2 (en) | 2017-04-17 | 2019-05-28 | Intel Corporation | Person tracking and privacy and acceleration of data using autonomous machines |
US10719617B2 (en) * | 2018-02-20 | 2020-07-21 | Government Of The United States Of America, As Represented By The Secretary Of Commerce | Access control system and process for managing and enforcing an attribute based access control policy |
US10540507B2 (en) * | 2017-05-17 | 2020-01-21 | Cisco Technology, Inc. | Verified device identity providing context to application |
US11176280B2 (en) * | 2017-06-02 | 2021-11-16 | Apple Inc. | Secure circuit control to disable circuitry |
US10505917B2 (en) * | 2017-06-05 | 2019-12-10 | Amazon Technologies, Inc. | Secure device-to-device process for granting access to a physical space |
US10567359B2 (en) * | 2017-07-18 | 2020-02-18 | International Business Machines Corporation | Cluster of secure execution platforms |
US20190028460A1 (en) * | 2017-07-19 | 2019-01-24 | JumpCloud, Inc. | Low-overhead single sign on |
US20190034617A1 (en) | 2017-07-31 | 2019-01-31 | Intel Corporation | Flexible container attestation |
US20190050551A1 (en) * | 2017-08-09 | 2019-02-14 | Facebook, Inc. | Systems and methods for authenticating users |
US10554634B2 (en) | 2017-08-18 | 2020-02-04 | Intel Corporation | Techniques for shared private data objects in a trusted execution environment |
US10541804B2 (en) * | 2017-08-18 | 2020-01-21 | Intel Corporation | Techniques for key provisioning in a trusted execution environment |
US11416604B2 (en) | 2017-09-25 | 2022-08-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Enclave handling on an execution platform |
US20190103074A1 (en) * | 2017-09-29 | 2019-04-04 | Intel Corporation | Technologies for secure z-order enforcement with trusted display |
US20190109877A1 (en) * | 2017-10-11 | 2019-04-11 | Microsoft Technology Licensing, Llc | Secure application metering |
US11997077B2 (en) * | 2017-11-10 | 2024-05-28 | Microsoft Technology Licensing, Llc | Identity experience framework |
US10977384B2 (en) * | 2017-11-16 | 2021-04-13 | Microsoft Technoogy Licensing, LLC | Hardware protection for differential privacy |
US11349822B2 (en) * | 2017-11-20 | 2022-05-31 | Fortanix, Inc. | Runtime encryption plugin for a key management system |
US10592661B2 (en) * | 2017-11-27 | 2020-03-17 | Microsoft Technology Licensing, Llc | Package processing |
US11657136B2 (en) * | 2017-12-21 | 2023-05-23 | Bitstrata Systems Inc. | Secure association of an installed application instance with a service |
US11082231B2 (en) * | 2017-12-29 | 2021-08-03 | Intel Corporation | Indirection directories for cryptographic memory protection |
US10742678B2 (en) * | 2018-02-08 | 2020-08-11 | Cisco Technology, Inc. | Vulnerability analysis and segmentation of bring-your-own IoT devices |
US20190253256A1 (en) * | 2018-02-13 | 2019-08-15 | Texas Precious Metals LLC | Tracking and verifying authenticity of an asset via a distributed ledger |
WO2019183923A1 (en) | 2018-03-30 | 2019-10-03 | Intel Corporation | Pci express chain descriptors |
US11018871B2 (en) | 2018-03-30 | 2021-05-25 | Intel Corporation | Key protection for computing platform |
US10831506B2 (en) * | 2018-04-05 | 2020-11-10 | Phoenix Technologies Ltd. | Local oversight and provisioning of BIOS activity |
-
2018
- 2018-07-18 CN CN201880092591.6A patent/CN112041838B/zh active Active
- 2018-07-18 US US17/046,547 patent/US11509643B2/en active Active
- 2018-07-18 EP EP18750023.6A patent/EP3788528B1/en active Active
- 2018-07-18 WO PCT/US2018/042684 patent/WO2019212580A1/en unknown
- 2018-07-18 EP EP22207041.9A patent/EP4155996A1/en active Pending
-
2022
- 2022-10-26 US US17/973,664 patent/US11962576B2/en active Active
-
2024
- 2024-01-31 US US18/428,700 patent/US20240171560A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101589361A (zh) * | 2007-01-26 | 2009-11-25 | 微软公司 | 控制数字身份表示的分发和使用 |
CN101764742A (zh) * | 2009-12-30 | 2010-06-30 | 福建星网锐捷网络有限公司 | 一种网络资源访问控制***及方法 |
CN103460738A (zh) * | 2011-03-23 | 2013-12-18 | 交互数字专利控股公司 | 用于使网络通信安全的***和方法 |
CN103166969A (zh) * | 2013-03-12 | 2013-06-19 | 南京邮电大学 | 一种基于云计算平台的安全云控制器访问方法 |
US20180059917A1 (en) * | 2016-08-23 | 2018-03-01 | Ricoh Company, Ltd. | Information processing apparatus, information processing system, and information processing method |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115455398A (zh) * | 2022-11-11 | 2022-12-09 | 中诚华隆计算机技术有限公司 | 一种基于SoC的物联网终端配置更新方法 |
CN115455398B (zh) * | 2022-11-11 | 2023-01-10 | 中诚华隆计算机技术有限公司 | 一种基于SoC的物联网终端配置更新方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112041838B (zh) | 2024-07-23 |
EP4155996A1 (en) | 2023-03-29 |
EP3788528B1 (en) | 2022-12-14 |
US11509643B2 (en) | 2022-11-22 |
EP3788528A1 (en) | 2021-03-10 |
US20230039096A1 (en) | 2023-02-09 |
US11962576B2 (en) | 2024-04-16 |
US20240171560A1 (en) | 2024-05-23 |
WO2019212580A1 (en) | 2019-11-07 |
US20210037001A1 (en) | 2021-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11962576B2 (en) | Enclave interactions | |
CN111181720B (zh) | 基于可信执行环境的业务处理方法及装置 | |
US10826708B2 (en) | Authenticating nonces prior to encrypting and decrypting cryptographic keys | |
CN110214440B (zh) | 计算***,传送受保护数据的方法和可读存储介质 | |
JP6290932B2 (ja) | データセキュリティサービス | |
KR102489790B1 (ko) | 서명키를 사용한 신뢰 실행 환경의 어드레싱 기법 | |
US20160156626A1 (en) | Mutual authentication with symmetric secrets and signatures | |
WO2022073264A1 (en) | Systems and methods for secure and fast machine learning inference in trusted execution environment | |
US20160373414A1 (en) | Handshake offload | |
US10454917B2 (en) | Enabling single sign-on authentication for accessing protected network services | |
US20160373412A1 (en) | Load balancing with handshake offload | |
TW201926943A (zh) | 資料傳輸方法及系統 | |
Yildiz et al. | Towards Interoperable Self-sovereign Identities | |
Ding et al. | Leveraging self-sovereign identity in decentralized data aggregation | |
US20230074475A1 (en) | Systems And Methods For Implementing Privacy Layer In CBDC Networks | |
Li | Context-aware attribute-based techniques for data security and access control in mobile cloud environment | |
CN112350922A (zh) | 一种邮件处理的方法、装置、服务器及存储介质 | |
Gagged et al. | Improved secure dynamic bit standard technique for a private cloud platform to address security challenges | |
Guziur et al. | Light blockchain communication protocol for secure data transfer integrity | |
EP4145322A1 (en) | Systems and methods for implementing privacy layer in cbdc networks | |
Azizul et al. | Authentication and Authorization Design in Honeybee Computing | |
Harisha et al. | Open Standard Authorization Protocol: OAuth 2.0 Defenses and Working Using Digital Signatures | |
Shepherd | Zero Trust Architecture: Framework and Case Study | |
Fernando et al. | Information Security | |
KR20160067547A (ko) | 개선된 mtm의 세션 및 키 관리 방법 |
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 |