CN115280718A - 端点实例之间的安全私钥分发 - Google Patents

端点实例之间的安全私钥分发 Download PDF

Info

Publication number
CN115280718A
CN115280718A CN202180020690.5A CN202180020690A CN115280718A CN 115280718 A CN115280718 A CN 115280718A CN 202180020690 A CN202180020690 A CN 202180020690A CN 115280718 A CN115280718 A CN 115280718A
Authority
CN
China
Prior art keywords
instance
key
signing key
authorization
private
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
CN202180020690.5A
Other languages
English (en)
Other versions
CN115280718B (zh
Inventor
M·贝克
M·斯莫林
T·杜埃尔
G·奥克斯
G·迈克布莱蒂
S·苏霍
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN115280718A publication Critical patent/CN115280718A/zh
Application granted granted Critical
Publication of CN115280718B publication Critical patent/CN115280718B/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/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing

Abstract

一种用于在授权实例之间分发私有签名密钥的方法、计算机程序产品和系统。该方法包括在配置文件中注册多个授权实例,并由每个授权实例生成主机实例密钥对。该方法还包括将公共主机密钥存储在共享数据库中,并将授权实例之一选为签名密钥领导者实例。该方法包括由签名密钥领导者实例生成签名密钥对。签名密钥对包括公共签名密钥和私有签名密钥。该方法还包括将公共签名密钥存储在共享数据库中,并将加密的私有签名密钥发送到授权实例中的请求授权实例。该方法还包括使用由请求授权实例生成的私有主机密钥来解密加密的私有签名密钥。

Description

端点实例之间的安全私钥分发
背景技术
本公开涉及私钥分发,并且更具体地,涉及在用于生成和验证访问令牌的端点实例之间提供私钥分发。
Web应用编程接口(API)可以在提供对其服务和资源的访问之前对用户施加授权要求。Web API可以使用授权端点来为具有经验证的凭证的用户生成访问令牌。在每个随后的请求中,用户可以提供访问令牌以获得对由Web API提供的路由、服务和资源的访问。这些访问令牌可以是JavaScript对象符号(JSON)web令牌(JWT)的形式。JWT可以包括报头、有效载荷和签名。报头包含关于所使用的令牌类型和用于保护其内容的加密算法的元数据。有效载荷可包括声明集,其是关于应当被允许的许可的声明。签名可以用于验证令牌是可信的,并且确保它们没有被篡改。
服务集群是支持服务器应用并充当单个系统的一组计算机。Web API可以被部署在服务集群内以在集群内的各种计算机之间分发流量。流量分发可以帮助负载平衡,提供高可用性,并且提供比传统服务器实现方式更低的延迟。
发明内容
本公开的实施例包括一种用于在授权实例之间分发私有签名密钥的计算机实现的方法。该计算机实现的方法包括在配置文件中注册多个授权实例。授权实例参与公共服务。公共服务是访问令牌生成和验证。该计算机实现的方法还包括由每个授权实例生成主机实例密钥对。主机实例密钥对中的每一对包括公共主机密钥和私有主机密钥。该计算机实现的方法还包括将公共主机密钥存储在共享数据库中,以及将授权实例之一选为签名密钥领导者实例。该计算机实现的方法包括由签名密钥领导者实例生成签名密钥对。签名密钥对包括公共签名密钥和私有签名密钥。该计算机实现的方法还包括将该公共签名密钥存储在共享数据库中,并将经加密的私有签名密钥传送给授权实例的公共服务内的请求授权实例。使用与请求授权实例相对应的公共主机密钥来加密已加密私有签名密钥。该计算机实现的方法还包括使用由请求授权实例生成的私有主机密钥来解密经加密的私有签名密钥。
本公开的另外的实施例包括一种用于在授权实例之间分发私有签名密钥的计算机程序产品,其可以包括具有随其体现的程序指令的计算机可读存储介质,所述程序指令可由处理器执行以使处理器执行方法。该方法包括在配置文件中注册多个授权实例。授权实例参与公共服务。公共服务是访问令牌生成和验证。该方法还包括由每个授权实例生成主机实例密钥对。主机实例密钥对中的每一对包括公共主机密钥和私有主机密钥。该方法还包括将公共主机密钥存储在共享数据库中,并将授权实例之一选为签名密钥领导者实例。该方法包括由签名密钥领导者实例生成签名密钥对。签名密钥对包括公开签名密钥和私有签名密钥。该方法还包括将公共签名密钥存储在共享数据库中,并将加密的私有签名密钥发送到授权实例的公共服务内的请求授权实例。使用与请求授权实例相对应的公共主机密钥来加密已加密私有签名密钥。该方法还包括使用由请求授权实例生成的私有主机密钥来解密加密的私有签名密钥。
附加实施例涉及一种用于在被配置为执行上述方法的授权实例之间分发私有签名密钥的私有密钥分发系统。本发明内容不旨在示出本公开的每个方面、每个实施方式和/或每个实施例。
附图说明
参照以下描述、所附权利要求书和附图,本公开的实施例的这些和其它特征、方面和优点将变得更好理解,其中:
图1是示出根据本公开的实施例的私钥分发系统的框图。
图2是示出根据本公开的实施例的授权实例之间的私钥分发的数据流程图。
图3是根据本公开的实施例的私钥分发过程的流程图。
图4是根据本公开的实施例的私钥请求过程的流程图。
图5是示出根据本公开的实施例的可用于实现本文所述的方法、工具和模块中的一个或多个以及任何相关功能的示例计算机系统的高级框图。
图6描绘了根据本公开的实施例的云计算环境。
图7描绘了根据本公开的实施例的抽象模型层。
虽然本公开可修改为各种修改和替代形式,但其细节已在附图中以示例的方式示出并将详细描述。然而,应当理解,其目的不是限制所描述的特定实施例。相反,本发明将涵盖落入本公开的范围内的所有修改、等效物和替代方案。在附图中,相同的附图标记用于表示相同的部件。
具体实施方式
本公开涉及私钥分发,并且更具体地,涉及在用于生成和验证访问令牌的端点实例之间提供私钥分发。虽然本公开不一定限于此类应用,但是通过使用此上下文的各种示例的讨论可以理解本公开的各个方面。
web API是由一个或多个公开暴露的端点组成的编程接口,该暴露的端点可由webAPI使用以允许两个系统彼此通信。端点指示如何访问资源或服务。如果系统想要访问另一系统的资源,则它必须通过由web API提供的指定端点。
web API可以使用授权端点来生成访问令牌并将它们分发到被授权访问该webAPI的系统。系统可以在随后的请求中使用这些访问令牌,以允许访问由web API提供的资源和服务。访问令牌通常以JWT的格式出现,其具有验证JWT真实性的数字签名。这些签名可以使用非对称密码术来加密。
非对称密码术是使用密钥对的密码系统。密钥对包括公钥和私钥。公钥可以广泛传播,私钥只由密钥所有者保存。在该密码系统中,任何个人或系统都可以使用公钥来加密消息,但是该加密的消息只能用所有者的私钥来解密。密钥对也可以用于创建数字签名。数字签名可以是用于确定文档或软件的真实性的一组算法和加密保护。
端点可以在服务集群内进行操作以分发进入web API的因特网流量。服务集群可以提供实例之间的负载平衡,并且降低web API和应用之间的延迟。另外,由于服务集群提供的冗余,web API具有更高的可用性。如果一个实例离线或关闭,则另一个实例可以继续执行请求的工作。
当服务集群被用作授权端点时,生成若干授权实例以执行相同的任务。这些授权实例可以被本地、区域地或全局地分散,以帮助降低应用和web API之间的延迟。对于要操作的授权实例,必须能够向应用提供具有适当凭证的JWT访问令牌。这些访问令牌包括验证访问令牌的签名。使用签名密钥对来加密签名,以便为访问令牌提供安全性并确保有效性。包括私有签名密钥的配置文件被分发到服务集群内的每个授权实例。授权实例可以在将访问令牌的签名部分提供给授权应用之前使用私有签名密钥来加密该签名部分。
然而,由于在配置文件中将私有签名密钥分发到每个授权实例,因此仍然存在对授权实例安全性的限制。这些配置文件被存储在永久性存储器中。攻击者可能能够危害授权实例并获得对机器的持久存储的访问。一旦被泄密,攻击者就可以复制配置文件并提取私有签名密钥。然后,攻击者可以使用私有签名密钥来生成访问令牌,并获得对由web API提供的资源的访问。
本公开的实施例可以通过使用用于在授权实例之间分发私有签名密钥的私钥分发系统来克服上述和其他问题。私钥分发系统包括参与公共服务的多个授权实例。由授权实例执行的公共服务是生成并提供对授权应用的访问令牌。每个授权实例被配置成生成主机实例密钥对。将授权实例选作被配置成生成签名密钥对的签名密钥领导者实例。签名密钥领导者实例还被配置为当被请求时将私有签名密钥分发到每个授权实例。签名密钥领导者实例还被配置成使用与请求授权实例相对应的公共主机密钥来加密私有签名密钥。
更具体地说,这里描述的私钥分发系统从授权实例中选择签名密钥领导者实例,以生成和分发私有签名密钥。授权实例可以从签名密钥领导者实例请求私有签名密钥。在接收到请求时,签名密钥领导者实例可以验证请求,并在将私有签名密钥发送到请求授权实例之前对私有签名密钥进行加密。用于私有签名密钥的加密和解密的主机实例密钥对是特定于每个授权实例的。因此,只有请求授权实例可以解密该私有签名密钥。这样,私钥分发系统避免使用配置文件来分发私有签名密钥。
另外,或者可替换地,一旦授权实例获得了私有签名密钥,则将其存储在存储器中而不是永久性存储装置中。如果授权实例被关闭并重新启动,则它将需要生成新的主机实例密钥对并将公共主机密钥提供给共享数据库。授权实例然后可以从签名密钥领导者实例请求私有签名密钥,因为密钥在关机时将丢失。
在一些实施例中,签名密钥领导者实例在传输私有签名密钥之前采取附加验证步骤来验证请求授权实例。请求授权实例可以检测在共享数据库中存储的新的公共签名密钥,并且可以从签名密钥领导者实例请求对应的私有签名密钥。当做出请求时,签名密钥领导者实例可通过检查请求的源因特网协议(IP)地址来验证请求。如果IP地址与请求授权实例的已知IP地址匹配,则签名密钥领导者实例可以继续加密私有签名密钥并将加密的密钥发送给请求授权实例。
另外或替代地,签名密钥领导者实例可以从在授权实例的初始化期间使用的配置文件检索与请求授权实例有关的注册。注册可以包括实际授权实例的IP地址。签名密钥领导者然后可以将注册中的IP地址与请求中提供的IP地址进行比较。这可以帮助防止攻击者将他们的地址做假以看起来像合法的授权实例。
另外或替代地,签名密钥领导者实例可以从在授权实例的初始化期间更新的配置文件检索与请求授权实例有关的注册。使用位于注册中的主机名,签名密钥领导者实例可以使用请求授权实例的主机名来发送加密的私有签名密钥。到主机名的传输提供了附加的安全层,因为攻击者在可能损害整个系统之前将需要损害共享数据库和配置文件两者。
本公开的实施例包括对不活动签名密钥领导者实例的检测。签名密钥领导者实例可按连续的间隔写入存储在共享数据库中的密钥领导者日志。如果授权实例检测到签名密钥领者实例不再响应或不再写入密钥领者日志,则可以选择新的签名密钥领者实例。在一些实施例中,当选择新的签名密钥领导者实例时,执行签名密钥对的翻转。因此,由先前签名密钥领导者使用的签名密钥对不再有效,并且授权实例将需要从新的签名密钥领导者实例请求新的私有签名密钥。
现在参考图1,示出了根据本公开的实施例的私钥分发系统100的框图。私钥分发系统100包括端点110、共享数据库130、网络140和配置文件150。端点110包括授权实例120-1、120-2、120-N(统称为“授权实例120”),其中N是表示任何数量的可能授权实例120的可变整数。
根据本公开的实施例,端点110是私钥分发系统的被配置成充当服务器侧web API和其他外部系统之间的通信信道的组件。这些外部系统包括但不限于客户机、应用、web浏览器、其它web API。
在一些实施例中,端点110在服务集群内操作。集群由多个服务器组成,这些服务器被分组以实现公共服务,并且可以被看作单个计算机。这些服务器或节点可以向用户提供一组网络资源,这些网络资源是集群的节点。集群提供了可以改进可扩展性并提供高可用性的特征。为了可扩展性,集群中的服务节点可以动态地添加机器以增加集群的处理能力。对于高可用性,如果群集中的节点发生故障,则在该节点上运行的服务可以被其他服务节点接管,从而增强群集的高可用性。
群集中的节点可以被定义为节点实例。节点实例是表示节点的实例化或实际出现的模型元素。节点实例基于现有节点。节点实例表示系统环境中的特定和定义的节点。这些实例可以被部署以表示在运行时存在的资源。例如,节点实例可以表示web服务器、数据服务器、授权服务器等。
根据本公开的各实施例,授权实例120是端点110的被配置成作为web API的服务器实例来操作的组件。授权实例120可以作为授权服务器、应用服务器、web服务器、资源服务器等来操作。在一些实施例中,授权实例120向具有授权凭证的客户端提供访问令牌,并且作为授权服务器来操作。访问令牌是表示给予客户机的授予许可的字符串。这些访问令牌可以以JWT格式出现。在一些实施例中,授权实例作为被配置为执行数字签名操作的资源服务器来操作。
JWT格式包括报头、有效载荷和签名。报头包括关于访问令牌的类型和用于保护内容的密码算法的元数据。这些密码算法通常是密钥散列消息认证码(HMAC)算法。HMAC算法包括但不限于安全散列算法2(SHA-2)、Rivest-Shamir-Adleman(RSA)和JSON Web算法(JWA)。RSA算法还可以用于加密JWT的签名部分。
有效载荷包括一组声明。JWT规范定义了通常包括在访问令牌中的标准字段。另外,还可包括API专用的自定义声明。签名用于安全地验证访问令牌。可以通过使用Base64URL编码对报头和有效载荷进行编码并将两者与周期分隔符连接在一起来计算签名。在报头中指定的算法和私有签名密钥125可以用于加密签名。
授权实例120还被配置为生成主机实例密钥对。主机实例密钥对包括私有主机密钥127和公共主机密钥128。公共主机密钥128可被发送到共享数据库130以供存储。主机实例密钥对对于每个授权实例120是唯一的,并且私有主机密钥127可以存储在存储器中。主机实例密钥对是在非对称密码术中使用的密钥对。公共主机实例密钥128可用于加密消息(例如,私有签名密钥125),而私有主机实例密钥127可用于解密消息。
授权实例120还被配置为选择签名密钥领导者实例。签名密钥领者实例是授权实例120中的一个,其被进一步配置成生成签名密钥对实例。签名密钥对包括私有签名密钥125和公共签名密钥126。签名密钥对是主机实例密钥对所独有的,并且被用于对为客户端生成的访问令牌进行加密。私有签名密钥125可以用于加密访问令牌中的签名,并且公共签名密钥126可以用于验证访问令牌的有效性。
签名密钥领导者实例还被配置成使用对应于请求授权实例120的公共主机密钥128来加密私有签名密钥125。例如,授权实例120可以从签名密钥领导者实例请求私有签名密钥125。在接收到请求时,签名密钥领导者实例可以检索存储在共享数据库中的请求授权实例120的公共主机密钥128。使用公共主机密钥128,签名密钥领导者实例可在将私有签名密钥发送给请求授权实例120之前加密私有签名密钥125。
在一些实施例中,签名密钥领导者实例在一间隔上更新存储在共享数据库130中的密钥领导者日志129。例如,签名密钥领导者实例可以每三十秒、每分钟、每两分钟等更新密钥领导者日志129。授权实例120可以读取密钥领者日志以确定签名密钥领者实例是活动的并且可用于提供私有签名密钥。
根据本公开的实施例,共享数据库130是私钥分发系统100的被配置为存储与私钥分发系统100有关的信息的组件。尽管在图1中被示为数据库,但是共享数据库130可以是映射、表、日志、元数据等。共享数据库130可以存储来自由授权实例120生成的主机实例密钥对127的公共主机实例密钥。另外,共享数据库130可以存储密钥领导者日志和由签名密钥领导者实例生成的公共签名密钥。
私钥分发系统100的网络140组件被配置为促进客户端和端点110之间的直接、高速数据传输和通信。网络140的示例包括局域网(LAN)、广域网(WAN)、存储区域网(SAN)、内联网或其任何组合。
在一些实施例中,网络140是因特网。因特网包括使用公共通信协议的互连计算机网络和设备的全球系统,所述公共通信协议例如是TCP/IP因特网协议族中的传输控制协议(TCP)、用户数据报协议(UDP)和因特网协议(IP)。
根据本公开的实施例,配置文件150是私钥分发系统100的被配置成存储和提供与授权实例120有关的信息的组件。配置文件150可以存储在私钥分发系统100中初始化的每个授权实例120的注册。在一些实施例中,注册被硬编码在源代码中,使得授权实例的注册不能被更改。
注意,图1旨在描述私钥分发系统100的主要代表性组件。然而,在一些实施例中,各个组件可以具有比图1中所表示的更大或更小的复杂度,可以存在不同于图1中所示的组件或除其之外的组件,并且这些组件的数量、类型和配置可以变化。
图2是示出根据本公开的实施例的授权实例之间的私钥分发的数据流程图200。为了说明数据流图200,但不限制实施例,在图1的私钥分发系统100的上下文中描述图2。
在操作210,授权实例120被初始化并被配置为执行公共服务。在初始化期间,配置文件150可以存储由私钥分发系统100初始化的每个授权实例120的注册。注册可包括授权实例120的IP地址,并用作授权实例120的验证手段。在一些实施例中,注册被硬编码到初始化授权实例120的源代码中。
在操作220,每个授权实例120可以生成主机实例密钥对。主机实例密钥对包括私有主机密钥127和公共主机密钥128。授权实例120可以将它们的公共主机密钥128发送222到共享数据库130。检测到没有签名密钥领者实例被选择,则授权实例可以从所发起的授权实例中选择224签名密钥领者实例,授权实例120可以通过作为第一授权实例120在密钥领者日志129中进行输入226而被选择作为签名密钥领者实例。
在操作230,签名密钥领导者实例生成签名密钥对。签名密钥对包括私有签名密钥125和公共签名密钥126。一旦生成,签名密钥领导者实例就可以将公共签名密钥126传送232到共享数据库130。在检测到公共签名密钥126已经被存储在共享数据库130中时,授权实例单独地向签名密钥领导者实例请求234私有签名密钥。
在操作240,签名密钥领导者实例对由请求授权实例120发送的请求234执行有效性检查。这可以包括验证请求的IP地址与已知在公共服务中的授权实例120的IP地址匹配。有效性检查还可以以对所发送的请求授权实例的回调的形式来进行。签名密钥领导者实例可以用Ok响应来响应该请求。签名密钥领导者实例可从配置文件150检索请求授权实例120的主机名,并使用该主机名来用加密的签名私钥执行回调。一旦被验证为有效请求,签名密钥领导者实例请求242与请求授权实例120有关的公共主机密钥128。共享数据库130可以将与请求授权实例120相对应的公共主机密钥128传输244回到签名密钥领导者实例。
在操作250,签名密钥领导者实例使用从共享数据库130获得的公共主机密钥128来加密私有签名密钥125,并将加密的私有签名密钥发送252到请求授权实例120。在操作260,请求授权实例120可使用其私有主机密钥127来解密经加密的私有签名密钥125。
图3是示出根据本公开的实施例的用于在授权实例之间分发私有签名密钥的过程300的流程图。过程300可由硬件、固件、在至少一个过程上执行的软件或其任何组合来执行。例如,过程300的任何或所有步骤可由一个或多个计算设备(例如,图5的计算机系统500)执行。为了说明过程300,但不限制实施例,在图1的私钥分发系统100的上下文中描述图3。
过程300开始于将用于被配置为执行公共服务的每个授权实例120的注册添加到配置文件150中。这在步骤310中示出。注册可包括分配给每个授权实例120的实例标识和授权实例120的IP地址。实例标识和/或IP地址可用于在随后的请求中验证授权实例120。
每个授权实例120生成主机实例密钥对。这在步骤320中示出。主机实例密钥对可用于加密和解密公共服务中使用的私有签名密钥126。主机实例密钥对可以用于非对称密码术密钥技术。这些密钥技术包括但不限于Rivest-Shamir-Adleman(RSA)、Diffie-Hellman、椭圆曲线Diffie-Hellman(ECDH)、安全远程密码协议(SRP)、预共享密钥(PSK)、数字签名算法(DSA)、椭圆曲线DSA(ECDSA)、RC4、三重数据加密算法(三重DES)、高级加密标准(AES)、国际数据加密算法(IDEA)、数据加密标准(DES)、Camellia、基于散列的MD5和安全散列算法(SHA)散列函数。
另外,主机实例密钥对可以用在使用非对称密钥算法的协议中。该协议包括但不限于安全/多用途因特网邮件扩展(S/MIME)、GNU保密防护(GPG)、因特网密钥交换、由Z和实时传输协议(ZRTP)组成的非常好的保密(PGP)、传输层安全性(TLS)和安全因特网实况会议协议(SILC)。
公共主机实例密钥128被存储在共享数据库130中。这在步骤330中示出。每个授权实例120将它们的公共主机实例密钥128发送到共享数据库130。这允许私钥分发系统100的另一组件检索公共主机实例密钥128并加密仅对应的授权实例120可解密的消息。私有主机实例密钥127被存储在授权实例120的存储器中。如果授权实例120要关闭、崩溃或重启,则授权实例120将需要重新生成新的主机实例密钥对并将其公共主机密钥128重新发送到共享驱动器。
从执行公共服务的授权实例120中选出签名密钥领者实例。这在步骤340中示出。当第一授权实例120对密钥领导者日志129进行输入时,可以选择签名密钥领导者实例。在充当签名密钥领者实例的同时,授权实例120可以设定的间隔更新密钥领者日志。例如,签名密钥领导者实例可以每分钟更新密钥领导者日志129,以通知其它授权实例120签名密钥领导者实例已经被选择,并且它们可以将私有签名密钥125提供给其它授权实例120。
在一些实施例中,签名密钥领导者实例最初是预定授权实例120。例如,可以选择要在配置文件150中注册的第一授权实例120作为第一签名密钥领导者实例。如果签名密钥领者实例120离线,则可以选择另一授权实例120作为签名密钥领者实例。
在一些实施例中,当签名密钥领导者实例停止更新密钥领导者日志129时,另一个授权实例120被选为签名密钥领导者实例。例如,如果签名密钥领导者实例在超过三分钟内没有更新签名密钥日志129,则选择要写入签名密钥日志129的第一授权实例120作为新的签名密钥领导者实例。签名密钥领者日志129可以由其他授权实例120读取,作为通知它们已经选择了新的签名密钥领者实例的方式。
签名密钥领导者实例生成签名密钥对。这在步骤350中示出。签名密钥对包括私有签名密钥125和公共签名密钥126。授权实例120可以在为客户端生成访问令牌时使用相同的私有签名密钥125来加密签名。通过具有一个签名私钥125,私钥分发系统100最小化了当使用多个签名密钥对时可能发生的开销。
签名密钥对可以用于各种数字签名算法。这些算法包括但不限于RSA概率签名方案(RSA-PSS)、ECDSA、Edwards-曲线数字签名算法(EdDSA)、ElGamal签名方案、Rabin签名算法和聚合签名。
公共签名密钥126被存储在共享数据库130中。这在步骤360中示出。签名密钥领导者实例将所生成的公共签名密钥126发送到共享数据库130。这允许web API和应用检索公共签名密钥126并使用私有签名密钥验证签名的访问令牌。如果签名密钥领导者实例在存储公共签名密钥126之前要关闭或重启,则需要选择另一授权实例120,并重复生成新的签名密钥对并将新的公共签名密钥126存储在共享数据库130中的过程。
签名密钥领导者将加密的私有签名密钥发送给请求授权实例120。这在步骤370中示出。签名密钥领导者实例可以利用存储在共享数据库130中的公共主机密钥128来加密每个对应的授权实例120的私有签名密钥。在接收到对签名私钥125的请求后,签名密钥领导者实例可将加密的签名私钥125发送给请求授权实例120。通过用对应于请求授权实例120的公共主机实例密钥128来加密私有签名密钥125,仅请求授权实例120可解密私有签名密钥126。
图4是示出根据本公开的实施例的用于将加密的私有签名密钥传输到授权实例(例如,图3中的过程300的步骤370)的过程400的流程图。过程400可由硬件、固件、在至少一个过程上执行的软件或其任何组合来执行。例如,过程400的任何或所有步骤可由一个或多个计算设备(例如,图5的计算机系统500)执行。为了说明过程400,但不限制实施例,在图1的私钥分发系统100的上下文中描述图4。
授权实例120检测存储在共享数据库130中的公共签名密钥126。这在步骤410中示出。在共享数据库中检测到的公共签名密钥126可向授权实例120指示可从签名密钥领导者实例请求私有签名密钥125。
在一些实施例中,授权实例120检测存储在共享数据库130中的新的公共签名密钥126。这可以通过检查公共签名密钥126或通过在密钥领导者日志129中指出的新的公共签名密钥126已经被发送的指示来检测。在由管理员设置的预定时间之后,签名密钥领导者实例可以生成新的签名密钥对,通常称为密钥翻转。例如,钥匙翻滚可每周、每月、每六周等发生。在一些实施例中,当选择新的签名密钥领导者实例时,发生密钥翻转。
授权实例120向签名密钥领导者实例请求私有签名密钥125。这在步骤420中示出。授权实例可以向签名密钥领导者实例发送请求命令,该请求命令包括请求授权实例120的IP地址。
在接收到请求时,签名密钥领导者实例验证该请求。这在步骤430中示出。在一些实施例中,签名密钥领导者实例从在授权实例120的初始化期间使用的配置文件150中检索与请求授权实例120相关的注册。注册可以包括授权实例120标识及其IP地址。签名密钥领导者实例可以验证请求的源IP地址与位于注册中的请求授权实例的所存储的IP地址相匹配。
在一些实施例中,签名密钥领导者实例从在授权实例120的初始化期间使用的配置文件150中检索与请求授权实例120相关的注册。签名密钥领导者实例可以定位在注册中找到的主机名。签名密钥领导者实例可以将加密的签名私钥发送到请求授权实例的主机名。
确定由请求授权实例120做出的请求是否有效。这在步骤440中示出。如果签名密钥领导者实例确定该请求不能被验证通过,则拒绝该请求。这在步骤450中示出。然而,如果签名密钥领导者实例能够验证请求,则过程400前进至步骤460。
私有签名密钥领导者实例从对应于请求授权实例120的共享数据库中检索公共主机密钥128。这在步骤460中示出。然后,签名密钥领导者实例可以使用公共主机密钥128来加密私有签名密钥。这在步骤470中示出。一旦被加密,加密的私用签名密钥就可被发送到请求授权实例120。这在步骤480中示出。
现在参考图5,示出了根据本公开的实施例的示例计算机系统500(例如,私钥分发系统100)的高级框图,该计算机系统可以用于实现本文描述的方法、工具和模块中的一个或多个以及任何相关功能(例如,使用计算机的一个或多个过程或电路或计算机处理器)。在一些实施例中,计算机系统500的主要组件可以包括一个或多个处理器502、存储器504、终端接口512、I/O(输入/输出)设备接口514、存储接口516和网络接口518,所有这些组件可以直接或间接地通信耦合,以便经由存储器总线503、I/O总线508和I/O总线接口510进行组件间通信。
计算机系统500可以包含一个或多个通用可编程中央处理单元(CPU)502-1、502-2、502-3和502-N,在此统称为处理器502。在一些实施例中,计算机系统500可以包含相对大的系统的典型的多个过程OR;然而,在其它实施例中,计算机系统500可以替代地是单CPU系统。每个处理器501可以执行存储在存储器504中的指令,并且可以包括一级或多级板载高速缓存。
存储器504可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)522或高速缓存存储器524。计算机系统500还可以包括其它可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统526可被提供用于从不可移动、非易失性磁介质,诸如“硬盘驱动器”,读取和向其写入。尽管未示出,可提供用于从可移动、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器,或可提供用于从可移动、非易失性光盘,诸如CD-ROM、DVD-ROM或其它光学介质,读取或向其写入的光盘驱动器。此外,存储器504可以包括闪存,例如,闪存棒驱动器或闪存驱动器。存储器设备可以通过一个或多个数据介质接口连接到存储器总线503。存储器504可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,这些程序模块被配置成用于执行不同实施例的功能。
尽管存储器总线503在图5中被示为提供处理器502、存储器504和I/O总线接口510之间的直接通信路径的单个总线结构,但是在一些实施例中,存储器总线503可以包括多个不同的总线或通信路径,其可以以各种形式中的任何形式来布置,诸如分层、星形或网状配置中的点对点链路、多层总线、并行和冗余路径、或任何其他适当类型的配置。此外,虽然I/O总线接口510和I/O总线508被示为单个相应单元,但是在一些实施例中,计算机系统500可以包含多个I/O总线接口单元、多个I/O总线或两者。此外,虽然示出了将I/O总线508与通向各种I/O设备的各种通信路径分开的多个I/O接口单元,但是在其他实施例中,一些或所有I/O设备可以直接连接到一个或多个系统I/O总线。
在一些实施例中,计算机系统500可以是多用户大型计算机系统、单用户系统、或者服务器计算机或者具有很少或者没有直接用户接口但是从其它计算机系统(客户端)接收请求的类似设备。此外,在一些实施例中,计算机系统500可以被实现为台式计算机、便携式计算机、膝上型或笔记本计算机、平板计算机、袖珍计算机、电话、智能电话、网络交换机或路由器、或任何其他适当类型的电子设备。
注意,图5旨在描绘示例性计算机系统500的代表性主要组件。然而,在一些实施例中,各个组件可以具有比图5中所表示的更大或更小的复杂度,可以存在不同于图5中所示的那些组件或除其之外的组件,并且这些组件的数量、类型和配置可以变化。
一个或多个程序/实用程序528可以存储在存储器504中,每个程序/实用程序具有至少一组程序模块530。程序/实用程序528可以包括系统管理程序(也称为虚拟机监视器)、一个或多个操作系统、一个或多个应用程序、其他程序模块和程序数据。操作系统、一个或多个应用程序、其它程序模块和程序数据或其某种组合中的每一个可包括网络环境的实现。程序528和/或程序模块530一般执行各实施例的功能或方法。
应当理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、进程、存储器、存储装置、应用、虚拟机和服务)的共享池的方便的按需网络访问,所述可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特征如下:
按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
广域网接入:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
资源池化:供应商的计算资源被集中以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级别(例如国家、州或数据中心)指定位置。
快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
测量服务:云系统通过利用在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资源使用,从而为所利用服务的提供者和消费者两者提供透明性。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用程序可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户机界面从各种客户机设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至个别应用能力的底层云基础结构,可能的例外是有限的用户专用应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者可以部署和运行任意软件的其它基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储、部署的应用的控制,以及可能对选择的网络组件(例如,主机防火墙)的有限控制。
部署模型如下:
私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于建筑物内或建筑物外。
社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多云(私有、共同体或公共)的组合,所述云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
现在参考图6,描绘了说明性云计算环境600。如图所示,云计算环境600包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点610,所述本地计算设备例如个人数字助理(PDA)或蜂窝电话620-1、台式计算机620-2、膝上型计算机620-3和/或汽车计算机系统620-4。节点610可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境600提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图6中所示的计算设备620-1至620-4的类型仅旨在是说明性的,并且计算节点610和云计算环境600可以在任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)上与任何类型的计算设备通信。
现在参考图7,示出了由云计算环境600(图6)提供的一组功能抽象层700。应当预先理解,图7中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
硬件和软件层710包括硬件和软件组件。硬件组件的示例包括大型机711;基于RISC(精简指令集计算机)架构的服务器712;服务器713;刀片服务器714;存储设备715;以及网络和联网组件716。在一些实施例中,软件组件包括网络应用服务器软件717和数据库软件718。
虚拟化层720提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器721;虚拟存储装置722;虚拟网络723,包括虚拟专用网络S;虚拟应用和操作系统724;以及虚拟客户机725。
在一个示例中,管理层730可以提供以下描述的功能。资源供应731提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价732提供了在云计算环境中利用资源时的成本跟踪,以及针对这些资源的消耗的开账单或开发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户733为消费者和系统管理员提供对云计算环境的访问。服务级别管理734提供云计算资源分配和管理,使得满足所需的服务级别。服务级别协议(SLA)规划和履行735提供了对云计算资源的预先安排和采购,其中根据SLA预期未来需求。
工作负载层740提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括映射和导航741;软件开发和生命周期管理742(例如,私钥分发系统100);虚拟教室教育递送743;数据分析处理744;交易处理745;以及精确群组分析746。
本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器或执行本发明的各方面。
计算机可读存储介质可以是能够保持和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者是以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言(例如Smalltalk、C++等)以及过程编程语言(例如“C”编程语言或类似的编程语言)。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给处理器或计算机或其它可编程数据处理装置以产生机器,使得经由处理器或计算机或其它可编程数据处理装置执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框可以作为一个步骤来完成,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。

