用于云计算的弹性公共密钥基础架构的制作方法

文档序号:19160728发布日期:2019-11-16 01:19阅读:189来源:国知局
用于云计算的弹性公共密钥基础架构的制作方法

本公开内容涉及云网络,并且更特定地涉及云网络中的公共密钥基础架构。



背景技术:

本文提供的背景技术描述仅是为了总体上呈现本公开内容的上下文。在本背景技术部分中描述的工作的范围内,目前称为发明人的工作以及在提交时否则可能不具备资格作为现有技术的描述的方面,既不明确也不暗示地被接纳为本公开内容的现有技术。

云服务提供者支持许多不同类型的服务,包括云存储、基础架构即服务(iaas)、物联网(iot)、平台即服务(paas)等。在云网络中使用不同的云资源支持不同的服务。在一些示例中,资源通过虚拟机(vm)和/或容器实例来实现。容器实例可以包括一个或多个软件模块和库,并且需要使用操作系统和硬件的一些部分。

为了保证云网络内部和外部的安全,公共密钥基础架构(pki)可以用于创建、管理、分发、使用、存储和撤销数字证书,并且管理用于资源中的每一个的公共密钥加密。pki促进信息的安全电子传送,并且在密码是不充分验证方法时使用。

pki是一种密码技术形式,其将公共密钥与具有计算资源的实体(如个人和组织)的相应身份绑定。绑定由证书认证机构(ca)通过注册和证书发布来建立。当根ca被泄漏时,根ca的链中的所有证书都需要被替换或翻转。在云级环境中翻转所有证书是缓慢并且易于出错的过程。在缓慢的翻转过程的情况下,租户被迫关闭相对应的资源或者冒着将数据暴露于攻击下的危险,直到泄漏的根ca可以被替换。



技术实现要素:

一种证书管理系统,该证书管理系统用于包括资源实例的云网络,该证书管理系统包括:证书管理应用,该证书管理应用被存储在存储器中并且由处理器执行,并且证书管理应用配置用于向云网络中的资源实例选择性地分配来自第一根证书认证机构的第一证书和来自第二根证书认证机构的第二证书,第二根证书认证机构独立于第一根证书认证机构。响应于来自第一根证书认证机构的第一证书的撤销,证书管理应用被配置用于利用云网络中的资源实例中的、来自第二根证书认证机构的第二证书,来替换来自云网络中的资源实例的、来自第一根证书认证机构的第一证书。

在其他特征中,证书管理应用在技术上被约束以向云网络的资源实例分配第一根证书和第二根证书。证书管理应用被配置用于使用离线连接与第一根证书认证机构和第二根证书认证机构通信。

在其他特征中,证书管理应用被配置用于检测第一根证书认证机构的撤销。证书管理应用被配置用于通过与在线证书状态协议(ocsp)服务器通信来检测第一根证书认证机构的撤销。

在其他特征中,证书管理应用被配置用于通过与证书撤销列表(crl)服务器通信,来检测第一根证书认证机构的撤销。证书管理应用被配置用于通过与证书信任服务器通信,来检测第一根证书认证机构的撤销。

在其他特征中,证书管理应用被配置用于使用推送方法利用来自第二根证书认证机构的第二证书,来替换云网络中的资源实例中的第一资源实例中的、来自第一根证书认证机构的第一证书。证书管理应用被配置用于使用拉取方法利用来自第二根证书认证机构的第二证书,来替换云网络中的资源实例中的第二资源实例中的、来自第一根证书认证机构的第一证书。

在其他特征中,证书管理应用被配置用于在利用来自第二根证书认证机构的第二证书来替换云网络中的资源实例的第一根证书时,使用自签名证书。

一种证书管理系统,该证书管理系统用于包括资源实例的云网络,该证书管理系统包括证书分配模块,该证书分配模块被配置用于向云网络中的资源实例选择性地分配来自第一根证书认证机构的第一证书和来自第二根证书认证机构的第二证书,第二根证书认证机构独立于第一根证书认证机构。证书撤销模块被配置用于确定由第一根证书认证机构发布的证书是否被撤销。响应于撤销,证书分配模块还被配置用于移除云网络中的资源实例的第一根证书,以及在云网络中的资源实例中安装来自第二根证书认证机构的第二证书。

