CN110235134A - 使用洁净室供应来寻址可信执行环境 - Google Patents
使用洁净室供应来寻址可信执行环境 Download PDFInfo
- Publication number
- CN110235134A CN110235134A CN201780084391.1A CN201780084391A CN110235134A CN 110235134 A CN110235134 A CN 110235134A CN 201780084391 A CN201780084391 A CN 201780084391A CN 110235134 A CN110235134 A CN 110235134A
- Authority
- CN
- China
- Prior art keywords
- trustlet
- tree
- key
- protected data
- requestor
- 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
Classifications
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3234—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- 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/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
-
- 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
- H04L63/0435—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 wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
-
- 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
- H04L63/0442—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 wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- 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/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- 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/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
在此描述了用于向与非可信请求者相关联的可信执行环境(TrEE)传送受保护数据的方法、***和设备。在一个方面,目标协议头或请求者与密钥管理***或受保护数据的其他存储器之间的其他中介可以注册TrEE的与由TrEE持有的私有加密密钥或TrEE的对称密钥相对应的公共加密密钥。目标协议头可以接收来自与TrEE相关联的请求者的、针对受保护数据的请求,并且例如从密钥管理***或受保护数据的存储器中取回受保护数据。目标协议头可以通过利用TrEE的公共加密密钥或对称密钥加密受保护数据来生成目标受保护数据。然后,目标协议头可以向请求者发送目标受保护数据。
Description
技术领域
本公开总体上涉及计算设备中的可信和/或隔离执行环境,并且更具体地涉及向可信执行环境安全传输一个或多个秘密或密钥。
背景技术
密钥管理***(KMS)是秘密的存储器。秘密通常具有公共ID、保护值和控制谁可以获得该值的策略。在一些情况下,秘密也可以具有到期日期和其他元数据等。在典型的用例中,请求者向KMS认证,建立安全信道,通过提供秘密ID来请求秘密值,并且期望KMS向其返回明文秘密值。通过请求者与KMS之间的安全信道保护该值免受未经授权的窃听和篡改。
如本文中使用的可信执行环境(TrEE)可以包括以下中的任一项:虚拟安全模式(VSM)trustlet、SGX应用、ARM TrustZone应用或某种其他类似载具(vehicle)。TrEE通常具有共有的一些独特的属性。TrEE通常将具有完整的加密堆栈(换言之,可以假定跨整个频谱的各种加密原语,从安全随机数生成到使用密钥的散列、加密和签名库的完整选单)。TrEE通常还将具有少数或有限的I/O设施或与之相关联,通常限于请求驱动架构,其中请求由非可信的“外部世界”发起。例如,VSM trustlet可以使用未经认证的远程过程调用(RPC)。TrEE还可以具有对TrEE外部不可用的密钥材料或数据的访问。除其他事项之外,这允许TrEE使用非可信I/O来存储数据,然后将其读回,确保了防篡改和状态的机密性。TrEE通常还将具有可证明的代码、配置和密钥材料或者与可证明的代码、配置和密钥材料相关联。特别是,可证明的密钥材料允许TrEE从第三方接收被加密去往其的消息,并且签名从TrEE回第三方的消息。
与其他应用一样,使用具有TrEE的KMS可能存在安全限制。因此,可以利用源自具有或在TrEE中的KMS的密钥来进行改进以提高安全性。
发明内容
本公开的说明性示例包括但不限于方法、***和各种设备。在一个方面,用于向与非可信请求者相关联的可信执行环境(TrEE)传送受保护数据的方法可以至少部分地由目标协议头(targeting protocol head)或请求者与密钥管理***或受保护数据的其他存储器之间的其他中介来执行。在一个示例中,目标协议头可以注册TrEE的与由TrEE持有的私有加密密钥相对应的公共加密密钥。在另一示例中,目标协议头可以注册TrEE的对称密钥。目标协议头可以接收来自与TrEE相关联的请求者的、针对受保护数据的请求,以及例如从密钥管理***或受保护数据的存储器中取回受保护数据。目标协议头可以通过利用TrEE的公共加密密钥或对称密钥加密受保护数据来生成目标受保护数据。然后,目标协议头可以向请求者发送目标受保护数据。
下面描述***和方法的其他特征。特征、功能和优点可以在各种示例中被独立地达成,或者可以在其他示例中被组合地达成,其进一步的细节可以参考以下描述和附图来看出。
附图说明
下文中将参考附图来更全面地描述本公开的实施例,在附图中:
图1A、图1B和图1C描绘了用于在请求者与密钥管理***之间交换密钥的***和过程的三个示例。
图2描绘了实现隔离区域或可信执行环境(TrEE)的控制程序监视器的示例图。
图3描绘了用于利用中间目标协议头向可信TrEE传送受保护数据的示例过程。
图4A和图4B描绘了用于利用中间目标协议头向TrEE传送受保护数据的另一示例过程。
图5A和图5B描绘了用于利用中间目标协议头向嵌套TrEE传送受保护数据的示例过程。
图6图示了其中所描述的过程中的一个或多个过程可以被实现的的示例***。
图7描绘了被用于向TrEE安全地传送传输密钥和/或受保护数据的数据结构的示例。
图8描绘了用于基于外部TrEE的加密密钥利用中间目标协议头向嵌套TrEE传送受保护数据的另一示例过程。
图9描绘了用于基于内部TrEE的加密密钥利用中间目标协议头向嵌套TrEE传送受保护数据的另一示例过程。
图10描绘了其中可以体现本文中描述的技术的示例通用计算环境。
具体实施方式
本文中描述了用于将至少一个密钥(例如,签名密钥或加密密钥)或受保护数据/秘密安全地传送到计算设备(诸如一个或多个物理或虚拟计算设备)的可信执行环境(TrEE)中的***和技术。在一个方面,可以在密钥请求者与密钥管理***或拥有受保护数据的实体之间实现中介。中介在本文中可以称为目标协议头。密钥请求者可以与安全执行环境或TrEE相关联,安全执行环境或TrEE可以包括以下中的一个或多个:VSM trustlet、SGX应用、ARM TrustZone应用或一些其他类似载具。TrEE可以与请求者被隔离。请求者可以请求一个或多个秘密以从目标协议头传输到TrEE或在TrEE内执行的特定trustlet。响应于该请求,目标协议头可以与持有秘密的密钥管理***或其他实体通信以获取一个或多个秘密以用于传送给TrEE。目标协议头可以专门针对TrEE处的受保护数据,使得该受保护数据是由请求者或攻击者不可访问的。
在一些方面中,目标协议头的实现可以否定对请求者与密钥管理***之间的安全信道的需要。使用本文描述的TrEE目标技术(targeting technique)的目标协议头还可以以秘密/数据是由请求者不可访问的这种方式,来使得将一个或多个秘密或数据发送到TrEE或嵌套TrEE(例如,在安全内核之上运行的trustlet)是可行的。在一些情况下,请求者可能是非可信的或潜在地是非可信的,使得受保护数据的所有者可能出于各种原因而希望保持受保护数据是由请求者不可访问的。在某些情况下,确定请求者是值得信任的或者确保请求者仍然值得信任可能是困难或麻烦的。假定请求者不受信任,并且将TrEE与请求者隔离,可以否定其中很多问题。这种隔离可以极大地提高针对不同类型的攻击的安全性,并且可以提供其他益处和优点,如下面将更详细描述的。
图1A图示了用于在请求者与密钥管理***之间交换密钥的示例***和过程100a。如图所示,与客户端设备或客户端侧110相关联的请求者或请求设备120可以与密钥管理***或一些(多个)所期望秘密的持有者115进行通信,该持有者115与密钥管理***或与服务器或服务器侧105相关联。请求者120可以从密钥管理***115请求一个或多个秘密或多条受保护数据,例如,以访问某些受保护数据,执行一个或多个受保护过程等。请求者120和密钥管理***(KMS)115可以利用公共密钥-私有密钥安全***或本领域已知的其他密钥协议来交换所期望的秘密/数据。
在操作125处,请求者120可以首先经由本领域的任何已知技术向KMS 115进行认证并且建立安全通信信道。操作125可以包括利用公共密钥***等。接下来,在操作130处,利用经由操作125建立的安全信道,请求者120可以向KMS 115发送针对一个或多个秘密/受保护数据的请求。在验证该请求之后,在操作135处,KMS 115可以通过安全通信信道向请求者120传输回秘密或所请求的数据。作为本领域的标准,可以在135处通过安全信道传输秘密/所请求的数据,而安全信道之上不具有任何附加保护。作为结果,在操作135处传输的秘密/数据可能被暴露给请求设备120。
图1B图示了用于代表可信执行环境(TrEE)140、指定位址空间(enclave)或被用于指示与请求者120相关联的隔离执行环境的其他项目来在请求者120与KSM 115之间更安全地交换一个或多个秘密或受保护数据的示例***和过程100b。TrEE 140可以与请求者120被隔离,使得TrEE 140中所包含的代码和/或数据可以是由请求者120所不可访问的(例如,可读和/或可写入)。图2图示了可信执行环境的示例200,其中计算设备205可以包括逻辑210(例如,代码)和状态信息220,诸如数据。状态信息220可以被存储或位于隔离区域215中,诸如可以是对于未经授权的访问是安全的。在一些情况下,隔离区域215内的数据220不能被除了与隔离区域215相关联的逻辑210之外的任何实体直接读取或写入。隔离逻辑210决定它将允许对什么类型或部分的数据220的什么类型的访问。在一个示例中,逻辑210可以允许递增和读取与数据220相关联的值,但是不能以其他方式修改数据220。在另一示例中,逻辑210可以允许使用密钥的加密操作而不许可访问密钥本身的值。在所示的示例中,逻辑或代码210可以在CPM 205的通用或可访问区域中;然而,应当理解,在一些情况下,逻辑210也可以位于与状态信息220相同或不同的隔离区域内。
返回***100b,可以在服务器侧105上实现目标协议头(TPH)150以用作请求者120/TrEE 140与KMS 115之间的中介。协议头可以指代协议处理程序的软件实现,通常面向本身没有声明特定协议的***。目标可以是指执行环境的加密目标。总之,该术语可以指示实现协议的软件和/或硬件,该协议用于取回以TrEE处的响应为目标的秘密。在一些方面中,目标协议头150可以被实现为虚拟或云资源,例如,其可以在不同的硬件、软件上运行和/或与KMS 115分离。在一些方面中,诸如数据中心的实体可以例如托管和/或提供目标协议头150作为服务。目标协议头150可以执行两个主要功能:1)与KMS 115通信/从外部实体获取秘密或受保护数据,以及2)以对请求者120的TrEE 140的响应为目标。作为目标协议头150的使用的结果,请求者120不需要直接向KMS 115认证。KMS 115向目标协议头150而不是向请求者120产生其秘密。目标协议头150的功能是以对请求者120的TrEE 140的响应为目标,从而确保请求者120不能获取秘密/受保护数据的明文。目标协议头150可以代替地代表请求者120向KMS115进行认证,但是这可以在使用或不使用请求者120的身份的情况下进行。在一些情况下,目标协议头150可能需要确信它将返回给请求者120的TrEE 140的秘密将处于“安全手”中。在这种情况下,请求者120可以向目标协议头150提供关于TrEE 140的状态的可证明信息,该信息可以包括与TrEE 140相关联的可证明密钥材料,可以对其响应进行加密。
在一些情况下,诸如由一个或多个trustlet提供的多个不同过程可以在安全内核内同时地操作,其中每个trustlet和安全内核均被认为是TrEE 140(例如,这是嵌套TrEE的示例)。在这种情况下,每个不同的trustlet可以与会话ID、trustlet类型和/或其他ID相关联,其可以被用于标识安全内核内的个体trustlet(例如,两者都表示为TrEE140)。来自目标协议头150的响应可以狭窄地被以在请求中被标识的TrEE 140内的特定trustlet为目标,如下面将更详细描述的。
在以TrEE 140为目标的情况下,在请求者120与目标协议头150之间不存在对安全信道的固有需求,因为请求者120本身不受响应的信任。然而,应当理解,可以经由认证操作160添加请求者120与目标协议头150之间的安全信道,例如,以保护对请求本身(请求者想要的秘密)的访问,这可能导致不期望的信息公开。在操作160处的认证之后或代替操作160处的认证,在操作155处,代表TrEE 140,请求者120可以向目标协议头150发送针对一个或多个秘密或秘密或受保护数据的请求,例如,以传送到TrEE。在一些方面,该请求可以与TrEE 140相关联或标识TrEE 140。目标协议头150可以确定TrEE140是否值得信任。在一个方面中,请求者120的认证可以依赖于洁净室供应(clean room provisioning)的类型。在另一方面,认证可依赖于证明。
当请求者120设备例如是全新的并且被合理地假定为没有恶意软件时,可以使用洁净室供应。下面将参考图3更详细地描述用于使用洁净室供应向与请求者相关联的TrEE传送受保护数据的示例过程。下面将参考图4更详细地描述用于使用证明(例如,证明服务)向与请求者相关联的TrEE传送受保护数据的示例过程。
在任一种情况下,一旦TPH 150已经认证了请求者120,和/或建立了TrEE 140的可信度,TPH 150就可以在操作165处向KMS 115认证并且与KMS 115建立安全通信信道。在一些方面,KMS 115可以包括或者与持有一个或多个秘密或受保护数据(诸如批准(license)、许可、密码等)的任何实体相关联。在与KMS 115建立安全通信信道时,TPH 150可以在操作170处发送针对受保护数据的请求。KMS115可以在操作175处返回所请求的秘密。在操作180处,TPH 150可以以TrEE 140处的(多个)秘密或受保护数据为目标并且发送一个或多个秘密。
在一些方面,在操作180处向TrEE 140传送受保护数据可以利用以下数据结构中的至少一项:加密身份密钥,其可以围绕TrEE身份或证明过程或证明日志而被构建;或者在嵌套TrEE示例中(例如,在安全内核之上运行的trustlet);签名身份密钥,其也可以围绕证明过程而被构建,如下面将更详细描述的。
图1C图示了用于代表可信执行环境(TrEE)140在请求者120与KMS 115之间安全地交换一个或多个秘密或受保护数据的另一示例***和过程100c。***100c可以是如上所述的***100b的特定示例。在***100c中,目标协议头150可以是主机监护服务(HGS)150a。在***100c中,HGS 150a可以例如从云主机185或可以实例化或以其他方式控制TrEE 140的其他实体接收密钥保护器190。在***100c中,请求者120可以与例如由云主机185提供的虚拟机相关联。KP 190可以并入在于2014年9月9日提交的名称为“具有连续的所有者访问权限的加密虚拟机的安全传输(Secure Transport of Encrypted Virtual Machines withContinuous Owner Access)”的相关美国专利申请#14/481,399中描述的密钥保护器的一个或多个方面。KP 190可以包含由TrEE 140可用的一个或多个秘密,诸如传输密钥。KP 190实质上可以包装传输密钥,使得其是仅由监护者集合可访问的,这些监护者被授权访问传输密钥。KP 190可以被加密,使得在操作165处向KMS 115认证以及与KMS 115建立安全通信信道之后,便于读取KP 190的内容并且取回传输密钥,在操作170a处,HGS 150a可以从KMS115请求解密密钥。作为响应,KMS 115可以在操作175a处向HGS发送解密密钥。然后,HGS150a可以使用解密密钥来解密KP 190,并且取回一个或多个秘密(例如,传输密钥),以发送到TrEE 140。然后,在操作180处,HGS 150a可以经由将在下面更详细描述的一个或多个寻址技术将秘密或传输密钥发送到TrEE。在一些方面,可以基于来自KP 190的数据来寻址TrEE 140。
应当理解,在一些情况下,HGS 150a和KMS 115可以是一个实体,使得不需要在它们之间建立通信信道,并且不需要认证。
在***100c中,不需要请求者120与HGS 150a之间的认证。只要云或结构主机180是健康的,哪个结构主机与HGS 150a通信并不重要,只要它是结构中的服务器之一(这可以经由证明来验证)。
图3图示了用于向请求者的TrEE传送受保护数据的示例过程300,其中假定请求者是值得信任的(例如,没有恶意软件)。如本文中使用的,任何附图中的虚线的框或操作指示该操作是可选的,使得其可以被排除。过程300可以利用与TrEE相关联的加密密钥,诸如由TrEE或发起TrEE的请求者的安全内核生成的公共密钥私有密钥对(例如,非对称密钥对)的公共密钥。在其他情况下,加密密钥可以是对称的。在这种情况下,TPH 150可以小心保护TrEE的密钥以防止未经授权的公开。如本文中使用的,安全内核可以指代计算设备的与更高级别的安全性相关联的任何部分,如本领域中已知的。
在这种情况下,可以在操作302处启动或发起TrEE 140,并且可以在操作304处在TrEE 140内部生成一个或多个私有密钥(例如,私有加密密钥)和相应的公共密钥。然后,在操作306处,对应的公共密钥可以利用TPH 150被注册,并且被与请求者和/或请求设备的身份相关联。在一些情况下,TrEE 140的公共密钥只需要注册一次,使得在公共密钥注册之后,过程300可以在操作308处开始。随后,请求者120可以在操作308处经由任何已知的认证技术利用TPH 150来认证。然后,TPH 150可以例如基于TrEE 140的注册公共密钥来查找公共密钥以在向TrEE 140传送响应中使用,TrEE 140的注册公共密钥可以与请求者120的身份相关联。该过程可以被称为“洁净室”供应,因为它只能在请求者120处于已知良好或可信赖状态时被安全地完成。在该示例中,不需要其中请求者120向TPH 150发送TrEE健康证书(THC)的基于证书的认证,因为请求者120是值得信任的。在缺乏普遍存在的证明服务的情况下,这是验证TPH 150正在以正确的TrEE 140为目标的可行选项。
接下来,在操作312处,TPH 150可以例如从KMS 115获取受保护数据以用于传送到TrEE 140,如上所述。使用经由操作310访问的TrEE公共密钥,然后在操作314处,TPH 150可以构造消息以发送到TrEE 140,包括所获取的受保护数据。TPH 150可以在操作316处将消息发送到请求者120。
在接收到消息时,请求者120可以在操作318处将其转发到TrEE140。因为请求者120不具有对TrEE的私有密钥的访问,所以请求者120不能解密该消息以访问受保护数据。在操作320处,TrEE 140可以使用其私有密钥来解密消息并且访问受保护数据。
图4A图示了用于向非可信请求者的TrEE传送受保护数据的示例过程400。过程400可以利用与TrEE相关联的加密密钥,诸如由TrEE或发起TrEE的请求者的安全内核生成的公共密钥私有密钥对的公共密钥,诸如在嵌套TrEE(本文中可以称为trustlet)的情况下。过程400可以附加或备选地利用安全内核的签名密钥,其可以被认为是与TrEE相关联的外部TrEE,其中trustlet被嵌套或者在安全内核之上运行,TrEE可以被用于验证由TrEE生成的密钥对的公共密钥,如下面更详细地描述的。
根据过程400,在操作402处的TrEE的初始化之后,请求者120可以在操作406处从证明服务请求证明报告或声明。图4B图示了用于从证明服务424获取证明声明或报告的示例过程。在图4B的示例中,在操作426处,请求者120可以在引导时创建包含TrEE 140(安全内核)的公共密钥(IDK_E)(trustlet)或TrEE的签名密钥(IDK_S)的证明日志(TCG日志)。然后,在操作428处,请求者120可以将TCG日志呈现给证明服务424。在一些情况下,TPH 150可以引导或者请求者120可以选择TPH 150信任的证明服务。在操作430处,证明服务424可以检查TCG日志并且基于TrEE 140(安全内核)的加密密钥(IDK_E)和/或签名密钥(IDK_S)发布TrEE健康证书(THC)。在操作432处,证明服务242然后可以向请求者120发送回THC(本文中也称为证明声明)。
在操作406处获取证明声明之后,请求者120可以在操作408处代表TrEE 140向TPH150发送证明声明和针对受保护数据的请求。THC或证明声明可以包含请求者120的主题名称(以在认证期间建立的请求者身份与证书之间创建绑定)、以及响应者(TPH 150)在制定响应时应当使用的密钥(例如,加密密钥或签名密钥)。
在一些方面,诸如可信平台模块(TPM)的加密密钥(EK)的防篡改身份与请求者120相关联。请求者120的证明可以使用TPM EK而被执行,如本领域已知的。
在一些方面,在带外或者是通过可以是THC的一部分的发布策略(IP)对象标识符(OID),经由请求者120,TrEE可以向TPH 150传达密钥是加密密钥还是签名密钥。如上所述,在使用哪个密钥之间的选择可能影响对被用于构造响应的机制的选择。重要的是,TPH 150不要求拥有支持证书的私有密钥的证据,这仅仅因为如果给出了错误的证书,则请求者120无论如何将不能够理解响应,因为其不具有对相应的私有密钥的访问。
图5A和图5B图示了用于向非可信请求者的嵌套TrEE传送受保护数据的示例过程500。在一些方面,可以嵌套两个或更多个TrEE,使得一个TrEE被包含在另一TrEE内。如本文所述,trustlet是嵌套TrEE,其被包含在外部TrEE中。在一个示例中,外部TrEE可以包括操作***的可信部分的安全内核,诸如与虚拟信任级别相关联的特定存储器分区,如下面参考图6更详细地描述的。当例如只有外部TrEE的加密密钥(在某些情况下可以是实例化trustlet的机器的安全内核)可用时,可以利用过程500。
过程500可以在操作502处开始,其中请求者120利用由请求者120决定的“会话标识符”来启动trustlet,该“会话标识符”可以包括任何类型的标识符,诸如与trustlet将对其进行操作的内容或数据相关或标识该内容的标识符,这与trustlet的用户相关(例如,“用于播放'特定标题'的流内容应用trustlet'”)。在一个示例中,会话ID可以是32字节的值。该值可以被保留,在trustlet的寿命持续时间内是只读的,并且在接收去往trustlet的目标消息时对安全内核是可用的。该值可能被错失(在进程启动时未指明),在这种情况下,会话ID可以被假定为零。
接下来,在操作504处,请求者120可以向TPH 150认证(如上所述是可选的,但仅在非常有限的情况下,诸如在请求者之间确实没有差异的情况下)。例如,期望TrEE(例如,TrEE的密钥)与请求者的身份之间的绑定的一个示例是诸如电影的内容项的播放受到批准或订户验证的限制(例如,NetFlix用户想要获取播放电影的许可证,但NetFlix希望确保其是正在接收电影批准的用户(在他们的TrEE内))。
在操作506处,请求者120可以从TPH 150信任的证明服务获取证明声明,诸如根据上面参考图4B描述的过程406。接下来,请求者120可以在操作508处向TPH 150呈现证明声明。应当理解,在可能适用于此处的上述洁净室供应示例中,不需要证明。
在接收到证明声明时,TPH 150可以在操作510处验证证明声明(或者,在上面的洁净室供应示例的情况下,基于其身份查找请求者的密钥)。在过程500中的此处,请求者120知道使用哪个密钥来寻址外部TrEE。在一些方面,对从证明声明或请求获取的密钥是外部TrEE或安全内核(而不是内部信任者)的加密密钥的指示可以被包括在请求或证明声明内,或者以另一方式或在带外被传送到TPH 150,设置为默认过程等。接下来,在操作511处,TPH150可以例如从KMS 115或从持有受保护数据的任何其他实体(诸如持有批准、密码、许可和/或其他信息的一个或多个服务)获取在请求中所指示的受保护数据。
在操作512处,TPH 150可以确定要以哪个trustlet类型为目标,例如,基于请求或基于TPH 150本身(例如,每个TPH 150可以专门针对特定目的或应用而被设计,诸如NetFlix)。在利用KP的示例中,诸如上面参考1C所述,可以在KP中编码trustlet类型。在一些其他示例中,可以默认设置或者硬编码trustlet类型,诸如在利用HGS 150a的实现中。在HGS示例中,HGS 150a可以总是以虚拟模式安全过程(VMSP)trustlet为目标,其类型可以是硬编码的(因为KP可以不包含该信息)。
在确定将以其为目标的trustlet类型时,TPH 150可以在操作514处构造包括将发送到TrEE的受保护数据的消息。图5B中描绘了操作514的更详细示例。
在一些方面,操作514还可以包括操作536,其中TPH 150生成两个随机对称密钥:传输密钥TX和包装密钥TW。接下来,在操作538处,TPH 150可以使用THC中的公共密钥(其是证明声明的一部分)来加密TX(例如,假定THC基于的是加密密钥,而不是签名密钥)。在一些方面,操作538可以包括使用RSA加密和OAEP填充来利用主机的IDK加密TX。在一些方面,TPH150可以在操作540处验证trustlet的会话ID,例如,以验证trustlet被授权或者具有用以访问受保护数据的正确许可(例如,针对在线服务或内容项付费)。在一些情况下,会话ID可以包括trustlet类型;然而,在其他情况下,trustlet类型可以在KP中被编码或甚至是被硬编码。然后,在操作542和544处,TPH 150可以使用TX对TW进行加密,并且trustlet的trustlet类型和会话ID可以被连接并且被用作“认证标签”。注意,认证标签的使用是AES-GCM协议的人工信号(artifact);其他加密协议可以使用具有相同效果的不同方案。认证标签背后的想法是将TW与trustlet类型和会话ID绑定在一起(以它们在传输中不能被攻击者解耦的方式)。存在达成这种加密的多种其他方式;本文中描述了AES-GCM,因为它本身提供了这种功能,并且因此是有利的。
然后,在操作546处,TPH 150可以将加密的TX和TW的所认证的加密发送到请求者120。回到图5A,在接收到可以经由图5B的操作生成和/或可以包括以与TW类似的方式加密的受保护数据的消息516之后,请求者120可以在操作518处将该消息转发到trustlet。由于trustlet不能解密该消息(它正试图获得TW),在操作520处,trustlet可以将消息传输给安全内核。备选地,请求者120可以绕过trustlet将响应发送到安全内核,并且安全内核在其解密TW时将利用新信息警告trustlet。
接下来,在操作522处,安全内核可以使用其私有加密密钥对TX进行解密,并且然后使用TX对TW进行解密,使用认证标签来确保具有正确会话ID的正确trustlet类型正在请求被解密的消息。如果验证了认证标签,则安全内核可以在操作524处将TW返回给trustlet。然后,trustlet可以使用所接收的TW来解密TW正在加密的任何其他内容,诸如受保护数据,其可以是任何大小的。
在一些方面,安全内核可以实现一个或多个过程,诸如由一个或多个API定义的过程,这些过程用于接收、解密和向正确的trustlet传输目标消息。API可以接收被以特定trustlet为目标的加密消息,并且使用IDK的私有部分(安全内核身份加密密钥)解密TX。API可以使用trustlet类型和调用trustlet的会话ID的连接作为标记来构造其自己的认证标签(出于明显的安全原因,不能使用所提供的认证标签)。然后可以获取trustlet类型和会话ID。如果认证成功,则API可以使用TX解密TW。如果解密成功,则API可以将TW返回到trustlet。
在一个示例中,所接收的消息可以包括以下信息:版本号(例如,0);传输密钥加密协议ID(例如,RSA 2048);传输密钥加密填充ID(例如,OAEP);包装密钥加密协议ID(例如,AES-GCM);传输密钥密文的长度;包装密钥认证标签的长度(忽略);包装密钥密文的长度;以及传输密钥密文、包装密钥认证标签(忽略)和包装密钥密文。应当理解,这只是可以用于构造消息的很多方式中的一种。
在一些方面,上述***或过程100、300、400或500中的一个或多个过程/***可以在实现虚拟安全模式(VSM)的资源或虚拟机中被实现。在虚拟机的上下文中的VSM和相关概念在于2014年2月21日提交的名称为“针对虚拟机的虚拟安全模式(Virtual Secure Modefor Virtual Machines)”的美国专利申请#14/186,415中被描述。图6图示了包括被划分成不同虚拟信任级别VTL0 610和VTL1 615的VSM计算环境的***或主机操作***600。***600可以是***100a、100b或100c的一个或多个方面的更具体的实现(诸如云主机180),包括在VSM中进行操作的计算环境。VTL0 610可以包括用户模式620和正常内核模式630,并且VTL1 615可以包括用户模式625和安全内核模式635。不同的VTL可以由管理程序提供,例如,在物理计算组件或虚拟计算资源(例如,一个或多个虚拟机)之上运行的管理程序,其经由针对某些进程等的存储器访问的限制来交互和定义VTL0 610和VTL1 615。在所示示例中,VTL1 615可以比VTL0 610更安全,使得读取和/或写入与VTL1相关联的数据或代码需要更高的访问。VTL0 610可以对应于请求者120,而VTL1 615可以对应于TrEE140。下面将***600描述为利用KP 700。然而,应当理解,这仅作为示例给出;***600可以利用上述证明/认证方案而不使用KP来达到类似的效果。
如参考***600所述,主机600的客户端app 650/VTL0 610可以对应于请求者120,而VTL1 615、更具体地是VTL1 615的安全内核635可以对应于TrEE 140。在一些方面,trustlet 640可以对应于参考过程500描述的嵌套trustlet。在一些方面,***600可以实现上述过程500。在其他情况下,***600可以实现下面参考图8和9描述的过程800和/或900,其中过程500和800之间的主要区别在于使用KP来初始化trustlet以及使用HGS 150a的特定实现来代替更通用的TPH 150。
如图所示,一个或多个TrEE或trustlet 640可以驻留在VTL1 615的用户模式625中。在一些方面,一个或多个trustlet 640可以利用虚拟机安全过程(VMSP)645被访问或与VMSP 645相关联。客户端操作、应用、程序等650(客户端)可以以VTL0 610的用户模式620操作。驻留在VTL1 615的用户模式625下的服务器655可以经由RPC660与客户端650通信。如图所示。客户端650可以请求trustlet 640的发起以经由一个或多个RPC 660执行一个或多个安全操作,例如,利用VMSP 645。在其他方面,服务器655可以在不从客户端650接收显式请求的情况下发起trustlet 640。在任一种情况下,服务器655可以利用标识trustlet的参数的特定trustlet类型以及标识trustlet 640的特定实例的会话ID来发起(多个)trustlet640。在一些方面,trustlet类型可以经由包括KP 405的数据结构(诸如上面参考图1C的***100c所述)而被初始化。包括诸如KP 700的KP的示例数据结构在图7中示出。
数据结构700可以包括密钥保护器(KP)705,KP 705是加密密钥(这里是传输密钥TK)的密码包装,如于2014年9月9日提交的名称为“具有连续的所有者访问的加密虚拟机的安全传输(Secure Transport of Encrypted Virtual Machines with Continuous OwnerAccess)”的美国专利申请#14/481,399中所描述的。KP 705确保仅向授权实体给出对TK710和/或其他受保护数据的访问。作为被传递给TrEE 140的密钥的TK 710可以由KP 705来包装,或者在某些情况下由密钥或TW来包装。TK 710可以被认为是高价值秘密。在一些情况下,TK 710可以在KMS 115处被解密。
数据结构700还可以包括虚拟机数据(VMD)730,VMD 730可以包括用以初始化trustlet的数据。VMD 730可以使用适当的加密技术被加密,诸如从Redmond Wash的微软公司可获取的BitLocker。全卷加密密钥(FVEK)725(其可以被用于解密VMD 730,并且可以由虚拟可信平台模块(VTPM)保护)的状态(725)被加密并且作为元数据的一部分与KP 705一起被存储。在一些方面,FVEK 725可以由卷主密钥(VMK)720加密。VTPM状态725本身使用由KP705包装的密钥而被加密。在一些方面,VTPM状态725可以由TK 710(高价值秘密)加密并且将数据“密封”到PCR值(例如,PCR7),使得如果PCR值处于预期状态,则TPM将允许访问(例如,解密)密钥材料。在这种情况下,TPM保护器是一种这样的数据结构,如果一个或多个PCR处于预期状态,则该数据结构被馈送到TPM中以解封一些秘密。在其他情况下,也可以使用非TPM保护器。
卷主密钥(VMK)720可以由VTPM状态725来解封。VTPM状态725可以由KP 705内的TK710来加密。在一些情况下,VMK 720可以是Bitlocker卷主密钥,并且可以被标记为低价值秘密。
KP 700的每个字段或块也可以依据其加密的内容来描述,诸如加密(密钥,数据)速记:
VMDDISK 加密(FVEK,ClearText磁盘数据)
FVEKDISK 加密(VMK,FVEK)
VMKDISK 加密(VMK)
VTPM.DISK 加密(TK,VTPM)
TKDISK 加密(KP,TK)
KP该KP与VM相关联,而trustlet实际上永远不会看到它。KP去往KMS,KMS对其进行解密并且将TK返回到trustlet(经由上述目标机制)。TK解密vTPM,vTPM解封VMK,产生FVEK。
在一个示例中,KP 405,VTPM状态415、VMK 420和VMD 430可以是被存储在磁盘上的数据。VTPM状态415可以在创建VTPM时被初始化,并且可以被确保是唯一的。针对运行时唯一性,例如所生成的秘密或受保护数据的运行时唯一性,VTPM依赖于由安全内核向其提供的RNG的安全性。在trustlet使用解密的TK 710解密VTPM状态415之后,访问VMD 730的其余操作可以与在物理机器与物理TPM之间执行的操作相同或类似。这些操作可以包括VTPM执行VSM的测量,使用VTPM测量来解封VMK(导致向操作***加载器提供FVEK 725),以及操作***使用FVEK 725来解密VMD 730。
为了启动trustlet,客户端650可以请求和/或接收数据结构700。客户端650可以将KP 705或整个数据结构700发送到TPH 150(或者在一些实现中,发送到HGS 150a),TPH150可以与KMS 115通信以解密TK 710。然后TPH可以利用IDK_pub 665以与trustlet 640相关联的安全内核635处的TK 710为目标,例如经由下面描述的过程800。安全内核635可以在启动时间时获取IDK_pub和IDK_pri。安全内核635可以使用其私有密钥675(例如,IDK_pri)来进行解密并且将TK 710返回到服务器655。然后,服务器655可以将TK 710传送到trustlet 640。在一些情况下,安全内核635可以将TK 710直接返回到trustlet 640。在一些方面,受保护数据可以与TK 710一起被传送到trustlet 640,并且由TK 710加密。以这种方式,trustlet 640可以使用TK 710来解密受保护数据。
图8图示了用于使用TrEE或trustlet的身份密钥来使传输密钥和/或由传输密钥加密的受保护数据以TrEE或特定trustlet为目标的示例过程800。更具体地,过程800示出了经由trustlet的安全内核的加密密钥来以trustlet为目标的方式。
云结构主机或主机OS(例如,主机OS 600)执行一系列步骤以便接收传输密钥。在操作602处,云结构主机可以首先获取TrEE健康证书(THC)(例如围绕与TrEE或trustlet相关联的安全内核的加密身份密钥(IDK_E)所构建的THC),诸如根据上面参考图4B描述的过程。在一个方面,操作602可以包括由主机在引导时创建包含IDK_E的公共版本的证明日志(TCG日志),IDK_E的私有部分存在于与trustlet相关联的VSM安全内核(SK)中。可以将证明日志呈现给证明服务(AS)。AS可以检查证明日志并且向主机发布围绕IDK_E(例如,非对称密钥的公共部分)构建的THC。在一些方面,类似于IDK_E,还可以创建“签名身份密钥”(IDK_S)并且IDK_S可以具有围绕它构建的单独的THC,如将在下面参考图9更详细地描述的。可以使用IDK_E或IDK_S构建对密钥传送问题的解决方案,如下所述。
当到了加载新的屏蔽VM时,主机在操作804处获取VM的KP,并且发起与TPH(例如,TPH 150)的对话,其目标是向VMSP trustlet中注入由KP加密的TK。
为了交换针对TK的KP,在操作806处,主机可以向诸如TPH 150的TPH呈现KP和“trustlet身份”以及THC。在操作808处,云结构主机也可以开启具有从KP(KPSID)得出的“会话ID”的trustlet或TrEE。在一些方面,所接收的KP将通过在其上创建SHA-2散列或利用其他单向函数来形成会话ID值的基础。TPH可以在操作822处检查THC,并且在操作824处与诸如KMS 115的KMS、或者拥有或具有对受保护数据和/或KP的解密密钥的访问的其他实体通信,以解密KP来访问TK。在操作826处,TPH可以使用特殊的加密构建以利用所计算出的KPSID来以trustlet为目标,例如,如上面参考过程500所述。
请求者或客户端650可以从TPH接收响应,并且将其转发到具有给定KPSID的trustlet。在操作810处,trustlet或服务器可以要求VSM安全内核解密响应并且将其返回给TK。安全内核检查响应,在操作812处验证其以trustlet类型和trustlet的会话ID为目标,并且如果存在匹配,则在操作818处仅返回密钥。这样,如果TPH响应在错误的手中结束,则在密码学上是不可能理解的。在接收到密钥时,主机可以在操作820处解密密钥并且将其提供给TrEE,此时,过程800可以结束。
图9图示了用于使用安全内核的签名密钥来使传输密钥和/或由传输密钥加密的受保护数据以trustlet为目标的另一示例过程900。更具体地,过程900图示了通过由安全内核的签名密钥认证的trustlet的加密密钥来以trustlet为目标的方式。
过程800示出了响应可以如何通过在所有trustlet之间共享的身份加密密钥而被间接地以trustlet为目标。然而,如果TrEE具有可证明的身份签名密钥,则也可以使用另一方法。这里,每个trustlet可以生成自身的加密密钥对,并且使用IDK_S使安全内核验证该对的公共密钥部分。注意,这样的验证还必须以密码方式将密钥绑定到trustlet类型和trustlet的会话ID:
Key_certification=σIDK_S(Trustlet_Encryption_Key_Pub,
Trustlet_Type,Session_ID)
其中σIDK_S表示其输入()的连接,后面是使用给定密钥的在这些输入上的签名。
在这种情况下,请求者向TPH呈现trustlet的密钥以及THC和密钥证书,并且TPH通过将传输密钥加密为trustlet的加密密钥来进行响应,这与操作822和824处的过程800不同。
在一些方面,还可以在密钥认证中使用或指示“安全版本号”(SVN)以防止其他类型的攻击来确保TrEE不是更旧的且潜在易受攻击的版本。在一些情况下,当证明安全内核但内部trustlet没有被证明时(例如,在已经完成证明之后,trustlet需要被加载),则包括trustlet的SVN可以指导TPH 150拒绝以更旧的易受攻击的trustlet为目标,即使THC没问题。
过程800与过程900的两种方法之间的一个区别是谁来实施trustlet或TrEE ID、会话ID和传输密钥之间的绑定:在过程800中,是安全内核,而在过程900中,是TPH 150。另一主要区别在于如何以加密方式构造响应。在先前的情况下,其是以安全内核为目标,而安全内核又决定允许哪个trustlet看到它,在这种情况下,响应直接以trustlet为目标,其中trustlet的密钥由安全内核的密钥验证。
在一些方面,可以实现上述技术以为容器提供完全凭证隔离。基本问题是相同的,使得容器可以从其主机请求凭证。然后,主机可以代表容器从一些KMS请求凭证。如果请求的凭证未加密地返回到主机(例如,凭证按需求到达,并且不是容器映像的一部分),则将导致“延迟凭证绑定”。该绑定很有价值但不等于凭证隔离,因此如果主机被泄露,则凭证被公开。
在实施例中,一种计算***,包括:
处理器;以及
存储器,该存储器被通信地耦合到处理器的,存储在由处理器执行时使得该计算***执行以下操作的指令:
注册与可信执行环境(TrEE)的与由TrEE持有的私有加密密钥相对应的公共加密密钥;
接收来自与TrEE相关联的请求者的、针对受保护数据的请求;
取回受保护数据;
通过利用TrEE的公共加密密钥加密受保护数据来生成目标受保护数据;以及
向请求者发送目标受保护数据。
在实施例中,用于注册TrEE的公共加密密钥的指令还包括,用于将请求者的身份与TrEE的公共加密密钥相关联的指令。
在实施例中,TrEE包括在安全内核之上运行的trustlet,并且其中TrEE的公共加密密钥包括与安全内核相关联的加密密钥。
在实施例中,加密密钥还与会话ID和trustlet类型相关联,并且其中用于通过利用TrEE的公共加密密钥加密受保护数据来生成目标受保护数据的指令还包括用于以下操作的指令:
利用TrEE的公共加密密钥加密传输加密密钥;以及
利用传输加密密钥和认证标签加密受保护数据,其中认证标签将请求者与会话ID和trustlet类型绑定;并且其中用于向请求者发送目标受保护数据的指令还包括用于以下操作的指令:
向请求者发送加密的传输加密密钥、加密的受保护数据和加密的认证标签。
在实施例中,TrEE包括在安全内核之上运行的trustlet,其中TrEE的与由TrEE持有的私有加密密钥相对应的公共加密密钥包括,与由trustlet持有的trustlet私有加密密钥相对应的trustlet公共加密密钥,其中指令在由处理器执行时还使得计算***执行以下操作
接收密钥验证声明,其中密钥验证声明绑定trustlet公共加密密钥和trustletID。
在实施例中,密钥验证声明是由安全内核使用签名密钥生成的,并且其中签名密钥验证由trustlet生成的公共密钥私有密钥对的trustlet公共加密密钥。
在实施例中,trustlet ID包括会话ID和trustlet类型,其中密钥认证声明是由安全内核使用签名密钥生成的,并且绑定trustlet公共密钥、trustlet类型、以及会话ID。
在实施例中,指令在由处理器执行时还使得该计算***执行以下操作:
将trustlet ID与授权trustlet ID列表进行比较;以及
仅当trustlet ID与授权trustlet ID列表相关联时,利用trustlet公共加密密钥加密受保护数据。
在实施例中,一种用于向与非可信请求者相关联的可信执行环境(TrEE)传输受保护数据的方法,包括:
由目标协议头注册与TrEE持有的私有加密密钥相对应的TrEE的公共加密密钥;
由目标协议头接收来自与TrEE相关联的请求者的、针对受保护数据的请求;
由目标协议头取回受保护数据;
通过利用TrEE的公共加密密钥加密受保护数据来生成目标受保护数据;以及
向请求者发送目标受保护数据。
在一个实施例中,注册TrEE的公共加密密钥还包括将请求者的身份与TrEE的公共加密密钥相关联。
在实施例中,由目标协议头取回受保护数据包括从密钥管理***获取受保护数据。
在实施例中,TrEE包括在安全内核之上运行的trustlet,并且其中TrEE的公共加密密钥包括与安全内核相关联的加密密钥。
在实施例中,加密密钥还与会话ID和trustlet类型相关联。
在一个实施例中,通过使用TrEE的公共加密密钥加密受保护数据来生成目标受保护数据还包括:
利用TrEE的公共加密密钥加密传输加密密钥;以及
利用传输加密密钥和认证标签加密受保护数据,其中认证标签将请求者与trustlet ID绑定;并且其中向请求者发送目标受保护数据还包括:
向请求者发送加密的传输加密密钥、加密的受保护数据和加密的认证标签。
在实施例中,TrEE包括在安全内核之上运行的trustlet,其中TrEE的与由TrEE持有的私有加密密钥相对应的公共加密密钥包括,与由trustlet持有的trustlet私有加密密钥相对应的trustlet公共加密密钥,其中该方法还包括:
由目标协议头部接收密钥验证声明,其中密钥验证声明绑定trustlet公共加密密钥和trustlet ID。
在实施例中,密钥验证声明是由安全内核使用签名密钥生成的,并且其中签名密钥验证由trustlet生成的公共密钥私有密钥对的trustlet公共加密密钥。
在实施例中,trustlet ID包括会话ID和trustlet类型,其中密钥认证声明是由安全内核使用签名密钥生成的,并且绑定trustlet公共密钥、trustlet类型、以及会话ID。
在实施例中,该方法还包括:
由目标协议头将trustlet ID与授权trustlet ID列表进行比较;以及
仅当trustlet ID与授权trustlet ID列表相关联时,由目标协议头利用trustlet公共加密密钥加密受保护数据。
在实施例中,该方法还包括:
由请求者向trustlet发送加密的受保护数据;以及
由trustlet使用与trustlet公共加密密钥相对应的trustlet私有加密密钥解密加密的受保护数据。
在实施例中,一种计算机可读存储介质,包括用于向与潜在非可信请求者相关联的可信执行环境(TrEE)传输受保护数据的指令,该介质包括当在联网计算机***上执行时使得联网计算机***至少进行以下操作的指令:
注册TrEE的对称加密密钥;
接收来自与TrEE相关的请求者的、针对受保护数据的请求;
取回受保护数据;
通过利用TrEE的对称加密密钥加密受保护数据来生成目标受保护数据;以及
向请求者发送目标受保护数据。
如下所述,上述技术可以在一个或多个计算设备或环境上被实现。图10描绘了其中可以体现本文中描述的一些技术的示例性通用计算环境,例如,可以体现一下中的一项或多项:请求者120、TrEE140、TPH 150、主机OS 600、AS 424、KMS 115。计算***环境1002仅是合适的计算环境的一个示例,并且不旨在对本公开的主题的使用范围或功能提出任何限制。计算环境1002也不应当被解释为具有与示例操作环境1002中示出的任一组件或其组合相关的任何依赖性或要求。在一些实施例中,各种所描绘的计算元件可以包括被配置为实例化本公开的特定方面的电路。例如,本公开中使用的术语电路可以包括被配置为通过固件或开关来执行功能的专用硬件组件。在其他示例实施例中,术语电路可以包括通过体现了可操作以执行功能的逻辑的软件指令来配置的通用处理单元、存储器等。在电路包括硬件和软件的组合的示例实施例中,实现者可以写入体现逻辑的源代码,并且该源代码可以被编译成可以由通用处理单元处理的机器可读代码。由于本领域技术人员可以理解,现有技术已经发展到硬件、软件或硬件/软件的组合之间几乎没有差异的程度,因此选择硬件与软件来实现特定功能是一种留给实现者的设计选择。更具体地,本领域技术人员可以理解,软件过程可以转换成等效的硬件结构,并且硬件结构本身可以转换为等效的软件过程。因此,对硬件实现与软件实现的选择是设计选择之一,并且留给实现者。
计算机1002(其可以包括以下中的任一个:移动设备或智能电话、平板电脑、膝上型电脑、台式计算机或联网设备的集合、云计算资源等)通常包括各种计算机可读介质。计算机可读介质可以是可以由计算机1002访问的任何可用介质,并且包括易失性和非易失性介质、可移动和不可移动介质。***存储器1022包括具有易失性和/或非易失性存储器形式的计算机存储介质,诸如只读存储器(ROM)1023和随机存取存储器(RAM)1060。包含有助于在计算机1002内的元件之间传输信息的基本例程(例如在启动期间)的基本输入/输出***1024(BIOS)通常被存储在ROM 1023中。RAM 1060通常包含对处理单元105立即可访问的和/或当前正在由处理单元1059操作的数据和/或程序模块。作为示例而非限制,图10图示了操作***1025、应用程序1026、包括TrEE目标应用1065的其他程序模块1027、和程序数据1028。
计算机1002还可以包括其他可移动/非可移动的易失性/非易失性计算机存储介质。仅作为示例,图10图示了从非可移动的非易失性磁介质读取或向其写入的硬盘驱动器1038、从可移动的非易失性磁盘1054读取或向其写入的磁盘驱动器1039、以及从诸如CDROM或其他光学介质等可移动的非易失性光盘1053读取或向其写入的光盘驱动器1004。可以在示例操作环境中使用的其他可移动/不可移动的易失性/非易失性计算机存储介质包括但不限于磁带盒、闪存卡、数字通用盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器1038通常通过诸如接口1034的非可移动存储器接口被连接到***总线1021,并且磁盘驱动器1039和光盘驱动器1004通常通过诸如接口1035或接口1036的可移动存储器接口被连接到***总线1021。
上面讨论并且在图10中图示的驱动器及其相关联的计算机存储介质为计算机1002提供计算机可读指令、数据结构、程序模块和其他数据的存储。例如,在图10中,硬盘驱动器1038被图示为存储操作***1058、应用程序1057、其他程序模块1056和程序数据1055。注意,这些组件可以与操作***1025、应用程序1026、其他程序模块1027和程序数据1028相同或不同。操作***1058、应用程序1057、其他程序模块1056和程序数据1055在这里被给予不同的数字以说明它们至少是不同的副本。用户可以通过诸如键盘1051和通常被称为鼠标、轨迹球或触摸板的指示设备1052的输入设备向计算机1002中输入命令和信息。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、视网膜扫描器等。这些和其他输入设备通常通过被耦合到***总线1021的用户输入接口1036而被连接到处理单元1059,但是可以通过诸如并行端口、游戏端口或通用串行总线(USB)的其他接口和总线结构而被连接。监控器1042或其他类型的显示设备也经由诸如视频接口1032的接口被连接到***总线1021。除了显示器之外,计算机还可以包括可以通过输出***接口1033而被连接的其他***输出设备,诸如扬声器1044和打印机1043。
计算机1002可以使用到诸如远程计算机1046等一个或多个远程计算机的逻辑连接在联网环境中进行操作。远程计算机1046可以是个人计算机、服务器、路由器、网络PC、对等设备或其他公共网络节点,并且通常包括上面关于计算机1002描述的很多或所有元件,尽管图10中仅图示了存储器存储设备1047。图10中描绘的逻辑连接包括局域网(LAN)1045和广域网(WAN)1049,但是也可以包括其他网络。这种网络环境在办公室、企业范围的计算机网络、内联网、互联网和云计算资源中很常见。
当在LAN网络环境中使用时,计算机1002通过网络接口或适配器1037被连接到LAN1045。当在WAN网络环境中使用时,计算机1002通常包括调制解调器1005或用于在诸如互联网的WAN 1049上建立通信的其他部件。可以是内置的或外置的调制解调器1005可以经由用户输入接口1036或其他适当的机制被连接到***总线1021。在联网环境中,相对于计算机1002或其部分描述的程序模块可以被存储在远程存储器存储设备中。作为示例而非限制,图10将远程应用程序1048示出为驻留在存储器设备1047上。可以理解,所示出的网络连接是示例,并且可以使用在计算机之间建立通信链路的其他部件。
在一些方面,其他程序1027可以包括包括如上所述的功能的TrEE目标组件或应用1065。在一些情况下,TrEE目标应用1065可以执行过程300、400、500、800和/或900的一些或所有操作。
前面部分中描述的每个过程、方法和算法可以在由一个或多个计算机或计算机处理器执行的代码模块中被体现,并且完全或部分地通过该代码模块而被自动化。代码模块可以存储在任何类型的非瞬态计算机可读介质或计算机存储设备上,诸如硬盘驱动器、固态存储器、光盘等。过程和算法可以部分或全部地在专用电路中实现。所公开的过程和过程步骤的结果可以持久地或以其他方式存储在任何类型的非瞬态计算机存储装置中,诸如例如易失性或非易失性存储装置。上述各种特征和过程可以彼此独立地使用,或者可以以各种方式被组合。所有可能的组合和子组合都旨在落入本公开的范围内。另外,在一些实现中可以省略某些方法或过程框。本文中描述的方法和过程也不限于任何特定顺序,并且与其相关的块或状态可以以其他适当的顺序执行。例如,所描述的块或状态可以以不同于具体公开的顺序的顺序执行,或者多个块或状态可以在单个块或状态中被组合。示例块或状态可以以串行、并行或以一些其他方式被执行。可以向所公开的示例实施例添加块或状态或从其中移除块或状态。本文中描述的示例***和组件可以与所描述的被不同地配置。例如,与所公开的示例实施例相比,可以添加、移除或重新布置元素。
还应当理解,各种项目被示出为在被使用的同时被存储在存储器中或被存储在存储装置上,并且出于存储器管理和数据完整性的目的,这些项目或其部分可以在存储器与其他存储设备之间被传输。备选地,在其他实施例中,软件模块和/或***中的一些或所有软件模块和/或***可以在另一设备上的存储器中执行,并且经由计算机间通信与所示的计算***通信。此外,在一些实施例中,***和/或模块中的一些或全部***和/或模块可以以其他方式被实现或提供,诸如至少部分地以固件和/或硬件,包括但不限于一个或多个专用集成电路(ASIC)、标准集成电路、控制器(例如,通过执行适当的指令,并且包括微控制器和/或嵌入式控制器)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)等。模块、***和数据结构中的一些或所有模块、***和数据结构也可以被存储在将通过适当的驱动器或经由适当的连接来读取的计算机可读介质上(例如,作为软件指令或结构化数据),诸如硬盘、存储器、网络或便携式媒体物品。出于本说明书和权利要求的目的,短语“计算机可读存储介质”及其变型不包括波、信号和/或其他瞬态和/或无形通信介质。***、模块和数据结构还可以作为所生成的数据信号(例如,作为载波或其他模拟或数字传播信号的一部分)在各种计算机可读传输介质上被传输,包括基于无线和基于有线/电缆的介质,并且可以采用各种形式(例如,作为单个或多路复用模拟信号的一部分,或者作为多个离散数字分组或帧)。在其他实施例中,这种计算机程序产品也可以采用其他形式。因此,本公开可以利用其他计算机***配置来实践。
除非另有明确说明或者在所使用的上下文中以其他方式理解,否则本文中使用的诸如“可以(can)”、“可以(could)”、“可以(might)”、“可以(may)”、“例如(e.g.)”等条件语言通常旨在表达某些实施例包括而其他实施例不包括某些特征、元素和/或步骤。因此,这种条件语言通常不旨在暗示一个或多个实施例以任何方式需要特征、元素和/或步骤,也不旨在暗示一个或多个实施例必须包括用于决定(无论是否有作者输入或提示)这些特征、元素和/或步骤是否被包括在任何特定实施例中或将在任何特定实施例中执行的逻辑。术语“包括(comprising)”、“包括(including)”、“具有(having)”等是同义的并且以开放式方式包含性地使用,并且不排除其他元素、特征、动作、操作等。此外,术语“或”以其包含性意义(而不是以其排他性的意义)使用,因此当使用时,例如,为了连接元素列表,术语“或”表示列表中的一个、一些或所有元素。
虽然已经描述了某些示例实施例,但是这些实施例仅作为示例呈现,并且不旨在限制本文中公开的发明的范围。因此,前面的描述中的任何内容都不旨在暗示任何特定的特征、特性、步骤、模块或块是必需的或必不可少的。实际上,本文中描述的新颖方法和***可以以各种其他形式被体现;此外,在不脱离本文中公开的发明的精神的情况下,可以对本文中描述的方法和***的形式进行各种省略、替换和改变。所附权利要求及其等同物旨在涵盖落入本文中公开的某些发明的范围和精神内的这样的形式或修改。
Claims (15)
1.一种计算***,包括:
处理器;以及
存储器,所述存储器被通信地耦合到所述处理器,存储在由所述处理器执行时使得所述计算***执行以下操作的指令:
注册可信执行环境(TrEE)的与由所述TrEE持有的私有加密密钥相对应的公共加密密钥;
接收来自与所述TrEE相关联的请求者的、针对受保护数据的请求;
取回所述受保护数据;
通过利用所述TrEE的所述公共加密密钥加密所述受保护数据来生成目标受保护数据;以及
向所述请求者发送所述目标受保护数据。
2.根据权利要求1所述的计算***,其中用于注册所述TrEE的所述公共加密密钥的所述指令还包括:用于将所述请求者的身份与所述TrEE的所述公共加密密钥相关联的指令。
3.根据权利要求1所述的计算***,其中所述TrEE包括在安全内核之上运行的trustlet,并且其中所述TrEE的所述公共加密密钥包括与所述安全内核相关联的加密密钥。
4.根据权利要求3所述的计算***,其中所述加密密钥还与会话ID和trustlet类型相关联,并且其中用于通过利用所述TrEE的所述公共加密密钥加密所述受保护数据来生成所述目标受保护数据的指令还包括用于以下操作的指令:
利用所述TrEE的所述公共加密密钥加密传输加密密钥;以及
利用所述传输加密密钥和认证标签加密所述受保护数据,其中所述认证标签将所述请求者与所述会话ID和所述trustlet类型绑定;并且其中用于向所述请求者发送所述目标受保护数据的所述指令还包括用于以下操作的指令:
向所述请求者发送加密的所述传输加密密钥、加密的所述受保护数据和加密的认证标签。
5.根据权利要求1所述的计算***,其中所述TrEE包括在安全内核之上运行的trustlet,其中所述TrEE的与由所述TrEE持有的所述私有加密密钥相对应的所述公共加密密钥包括:与由所述trustlet持有的trustlet私有加密密钥相对应的trustlet公共加密密钥,其中所述指令在由所述处理器执行时还使得所述计算***执行以下操作:
接收密钥验证声明,其中所述密钥验证声明绑定所述trustlet公共加密密钥和trustlet ID。
6.根据权利要求5所述的计算***,其中所述密钥验证声明是由所述安全内核使用签名密钥生成的,并且其中所述签名密钥验证由所述trustlet生成的公共密钥私有密钥对的所述trustlet公共加密密钥。
7.根据权利要求5所述的计算***,其中所述trustlet ID包括会话ID和trustlet类型,其中所述密钥验证声明是由所述安全内核使用签名密钥生成的,并且绑定所述trustlet公共密钥、所述trustlet类型、以及所述会话ID。
8.根据权利要求5所述的计算***,其中所述指令在由所述处理器执行时还使得所述计算***执行以下操作:
将所述trustlet ID与授权trustlet ID的列表进行比较;以及
仅当所述trustlet ID与所述授权trustlet ID的列表相关联时,利用所述trustlet公共加密密钥加密所述受保护数据。
9.一种用于向与非可信请求者相关联的可信执行环境(TrEE)传递受保护数据的方法,所述方法包括:
由目标协议头注册与由TrEE持有的私有加密密钥相对应的所述TrEE的公共加密密钥;
由所述目标协议头接收来自与所述TrEE相关联的请求者的、针对受保护数据的请求;
由所述目标协议头取回所述受保护数据;
通过利用所述TrEE的所述公共加密密钥加密所述受保护数据来生成目标受保护数据;以及
向所述请求者发送所述目标受保护数据。
10.根据权利要求9所述的方法,其中注册所述TrEE的所述公共加密密钥还包括:将所述请求者的身份与所述TrEE的所述公共加密密钥相关联。
11.根据权利要求9所述的方法,其中由所述目标协议头取回所述受保护数据包括:从密钥管理***获取所述受保护数据。
12.根据权利要求9所述的方法,其中所述TrEE包括在安全内核之上运行的trustlet,其中所述TrEE的与由所述TrEE持有的所述私有加密密钥相对应的所述公共加密密钥包括:与由所述trustlet持有的trustlet私有加密密钥相对应的trustlet公共加密密钥,其中所述方法还包括:
由所述目标协议头接收密钥验证声明,其中所述密钥验证声明绑定所述trustlet公共加密密钥和trustlet ID。
13.根据权利要求12所述的方法,其中所述密钥验证声明是由所述安全内核使用签名密钥生成的,并且其中所述签名密钥验证由所述trustlet生成的公共密钥私有密钥对的所述trustlet公共加密密钥。
14.根据权利要求12所述的方法,还包括:
由所述目标协议头将所述trustlet ID与授权trustlet ID的列表进行比较;以及
仅当所述trustlet ID与所述授权trustlet ID的列表相关联时,由所述目标协议头利用所述trustlet公共加密密钥加密所述受保护数据。
15.一种计算机可读存储介质,包括用于向与潜在非可信请求者相关联的可信执行环境(TrEE)传递受保护数据的指令,所述介质包括当在联网计算机***上被执行时使得所述联网计算机***至少进行以下操作的指令:
注册TrEE的对称加密密钥;
接收来自与所述TrEE相关联的请求者的、针对受保护数据的请求;
取回所述受保护数据;
通过利用所述TrEE的所述对称加密密钥加密所述受保护数据来生成目标受保护数据;以及
向所述请求者发送所述目标受保护数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/417,017 US10897360B2 (en) | 2017-01-26 | 2017-01-26 | Addressing a trusted execution environment using clean room provisioning |
US15/417,017 | 2017-01-26 | ||
PCT/US2017/067462 WO2018140171A1 (en) | 2017-01-26 | 2017-12-20 | Addressing a trusted execution environment using clean room provisioning |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110235134A true CN110235134A (zh) | 2019-09-13 |
CN110235134B CN110235134B (zh) | 2023-09-08 |
Family
ID=61003379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780084391.1A Active CN110235134B (zh) | 2017-01-26 | 2017-12-20 | 使用洁净室供应来寻址可信执行环境 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10897360B2 (zh) |
EP (1) | EP3574429A1 (zh) |
CN (1) | CN110235134B (zh) |
WO (1) | WO2018140171A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111614686A (zh) * | 2020-05-26 | 2020-09-01 | 牛津(海南)区块链研究院有限公司 | 一种密钥管理方法、控制器及*** |
US11196548B1 (en) | 2020-07-02 | 2021-12-07 | International Business Machines Corporation | Hypervisor protected key |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10972265B2 (en) * | 2017-01-26 | 2021-04-06 | Microsoft Technology Licensing, Llc | Addressing a trusted execution environment |
US10897459B2 (en) | 2017-01-26 | 2021-01-19 | Microsoft Technology Licensing, Llc | Addressing a trusted execution environment using encryption key |
US11475140B1 (en) | 2020-11-24 | 2022-10-18 | Amazon Technologies, Inc. | Enclave-based cryptography services in edge computing environments |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1995023468A1 (en) * | 1994-02-24 | 1995-08-31 | Merdan Group, Inc. | Apparatus and method for establishing a cryptographic link between elements of a system |
CN1509546A (zh) * | 2000-12-27 | 2004-06-30 | ض� | 一种用于安全发送授权数据的平台和方法 |
CN1909452A (zh) * | 2005-08-05 | 2007-02-07 | Sap股份公司 | 用于更新用于公共密钥密码的密钥的***和方法 |
CN101251879A (zh) * | 2006-12-29 | 2008-08-27 | 英特尔公司 | 用于保护数据的方法和装置 |
US20090198997A1 (en) * | 2006-11-20 | 2009-08-06 | Tet Hin Yeap | System and method for secure electronic communication services |
CN102208001A (zh) * | 2010-03-30 | 2011-10-05 | 微软公司 | 硬件支持的虚拟化密码服务 |
US8171309B1 (en) * | 2007-11-16 | 2012-05-01 | Marvell International Ltd. | Secure memory controlled access |
CN102891835A (zh) * | 2011-07-20 | 2013-01-23 | 桂林长海科技有限责任公司 | 一种计算机终端多网接入的安全隔离方法 |
CN103416020A (zh) * | 2011-01-28 | 2013-11-27 | 加拿大皇家铸币厂 | 受控的安全域 |
US20140195807A1 (en) * | 2009-11-16 | 2014-07-10 | Hagai Bar-El | System, device, and method of provisioning cryptographic data to electronic devices |
EP2887607A1 (en) * | 2013-12-23 | 2015-06-24 | Orange | Migration of assets of a trusted execution environment |
US9191388B1 (en) * | 2013-03-15 | 2015-11-17 | Sprint Communications Company L.P. | Trusted security zone communication addressing on an electronic device |
CN105474677A (zh) * | 2013-09-19 | 2016-04-06 | 英特尔公司 | 安全管理的位置和跟踪服务访问 |
CN105556892A (zh) * | 2013-05-09 | 2016-05-04 | 韦恩加油***有限公司 | 用于安全通信的***和方法 |
US20160254904A1 (en) * | 2015-02-27 | 2016-09-01 | Verizon Patent And Licensing Inc. | Network services via trusted execution environment |
US20170005790A1 (en) * | 2015-06-30 | 2017-01-05 | Activevideo Networks, Inc. | Remotely Managed Trusted Execution Environment For Digital-Rights Management In A Distributed Network With Thin Clients |
Family Cites Families (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010041348A1 (en) | 2008-10-10 | 2010-04-15 | Telefonaktiebolaget L M Ericsson (Publ) | Service node, control method thereof, user node, and control method thereof |
CN102656841B (zh) | 2009-12-18 | 2015-07-08 | 诺基亚公司 | 凭证转移 |
US8478996B2 (en) | 2009-12-21 | 2013-07-02 | International Business Machines Corporation | Secure Kerberized access of encrypted file system |
US9087200B2 (en) | 2009-12-22 | 2015-07-21 | Intel Corporation | Method and apparatus to provide secure application execution |
WO2012122994A1 (en) * | 2011-03-11 | 2012-09-20 | Kreft Heinz | Off-line transfer of electronic tokens between peer-devices |
US10496824B2 (en) | 2011-06-24 | 2019-12-03 | Microsoft Licensing Technology, LLC | Trusted language runtime on a mobile platform |
US8862767B2 (en) | 2011-09-02 | 2014-10-14 | Ebay Inc. | Secure elements broker (SEB) for application communication channel selector optimization |
US9319884B2 (en) | 2011-10-27 | 2016-04-19 | T-Mobile Usa, Inc. | Remote unlocking of telecommunication device functionality |
US9055443B2 (en) | 2011-10-27 | 2015-06-09 | T-Mobile Usa, Inc. | Mobile device-type locking |
US9450949B2 (en) | 2012-02-28 | 2016-09-20 | Giesecke & Devrient Gmbh | Method for computer access control by means of mobile end device |
US9591484B2 (en) | 2012-04-20 | 2017-03-07 | T-Mobile Usa, Inc. | Secure environment for subscriber device |
EP2680487B1 (en) | 2012-06-29 | 2019-04-10 | Orange | Secured cloud data storage, distribution and restoration among multiple devices of a user |
US8874916B2 (en) | 2012-09-28 | 2014-10-28 | Intel Corporation | Introduction of discrete roots of trust |
US8924727B2 (en) | 2012-10-12 | 2014-12-30 | Intel Corporation | Technologies labeling diverse content |
US9578664B1 (en) | 2013-02-07 | 2017-02-21 | Sprint Communications Company L.P. | Trusted signaling in 3GPP interfaces in a network function virtualization wireless communication system |
US9141769B1 (en) | 2013-02-08 | 2015-09-22 | Amazon Technologies, Inc. | Secure transfer and use of secret material in a shared environment |
WO2014142858A1 (en) | 2013-03-14 | 2014-09-18 | Intel Corporation | Trusted data processing in the public cloud |
US10177915B2 (en) | 2013-03-15 | 2019-01-08 | Ologn Technologies Ag | Systems, methods and apparatuses for device attestation based on speed of computation |
WO2015026336A1 (en) | 2013-08-21 | 2015-02-26 | Intel Corporation | Processing data privately in the cloud |
US9405912B2 (en) | 2013-11-14 | 2016-08-02 | Microsoft Technology Licensing, Llc | Hardware rooted attestation |
WO2015094326A1 (en) | 2013-12-20 | 2015-06-25 | Intel Corporation | Secure import and export of keying material |
US9832172B2 (en) | 2013-12-24 | 2017-11-28 | Intel Corporation | Content protection for data as a service (DaaS) |
US9686077B2 (en) | 2014-03-06 | 2017-06-20 | Microsoft Technology Licensing, Llc | Secure hardware for cross-device trusted applications |
US9474095B2 (en) | 2014-03-26 | 2016-10-18 | Intel IP Corporation | Systems, methods, and devices for distributed setup for a device-to-device session |
US9411975B2 (en) | 2014-03-31 | 2016-08-09 | Intel Corporation | Methods and apparatus to securely share data |
US9652631B2 (en) | 2014-05-05 | 2017-05-16 | Microsoft Technology Licensing, Llc | Secure transport of encrypted virtual machines with continuous owner access |
GB201408539D0 (en) | 2014-05-14 | 2014-06-25 | Mastercard International Inc | Improvements in mobile payment systems |
US10601978B2 (en) | 2014-06-04 | 2020-03-24 | T-Mobile Usa, Inc. | Telecommunication device utilization based on heartbeat communication |
US9525668B2 (en) | 2014-06-27 | 2016-12-20 | Intel Corporation | Face based secure messaging |
US9519787B2 (en) | 2014-11-14 | 2016-12-13 | Microsoft Technology Licensing, Llc | Secure creation of encrypted virtual machines from encrypted templates |
US9940456B2 (en) | 2014-12-16 | 2018-04-10 | Intel Corporation | Using trusted execution environments for security of code and data |
US9860057B2 (en) * | 2014-12-23 | 2018-01-02 | Intel Corporation | Diffie-Hellman key agreement using an M-of-N threshold scheme |
FR3031613B1 (fr) | 2015-01-09 | 2018-04-06 | Ingenico Group | Procede de traitement d'une transaction a partir d'un terminal de communication. |
US10193700B2 (en) | 2015-02-27 | 2019-01-29 | Samsung Electronics Co., Ltd. | Trust-zone-based end-to-end security |
US9860221B2 (en) | 2015-03-10 | 2018-01-02 | Intel Corporation | Internet of things group formation using a key-based join protocol |
US9578008B2 (en) | 2015-05-11 | 2017-02-21 | Intel Corporation | Technologies for secure bootstrapping of virtual network functions |
EP3101607A1 (en) | 2015-06-02 | 2016-12-07 | Orange | NFC-ENABLED DEVICES FOR & xA;PERFORMING SECURE CONTACTLESS TRANSACTIONS AND USING HCE |
US10079677B2 (en) | 2015-06-05 | 2018-09-18 | Apple Inc. | Secure circuit for encryption key generation |
US9781016B1 (en) | 2015-11-02 | 2017-10-03 | Sprint Communications Company L.P. | Dynamic addition of network function services |
EP3179690A1 (en) | 2015-12-11 | 2017-06-14 | Gemalto Sa | Mobile device having trusted execution environment |
GB201522244D0 (en) | 2015-12-16 | 2016-01-27 | Nagravision Sa | Hardware integrity check |
US11017066B2 (en) | 2015-12-29 | 2021-05-25 | Huawei Technologies Co., Ltd. | Method for associating application program with biometric feature, apparatus, and mobile terminal |
GB2546740A (en) | 2016-01-26 | 2017-08-02 | Worldpay Ltd | Electronic payment system and method |
US10412191B1 (en) | 2016-03-30 | 2019-09-10 | Amazon Technologies, Inc. | Hardware validation |
US20170289197A1 (en) | 2016-03-31 | 2017-10-05 | Qualcomm Incorporated | Transport layer security token binding and trusted signing |
US10277407B2 (en) | 2016-04-19 | 2019-04-30 | Microsoft Technology Licensing, Llc | Key-attestation-contingent certificate issuance |
KR102425368B1 (ko) | 2016-05-02 | 2022-07-27 | 삼성전자주식회사 | 가상 sim 운용 방법 및 그 장치 |
US10581815B2 (en) | 2016-05-02 | 2020-03-03 | Intel Corporation | Technologies for secure mediated reality content publishing |
KR20180135940A (ko) | 2016-08-09 | 2018-12-21 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 시스템 온 칩 및 처리 장치 |
US10733284B2 (en) | 2016-10-06 | 2020-08-04 | Samsung Electronics Co., Ltd. | Trusted execution environment secure element communication |
US10700865B1 (en) | 2016-10-21 | 2020-06-30 | Sequitur Labs Inc. | System and method for granting secure access to computing services hidden in trusted computing environments to an unsecure requestor |
KR102604046B1 (ko) | 2016-11-28 | 2023-11-23 | 삼성전자주식회사 | 전자 기기의 프로그램 관리 방법 및 장치 |
US10127409B1 (en) | 2016-12-16 | 2018-11-13 | Square, Inc. | Tamper detection system |
US10530777B2 (en) | 2017-01-24 | 2020-01-07 | Microsoft Technology Licensing, Llc | Data unsealing with a sealing enclave |
US10897459B2 (en) | 2017-01-26 | 2021-01-19 | Microsoft Technology Licensing, Llc | Addressing a trusted execution environment using encryption key |
US10419402B2 (en) | 2017-01-26 | 2019-09-17 | Microsoft Technology Licensing, Llc | Addressing a trusted execution environment using signing key |
US10972265B2 (en) | 2017-01-26 | 2021-04-06 | Microsoft Technology Licensing, Llc | Addressing a trusted execution environment |
-
2017
- 2017-01-26 US US15/417,017 patent/US10897360B2/en active Active
- 2017-12-20 CN CN201780084391.1A patent/CN110235134B/zh active Active
- 2017-12-20 WO PCT/US2017/067462 patent/WO2018140171A1/en unknown
- 2017-12-20 EP EP17832135.2A patent/EP3574429A1/en active Pending
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1995023468A1 (en) * | 1994-02-24 | 1995-08-31 | Merdan Group, Inc. | Apparatus and method for establishing a cryptographic link between elements of a system |
CN1509546A (zh) * | 2000-12-27 | 2004-06-30 | ض� | 一种用于安全发送授权数据的平台和方法 |
CN1909452A (zh) * | 2005-08-05 | 2007-02-07 | Sap股份公司 | 用于更新用于公共密钥密码的密钥的***和方法 |
US20090198997A1 (en) * | 2006-11-20 | 2009-08-06 | Tet Hin Yeap | System and method for secure electronic communication services |
CN101251879A (zh) * | 2006-12-29 | 2008-08-27 | 英特尔公司 | 用于保护数据的方法和装置 |
US8171309B1 (en) * | 2007-11-16 | 2012-05-01 | Marvell International Ltd. | Secure memory controlled access |
US20140195807A1 (en) * | 2009-11-16 | 2014-07-10 | Hagai Bar-El | System, device, and method of provisioning cryptographic data to electronic devices |
CN102208001A (zh) * | 2010-03-30 | 2011-10-05 | 微软公司 | 硬件支持的虚拟化密码服务 |
CN103416020A (zh) * | 2011-01-28 | 2013-11-27 | 加拿大皇家铸币厂 | 受控的安全域 |
CN102891835A (zh) * | 2011-07-20 | 2013-01-23 | 桂林长海科技有限责任公司 | 一种计算机终端多网接入的安全隔离方法 |
US9191388B1 (en) * | 2013-03-15 | 2015-11-17 | Sprint Communications Company L.P. | Trusted security zone communication addressing on an electronic device |
CN105556892A (zh) * | 2013-05-09 | 2016-05-04 | 韦恩加油***有限公司 | 用于安全通信的***和方法 |
CN105474677A (zh) * | 2013-09-19 | 2016-04-06 | 英特尔公司 | 安全管理的位置和跟踪服务访问 |
EP2887607A1 (en) * | 2013-12-23 | 2015-06-24 | Orange | Migration of assets of a trusted execution environment |
US20160254904A1 (en) * | 2015-02-27 | 2016-09-01 | Verizon Patent And Licensing Inc. | Network services via trusted execution environment |
US20170005790A1 (en) * | 2015-06-30 | 2017-01-05 | Activevideo Networks, Inc. | Remotely Managed Trusted Execution Environment For Digital-Rights Management In A Distributed Network With Thin Clients |
Non-Patent Citations (1)
Title |
---|
胡杭琴等: "一种MIS对象和数据访问控制的解决方案", 《工业控制计算机》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111614686A (zh) * | 2020-05-26 | 2020-09-01 | 牛津(海南)区块链研究院有限公司 | 一种密钥管理方法、控制器及*** |
CN111614686B (zh) * | 2020-05-26 | 2023-01-17 | 牛津(海南)区块链研究院有限公司 | 一种密钥管理方法、控制器及*** |
US11196548B1 (en) | 2020-07-02 | 2021-12-07 | International Business Machines Corporation | Hypervisor protected key |
WO2022003505A1 (en) * | 2020-07-02 | 2022-01-06 | International Business Machines Corporation | Hypervisor protected key |
GB2611276A (en) * | 2020-07-02 | 2023-03-29 | Ibm | Hypervisor protected key |
GB2611276B (en) * | 2020-07-02 | 2023-08-23 | Ibm | Hypervisor protected key |
US11831755B2 (en) | 2020-07-02 | 2023-11-28 | International Business Machines Corporation | Generating hypervisor protected key for cryptography |
Also Published As
Publication number | Publication date |
---|---|
US20180212778A1 (en) | 2018-07-26 |
US10897360B2 (en) | 2021-01-19 |
EP3574429A1 (en) | 2019-12-04 |
WO2018140171A1 (en) | 2018-08-02 |
CN110235134B (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2017396530B2 (en) | Addressing a trusted execution environment using encryption key | |
EP3574622B1 (en) | Addressing a trusted execution environment | |
CN110249336B (zh) | 使用签名密钥对可信执行环境的寻址 | |
WO2022073264A1 (en) | Systems and methods for secure and fast machine learning inference in trusted execution environment | |
US20170091463A1 (en) | Secure Audit Logging | |
CN110235134A (zh) | 使用洁净室供应来寻址可信执行环境 | |
NZ754540B2 (en) | Addressing a trusted execution environment using signing key |
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 |