Claims (20)

1.一种用于在授权实例之间分发私有签名密钥的计算机实现的方法,所述计算机实现的方法包括:
通过提供对配置的注册,在配置文件中注册多个授权实例,所述授权实例参与公共服务;
为每个授权实例生成主机实例密钥对,其中每个主机实例密钥对包括公共主机密钥和私有主机密钥;
将所述公共主机密钥存储在共享数据库中;
将所述授权实例中的一个选为签名密钥领导者实例;
由所述签名密钥领导者实例生成签名密钥对,其中所述签名密钥对包括公共签名密钥和私有签名密钥;
将所述公共签名密钥存储在所述共享数据库中;
将加密的私有签名密钥传输到所述授权实例中的请求授权实例,其中,所述私有签名密钥是使用与所述请求授权实例相对应的所述公共主机密钥来加密的;以及
由所述请求授权实例使用由所述请求授权实例生成的所述私有主机密钥来解密所述加密的私有签名密钥。
2.根据权利要求1所述的计算机实现的方法,其中,传输所述加密的私有签名密钥包括:
由所述请求授权实例检测存储在所述共享数据库中的所述公共签名密钥;
由所述请求授权实例从所述签名密钥领导者实例请求所述私有签名密钥;
通过检查所述请求的源IP地址来验证对所述签名密钥领导者实例做出的所述请求;
在验证所述请求之后,从所述共享数据库中检索对应于所述请求授权实例的所述公共主机密钥;
使用所述公共主机密钥来加密所述私有签名密钥;以及
将所述加密的私有签名密钥传输到所述请求授权实例。
3.根据权利要求2所述的计算机实现的方法,其中验证所述请求包括:
从所述配置文件检索与所述请求授权实例相关的注册;以及
验证所述请求的所述源IP地址与位于所述注册中的所述请求授权实例的存储的IP地址匹配。
4.根据权利要求1至3中的一项所述的计算机实现的方法,还包括:
从所述配置文件检索针对所述请求授权实例的注册,所述注册包括所述请求授权实例的主机名;
通过在所述请求授权实例的主机名上的回调提供所述加密的私人签名密钥。
5.根据权利要求1至4中的一项所述的计算机实现的方法,还包括:
检测所述签名密钥领导者实例不再响应;以及
从所述授权实例中选出新的签名密钥领导者实例。
6.根据权利要求1至5中的一项所述的计算机实现的方法,还包括:
执行所述签名密钥对的翻转以生成新的签名密钥对;以及
将新的公共签名密钥添加到所述共享数据库。
7.根据权利要求1至6中的一项所述的计算机实现的方法,其中,所述签名密钥对被存储在所述签名密钥领导者实例的存储器中。
8.一种非暂时性计算机可读存储介质,其上存储有用于控制计算机系统以进行以下操作的指令:
通过提供对配置的注册,在配置文件中注册多个授权实例,所述授权
实例参与公共服务;
为所述授权实例中的每一个生成主机实例密钥对,其中所述主机实例密钥对中的每一个包括公共主机密钥和私有主机密钥;
将所述公共主机密钥存储在共享数据库中;
选择所述授权实例中的一个作为签名密钥领导者实例;
由所述签名密钥领导者实例生成签名密钥对,其中,所述签名密钥对包括公共签名密钥和私有签名密钥;
将所述公共签名密钥存储在所述共享数据库中;以及
将加密的私有签名密钥传送到所述授权实例中的请求授权实例,其中,所述私有签名密钥使用与所述请求授权实例相对应的所述公共主机密钥被加密以生成所述加密的私有签名密钥。
9.根据权利要求8所述的非暂时性计算机可读存储介质,其中,传输所述加密的私有签名密钥包括用于使所述计算机系统进行以下操作的指令:
由所述请求授权实例检测所述共享数据库中的所述公共签名密钥;
由所述请求授权实例从所述签名密钥领导者实例请求所述私有签名密钥;
通过检查所述请求的源IP地址来验证对所述签名密钥领导者实例做出的所述请求;
在验证所述请求之后,从所述共享数据库中检索对应于所述请求授权实例的所述公共主机密钥;
使用所述公共主机密钥来加密所述私有签名密钥;以及
将所述加密的私有签名密钥传输到所述请求授权实例。
10.根据权利要求9所述的非暂时性计算机可读存储介质,其中验证所述请求包括使所述计算机系统进行以下操作的指令:
从所述配置文件检索针对所述请求授权实例的注册;以及
验证所述请求的所述源IP地址与位于所述注册中的所述请求授权实例的存储的IP地址匹配。
11.根据权利要求8至10中的一项所述的非暂时性计算机可读存储介质,还包括使所述计算机系统进行以下操作的指令:
从所述配置文件检索针对所述请求授权实例的注册,所述注册包括所述请求授权实例的主机名;
通过在所述请求授权实例的主机名上的回调提供所述加密的私人签名密钥。
12.根据权利要求8至11中的一项所述的非暂时性计算机可读存储介质,还包括使所述计算机系统进行以下操作的指令:
检测所述签名密钥领导者实例不再响应;以及
从授权实例中选择新的签名密钥领导者实例。
13.根据权利要求8至12中的一项所述的非暂时性计算机可读存储介质,还包括使所述计算机系统进行以下操作的指令:
执行所述签名密钥对的翻转以生成新的签名密钥对;以及
将新的公共签名密钥添加到共享数据库。
14.根据权利要求8至13中的一项所述的非暂时性计算机可读存储介质,其中,所述签名密钥对被存储在所述签名密钥领导者实例的存储器中。
15.一种用于在授权实例之间分发私有签名密钥的计算机系统,所述计算机系统包括:
数据处理组件;
物理存储器;以及
本地数据存储装置,其上存储有计算机可执行程序代码,所述计算机可执行程序代码在由所述数据处理组件执行时使所述数据处理组件:
通过提供对配置的注册,在配置文件中注册多个授权实例,所述授权实例参与公共服务;
为所述授权实例中的每一个生成主机实例密钥对,其中所述主机实例密钥对中的每一个包括公共主机密钥和私有主机密钥;
将所述公共主机密钥存储在共享数据库中;
选择所述授权实例中的一个作为签名密钥领导者实例;
由所述签名密钥领导者实例生成签名密钥对,其中,所述签名密钥对包括公共签名密钥和私有签名密钥;
将所述公共签名密钥存储在所述共享数据库中;以及
将加密的私有签名密钥传送到所述授权实例中的请求授权实例,其中,所述私有签名密钥使用与所述请求授权实例相对应的所述公共主机密钥被加密以生成所述加密的私有签名密钥。
16.根据权利要求15所述的计算机系统,其中,传输所述加密的私有签名密钥使得所述数据处理组件:
由所述请求授权实例检测所述共享数据库中的所述公共签名密钥;
由所述请求授权实例从所述签名密钥领导者实例请求所述私有签名密钥;
通过检查所述请求的源IP地址来验证对所述签名密钥领导者实例做出的所述请求;
在验证所述请求之后,从所述共享数据库中检索对应于所述请求授权实例的所述公共主机密钥;
使用所述公共主机密钥来加密所述私有签名密钥;以及
将所述加密的私有签名密钥传输到所述请求授权实例。
17.根据权利要求16所述的计算机系统,其中验证所述请求使得所述数据处理组件:
从所述配置文件检索针对所述请求授权实例的注册;以及
验证所述请求的所述源IP地址与位于所述注册中的所述请求授权实例的存储的IP地址匹配。
18.根据权利要求15至17中的一项所述的计算机系统,还包括:
从所述配置文件检索针对所述请求授权实例的注册,所述注册包括所述请求授权实例的主机名;
通过在所述请求授权实例的主机名上的回调提供所述加密的私人签名密钥。
19.根据权利要求15至18中的一项所述的计算机系统,还包括:
检测所述签名密钥领导者实例不再响应;以及
从授权实例中选择新的签名密钥领导者实例。
20.根据权利要求15至19中的一项所述的计算机系统,还包括:
执行所述签名密钥对的翻转以生成新的签名密钥对;以及
将新的公共签名密钥添加到共享数据库。
CN202180020690.5A 2020-03-13 2021-02-10 用于授权实例之间的安全私钥分发的方法和系统 Active CN115280718B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/818,534 US11121864B1 (en) 2020-03-13 2020-03-13 Secure private key distribution between endpoint instances
US16/818,534 2020-03-13
PCT/IB2021/051090 WO2021181176A1 (en) 2020-03-13 2021-02-10 Secure private key distribution between endpoint instances

