CN112889052A - 外围设备 - Google Patents

外围设备 Download PDF

Info

Publication number
CN112889052A
CN112889052A CN201980068700.5A CN201980068700A CN112889052A CN 112889052 A CN112889052 A CN 112889052A CN 201980068700 A CN201980068700 A CN 201980068700A CN 112889052 A CN112889052 A CN 112889052A
Authority
CN
China
Prior art keywords
trusted
peripheral device
key
security module
computing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201980068700.5A
Other languages
English (en)
Other versions
CN112889052B (zh
Inventor
S·沃洛斯
D·T·奇斯纳尔
S·M·库尔卡尼
K·瓦斯瓦尼
M·科斯塔
S·A·韦伯斯特
C·A·M·富纳特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN112889052A publication Critical patent/CN112889052A/zh
Application granted granted Critical
Publication of CN112889052B publication Critical patent/CN112889052B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/53Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/0825Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3265Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/64Self-signed certificates

Landscapes

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

Abstract

一种外围设备,用于与主机一起使用,该外围设备包括一个或多个计算元件、安全模块和至少一个加密单元。安全模块被配置为在外围设备上形成可信执行环境,以使用敏感代码来处理敏感数据。敏感数据和敏感代码由与主机计算设备通信的可信计算实体提供。至少一个加密单元被配置为对经由主机计算设备在可信执行环境和可信计算实体之间传递的数据进行加密和解密。安全模块被配置为计算证明并且将其发送到可信计算实体,以证明敏感代码在可信执行环境中。

Description

外围设备
背景技术
诸如图形处理单元、现场可编程门阵列(FPGA)、专用集成电路、密码加速器、视频处理单元、正则表达式加速器、数据压缩加速器、人工智能加速器等的外围设备正在越来越广泛地被使用以补充主机的中央处理单元(CPU)。与CPU分离的、充当硬件加速器的外围设备通常是非常有用的单元,其包括比在通用CPU上运行的软件中可能的更有效地执行功能的计算机硬件。通常,这些类型的外围设备通过允许更大的并发性来改善特定类型的算法的执行。外围设备还被用于提供更高的可靠性和不同的安全性选项。
越来越需要使用敏感代码和/或敏感数据并且保持安全性和私密性。通常,大量敏感代码和/或数据将使用资源密集型算法而被处理,并且在这种情况下,外围设备是提高效率的选项。然而,在使用外围设备的情况下,因为既有主机又有外围设备,并且主机本身通常是不可信的,因此引入了关于敏感代码和/或数据的安全性和私密性的附加挑战。敏感代码和敏感数据经由主机到达外围设备,并且因此攻击者可能能够从不可信的主机获取敏感信息。
下面描述的实施例不限于解决已知外围设备的任何或所有缺点的实施方式。
发明内容
下面呈现了本公开的简化发明内容,以便向读者提供基本理解。本发明内容既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。其唯一目的是以简化的形式呈现本文中所公开的概念的选集,作为稍后呈现的更详细描述的序言。
在各种示例中,存在一种与主机计算设备一起使用的外围设备,该外围设备包括一个或多个计算元件、安全模块和至少一个加密单元。安全模块被配置为在外围设备上形成可信执行环境,以使用敏感代码来处理敏感数据。敏感数据和敏感代码由与主机计算设备通信的可信计算实体提供。至少一个加密单元被配置为对经由主机计算设备在可信执行环境和可信计算实体之间传递的数据进行加密和解密。安全模块被配置为计算证明并且将其发送给可信计算实体以证明敏感代码在可信执行环境中。
通过参考以下结合附图考虑的具体实施方式,将更好地理解许多附带特征,因此它们将变得更好理解。
附图说明
根据以下结合附图阅读的具体实施方式,将更好地理解本描述,其中:
图1是第一可信计算实体、不可信中介和第二可信计算实体的示意图;
图2是计算节点的示意图;
图3是数据中心的示意图,该数据中心包括具有可信外围设备的不可信主机计算设备;
图4是外围设备的示意图,该外围设备是图1的第二可信计算实体的示例;
图5A是具有在裸片上的安全模块的外围设备封装的示意图;
图5B是具有在裸片上和在衬底上的安全模块的外围设备封装的示意图;
图5C是包括两个封装的外围设备的示意图;
图6是在安全模块处的操作方法的流程图;
图7是远程证明过程的消息序列图;
图8是密钥交换方法的消息序列图;
图9是由图1的第一可信实体和第二可信实体使用的加密协议的消息序列图;以及
图10是在其中实现第一可信计算实体或主机的实施例的基于计算的设备的示意图。
在附图中,相同的附图标记用于指示相同的部分。
具体实施方式
以下结合附图提供的具体实施方式旨在作为对本示例的描述,而并非旨在表示以其构建或利用本示例的唯一形式。该描述阐述了示例的功能以及用于构造和操作示例的操作序列。然而,可以通过不同的示例来实现相同或等同的功能和序列。
在本文描述的各种示例中,外围设备与主机计算设备一起使用。主机计算设备不可信,并且可能是恶意的。租户是与主机计算设备通信的任何计算设备,并且可以访问该租户想要在外围上执行的代码。在一些示例中,租户具有要在外围设备上被执行的敏感代码,以便处理敏感数据。在一些示例中,一个或多个其他租户也正在使用外围设备,但这不是必须的。在示例中,敏感代码针对神经网络或其他机器学习算法实施训练或推理,并且敏感数据为训练数据。机器学习模型在外围设备上被训练,并且在训练之后,将所得的经训练模型参数从外围返回给租户。模型也可以留在外围设备中,以便在训练后用于推理。但是,该技术不限于机器学习应用,并且任何敏感代码和敏感数据被使用。在一些示例中,代码和数据中的一者或两者不敏感。
为了使敏感代码在外围设备上被执行,敏感代码将经由主机被传递到外围,因为对外围设备的输入是经由主机进行的。一旦在外围设备处,敏感代码就可以被传递到相同主机的其他外围设备。但是,由于主机计算设备可能是恶意的,因此经由主机将敏感代码传递到外围并不简单。敏感数据也将被传递到外围,并且再次,这在主机计算设备可能是恶意的情况下有问题。租户不信任主机计算设备,并且因此,即使敏感代码已经被传递到外围,租户也不能确定敏感代码仍是机密的,也不能确定主机是否已经篡改了敏感代码或将其替换为其他代码。敏感数据通过主机,并且可能被不可信主机破坏。
在一些情况下,例如,在攻击者是主机操作系统的管理员或具有针对主机操作系统中的应用或服务的管理员权限的情况下,攻击者具有对主机计算设备的特权访问。在一些情况下,攻击者是利用主机计算设备的操作系统、主机计算设备上的管理程序或主机计算设备的另一特权执行模式中的漏洞的黑客。在一些情况下,攻击者可以物理访问主机计算设备和外围设备,并且可选地能够探查和篡改外围中组件之间的连接。攻击者可能是板级对手,使外围脱离热量、功率或时钟限制以引起位翻转。
在各种示例中,租户是被称为客户端的计算设备,其通过任何适当的通信网络与主机计算设备通信。外围设备在主机计算设备中或连接到主机计算设备。通过如本文中所描述的对外围设备的仔细设计,可以在外围设备上创建可信执行环境(TEE),以执行敏感代码和处理敏感数据。在一些示例中,TEE被设计为针对不可信主机和攻击者是安全的,这些主机和攻击者可能如上所述具有对外围的物理访问权限。
下面至少参考图4和图5A至图5C描述外围设备的设计,并且至少参考图6描述TEE的创建。在一些示例中,外围被配置成向租户证明:敏感代码如租户期望的那样被安装在外围上。至少参考图7描述外围设备的示例证明过程。
存在诸如参考图8描述的密钥交换过程。密钥交换过程对于租户与外围之间的安全通信是有用的。在一些情况下,密钥交换过程被用来使得来自超过一方(party)的敏感数据能够在外围处被处理,并且在各方之间保持机密。在一些示例中,方是租户。但是,在一些情况下,方无法访问要在外围上执行的代码。在外围是支持资源隔离的外围设备的情况下,密钥交换过程有用,以使一个以上租户能够使用相同外围来执行不同的敏感代码和敏感数据,同时保持租户之间的机密性。在一些示例中,多个租户和/或方在相同代码上达成一致,并且然后他们将不同的数据集发送给外围。
在一些示例中,存在一种加密协议,其使得敏感数据能够经由不可信中介在两个可信实体之间高效、安全地传递。加密协议的示例参考图9被描述,并且它适用于以下情况:可信实体中的一个可信实体是租户,另一可信实体是外围,并且不可信中介是主机。但是,注意,加密协议广泛地可适用于租户和托管的外围情况以外的情况。加密协议可用于经由任何不可信中介,在任何第一可信实体和任何第二可信实体之间安全传递敏感数据。在一些情况下,第一和第二可信实体是电信网络中的节点,并且不可信中介是电信网络中的路由器、交换机或代理。在一些示例中,第一和第二可信实体是家用个人计算机和互联网服务提供商服务器,并且不可信中介是家用无线接入点。在一些示例中,不可信中介是无线热点设备,并且可信第一实体是智能电话,并且可信第二实体是Web服务器。
第二可信实体处的安全模块以非常规的方式操作以在第二可信实体处实现可信执行环境的动态创建。安全模块以非常规的方式操作,以经由不可信中介在其可信执行环境和可信第一实体之间实现安全并且有效的通信。
在第二可信实体处的安全模块通过在外围设备处创建可信执行环境来改善基础外围设备的功能。
图1示出了三个高级实体:第一可信计算实体100、不可信中介108和第二可信计算实体112。在本文描述的大多数示例中,第一可信计算实体100是租户,并且第二可信计算实体112是不可信中介108的外围。然而,如上所述,参考图9描述的加密协议更广泛地适用于图1中所示的三个高级实体。第一可信计算实体是任何计算设备或可信执行环境,其能够存储敏感代码102、存储敏感数据104、加密106敏感代码和/或敏感数据,并且能够与不可信中介108通信。在一些示例中,第一可信计算实体是不可信中介108上的可信执行环境。第一可信实体的加密器106对敏感信息进行加密和解密两者。
不可信中介108是具有存储器110的任何计算设备,其能够从第一可信计算实体100接收加密的数据,并且其能够经由通信网络或链路与第二可信计算实体通信。存储器110(其是任何类型的存储器110)至少存储来自第一可信计算实体的加密的代码块和/或数据块。
第二可信计算实体112是能够以一种方式隔离自身,以便创建用于使用敏感代码来处理敏感数据的可信执行环境的任何计算设备。第二可信计算实体112具有一个或多个计算元件114,以用于使用敏感代码处理敏感数据。计算元件114是处理器、并行计算单元或其他计算元件。第二可信计算实体112具有由计算元件114共享的存储器116,并且其具有一个或多个加密单元118。每个加密单元118能够加密和解密信息。第二可信计算实体112的安全模块120控制过程以创建可信执行环境并且向第一计算实体提供证明,以证明第二可信计算实体112处的一个或多个状态。在第二可信计算实体112处要被证明的状态的非穷尽列表是:第二可信计算实体112的硬件处于某种已知状态(诸如具有清除的存储器),特定固件被安装在第二可信计算实体112中,特定敏感代码被安装在第二可信计算实体112中。
在第二可信计算实体处的(多个)加密单元118和在第一可信计算实体处的加密器106两者被配置成:使用加密协议以对敏感代码和/或数据的块进行加密,以经由不可信主机进行传递。任何加密协议可用,其通过使用密钥和初始化矢量对敏感信息的块进行加密来保护敏感信息免受主机影响。个体块使用包括初始化矢量和密钥的对而被加密。
在一些示例中,加密协议是一种在安全管理加密协议的初始化矢量方面特别有效的协议。加密协议涉及第一和第二可信计算实体对参数化函数达成预先协议122,以用于以有效的方式获取初始化矢量。参数化函数计算成对的不同的初始化矢量,以用于对每个敏感信息块进行加密和解密。相反,对不同的敏感信息块使用相同的初始化矢量可能会损害它们的完整性和机密性。对相同的敏感信息块使用不同的初始化矢量导致解密错误,如稍后在本文档中更详细说明的那样。
尽管在图1中的示例示出了单个不可信中介108和单个第二可信计算实体112,但是也可以具有多个这种实体。在一些示例中,每个不可信中介108具有与其连接的多个第二可信计算实体112,并且第二可信计算实体112能够彼此通信。在一些示例中,存在多个不可信中介108,它们可选地能够彼此通信。因此,该技术可以扩展到机架规模的场景,其中存在多个机架的不可信中介108,其中的每个不可信中介负责多个第二可信计算实体112,它们能够彼此通信。
图2是计算节点200的示意图,其包括不可信主机204和连接到不可信主机204的可信外围设备206。多个这种计算节点200被部署在如图3中所图示的数据中心300中,在图3中,计算节点200使用数据中心300内的通信网络而被互连,为清楚起见,该通信网络未在图3中被示出。包括计算设备的第一租户302具有敏感数据和/或代码的安全存储库306。第一租户302与数据中心300通信。第一租户302能够将敏感代码安全地复制到数据中心300中的计算节点200的可信外围设备中的一个或多个可信外围设备上的可信执行环境,并且能够从外围设备接收以下证明:敏感代码已经被安装并且设备处于已知状态。第一租户302能够将敏感数据复制到可信外围设备,以使得敏感数据在可信执行环境中被处理。在一些示例中,安全敏感数据的一个或多个其他源也向在可信执行环境中执行的代码进行输入。以该方式,来自超过一方的数据将被用于可信执行环境中的机器学习或其他处理。
在一些示例中,存在第二租户304,其包括与数据中心300通信的计算设备。第二租户304具有敏感代码和/或数据的安全存储库308。与第一租户302一样,第二租户能够将敏感代码和数据复制到数据中心中的相同的外围设备中的一个或多个外围设备。使用外围设备中的资源隔离机制,并且对个体租户代码和数据使用分开的加密密钥,可以维持个体租户的机密性。
在一些示例中,第二租户304具有与第一租户302的敏感数据不同的敏感数据的安全存储库308。第一租户302和第二租户304两者在相同外围设备处使用相同的敏感代码,并且它们发送它们相应的不同数据集,以由相同的敏感代码处理。
图3图示了针对数据中心的情况。然而,也可以在独立情况下或在其他类型的部署中使用图1的可信实体和不可信实体。在示例中,图1的可信实体和不可信实体被用在边缘部署中。这里,第一可信计算实体100、不可信中介108和第二可信计算实体112被部署在通信网络的边缘处而不是被部署在云中。第一可信计算实体100在物理上临近诸如捕获设备或传感器的数据源,或者具有产生敏感数据104的集成捕获设备或传感器。第一可信计算实体100使用不可信中介108和第二可信计算实体112,以在诸如捕获设备或传感器的数据流源附近进行机器学习和/或推理。
图4是诸如图1的第二可信计算实体112的示意图。在一些示例中,第二可信计算实体是主机计算设备的外围设备,但这不是必需的。
第二可信计算实体112包括一个或多个计算元件114和可选的存储器116。存储器116由计算元件共享或为特定计算元件私有。第二可信计算实体112具有至少一个加密单元118,加密单元118包括加密/解密组件402、可选的密钥存储库404和可选的缓冲器406。
加密/解密组件402被配置成认证和解密数据,该数据经由任何形式的通信从主机和从其他外围设备接收。在示例中,使用直接存储器访问(DMA)请求进行通信,但是使用这种形式的通信不是必需的。加密/解密组件402被配置成:使用经认证的加密,来对经由DMA传递(或其他形式的通信)发送给主机或发送给其他外围设备的数据进行加密。在一些示例中,加密/解密组件402是被放置在封装的裸片上的逻辑块,其中外围是设备封装。在其他示例中,加密/解密组件在封装上,或作为可编程外围上的软件组件实现。加密/解密组件402被连接到可选的缓冲器406,并且缓冲器406被布置成拦截和缓冲去往主机和来自主机的通信,诸如DMA请求和响应。缓冲器406被连接到持有扩展的加密密钥的密钥存储库404,并且还连接到外围组件互连快速(PCIe)复合体。在一些但不是全部示例中,第二可信计算实体支持非安全操作模式。在外围设备的非安全操作模式中,加密/解密组件被绕过。
使用缓冲器406提供的好处是,在任何时候都可以有一个以上的DMA请求或响应在途中(in flight)。在一些情况下,缓冲器406被省略,并且一次发出一个DMA请求或响应。
在特定示例(其不旨在限制技术的范围)中,加密/解密组件402具有对AES或另一加密方案的支持,支持多密钥上下文,具有接口,以用于指定认证标签要在加密数据流结束时被检查,并且用于在明文数据流结束时取回认证标签。
第二可信计算实体112中的安全模块120具有可选模式开关408(在第二可信计算实体112支持非安全模式的情况下被使用)、证明组件412、可选的密钥交换器410、安全数据传递组件414和可选的参数监控器416。安全模块是与外围设备封装集成在一起的逻辑块。在一个示例中,安全模块是具有微控制器的片上系统(SoC)、针对代码和数据的静态随机存取存储器(SRAM),以及用于保持针对微控制器的初始引导块的只读存储器(ROM)。但是,安全模块的其他实现也是可能的。安全模块120包含逻辑块或软件,以用于诸如以下操作:对称密钥认证的加密和解密、安全哈希计算、公钥生成、签名和认证以及熵源。安全模块120使用任何合适的连接器而被连接到外围的其他组件。
安全模块120被配置成将外围初始化为干净状态,并且协调在主机与外围设备之间以及外围设备之间的数据传递的加密和解密。安全模块120包含根背书密钥,根背书密钥被烧入安全模块120的熔丝中或使用安全模块120的硬件而被生成。根背书密钥用作适于生成证明密钥的信任根,以使用可信证书机构进行证实。
模式开关408被布置成将外围设备在非安全模式和安全模式之间切换,在非安全模式中,外围设备的敏感存储器和敏感寄存器可由外围设备外部的实体访问,在安全模式中,外围设备的敏感存储器及敏感寄存器不可由外围外部的实体访问。在安全模式期间,安全模块将外围配置成强制执行特定于设备的访问控制列表,以防止不可信中介访问不安全的功能。在安全模式期间,DMA和外围设备到外围设备的通信通过(多个)加密单元118被路由。
在一些示例中,存在一个或多个要被认证访问权限的寄存器,诸如,包含要在外围上启动的敏感代码的地址的寄存器。对这些寄存器的访问被路由到安全模块,安全模块授权访问并且通过不同的接口调用外围功能。要被验证访问权限的寄存器由外围被暴露,并且由安全模块服务。
可选的密钥交换器410被布置成利用密钥来配置加密单元118。
安全模块120具有证明组件412,以用于度量在(多个)计算单元上运行的应用代码,生成针对远程证明的引用,以及密钥交换。引用是充当由外围设备颁发的针对远程证明的证书的数据,由此租户能够验证外围设备的一个或多个安全关键性质。引用捕获外围的安全关键性质。在非限制性示例中,引用被计算为哈希。
安全模块120具有安全数据传递组件414,该组件生成DMA请求以将数据从主机直接或间接地传递到安全模块存储器(诸如SRAM或其他存储器)中。
可选的参数监控器416被布置成监控安全模块120的热量、功率和时钟参数。参数监控器416被布置成:如果参数中的一个或多个参数超出安全范围,则发出复位,并且保持复位线,直到安全模块120接收到外围设备已经被完全复位的通知为止。复位状态被保持在安全模块120上的存储器中,并且用于发送复位的逻辑使用软件或使用硬件状态机而被实现。安全模块120使用具有奇偶校验位和裸片上温度传感器的动态随机存取存储器(DRAM)字,来检查外围设备是否在指定的功率和温度额定值之外操作。
第二可信计算实体112的身份是基于背书密钥的,在第二可信计算实体112是包括芯片的设备封装的情况下,在制造期间在该芯片上创建或提供该背书密钥。私有背书密钥永远不离开芯片,并且公钥被用于证明并且被称为证明密钥。存在不同的方式来提供复杂度和安全性不同的背书密钥,现在将介绍其中两种方式。
在第一方法中,可信第二实体的制造商具有设施,以用于安全地生成背书密钥对,将私有背书密钥烧入到每个设备中的熔丝中,以及将针对公钥的证书提供给可信证书机构。这种方法的缺点是制造商可以访问私有背书密钥。另一缺点是,它给制造商带来了复杂性和成本。
在第二方法中,使用物理不可克隆函数(PUF)和模糊提取器的组合,在第二可信计算设备上生成背书密钥。PUF是基于物理变化的,该物理变化在半导体制造期间自然出现,并且其使得可以在其他方面相同的半导体之间进行区分。利用模糊提取器,PUF每次利用给定输入被评估时,将生成相同的密钥。通常,将由可信固件在安全引导过程期间使用PUF来首先生成秘密密钥,并且然后生成和输出对应的公钥。可信第二计算设备的制造商能够针对每个设备触发该过程,并且发布针对公钥的证书,而无需访问或必须维持私有密钥。另一优点是该机制使得能够进行物理证明,即,具有对设备的物理访问权限的任何人(例如审核员)都可以获取公钥并且发布证书。
一旦证书机构已经接收到背书密钥证书,它就发布证书。依赖方使用该证书来查明来自可信第二计算设备的消息的完整性。证书机构还维持撤销列表,其中包含被放错位置、被停用或可能已经被破坏的设备。证书机构停止发布针对这种设备的证书。
飞地(enclave)证明服务可用于由图1中的任何实体的使用。飞地证明服务接受来自飞地的引用,飞地诸如是第二可信计算设备上的可信执行环境。飞地证明服务生成经签名的令牌,经签名的令牌可以被转发到其他服务以释放秘密。政策管控秘密的释放。政策使用诸如引用中的属性的标准(诸如第二可信计算设备的状态的度量)。证明服务对引用检查政策。证明服务支持多种信任模型,诸如信任来自指定制造商的所有引用,或者如果服务具有有效的公共背书密钥,则信任引用。在一些情况下,由证明服务生成的令牌能够携带有关设备的地理位置的信息。在一些情况下,PCK证书与引用一起被打包并且被转发给证明服务。
对于将安全模块120放置在外围设备封装中的位置存在各种不同的选项。在参考图5A描述的第一选项中,安全模块504与计算元件502和(多个)加密单元118位于相同的裸片506上。为了清楚起见,加密单元未在图5A中被示出并且与计算元件502一起被定位。第一选项具有强大的安全性,因为如果攻击者访问或篡改安全模块内的秘密,则他或她将损害整个封装的功能。由于安全模块在裸片上,因此第一选项提供了良好的性能。
第二选项在图5B中被示出,并且包括将安全模块514集成在与外围封装508相同的多芯片模块中。这里,计算元件510和加密单元118(图5B中未示出)在被支撑在衬底516上的裸片上512上。安全模块514与计算元件510在相同的衬底516上,但是与计算元件510不在相同的裸片512上。如果攻击者可以物理访问外围设备封装508,则第二选项具有比选项一稍弱的安全性。然而,第二选项提供了将安全模块514与外围设备的其他组件解耦的好处,并且解耦支持研发、设计和测试。
第三选项在图5C中被示出,并且包括将安全模块524放置在封装外的分离芯片上。在第三选项中,存在第一封装518,其包括计算元件520和加密单元118(为清楚起见,在图5C中未示出)。还存在包括安全模块524的第二封装522。第一封装和第二封装彼此连接。第三选项将安全模块与外围设备封装的其余部分解耦,并且因此其便于制造。
现在描述第二可信计算设备的初始化。当第二可信计算设备引导或复位时,安全模块将经历引导序列。
在引导序列期间,安全模块从ROM加载固件,检查固件是否正确地被签名并且度量固件。度量结果被安全地存储在安全模块中。
安全模块固件被拆分为两个组件,(a)负责关键任务的组件,关键任务诸如检查签名、度量和证明密钥生成,以及(b)负责其他任务的组件,其他任务诸如引用生成、和直接存储器访问流量的加密/解密。第一组件是安全关键的,尽可能小并且很少改变。第二组件没有对秘密(诸如固件度量和私有背书和证明密钥)的写访问权限。
在引导之后,安全模块被请求生成新的证明密钥(AK)。对应的私钥AKpriv被安全地存储在安全模块的非易失性存储器中。备选地,使用固件可信计算基础作为初始化矢量,来从PUF导出证明密钥。这避免了存储证明密钥的需要。但是,这限制了刷新证明密钥以对固件更新进行刷新的频率。
现在参考图6给出由安全模块(诸如,诸如图1和图4的安全模块120)执行的方法的示例。外围设备处于非安全模式600,其中主机设备能够访问或篡改外围设备上的敏感代码和/或敏感数据。安全模块120检查602是否要切换到安全模式。如果否,则它保持在非安全模式。如果安全模块120从租户接收到创建TEE的命令,则它切换到安全模式中。
为了切换到安全模式中,安全模块120禁用604对外围中的敏感存储器和寄存器的外部访问,并且将外围的硬件元件置于已知状态。在示例中,安全模块120禁用通过存储器映射的输入/输出(MMIO)对安全模块120中的SRAM的读取写访问。安全模块120指示外围禁用通过MMIO访问任何对安全敏感的存储器和控制寄存器。在安全模式下保持对安全模块120中的寄存器或存储器的访问以用于外围设备的正确功能,其中那些寄存器或存储器不持有安全敏感信息。对那些寄存器或存储器的访问被路由到安全模块,安全模块检查访问是否被租户授权。在禁用通过MMIO的访问之后,安全模块120将外围设备的存储器置于已知状态,诸如通过复位外围设备以及通过写入零来复位外围设备的存储器。
如参考图7更详细描述的,一旦在安全模式中,安全模块120就从租户接收606敏感代码。主机能够从安全模块请求引用,并且将引用提供给租户。引用充当由外围设备发布的针对远程证明的证书,以便租户验证敏感代码是否被正确安装在外围设备处。
安全模块计算608证据并且将证据发送给租户。引用捕获外围的安全关键性质。在非限制性示例中,引用被计算为以下项的哈希:安全模块、调试模式、和利用证明密钥签名的被称为主机访问标志的属性。主机访问标志指示主机是否具有通过MMIO对区块存储器的读/写访问权限。在一些示例中,引用包含外部数据,诸如新数据加密密钥的哈希,新数据加密密钥由安全模块生成并且使用租户的公钥而被加密。在另一示例中,引用包含公钥的哈希,租户能够使用该公钥来加密/包装租户定义的对称密钥并且将其供应给外围设备。
使用从外围设备信任根生成的外围设备的证明密钥,对引用进行签名。引用构成以下类似PKI的证书链:
使用证明密钥而被签名的引用;
使用外围设备的根背书密钥而被签名的证明密钥证书;
使用外围设备的根背书密钥而被签名的背书密钥证书;
发布证书的自签名的根背书密钥。
引用可由任何实体(诸如,证明服务)验证,该实体具有以下工件:
由外围设备的制造商发布的背书密钥证书;
如适用于证书的撤销列表;
针对外围设备固件的当前可信计算基础度量。
当前可信计算基础度量使得能够检查发布引用的外围设备是否正在运行最新版本的固件,并且撤销列表被用于检查来自设备的引用是否无效(由于设备故障、被停用、受破坏或出于其他原因)。
对于其中来自超过一方的敏感数据将由外围设备上的相同敏感代码处理的实施例,或者对于其中存在多个使用相同外围设备的租户(那些租户的代码和数据使用外围设备上的资源隔离而被隔离)的实施例,安全模块可选地实施密钥交换过程610。将在稍后参考图8更详细地解释密钥交换过程。
安全模块通过以下操作来实施安全数据下载612、执行和输出:从租户下载敏感数据,使用敏感代码在外围设备上处理敏感数据,以及经由主机将结果输出给租户。在一些示例中,安全数据下载涉及租户加密数据块,并且经由主机将加密的块发送给外围设备。在一些示例中,安全数据下载涉及租户加密数据块,将加密的块复制到主机,以及然后外围从主机取回加密的块。任何合适的加密协议被使用。在示例中,使用了特别有效的加密协议,在下面参考图9来描述该协议。为了经由主机向租户输出结果,加密单元118对输出数据的块进行加密,并且经由主机将其发送给租户。在一些示例中,图9的加密协议(其是对称的)既用于将数据下载到外围设备,又用于将输出结果发送回租户。
安全模块检查614可信执行环境是否要被终止。如果是,则安全模块擦除616外围设备并且返回到非安全模式600。当TEE被明确终止时,或者外围设备从主机接收到复位信号时,安全模块删除所有敏感数据并且使外围设备返回清洁状态。这包括在外围设备上复位存储器,删除任何密钥,取消阻止MMIO访问以及切换到非安全模式。如果外围设备经历功率循环,则无论其曾处于哪种模式,它都以清洁状态重新启动。
现在参考图7给出关于图6的操作608的远程证明过程的更多细节。与其中不可信主机将敏感代码复制到外围设备存储器中并且在创建TEE时,在外围设备存储器中添加支持以度量存储器内容的实施例相比,远程证明过程具有使用简单硬件的优势。
图7是消息序列图,其示出了消息(由水平箭头表示)在由图的左侧的垂直线表示的第一可信实体100、由在图的中心的垂直线表示的不可信中介108和由图的右侧的垂直线表示第二可信实体112之间被传递。图中箭头的相对垂直位置表示消息的时间顺序。
第一可信实体100(诸如租户)生成700用于加密应用代码的程序加密密钥(PEK)。租户具有要被复制到外围设备的敏感代码。租户在敏感代码的二进制上计算认证标签702,并且它使用PEK来加密704敏感代码。在一些情况下,认证标签是消息认证代码(MAC)。
第一可信实体100(诸如租户)向不可信中介108发送请求706,以请求在第二可信实体112(诸如外围设备)处创建TEE。请求706包括在操作702处对敏感代码计算的认证标签。主机将创建TEE的请求转发给第二可信实体112,并且第二可信实体(诸如外围设备)如上面参考图6的操作604所述的那样创建TEE 708。在TEE创建之后,第二可信实体112的安全模块将外围设备的(多个)加密单元复位,并且将安全模块切换到一种模式,在该模式中,安全模块在外围设备处的所有存储器块上计算运行的认证标签。
第二可信实体112生成引用以表明TEE已经被形成,并且它将认证标签包括在引用中。将包括认证标签的引用从第二可信实体112发送710给第一可信实体100(例如,租户)。第一可信实体100验证712引用,并且检查引用中包括的认证标签与在操作702处计算的认证标签是否匹配。如果验证成功,则第一可信实体100将PEK提供714给第二可信实体112。在示例中,通过利用引用中包括的公钥来加密对称密钥,将PEK提供714给第二可信实体的安全模块。
第一可信实体100将加密的代码复制716到不可信中介108(诸如主机),并且不可信中介108在其物理存储器的指定虚拟地址处加载718加密的二进制。
第二可信实体112向不可信中介108发出DMA请求720,以将代码从不可信中介108的存储器复制到在第二可信实体112处的存储器。从不可信中介108接收包括加密的块722的响应。响应722穿过在第二可信实体112处的(多个)加密单元,其解密724每个代码块,并且在整个代码序列上计算726认证标签。
一旦DMA请求720完成(以传递完整的敏感代码),第二可信实体112的安全模块就检查726所传递的敏感代码的认证标签是否与TEE创建时指定的认证标签相匹配。如果存在匹配,则第二可信实体的安全模块将第二可信实体112的(多个)加密单元切换到默认模式730,在默认模式中,遵循图9的加密协议,以在第一可信实体100和第二可信实体112之间传递数据。如果不存在匹配,则第二可信实体终止732TEE。
在一些示例中,存在如参考图8解释的密钥交换过程。当使用不同的密钥加密不同的数据流时,多个密钥被使用。例如,输入数据流、输出数据流和检查点可以使用不同的密钥被加密。检查点是由敏感代码在处理敏感数据时计算出的中间结果,并且其被加密和存储在不可信中介上。检查点对于恢复状态和重新使用计算是有用的。图8的密钥交换过程具有不需要安全模块的可编程性的优点。安全模块的可编程性是攻击者可以利用它在安全模块上运行任意代码以及潜在地泄露秘密(诸如证明密钥)的设施。
在示例中,图8的密钥交换过程是内置于可信第二设备112的安全模块的固件中的协议。一个或多个密钥层级也内置于安全模块的固件中。这在加密敏捷性和安全性之间提供了平衡,因为协议和密钥层级可通过升级固件来升级
图8的密钥交换过程将K个对称密钥DEK_1…DEK_K的集合安全地供应给每个可信第二设备112,其中密钥被用于不同的数据流。
可信第二实体112创建802TEE。不可信中介108(例如,主机)获取800用户的数目K,并且指定804K个用户公共签名密钥,器被表示为UKpub_1、...UKPub_K,其中每个公钥属于参与用户(诸如,数据流或租户)。作为响应,可信第二实体112的安全模块在TEE创建时生成806被称为包装密钥(WK)的新密钥对,将WKpriv安全地存储808在安全模块中的安全易失性存储中,并且将公钥WKpub写810到在不可信中介108处的存储器。当不可信中介108请求812引用时,引用在WKpub上被计算814,并且包含对公钥UKpub的集合的度量。引用由可信第二实体112计算,并且使用消息816被发送给不可信中介。不可信中介108使用818引用,来从密钥管理服务账户的不同用户取回K个不同的对称加密密钥。用户/密钥管理服务接收引用并且验证820引用。如果引用无效,则过程结束822。如果引用有效,则可信第一实体100使用WKpub来加密824私钥,并且使用其UKpriv对结果进行签名。这确保了私钥仅由安全模块解密。然后,不可信中介108以(1,K)中的索引j向安全模块提供826经包装的对称密钥。安全模块使用UKpub_j检查828加密密钥的签名。如果签名验证成功,则它解密830密钥并且将密钥存储在映射中。一旦所有K个对称密钥已经被部署,则安全模块将这些密钥供应832给(多个)加密单元。
图9是加密协议的消息序列图,在一些示例中,其由图1的可信第一实体100和可信第二实体112使用。可信第一实体100和可信第二实体112预先同意900:加密协议的初始化矢量将仅对加密密钥和数据集使用一次;即,他们同意初始化矢量的单次使用。可信第一实体100和可信第二实体112还预先同意用于获取初始化矢量的参数化函数。在一些实施例中,参数化函数采用作为虚拟地址的单个参数,并且该函数是身份函数,以使虚拟地址被用作初始化矢量。在其他实施例中,参数化函数采用诸如程序状态的参数。参数化函数对以下一项或多项进行计算:虚拟地址、密钥、计数器。因此,参数化函数是身份函数,这不是必需的。因为可信第一实体100和可信第二实体112已经预先同意了用于获取初始化矢量的函数,所以该协议非常有效,因为不需要复杂方案来管理初始化矢量,确保它们是唯一的,以及在可信第一实体100和可信第二实体112之间传递它们。初始化矢量和密钥在加密904和解密914操作之前从参数化函数而被计算,如现在参考图9所解释的。
可信第一实体100将要被传递给可信第二实体112的敏感信息划分为多个块。它使用初始化矢量和密钥对块进行加密904。个体块使用包括初始化矢量和密钥的对而被加密。由于关于初始化矢量的单次使用的预先同意,因此个体块使用唯一的对而被加密。以该方式,加密是安全的。相反,如果初始化矢量被使用一次以上,则存在恶意方获取敏感数据或破坏计算的完整性的风险,例如,通过利用另一利用相同初始化矢量加密的数据样本来代替数据样本。
可信第一实体将加密的块复制906到不可信中介108处的存储器。不可信中介108将加密的块存储在其物理存储器中,并且块的物理存储器位置具有根据物理和虚拟存储器位置之间的映射的虚拟地址。潜在的可用虚拟地址非常大,因为它们的域足够大,以使敏感代码能够运行大型计算,而仍然仅使用每个虚拟地址一次。
可信第二实体112包括至少一个加密单元118和至少一个计算单元114。计算单元114在它开始执行代码以处理加密块中的数据时,使用DMA请求910和预先同意的函数的参数向不可信中介108请求块。不可信中介108接收请求910,并且它计算被请求的块的初始化矢量。不可信中介在其存储器中查找以找到来自可信第一实体100的适当的加密块,并且取回适当的加密块。
在可信第二实体处的加密单元118对所取回的块进行解密914,并且将结果发送给计算单元114。计算单元知道与它在操作910处做出的请求相关联的原始初始化矢量。根据来自操作910的初始化矢量,期望计算单元能够检查它从解密接收到的结果。如果检查通过,则计算单元114继续使用经解密的数据;否则,它拒绝经解密的数据。
如上所述,在一些情况下,预先同意的函数使得在不可信中介108处的加密块的虚拟地址是初始化矢量。在该情况下,可信第一实体100在加密块时,使用该块的虚拟地址作为初始化矢量,并且从不重复使用相同的虚拟地址来利用相同的密钥对另一块进行加密。这保证了只有一个利用相同初始化矢量和密钥加密的块。可信第二实体112在将块写到不可信中介108之前加密该块时,使用该块的虚拟地址作为初始化矢量。在可信第二实体112上运行的应用被配置成不重复使用相同的虚拟地址来写两个不同的数据块。
使用虚拟地址作为初始化矢量的好处是,在计算单元114上运行的应用是要被读和写的数据块的数据库(oracle)。由针对虚拟地址空间的应用生成的地址的序列唯一地定义了要从主机读取的块的序列。检查输入块的真实性,然后检查以确保块的头部中包括的初始化矢量与虚拟地址匹配,以上检查的组合足以保证输入数据流的完整性。认证和初始化矢量检查足以保证输出流的完整性。
在一些示例中,图9的协议还从虚拟地址导出加密密钥标识符。在不可信中介108处的虚拟地址空间被划分为K个区域。在示例中,虚拟地址的位中的一些但不是全部被用作密钥标识符。密钥标识符被用于查找密钥的列表,该密钥的列表在密钥交换过程(诸如,图8的密钥交换过程)期间已经被供应给可信第二实体的安全模块。在可信第二实体112处的加密单元118期望使用相同的加密密钥来加密具有相同位的块。在可信第一实体100处的加密器利用相同的密钥对具有相同位的块进行加密。
在一些示例中,对于每个加密的块,可信第一实体100将包含认证标签和初始化矢量的头部放置在跟随块的数据流中。数据流由要从可信第一实体100复制到不可信中介108的数据的块的序列形成。使用持有认证标签和初始化矢量的头部确保标签、初始化矢量和数据一起被读和写,作为相同DMA请求的一部分。在使用缓冲器406的实施例中,在使用头部的情况下,可信第二实体112能够认证其接收的任何数据块,并且能够并行地认证和解密多个块。在缓冲器406被省略的情况下,块的认证和解密一个接一个地发生。外围设备的任何适当组件都被布置为考虑由头部使用的附加空间(诸如,当外围生成DMA请求时)。外围设备的任何合适的组件被布置为考虑:响应于DMA请求从不可信中介108返回的数据将小于所请求的大小。可信第二实体112在使用数据之前检查头部中包括的初始化矢量。
缓冲器406(在安全模块中)被布置为拦截并且缓冲如上所述的DMA请求和响应,并且将它们传递给加密/解密组件402。
在一些示例中,缓冲器406存储DMA响应,直到整个DMA响应准备好被解密为止。由于不需要维持针对多个入站响应的复杂状态,因此这降低了在加密/解密单元402处的复杂性。在可能保证在DMA响应在途中期间,外围设备处理不正确的数据不会产生外部可观察到的副作用的情况下,不需要缓冲器406。这可以通过以下而被实现:提供屏障,以使得在所有入站DMA响应都到达之前,没有出站DMA被发出。
在一些示例中,除了(或代替)存储DMA响应,直到整个DMA响应准备好被解密为止,缓冲器从请求映射到初始化矢量,如现在所描述的。对于DMA写请求,缓冲器从出站写请求提取初始化矢量,并且使用它从密钥存储库取回加密密钥。然后,缓冲器将有效载荷连同初始化矢量和密钥一起路由到加密/解密组件402。缓冲器406使用加密的有效载荷、认证标签和初始化矢量,来构造新的有效载荷请求,该新的有效载荷请求被发送给不可信中介108。
由于以下三个原因,解密从主机存储器到外围设备存储器的DMA响应极具挑战性:第一,来自主机的DMA响应有时被拆分成多个块;第二,在任何时间点都可能有多个DMA请求在途中;以及第三,DMA响应不包含密钥标识符。
针对每个DMA请求,缓冲器406在外围设备中维持少量状态。缓冲器406从每个传出的读请求提取密钥标识符和目的地地址,并且将密钥标识符和目的地地址对存储在映射中,该映射跟踪源地址和目的地地址的对以及DMA大小。当接收到针对请求的第一DMA响应时,缓冲器406使用目的地址来查找源初始化矢量地址(IVA)。它使用源初始化矢量地址来取回加密密钥。它在加密单元118中创建新的上下文,并且转发加密密钥、初始化矢量(通过扩展IVA而被获取)和加密的有效载荷。它将子序列DMA响应转发给加密单元118。如果认证和解密成功,则缓冲器406将响应转发给计算元件114。一旦已经接收到针对请求的整个响应,则缓冲器406停止跟踪请求。
加密单元118具有密钥存储库,诸如SRAM的块或寄存器文件,以持有加密密钥。密钥被存储在映射中,该映射使用来自初始化矢量地址的高阶位而被索引。在密钥交换之后,映射由安全模块来供应。
图10图示了示例性的基于计算的设备1000的各种组件,其被实现为任何形式的计算和/或电子设备,并且在一些示例中,在其中实现不可信中介或第一可信计算实体的实施例。
基于计算的设备1000包括一个或多个处理器1004,它们是微处理器、控制器或任何其他合适类型的处理器,以用于处理计算机可执行指令来控制该设备的操作,以便实现加密协议或托管外围设备。在一些示例中,例如在使用片上系统架构的情况下,处理器1004包括一个或多个固定功能块(也被称为加速器),其以硬件(而不是软件或固件)实现图9的方法的一部分。在基于计算的设备处提供包括操作系统1006的平台软件或任何其他合适的平台软件,以使应用软件1008能够在该设备上被执行。数据存储库1010持有初始化矢量、密钥、加密数据块或其他信息。在基于计算的设备1000是图1的第一可信计算实体的情况下,加密协议1012被存储在存储器1002中。
计算机可执行指令使用由基于计算的设备1000可访问的任何计算机可读介质而被提供。例如,计算机可读介质包括诸如存储器1002的计算机存储介质和通信介质。诸如存储器1002的计算机存储介质包括易失性和不易失性、可移除和不可移除介质,其以用于存储诸如计算机可读指令、数据结构、程序模块等的信息的任何方法或技术实现。计算机存储介质包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM)、电子可擦可编程只读存储器(EEPROM)、闪存或其他存储技术,压缩盘只读存储器(CD-ROM)、数字多功能磁盘(DVD)或其他光学存储装置、磁盒、磁带、磁盘存储装置或其他磁性存储设备,或用于存储供计算设备访问的信息的任何其他非传输介质。相反,通信介质在诸如载波或其他传输机制的调制数据信号中体现计算机可读指令、数据结构、程序模块等。如本文中所限定的,计算机存储介质不包括通信介质。因此,计算机存储介质本身不应当被解释为传播信号。尽管计算机存储介质(存储器1002)被示为在基于计算的设备1000内,但是应当理解,在一些示例中,该存储装置被远程分布或定位,并且经由网络或其他通信链路(例如,使用通信接口1014)来访问。
在基于计算的设备是第一可信计算实体的情况下,通信接口1014使得基于计算的设备1000能够与不可信中介(诸如,图1的不可信中介)通信。在基于计算的设备1000是不可信中介的情况下,外围设备(诸如图4的外围设备)由基于计算的设备1000托管。
基于计算的设备1000还包括输入/输出接口1016,输入/输出接口1016被布置为将显示信息输出到显示设备,显示设备可以与基于计算的设备分离或集成到基于计算的设备。显示信息可以提供图形用户界面。输入/输出接口1016还被布置为接收和处理来自一个或多个设备(诸如,用户输入设备(例如,鼠标、键盘、相机、麦克风或其他传感器))的输入。
技术包含以下示例的任意组合:
一种外围设备,该外围设备用于与主机计算设备一起使用,该外围设备包括:
一个或多个计算元件;
安全模块,被配置为在外围设备上形成可信执行环境,以用于使用敏感代码处理敏感数据,其中敏感数据和敏感代码由与主机计算设备通信的可信计算实体提供;
至少一个加密单元,被配置为对经由主机计算设备在可信执行环境和可信计算实体之间传递的数据进行加密和解密;
安全模块被配置为计算证明并且将其发送给可信计算实体,以证明敏感代码在可信执行环境中。
通过在外围设备而不是在主机上具有加密单元,当从可信实体接收到敏感数据以由敏感代码处理时,可以安全地并且有效地解密敏感数据。在敏感代码的输出被发送给主机和/或可信计算实体之前,加密单元还可以安全地并且有效地对其加密。如何在外围设备而不是在主机上部署加密单元不是直截了当的,因为要有能力在外围设备上具有可信执行环境,并且要有能力在外围设备的可信和不可信操作模式之间进行切换。
上文所描述的外围设备,其中使用直接存储器访问请求和响应,来传递在可信执行环境和可信计算实体之间传递的数据。这提供了一种有效和高效的方式来传递数据。
上文所描述的外围设备,其中安全模块被配置为通过将外围设备从非安全模式切换到安全模式来形成可信执行环境,在非安全模式中,经由线性地址空间访问外围的存储器和寄存器是可能的,在安全模式中,经由线性地址空间访问外围的指定存储器和指定寄存器被禁用。在一些情况下,线性地址空间被共享或部分共享。在一些情况下,线性地址空间使用存储器映射的输入-输出而被实现。通过具有安全操作模式和非安全操作模式,外围设备是通用的。安全操作模式限制了外围设备的一些功能,并且通常比非安全模式更加资源密集。因此,在模式之间切换的能力使得安全模式能够仅在需要时才被使用。但是,注意,非安全操作模式在一些示例中被省略,并且在该情况下,不存在安全操作模式和非安全操作模式之间的模式切换。
上文所描述的外围设备,其中安全模块被配置为响应于来自主机设备的请求将外围设备切换到安全模式。以该方式,主机设备能够使用简单的请求在需要时在外围上创建可信执行环境。如上所述的外围设备,其中安全模块被配置为与第一可信计算实体交换密钥,并且将由第一可信计算实体提供的密钥供应给至少一个加密单元。以该方式交换和供应密钥支持了在外围设备和第一可信计算实体之间进行安全通信的能力。
上文所描述的外围设备,其中安全模块被配置以使得当外围设备处于安全模式时,如果从主机接收到针对引用的请求,则安全模块计算捕获外围设备的安全关键性质的引用,并且将其返回给主机。以该方式,外围设备能够以简单和有效的方式证明安全关键性质。
上文所描述的外围设备,其中安全模块被配置为通过计算引用来计算证明,引用是安全模块的哈希,并且附加地是以下零项或多项得哈希:调试模式、主机访问标志、新数据加密密钥的哈希,新数据加密密钥由安全模块生成并且使用可信计算实体的公钥被加密。以该方式,引用可以被计算,这给出了外围的性质的准确指示。引用使得潜在的远程实体能够在决定是否信任外围设备之前验证其状态。
上文所描述的外围设备,其中安全模块被配置为通过计算包括证书的引用来计算证明,证书遵循证书链,证书链包括:使用证明密钥而被签名的引用,由背书密钥签名的证明密钥证书,使用根密钥而被签名的背书密钥证书,发布证书的自签名的根背书密钥。通过使用遵循证书链的证书,安全性被增强。
上文所描述的外围设备,其中加密单元包括密钥存储库、缓冲器和加密/解密组件。对于紧凑的加密单元来说,这是一种简单而有效的设计。
上文所描述的外围设备,其中缓冲器被配置为拦截和缓冲在可信执行环境和主机之间被发送的直接存储器访问请求和响应。通过缓冲请求和响应,可以控制加密/解密单元的操作的速率。
上文所描述的外围设备,其中缓冲器被配置为:当其拦截直接存储器访问写请求时,从直接存储器访问写请求提取初始化矢量,以及使用初始化矢量来从密钥存储库取回加密密钥。这支持了有效的密钥交换。
上文所描述的外围设备,其中缓冲器被配置为:将直接存储器访问写请求的有效载荷与初始化矢量和所取回的加密密钥一起路由到加密/解密组件。以该方式,加密/解密组件具有针对加密或解密的项。
上文所描述的外围设备,被形成为封装,其中安全模块与一个或多个计算元件一起在裸片上,或者在一个或多个计算元件的裸片外。裸片上选项提供了增强的安全性,但制造复杂。裸片外选项对外围设备的设计、测试和制造提供了更大的灵活性。在一些情况下,外围设备在封装上,并且在一些情况下,它在封装外。封装上选项提供了更多的安全性。
上文所描述的外围设备,被形成为多个经连接的封装。在这种情况下,由于形成两个封装,因此制造成本增加,但是由于两个封装的使用,因此设计、测试和制造被简化。与使用封装外布置相比,将外围设备形成为多个封装提供了增强的安全性。
上文所描述的外围设备,其中加密单元具有多个密钥,以便利用不同的密钥来加密不同的数据流,并且其中使用密钥交换过程来向加密单元供应多个密钥。以该方式使用不同的密钥,使得来自一个以上源的敏感数据能够被外围设备处的敏感代码处理。
上文所描述的外围设备,其中安全模块被配置为隔离外围设备的资源以在外围设备上创建安全通道,并且其中不同的加密密钥被用于不同的安全通道。在资源隔离在外围上可用的情况下,可以具有使用相同外围的资源的多个租户,并且可以保持相应租户的工作分开。
上文所描述的外围设备,其中安全模块被配置为计算包含对多个公钥的度量的引用,作为密钥交换过程的一部分,公钥已经由主机计算设备指定。引用是支持密钥交换的有效方式。
上文所描述的外围设备,其中安全模块被配置为从已经验证了引用的实体接收加密的私钥。
上文所描述的外围设备,其中至少一个加密单元和可信计算实体被配置为:使用对数据块进行加密的加密协议,每个块使用包括密钥和初始化矢量的对而被加密,并且其中加密单元和可信计算实体同意每个初始化矢量仅与给定密钥一起使用一次;并且其中初始化矢量根据加密单元和可信计算实体已知的参数化函数而被计算。
一种外围设备,用于与主机计算设备一起使用,该外围设备包括:
一个或多个计算元件;
安全模块,被配置为在外围设备上形成可信执行环境,以用于使用敏感代码处理敏感数据,其中敏感数据和敏感代码由与主机计算设备通信的可信计算实体提供;
至少一个加密单元,被配置为对经由主机计算设备在可信执行环境与可信计算实体之间传递的数据进行加密和解密;
加密单元被配置为使用加密协议,其中根据加密单元和可信计算实体已知的参数化函数来计算初始化矢量。使用参数化函数给出了一种特别有效的方式来管理初始化矢量,以确保每个初始化矢量仅与给定密钥一起使用一次。
一种数据中心,包括:
多个计算节点,每个计算节点包括具有至少一个外围设备的主机计算设备,外围设备包括:
一个或多个计算元件;
安全模块,被配置为在外围设备上形成可信执行环境,以用于使用敏感代码处理敏感数据,其中敏感数据和敏感代码由与主机计算设备通信的可信计算实体提供;
至少一个加密单元,被配置为对经由主机计算设备在可信执行环境和可信计算实体之间传递的数据进行加密和解密。作为外围设备的结果,所得的数据中心给出了显著的计算能力,并且它使得即使经由不可信主机将敏感代码和数据传递到外围设备,它也能够代表租户在外围设备上处理敏感代码和数据。在一些示例中,可以跨主机计算设备的多个外围设备形成单个可信执行环境。多个外围设备可以是主机计算设备的外围设备的任意子集。
一种用于经由不可信中介在第一可信计算实体和第二可信计算实体之间安全地传递数据的方法,该方法包括:
针对每个块,使用包括密钥和初始化矢量的对,来对在第一可信计算实体处的数据块进行加密;
使第一可信计算实体与第二可信计算实体预先同意:初始化矢量仅被使用一次;
在第一可信计算实体处存储用于获取初始化矢量的参数化函数,该参数化函数被第二可信计算实体已知;
将加密的数据块从第一可信计算实体复制到不可信中介的虚拟地址空间,以使第二可信计算实体能够通过进行直接存储器访问请求来取回块。
如上所述的方法,其中虚拟地址空间被在第二可信计算实体处的可信执行环境中安装的代码作为目标。
如上所述的方法,其中参数化函数是身份函数,以使虚拟地址是初始化矢量。
如上所述的方法,其中参数化函数的至少一个参数包括在第二可信计算实体处的可信执行环境中安装的代码的程序状态。
如上所述的方法,其中第二可信计算实体包括加密单元和计算单元。
如上所述的方法,其中块的虚拟地址被用作初始化矢量。
如上所述的方法,其中对于每个加密块,第一可信计算实体将包括认证标签和初始化矢量的头部放置在跟随块的数据流中。
如上所述的方法,包括:在第二可信计算实体处,接收针对每个加密块的头部,并且使用该头部对块进行认证。
如上所述的方法,包括在第二可信计算实体处并行地认证和解密多个块。
如上所述的方法,包括在生成直接存储器访问请求时,在第二可信计算实体处考虑由头部使用的附加空间。
术语‘计算机’或‘基于计算的设备’在本文中用于指代具有处理能力以使得其能够执行指令的任何设备。本领域技术人员将意识到,这种处理能力被结合到很多不同的设备中,因此术语“计算机”和“基于计算的设备”各自包括个人计算机(PC)、服务器、移动电话(包括智能电话)、平板电脑计算机、机顶盒、媒体播放器、游戏控制台、个人数字助理、可穿戴计算机和很多其他设备。
在一些示例中,本文中所描述的方法由有形存储介质上的以机器可读形式的软件执行,该有形存储介质例如采用包括计算机程序代码装置的计算机程序的形式,当该程序在计算机上运行时,该计算机程序代码装置适于执行本文中描述的一种或多种方法的所有操作,并且其中计算机程序可以体现在计算机可读介质上。软件适合于在并行处理器或串行处理器上执行,使得方法操作可以以任何合适的顺序执行或同时执行。
这承认,软件是有价值的、可单独交易的商品。它旨在包含在“哑(dumb)”或标准硬件上运行、或者控制“哑”或标准硬件以执行期望功能的软件。它还旨在涵盖“描述”或限定硬件配置的软件,诸如HDL(硬件描述语言)软件,该软件用于设计硅芯片、或者用于配置通用可编程芯片,以执行期望功能。
本领域技术人员将认识到,用于存储程序指令的存储设备可选地跨网络分布。例如,远程计算机能够存储被描述为软件的过程的示例。本地或终端计算机能够访问远程计算机并且下载部分或全部软件以运行程序。备选地,本地计算机可以根据需要下载软件,或者在本地终端处执行一些软件指令,并且在远程计算机(或计算机网络)处执行一些软件指令。本领域技术人员还将认识到,通过利用本领域技术人员已知的常规技术,全部或部分软件指令可以由专用电路(诸如数字信号处理器(DSP)、可编程逻辑阵列等)执行。
如本领域技术人员将很清楚的,可以在不丧失所寻求的效果的情况下扩展或改变本文中给出的任何范围或设备值。
尽管已经以结构特征和/或方法动作专用的语言描述了主题,但是应当理解,所附权利要求书中限定的主题不必限于上述特定特征或动作。相反,上述特定特征和动作被公开作为实现权利要求的示例形式。
应当理解,上述益处和优点可以涉及一个实施例或可以涉及若干实施例。实施例不限于解决任何或所有所述问题的实施例,或具有任何或所有所述益处和优点的实施例。还应当理解,对‘一’项的引用指代这些项中的一个或多个。
本文中所描述的方法的操作可以以任何合适的顺序执行,或者在适当的情况下同时执行。另外,在不脱离本文中所描述的主题的范围的情况下,可以从任何方法中移除单个框。可以将上述任何示例的各方面与所描述的任何其他示例的各方面相结合以形成其他示例,而不会失去所寻求的效果。
术语‘包括’在本文中用来意味着包括所标识的方法框或元素,但是这种框或元素不包括排他性列表,并且方法或装置可以包含附加框或元素。
应当理解,以上描述仅通过示例的方式给出,并且本领域技术人员可以做出各种修改。上面的说明书、示例和数据提供了对示例性实施例的结构和使用的完整描述。尽管上面已经以某种程度的特殊性或者参考一个或多个单个实施例描述了各种实施例,但是本领域技术人员可以在不脱离本说明书的范围的情况下对所公开的实施例进行多种改变。