在其他特征中,证书分配模块在技术上被约束以在与云网络的资源实例的域相对应的域中分配第一根证书和第二根证书。

在其他特征中,证书分配模块使用离线连接与第一根证书认证机构和第二根证书认证机构通信。证书撤销模块被配置用于通过与在线证书状态协议(ocsp)服务器通信来检测第一根证书认证机构的撤销。证书撤销模块被配置用于通过与证书撤销列表(crl)服务器通信来检测第一根证书认证机构的撤销。

在其他特征中,证书撤销模块被配置用于通过与证书信任服务器通信来检测第一根证书认证机构的撤销。证书分配模块被配置用于使用推送方法利用来自第二根证书认证机构的第二证书,来替换云网络中的资源实例中的第一资源实例中的、来自第一根证书认证机构的第一证书。证书分配模块被配置用于使用拉取方法利用来自第二根证书认证机构的第二证书,来替换云网络中的资源实例中的第二资源实例中的、来自第一根证书认证机构的第一证书。

在其他特征中,安全模块被配置用于使得证书分配模块在利用来自第二根证书认证机构的第二证书来替换云网络中的资源实例的第一根证书时,使用自签名证书。

一种用于管理云网络中的证书的方法,云网络包括资源实例,该方法包括:向云网络中的资源实例选择性地分配来自第一根证书认证机构的第一证书和来自第二根证书认证机构的第二证书,第二根证书认证机构独立于第一根证书认证机构。响应于证书撤销,该方法包括移除来自云网络中的资源实例的第一根证书,并且在云网络中的资源实例中安装来自第二根证书认证机构的第二证书。

在其他特征中,第一根证书和第二根证书在技术上被约束至与云网络的资源实例的域相对应的域。该方法包括通过与证书撤销列表(crl)服务器、证书信任服务器和在线证书状态协议(ocsp)服务器中的至少一个通信来检测第一根证书认证机构的撤销。

本公开内容的其他应用领域将从具体实施方式、权利要求书和附图变得易见。具体实施方式和具体示例旨在仅为了说明的目的,而不旨在限制公开内容的范围。

附图说明

图1a是根据本公开内容的证书管理系统的一个示例的功能框图。

图1b是根据本公开内容的证书管理系统的另一示例的功能框图。

图2a和图2b是可能需要管理证书的云网络中的虚拟机资源实例的示例的功能框图;

图3是下级证书认证服务器的示例的功能框图;

图4是图示了用于操作下级证书认证机构服务器的方法的一个示例的流程图;

图5是图示了用于操作下级证书认证机构服务器的方法的另一示例的流程图;以及

图6是图示了用于在用于更新证书的推送方法和拉取方法之间进行选择的方法的示例的流程图。

在附图中,附图标记可以重复使用以标识相似和/或相同的元件。

具体实施方式

本公开内容涉及用于云网络的弹性pki,其依赖于由两个或更多个外部根证书认证机构(ca)提供的证书。本公开内容还涉及用于支持自动证书管理和证书锁定(pinning)的云网络基础架构。本文描述的系统和方法可以用于在根ca被泄漏时替换云网络中的根ca发布的证书。

如果第一根ca泄漏,则本文描述的系统和方法移除基于第一根ca的证书,并且部署基于第二根ca的证书,以便自动地替换泄漏的证书链。可以利用来自第二根ca的第二证书来简单地替换来自第一根ca的第一证书(在删除或不删除第一证书的情况下),或者可以移除(例如,删除)第一证书,并且继而由第二证书替换。一旦安装,来自第二根ca的第二证书就用于安全通信。

来自第一根ca和第二根ca的证书可以直接由第一根ca和第二根ca分配,或者云网络中的下级服务器可以被授予许可以基于第一根ca和第二根ca发布证书。目前,第一ca链的漏洞将使云网络对来自恶意用户的利用看似有效的证书的攻击完全开放。

