CN115130090A - 基于容器的环境中的安全密钥供应和硬件辅助的安全密钥存储和安全密码学功能操作 - Google Patents
基于容器的环境中的安全密钥供应和硬件辅助的安全密钥存储和安全密码学功能操作 Download PDFInfo
- Publication number
- CN115130090A CN115130090A CN202210205130.3A CN202210205130A CN115130090A CN 115130090 A CN115130090 A CN 115130090A CN 202210205130 A CN202210205130 A CN 202210205130A CN 115130090 A CN115130090 A CN 115130090A
- Authority
- CN
- China
- Prior art keywords
- key
- container
- cryptographic
- workload
- cryptographic operation
- 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.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 29
- 238000000034 method Methods 0.000 claims description 108
- 238000012545 processing Methods 0.000 claims description 33
- 238000010200 validation analysis Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 abstract description 12
- 230000015654 memory Effects 0.000 description 62
- 238000004891 communication Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 15
- 230000004044 response Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000001413 cellular effect Effects 0.000 description 5
- 238000005192 partition Methods 0.000 description 5
- 239000000758 substrate Substances 0.000 description 5
- 229910000679 solder Inorganic materials 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 150000004770 chalcogenides Chemical class 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000013186 photoplethysmography Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- GETQKLUOZMYHGE-UHFFFAOYSA-N 2-[[3-(3,6-dichlorocarbazol-9-yl)-2-hydroxypropyl]amino]-2-(hydroxymethyl)propane-1,3-diol Chemical compound ClC1=CC=C2N(CC(O)CNC(CO)(CO)CO)C3=CC=C(Cl)C=C3C2=C1 GETQKLUOZMYHGE-UHFFFAOYSA-N 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 231100000430 skin reaction Toxicity 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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/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/0822—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 key encryption key
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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/3247—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 digital signatures
-
- 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/3271—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 using challenge-response
- H04L9/3273—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 using challenge-response for mutual authentication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
一种密钥高速缓存容器提供对密码学密钥的安全存储和对用于工作负荷容器的密码学功能的安全操作。每个工作负荷容器中的密码学调用适配器将由应用作出的应用密码学操作请求转换为被发送至密钥高速缓存容器的工作负荷容器密码学操作请求。密钥的安全供应由充当密钥管理服务的代理的密钥中介服务实现。密钥高速缓存容器内的安全飞地以经加密的格式来存储密钥、以及执行密码学操作的指令。密钥高速缓存容器将与密码学密钥相关联的密钥句柄提供至请求方应用,该应用在后续应用密码学操作请求中使用该密钥句柄。安全飞地使用安全性相关指令在启用安全性的集成电路组件中被创建和管理,该启用安全性的集成电路组件是计算系统的硬件平台的部分。
Description
背景技术
在一些现有的云原生计算环境中,容器在编排器的控制下被部署到计算系统。这些容器包含可能要求使用密码学密钥来执行各种密码学功能(诸如加密和解密)的应用。一些现有的密钥管理解决方案使用硬件安全性模块(HSM)来执行密码学任务。HSM是可以采用插入式卡或直接附接至计算系统的外部设备的形式的物理计算设备或组件。
附图说明
图1是用于安全密钥供应和硬件辅助的安全密钥存储以及安全密码学功能操作的示例计算系统的框图。
图2是请求密码学密钥的第一示例方法的流程图。
图3是请求密码学密钥的第二示例方法的流程图。
图4是请求密码学密钥的第三示例方法的流程图。
图5是示例容器部署方法的流程图。
图6是可在其中实现本文中所描述的技术的示例计算系统的框图。
图7是可以执行作为实现本文中所描述的技术的部分的指令的示例性处理器单元的框图。
具体实施方式
在基于容器的操作系统虚拟化环境中,可能需要供应密码学密钥以允许应用在容器内操作来执行各种与密码学有关的任务,诸如传输层安全性(TLS)会话建立、数字签名生成、和加密/解密。由于安全性问题,这些密钥并未被包括在容器镜像中,而是在容器运行时期间被供应。为了确保基于容器的应用和任何相关联的数据的安全性,密钥可以被安全地供应至容器在其上执行的计算机系统,并且在使用时保持安全。这防止密码学密钥被加载到计算系统的主存储器(DRAM)中,在计算系统的主存储器中,这些密码学密钥可能易受攻击。用于在密码学密钥使用时保护这些密码学密钥的现有方式依赖于硬件安全性模块(HSM)、网络HSM和受信平台模块(TPM),但是操作、性能和成本问题使得在基于容器的环境中采用这些方式是有挑战性的。
本文中所公开的是在基于容器的环境中向容器安全地供应密码学密钥并提供硬件辅助的安全密钥存储和安全密码学功能操作的技术。密钥高速缓存容器利用主机计算系统的硬件平台的安全性特征为在同一(或不同)主机计算系统上操作的其他容器提供安全密钥存储和安全密码学功能操作。在一些实施例中,密钥被安全地存储在安全飞地中并且密码学操作在安全飞地中安全地被执行。
在以下描述中,阐述了众多具体细节,但是可以在没有这些具体细节的情况下实施本文中所描述的技术的实施例。公知的电路、结构和技术未被详细示出,以避免混淆对本描述的理解。“实施例”、“各实施例”、“一些实施例”等等可包括特征、结构或特性,但是并非每一个实施例都必定包括这些特定的特征、结构或特性。
一些实施例可以具有针对其他实施例所描述的特征中的一些或全部,或完全不具有这些特征。“第一”、“第二”、“第三”等等描述常见的对象,并且指示相同对象的不同实例正在被引用。此类形容词并不暗示如此描述的对象必须在时间上或空间上、在排序方面或以任何其他方式按给定顺序。“连接的”可指示元件彼此处于直接的物理或电接触,并且“耦合的”可指示元件彼此协作或交互但这些元件可以或可以不处于直接的物理或电接触。
说明书可使用短语“在一实施例中”、“在实施例中”、“在一些实施例中”和/或“在各实施例中”,这些短语中的每一个都可指代相同或不同实施例中的一个或多个。此外,如相对于本公开的实施例所使用的术语“包含”、“包括”、“具有”等是同义的。
如本文所使用,术语“集成电路组件”是指经封装的或未经封装的集成电路产品。经封装的集成电路组件包括被安装在封装衬底上的一个或多个集成电路。在一个示例中,经封装的集成电路组件包含被安装在衬底上、包括焊料球栅阵列(BGA)的衬底外部表面上的一个或多个处理器单元。在未经封装的集成电路组件的一个示例中,单个单片集成电路管芯包括被附接到管芯上的触点的焊料凸块。焊料凸块允许管芯直接地附接到印刷电路板。集成电路组件可以包括本文所描述或所引用的任何计算系统组件或任何其他计算系统组件中的一个或多个计算系统组件,诸如处理器单元(例如,芯片上系统(SoC)、处理器核、图形处理器单元(GPU)、加速器)、I/O控制器、芯片组处理器、存储器或网络接口控制器。
如本文中所使用,术语“操作”、“执行”或“运行”在其涉及与系统、设备、平台或资源有关的软件或固件时可互换地使用,并且可以指代存储在可由计算系统、设备、平台或资源访问的一种或多种计算机可读存储介质中的软件或固件,即使该软件或固件中所包含的指令并非正在被计算系统、设备、平台或资源活跃地执行。
现在对附图进行参考,这些附图不必按比例绘制,其中使用类似或相同数字在不同的图中指示相同或类似的部分。在不同的图中使用类似或相同的数字并不意味着包括类似或相同数字的所有的图构成单个或同一个实施例。具有不同的字母后缀的相同的数字可表示类似组件的不同实例。附图总的来说通过示例的方式而不是限制的方式来图示在本文档中所讨论的各实施例。
在以下描述中,为了进行解释,阐述了众多具体细节以便提供对该描述的透彻理解。然而,可以显而易见的是,可以在不具有这些具体细节的情况下实施新颖的实施例。在其他实例中,以框图形式示出了多个公知的结构和设备以促进对这些结构和设备的描述。意图在于涵盖在权利要求范围之内的所有修改、等效方案和替代方案。
图1是用于安全密钥供应和硬件辅助的安全密钥存储以及安全密码学功能操作的示例计算系统的框图。系统100是一种基于容器的计算系统,其包括编排器104、主机计算系统108、密钥中介服务112、密钥管理服务116、以及附加主机计算系统122。编排器104负责管理系统100并且负责各种与容器有关的任务,这些与容器有关的任务诸如将容器镜像部署到主机计算系统108和122、监视所部署的容器的性能、以及监视主机计算系统108和122的资源的利用。
主机计算系统108包括在其上建立计算环境124的硬件平台120。计算环境124包括密钥高速缓存容器128、多个工作负荷(或应用)容器132、操作系统136、以及容器运行时引擎140。密钥高速缓存容器128和工作负荷容器132是由编排器104部署到主机计算系统108的密钥高速缓存容器镜像和工作负荷容器镜像的运行实例。密钥高速缓存容器128和工作负荷容器132在容器运行时引擎140之上操作,该容器运行时引擎140进而在操作系统136内操作。在一些实施例中,计算环境包括在管理程序(或虚拟机监视器(VMM))之上操作的一个或多个容器运行时镜像,由此允许支持不同容器类型的不同容器运行时引擎在单个主机计算系统上操作。管理程序可以是直接在计算系统的硬件平台上操作的裸机型(或类型1)管理程序、或者作为操作系统之上的软件层来进行操作的托管型(或类型2)管理程序。在一些实施例中,基于容器的系统100利用云原生计算方式并在公有云、私有云或混合云架构内操作。
如本文中所使用,术语“容器镜像”是指针对一个或多个应用以及任何库、配置设置和应用执行所需要的任何其他信息的二进制镜像的封装。容器镜像可以符合任何容器镜像格式,诸如Appc或LXC容器镜像格式。如本文中所使用,术语“容器”是指容器镜像的运行实例。
硬件平台120包括一个或多个启用安全性的集成电路组件。在一些实施例中,实现安全性的集成电路组件包括支持指令集的一个或多个处理单元(例如,处理器核、CPU、GPU、XPU),该指令集除了包括通用指令集合外还包括与安全性相关指令的集合。也就是说,启用安全性的集成电路组件并非专用的安全性处理器。在一些实施例中,安全性相关指令允许安全飞地的创建和操作。安全飞地包括主存储器(例如,位于负责在计算系统上执行应用的集成电路组件外部的存储器,诸如DRAM)的区域,该区域的内容被加密并且无法被安全飞地外部的任何软件(例如,其他进程、操作系统内核、固件)访问。安全飞地内容(例如,数据、指令)的加密和解密“顺序地”发生,这是由于经加密的安全飞地内容在被访问时被解密,并且要被存储在安全飞地中的信息在被写入到安全飞地时被加密。从安全飞地读取或向安全飞地写入的信息于在计算系统上执行应用的集成电路组件内被解密或加密,这确保安全飞地内容在其跨集成电路组件与主存储器之间的接口行进时被加密。
在一些实施例中,利用从在制造期间被编程到处理单元中的一个或多个固定密钥得到的密钥来对安全飞地的内容进行加密。由此,仅有包括此类处理单元的集成电路组件可以对安全飞地内容进行解密。
在一些实施例中,启用安全性的集成电路组件包括一个或多个启用安全性的处理单元、高速缓存存储器和存储器控制器,该存储器控制器从主存储器检取要被置于高速缓存存储器中的信息并将从高速缓存存储器被驱逐的信息发送至主存储器以供存储。除了支持通用指令集之外,启用安全性的处理单元还支持启用安全飞地的生成和操作的安全性相关指令。启用安全飞地的生成和操作的安全性相关指令可以包括创建飞地、初始化飞地、向飞地添加页、对飞地移除页、进入飞地、以及退出飞地的指令。如果存储器控制器确定主存储器的、从其读取或向其写入的区域的存储器地址落在安全飞地的存储器地址范围内,则存储器控制器在信息被写入到安全飞地之前对被写入到安全飞地的信息进行加密并在接收到来自安全飞地的经加密的信息时对从安全飞地被读取的信息进行解密。
在一些实施例中,启用安全性的集成电路组件是启用有软件防护扩展(SGX)的启用的处理器。除通用指令集之外,这些处理器还支持安全性相关指令集。SGX处理器包括支持SGX指令集的一个或多个处理核,这允许生成并支持安全飞地。SGX安全飞地驻留在飞地页高速缓存(EPC)中,EPC驻留在主存储器的、为处理器预留的、无法由其他软件(包括系统软件)直接访问的部分。在SGX处理器中,从安全飞地被读取或被写入到安全飞地的信息的加密和解密可以由位于SGX处理器内的存储器加密引擎(MEE)或存储器加密指令集扩展来执行。
在其他实施例中,启用安全性的集成电路组件包括一个或多个启用安全性的处理单元,除在计算系统资源的标准(非安全)分区内操作的通用指令集外,该一个或多个启用安全性的处理单元还支持在计算系统资源的安全分区内操作的安全性相关指令集合。在这些实施例中,归属于安全分区的数据和指令不会行进超出计算系统存储器层级结构中的、启用安全性的集成电路组件的高速缓存存储器,允许归属于安全分区的数据和指令保持未经加密。
在一些实施例中,启用安全性的集成电路组件是在物理上与执行计算系统的安全环境(例如,安全分区、安全飞地)外部的指令的其他处理单元分离的专用安全性处理单元,诸如安全飞地协处理器或安全性协处理器。除安全性相关指令集外,专用安全性处理单元可以支持或可以不支持通用指令集。由安全性处理单元执行的指令以及由安全性处理单元作用于其上的数据被存储在经加密的主存储器中,并且在其被写入到主存储器/从主存储器被读取时被加密/解密。可以使用与安全性处理单元分离的硬件密码学加速处理单元来对被写入到主存储器和从主存储器被读取的数据和指令的加密和解密进行加速。
容器运行时引擎140提供操作系统136与密钥高速缓存容器128和工作负荷容器132之间的接口。容器运行时引擎140可以是Docker引擎、LXU、兼容开放容器计划(OCI)的容器运行时(例如,Railcar、CRI-O)、或任何其他容器运行时引擎。操作系统可以是Windows或对其而言容器运行时引擎可用的任何其他操作系统。在特定的容器生态系统中,多个容器运行时引擎可以是可用的,其中不同的容器运行时引擎向不同的操作系统提供标准化容器接口。由此,多个容器运行时引擎一起允许容器在不依赖于主机计算系统的操作系统/VMM或硬件的情况下被开发和部署。
在一些实施例中,密钥高速缓存容器128和工作负荷容器132是容器并且是容器镜像的运行时实例,并且容器运行时引擎140是Docker引擎。在一些实施例中,密钥高速缓存容器128和工作负荷容器132是Kubernetes开源容器-编排系统并且是作为容器镜像被部署到计算系统108的容器镜像的运行时实例。容器运行时引擎140可以是Docker引擎、容器、或符合Kubernetes容器运行时接口的容器运行时引擎。在Kubernetes环境中,密钥高速缓存容器128可以被部署为DaemonSet,这确保Kubernetes集群内的所有节点均运行密钥高速缓存容器的实例。
密钥高速缓存容器128安全地供应由应用144请求的密码学密钥,安全地供应密钥并安全地执行使用这些密钥的密码学操作。由此,密钥高速缓存容器128提供工作负荷容器132可以用来进行安全密钥保护和密码学功能的安全迁移的资源。所供应的密钥150被存储在安全飞地148中。安全飞地148还存储在被执行时实现密码学引擎164的指令。密码学引擎164可以执行各种密码学相关任务,诸如加密、解密、散列化和数字签名。密钥高速缓存容器128还包括执行与密钥供应、密钥存储、以及密钥引擎164的管理有关的任务的不受信任部分。在一些实施例中,安全飞地148由使得硬件平台120中的启用安全性的处理单元的安全性相关指令被执行的、密钥高速缓存容器182中的指令来创建和管理。
一个或多个应用144和密码学调用适配器152在每个工作负荷容器132内操作。当应用144加载密码学密钥、生成密码学密钥或执行密码学功能时,应用144调用其相关联的密码学调用适配器152。密码学调用适配器152将对应用144被链接到的密码学库的调用(应用密码学操作请求)转换为对密码学引擎164中所实现的密码学库的调用(工作负荷容器密码学操作请求)。例如,如果应用被链接至OpenSSL或golang密码学库并且密码学引擎164实现公钥密码学标准(PKCS)库(诸如PKCS#11),则密码学调用适配器152可以将应用的OpenSSL或golang库API调用转换为PKCS#11库API调用。如果链接至应用144的密码学库与密码学引擎164中所实现的密码学库相同,则不需要转换(应用密码学操作请求与工作负荷容器密码学操作请求相同),并且要么工作负荷容器132可以不包括密码学调用适配器152,要么该适配器152在不进行转换的情况下传递应用的密码学库调用。当应用的原本可能由HSM容纳的密码学调用被路由至密码学引擎164时,该密码学引擎164可以被认为是软件安全性模块。
密钥高速缓存容器128和工作负荷容器132各自进一步包括启用容器之间的通信的进程间通信(IPC)模块160。在一些实施例中,IPC模块160利用开源gRPC远程过程调用框架。在其他实施例中,IPC模块160可以利用网络协议(例如,HTTPS(超文本传输协议安全)、TLS上的普通TCP)来提供容器间通信。IPC模块160可以提供在同一主机计算系统或不同主机计算系统上操作的容器之间的通信。
容器可以在将信息发送至另一容器之间对该信息进行串行化并对接收自另一容器的经串行化的信息进行解串行化,并且在信息跨容器间的通信信道被发送之前、该通信信道可以被相互认证。在一些实施例中,跨容器之间的通信信道发送的信息被加密。
在一些实施例中,如下,密码学密钥可以被供应至应用。工作负荷容器132的容器镜像被配置有针对应用144可能需要访问的密码学密钥的密钥标识符。密钥标识符向密钥中介服务112唯一地标识密钥。在一些实施例中,密钥标识符可以是统一资源标识符(URI)。当应用144要加载或生成密码学密钥时,其使用该密钥的唯一标识符向密码学调用适配器152作出适当的应用密码学操作请求,并且工作负荷容器132将应用密码学操作请求转换为包括密钥唯一标识符的工作负荷容器密码学操作请求并将该工作负荷容器密码学操作请求发送至密钥高速缓存容器128。
在接收到来自工作负荷容器132的工作负荷容器密码学操作请求之后,密钥高速缓存容器128向密钥中介服务112提交对包括由工作负荷容器132提供的密钥标识符的密码学密钥的请求。密钥高速缓存容器128还发送经签名且可远程验证的声明(claim),该声明是针对安全飞地148生成的、密钥中介服务112用来进行飞地138的证实的。经签名的声明包含一个或多个飞地属性并包含飞地公钥,该飞地公钥是在安全飞地148内生成的飞地公钥-私钥对的部分。在一些实施例中,经签名的声明包括飞地公钥的散列,而不是直接包括飞地公钥。
在密钥高速缓存容器128向密钥中介服务112提交对密码学密钥的请求之前,密钥中介服务112与密钥高速缓存容器128之间的信道可以被相互认证。沿密钥中介服务112与密钥高速缓存容器128之间的通信信道发送的信息可以被加密。在一些实施例中,该通信信道使用HTTPS来加密。在将所请求的密钥提供至密钥高速缓存容器128之前,密钥中介服务112执行对由密钥高速缓存容器128提供的经签名的声明的证实。密钥中介服务112可以通过将经签名的声明发送至证实服务来确认经签名的声明已经在安全飞地中被生成。一旦经签名的服务器已经被证实服务验证,则要么是因为由密钥高速缓存容器128提供的飞地公钥被包括在经签名的声明中,要么是如果该飞地公钥的散列被包括在经签名的声明中并且该飞地公钥与经签名的声明分开地被提供,密钥中介服务112就确保飞地公钥是真实的,其中,经签名的声明中所包括的飞地公钥散列与由证实服务生成的飞地公钥的散列相匹配。
在一些实施例中,证实服务可以由启用安全性的集成电路组件的供应商提供,并且证实服务可以证实经签名的声明在由供应商提供的集成电路创建的安全飞地内被生成。在其中启用安全性的集成电路组件是启用SGX的处理器的实施例中,密钥中介服务112可以利用的SGX证实基础设施(诸如SGX数据中心证实原语(SGX DCAP)或用于数据中心的英特尔安全性库(英特尔SecL-DC)中可用的SGX证实特征)对由密钥高速缓存容器128提供的经签名的声明执行证实。
在成功证实之后,密钥中介服务112向密钥管理服务116发送对由密钥高速缓存容器128请求的密钥的请求,并且密钥管理服务116响应于该请求而将所请求的密钥提供至密钥中介服务112。响应于请求,密钥管理服务116可以生成新的密钥或提供已生成的密钥。在一些实施例中,密钥管理服务116不存储新生成的密钥,其中系统100反而依靠安全飞地148来进行安全的密钥存储。在其他实施例中,密钥管理服务116安全地存储所生成的密钥(例如,存储在密钥管理服务116本地的HSM中)。不论所请求的密钥是由密钥管理服务116新生成的还是已生成的,密钥中介服务112均利用仅该密钥中介服务112和密钥高速缓存容器128知晓的对称加密密钥来对所请求的密钥进行加密,并且将经加密的所请求的密钥发送至密钥高速缓存容器128。密钥高速缓存容器128随后用对称加密密钥对经加密的所请求的密钥进行解密。
如果用于对所请求的密钥进行加密的对称加密密钥尚未被生成,则密钥中介服务112生成对称加密密钥,用飞地公钥对其进行加密,并将经加密的对称加密密钥发送至密钥高速缓存容器128。安全飞地148随后用飞地私钥对对称加密密钥进行解密,并且现在,安全飞地148和密钥中介服务112两者均知晓该对称加密密钥。在一些实施例中,由密钥管理服务116生成对称密钥并用飞地公钥对其进行加密。在此种情况下,密钥中介服务112仅看到由密钥高速缓存容器128请求的密钥的经加密版本。
在对所请求的密钥进行接收和解密时,密钥高速缓存容器128生成针对所请求的密钥的密钥句柄,并将该密钥句柄提供至工作负荷容器132。工作负荷容器132经由对请求密钥的应用密码学操作请求的响应将密钥句柄传递至应用。所供应的密钥被安全地存储为安全飞地148中的密钥150中的一个密钥150。密钥句柄可以是密钥高速缓存容器128可以用来唯一地标识安全飞地148中所存储的密钥150之中的密钥的任何种类的标识符或数据结构。为了利用所存储的密钥150来进行密码学操作,工作负荷容器132将对应的密钥句柄提供至密钥高速缓存容器128。由于多个工作负荷容器132可以与单个密钥高速缓存容器128进行通信,密钥高速缓存容器128将对密钥150的使用限制于最初请求该密钥的工作负荷容器132。
密钥中介服务112可以是密钥高速缓存容器128可访问的任何类型的资源。例如,密钥中介服务112可以是通过网络连接可用的远程服务(例如,由远程服务器提供)。在一些实施例中,密钥中介服务112可以是在编排器104的管理之下的容器内操作的服务。由此,在容器实施例中,密钥中介服务112可以与密钥高速缓存容器128在同一主机计算系统上执行,或者在附加主机计算系统122中的一个附加主机计算系统122上执行。
密钥管理服务116可以是密钥中介服务112可访问的、向该密钥中介服务112提供密码学密钥的远程服务(例如,远程服务器)。使两个分开的实体(密钥中介服务112和密钥管理服务116)处置密钥生成、证实和安全密钥供应允许将现有的密钥管理服务(例如,开源或机密密钥管理服务)用于密钥管理服务116。也就是说,现有的密钥管理服务可能无法执行安全飞地证实。然而,在一些实施例中,单个实体(诸如,密钥供应服务)可以执行安全飞地证实和密钥生成功能。
在所请求的密码学密钥作为安全飞地148中的密钥150中的一个密钥150被供应和存储、并且与所供应的密钥相对应的密钥句柄被提供至请求工作负荷容器132和请求方应用144的情况下,密码学操作可以针对应用144被如下地执行。应用144向密码学调用适配器152作出应用密码学操作请求,通过密钥的唯一标识符(例如,密钥句柄)来标识在所请求的密码学操作中要使用的密码学密钥。工作负荷容器132将应用密码学操作请求转换为工作负荷容器密码学操作请求,该工作负荷容器密码学操作请求包括与密钥相关联的密钥句柄、标识要执行的所请求的密码学操作的信息、以及所请求的密码学操作要作用于密钥高速缓存容器128的任何输入数据。密钥句柄、密码学操作标识信息和输入数据由密钥高速缓存容器128的不受信任部分处理,并且所请求的密码学操作由安全飞地148对输入数据执行以生成输出数据。输出数据由密钥高速缓存容器128发送至请求方工作负荷容器132并被传递至请求方应用144。
以下实例对利用本文中所描述的技术的应用的密码学操作的执行进行说明。考虑在实现基于Kubernetes的容器编排系统的云原生环境中操作的系统100。工作负荷容器132和密钥高速缓存容器128是主机计算系统108(Kubernetes节点)上的Kubernetes舱。不要求密钥高速缓存容器128和工作负荷容器132是同一舱的部分——密钥高速缓存容器128可以支持在多个Kubernetes舱中操作的多个工作负荷容器。工作负荷容器132中的一个工作负荷容器132中的应用144利用golang密码学库来执行密码学操作,并且安全飞地148实现来自PKCS#11密码学库的密码学操作。应用向其相关联的适配器152作出golang密码学库调用,该golang密码学库调用包括针对要在加密操作中使用的密钥的密钥句柄、标识要执行的密码学操作是加密操作的信息、以及要被加密的输入数据。适配器152将golang密码学库调用(应用密码学操作请求)转换为PKCS#11密码学库调用(工作负荷容器密码学操作请求),该PKCS#11密码学库调用包括密钥句柄、标识要执行的PKCS#11密码学操作是加密操作的信息、以及输入数据。在请求工作负荷容器132与密钥高速缓存容器128之间的信道被相互认证之后,PKCS#11密码学库调用由请求方工作负荷容器132使用gRPC来串行化并被发送至密钥高速缓存容器128。
在从请求方工作负荷容器132接收到PKCS#11密码学库调用之后,密钥高速缓存容器128对工作负荷容器密码学操作请求进行解串行化。PKCS#11库调用由密钥高速缓存容器128来处置,其中输入数据通过所请求的PKCS#11加密操作被加密。加密在安全飞地148中由密码学引擎164使用与在工作负荷容器密码学操作请求中提供的密钥句柄相关联的所存储的PKCS#11密钥150执行。输出数据以经串行化且经加密的形式被传递回到请求方工作负荷容器132,并且经由密码学调用适配器152、以对golang密码学库调用的响应的形式被提供至应用144。
本文中所公开的安全密钥供应和硬件辅助的安全密钥存储以及安全密码学功能操作可至少具有以下优势。第一,与HSM不同,基于软件的密钥高速缓存容器可以被远程地部署,并且其部署可以容易地缩放。安装或附接用于启用安全密钥存储或机密密码学功能操作的HSM不要求对远程主机计算系统的物理接入。第二,由于单个密钥高速缓存容器能够支持多个工作负荷容器,避免了部署各自具有其自己的安全飞地的工作负荷容器的开发和操作开销。第三,密钥高速缓存容器避免了购买物理HSM和在主机计算系统中安装物理HSM的成本。
图2是请求密码学密钥的第一示例方法的流程图。方法200可以由在服务器上操作的工作负荷容器来执行。在210处,工作负荷容器密码学操作请求从工作负荷容器被发送至密钥高速缓存容器,该工作负荷容器密码学操作请求包括对密码学密钥的请求。在220处,在工作负荷容器处接收来自密钥高速缓存容器的、与密码学密钥相关联的密钥句柄。
图3是请求密码学密钥的第二示例方法的流程图。方法300可以由在服务器上操作的密钥高速缓存容器来执行。在310处,在密钥高速缓存容器处接收来自工作负荷容器的工作负荷容器密码学操作请求。工作负荷容器密码学操作请求包括对密码学密钥的请求。在320处,与密码学密钥相关联的密钥句柄从密钥高速缓存容器被发送至第一工作负荷容器。
图4是请求密码学密钥的第三示例方法的流程图。方法400可以由密钥中介服务来执行。在410处,从密钥高速缓存容器接收对密码学密钥的请求。在420处,从密钥管理服务请求密码学密钥。在430处,从密钥管理服务接收密码学密钥。在440处,对密码学密钥进行加密。在450处,将经加密的密码学密钥发送至密钥高速缓存容器。
图5是示例容器部署方法的流程图。方法500可以由容器编排器来执行。在510处,将部署的多个工作负荷容器部署至一个或多个计算系统。每个工作负荷容器包括:应用;以及密码学调用适配器,该密码学调用适配器用于将由应用作出的应用密码学操作请求转换为要被发送至密钥高速缓存容器的工作负荷容器密码学操作请求。在520处,将部署的密钥高速缓存容器部署至一个或多个计算系统中的一个计算系统。密钥高速缓存容器用于:响应于接收到包括对密码学密钥的请求的第一工作负荷容器密码学操作请求而供应密码学密钥;将密码学密钥存储在安全飞地中;以及响应于接收到第二工作负荷容器密码学操作请求而利用密码学密钥对输入数据执行密码学操作,该第二工作负荷容器密码学操作请求包括与密码学密钥相关联的密钥句柄、输入数据、以及指示要由密钥高速缓存容器对输入执行的密码学操作的信息,密码学操作将利用第一密码学密钥,密码学操作将在安全飞地中执行。
本文描述的技术可以由各种计算系统中的任何一种计算系统来执行或在各种计算系统中的任何一种计算系统中实现,这些计算系统包括移动计算系统(例如,智能电话、手持计算机、平板计算机、膝上型计算机、便携式游戏控制台、二合一可转换计算机、便携式一体式计算机)、非移动计算系统(例如,台式计算机、服务器、工作站、固定游戏机控制台、机顶盒、智能电视、机架式计算解决方案(例如,刀片式、托盘式或橇板式计算系统))、以及嵌入式计算系统(例如,作为车辆、智能家用电器、消费电子产品或装备、制造装备的一部分的计算系统)。如本文所用,术语“计算系统”包括计算设备并且包括包含多个分立物理组件的系统。在一些实施例中,计算系统位于数据中心(诸如企业数据中心(例如,由公司拥有和运营并且通常位于公司场所的数据中心)、管理服务数据中心(例如,由代表公司的第三方管理的数据中心)、共同定位的数据中心(例如,其中数据中心基础设施由数据中心主机提供,并且公司提供并管理其自己的数据中心组件(服务器等)的数据中心)、云数据中心(例如,由托管公司应用和数据的云服务提供商运营的数据中心)、以及边缘数据中心(例如,通常具有比其他数据中心类型更小的空间占用、靠近于其服务的地理区域的数据中心)。
图6是可在其中实现本文中所描述的技术的示例性计算系统的框图。一般而言,图6中示出的组件可以与其他示出的组件进行通信,但是为了易于图示,并非所有的连接均被示出。计算系统600是包括第一处理器单元602和第二处理器单元604的多处理器系统,该第一处理器单元602和第二处理器单元604包括点对点(P-P)互连。处理器单元602的点对点(P-P)接口606经由点对点互连605耦合至处理器单元604的点对点接口607。应理解,图6中图示出的点对点互连中的任一者或全部可以替代地被实现为多分支总线,并且图6中图示出的任何或所有总线都可以由点对点互连代替。
处理器单元602和604包括多个处理器核。处理器单元602包括处理器核608,并且处理器单元604包括处理器核610。处理器核608和610可以以与下文结合图7所讨论的方式类似的方式或者以其他方式来执行计算机可执行指令。
处理器单元602和604进一步分别包括高速缓存存储器612和614。高速缓存存储器612和614可以存储由处理器单元602和604的一个或多个组件(诸如处理器核608和610)利用的数据(例如,指令)。高速缓存存储器612和614可以是计算系统600的存储器层级结构的部分。例如,高速缓存存储器612可以在本地存储也被存储在存储器616中的数据,以允许由处理器单元602更快地访问该数据。在一些实施例中,高速缓存存储器612和614可以包括多个高速缓存级,诸如第1级(L1)、第2级(L2)、第3级(L3)、第6级(L4)和/或其他高速缓存或高速缓存级,诸如末级高速缓存(LLC)。这些高速缓存存储器中的一些高速缓存存储器(例如,L2、L3、L4、LLC)可以在处理器单元中的多个核之间共享。存储器层级结构中的较高级别的高速缓存级(较小的和较快的高速缓存)中的一者或多者可以位于与处理器核相同的集成电路管芯上,并且较低高速缓存级(较大的和较慢的高速缓存)中的一者或多者可以位于与处理器核集成电路管芯物理地分离的集成电路管芯上。
虽然计算系统600被示出具有两个处理器单元,但是计算系统600可以包括任何数量的处理器单元。进一步地,处理器单元可以包括任何数量的处理器核。处理器单元可以采取各种形式,诸如中央处理单元(CPU)、图形处理单元(GPU)、通用GPU(GPGPU)、加速处理单元(APU)、现场可编程门阵列(FPGA)、神经网络处理单元(NPU)、数据处理器单元(DPU)、加速器(例如,图形加速器、数字信号处理器(DSP)、压缩加速器、人工智能(AI)加速器)、控制器或者其他类型的处理单元。因此,处理器单元可以被称为XPU(或xPU)。进一步地,处理器单元可以包括这些不同类型的处理单元中的一个或多个。在一些实施例中,计算系统包括具有多个核的一个处理器单元,并且在其他实施例中,计算系统包括具有单个核的单个处理器单元。如本文中所使用,术语“处理器单元”和“处理单元”可以指任何处理器、处理器核、组件、模块、引擎、电路系统或本文中所描述或所引用的任何其他处理元件。
在一些实施例中,计算系统600可以包括与计算系统中的另一个处理器单元异构或不对称的一个或多个处理器单元。系统中的处理单元之间在包括架构、微架构、热、功耗特性等的一系列指标度量方面可能存在各种差异。这些差异可将其自身有效显示为系统中的处理器单元之间的不对称性和异构性。
处理器单元602和604可以位于单个集成电路组件(诸如多芯片封装(MCP)或多芯片模块(MCM))中,或者它们可以位于分开的集成电路组件中。包括一个或多个处理器单元的集成电路组件可以包括附加组件,诸如嵌入式DRAM、堆叠式高带宽存储器(HBM)、共享高速缓存存储器(例如,L3、L4、LLC)、输入/输出(I/O)控制器、或存储器控制器。附加组件中的任何一者都可以位于与处理器单元相同的集成电路管芯上,或位于与包括处理器单元的集成电路管芯分开的一个或多个集成电路管芯上。在一些实施例中,这些分开的集成电路管芯可以被称为“小芯片”。在一些实施例中,在计算系统中的处理器单元之间存在异构性或不对称性的情况下,该异构性或不对称性可以存在于位于同一集成电路组件中的处理器单元之间。在其中集成电路组件包括多个集成电路管芯的实施例中,管芯之间的互连可以由封装衬底、一个或多个硅中介层(interposer)、嵌入封装衬底的一个或多个硅桥接器(诸如 嵌入式多管芯互连桥接器(EMIB))或上述各项的组合提供。
处理器单元602和604进一步包括存储器控制器逻辑(MC)620和622。如图6中所示,MC 620和622分别控制耦合至处理器单元602的存储器616和耦合至处理器单元604的存储器618。存储器616和618可以包括各种类型的易失性存储器(例如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))和/或非易失性存储器(例如,闪存、基于硫族化物的相变非易失性存储器),并且包括计算系统的存储器层级结构的一个或多个层。虽然MC 620和622被图示出为被集成到处理器单元602和604中,但在替代实施例中,MC可以在处理器单元的外部。
处理器单元602和604经由点对点互连632和634耦合至输入/输出(I/O)子系统630。点对点互连632将处理器单元602的点对点接口636与I/O子系统630的点对点接口638连接,并且点对点互连634将处理器单元604的点对点接口640与I/O子系统630的点对点接口642连接。输入/输出子系统630进一步包括用于将I/O子系统630耦合至图形引擎652的接口650。I/O子系统630和图形引擎652经由总线654耦合在一起。
输入/输出子系统630进一步经由接口662耦合至第一总线660。第一总线660可以是外围组件互连快捷(PCIe)总线或任何其他类型的总线。各种I/O设备664可以耦合至第一总线660。总线桥670可以将第一总线660耦合至第二总线680。在一些实施例中,第二总线680可以是低引脚数(LPC)总线。各种设备可以耦合至第二总线680,这些设备包括例如键盘/鼠标682、音频I/O设备688、以及用于存储计算机可执行指令(代码)692或数据的存储设备690(诸如硬盘驱动器、固态驱动器或另一存储设备)。代码692可包括用于执行本文中所描述的方法的计算机可执行指令。可以耦合至第二总线680的附加组件包括(多个)通信设备684,其可使用一种或多种通信标准(例如,IEEE 602.11标准及其补充)经由一个或多个有线或无线通信链路(例如,导线、电缆、以太网连接、射频(RF)信道、红外信道、Wi-Fi信道)提供计算系统600与一个或多个有线或无线网络686(例如,Wi-Fi、蜂窝或卫星网络)之间的通信。
在其中通信设备684支持无线通信的实施例中,通信设备684可以包括与一个或多个天线耦合的无线通信组件,以支持计算系统600与外部设备之间的通信。无线通信组件可以支持各种无线通信协议和技术,诸如近场通信(NFC)、IEEE 802.11(Wi-Fi)变体、WiMax、蓝牙、Zigbee、4G长期演进(LTE)、码分多址(CDMA)、通用移动电信系统(UMTS)和全球移动电信系统(GSM)以及5G宽带蜂窝技术。另外,无线调制解调器可以支持与一个或多个蜂窝网络的通信,以供在单个蜂窝网络内、在蜂窝网络之间、或在计算系统与公共交换电话网络(PSTN)之间进行数据和语音通信。
系统600可以包括可移除存储器,诸如闪存卡(例如,SD(安全数字)卡)、记忆棒、订户身份模块(SIM)卡。系统600中的存储器(包括高速缓存612和614、存储器616和618以及存储设备690)可以存储数据和/或计算机可执行指令以用于执行操作系统694和应用程序696(其可以在容器内部操作)。示例数据包括网页、文本消息、图像、声音文件、视频数据、以及容器镜像稳健,该数据由系统600经由一个或多个有线或无线网络686发送至一个或多个网络服务器或其他设备和/或从一个或多个网络服务器或其他设备接收、或者供系统600使用。系统600还可以具有对诸如外部硬驱动器或基于云的存储之类的外部存储器或存储(未示出)的访问权。
操作系统694可以控制图6中图示出的组件的分配和使用,并且支持一个或多个应用程序696或容器。应用程序696可以包括常见的计算系统应用(例如,电子邮件应用、日历、联系人管理器、网页浏览器、消息收发应用)以及其他计算应用。
计算系统600可以支持各种附加输入设备(诸如触摸屏、话筒、单视场相机、立体相机、轨迹球、触摸板、触控板、接近度传感器、光传感器、心电图(ECG)传感器、PPG(光体积描记图)传感器、皮肤电反应传感器)和一个或多个输出设备(诸如一个或多个扬声器或显示器)。其他可能的输入设备和输出设备包括压电型和其他触觉I/O设备。这些输入设备或输出设备中的任一者可以在系统600的内部、在系统600的外部、或者可以可移除地与系统600附接。外部输入设备和输出设备可以经由有线或无线连接与系统600进行通信。
另外,计算系统600可以提供一个或多个自然用户接口(NUI)。例如,操作系统694或应用696可以包括话音识别逻辑作为语音用户接口的部分,语音用户接口允许用户通过语音命令来操作系统600。进一步地,计算系统600可以包括允许用户经由身体、手部、或面部姿势而与计算系统600进行交互的输入设备和逻辑。
系统600可以进一步包括至少一个输入/输出端口,包括物理连接器(例如,USB、IEEE 1394(火线)、以太网、RS-232)、电源(例如,电池)、全球卫星导航系统(GNSS)接收器(例如,GPS接收器);陀螺仪;加速度计;和/或罗盘。GNSS接收器可以耦合至GNSS天线。计算系统600可以进一步包括耦合至一个或多个附加接收器、发射器和/或收发器以启用附加功能的一根或多根附加天线。
应当理解,图6图示出仅一个示例计算系统架构。可以使用基于替代架构的计算系统来实现本文中所描述的技术。例如,代替于位于分立的集成电路上的处理器602和604以及图形引擎652,计算系统可以包括包含多个处理器、图形引擎和附加组件的SoC(芯片上系统)集成电路。进一步地,计算系统可以经由与图6中示出的总线或点对点配置不同的总线或点对点配置来连接其构成组件。而且,图6中的所图示的组件不是必需的或全部包括的,因为在替代实施例中,可移除所示组件并添加其他组件。
图7是用于执行计算机可执行指令作为实现本文中所描述的技术的部分的示例处理器单元700的框图。处理器单元700可以是单线程核,或者可以是多线程核,体现在其每个处理器单元可包括多于一个硬件线程上下文(或“逻辑处理器”)。
图7还图示出耦合至处理器单元700的存储器710。存储器710可以是本文中所描述的任何存储器或者本领域技术人员已知的任何其他存储器。存储器710可以存储可由处理器核700执行的计算机可执行指令715(代码)。
处理器单元包括接收来自存储器710的指令的前端逻辑720。指令可以由一个或多个解码器730处理。解码器730可以生成微操作(诸如采用预定义格式的固定宽度的微操作)作为其输出,或者可生成反映原始代码指令的其他指令、微指令或控制信号。前端逻辑720进一步包括寄存器重命名逻辑735和调度逻辑740,寄存器重命名逻辑735和调度逻辑740一般分配资源并对与对指令进行转换以供执行相对应的操作进行排队。
处理器单元700进一步包括执行逻辑750,执行逻辑750包括一个或多个执行单元(EU)765-1至765-N。一些处理器单元实施例可以包括专用于特定功能或功能集合的数个执行单元。其他实施例可以包括仅一个执行单元或可以执行特定功能的一个执行单元。执行逻辑750执行由代码指令指定的操作。在完成对由代码指令指定的操作的执行之后,后端逻辑770使用引退逻辑775对指令进行引退。在一些实施例中,处理器单元700允许乱序执行但是要求指令的有序引退。引退逻辑775可以采取如本领域技术人员已知的各种形式(例如,重排序缓冲器等等)。
至少对于由解码器730生成的输出、由寄存器重命名逻辑735利用的硬件寄存器和表以及由执行逻辑750修改的任何寄存器(未示出)而言,处理器单元700在指令的执行期间被转换。
如本文所使用,术语“模块”是指可采用硬件组件或设备、在处理器单元上运行的软件或固件、或其组合来实现的用于执行符合本公开的一个或多个操作的逻辑。软件和固件可以被具体化为存储在非瞬态计算机可读存储介质上的指令和/或数据。如本文所使用,术语“电路系统”可以单独地或以任何组合包括非可编程(硬连线)电路系统、可编程电路系统(诸如处理器单元)、状态机电路系统和/或存储可由可编程电路系统执行的指令的固件。本文中所描述的模块可共同地或单独地被具体化为形成计算系统的部分的电路。由此,模块中的任一者可以被实现为电路系统。被称为被编程为用于执行方法的计算系统可以被编程为经由软件、硬件、固件或其组合来执行该方法。
任何所公开的方法(或其部分)均可以被实现为计算机可执行指令或计算机程序产品。此类指令可以使得能够执行计算机可执行指令的计算系统或一个或多个处理器单元来执行所公开的方法中的任一者。如本文所使用,术语“计算机”是指本文所描述或提及的任何计算系统或设备。由此,术语“计算机可执行指令”是指可由本文中所描述或提及的任何计算系统或设备执行的指令。
计算机可执行指令或计算机程序产品以及在所公开技术的实现期间创建和/或使用的任何数据可以被存储在一个或多个有形或非瞬态计算机可读存储介质上,该存储介质诸如易失性存储器(例如,DRAM、SRAM)、非易失性存储器(例如,闪存、基于硫族化物的相变非易失性存储器)、光介质盘(例如,DVD、CD)、以及磁存储(例如,磁带存储、硬盘驱动器)。计算机可读存储介质可以被包含在诸如固态驱动器、USB闪存驱动器和存储器模块之类的计算机可读存储设备中。替代地,本文公开的方法中的任何方法(或其一部分)可由包括非可编程电路的硬件组件执行。在一些实施例中,本文中的任何方法均可由执行存储在计算机可读存储介质上的计算机可执行指令的非可编程硬件组件和一个或多个处理单元的组合来执行。
计算机可执行指令可以是例如计算系统的操作系统、存储在计算系统本地的应用、或对于计算系统可访问的远程应用(例如,经由web浏览器)的部分。本文所述的方法中的任何方法均可以通过计算机可执行指令来执行,这些指令由单个计算系统或由在网络环境中操作的一个或多个联网的计算系统执行。计算机可执行指令和对计算机可执行指令的更新可以从远程服务器下载到计算系统。
进一步地,应理解,所公开的技术的实现不限于任何特定的计算机语言或程序。例如,所公开的技术可以由以C++、C#、Java、Perl、Python、JavaScript、Adobe Flash、C#、汇编语言、或任何其他编程语言编写的软件来实现。同样,所公开的技术不限于任何特定的计算机系统或任何特定类型的硬件。
此外,任何基于软件的实施例(包括例如用于使计算机执行所公开的方法中的任一者的计算机可执行指令)可以通过合适的通信手段被上传、下载或远程访问。此类合适的通信手段包括例如,因特网、万维网、内联网、电缆(包括光纤电缆)、磁通信、电磁通信(包括RF、微波、超声波和红外通信)、电子通信或其他此类通信手段。
如在本申请和权利要求书中所使用,由术语“和/或”连接的项列表可意指列出的项的任何组合。例如,短语“A、B和/或C”可意指A;B;C;A和B;A和C;B和C;或A、B和C。如在本申请和权利要求书中所使用,由术语“……的至少一个”连接的项列表可意指列出的项的任何组合。例如,短语“A、B或C中的至少一个”可意指A;B;C;A和B;A和C;B和C;或A、B和C。而且,如在本申请和权利要求书中所使用的,由术语“……中的一个或多个”联接的项列表可意指所列项的任何组合。例如,短语“A、B和C中的一个或多个”可意指A;B;C;A和B;A和C;B和C;或A、B和C。
不应将所公开的方法、设备和系统解释为以任何方式进行限制。替代地,本公开内容单独地以及以与彼此的各种组合和子组合针对各个公开的实施例的所有新颖的且非显而易见的特征和方面。所公开的方法、设备和系统既不限于任何特定方面或特征或其组合,所公开的实施例也不要求存在任何一个或多个特定优点或解决任何一个或多个特定的问题。
参考本公开的设备或方法在此提出的操作理论、科学原理或其他理论描述是出于更好地理解的目的而提供的,并且不旨在限制范围。所附权利要求中的设备和方法不限于以由此类操作理论描述的方式起作用的那些设备和方法。
虽然出于方便呈现起见而以特定的、连续的顺序描述了所公开的方法中的一些方法的操作,但是应理解,这种描述方式涵盖重新安排,除非本文中阐述的特定语言需要特定的排序。例如,在某些情况下,顺序地描述的操作可以被重新安排或同时执行。而且,出于简单起见,附图可能未示出所公开的方法可以与其他方法结合使用的各种方式。
以下示例涉及本文中公开的技术的附加实施例。
示例1是一种方法,该方法包括:将来自工作负荷容器的工作负荷容器密码学操作请求发送至密钥高速缓存容器,该工作负荷容器密码学操作请求包括对密码学密钥的请求;以及在工作负荷容器处从密钥高速缓存容器接收与密码学密钥相关联的密钥句柄。
示例2包括如示例1所述的方法,进一步包括:由在工作负荷容器内操作的应用生成工作负荷容器密码学操作请求;以及将密钥句柄提供至应用。
示例3包括如示例1所述的方法,进一步包括:由在工作负荷容器内操作的应用生成应用密码学操作请求;将该应用密码学操作请求转换为工作负荷容器密码学操作请求;以及将密钥句柄提供至应用。
示例4包括如示例1-3中的一项所述的方法,其中,工作负荷容器密码学操作请求是第一工作负荷容器密码学操作请求,该方法进一步包括:将来自工作负荷容器的第二工作负荷容器密码学操作请求发送至密钥高速缓存容器,该第二工作负荷容器密码学操作请求包括密钥句柄、指示要由密钥高速缓存容器执行的密码学操作的信息、以及输入数据;以及在工作负荷容器处从密钥高速缓存容器接收通过密钥高速缓存容器对输入数据执行密码学操作而生成的输出数据。
示例5包括如示例4所述的方法,进一步包括:由在工作负荷容器中操作的应用生成应用密码学操作请求,该应用密码学操作请求包括密钥句柄、指示要由密钥高速缓存容器执行的密码学操作的信息、以及输入数据;以及将应用密码学操作请求转换为工作负荷容器密码学操作请求。
示例6包括如示例4所述的方法,其中,密码学密钥是第一密码学密钥,工作负荷容器是第一工作负荷容器,密钥句柄是第一密钥句柄,并且工作负荷容器密码学操作请求是第一工作负荷容器密码学操作请求,该方法进一步包括:将来自第二工作负荷容器的第二工作负荷容器密码学操作请求发送至密钥高速缓存容器,该第二工作负荷容器密码学操作请求包括对第二密码学密钥的请求;以及在第二工作负荷容器处从密钥高速缓存容器接收与第二密码学密钥相关联的第二密钥句柄。
示例7包括如示例6所述的方法,其中,第一计算系统主控第一工作负荷容器和密钥高速缓存容器,并且第二计算系统主控第二工作负荷容器。
示例8包括如示例6所述的方法,其中,第一工作负荷容器、第二工作负荷容器和密钥高速缓存容器在计算系统上被主控。
示例9包括如示例1-8中任一项所述的方法,其中,对密码学密钥的请求包括对生成该密码学密钥的请求。
示例10包括如示例1-8中任一项所述的方法,其中,对密码学密钥的请求包括对加载该密码学密钥的请求。
示例11包括如示例1-10中任一项所述的方法,进一步包括:工作负荷容器在向密钥高速缓存容器发送工作负荷容器密码学操作请求之前对该密钥高速缓存容器进行认证。
示例12包括如示例1-11中任一项所述的方法,其中,容器运行时引擎提供工作负荷容器与操作系统或管理程序之间的接口。
示例13是一种方法,该方法包括:在密钥高速缓存容器处接收来自工作负荷容器的工作负荷容器密码学操作请求,该工作负荷容器密码学操作请求包括对密码学密钥的请求;以及将与密码学密钥相关联的密钥句柄从密钥高速缓存容器发送至工作负荷容器。
示例14包括如示例13所述的方法,进一步包括:从密钥中介服务请求密码学密钥;从密钥中介服务接收密码学密钥;以及以经加密的形式将密码学密钥存储在安全飞地中。
示例15包括如示例14所述的方法,其中,以经加密的形式将密码学密钥存储在安全飞地中利用主控密钥高速缓存容器的计算系统的处理单元的安全性相关指令。
示例16包括如示例14-15中任一项所述的方法,进一步包括:在安全飞地内生成飞地公钥-私钥对,该飞地公钥-私钥对包括飞地公钥和飞地私钥;以及向密钥中介服务提供可远程验证的经签名的声明以供进行证实,该可远程验证的经签名的声明包括飞地公钥的散列。
示例17包括如示例16所述的方法,其中,可远程验证的经签名的声明进一步包括一个或多个安全飞地属性。
示例18包括如示例14所述的方法,进一步包括:在安全飞地内生成飞地公钥-私钥对,该飞地公钥-私钥对包括飞地公钥和飞地私钥;生成飞地公钥的散列;以及向密钥中介服务提供可远程验证的经签名的声明和飞地公钥的散列以供进行证实,可远程验证的经签名的声明不包括飞地公钥也不包括飞地公钥的散列。
示例19包括如示例13-18中任一项所述的方法,进一步包括:在密钥高速缓存容器处接收来自工作负荷容器的工作负荷容器密码学操作请求,该工作负荷容器密码学操作请求包括密钥句柄、指示要由密钥高速缓存容器执行的密码学操作的信息、以及输入数据;在安全飞地内对输入数据执行密码学操作以生成输出数据,该密码学操作利用与密钥句柄相关联的密码学密钥,该密码学密钥被存储在所述安全飞地中;以及将输出数据从密钥高速缓存容器发送至工作负荷容器。
示例20包括如示例19所述的方法,其中,密码学密钥是第一密码学密钥,工作负荷容器是第一工作负荷容器,密钥句柄是第一密钥句柄,输入数据是第一输入数据,并且输出数据是第一输出数据,并且工作负荷容器密码学操作请求是第一工作负荷容器密码学操作请求,该方法进一步包括:在密钥高速缓存容器处从第二工作负荷容器接收第二密钥句柄、指示要由密钥高速缓存容器执行的第二密码学操作的信息、以及第二输入数据;在安全飞地内对第二输入数据执行第二密码学操作以生成第二输出数据,第二密码学操作利用与第二密钥句柄相关联并被存储在安全飞地中的第二密码学密钥;以及将第二输出数据从密钥高速缓存容器发送至第二工作负荷容器。
示例21包括如示例20所述的方法,其中,第二工作负荷容器和密钥高速缓存容器由计算系统主控。
示例22包括如示例20所述的方法,其中,密钥高速缓存容器在第一计算系统上被主控,并且第二工作负荷容器在第二计算系统上被主控。
示例23包括如示例19-22中任一项所述的方法,其中,执行密码学操作利用主控密钥高速缓存容器的计算系统的处理单元的安全性相关指令。
示例24包括如示例13-23中任一项所述的方法,其中,容器运行时引擎提供密钥高速缓存容器与操作系统或管理程序之间的接口。
示例25是一种方法,该方法包括:从密钥高速缓存容器接收对密码学密钥的请求;从密钥管理服务请求该密码学密钥;从密钥管理服务接收该密码学密钥;对密码学密钥进行加密以生成经加密的密码学密钥;以及将经加密的密码学密钥发送至密钥高速缓存容器。
示例26包括如示例25所述的方法,进一步包括:从密钥高速缓存容器接收飞地公钥-私钥对中的飞地公钥;用该飞地公钥对对称加密密钥进行加密以生成经加密的对称加密密钥;以及将经加密的对称加密密钥发送至密钥高速缓存容器;其中,对密码学密钥进行加密包括用对称加密密钥对该密码学密钥进行加密。
示例27包括如示例25所述的方法,进一步包括:从密钥高速缓存容器接收经签名的声明;执行对该经签名的声明的证实;以及如果证实成功,则将经加密的密码学密钥发送至密钥高速缓存容器。
示例28是一种方法,该方法包括:将多个工作负荷容器部署至一个或多个计算系统,这些工作负荷容器中的各个工作负荷容器包括应用以及密码学调用适配器,该密码学调用适配器用于将由应用作出的应用密码学操作请求转换为要被发送至密钥高速缓存容器的工作负荷容器密码学操作请求;以及将密钥高速缓存容器部署至一个或多个计算系统中的一个计算系统,该密钥高速缓存容器用于:响应于接收到包括对密码密钥的请求的第一工作负荷容器密码学操作请求而供应密码学密钥;将密码学密钥存储在安全飞地中;以及响应于接收到第二工作负荷容器密码学操作请求而利用密码学密钥对输入数据执行密码学操作,该第二工作负荷容器密码学操作请求包括与密码学密钥相关联的密钥句柄、输入数据、以及指示要由密钥高速缓存容器对输入数据执行的密码学操作的信息,密码学操作将利用密码学密钥,密码学操作将在安全飞地中执行。
示例29包括如示例28所述的方法,其中,多个工作负荷容器、以及密钥高速缓存容器被部署至计算系统。
示例30包括如示例28所述的方法,其中,工作负荷容器中的第一工作负荷容器被部署至第一计算系统,并且工作负荷容器中的至少第二工作负荷容器和密钥高速缓存容器被部署至第二计算系统。
示例31包括一种或多种非瞬态计算机可读存储介质,存储有计算机可执行指令,这些计算机可执行指令在被执行时使计算系统执行一种方法,该方法包括如示例1-30所述的方法中的任一方法。
示例32是一种设备,该设备包括用于执行如示例1-30所述的方法中的任一方法的一个或多个装置。
示例33是一种计算系统,该计算系统包括:一个或多个处理单元;以及一个或多个计算机可读存储介质,存储有指令,这些指令在被执行时使一个或多个处理单元执行如示例1-30所述的方法中的任一方法。
Claims (25)
1.一种方法,包括:
将来自工作负荷容器的工作负荷容器密码学操作请求发送至密钥高速缓存容器,所述工作负荷容器密码学操作请求包括对密码学密钥的请求;以及
在所述工作负荷容器处从所述密钥高速缓存容器接收与所述密码学密钥相关联的密钥句柄。
2.如权利要求1所述的方法,进一步包括:
由在所述工作负荷容器内操作的应用生成所述工作负荷容器密码学操作请求;以及
将所述密钥句柄提供至所述应用。
3.如权利要求1所述的方法,进一步包括:
由在所述工作负荷容器内操作的应用生成应用密码学操作请求;
将所述应用密码学操作请求转换为所述工作负荷容器密码学操作请求;以及
将所述密钥句柄提供至所述应用。
4.如权利要求1所述的方法,其中,所述工作负荷容器密码学操作请求是第一工作负荷容器密码学操作请求,所述方法进一步包括:
将来自所述工作负荷容器的第二工作负荷容器密码学操作请求发送至所述密钥高速缓存容器,所述第二工作负荷容器密码学操作请求包括所述密钥句柄、指示要由所述密钥高速缓存容器执行的密码学操作的信息、以及输入数据;以及
在所述工作负荷容器处从所述密钥高速缓存容器接收通过所述密钥高速缓存容器对所述输入数据执行所述密码学操作而生成的输出数据。
5.如权利要求4所述的方法,进一步包括:
由在所述工作负荷容器中操作的应用生成应用密码学操作请求,所述应用密码学操作请求包括所述密钥句柄、指示要由所述密钥高速缓存容器执行的所述密码学操作的所述信息、以及所述输入数据;以及
将所述应用密码学操作请求转换为所述工作负荷容器密码学操作请求。
6.如权利要求4所述的方法,其中,所述密码学密钥是第一密码学密钥,所述工作负荷容器是第一工作负荷容器,所述密钥句柄是第一密钥句柄,并且所述工作负荷容器密码学操作请求是第一工作负荷容器密码学操作请求,所述方法进一步包括:
将来自第二工作负荷容器的第二工作负荷容器密码学操作请求发送至所述密钥高速缓存容器,所述第二工作负荷容器密码学操作请求包括对第二密码学密钥的请求;以及
在所述第二工作负荷容器处从所述密钥高速缓存容器接收与所述第二密码学密钥相关联的第二密钥句柄。
7.如权利要求6所述的方法,其中,第一计算系统主控所述第一工作负荷容器和所述密钥高速缓存容器,并且第二计算系统主控所述第二工作负荷容器。
8.如权利要求6所述的方法,其中,所述第一工作负荷容器、所述第二工作负荷容器和所述密钥高速缓存容器在计算系统上被主控。
9.如权利要求1所述的方法,其中,对所述密码学密钥的请求包括对生成所述密码学密钥的请求。
10.如权利要求1所述的方法,其中,对所述密码学密钥的请求包括对加载所述密码学密钥的请求。
11.如权利要求1所述的方法,其中,容器运行时引擎提供所述工作负荷容器与操作系统或管理程序之间的接口。
12.一种方法,包括:
在密钥高速缓存容器处接收来自工作负荷容器的工作负荷容器密码学操作请求,所述工作负荷容器密码学操作请求包括对密码学密钥的请求;以及
将与所述密码学密钥相关联的密钥句柄从所述密钥高速缓存容器发送至所述工作负荷容器。
13.如权利要求12所述的方法,进一步包括:
从密钥中介服务请求所述密码学密钥;
从所述密钥中介服务接收所述密码学密钥;以及
以经加密的形式将所述密码学密钥存储在安全飞地中。
14.如权利要求13所述的方法,其中,以所述经加密的形式将所述密码学密钥存储在所述安全飞地中利用主控所述密钥高速缓存容器的计算系统的处理单元的安全性相关指令。
15.如权利要求13所述的方法,进一步包括:
在安全飞地内生成飞地公钥-私钥对,所述飞地公钥-私钥对包括飞地公钥和飞地私钥;以及
向所述密钥中介服务提供能远程验证的经签名的声明以供进行证实,所述能远程验证的经签名的声明包括所述飞地公钥的散列。
16.如权利要求15所述的方法,其中,所述能远程验证的经签名的声明进一步包括一个或多个安全飞地属性。
17.如权利要求13所述的方法,进一步包括:
在安全飞地内生成飞地公钥-私钥对,所述飞地公钥-私钥对包括飞地公钥和飞地私钥;
生成所述飞地公钥的散列;以及
向所述密钥中介服务提供能远程验证的经签名的声明和所述飞地公钥的所述散列以供进行证实,所述能远程验证的经签名的声明不包括所述飞地公钥也不包括所述飞地公钥的所述散列。
18.如权利要求12所述的方法,进一步包括:
在所述密钥高速缓存容器处接收来自所述工作负荷容器的工作负荷容器密码学操作请求,所述工作负荷容器密码学操作请求包括所述密钥句柄、指示要由所述密钥高速缓存容器执行的密码学操作的信息、以及输入数据;
在安全飞地内对所述输入数据执行所述密码学操作以生成输出数据,所述密码学操作利用与所述密钥句柄相关联的所述密码学密钥,所述密码学密钥被存储在所述安全飞地中;以及
将所述输出数据从所述密钥高速缓存容器发送至所述工作负荷容器。
19.如权利要求18所述的方法,其中,所述密码学密钥是第一密码学密钥,所述工作负荷容器是第一工作负荷容器,所述密钥句柄是第一密钥句柄,所述输入数据是第一输入数据,并且所述输出数据是第一输出数据,并且所述工作负荷容器密码学操作请求是第一工作负荷容器密码学操作请求,所述方法进一步包括:
在所述密钥高速缓存容器处从第二工作负荷容器接收第二密钥句柄、指示要由所述密钥高速缓存容器执行的第二密码学操作的信息、以及第二输入数据;
在所述安全飞地内对所述第二输入数据执行所述第二密码学操作以生成第二输出数据,所述第二密码学操作利用与所述第二密钥句柄相关联并被存储在所述安全飞地中的第二密码学密钥;以及
将所述第二输出数据从所述密钥高速缓存容器发送至所述第二工作负荷容器。
20.如权利要求19所述的方法,其中,所述第二工作负荷容器和所述密钥高速缓存容器由计算系统主控。
21.如权利要求19所述的方法,其中,所述密钥高速缓存容器在第一计算系统上被主控,并且所述第二工作负荷容器在第二计算系统上被主控。
22.如权利要求19所述的方法,其中,执行所述密码学操作利用主控所述密钥高速缓存容器的计算系统的处理单元的安全性相关指令。
23.如权利要求19所述的方法,其中,容器运行时引擎提供所述密钥高速缓存容器与操作系统或管理程序之间的接口。
24.一种或多种非瞬态计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时使计算系统执行如权利要求1-23中任一项所述的方法。
25.一种计算系统,包括:
一个或多个处理单元;
一个或多个计算机可读存储介质,存储有指令,所述指令在被执行时使得所述一个或多个处理单元执行如权利要求1-23中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/214,095 | 2021-03-26 | ||
US17/214,095 US20210218559A1 (en) | 2021-03-26 | 2021-03-26 | Secure key provisioning and hardware-assisted secure key storage and secure cryptographic function operation in container-based environments |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115130090A true CN115130090A (zh) | 2022-09-30 |
Family
ID=76760473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210205130.3A Pending CN115130090A (zh) | 2021-03-26 | 2022-03-02 | 基于容器的环境中的安全密钥供应和硬件辅助的安全密钥存储和安全密码学功能操作 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210218559A1 (zh) |
EP (1) | EP4064085A1 (zh) |
CN (1) | CN115130090A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302366A (zh) * | 2023-05-26 | 2023-06-23 | 阿里巴巴(中国)有限公司 | 面向终端开发的xr应用开发系统与方法、设备及介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113746634A (zh) * | 2021-08-06 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 一种数字证书管理方法、系统、装置及可读存储介质 |
US12056232B2 (en) * | 2021-08-27 | 2024-08-06 | EMC IP Holding Company LLC | Function-based service framework with trusted execution platform |
US20240243913A1 (en) * | 2021-11-23 | 2024-07-18 | Intel Corporation | Customers key protection for cloud native deployments |
US20230266984A1 (en) * | 2022-02-23 | 2023-08-24 | Red Hat, Inc. | Container-based operating system translation |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9635055B2 (en) * | 2015-01-28 | 2017-04-25 | defend7, Inc. | Encryption levels for secure application containers |
US20160292431A1 (en) * | 2015-04-02 | 2016-10-06 | defend7, Inc. | Management of encryption keys in an application container environment |
US9942042B1 (en) * | 2016-03-18 | 2018-04-10 | EMC IP Holding Company LLC | Key containers for securely asserting user authentication |
US10686769B2 (en) * | 2017-08-07 | 2020-06-16 | Fortanix, Inc. | Secure key caching client |
US10615968B1 (en) * | 2018-02-02 | 2020-04-07 | EMC IP Holding Company LLC | Shuffling cryptographic keys stored in clouds of a multi-cloud environment |
US11755753B2 (en) * | 2018-06-13 | 2023-09-12 | Kyndryl, Inc. | Mechanism to enable secure memory sharing between enclaves and I/O adapters |
US11343247B1 (en) * | 2019-08-30 | 2022-05-24 | Equinix, Inc. | Local delegation of remote key management service |
-
2021
- 2021-03-26 US US17/214,095 patent/US20210218559A1/en active Pending
-
2022
- 2022-01-27 EP EP22153672.5A patent/EP4064085A1/en active Pending
- 2022-03-02 CN CN202210205130.3A patent/CN115130090A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302366A (zh) * | 2023-05-26 | 2023-06-23 | 阿里巴巴(中国)有限公司 | 面向终端开发的xr应用开发系统与方法、设备及介质 |
CN116302366B (zh) * | 2023-05-26 | 2023-10-20 | 阿里巴巴(中国)有限公司 | 面向终端开发的xr应用开发系统与方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
EP4064085A1 (en) | 2022-09-28 |
US20210218559A1 (en) | 2021-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10601596B2 (en) | Techniques to secure computation data in a computing environment | |
US11687264B2 (en) | Technologies for accelerator interface | |
EP4064085A1 (en) | Secure key provisioning and hardware-assisted secure key storage and secure cryptographic function operation in container-based environments | |
US12033005B2 (en) | Disaggregated computing for distributed confidential computing environment | |
US11757647B2 (en) | Key protection for computing platform | |
US8924723B2 (en) | Managing security for computer services | |
US11423179B2 (en) | Integrated-chip-based data processing method, computing device, and storage media | |
US20150220709A1 (en) | Security-enhanced device based on virtualization and the method thereof | |
US11599378B2 (en) | Data encryption key management system | |
US11748520B2 (en) | Protection of a secured application in a cluster | |
US20220391494A1 (en) | Sharing container data inside a tenant's pod under different trusted execution environments (tees) | |
CN116257320B (zh) | 一种基于dpu虚拟化配置管理方法、装置、设备及介质 | |
CN117546165A (zh) | 安全加密的通信机制 | |
US20150288777A1 (en) | Startup of message-passing-interface (mpi) based applications in a heterogeneous environment | |
US11968293B2 (en) | Private key management | |
US20220103358A1 (en) | Cloud key access mechanism | |
WO2023230831A1 (en) | Transparent transportation in cloud-to-pc extension framework | |
US11563579B2 (en) | Token-based zero-touch enrollment for provisioning edge computing applications | |
US20220245252A1 (en) | Seamless firmware update mechanism | |
US20230188341A1 (en) | Cryptographic operations in edge computing networks | |
US20220014917A1 (en) | Wireless Network Authentication by a Trusted Virtual Machine | |
US20240118914A1 (en) | Accelerated virtual passthrough i/o device performance | |
WO2024040509A1 (en) | Implementation of device seamless update with pre-authorization policy in trusted execution environment | |
CN116186709A (zh) | 基于虚拟化VirtIO技术卸载UEFI安全启动的方法、装置及介质 |
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 |