Claims (15)

1.一种外围设备,所述外围设备用于与主机计算设备一起使用,所述外围设备包括:
一个或多个计算元件;
安全模块,所述安全模块被配置为在所述外围设备上形成可信执行环境,以用于使用敏感代码处理敏感数据,其中所述敏感数据和所述敏感代码由与所述主机计算设备通信的可信计算实体提供;
至少一个加密单元,所述至少一个加密单元被配置为加密和解密经由所述主机计算设备在所述可信执行环境和所述可信计算实体之间被传递的数据;
所述安全模块被配置为计算证明并且将所述证明发送给所述可信计算实体,以证明所述敏感代码在所述可信执行环境中。
2.根据权利要求1所述的外围设备,其中在所述可信执行环境和所述可信计算实体之间被传递的所述数据使用直接存储器访问请求和响应而被传递。
3.根据权利要求1或权利要求2所述的外围设备,其中所述安全模块被配置为通过将所述外围设备从非安全模式切换到安全模式来形成所述可信执行环境,在所述非安全模式中,经由线性地址空间访问所述外围的存储器和寄存器是可能的,在所述安全模式中,经由所述线性地址空间访问所述外围的指定存储器和指定寄存器被禁用。
4.根据前述权利要求中任一项所述的外围设备,其中所述安全模块被配置为与所述第一可信计算实体交换密钥,并且将由所述第一可信计算实体提供的密钥供应给所述至少一个加密单元。
5.根据前述权利要求中任一项所述的外围设备,其中所述安全模块被配置以使得当所述外围设备处于所述安全模式时,如果针对引用的请求从所述主机被接收,则所述安全模块计算捕获所述外围设备的安全关键性质的引用,并且将所述引用返回给所述主机。
6.根据前述权利要求中任一项所述的外围设备,其中所述安全模块被配置为通过计算引用来计算所述证明,所述引用是所述安全模块的哈希,并且附加地是以下零项或多项的哈希:调试模式、主机访问标志、新数据加密密钥的哈希,所述新数据加密密钥由所述安全模块生成并且使用所述可信计算实体的公钥被加密。
7.根据前述权利要求中任一项所述的外围设备,其中所述安全模块被配置为通过计算包括证书的引用来计算所述证明,所述证书遵循证书链,所述证书链包括:使用证明密钥而被签名的引用、由背书密钥签名的证明密钥证书、使用根密钥而被签名的背书密钥证书、发布证书的自签名的根背书密钥。
8.根据前述权利要求中任一项所述的外围设备,其中所述加密单元包括密钥存储库、缓冲器和加密/解密组件。
9.根据前述权利要求中任一项所述的外围设备,其中所述缓冲器被配置为拦截并且缓冲在所述可信执行环境和所述主机之间被发送的直接存储器访问请求和响应。
10.根据权利要求9所述的外围设备,其中所述缓冲器被配置为:当所述缓冲器拦截直接存储器访问写请求时,从所述直接存储器访问写请求提取初始化矢量,以及使用所述初始化矢量来从所述密钥存储库取回加密密钥。
11.根据权利要求10所述的外围设备,其中所述缓冲器被配置为:将所述直接存储器访问写请求的有效载荷与所述初始化矢量和所取回的所述加密密钥一起路由到所述加密/解密组件。
12.根据前述权利要求中任一项所述的外围设备,被形成为封装,其中所述安全模块与所述一个或多个计算元件一起在裸片上,或者在所述一个或多个计算元件的裸片外;或者
被形成为多个经连接的封装。
13.根据前述权利要求中任一项所述的外围设备,其中所述加密单元具有多个密钥,以便利用不同的密钥来加密不同的数据流,并且其中所述加密单元使用密钥交换过程而被供应所述多个密钥;并且
可选地,其中所述安全模块被配置为隔离所述外围设备的资源以在所述外围设备上创建安全通道,并且其中不同的加密密钥被用于不同的安全通道;或者
其中所述安全模块被配置为计算包含对多个公钥的度量的引用,作为所述密钥交换过程的一部分,所述公钥已经由所述主机计算设备指定。
14.根据前述权利要求中任一项所述的外围设备,其中所述至少一个加密单元和所述可信计算实体被配置为:使用加密数据块的加密协议,每个块使用包括密钥和初始化矢量的对而被加密,并且其中所述加密单元和所述可信计算实体同意每个初始化矢量仅与给定密钥一起使用一次;并且其中所述初始化矢量根据所述加密单元和所述可信计算实体已知的参数化函数而被计算。
15.一种数据中心,包括:
多个计算节点,每个计算节点包括具有至少一个外围设备的主机计算设备,所述外围设备包括:
一个或多个计算元件;
安全模块,所述安全模块被配置为在所述外围设备上形成可信执行环境,以用于使用敏感代码处理敏感数据,其中所述敏感数据和所述敏感代码由与所述主机计算设备通信的可信计算实体提供;
至少一个加密单元,所述至少一个加密单元被配置为加密和解密经由所述主机计算设备在所述可信执行环境和所述可信计算实体之间被传递的数据。
CN201980068700.5A 2018-10-19 2019-09-05 外围设备 Active CN112889052B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/166,047 2018-10-19
US16/166,047 US11126757B2 (en) 2018-10-19 2018-10-19 Peripheral device
PCT/US2019/049614 WO2020081162A1 (en) 2018-10-19 2019-09-05 Peripheral device