如果第一ca泄漏,相对应的证书链中的所有证书将不再被信任,直到其被替换。在干预时间段期间,攻击者可以使用泄漏的第一根ca来访问网络。在云规模,通常花费一个月或两个月来移除第一根ca并且安装基于第二根ca的证书。下文描述的系统和方法可以部署(与第一根ca链不同的)基于第二根ca的证书,以使得在一旦检测到漏洞时能够进行即时故障转移。

现在参考图1a,示出了云服务提供者100的一个示例。云服务提供者100与两个或更多个根证书认证机构110和114相关联。在该示例中,两个或更多个根证书认证机构110和114彼此独立。云服务提供者100还包括管理域140,其包括下级证书认证机构(ca)服务器144和硬件安全模块(hsm)148。

下级ca服务器144管理来自两个或更多个根证书认证机构110和114的证书。在一些示例中,下级ca服务器144用于发布证书的能力可以在技术上被约束至云网络的域,这意味着下级ca服务器144无法向位于其他域中的资源实例发布证书。下级ca服务器144按照云网络150的需要来管理证书锁定。hsm148保护和管理用于强验证的数字密钥,并且提供加密处理。在一些示例中,hsm148包括插入(plug-in)卡或者直接附接至下级ca服务器144的外部服务器或设备。

云网络150包括一个或多个集群152。集群152中的每一个包括一个或多个机架154。机架154中的每一个包括路由器156以及一个或多个服务器158。服务器158支持云网络150的资源实例。

在一些示例中,受到本文描述的pki基础架构保护的资源由虚拟机(vm)和/或容器实例实现。vm和容器实例可以由服务器158实现。在其他示例中,被本文描述的pki基础架构保护的资源可以是逻辑资源,其没有直接地物理映射至云网络中的特定服务器。在一些示例中,根证书认证机构110和114通过离线连接而连接至管理域140,如图1a中的虚线所示。更特定地,根ca可以向下级ca提供签名证书。签名证书可以用于代表根对证书进行认证和签名。可以下载并且手动地安装(例如,离线)签名证书。

云服务提供者100经由诸如因特网的分布式通信系统162与一个或多个客户端计算机160-1、160-2、……160-c(其中,c是大于1的整数)(统称为客户端计算机160)通信。客户端计算机160可以是本地企业网络、独立计算机等的一部分。云服务提供者100也可以与证书撤销列表(crl)服务器164通信,crl服务器164管理包括已经被撤销的证书的列表的crl列表存储165。云服务提供者100可以下载或者爬取crl列表以标识被撤销的证书,下文将进一步描述。备选地,云服务提供者100也可以与在线证书状态协议(ocsp)服务器166通信,ocsp服务器166管理ocsp列表存储167。云服务提供者100可以向ocsp服务器166发送与一个或多个证书相关的请求,并且接收响应以标识被撤销的证书,下文将进一步描述。在一些示例中,周期性地或者基于事件来发送请求。在其他示例中,可以手动地发起证书撤销,或者可以依赖于如windows信任存储(windowstruststore)的信任存储。

现在参考图1b,示出了云服务提供者100的另一示例。云服务提供者100也与两个或更多个根证书认证机构(ca)110和114相关联。在该示例中,两个或更多个根证书认证机构110和114彼此独立。

云服务提供者100包括证书认证机构服务器126和128,其与两个或更多个根证书认证机构110和114通信。证书认证机构服务器126和128与硬件安全模块(hsm)124通信。在一些示例中,根证书认证机构110和114通过离线连接而连接至证书认证机构服务器126和128,如图1b中的虚线所示。

云服务提供者100还包括第一管理域140-1和第二管理域140-2,第一管理域140-1包括第一下级证书认证机构(ca)服务器144-1和第一硬件安全模块(hsm)148-1,第二管理域140-2包括第二下级ca144-2和第二hsm148-2。在一些示例中,下级ca服务器144-1和144-2在技术上被约束至其相应的域。

证书认证机构服务器126和128以及第一下级ca服务器144-1和第二下级ca服务器144-2管理针对相对应的云网络150-1和150-2的来自根证书认证机构110和114的证书。第一下级ca服务器144-1和第二下级ca服务器144-2按需管理证书锁定。在一些示例中,证书认证机构服务器126和128相对于第一下级ca服务器144-1和第二下级ca服务器144-2位于不同的域中。