Publications (2)

Publication Number Publication Date
CN115280718A true CN115280718A (zh) 2022-11-01
CN115280718B CN115280718B (zh) 2023-10-24

Family

ID=77665439

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180020690.5A Active CN115280718B (zh) 2020-03-13 2021-02-10 用于授权实例之间的安全私钥分发的方法和系统

Country Status (10)

Country Link
US (1) US11121864B1 (zh)
JP (1) JP2023516130A (zh)
KR (1) KR20220134572A (zh)
CN (1) CN115280718B (zh)
AU (1) AU2021235526B2 (zh)
CA (1) CA3166663A1 (zh)
DE (1) DE112021000340T5 (zh)
GB (1) GB2608570B (zh)
IL (1) IL295069A (zh)
WO (1) WO2021181176A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103250162A (zh) * 2010-10-12 2013-08-14 捷讯研究有限公司 用于保护远程仓库中的凭证的方法
CN103460195A (zh) * 2011-02-11 2013-12-18 西门子医疗保健诊断公司 用于安全软件更新的系统和方法
CN110050437A (zh) * 2016-09-06 2019-07-23 华为技术有限公司 分布式证书注册的装置和方法
WO2020015525A1 (en) * 2018-07-17 2020-01-23 Huawei Technologies Co., Ltd. Verifiable encryption based on trusted execution environment

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002013445A2 (en) * 2000-08-04 2002-02-14 First Data Corporation Linking public key of device to information during manufacture
US7181017B1 (en) * 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7523490B2 (en) * 2002-05-15 2009-04-21 Microsoft Corporation Session key security protocol
FR2842680A1 (fr) * 2002-07-19 2004-01-23 France Telecom Procede de signature de liste et application au vote electronique
US7860243B2 (en) 2003-12-22 2010-12-28 Wells Fargo Bank, N.A. Public key encryption for groups
WO2009118800A1 (ja) * 2008-03-28 2009-10-01 パナソニック株式会社 ソフトウェア更新装置、ソフトウェア更新システム、改ざん検証方法、及び改ざん検証プログラム
US10333903B1 (en) 2015-06-16 2019-06-25 Amazon Technologies, Inc. Provisioning network keys to devices to allow them to provide their identity
US10250572B2 (en) 2016-09-29 2019-04-02 Amazon Technologies, Inc. Logic repository service using encrypted configuration data
US10581595B2 (en) 2017-03-01 2020-03-03 International Business Machines Corporation Generating public/private key pairs to deploy public keys at computing devices to verify digital signatures
JP6910894B2 (ja) 2017-09-01 2021-07-28 キヤノン株式会社 情報処理装置、制御方法、およびプログラム
US10924289B2 (en) * 2018-07-13 2021-02-16 Visa International Service Association Public-private key pair account login and key manager
CN109600224A (zh) 2018-11-06 2019-04-09 卓望数码技术(深圳)有限公司 一种sm2密钥生成、签名方法、终端、服务器和存储介质
WO2019120317A2 (en) 2019-03-26 2019-06-27 Alibaba Group Holding Limited Program execution and data proof scheme using multiple key pair signatures

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103250162A (zh) * 2010-10-12 2013-08-14 捷讯研究有限公司 用于保护远程仓库中的凭证的方法
CN103460195A (zh) * 2011-02-11 2013-12-18 西门子医疗保健诊断公司 用于安全软件更新的系统和方法
CN110050437A (zh) * 2016-09-06 2019-07-23 华为技术有限公司 分布式证书注册的装置和方法
WO2020015525A1 (en) * 2018-07-17 2020-01-23 Huawei Technologies Co., Ltd. Verifiable encryption based on trusted execution environment