Publications (2)

Publication Number Publication Date
CN112889052A true CN112889052A (zh) 2021-06-01
CN112889052B CN112889052B (zh) 2024-09-24

Family

ID=67982206

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980068700.5A Active CN112889052B (zh) 2018-10-19 2019-09-05 外围设备

Country Status (6)

Country Link
US (3) US11126757B2 (zh)
EP (1) EP3850518A1 (zh)
JP (2) JP7416775B2 (zh)
KR (1) KR20210076007A (zh)
CN (1) CN112889052B (zh)
WO (1) WO2020081162A1 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11522679B2 (en) * 2017-10-05 2022-12-06 Intel Corporation Exposing cryptographic measurements of peripheral component interconnect express (PCIe) device controller firmware
US11443072B2 (en) * 2018-06-29 2022-09-13 Microsoft Technology Licensing, Llc Peripheral device with resource isolation
US11461507B2 (en) * 2018-10-30 2022-10-04 Third Block Gear Systems and methods for secure peripherals
CN111552514A (zh) * 2019-02-12 2020-08-18 阿里巴巴集团控股有限公司 一种处理器以及指令执行方法
US11595411B2 (en) * 2019-04-01 2023-02-28 Raytheon Company Adaptive, multi-layer enterprise data protection and resiliency platform
WO2020205497A1 (en) * 2019-04-01 2020-10-08 Raytheon Company Root of trust assisted access control of secure encrypted drives
US20210144170A1 (en) * 2019-11-09 2021-05-13 Indian Institute Of Science System and method for protection against side channel attacks
US20200153629A1 (en) * 2019-12-20 2020-05-14 Intel Corporation Trusted execution aware hardware debug and manageability
US11281579B2 (en) * 2020-01-28 2022-03-22 Intel Corporation Cryptographic separation of MMIO on device
US11809576B2 (en) 2020-01-30 2023-11-07 Red Hat, Inc. Establishing secure remote access to debug logs
US11822641B2 (en) * 2020-04-29 2023-11-21 Red Hat, Inc. Establishing controlled remote access to debug logs
US12093371B2 (en) 2020-05-28 2024-09-17 Red Hat, Inc. Data distribution using a trusted execution environment in an untrusted device
US11971980B2 (en) * 2020-05-28 2024-04-30 Red Hat, Inc. Using trusted execution environments to perform a communal operation for mutually-untrusted devices
US11947659B2 (en) 2020-05-28 2024-04-02 Red Hat, Inc. Data distribution across multiple devices using a trusted execution environment in a mobile device
US20220069998A1 (en) * 2020-09-01 2022-03-03 Rockwell Collins, Inc. Method for Cryptographic Engine to Interface with an Arbitrary Number of Processor Cards in a Scalable Environment
US20220103379A1 (en) * 2020-09-28 2022-03-31 Red Hat, Inc. Secured software workload provisioning to a trusted execution environment
US11295000B1 (en) 2020-09-28 2022-04-05 Xilinx, Inc. Static configuration of accelerator card security modes
US11848924B2 (en) 2020-10-12 2023-12-19 Red Hat, Inc. Multi-factor system-to-system authentication using secure execution environments
JP7452697B2 (ja) * 2020-11-13 2024-03-19 日本電信電話株式会社 プログラム実行システム、データ処理装置、プログラム実行方法、及びプログラム
US11475140B1 (en) 2020-11-24 2022-10-18 Amazon Technologies, Inc. Enclave-based cryptography services in edge computing environments
GB2608184A (en) * 2021-06-25 2022-12-28 Graphcore Ltd Signature generation
KR102660736B1 (ko) * 2021-07-13 2024-04-26 한국과학기술원 신뢰실행환경(tee)에서 안전하게 가속기로 연산을 오프로딩하는 기법
CN113886862B (zh) * 2021-12-06 2022-04-15 粤港澳大湾区数字经济研究院(福田) 一种可信计算系统及基于可信计算系统的资源处理方法
CN115859375A (zh) * 2022-12-01 2023-03-28 北京火山引擎科技有限公司 一种数据处理方法、装置、电子设备及存储介质
WO2024145348A1 (en) * 2022-12-30 2024-07-04 Rivos Inc. Stream processing for encrypted, integrity and replay-protected memory
CN117349409B (zh) * 2023-12-05 2024-04-05 天津光电聚能通信股份有限公司 一种基于fpga的快速正则表达式匹配实现系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130151846A1 (en) * 2011-12-12 2013-06-13 Microsoft Corporation Cryptographic Certification of Secure Hosted Execution Environments
CN103221961A (zh) * 2010-10-20 2013-07-24 超威半导体公司 包括用于保护多用户敏感代码和数据的架构的方法和装置
US8832813B1 (en) * 2012-12-19 2014-09-09 Emc Corporation Voice authentication via trusted device
US20180212939A1 (en) * 2017-01-24 2018-07-26 Microsoft Technology Licensing, Llc Data sealing with a sealing enclave

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7380130B2 (en) 2001-12-04 2008-05-27 Microsoft Corporation Methods and systems for authentication of components in a graphics system
US7203310B2 (en) 2001-12-04 2007-04-10 Microsoft Corporation Methods and systems for cryptographically protecting secure content
DE10200288A1 (de) * 2002-01-07 2003-07-17 Scm Microsystems Gmbh Eine Vorrichtung zur Ausführung von Anwendungen, die sichere Transaktionen und/oder Zugangskontrolle zu werthaltigen Inhalten und/oder Dienstleistungen umfassen, und Verfahren zum Schutz einer solchen Vorrichtung
US7293178B2 (en) 2002-12-09 2007-11-06 Microsoft Corporation Methods and systems for maintaining an encrypted video memory subsystem
EP1870814B1 (en) 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
JPWO2006013924A1 (ja) * 2004-08-06 2008-05-01 パイオニア株式会社 記録再生装置、記録媒体処理装置、再生装置、記録媒体、コンテンツ記録再生システム、及びコンテンツ記録再生方法
GB2431488A (en) * 2005-10-11 2007-04-25 Hewlett Packard Development Co Data transfer device
US20220092135A1 (en) 2008-04-10 2022-03-24 Content Directions, Inc. dba Linkstorm Portable Universal Profile Apparatuses, Processes and Systems
US8868925B2 (en) 2008-12-09 2014-10-21 Nvidia Corporation Method and apparatus for the secure processing of confidential content within a virtual machine of a processor
US8938723B1 (en) 2009-08-03 2015-01-20 Parallels IP Holdings GmbH Use of GPU for support and acceleration of virtual machines and virtual environments
CA2838763C (en) * 2011-06-10 2019-03-05 Securekey Technologies Inc. Credential authentication methods and systems
US9424432B2 (en) * 2012-09-20 2016-08-23 Nasdaq, Inc. Systems and methods for secure and persistent retention of sensitive information
WO2014100279A1 (en) 2012-12-18 2014-06-26 Dynavisor, Inc. Dynamic device virtualization
US9237014B2 (en) * 2013-05-28 2016-01-12 Hong Kong Applied Science & Technology Research Institute Company, Limited Partial CipherText updates using variable-length segments delineated by pattern matching and encrypted by fixed-length blocks
DE102013213314A1 (de) 2013-07-08 2015-01-08 Siemens Aktiengesellschaft Hinterlegen mindestens eines berechenbaren Integritätsmesswertes in einem Speicherbereich eines Speichers
US9703981B1 (en) * 2013-11-04 2017-07-11 Mobile Iron, Inc. Mobile device data encryption
US20160188251A1 (en) 2014-07-15 2016-06-30 Nvidia Corporation Techniques for Creating a Notion of Privileged Data Access in a Unified Virtual Memory System
US9800561B2 (en) 2014-11-06 2017-10-24 Intel Corporation Secure sharing of user annotated subscription media with trusted devices
WO2016082073A1 (en) 2014-11-24 2016-06-02 Intel Corporation Support for application transparent, high available gpu computing with vm checkpointing
GB2539436B (en) 2015-06-16 2019-02-06 Advanced Risc Mach Ltd Secure initialisation
US10114958B2 (en) 2015-06-16 2018-10-30 Microsoft Technology Licensing, Llc Protected regions
US10303900B2 (en) 2015-07-20 2019-05-28 Intel Corporation Technologies for secure programming of a cryptographic engine for trusted I/O
FR3039948B1 (fr) 2015-08-04 2017-08-11 Skeyecode Procede de securisation d’une transaction a partir d’un terminal non securise
US9767320B2 (en) 2015-08-07 2017-09-19 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
US9904805B2 (en) 2015-09-23 2018-02-27 Intel Corporation Cryptographic cache lines for a trusted execution environment
US10769312B2 (en) 2015-10-06 2020-09-08 Carnegie Mellon University Method and apparatus for trusted display on untrusted computing platforms to secure applications
US9972065B2 (en) 2016-09-23 2018-05-15 Apple Inc. Resource layout randomization for GPU execution
US10367639B2 (en) 2016-12-29 2019-07-30 Intel Corporation Graphics processor with encrypted kernels
US10897459B2 (en) 2017-01-26 2021-01-19 Microsoft Technology Licensing, Llc Addressing a trusted execution environment using encryption key
US10505716B2 (en) 2017-02-22 2019-12-10 Dark Matter L.L.C. System, apparatus, and method for securing data using a graphics processor
CN108667608B (zh) * 2017-03-28 2021-07-27 阿里巴巴集团控股有限公司 数据密钥的保护方法、装置和系统
US10768863B2 (en) * 2017-03-31 2020-09-08 Intel Corporation Security monitoring agent for field programmable gate array (FPGA) in-memory controller
US10365843B2 (en) 2017-04-10 2019-07-30 Intel Corporation Power management of memory chips based on working set size
US10992556B2 (en) 2017-06-05 2021-04-27 Intel Corporation Disaggregated resource monitoring
US10986011B2 (en) * 2017-10-18 2021-04-20 Google Llc Unobtrusive support for third-party traffic monitoring
US10339082B2 (en) 2017-11-30 2019-07-02 Intel IP Corporation Technologies for stable secure channel identifier mapping for static and dynamic devices
US10726132B2 (en) 2018-03-08 2020-07-28 Hewlett Packard Enterprise Development Lp Enclave launch and authentication
US10797856B2 (en) 2018-04-18 2020-10-06 Fujitsu Limited Outsourcing processing operations with homomorphic encryption
US11443072B2 (en) 2018-06-29 2022-09-13 Microsoft Technology Licensing, Llc Peripheral device with resource isolation
US11126733B2 (en) 2018-08-27 2021-09-21 Intel Corporation System, apparatus and method for configurable trusted input/output access from authorized software
US11295008B2 (en) 2019-02-13 2022-04-05 Nec Corporation Graphics processing unit accelerated trusted execution environment
US20220206946A1 (en) 2020-12-28 2022-06-30 Advanced Micro Devices, Inc. Method and apparatus for managing a cache directory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103221961A (zh) * 2010-10-20 2013-07-24 超威半导体公司 包括用于保护多用户敏感代码和数据的架构的方法和装置
US20130151846A1 (en) * 2011-12-12 2013-06-13 Microsoft Corporation Cryptographic Certification of Secure Hosted Execution Environments
US8832813B1 (en) * 2012-12-19 2014-09-09 Emc Corporation Voice authentication via trusted device
US20180212939A1 (en) * 2017-01-24 2018-07-26 Microsoft Technology Licensing, Llc Data sealing with a sealing enclave