云网络150-1和150-2每个包括一个或多个集群152。集群152中的每一个包括一个或多个机架154。机架中的每一个包括路由器以及一个或多个服务器158。云网络150-1和150-2的资源实例由服务器158实现。

现在参考图2a和图2b,示出了用于托管vm和/或容器实例的服务器158的示例。在图2a中,示出了使用本地管理程序的服务器。服务器158包括硬件170,诸如有线或无线接口174、一个或多个处理器178、易失性和非易失性存储器180和大容量存储182,大容量存储182诸如硬盘驱动器或闪速驱动器。管理程序186直接在硬件170上运行以控制硬件170,并且管理虚拟机190-1、190-2、……190-v(统称为虚拟机190)以及相对应的客户操作系统192-1、192-2、……192-v(统称为客户操作系统192),其中v是大于一的整数。

在该示例中,管理程序186在常规操作系统上运行。客户操作系统192作为主机操作系统上的过程运行。管理程序的示例包括微软hyper-v、xen、用于sparc的甲骨文vm服务器、用于x86的甲骨文vm服务器、citrixxenserver和vmwareesx/esxi,但是也可以使用其他管理程序。

现在参考图2b,可以使用第二类型的管理程序。服务器158包括硬件170,诸如有线或无线接口174、一个或多个处理器178、易失性和非易失性存储器180和大容量存储182,大容量存储182诸如硬盘驱动器或者闪速驱动器。管理程序204在主机操作系统200上运行。虚拟机190-1、190-2、……190-v(统称为虚拟机190)和相对应的客户操作系统192-1、192-2、……192-v(统称为客户操作系统192)。客户操作系统192是从主机操作系统200中抽象出来的。此第二类型的示例包括vmwareworkstation、vmwareplayer、virtualbox、用于mac和qemu的parallelsdesktop。虽然示出了管理程序的两个示例,但是也可以使用其他类型的管理程序。

现在参考图3,下级ca服务器144的示例示出为包括有线或无线接口250、一个或多个处理器52和存储器258。存储器258包括操作系统260和证书管理应用264。下级ca服务器144还包括大容量存储274,诸如硬盘驱动器。

证书管理应用264包括分配模块266,其按需分配来自第一ca根或第二ca根的证书。证书管理应用264包括安全模块268,其保证在向租户实例分配证书时的安全。例如,安全模块268可以在分配第一证书/密钥对或者利用第二证书/密钥对替换第一证书/密钥对时使用自签名证书。自签名证书可以包括在服务器安装之前离线向服务器分配的密钥。一旦服务器登入,就利用来自第一根ca的第一证书/密钥对来替换来自根ca的自签名证书/密钥对。当第一证书/密钥对被撤销时,可以再次使用自签名证书以便在安装来自第二根ca的第二证书/密钥对时保证与租户实例的可信通信。

证书管理应用264包括撤销模块270,其确定来自根ca的证书何时被撤销。撤销模块270可以监测crl列表,发送请求,并且从ocsp服务器接收响应,监测诸如windows信任存储的信任存储,和/或手动撤销来自第一根ca的证书。

现在参考图4,示出了用于由云服务提供者管理证书的方法304。在304处,为云网络中的现有或预期租户提供或存储来自两个或更多个独立根证书认证机构(ca)的两个或更多个证书。在一些示例中,证书可以由下级服务器发布,并且技术上被约束至云网络的域。在其他示例中,证书可以由第一根ca和第二根ca为每个租户重新分配。在一个或多个下级ca服务器以及一个或多个hsm中存储并且由其管理证书和相对应的密钥对。

在308处,由下级ca服务器按需向云网络的新租户分配与第一根ca相关联的第一证书/密钥对。例如,可以在新租户被实例化时分配证书和密钥对。如果在312处检测到第一根ca的证书漏洞,则在316处,下级ca服务器利用与第二根ca相关联的第二证书,来自动地替换与第一根ca相关联的第一证书。

