CN112470425A - 密钥管理***和方法 - Google Patents

密钥管理***和方法 Download PDF

Info

Publication number
CN112470425A
CN112470425A CN201980029384.0A CN201980029384A CN112470425A CN 112470425 A CN112470425 A CN 112470425A CN 201980029384 A CN201980029384 A CN 201980029384A CN 112470425 A CN112470425 A CN 112470425A
Authority
CN
China
Prior art keywords
cryptographic
key
key management
request
hsm
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
CN201980029384.0A
Other languages
English (en)
Other versions
CN112470425B (zh
Inventor
A·J·鲁迪西斯
S·M·皮沙罗迪
J·K·比尔
B·T·法利
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN112470425A publication Critical patent/CN112470425A/zh
Application granted granted Critical
Publication of CN112470425B publication Critical patent/CN112470425B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/083Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols

Landscapes

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

Abstract

一种用于管理密码密钥的基于网络的服务,诸如密钥管理服务(“KMS”),提供web服务应用编程接口(“API”)。由所述服务管理的密码密钥可存储在一个或多个连接了网络的密码装置(诸如连接了网络的硬件安全模块(“HSM”))中。所述密钥管理服务维护与所述密码密钥相关联的元数据。当所述密钥管理服务接收到请求时,所述密钥管理服务使用与所述请求一起提供的标识符来标识与用来满足所述请求的密码密钥相关联的元数据。所述密钥管理服务使用所述元数据来标识包含所述密码密钥的密码装置。所述密钥管理服务生成用于满足所述请求的命令集,使得所述命令与由所标识的密码装置实现的协议兼容,并且所述命令集被发送到所标识的密码装置。

Description

密钥管理***和方法
相关申请的交叉引用
本申请要求2018年5月2日提交的名称为”KEY MANAGEMENT SYSTEM AND METHOD“的美国专利申请号15/969,695的权益,所述申请的公开内容以引用的方式整体并入本文。
背景技术
数据安全是计算基础设施的重要方面。提供数据安全的一种方式是通过密码术。在各种环境中,可对数据进行加密或密码签名以对数据进行认证和保护。通常,当执行密码操作时,使用密码密钥。实体使用特定密码密钥的能力允许实体访问用密码密钥加密的明文数据并且借助数字签名证明其使用特定密码密钥的能力。因此,控制对密码密钥的访问是重要问题,服务提供商和其他人在上面花费大量精力和资源以确保数据完整性。
附图说明
将参考附图描述各种技术,在附图中:
图1示出在一个实施方案中的管理存储在硬件安全模块中的密码密钥的***的示例;
图2示出在一个实施方案中的管理存储在HSM中的密钥的密钥管理服务器的示例;
图3示出在一个实施方案中的通过客户网络中的路由器与HSM通信的密钥管理服务器的示例;
图4示出在一个实施方案中的HSM代理服务的示例;
图5示出在一个实施方案中的由于被客户端计算机***、密钥管理服务器和硬件安全模块执行而使用存储在HSM上的密码密钥执行密码操作的过程的示例;
图6示出在一个实施方案中的由于被密钥管理服务器执行而建立到HSM集群的逻辑附接的过程的示例;
图7示出在一个实施方案中的由于被密钥管理服务器执行而在HSM上生成密码密钥并注册密钥以供密钥管理服务使用的过程的示例;
图8示出在一个实施方案中的连接到密钥管理服务的HSM的一组允许状态转变的示例;并且
图9示出在其中可实现各种实施方案的***。
具体实施方式
本文档描述一种提供用于管理密码密钥的基于网络的服务的***。在一个实施方案中,密钥管理服务(“KMS”)提供用于管理密钥的web服务应用编程接口(“API”)。在一个实施方案中,密码密钥存储在一个或多个连接了网络的密码装置(诸如包含防篡改存储器的连接了网络的硬件安全模块(“HSM”))中。在一个实施方案中,存储在密码装置内的密码密钥是不可导出的,因为它们可能无法以非加密形式从密码装置中提取。在一个实施方案中,密钥管理服务维护描述由服务管理的密码密钥的元数据。在一个实施方案中,当密钥管理服务接收到请求时,密钥管理服务使用与请求一起提供的标识符来标识与用来满足请求的密码密钥相关联的元数据。在一个实施方案中,使用元数据,密钥管理服务标识包含密码密钥的密码装置。在一个实施方案中,密钥管理服务生成用于满足请求的命令集,使得命令与由所标识的密码装置实现的协议兼容。在一个实施方案中,密钥管理服务将通过web服务API提交的请求转换成公开密钥密码术标准(“PKCS”)#11兼容的命令集,然后将其发送到所标识的密码装置。
在一个实施方案中,密钥管理服务允许管理并使用存储在不受密钥管理服务控制的密码装置中的密码密钥。在一个实施方案中,一组连接了网络的HSM包含属于客户网络的密码密钥。在一个实施方案中,客户网络可以是由客户操作的虚拟私有网络(“VPN”)或企业网络。在一个实施方案中,用于客户的企业的密码密钥存储在HSM上。在一个实施方案中,密钥管理服务从客户企业中的用户接收执行密码操作的请求,标识能够满足请求的密码装置(诸如HSM),并且然后通过向密码装置发送与所标识的装置兼容的命令集来满足请求。在各种实施方案中,密码装置可连接到由客户控制的虚拟网络或由密钥管理服务的操作者控制的网络。
在一个实施方案中,通过将密码装置与密钥管理服务分开,向客户提供了对密码密钥的增加的控制。在一个实施方案中,这种控制可包括当密码装置物理上位于客户企业内时对密码密钥的物理控制。在一个实施方案中,密钥管理服务允许客户使用包括来自不同供应商的HSM的多种密码装置以及实现不同通信协议和命令协议的装置。在一个实施方案中,密钥管理服务维护允许密钥管理服务针对密码密钥所在的密码装置生成适当命令的元数据。
如本领域技术人员根据本公开将了解的,某些实施方案可以能够实现某些优点,包括以下各项中的一些或全部:(1)通过提供标准的基于web的API而使得更容易使用不同的HSM,所述标准的基于web的API可借助密钥管理服务管理存储在连接了网络的HSM中的密钥,(2)通过避免将加密版本的密钥导出到密钥管理服务来提供密码密钥上的安全性,以及(3)通过允许管理并使用存储在位于外部网络(诸如客户数据中心或客户控制的虚拟网络)中的HSM中的密码密钥来提供HSM安全性。
图1示出在一个实施方案中的管理存储在硬件安全模块中的密码密钥的***100的示例。在一个实施方案中,密钥管理服务102是允许客户代表客户创建、删除、轮换并使用密码密钥的受管理服务。在一个实施方案中,客户可请求将加密密钥导入到HSM中并且由密钥管理服务器管理加密密钥。在一个实施方案中,客户可请求将存储在HSM中的密钥以加密形式导入到密钥管理服务器中并对密钥进行管理。在一个实施方案中,使用密钥管理服务102,客户能够通过定义密钥管理策略来控制可使用密钥的方式和时间。在一个实施方案中,由计算资源服务提供商提供的各种资源可与密钥管理服务交互以帮助保护存储在那些服务内的数据。在一个实施方案中,密钥管理服务是具有一个或多个处理器和包含可执行指令的存储器的计算机***,所述可执行指令由于被一个或多个处理器执行而致使计算机***执行各种密钥管理功能,诸如密钥轮换、密钥生成、加密、解密、数字签名生成和验证、密钥删除、以及密钥使用记录。在一个实施方案中,计算机***可以是计算机服务器、虚拟服务器、服务器集群、容器服务、计算运行时或指令处理设备。
在一个实施方案中,密钥管理服务102由用户104通过客户端计算机***106访问。在一个实施方案中,客户端计算机***106是个人计算机***、服务器计算机***、虚拟计算机***、手持式装置、蜂窝电话、膝上型计算机或计算设备。在一个实施方案中,客户端计算机***由也运行密钥管理服务102的服务提供商托管。例如,在一个实施方案中,客户端计算机***是在服务提供商的硬件上托管的虚拟计算机***,其中虚拟计算机***由对应的客户以编程方式远程管理。在一个实施方案中,客户端计算机***106包括一个或多个处理器和包含指令的存储器,所述指令由于被一个或多个处理器执行而致使客户端计算机***通过计算机网络发送请求并从密钥管理服务102接收结果。在一个实施方案中,由客户端计算机***106提交的请求是web服务请求。
在一个实施方案中,密钥管理服务102从客户端计算机***106接收执行密码操作的请求。在一个实施方案中,请求包括允许密钥管理服务102标识用来满足请求的密码密钥的信息。在一个实施方案中,信息是与密码密钥相关联的句柄、名称、或令牌或其他标识符。在一个实施方案中,标识符由请求的参数间接标识。例如,在一个实施方案中,对加密数据的请求可指定可用来标识适合于处理请求的密码装置的密码密钥或密码算法。在一个实施方案中,密钥管理服务102标识与信息相关联的密码密钥,并且连接到数据库108以检索与所标识的密码密钥相关联的元数据集110。在一个实施方案中,数据库108可以是关系数据库、数据存储区、数据结构、键值存储区或包含元数据的存储器。数据库108可以是在托管密钥管理服务102的计算机***中的存储器,或者是可通过计算机网络或外部连接来访问的在托管密钥管理服务102的计算机***外部的存储装置。
在一个实施方案中,元数据110包括能够由密钥管理服务102用来标识上面存储有密码密钥的密码装置的信息。在一个实施方案中,信息包括以下各项中的一者或多者:网络地址、端口号、统一资源定位符(“URL”)以及与上面存储有密码密钥的密码装置相关联的标识符。在一个实施方案中,密码装置是HSM、密码处理器、可信平台模块(TPM)、防篡改存储器、不可导出的存储器装置或受保护的存储器。在一个实施方案中,信息描述与上面存储有密码密钥的密码装置相关联的接口协议。在一个实施方案中,信息描述能够由密钥管理服务102用来访问密码装置的凭证。在一个实施方案中,元数据包括指定用于密码密钥的密钥管理策略(诸如密钥轮换策略、密钥长度策略和对密码密钥的使用限制)的信息。在一个实施方案中,元数据包括标识密码装置上的密码密钥的标识符、名称或句柄。
在一个实施方案中,密钥管理服务102使用元数据来确定是否允许用户104使用与所请求的密码操作相关联的密码密钥。在一个实施方案中,如果允许用户104使用密码密钥,则密钥管理服务102将请求转换成与上面存储有密码密钥的密码装置兼容的命令集。在一个实施方案中,请求是以web请求的形式提交,并且命令集是与上面存储有密码密钥的HSM兼容的PKCS11命令集。在一个实施方案中,使用从元数据提取的地址信息和凭证,密钥管理服务102将命令集和标识密码装置上的密码密钥的标识符提交到上面存储有密码密钥的密码装置。在一个实施方案中,密码装置使用所标识的密钥执行密码操作,并且将结果返回到密钥管理服务102。
在一个实施方案中,密码装置是被布置为HSM集群112的多个HSM。在一个实施方案中,HSM集群包含跨多个HSM复制的一组密码密钥。在一个实施方案中,负载平衡器跨多个HSM分发执行密码操作的请求,从而允许增加密码操作的吞吐量并增加在HSM发生故障的情况下的可靠性。在一个实施方案中,HSM集群112包括第一HSM 114、第二HSM 116和第三HSM118。在一个实施方案中,负载平衡器是将命令选路发送到集群中的单独HSM的硬件负载平衡器。在一个实施方案中,负载平衡器是内置到密钥管理服务器中的软件负载平衡器,所述软件负载平衡器至少部分地基于集群中的单独HSM的处理可用性来选择HSM。
在一个实施方案中,密码装置可远离密钥管理服务定位,以有利于客户的各种网络拓扑或物理安全需求。在一个实施方案中,密码装置位于与密钥管理服务相同的网络上。在一个实施方案中,密码装置位于客户数据中心内,并且密钥管理服务借助连接到客户数据中心中的网络的隧道或网关来访问密码装置。在一个实施方案中,密码装置连接到客户虚拟网络,密钥管理服务由计算资源服务提供商托管,并且密钥管理服务对客户虚拟网络进行配置以允许密钥管理服务访问密码装置。通过允许客户维护在客户的控制下连接到网络的密码装置上的密钥,客户能够在各种实施方案中对存储在那些装置上的密码密钥施加更大的物理控制。在一个实施方案中,存储在装置中的密码密钥不以明文或加密形式提供给密钥管理服务。在一个实施方案中,密钥管理服务不随请求向HSM集群提供加密版本的密码密钥。
图2示出在一个实施方案中的包括密钥管理服务器的***200的示例,所述密钥管理服务器管理存储在HSM中的密钥。在一个实施方案中,密钥管理服务器202通过提供网络可访问的应用编程接口来向用户204提供密钥管理服务。在一个实施方案中,密钥管理服务器可在计算机***(诸如图9所描述的web服务器)上实现。在一个实施方案中,用户204通过客户端计算机***206访问密钥管理服务器202。在一个实施方案中,在客户端计算机***206上托管的应用程序生成执行密码操作的请求。在一个实施方案中,请求包括密钥标识符。在一个实施方案中,通过web服务接口(诸如代表性状态传输(“REST”)接口、简单对象访问协议(“SOAP”)接口或可扩展标记语言(“XML”)接口)将请求提交到密钥管理服务器202。
在一个实施方案中,在由密钥管理服务器202托管的密钥管理服务208处接收包括密钥标识符的请求。在一个实施方案中,密钥管理服务208是包括存储在密钥管理服务器202上的存储器中的可执行指令的软件部件。在一个实施方案中,在本文档中,密钥管理服务器202由于执行与密钥管理服务208相关联的可执行指令而执行归属于密钥管理服务208的动作。在一个实施方案中,密钥管理服务208查询数据库210以便检索与所提供的密钥标识符相关联的元数据212。在一个实施方案中,元数据包括密钥句柄,所述密钥句柄由于被提供给在元数据212中标识的HSM而标识HSM上的特定密钥。
在一个实施方案中,密钥管理服务208确认用户204被授权执行所请求的操作,并且将请求连同密钥句柄一起提交到与HSM 216通信的HSM代理214。在一个实施方案中,HSM代理214将请求转换成与HSM 216兼容的协议。在一个实施方案中,密钥管理服务器包括多个HSM代理,并且至少部分地基于密钥元数据212来选择特定代理。在一个实施方案中,HSM代理从密钥管理服务208接收标识特定HSM的信息,并且使用元数据212中的信息来标识通向特定HSM的网络路径。在一个实施方案中,HSM 216连接到与密钥管理服务器202相同的网络,并且请求和结果仅通过共享网络在HSM代理214与密钥管理服务器202之间传输。
在一个实施方案中,HSM代理214将已转换的请求发送到HSM216上的HSM服务218。在一个实施方案中,作为满足请求的先决条件,HSM服务218将密钥管理服务器202认证为授权用户。在一个实施方案中,HSM服务218是在HSM 216的密码处理器上运行的可执行指令集。在一个实施方案中,HSM服务218从HSM 216上的受保护的存储器220检索密钥并执行所请求的密码操作。在一个实施方案中,HSM服务218将结果返回到HSM代理214,并且密钥管理服务器202将结果中继回到客户端计算机***206。
图3示出在一个实施方案中的通过客户网络中的路由器与HSM通信的密钥管理***300的示例。在一个实施方案中,密钥管理服务器302通过提供网络可访问的应用编程接口来向用户304提供密钥管理服务。在一个实施方案中,用户304通过客户端计算机***306访问密钥管理服务器302。在一个实施方案中,由客户端计算机***306托管的应用程序生成执行密码操作的请求。在一个实施方案中,请求包括密钥标识符。在一个实施方案中,通过web服务接口(诸如代表性状态传输(“REST”)接口或上面提到的其他web接口)将请求提交到密钥管理服务器302。
在一个实施方案中,在由密钥管理服务器302托管的密钥管理服务308处接收包括密钥标识符的请求。在一个实施方案中,密钥管理服务308是包括存储在密钥管理服务器302上的存储器中的可执行指令的软件部件。在一个实施方案中,在本文档中,密钥管理服务器302由于执行与密钥管理服务308相关联的可执行指令而执行归属于密钥管理服务308的动作。在一个实施方案中,密钥管理服务308查询数据库310以便检索与所提供的密钥标识符相关联的元数据312。在一个实施方案中,元数据包括密钥句柄,所述密钥句柄由于被提供给在元数据312中标识的HSM而标识HSM上的特定密钥。
在一个实施方案中,密钥管理服务308确认用户304被授权执行所请求的操作,并且将请求连同密钥句柄一起提交到与HSM 316通信的HSM代理314。在一个实施方案中,HSM代理314将请求转换成与HSM 316兼容的协议。在一个实施方案中,通过使用等效命令表生成新命令并根据新协议的语法生成新命令的参数来转换请求。在一个实施方案中,转换可产生与原始命令等效的多个命令。在一个实施方案中,密钥管理服务器包括多个HSM代理,并且至少部分地基于密钥元数据312来选择特定代理。在一个实施方案中,HSM代理从密钥管理服务308接收标识特定HSM的信息,并且使用元数据312中的信息来标识通向特定HSM的网络路径。
在一个实施方案中,HSM代理314将已转换的请求发送到HSM 316上的HSM服务320。在一个实施方案中,作为满足请求的先决条件,HSM服务320将密钥管理服务器302认证为授权用户。在一个实施方案中,HSM服务320是在HSM 316的密码处理器上运行的可执行指令集。在一个实施方案中,HSM服务320从HSM 316上的受保护的存储器322检索密钥并执行所请求的密码操作。在一个实施方案中,HSM服务320将结果返回到HSM代理314,并且密钥管理服务器302将结果中继回到客户端计算机***306。
在一个实施方案中,为了向用户提供另外的安全性和控制,HSM位于与密钥管理服务器302的网络不同的网络上。在一个实施方案中,不同的网络可以是不同的子网、不同的虚拟网络或不同的网络分段。在一个实施方案中,HSM 316连接到属于客户的网络,诸如由客户控制并且通常不可由密钥管理服务器302访问的网络和客户数据中心或虚拟网络。在一个实施方案中,虚拟网络路由器318设置在HSM 316的网络中。在一个实施方案中,虚拟网络路由器318提供密钥管理服务器可访问的端点,并且在HSM 316与密钥管理服务器302之间路由发送请求和结果。在一个实施方案中,虚拟网络路由器318可代替HSM 316与密钥管理服务器302之间的物理网络路由器、网关或网络隧道。
图4示出在一个实施方案中的HSM代理服务的体系结构图400。在一个实施方案中,与密钥管理服务相关联的一组客户端402能够访问HSM代理服务实例404。在一个实施方案中,HSM代理服务实例404提供密钥管理服务可访问的应用编程接口、web服务接口或服务接口。在一个实施方案中,HSM代理服务实例404包括接口连接到驱动程序集的代理服务406。在一个实施方案中,驱动程序集包括第一驱动程序408、第二驱动程序410和第三驱动程序412。在一个实施方案中,驱动程序集中的每个驱动程序提供到代理服务406的接口,所述接口允许与特定HSM集群通信。在一个实施方案中,由驱动程序集中的每个驱动程序提供的接口是PKCS11、Microsoft密码术API(“CAPI”)或JCE接口。在一个实施方案中,驱动程序集中的每个驱动程序通过HSM集群驱动程序/负载平衡器与其关联的HSM集群通信。在一个实施方案中,HSM代理服务实例404包括第一集群驱动程序414、第二集群驱动程序416和第三集群驱动程序418。在一个实施方案中,每个集群驱动程序将来自驱动程序集的输出转换成与特定HSM集群兼容的格式和协议。在一个实施方案中,集群驱动程序通过网络接口与其特定的HSM集群通信。在一个实施方案中,集群驱动程序包括负载平衡功能,所述负载平衡功能跨HSM集群中的单独HSM分发密码请求。
在一个实施方案中,第一集群驱动程序414跨组织成HSM集群420的一组HSM分发密码命令。在一个实施方案中,可以轮询方案或随机方案分发密码命令。在一个实施方案中,HSM集群420包括第一HSM 422、第二HSM 424和第三HSM 426。在一个实施方案中,特定的集群驱动程序可与单独的HSM、HSM集群、密码处理器或密码装置接口连接。在一个实施方案中,集群驱动程序实现特定于HSM供应商的协议。在一个实施方案中,HSM代理服务实例404可包括多种驱动程序和集群驱动程序,它们组合起来能够将命令从密钥管理服务所产生的标准格式转换成HSM所理解的供应商特定格式和协议。在一个实施方案中,这在实现密钥管理***时提供增加的灵活性。
在一个实施方案中,HSM代理被实现为Java服务、Go服务或Python服务。在一个实施方案中,每个HSM代理服务实例维护包括其关联的HSM集群的地址信息的信息。在一个实施方案中,信息包括用于HSM集群的公开密钥。
图5示出在一个实施方案中的由于被客户端计算机***、密钥管理服务器和硬件安全模块执行而使用存储在HSM上的密码密钥执行密码操作的过程500的示例。在一个实施方案中,过程在框502处开始,其中客户端计算机***生成执行密码操作的请求。在一个实施方案中,请求可以是加密明文数据的请求、解密密文的请求、生成数字签名的请求、轮换密码密钥的请求、生成消息认证码的请求、验证数字签名的请求或其他操作。在一个实施方案中,请求包括标识特定密码密钥的信息。在一个实施方案中,信息是标识符、句柄或令牌,但不包含加密或明文形式的密码密钥本身。在一个实施方案中,信息是与密码密钥相关联的标识符,所述标识符允许密钥管理服务标识执行所请求的操作所需要的特定密码密钥。在一个实施方案中,在框504处,客户端计算机***将请求和与密码密钥相关联的标识信息传输到密钥管理服务器。
在一个实施方案中,在框506处,密钥管理服务器接收请求并使用在请求中提供的信息来标识密码密钥。在一个实施方案中,在框508处,密钥管理服务器访问数据存储区并检索与密码密钥相关联的元数据。在一个实施方案中,元数据可包括标识包含密码密钥的一组密码装置(诸如HSM)的信息。在一个实施方案中,元数据包括网络地址信息、服务URL、端口号或允许密钥管理服务器访问上面存储有密码密钥的硬件安全模块的其他信息。在一个实施方案中,元数据包括用来访问上面存储有密码密钥的密码装置的凭证。在一个实施方案中,元数据包括向密码装置标识密码密钥的句柄、令牌或相关联的标识符。
在一个实施方案中,在框510处,密钥管理服务器使用元数据来标识存储密码密钥的特定HSM。在一个实施方案中,在框512处,密钥管理服务器检查请求并确定请求者是否被授权执行所请求的密码操作。在一个实施方案中,密钥管理服务器还可检查元数据中的凭证以确定凭证是否允许将请求提交到密码装置。在一个实施方案中,如果请求未被密钥管理服务器或硬件安全模块授权,则将错误消息返回到客户端计算机***。在一个实施方案中,如果请求被密钥管理服务器和硬件安全模块授权,则执行前进到框514。
在一个实施方案中,在框514处,密钥管理服务器从包含密码密钥的一组HSM中选择特定HSM。在一个实施方案中,元数据标识上面存储有密码密钥的多个HSM,并且密钥管理服务器使用负载平衡器选择多个HSM中的一个来满足请求。在一个实施方案中,至少部分地基于与密码密钥相关联的元数据来选择特定HSM。在一个实施方案中,密钥管理服务器生成与所选择的HSM兼容的命令集。在一个实施方案中,在框516处,将命令集和从元数据确定的密钥标识符提交到所选择的HSM。在一个实施方案中,密钥管理服务器向HSM提供凭证以授权命令集的执行。
在一个实施方案中,在框518处,HSM接收命令集。在一个实施方案中,HSM检索与所提供的标识符相关联的密码密钥并执行命令集来满足请求。在一个实施方案中,在框520处,硬件安全模块从密码操作生成一组结果。在一个实施方案中,操作是加密操作,并且结果是从与命令集一起提供的明文产生的密文。在一个实施方案中,操作是解密操作,并且结果是从与命令集一起提供的密文产生的明文。
在一个实施方案中,在框522处,密钥管理服务器从HSM接收结果并将结果中继到客户端计算机***。在一个实施方案中,在框524处,客户端计算机***从密钥管理服务器接收结果,从而满足在框502处提交的请求。
图6示出在一个实施方案中的由于被密钥管理服务器执行而建立到HSM集群的逻辑附接的过程600的示例。在一个实施方案中,到HSM集群的逻辑附接建立密钥管理服务器与HSM集群通信的能力,并且致使HSM使用存储在HSM集群上的密码密钥执行密码操作。在一个实施方案中,逻辑附接建立密钥管理服务器与HSM之间的逻辑网络连接(诸如TCP连接),并且确认密钥管理服务器对在HSM上执行密码操作的授权。
在一个实施方案中,过程在框602处开始,其中密钥管理服务器接收附接HSM集群的请求。在一个实施方案中,请求是对网络可访问的API的调用,诸如Web请求。在一个实施方案中,请求可指定要附接到密钥管理服务器的特定HSM、密码处理器或密码装置。在一个实施方案中,在框604处,密钥管理服务器获取针对HSM集群的访问凭证。在一个实施方案中,密钥管理服务器从密钥管理服务器所维护的访问凭证数据库检索访问凭证。在一个实施方案中,访问HSM集群的凭证与附接集群的请求包括在一起。在一个实施方案中,凭证是密码密钥、私有密码密钥、用户名和口令或签名令牌。
在一个实施方案中,在框606处,密钥管理服务器对网络路由进行配置以使得密钥管理服务器可访问HSM集群。在一个实施方案中,可通过对虚拟路由器进行配置(例如,通过向路由表添加一个或多个条目)以允许访问客户虚拟网络来对网络路由进行配置。在一个实施方案中,在框608处,密钥管理服务器使用与附接请求一起提供的凭证集连接到HSM集群。在一个实施方案中,在密钥管理服务器被HSM集群授权之后,在框610处,密钥管理服务器验证HSM已授予必要权限。在一个实施方案中,密钥管理服务器将凭证轮换成只有密钥管理服务器知道的新凭证集。在一个实施方案中,通过生成新凭证集并由HSM使用现有凭证对更改进行授权来轮换凭证。在一个实施方案中,在框612处,将已更新的凭证以及网络地址和路由信息存储在数据库中以供密钥管理服务器稍后使用。在一个实施方案中,密钥管理服务器周期性地将凭证集轮换成另外的新凭证集。
图7示出在一个实施方案中的由于被密钥管理服务器执行而在HSM上生成密码密钥并注册密钥以供密钥管理服务使用的过程700的示例。在一个实施方案中,在框702处,密钥管理服务器接收创建密钥和密钥管理服务器可访问的HSM的命令。在一个实施方案中,命令通过提供标识符来指定要在上面创建密码密钥的HSM、密码装置或HSM集群。在一个实施方案中,在框704处,密钥管理服务器至少部分地基于标识符来标识所选择的HSM,并且检索包括网络地址和用于访问HSM的凭证的元数据。在一个实施方案中,在框706处,密钥管理服务器使用网络地址和凭证来将命令发送到HSM以生成新密码密钥。在一个实施方案中,密码密钥可以是对称或不对称的密码密钥对。
在一个实施方案中,在框708处,HSM将密钥标识符返回到密钥管理服务器以用于引用密码密钥。在一个实施方案中,在框710处,密钥管理服务器针对密码密钥生成标签,并且在框712处,将密钥标识符和标签作为元数据存储在密钥管理服务器可访问的数据存储区中。在一个实施方案中,在框714处,将密钥标签返回给请求者。在一个实施方案中,请求者或其他实体可通过用标签向密钥管理服务标识密码密钥来使用密码密钥执行密码操作。
图8示出在一个实施方案中的连接到密钥管理***的HSM的状态转变图800的示例。在一个实施方案中,HSM、HSM集群或密码装置在起始状态802中开始。在一个实施方案中,当新HSM添加到***并且密钥管理***开始附接过程时,随着连接到HSM的过程操作而将HSM置于正在附接状态804。在一个实施方案中,如果附接过程成功,则将HSM置于已附接状态806。在一个实施方案中,HSM和已附接状态806已经与密钥管理***建立了通信链路,并且可用来生成并使用密码密钥。
如果附接过程失败,则将HSM置于失败的附接状态808。在一个实施方案中,失败的附接状态808指示尝试过附接但未成功完成。在一个实施方案中,密钥管理***可尝试重新附接HSM。在一个实施方案中,如果进行了这种尝试,则HSM返回到正在附接状态804。
在一个实施方案中,密钥管理***可分离先前附接的HSM,并且将HSM置于分离状态810。如果密钥管理***确定要重新附接HSM,则HSM返回到正在附接状态804。
图9示出用于实现根据一个实施方案的密钥管理服务器的各方面的示例性***900的各方面。如将了解的,尽管出于解释目的使用了基于web的***,但是可视情况使用不同的***来实现各种实施方案。在一个实施方案中,***包括电子客户端装置902,所述电子客户端装置902包括可操作来通过适当网络904发送和/或接收请求、消息或信息并且将信息传送回装置的用户的任何适当装置。此类客户端装置的示例包括个人计算机、蜂窝电话或其他移动电话、手持式消息传送装置、膝上型计算机、平板计算机、机顶盒、个人数据助理、嵌入式计算机***、电子书阅读器等。在一个实施方案中,网络包括任何适当网络,包括内联网、互联网、蜂窝网络、局域网、卫星网络或任何其他这种网络和/或其组合,并且用于这种***的部件至少部分地取决于所选择的网络和/或***的类型。用于通过这种网络进行通信的许多协议和部件是熟知的,并且本文将不再详细讨论。在一个实施方案中,通过网络进行的通信通过有线和/或无线连接及其组合来实现。在一个实施方案中,网络包括互联网和/或其他公共可寻址通信网络,因为***包括用于接收请求并且响应于所述请求而提供内容的web服务器906,但是对于其他网络来说,可使用服务类似目的的替代装置,如本领域普通技术人员所显而易见的。
在一个实施方案中,说明性***包括至少一个应用程序服务器908和数据存储区910,并且应理解,可存在可链接起来或以其他方式配置的若干应用程序服务器、层或其他元件、过程或部件,它们可交互以执行诸如从适当数据存储区获得数据的任务。在一个实施方案中,服务器被实现为硬件装置、虚拟计算机***、在计算机***上执行的编程模块和/或配置有硬件和/或软件以接收并响应通过网络进行的通信(例如,web服务应用编程接口(API)请求)的其他装置。如本文所使用的,除非另外说明或从上下文中清楚地看出,否则术语“数据存储区”是指能够存储、访问并检索数据的任何装置或装置组合,所述装置或装置组合可包括在任何标准、分布式、虚拟或集群式***中的任何组合和任何数量的数据服务器、数据库、数据存储装置和数据存储介质。在一个实施方案中,数据存储区与块级和/或对象级接口通信。应用程序服务器可包括任何适当的硬件、软件和固件,所述硬件、软件和固件用于根据需要与数据存储区集成以执行客户端装置的一个或多个应用程序的各方面,从而处置应用程序的数据访问和业务逻辑中的一些或全部。
在一个实施方案中,应用程序服务器与数据存储区协作来提供访问控制服务,并且生成包括但不限于文本、图形、音频、视频和/或其他内容的内容,所述内容由web服务器以超文本标记语言(“HTML”)、可扩展标记语言(“XML”)、JavaScript、级联样式表(“CSS”)、Javascript对象表示法(JSON)和/或另一种适当的客户端侧结构化语言或其他结构化语言的形式提供给与客户端装置相关联的用户。在一个实施方案中,传输到客户端装置的内容由客户端装置处理以便以一种或多种形式提供内容,所述形式包括但不限于用户可通过听觉、视觉和/或通过其他感觉来感知的形式。在一个实施方案中,对所有请求和响应的处置以及在客户端装置902与应用程序服务器908之间的内容递送在此示例中由web服务器使用PHP:超文本预处理器(“PHP”)、Python、Ruby、Perl、Java、HTML、XML、JSON和/或另一种适当的客户端侧结构化语言来处置。在一个实施方案中,在本文中被描述为由单个装置执行的操作由形成分布式和/或虚拟***的多个装置共同执行。
在一个实施方案中,数据存储区910包括用于存储与本公开的特定方面相关的数据的若干单独的数据表、数据库、数据文档、动态数据存储方案和/或其他数据存储机构和介质。在一个实施方案中,示出的数据存储区包括用于存储产生数据912和用户信息916的机构,所述产生数据912和用户信息916用来为产生侧提供内容。数据存储区还被示出为包括用于存储日志数据914的机构,所述日志数据914在一个实施方案中用于报告、计算资源管理、分析或其他此类目的。在一个实施方案中,诸如页面图像信息和访问权信息(例如,访问控制策略或其他权限编码)的其他方面存储在数据存储区中、视情况位于上文列出的机构中的任一者中或位于数据存储区910中的另外机构中。
在一个实施方案中,数据存储区910可通过与其相关联的逻辑来操作,以便从应用程序服务器908接收指令并且响应于所述指令获得数据、更新数据或以其他方式处理数据,并且应用程序服务器908响应于所接收的指令提供静态数据、动态数据或静态数据与动态数据的组合。在一个实施方案中,诸如在web日志(博客)、购物应用程序、新闻服务以及其他此类应用程序中使用的数据的动态数据由如本文所描述的服务器侧结构化语言生成或者由在应用程序服务器上操作或在其控制下的内容管理***(“CMS”)提供。在一个实施方案中,用户通过由用户操作的装置提交对某种类型的项目的搜索请求。在此示例中,数据存储区访问用户信息以验证用户的身份,访问目录详细信息以获得有关所述类型的项目的信息,并且将信息诸如以用户通过用户装置902上的浏览器查看的网页上的结果列表的形式返回给用户。继续示例,在浏览器的专用页面或窗口中查看感兴趣的特定项目的信息。然而,应注意,本公开的实施方案不一定限于网页的上下文,而是更一般地适用于以一般方式处理请求,其中请求不一定是对内容的请求。示例性请求包括管理由***900和/或另一***托管的计算资源和/或与其交互(诸如,以用于启动、终止、删除、修改、读取和/或以其他方式访问此类计算资源)的请求。
在一个实施方案中,每个服务器通常包括提供用于所述服务器的一般管理和操作的可执行程序指令的操作***,并且包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),所述指令在被服务器的处理器执行的情况下(即,由于被执行而)致使服务器或以其他方式允许服务器执行其预期功能。
在一个实施方案中,***900是利用若干计算机***和部件的分布式和/或虚拟计算***,所述计算机***和部件使用一个或多个计算机网络或直接连接通过通信链路(例如,传输控制协议(TCP)连接和/或传输层安全(TLS)或其他受密码保护的通信会话)互连。然而,本领域普通技术人员将了解,这种***可在具有比图9中示出的部件更少或更多数量的部件的***中操作。因此,对图9中的***900的描述应被视为在本质上是说明性的且不限于本公开的范围。
另外,可鉴于以下条款对本公开的实施方案进行描述:
1.一种计算机实现的方法,其包括:
接收执行密码操作的请求;
使用由所述请求指示的标识符来从一组硬件安全模块中选择能够执行所述密码操作的硬件安全模块;以及
致使所选择的硬件安全模块执行所述密码操作。
2.如条款1所述的计算机实现的方法,其还包括:
标识能够用于执行所述密码操作的密码密钥;
获得与所述密码密钥相关联的元数据;以及
至少部分地基于所述元数据来标识所述硬件安全模块。
3.如条款1或2所述的计算机实现的方法,其中:
所述元数据标识所述硬件安全模块的能力;并且
所述硬件安全模块是由于所述硬件安全模块支持所述能力而被选择。
4.如条款1至3中任一项所述的计算机实现的方法,其还包括:
从所选择的硬件安全模块接收所述密码操作的结果;以及
将所述密码操作的所述结果提供给请求者。
5.一种计算机***,其包括一个或多个处理器和存储可执行指令的存储器,所述可执行指令由于被所述一个或多个处理器执行而致使所述计算机***:
接收执行密码操作的请求;
使用在所述请求中指定的标识符来选择一个或多个密码装置;并且
致使所述一个或多个密码装置执行所述密码操作。
6.如条款5所述的***,其中:
所述计算机***提供基于web的应用编程接口;并且
所述请求通过所述基于web的应用编程接口被接收。
7.如条款5或6所述的***,其中:
所述标识符标识密码密钥;并且
所述可执行指令进一步致使所述计算机***从能够使用所述密码密钥的一组密码装置中选择所述一个或多个密码装置。
8.如条款5至7中任一项所述的***,其中所述可执行指令进一步致使所述计算机***:
根据到密码令牌的与平台无关的应用编程接口生成命令集;并且
将所述命令集传输到所述一个或多个密码装置。
9.如条款8所述的***,其中:
所述一个或多个密码装置是硬件安全模块;并且
所述到密码令牌的与平台无关的应用编程接口是遵从PKCS11的应用编程接口。
10.如条款5至9中任一项所述的***,其中:
所述请求是从网络上的计算机***接收到的;并且
所述一个或多个密码装置位于所述网络上。
11.如条款5至10中任一项所述的***,其中所述可执行指令进一步致使所述计算机***:
获取与所述标识符相关联的加密密钥;并且
将所述加密密钥提供给所述一个或多个密码装置。
12.如条款5至11中任一项所述的***,其中所述密码装置包括:
密码处理器;以及
存储器,所述存储器存储用来执行所述密码操作的不可导出的密码密钥。
13.一种非暂时性计算机可读存储介质,其上存储有可执行指令,所述可执行指令由于被计算机***的一个或多个处理器执行而致使所述计算机***至少:
接收执行密码操作的请求;
使用在所述请求中指定的标识符来选择一个或多个密码装置;并且
致使所述一个或多个密码装置执行所述密码操作。
14.如条款13所述的非暂时性计算机可读存储介质,其中所述指令还包括如下指令,所述指令由于被所述一个或多个处理器执行而致使所述计算机***:
根据到密码令牌的与平台无关的应用编程接口生成命令集;并且
将所述命令集传输到所述一个或多个密码装置。
15.如条款13或14所述的非暂时性计算机可读存储介质,其中:
所述一个或多个密码装置是硬件安全模块;并且
所述到密码令牌的与平台无关的应用编程接口是遵从Java密码术扩展的应用编程接口。
16.如条款13至15中任一项所述的非暂时性计算机可读存储介质,其中:
所述请求是从客户网络上的计算机***接收到的;并且
所述一个或多个密码装置位于所述客户网络上。
17.如条款13至16中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括如下指令,所述指令由于被所述一个或多个处理器执行而致使所述计算机***:
获取与所述标识符相关联的密码密钥的元数据;并且
将所述元数据的至少一部分提供给所述一个或多个密码装置。
18.如条款13至17中任一项所述的非暂时性计算机可读存储介质,其中所述一个或多个密码装置包括防篡改存储器,所述防篡改存储器存储能够用于执行所述请求的密码密钥。
19.如条款13至18中任一项所述的非暂时性计算机可读存储介质,其中所述可执行指令进一步致使所述计算机***至少部分地基于所述标识符从一组密码装置中选择所述一个或多个密码装置。
20.如条款13至19中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括如下指令,所述指令由于被所述一个或多个处理器执行而致使所述计算机***通过网络可访问的web服务接口接收所述请求。
各种实施方案还可在广泛多种操作环境中实现,在一些情况下,所述操作环境可包括可用来操作多个应用程序中的任一者的一个或多个用户计算机、计算装置或处理装置。在一个实施方案中,用户或客户端装置包括以下各项中的任一者:多个计算机,诸如运行标准操作***的台式计算机、膝上型计算机或平板计算机,以及运行移动软件并且能够支持多种联网协议和消息传送协议的蜂窝(移动)、无线和手持式装置,并且这种***还包括运行多种可商购获得的操作***和用于诸如开发和数据库管理的目的的其他已知应用程序中的任一者的多个工作站。在一个实施方案中,这些装置还包括其他电子装置,诸如虚拟终端、瘦客户端、游戏***和能够通过网络进行通信的其他装置,以及虚拟装置,诸如虚拟机、管理程序、利用操作***级虚拟化的软件容器和能够通过网络进行通信的支持虚拟化的其他虚拟装置或非虚拟装置。
在一个实施方案中,***利用本领域技术人员可能熟悉的至少一种网络来支持使用多种可商购获得的协议中的任一种进行通信,所述协议诸如传输控制协议/互联网协议(“TCP/IP”)、用户数据报协议(“UDP”)、在开放***互连(“OSI”)模型的各层中操作的协议、文件传输协议(“FTP”)、通用即插即用(“UpnP”)、网络文件***(“NFS”)、公共互联网文件***(“CIFS”)以及其他协议。在一个实施方案中,网络是局域网、广域网、虚拟专用网络、互联网、内联网、外联网、公共交换电话网、红外网络、无线网络、卫星网络以及其任何组合。在一个实施方案中,面向连接的协议用来在网络端点之间通信,使得面向连接的协议(有时称为基于连接的协议)能够以有序流传输数据。在一个实施方案中,面向连接的协议可以是可靠的或不可靠的。例如,TCP协议是可靠的面向连接的协议。异步传输模式(“ATM”)和帧中继是不可靠的面向连接的协议。面向连接的协议与在不保证排序的情况下传输数据包的面向数据包的协议(诸如UDP)形成对比。
在一个实施方案中,***利用web服务器,所述web服务器运行多种服务器或中间层应用程序中的一者或多者,包括超文本传输协议(“HTTP”)服务器、FTP服务器、通用网关接口(“CGI”)服务器、数据服务器、Java服务器、Apache服务器以及业务应用程序服务器。在一个实施方案中,一个或多个服务器还能够响应于来自用户装置的请求而执行程序或脚本,诸如通过执行一个或多个web应用程序,所述一个或多个web应用程序被实现为以任何编程语言(诸如
Figure BDA0002752203900000231
C、C#或C++)或任何脚本语言(诸如Ruby、PHP、Perl、Python或TCL)以及其组合编写的一个或多个脚本或程序。在一个实施方案中,一个或多个服务器还包括数据库服务器,包括但不限于可从
Figure BDA0002752203900000232
Figure BDA0002752203900000233
Figure BDA0002752203900000234
商购获得的那些服务器以及开源服务器(诸如MySQL、Postgres、SQLite、MongoDB),以及能够存储、检索和访问结构化或非结构化数据的任何其他服务器。在一个实施方案中,数据库服务器包括基于表格的服务器、基于文档的服务器、非结构化服务器、关系服务器、非关系服务器或这些和/或其他数据库服务器的组合。
在一个实施方案中,***包括如上文所讨论的多种数据存储区以及其他存储器和存储介质,它们可驻留在多种位置中,诸如在一个或多个计算机本地(和/或驻留在一个或多个计算机中)的存储介质上,或在跨网络远离任一个或所有计算机的存储介质上。在一个实施方案中,信息驻留在本领域技术人员熟悉的存储区域网(“SAN”)中,并且类似地,用于执行归属于计算机、服务器或其他网络装置的功能的任何必要文件视情况进行本地或远程存储。在一个实施方案中,在***包括计算机化装置的情况下,每个这种装置可包括通过总线电耦合的硬件元件,所述元件包括例如至少一个中央处理单元(“CPU”或“处理器”)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)、至少一个输出装置(例如,显示装置、打印机或扬声器)、至少一个存储装置(诸如硬盘驱动器、光学存储装置和固态存储装置(诸如随机存取存储器(RAM)或只读存储器(ROM)))、以及可移动媒体装置、存储卡、闪存卡等、以及其各种组合。
在一个实施方案中,这种装置还包括计算机可读存储介质读取器、通信装置(例如,调制解调器、网络卡(无线或有线)、红外通信装置等)以及如上文所描述的工作存储器,其中计算机可读存储介质读取器与计算机可读存储介质连接或被配置来接收计算机可读存储介质,所述计算机可读存储介质表示远程、本地、固定和/或可移动存储装置以及用于暂时和/或更永久地包含、存储、传输并检索计算机可读信息的存储介质。在一个实施方案中,***和各种装置通常还包括位于至少一个工作存储器装置内的多个软件应用程序、模块、服务或其他元件,包括操作***和应用程序,诸如客户端应用程序或web浏览器。在一个实施方案中,使用定制硬件,且/或在硬件、软件(包括便携式软件,诸如小应用程序)或这两者中实现特定元件。在一个实施方案中,采用与诸如网络输入/输出装置的其他计算装置的连接。
在一个实施方案中,用于包含代码或代码的部分的存储介质和计算机可读介质包括本领域已知或已使用的任何适当介质,包括存储介质和通信介质,诸如但不限于在用于存储和/或传输信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实现的易失性和非易失性、可移动和不可移动的介质,包括RAM、ROM、电可擦可编程只读存储器(“EEPROM”)、快闪存储器或其他存储器技术、光盘只读存储器(“CD-ROM”)、数字通用光盘(DVD)或其他光学存储装置、磁盒、磁带、磁盘存储装置或其他磁性存储装置,或能够用来存储期望的信息且可由***装置访问的任何其他介质。基于本文所提供的公开内容和教示内容,本领域普通技术人员将了解实现各种实施方案的其他方式和/或方法。
因此,应当以说明性意义而不是限制性意义来理解本说明书和附图。然而,将显而易见的是,在不脱离如权利要求所阐述的本发明的更宽广精神和范围的情况下,可对本发明做出各种修改和改变。
其他变型也在本公开的精神内。因此,虽然所公开的技术可容许各种修改和替代构造,但在附图中已示出并且在上文中已经详细描述所示的其特定实施方案。然而,应理解,并不意图将本发明局限于所公开的一种或多种具体形式,而是相反地,本发明意图涵盖落在如所附权利要求中所限定的本发明的精神和范围内的所有修改、替代构造和等效物。
除非本文另外指出或明显地与上下文矛盾,否则在描述所公开的实施方案的上下文中(尤其是在以下权利要求的上下文中)对术语“一个(a和an)”和“所述(the)”以及类似指称对象的使用应解释为涵盖单数和复数两者。类似地,除非明确地矛盾或与上下文矛盾,否则对术语“或”的使用应解释为意指“和/或”。除非另外指出,否则术语“包含”、“具有”、“包括”和“含有”应解释为开放式术语(即,意指“包括但不限于”)。当无修饰并且指代物理连接时,术语“连接的”应解释为部分地或全部地容纳在内、附接到、或连结在一起,即使存在介入物。除非本文另外指出,否则本文中对值范围的列举仅仅意图用作单独提及落在所述范围内的每个单独值的速记方法,并且如同在本文中单独叙述地那样将每个单独值并入本说明书中。除非另外指出或与上下文矛盾,否则术语“集”(例如,“项目集”)或“子集”的使用应解释为包括一个或多个成员的非空集合。另外,除非另外指出或与上下文矛盾,否则术语对应集的“子集”不一定指对应集的真子集,而是子集和对应集可以相等。
除非另外具体说明或以其他方式明显地与上下文矛盾,否则连接性语言,诸如形式为“A、B、和C中的至少一者”或“A、B和C中的至少一者”的短语(即,有或没有牛筋逗号的同一短语),是在通常使用的上下文情况下另外理解为表述项目、术语等可以是:A或B或C,A和B和C的集的任何非空子集,或包含至少一个A、至少一个B或至少一个C的不与上下文矛盾或不以其他方式排除的任何集。例如,在具有三个成员的集的说明性示例中,连接性短语“A、B、和C中的至少一者”和“A、B和C中的至少一者”是指以下集中的任一者:{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C},以及在不明确地矛盾或不与上下文矛盾的情况下,具有{A}、{B}和/或{C}作为子集的任何集(例如,具有多个“A”的集)。因此,这种连接性语言通常不意图暗示某些实施方案要求A中的至少一个、B中的至少一个以及C中的至少一个都存在。类似地,除非明确说明或从上下文中清楚地看出不同的含义,否则诸如“A、B、或C中的至少一者”和“A、B或C中的至少一者”的短语与“A、B、和C中的至少一者”和“A、B和C中的至少一者”所指相同,是指以下集中的任一者:{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}。另外,除非另外指出或与上下文矛盾,否则术语“多个”指示呈多个的状态(例如,“多个项目”指示多个项目)。多个项目的数量为至少两个,但如果明确地指出或通过上下文指出,则可以更多。
除非本文中另外指出或以其他方式明显地与上下文矛盾,否则可按任何合适的顺序来执行本文中所描述的过程的操作。在一个实施方案中,诸如本文所描述的过程(或其变型和/或组合)的过程是在配置有可执行指令的一个或多个计算机***的控制下执行,并且被实现为共同在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)、由硬件实现或其组合。在一个实施方案中,代码例如以计算机程序的形式存储在计算机可读储存介质上,所述计算机程序包括可由一个或多个处理器执行的多个指令。在一个实施方案中,计算机可读存储介质是不包括暂时性信号(例如,传播瞬变的电或电磁传输)但在暂时性信号的收发器内包括非暂时性数据存储电路(例如,缓冲区、高速缓存和队列)的非暂时性计算机可读存储介质。在一个实施方案中,代码(例如,可执行代码或源代码)存储在一个或多个非暂时性计算机可读存储介质的集合上,所述一个或多个非暂时性计算机可读存储介质上存储有可执行指令,所述可执行指令在由计算机***的一个或多个处理器执行时(即,由于被执行而)致使计算机***执行本文所描述的操作。在一个实施方案中,非暂时性计算机可读存储介质的集合包括多个非暂时性计算机可读存储介质,并且多个非暂时性计算机可读存储介质中的单独非暂时性存储介质中的一个或多个不含所有代码,而多个非暂时性计算机可读存储介质共同存储所有代码。在一个实施方案中,可执行指令被执行以使得由不同的处理器执行不同的指令,例如,非暂时性计算机可读存储介质存储指令,并且主CPU执行一些指令,而图形处理器单元执行其他指令。在一个实施方案中,计算机***的不同部件具有单独的处理器,并且不同的处理器执行指令的不同子集。
示例性密码算法包括分组密码和利用初始化向量的各种模式,诸如密码块链接(CBC)模式、传播密码块链接(PCBC)模式、密码反馈模式(CFB)、输出反馈(OFB)模式、计数器(CTR)模式以及其他模式,诸如经过认证的加密模式,诸如扩展密文块链接(XCBC)模式、完整性感知CBC(IACBC)模式、完整性感知并行化(IAPM)模式、偏移码本(OCB)模式、EAX和EAXPrime模式、Carter-Wegman+CTR(CWC)模式、具有CBC-MAC的计数器(CCM)模式、Galois/计数器(GCM)模式。
如所讨论的,许多变型利用对称和/或不对称密码原语。对称密钥算法可包括用于对数据执行密码操作的各种方案,包括分组密码、流密码和数字签名方案。示例性对称密钥算法包括高级加密标准(AES)、数据加密标准(DES)、三重DES(3DES)、Serpent、Twofish、blowfish、CAST5、RC4以及国际数据加密算法(IDEA)。对称密钥算法还可包括用来生成单向函数的输出的那些算法,并且包括利用基于散列的消息认证码(HMAC)、通用消息认证码(MAC)、PBKDF2以及Bcrypt的算法。不对称密钥算法也可包括用于对数据执行密码操作的各种方案。示例性算法包括利用Diffie–Hellman密钥交换协议、数字签名标准(DSS)、数字签名算法、ElGamal算法、各种椭圆曲线算法、经过口令认证的密钥协商技术、pallier密码***、RSA加密算法(PKCS#1)、Cramer-Shoup密码***、经过YAK认证的密钥协商协议、NTRUEncrypt密码***、McEliece密码***以及其他技术的算法。椭圆曲线算法包括椭圆曲线Diffie–Hellman(ECDH)密钥协商方案、椭圆曲线集成加密方案(ECIES)、椭圆曲线数字签名算法(ECDSA)、ECMQV密钥协商方案以及ECQV隐式证书方案。其他算法和算法的组合也被视为是在本公开的范围内并且上述内容不意图是详尽列表。
注意,术语“数字签名”包括能够用来以密码方式验证消息的真实性的任何信息,包括使用基于RSA的数字方案(诸如RSA-PSS)、数字签名算法(DSA)和椭圆曲线数字签名算法、ElGamal签名方案、Schnorr签名方案、Pointcheval-Stern签名算法、Rabin签名算法、基于配对的数字签名方案(诸如Boneh-Lynn-Schacham签名方案)、不可抵赖数字签名方案以及其他技术生成的信息。另外,消息认证码(诸如基于散列的消息认证码(HMAC)、带密钥的密码散列函数和其他类型的信息也可用作数字签名。
应注意,短语“单向函数”包括如下函数,所述函数在严格的数学意义上不一定是单向的,但表现出使函数在应用本公开的各种技术的上下文中有用的性质(例如,抗碰撞性、抗原像性和抗次原像性)。以此方式,具有函数的输出但不能访问对应输入的实体无法在不大量消耗例如密码(例如,蛮力)攻击所必需的计算资源的情况下确定输入。单向函数(也称为“有效单向函数”)包括但不限于密码散列函数(诸如消息认证码(例如,基于散列的消息认证码(HMAC))、密钥推导函数(诸如PBKDF2和bcrypt(例如,其中口令至少部分地基于明文和密码密钥))和其他安全随机化函数(其可能但不一定具有大于其范围(可能的输出)的域(可能的输入的集合))。用于各种实施方案的其他合适的函数(称为“f”)包括但不限于如下函数,所述函数至少采用明文和密码密钥作为输入,并且具有抗原像性(给定值y,随机生成输入x以使得f(x)=y的概率低于指定阈值)、抗次原像性(给定输入x1,随机生成不同于x1的另一个输入x2以使得f(x1)=f(x2)的概率低于指定阈值)和/或抗碰撞性(两个不同的输入导致相同输出的概率小于指定阈值)的性质。针对每个概率的确切阈值可以是上下文相关的,其中较低的概率对应于较高的安全上下文。可使用单向函数以密码方式推导出值。从缺乏用作加密函数的输入的信息(例如,密码密钥和/或盐值)的实体的角度来看,加密函数可以是单向函数(或者可以是单向函数的分量)。能够用作根据本公开的技术的单向函数的散列函数包括但不限于在国家标准和技术研究所(NIST)特别出版物800-107,第一版“Recommendation for Applications Using Approved Hash Algorithms”中描述的函数,所述文献以引用方式并入本文。短语以密码方式推导意指使用单向函数至少一次、使用作为值或从值推导出(可能是从值以密码方式推导出)的输入。例如,加密操作对于不具有解密密钥的实体来说是单向的。
如果没有合法的方式以编程方式(例如,通过装置的接口)致使装置提供信息,则可以说信息是以编程方式不可导出的。例如,可维护信息,使得不存在用于致使能够访问明文形式的信息的硬件显示明文形式的信息的请求机制(例如,应用编程接口(API)调用)。作为一个示例,存储信息的装置(例如,密码模块)可被配置为没有能力提供其存储器中的一些或全部的副本,使得副本包括明文形式的信息。然而,应注意,虽然贯穿本公开出于说明目的使用如下信息,针对这种信息没有合法的方式获得明文形式的信息,但是可维护一些信息,使得可通过有限数量的授权使用来获得信息,这可能需要采用各种安全协议并且能够防止未经授权地访问明文形式的信息。通常,以编程方式不可导出的信息是如下信息(例如,一个或多个密码密钥),针对这种信息必须采取特殊措施才能获得明文形式的信息(如果有可能获得明文形式的信息)。
还应注意,可遵照以下各项中的一者或多者来执行本文所用的示例:注释请求(RFC)4250、RFC 4251、RFC 4252、RFC 4253、RFC 4254、RFC 4255、RFC 4256、RFC 4335、RFC4344、RFC 4345、RFC 4419、RFC 4432、RFC 4462、RFC 4716、RFC 4819、RFC 5647、RFC 5656、RFC 6187、RFC 6239、RFC 6594以及RFC 6668,它们以引用方式并入。
通常,本公开的实施方案可使用诸如SSL或TLS协议的各种协议以及诸如在以下各项中定义的对所述协议的扩展来建立加密通信会话:注释请求(RFC)2246、RFC 2595、RFC2712、RFC 2817、RFC 2818、RFC 3207、RFC 3268、RFC 3546、RFC 3749、RFC 3943、RFC 4132、RFC 4162、RFC 4217、RFC 4279、RFC 4347、RFC 4366、RFC 4492、RFC 4680、RFC 4681、RFC4785、RFC 5054、RFC 5077、RFC 5081、RFC 5238、RFC 5246、RFC 5288、RFC 5289、RFC 5746、RFC 5764、RFC 5878、RFC 5932、RFC 6083、RFC 6066、RFC 6091、RFC 6176、RFC 6209、RFC6347、RFC 6367、RFC 6460、RFC 6655、RFC 7027以及RFC 7366,它们以引用方式并入本文。在开放***互连(OSI)模型的应用层之下实现的其他协议也可使用和/或适用于利用本文所描述的技术。应注意,本文所描述的技术可适用于其他协议,诸如实时消息协议(RTMP)、点对点隧道协议(PPTP)、第2层隧道协议、各种虚拟私有网络(VPN)协议、互联网协议安全(例如,如在RFC 1825至1829、RFC 2401、RFC 2412、RFC 4301、RFC 4309和RFC 4303中定义的)以及其他协议,诸如用于包括握手的安全通信的协议。
注意,如果***借以被配置来操作的逻辑取决于用公开密码密钥验证数字签名的尝试是否成功,则称***被配置来信任公开密码密钥。类似地,如果***借以被配置来操作的逻辑取决于用对称密码密钥验证数字签名的尝试是否成功,则称***被配置来信任对称密码密钥。
在各种实施方案中,诸如数字签名的数据对象可以是密码可验证的。在一个示例中,密码可验证的数据对象被创建成可由数据对象将被提供给的***或与数据对象将被提供给的***结合操作的另一个***进行密码验证。例如,数据对象可被加密,以便可由将对数据对象进行密码验证的***解密,其中解密数据对象的能力充当对数据对象的密码验证。作为另一个示例,可对数据对象进行数字签名(从而产生数据对象的数字签名),使得数字签名可由将对数据对象进行密码验证的***验证。在其他示例中,将加密和数字签名两者用于密码可验证性和/或安全性。用来对数据对象进行加密和/或数字签名的密钥可根据各种实施方案变化,并且在适用的情况下,同一密钥不一定用于加密和数字签名两者。在一些实施方案中,用来加密数据对象的密钥是公开/私有密钥对的公开密钥,其中密钥对的私有密钥由数据对象将被提供给的***安全地维护,从而使***能够使用密钥对的私有密钥来解密数据对象。使用公开密钥来加密数据对象可包括生成对称密钥、使用对称密钥来加密数据对象、以及使用公开密钥来加密对称密钥,其中加密的对称密钥与加密的数据对象一起被提供给***,以使***能够使用对应的私有密钥来解密对称密钥并使用解密的对称密钥来解密数据对象。另外,在一些实施方案中,使用与对数据对象进行加密和/或数字签名的计算机***(例如,用户装置)相对应的公开/私有密钥对的私有密钥对数据对象进行数字签名。例如,可给应用程序提供私有密钥,并且数据对象可包括用于私有密钥的证书,以供***用于验证数据对象的数字签名。其他变型,包括其中在用户计算机与***之间共享的对称密钥对数据对象进行密码验证的变型,可用来对数据对象进行加密和/或数字签名。
在先前和以下的描述中,描述了各种实施方案。出于解释的目的,阐述了具体的配置和细节,以便提供对实现技术的可能方式的透彻理解。然而,也将显而易见的是,以下所描述的技术可在没有具体细节的情况下以不同的配置来实践。此外,可省略或简化熟知的特征以避免使所描述的技术模糊。
因此,在一个实施方案中,计算机***被配置来实现一个或多个服务,所述一个或多个服务单独地或共同地执行本文所描述的过程的操作,并且此类计算机***被配置有使得能够执行所述操作的适用的硬件和/或软件。另外,实现本公开的实施方案的计算机***是单个装置,并且在另一个实施方案中,是包括多个装置的分布式计算机***,所述多个装置以不同方式操作,使得分布式计算机***执行本文所描述的操作并且使得单个装置不执行所有操作。
本文所提供的任何以及所有示例或示例性语言(例如,“诸如”)的使用仅意图更好地说明本发明的实施方案,并且除非另外要求,否则不会对本发明的范围施加限制。本说明书中的语言不应解释为将任何非要求保护的要素指示为实践本发明所必需。
本文中描述了本公开的实施方案,包括发明人已知用于执行本发明的最佳模式。在阅读上述描述后,这些实施方案的变型对于本领域普通技术人员可变得显而易见。发明人希望技术人员视情况采用此类变型,并且发明人意图以不同于如本文具体描述的方式来实践本公开的实施方案。因此,经适用的法律许可,本公开的范围包括在所附的权利要求中叙述的主题的所有修改和等效物。此外,除非本文另外指出或以其他方式明显地与上下文矛盾,否则本公开的范围涵盖在其所有可能变型中的上述要素的任何组合。
本文所引用的所有参考文献(包括出版物、专利申请和专利)特此引用方式并入,其程度如同每个参考文献都单独地且具体地被指示为以引用方式并入并且其全部内容在本文中进行阐述一样。

Claims (15)

1.一种***,其包括一个或多个处理器和存储可执行指令的存储器,所述可执行指令由于被所述一个或多个处理器执行而致使所述***:
获得执行密码操作的请求;
使用在所述请求中指定的标识符来选择一个或多个密码装置;并且
致使所述一个或多个密码装置执行所述密码操作。
2.如权利要求1所述的***,其中:
所述***提供基于web的应用编程接口;并且
所述请求通过所述基于web的应用编程接口被接收。
3.如权利要求1所述的***,其中:
所述标识符标识密码密钥;并且
所述可执行指令进一步致使所述***从能够使用所述密码密钥的一组密码装置中选择所述一个或多个密码装置。
4.如权利要求1所述的***,其中所述可执行指令进一步致使所述***:
根据到密码令牌的与平台无关的应用编程接口生成命令集;并且
将所述命令集传输到所述一个或多个密码装置。
5.如权利要求4所述的***,其中:
所述一个或多个密码装置是硬件安全模块;并且
所述到密码令牌的与平台无关的应用编程接口是遵从PKCS11的应用编程接口。
6.如权利要求1所述的***,其中:
所述请求是从网络上的计算机***接收到的;并且
所述一个或多个密码装置位于所述网络上。
7.如权利要求1所述的***,其中所述可执行指令进一步致使所述***:
获取与所述标识符相关联的加密密钥;并且
将所述加密密钥提供给所述一个或多个密码装置。
8.如权利要求1所述的***,其中所述一个或多个密码装置各自包括:
相应的密码处理器;以及
相应的存储器,所述存储器存储用来执行所述密码操作的不可导出的密码密钥。
9.一种计算机实现的方法,其包括:
获得执行密码操作的请求;
使用在所述请求中指定的标识符来选择一个或多个密码装置;以及
致使所述一个或多个密码装置执行所述密码操作。
10.如权利要求9所述的计算机实现的方法,其还包括:
根据到密码令牌的与平台无关的应用编程接口生成命令集;以及
将所述命令集传输到所述一个或多个密码装置。
11.如权利要求10所述的计算机实现的方法,其中:
所述一个或多个密码装置是硬件安全模块;并且
所述到密码令牌的与平台无关的应用编程接口是遵从Java密码术扩展的应用编程接口。
12.如权利要求9所述的计算机实现的方法,其中:
所述请求是从客户网络上的计算机***接收到的;并且
所述一个或多个密码装置位于所述客户网络上。
13.如权利要求9所述的计算机实现的方法,其还包括:
获取与所述标识符相关联的密码密钥的元数据;以及
将所述元数据的至少一部分提供给所述一个或多个密码装置。
14.如权利要求9所述的计算机实现的方法,其中所述请求是通过网络可访问的web服务接口获得的。
15.如权利要求9所述的计算机实现的方法,其还包括:
标识能够用于执行所述密码操作的密码密钥;以及
获得与所述密码密钥相关联的元数据;并且
其中选择所述一个或多个密码装置至少部分地基于所述元数据。
CN201980029384.0A 2018-05-02 2019-04-19 密钥管理***和方法 Active CN112470425B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/969,695 US10909250B2 (en) 2018-05-02 2018-05-02 Key management and hardware security integration
US15/969,695 2018-05-02
PCT/US2019/028399 WO2019212773A1 (en) 2018-05-02 2019-04-19 Key management system and method

Publications (2)

Publication Number Publication Date
CN112470425A true CN112470425A (zh) 2021-03-09
CN112470425B CN112470425B (zh) 2022-06-10

Family

ID=66429649

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980029384.0A Active CN112470425B (zh) 2018-05-02 2019-04-19 密钥管理***和方法

Country Status (7)

Country Link
US (1) US10909250B2 (zh)
EP (1) EP3788741A1 (zh)
JP (1) JP7205031B2 (zh)
KR (1) KR102229739B1 (zh)
CN (1) CN112470425B (zh)
CA (1) CA3098836C (zh)
WO (1) WO2019212773A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114640445A (zh) * 2022-03-21 2022-06-17 中国电力科学研究院有限公司 Hsm密钥管理***及方法、设备及存储介质
CN115314264A (zh) * 2022-07-25 2022-11-08 阿里云计算有限公司 密钥管理服务***、密钥管理方法、网关及设备

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11095652B2 (en) 2018-02-20 2021-08-17 International Business Machines Corporation Implementing a separation of duties for container security
US11475147B2 (en) * 2018-02-20 2022-10-18 International Business Machines Corporation Implementing policy-based container-level encryption
US11398900B2 (en) 2018-06-21 2022-07-26 Oracle International Corporation Cloud based key management
US11258604B2 (en) * 2018-10-19 2022-02-22 Oracle International Corporation Rewiring cryptographic key management system service instances
US11252138B2 (en) * 2019-01-24 2022-02-15 Dell Products L.P. Redundant device locking key management system
US11650938B2 (en) * 2019-01-25 2023-05-16 Dell Products L.P. Device-capability-based locking key management system
US11729170B2 (en) * 2019-03-20 2023-08-15 Servicenow, Inc. Efficient and secure communication between computational instances of a remote network management platform
US12028442B2 (en) * 2019-08-15 2024-07-02 F5, Inc. Accessing security hardware keys
US11316683B2 (en) * 2019-11-18 2022-04-26 Ciot Systems and methods for providing IoT security service using hardware security module
KR20210107386A (ko) * 2020-02-24 2021-09-01 삼성전자주식회사 전자 장치 및 그 제어 방법
US11405199B2 (en) * 2020-03-11 2022-08-02 International Business Machines Corporation Determining key server type and key server redundancy information to enable encryption
WO2021202704A1 (en) * 2020-03-31 2021-10-07 Entrust, Inc. Hardware security module proxy device for storage expansion
US11750566B1 (en) * 2020-03-31 2023-09-05 Amazon Technologies, Inc. Configuring virtual computer systems with a web service interface to perform operations in cryptographic devices
KR102410810B1 (ko) * 2020-09-11 2022-06-21 주식회사 티이이웨어 확장 암호연산 처리 방법 및 시스템
CN112492580B (zh) * 2020-11-25 2023-08-18 北京小米移动软件有限公司 信息处理方法及装置、通信设备及存储介质
US11455429B2 (en) * 2020-12-03 2022-09-27 International Business Machines Corporation Container-based cryptography hardware security module management
CN112818332A (zh) * 2021-01-29 2021-05-18 西安得安信息技术有限公司 一种面向智能制造的密码管理服务平台
US11575508B2 (en) * 2021-06-02 2023-02-07 International Business Machines Corporation Unified HSM and key management service
US12034844B1 (en) * 2021-12-06 2024-07-09 Amazon Technologies, Inc. Techniques for performing compound operations on security modules
WO2023212444A1 (en) * 2022-04-26 2023-11-02 Coinbase, Inc. Systems and methods for facilitating secure authentication when conducting blockchain operations using cryptography-based, storage applications
US20230418953A1 (en) * 2022-06-22 2023-12-28 Palantir Technologies Inc. Secure high scale cryptographic computation through delegated key access
WO2024026428A1 (en) * 2022-07-27 2024-02-01 Passbird Research, Inc. Digital identity allocation, assignment, and management
US20240048380A1 (en) * 2022-08-02 2024-02-08 Capital One Services, Llc Cryptography-as-a-Service
US11924179B2 (en) * 2022-08-08 2024-03-05 International Business Machines Corporation API based distribution of private session key to network communication device for secured communications
US11765142B1 (en) 2022-08-08 2023-09-19 International Business Machines Corporation Distribution of private session key to network communication device for secured communications
US11916890B1 (en) * 2022-08-08 2024-02-27 International Business Machines Corporation Distribution of a cryptographic service provided private session key to network communication device for secured communications
WO2024117830A1 (ko) * 2022-11-30 2024-06-06 히포크랏다오 아이앤씨 통신 시스템에서 블록 체인에 기반하여 보안성을 가진 의료 데이터 거래를 지원하기 위한 방법 및 장치
US20240214181A1 (en) * 2022-12-23 2024-06-27 F5, Inc. Methods for managing hardware security servers and devices thereof
US11895227B1 (en) * 2023-05-23 2024-02-06 Cloudflare, Inc. Distributed key management system with a key lookup service
CN116707806B (zh) * 2023-08-09 2023-10-31 ***量子科技有限公司 密码设备管理方法及管理平台
CN117527220B (zh) * 2023-11-20 2024-07-02 江苏新质信息科技有限公司 一种云密码服务方法及***

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040039925A1 (en) * 2002-01-18 2004-02-26 Mcmillan Craig Key management
US20120131354A1 (en) * 2009-06-22 2012-05-24 Barclays Bank Plc Method and system for provision of cryptographic services
CN103828414A (zh) * 2011-07-20 2014-05-28 维萨国际服务协会 安全网关通信
US20150134953A1 (en) * 2013-11-08 2015-05-14 Motorola Solutions, Inc Method and apparatus for offering cloud-based hsm services
US20150358294A1 (en) * 2014-06-05 2015-12-10 Cavium, Inc. Systems and methods for secured hardware security module communication with web service hosts
US20150358161A1 (en) * 2014-06-05 2015-12-10 Cavium, Inc. Systems and methods for secured backup of hardware security modules for cloud-based web services
CN105191207A (zh) * 2013-02-12 2015-12-23 亚马逊技术股份有限公司 联合密钥管理
CN105210327A (zh) * 2013-03-14 2015-12-30 亚马逊技术股份有限公司 提供设备即服务
US20160105429A1 (en) * 2014-10-08 2016-04-14 International Business Machines Corporation Controlled use of a hardware security module
US20160149877A1 (en) * 2014-06-05 2016-05-26 Cavium, Inc. Systems and methods for cloud-based web service security management basedon hardware security module
CN105893853A (zh) * 2015-02-13 2016-08-24 国际商业机器公司 向访客***指派多个硬件安全模块之一的方法和指派***
WO2017100217A1 (en) * 2015-12-11 2017-06-15 Amazon Technologies, Inc. Key exchange through partially trusted third party
US20180034643A1 (en) * 2016-08-01 2018-02-01 A10 Networks, Inc. SSL Gateway with Integrated Hardware Security Module
US9887836B1 (en) * 2014-09-26 2018-02-06 Amazon Technologies, Inc. Unified management of cryptographic keys using virtual keys and referrals
US20180062854A1 (en) * 2015-08-27 2018-03-01 Cavium, Inc. Systems and methods for perfect forward secrecy (pfs) traffic monitoring via a hardware security module

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002207426A (ja) 2001-01-10 2002-07-26 Sony Corp 公開鍵証明書発行システム、公開鍵証明書発行方法、および電子認証装置、並びにプログラム記憶媒体
US20070180228A1 (en) * 2005-02-18 2007-08-02 Ulf Mattsson Dynamic loading of hardware security modules
US8375430B2 (en) * 2006-06-27 2013-02-12 Intel Corporation Roaming secure authenticated network access method and apparatus
US20080005359A1 (en) * 2006-06-30 2008-01-03 Khosravi Hormuzd M Method and apparatus for OS independent platform based network access control
JP5053179B2 (ja) 2008-05-30 2012-10-17 株式会社日立製作所 検証サーバ、プログラム及び検証方法
US9053480B1 (en) * 2008-09-30 2015-06-09 Amazon Technologies, Inc. Secure validation using hardware security modules
WO2011041419A1 (en) 2009-09-30 2011-04-07 Amazon Technologies, Inc. Modular device authentication framework
US8880905B2 (en) 2010-10-27 2014-11-04 Apple Inc. Methods for processing private metadata
WO2013053393A1 (en) * 2011-10-13 2013-04-18 Evolium Management, S. L. Multi-repository key storage and selection
US8812877B2 (en) * 2011-11-11 2014-08-19 Nec Corporation Database encryption system, method, and program
US9286491B2 (en) * 2012-06-07 2016-03-15 Amazon Technologies, Inc. Virtual service provider zones
JP6538570B2 (ja) * 2013-03-04 2019-07-03 ドキュサイン,インコーポレイティド クラウドデータセキュリティのためのシステム及び方法
US8949594B2 (en) * 2013-03-12 2015-02-03 Silver Spring Networks, Inc. System and method for enabling a scalable public-key infrastructure on a smart grid network
US10362006B2 (en) * 2013-03-15 2019-07-23 Mastercard International Incorporated Systems and methods for cryptographic security as a service
US10574442B2 (en) * 2014-08-29 2020-02-25 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US9584325B1 (en) * 2014-12-04 2017-02-28 Amazon Technologies, Inc. User-configurable cryptographic interface controller
US10509898B2 (en) * 2015-01-21 2019-12-17 Jim Barney et al. Enhanced security authentication methods, systems and media
WO2016188578A1 (en) * 2015-05-28 2016-12-01 Telefonaktiebolaget Lm Ericsson (Publ) METHOD FOR ENABLING SIMULTANEOUS CONTROL OF A PLURALITY OF TPMs AND RELATED COMPONENTS
KR20160145995A (ko) * 2015-06-11 2016-12-21 강릉원주대학교산학협력단 의료데이터 암호화 시스템 및 의료데이터 검색 방법 및 이들을 이용한 의료데이터 관리 시스템
US10484331B1 (en) * 2016-06-28 2019-11-19 Amazon Technologies, Inc. Security appliance provisioning
US10547442B2 (en) * 2016-08-17 2020-01-28 Open Text Sa Ulc System and method for encryption in a content management environment
US10425225B1 (en) * 2016-12-14 2019-09-24 Amazon Technologies, Inc. Synchronizable hardware security module
US10387687B2 (en) * 2017-04-07 2019-08-20 Nxp B.V. Method for symbolic execution on constrained devices
WO2018236420A1 (en) * 2017-06-20 2018-12-27 Google Llc CLOUD EQUIPMENT SECURITY MODULES FOR CRYPTOGRAPHIC EXTERNALIZATION OPERATIONS
US10623183B2 (en) * 2017-11-01 2020-04-14 International Business Machines Corporation Postponing entropy depletion in key management systems with hardware security modules

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040039925A1 (en) * 2002-01-18 2004-02-26 Mcmillan Craig Key management
US20120131354A1 (en) * 2009-06-22 2012-05-24 Barclays Bank Plc Method and system for provision of cryptographic services
CN103828414A (zh) * 2011-07-20 2014-05-28 维萨国际服务协会 安全网关通信
CN105191207A (zh) * 2013-02-12 2015-12-23 亚马逊技术股份有限公司 联合密钥管理
CN105210327A (zh) * 2013-03-14 2015-12-30 亚马逊技术股份有限公司 提供设备即服务
US20150134953A1 (en) * 2013-11-08 2015-05-14 Motorola Solutions, Inc Method and apparatus for offering cloud-based hsm services
US20150358294A1 (en) * 2014-06-05 2015-12-10 Cavium, Inc. Systems and methods for secured hardware security module communication with web service hosts
US20150358161A1 (en) * 2014-06-05 2015-12-10 Cavium, Inc. Systems and methods for secured backup of hardware security modules for cloud-based web services
US20150358311A1 (en) * 2014-06-05 2015-12-10 Cavium, Inc. Systems and methods for secured key management via hardware security module for cloud-based web services
US20160149877A1 (en) * 2014-06-05 2016-05-26 Cavium, Inc. Systems and methods for cloud-based web service security management basedon hardware security module
US9887836B1 (en) * 2014-09-26 2018-02-06 Amazon Technologies, Inc. Unified management of cryptographic keys using virtual keys and referrals
US20160105429A1 (en) * 2014-10-08 2016-04-14 International Business Machines Corporation Controlled use of a hardware security module
CN105893853A (zh) * 2015-02-13 2016-08-24 国际商业机器公司 向访客***指派多个硬件安全模块之一的方法和指派***
US20180062854A1 (en) * 2015-08-27 2018-03-01 Cavium, Inc. Systems and methods for perfect forward secrecy (pfs) traffic monitoring via a hardware security module
WO2017100217A1 (en) * 2015-12-11 2017-06-15 Amazon Technologies, Inc. Key exchange through partially trusted third party
US20180034643A1 (en) * 2016-08-01 2018-02-01 A10 Networks, Inc. SSL Gateway with Integrated Hardware Security Module

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114640445A (zh) * 2022-03-21 2022-06-17 中国电力科学研究院有限公司 Hsm密钥管理***及方法、设备及存储介质
CN115314264A (zh) * 2022-07-25 2022-11-08 阿里云计算有限公司 密钥管理服务***、密钥管理方法、网关及设备

Also Published As

Publication number Publication date
JP2021521718A (ja) 2021-08-26
WO2019212773A1 (en) 2019-11-07
EP3788741A1 (en) 2021-03-10
CA3098836C (en) 2023-09-05
KR20200140916A (ko) 2020-12-16
US10909250B2 (en) 2021-02-02
CA3098836A1 (en) 2019-11-07
KR102229739B1 (ko) 2021-03-22
CN112470425B (zh) 2022-06-10
US20190342079A1 (en) 2019-11-07
JP7205031B2 (ja) 2023-01-17

Similar Documents

Publication Publication Date Title
CN112470425B (zh) 密钥管理***和方法
US11036861B2 (en) Host attestation
US10375067B2 (en) Mutual authentication with symmetric secrets and signatures
US10554636B2 (en) Lightweight encrypted communication protocol
CN110199508B (zh) 敏感数据跨内容分发网络的安全数据分配
US20230142978A1 (en) Lightweight authentication protocol using device tokens
JP7014492B2 (ja) ネットワークを介した機密データの安全なデータエグレス
JP6844876B2 (ja) ネットワークを介した機密データの安全なデータ取得
US11190504B1 (en) Certificate-based service authorization
US11729002B2 (en) Code signing method and system
US11902436B1 (en) Cryptographic key management to prevent data exfiltration
US10693638B1 (en) Protected cryptographic environment
US11811950B1 (en) Dynamic response signing capability in a distributed system
CN114008976A (zh) 用于双壳加密的混合密钥交换
US10218682B1 (en) Secure network protocol cryptographic processing
US11115224B1 (en) Access control system
US11750566B1 (en) Configuring virtual computer systems with a web service interface to perform operations in cryptographic devices
US11671251B1 (en) Application programming interface to generate data key pairs
US11764948B1 (en) Cryptographic service interface

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