Also Published As

Publication number Publication date
US20200125772A1 (en) 2020-04-23
EP3850518A1 (en) 2021-07-21
US11921911B2 (en) 2024-03-05
JP7416775B2 (ja) 2024-01-17
KR20210076007A (ko) 2021-06-23
US20240160795A1 (en) 2024-05-16
CN112889052B (zh) 2024-09-24
US20210342492A1 (en) 2021-11-04
JP2024029171A (ja) 2024-03-05
WO2020081162A1 (en) 2020-04-23
JP2022505355A (ja) 2022-01-14
US11126757B2 (en) 2021-09-21

Similar Documents

Publication Publication Date Title
CN112889052B (zh) 外围设备
US11604901B2 (en) Systems and methods for using extended hardware security modules
US10116645B1 (en) Controlling use of encryption keys
US9602282B2 (en) Secure software and hardware association technique
US20150242614A1 (en) Provisioning of security credentials
CN109154972B (zh) 使用基于硬件的安全隔离区域来防止电子设备上的盗版和作弊
US11252193B2 (en) Attestation service for enforcing payload security policies in a data center
US9208355B1 (en) Apparatus, system and method for providing cryptographic key information with physically unclonable function circuitry
US20050283826A1 (en) Systems and methods for performing secure communications between an authorized computing platform and a hardware component
US10003467B1 (en) Controlling digital certificate use
Elrabaa et al. Secure computing enclaves using FPGAs
CN117397198A (zh) 绑定加密密钥证明
Zeitouni et al. SoK: On the security challenges and risks of multi-tenant FPGAs in the cloud
Kurnikov et al. Keys in the clouds: auditable multi-device access to cryptographic credentials
Ren et al. AccGuard: Secure and trusted computation on remote FPGA accelerators
US20230421389A1 (en) Authorizing secure connections responsive to certificates bound to logical identifiers
US20230342501A1 (en) Secure Provisioning with Hardware Verification
Al-Asali Hardware-Based Solutions for Securing Users’ Data in Public Clouds
DADHICH HARDWARE ROOT OF TRUST BASED TPM: THE INHERENT OF 5IRECHAIN SECURITY

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