现在参考图5,示出了用于由云网络管理证书的方法404。在402处,针对云网络中的租户和/或预期租户中的每一个,提供或存储来自两个或更多个不同根ca的两个或更多个证书/密钥对。在404处,向云网络中的每个租户分配第一证书/密钥对。在一些示例中,使用自签名证书来来分配第一证书/密钥对。在一些示例中,自签名证书服务采用在连接到云网络之前离线分配给服务器的公共密钥和私有密钥。

如果在406处具有针对新租户实例的请求,在410处使用自签名证书服务向新租户实例分配第一证书/密钥对。在414处,方法监测位于远程crl服务器上的证书撤销列表(crl),向在线证书状态协议(ocsp)服务器发送查询或者监测信任存储。在418处,如果通过监测crl、信任存储和/或来自ocsp服务器的响应确定了由第一根ca生成的证书具有漏洞或者被撤销,则该方法通过使用自签名证书服务来锁定与第二根ca相关联的第二证书/密钥对,而自动地替换与第一根ca相关联的用于租户实例的第一证书/密钥对。

现在参考图6,示出了用于在利用与第二根ca相关联的证书来替换与第一根ca相关联的证书时选择推送方法或拉取方法的方法450。例如,诸如vm的某些租户可能受到更新域约束。可以将这些租户放置在第一租户类别中,其中使用拉取方法执行证书的替换。换言之,在执行下一次更新时,vm将更新证书。诸如iaas、paas和/或iot资源的其他租户可以在第二类别中,其中使用推送方法执行证书的替换。

在454处,方法确定根证书是否已经被撤销并且需要被替换。如果454是真,则在456处方法继续,并且确定租户类型是否在第一租户类别中。如果456是真,则方法使用拉取方法来替换针对租户的证书/密钥对。如果456是假,则方法使用推送方法用于针对租户的证书/密钥对的替换。方法从460和464继续到466。在466处,方法确定是否存在需要替换证书的附加租户。如果466是真,则方法在456处继续。

前面的描述在本质上仅是说明性的,并且决不旨在限制公开内容及其应用或使用。公开内容的广泛教导可以以多种形式实现。因此,虽然本公开内容包括特定示例,但是公开内容的真实范围不应当如此限制,因为在研究附图、说明书和附图之后,其他修改将变得易见。应当理解,在不改变本公开内容的原理的情况下,方法内的一个或多个步骤可以以不同的顺序(或者同时)执行。另外,虽然实施方式中的每一个在上文中被描述为具有某些特征,但是关于公开内容的任何实施方式描述的那些特征中的任何一个或多个特征,其可以在其他实施方式中的任何实施方式的特征中实现和/或与其组合,即使该组合没有明确描述。换言之,所描述的实施方式不是互相排斥的,并且一个或多个实施方式相互的置换仍然在本公开内容的范围内。

使用各种术语描述元件之间(例如,模块、电子元件、半导体层等之间)的空间和功能关系,包括“连接”、“接合”、“耦合”、“相邻”、“紧邻”、“在……顶部”、“之上”、“之下”和“安置”。除非明确描述为“直接”,否则当在以上公开内容中描述第一元件与第二元件之间的关系时,该关系可以是直接关系,其中不存在其他中间元件,但是也可以是间接关系,其中在第一元件与第二元件之间(空间或功能上)存在一个或多个中间元件。如本文使用的,短语a、b和c中的至少一个应当解释为意思是逻辑(a或b或c),使用非排他逻辑or,并且不应当解释为意思是“a中的至少一个、b中的至少一个和c中的至少一个”。

在附图中,如箭头部所指示的箭头的方向一般展示该图示感兴趣的信息流(诸如数据或指令)。例如,当元件a和元件b交换多种信息但是从元件a向元件b传输的信息与图示相关时,箭头可以从元件a指向元件b。该单向箭头不暗示从元件b向元件a不传输其他信息。另外,对于从元件a向元件b发送的信息,元件b可以向元件a发送针对信息的请求,或者接收信息的确认。