Also Published As

Publication number Publication date
GB202215019D0 (en) 2022-11-23
KR20220134572A (ko) 2022-10-05
GB2608570A (en) 2023-01-04
CA3166663A1 (en) 2021-09-16
AU2021235526B2 (en) 2023-07-13
CN115280718B (zh) 2023-10-24
IL295069A (en) 2022-09-01
DE112021000340T5 (de) 2022-10-20
WO2021181176A1 (en) 2021-09-16
JP2023516130A (ja) 2023-04-18
US20210288790A1 (en) 2021-09-16
US11121864B1 (en) 2021-09-14
GB2608570B (en) 2023-09-13
AU2021235526A1 (en) 2022-08-25

Similar Documents

Publication Publication Date Title
US9836308B2 (en) Hardware security module access management in a cloud computing environment
US8924723B2 (en) Managing security for computer services
US9479340B1 (en) Controlling use of encryption keys
US10003467B1 (en) Controlling digital certificate use
US10931453B2 (en) Distributed encryption keys for tokens in a cloud environment
CN116491098A (zh) 使用后量子密码学的基于证书的安全性
US20200296089A1 (en) Validating containers on a microservice framework
CN114584290A (zh) 后量子证书绑定
US10715318B2 (en) Lightweight cryptographic service for simplified key life-cycle management
US11368287B2 (en) Identification of a creator of an encrypted object
US10621319B2 (en) Digital certificate containing multimedia content
US11606205B2 (en) Causal total order broadcast protocols using trusted execution environments
CN115280718B (zh) 用于授权实例之间的安全私钥分发的方法和系统
US11646878B2 (en) Distributing encrypted data objects with encryption information as metadata
CN115150117A (zh) 在分散策略中维持机密性
US20220311616A1 (en) Connection resilient multi-factor authentication
US11683182B2 (en) Message embedment in random values
US20230318826A1 (en) Key import with hybrid cryptography
US20220376924A1 (en) Header for conveying trustful client address
Esiner et al. DMZtore: A dispersed data storage system with decentralized multi-factor access control
CN117879819A (zh) 密钥管理方法、装置、存储介质、设备及算力服务系统

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