在包括以下定义的本申请中,术语“模块”或者术语“控制器”可以利用术语“电路”来替换。术语“模块”可以指以下项目的一部分或者包括以下项目:专用集成电路(asic);数字、模拟或混合模拟/数字离散电路;数字、模拟或混合模拟/数字集成电路;组合逻辑电路;现场可编程门阵列(fpga);执行代码的处理器电路(共享、专用或群组);存储由处理器电路执行的代码的存储器电路(共享、专用或群组);提供所描述的功能性的其他适合硬件组件;或者以上的一些或全部的组合,诸如片上系统。

模块可以包括一个或多个接口电路。在一些示例中,接口电路可以包括有线或无线接口,其连接至局域网(lan)、因特网、广域网(wan)或其组合。本公开内容的任何给定模块的功能性可以分布在经由接口电路连接的多个模块中。例如,多个模块可以允许负载均衡。在另一示例中,服务器(也称为远程或云)模块可以代表客户端模块实现一些功能性。

如上文使用的术语代码可以包括软件、固件和/或微代码,并且可以指程序、例程、功能、类、数据结构和/或对象。术语共享处理器电路包含执行来自多个模块的一些或全部代码的单个处理器电路。术语群组处理器电路包含执行来自一个或多个模块的一些或全部代码的、与附加处理器电路相结合的处理器电路。对多个处理器电路的引用包含离散管芯上的多个处理器电路、单个管芯上的多个处理器电路、单个处理器电路的多个核、单个处理器电路的多个线程,或者以上的组合。术语共享存储器电路包含存储来自多个模块的一些或全部代码的单个存储器电路。术语群组存储器电路包含存储来自一个或多个模块的、与附加存储器相结合的存储器电路。

术语存储器电路是属于计算机可读介质的子集。如本文使用的术语计算机可读介质不包含通过介质(诸如载波)传播的暂时性的电或电磁信号;术语计算机可读介质因此可以被认为是有形的和非暂时性的。非暂时性有形计算机可读介质的非限制性示例是非易失性存储器电路(诸如闪速存储器电路、可擦除可编程只读存储器电路或者掩模只读存储器电路)、易失性存储器电路(诸如静态随机存取存储器电路或动态随机存取存储器电路)、磁性存储介质(诸如模拟或数字磁带或硬盘驱动器)和光学存储介质(诸如cd、dvd或蓝光盘)。

在本申请中,描述为具有特定属性或者执行特定操作的装置元件具体地配置为具有那些特定属性并且执行那些特定操作。具体地,对执行动作的元件的描述意思是元件被配置用于执行动作。元件的配置可以包括诸如通过在与元件相关联的非暂时性有形计算机可读介质上编码指令对元件进行编程。

本申请中描述的装置和方法可以部分或全部由专用计算机实现,专用计算机通过配置通用计算机执行在计算机程序中具体化的一个或多个特定功能而创建。上文描述的功能块、流程图组件和其他元件充当软件说明,其可以通过技术人员或程序员的例行工作而被翻译到计算机程序中。

计算机程序包括存储在至少一个非暂时性有形计算机可读介质上的处理器可执行指令。计算机程序还可以包括或者依赖所存储的数据。计算机程序可以包含与专用计算机的硬件交互的基本输入/输出系统(bios)、与专用计算机的特定设备交互的设备驱动器、一个或多个操作系统、用户应用、背景服务、背景应用等。

计算机程序可以包括:(i)要进行解析的描述性文本,诸如javascript对象表示法(json)、超文本标记语言(html)或可扩展标记语言(xml),(ii)汇编码,(iii)由编译器从源代码生成的目标代码,(iv)用于由解译器执行的源代码,(v)用于由即时编译器等编译和执行的源代码,等等。仅作为示例,源代码可以使用来自包括以下的语言的语法来编写:c、c++、c#、objectivec、haskell、go、sql、r、lisp、fortran、perl、pascal、curl、ocaml、html5、ada、asp(活动服务器页面)、php、scala、eiffel、smalltalk、erlang、ruby、visuallua和

权利要求书中记载的元件都不旨在成为35u.s.c.§112(f)意义内的装置加功能元件,除非元件使用短语“用于……的装置”而明确记载,或者在方法权利要求的情况下使用短语“用于……的操作”或者“用于……的步骤”。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1