提供设备即服务转让专利

申请号 : CN201910418766.4

文献号 : CN110011866B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : R·E·菲兹杰拉德A·J·多恩A·E·斯格夫C·S·海马R·闵M·A·埃斯蒂斯A·米希拉

申请人 : 亚马逊技术股份有限公司

摘要 :

设备例如硬件安全模块被提供为服务。计算资源提供者的客户能够请求设备到由计算资源提供者托管的客户的网络的添加。计算资源提供者配置一组计算资源,使得客户的设备能够与设备通信,好像设备在客户自己的网络中一样。

权利要求 :

1.一种计算机实现的方法,包括:

在由客户托管的第一网络上获得对于来自多个硬件安全模块中的硬件安全模块的第一请求,所述多个硬件安全模块由计算资源服务提供者管理;

至少部分地基于所述第一请求中包括的参数,使所述计算资源服务提供者将所述多个硬件安全模块中的所述硬件安全模块连接至由所述计算资源服务提供者托管的第二网络;

以及

将所述第一网络处的第二请求路由到所述第二网络的所述硬件安全模块。

2.如权利要求1所述的计算机实现的方法,其中,所述第一网络是与实现所述第二网络的所述计算资源服务提供者的所述客户相关的房屋内网络。

3.如权利要求1所述的计算机实现的方法,其中,作为识别所述硬件安全模块的结果,所述第二网络实现虚拟网络以与所述硬件安全模块相关。

4.如权利要求3所述的计算机实现的方法,进一步包括:通过所述第一网络上的设备,生成加密请求;

提交所述加密请求以使所述第二网络将所述加密请求通过所述虚拟网络路由到经识别的硬件安全模块;以及将所述加密请求的结果路由到所述设备。

5.如权利要求1所述的计算机实现的方法,其中,所述计算资源服务提供者为所述硬件安全模块提供与所述硬件安全模块相关的证书。

6.如权利要求1所述的计算机实现的方法,进一步包括使所述客户能够与所述硬件安全模块通信,好像所述硬件安全模块在所述第一网络中一样。

7.一种用于提供设备即服务的系统,包括:

存储器,所述存储器用于存储指令,所述指令在由所述系统的一个或多个处理器执行的情况下导致所述系统:在由客户托管的第一网络获得对于来自多个硬件安全模块中的硬件安全模块的第一请求,所述多个硬件安全模块由计算资源服务提供者管理;

至少部分地基于所述第一请求中包括的参数,使所述多个硬件安全模块中的所述硬件安全模块被添加到由所述计算资源服务提供者托管的第二网络;以及将第二请求路由到所述硬件安全模块。

8.如权利要求7所述的系统,其中,所述指令在被执行的情况下进一步导致所述系统:使所述第二网络添加虚拟网络以与选定的硬件安全模块相关;

将所述虚拟网络与所述第一网络的网络接口相关;以及

将加密请求通过所述网络接口路由到所述选定的硬件安全模块。

9.如权利要求7所述的系统,其中,所述第一请求是对通过所述第二网络提供的应用编程接口(API)的API调用。

10.如权利要求7所述的系统,其中,所述硬件安全模块选自所述第二网络的多个硬件安全模块。

11.如权利要求7所述的系统,其中,所述第二请求与将由所述第一网络的所述安全模块执行的加密操作相关。

12.如权利要求7所述的系统,其中,所述硬件安全模块以所述第二网络的任何其他设备不可访问的方式存储代表所述第一网络的设备的加密信息。

13.一种非暂时性计算机可读存储介质,具有指令,所述指令在由计算机系统的一个或多个处理器执行的情况下使所述计算机系统:在由客户托管的第一网络上获得对于来自多个硬件安全模块中的硬件安全模块的第一请求,所述多个硬件安全模块由计算资源服务提供者管理;

至少部分地基于所述第一请求中包括的参数,使所述计算资源服务提供者将所述多个硬件安全模块中的所述硬件安全模块连接至由计算机资源提供者托管的第二网络;以及将所述第一网络处的第二请求路由到所述第二网络的所述硬件安全模块。

14.如权利要求13所述的非暂时性计算机可读存储介质,其中,所述指令在被执行的情况下进一步使所述计算机系统导致网络接口的生成,所述网络接口的生成使所述第一网络能够连接至所述硬件安全模块。

15.如权利要求13所述的非暂时性计算机可读存储介质,其中,所述第一网络是远离所述第二网络的物理网络。

16.如权利要求13所述的非暂时性计算机可读存储介质,其中,所述第二网络识别所述硬件安全模块,所述硬件安全模块用于由所述第一网络排他地使用。

17.如权利要求13所述的非暂时性计算机可读存储介质,其中,所述第二网络由计算资源提供者托管并且由与所述第一网络相关的设备管理。

18.如权利要求17所述的非暂时性计算机可读存储介质,其中所述第二网络包括由所述设备指定的网络地址。

19.如权利要求13所述的非暂时性计算机可读存储介质,其中,所述第二请求通过所述第一网络上的第一网络地址和所述硬件安全模块的第二网络地址之间的网络地址转换路由到所述硬件安全模块。

20.如权利要求13所述的非暂时性计算机可读存储介质,其中,所述第一请求是对实现所述第二网络的计算资源服务提供者的接口的web服务调用。

说明书 :

提供设备即服务

[0001] 本申请是申请日为2014年3月12日、申请号为“201480026848.X”、发明名称为“提供设备即服务”的发明专利申请的分案申请。
[0002] 相关申请的交叉引用
[0003] 本申请要求2013年3月14日提交的标题为“PROVIDING DEVICES AS A SERVICE”美国专利申请号13/830,114的利益,该专利申请的公开通过引用被全部并入本文。
[0004] 背景
[0005] 分布式计算机系统提供了提供多种类型的服务的越来越有效的方式。然而当分布式计算系统的复杂性和普遍性增加时,维持数据安全变得更有挑战性。存在至少与安全漏洞被发现一样快地处理安全漏洞的不断的抗争。这个抗争被计算机系统及其使用发展的速度和奖金增加的速率恶化。同时在很多背景中,数据的安全具有极大的重要性。很多人例如将被预期保持私密的数据坦率地告诉公司,除了在相对少的情况中以外。安全缺口因此可能对组织的操作有有害的影响,从信任和商誉的失去到由于安全缺口引起的系统故障而不能做生意。
[0006] 这些年来,发展了很多策略来处理对数据安全的不断增加的威胁。数据加密例如可提供防止对数据的未授权访问的有效方式。作为结果,发展了复杂的设备以安全地存储加密信息,例如加密密钥。虽然这样的设备常常为了各种目的而很好执行,将设备集成到各种基础设施内可提出很多挑战。此外,这样的设备常常需要足够的投资,这对很多组织可能是障碍。
[0007] 附图简述
[0008] 现在将参考附图描述根据本公开的各种实施方案,其中:
[0009] 图1示出环境的例证性例子,其中本公开的各种实施方案可被实施;
[0010] 图2示出根据至少一个实施方案的环境的例证性例子,其中硬件安全模块可被提供为服务;
[0011] 图3示出说明根据至少一个实施方案的提供硬件安全模块即服务的使用的方式的图的例证性例子;
[0012] 图4示出说明根据至少一个实施方案的硬件安全模块可被提供为服务的方式的图的例证性例子;
[0013] 图5示出说明根据至少一个实施方案的硬件安全模块可冗余地被提供的方式的例证性例子;
[0014] 图6示出根据至少一个实施方案的用于处理对硬件安全模块的请求的过程的例证性例子;
[0015] 图7示出根据至少一个实施方案的用于利用提供硬件安全模块的使用的服务的过程的例证性例子;以及
[0016] 图8示出各种实施方案可被实现的环境。
[0017] 详细描述
[0018] 在下面的描述中,将描述各种实施方案。为了解释的目的,阐述了特定的配置和细节以便提供对实施方案的彻底理解。然而对本领域中的技术人员也明显,实施方案可在没有特定细节的情况下被实施。此外,公知的特征可被省略或简化,以便不使被描述的实施方案难理解。
[0019] 本公开的实施方案涉及提供设备即服务的使用。在一些例子中,设备是硬件安全模块(HSM),其由远程地托管各种计算资源的计算资源提供者向客户提供为服务,计算资源由客户远程地管理并操作,计算资源的例子将在下面被描述。计算资源提供者的客户可利用计算资源的服务来维持专用网络,例如由计算资源提供者托管的虚拟局域网(VLAN)。VLAN可例如由计算资源提供者所操作的基础设施支持。
[0020] 安全连接例如在互联网协议安全(IPsec)隧道上的虚拟专用网络连接可将远程托管的网络连接到在客户的房屋内托管的网络。来往远程托管的网络的流量可由计算资源提供者管理,使得从在客户的房屋内网络中的设备的观点看,与在远程托管的网络中的设备的通信出现,好像远程托管的网络的设备位于客户的房屋内网络中的设备中一样。例如,到远程托管的网络中的设备的通信可由客户设备寻址以在由客户管理的网络地址的空间中寻址(例如到由客户管理的网络的子网中的网络地址)。计算资源提供者可使用各种技术例如网络地址转换(NAT)来通过它自己的网络将网络通信路由到它们的正确的目的地。
[0021] 在本公开的各种实施方案中,客户能够与计算资源提供者(例如通过由计算资源提供者操作的适当系统)交互,用于管理远程托管的网络的目的。客户可例如将电子请求提交到计算资源提供者以将一个或多个设备添加到远程托管的网络,从远程托管的网络移除一个或多个设备,重新配置远程托管的网络的网络拓扑,以及用于其它目的。请求可例如出现在可利用各种Web服务技术的适当配置的应用编程接口(API)调用上。计算资源提供者可处理请求,且如果适当,则如所请求的重新配置客户的网络。
[0022] 在一些实施方案中,客户能够为了将一个或多个HSM添加到远程托管的网络的目的而与计算资源提供者交互。为了处理对HSM被添加到客户的网络的请求,计算资源提供者可从一组可用HSM选择适当的HSM,并例如通过在数据暂存器中对客户标记HSM的任务以防止HSM用于其它客户同时被分配给客户来将HSM分派给客户。计算资源提供者可建立HSM的网络(服务网络),例如VLAN并将网络接口添加到客户的远程托管的网络中的服务网络。服务网络的网络接口可具有在客户的IP地址空间中的地址,使得客户可与HSM通信,好像HSM在客户自己的网络中一样。客户可配置在客户的房屋内网络、房屋外网络或这两者中的一个或多个HSM客户端。这个过程可重复以给客户提供多个HSM的客户使用,例如增加可用性或降低时延。
[0023] 各种技术可用于提供客户增强的数据安全。例如在一些例子中,HSM具有至少两个管理接口。第一管理接口可由计算资源提供者使用来执行各种管理功能,例如永久地(即不能取消地)擦除存储在HSM上的任何加密信息。通过第一管理接口可得到的另一管理功能在一些实施方案中创建访问第二管理接口的账户。能够访问第一管理接口的账户可与能够访问第二管理接口的一个或多个账户共享一些特权,例如永久地擦除加密信息的能力。然而,能够访问第一管理接口的账户具有一些不同的访问权利。例如,在一些实施方案中,第一管理接口不能够访问由HSM存储的加密信息。然而第二管理接口可具有额外的管理能力,例如创建安全高级职员账户的能力。安全高级职员账户可具有创建和/或删除HSM的分区、创建客户端并使HSM执行加密操作的能力。
[0024] 为了向客户确保计算资源提供者不访问客户的存储在HSM中的加密信息,计算资源提供者可以用给客户对可访问HSM加密信息的人的控制的方式来给客户提供对HSM的访问。例如,计算资源提供者可使用第一管理接口来创建能够访问第二管理接口的账户。所创建的账户的证书可被提供给可使用证书来改变证书(例如改变密码)的客户,从而从计算资源提供者移除对第二管理接口的访问。客户可接着使用第二管理接口来以计算资源提供者不能够访问由HSM存储的加密信息的置信度进一步配置HSM。下面更详细讨论额外的细节和特征。
[0025] 图1示出环境100的例证性例子,其中本公开的各种实施方案可被实施。在这个例子中,环境100包括计算资源提供者102和计算资源提供者的客户104。计算资源提供者104可以是代表一个或多个客户托管各种计算资源的组织。例如,计算资源提供者可操作用于托管各种计算硬件资源例如硬件服务器、数据存储设备、网络设备、在本文讨论的其它设备和其它装备例如服务器机架、联网电缆等的一个或多个设施。计算资源硬件可利用它的计算硬件资源来操作一个或多个服务。这样的服务可包括使计算资源提供者的客户能够远程地管理计算资源以支持客户的操作同时减少或甚至消除客户投资于物理装备上的需要的服务。示例服务包括但不限于各种数据存储服务(基于对象的数据存储服务、档案数据存储服务、数据库服务等)、程序执行服务和其它服务。服务可由客户使用来支持各种各样的活动,例如操作网站、操作支持组织的企业系统、分布式计算和/或其它活动。
[0026] 如上面提到的,计算资源提供者可使用它的计算硬件资源来给客户提供一个或多个硬件安全模块(HSM)即服务的使用。HSM是专用于保护信息(例如加密密钥)免受未授权的公开并使用被保护信息来执行操作的硬件设备(例如硬件器具)。可以用各种方式例如插件卡(配置成插入计算设备的电路内)或可连接到计算设备或可通过网络可访问的外部TCP/IP安全设备来实现HSM。HSM可存储由HSM使用来执行一种或多种类型的加密操作例如加密、解密或电子签名产生的加密密钥。HSM可利用一个或多个安全加密处理器芯片来防止篡改和总线探测。此外,HSM可配置成符合一个或多个安全标准。在一些例子中,HSM配置成符合通过引用被合并到本文中的一个或多个国家标准和技术研究所(NIST)联邦信息处理标准(FIPS),例如FIPS出版物140-2的安全级别(例如级别1、级别2、级别3或级别4)。
[0027] 应注意,虽然当提供例证性例子时本公开使用HSM,本公开的技术也通常可应用于安全模块(也被称为“加密模块”)。例如,虽然很多安全模块(例如HSM)利用专用加密处理器和/或其它硬件,一个或多个上述特征可使用软件来实现。例如,可使用商品硬件和适当配置的软件而不是常常在商用HSM中找到的特殊硬件来产生安全模块以符合FIPS出版物140-2的一个或多个级别。
[0028] 在图1所示的环境100中,计算资源提供者102代表客户104托管提供者托管的客户网络106。提供者托管的客户网络106可以是由客户104管理的计算设备的网络。提供者托管的客户网络106可以是由计算资源提供者104的设备的物理网络实现的虚拟网络,物理网络也可为计算资源提供者104(未示出)的其它客户实现虚拟设备和/或虚拟网络。适当的提供者托管的客户网络常常被称为虚拟专用云(VPC)。通常,提供者托管的客户网络可以是经由对计算资源提供者102的适当配置的应用编程接口(API)调用由客户可定义的、可配置的和/或否则可管理的。提供者托管的客户网络可以例如由客户104配置有紧密地类似于客户可能在它自己的数据中心中操作的传统网络的虚拟网络拓扑。计算资源提供者102也可实现提供者托管的客户网络,以便与彼此隔离。例如,客户的提供者托管的客户网络可被实现,使得在网络中的设备不通信或否则是计算资源提供者的其它客户可访问的,而客户不配置网络来允许这样的访问。
[0029] 如所提到的,客户104可以用各种方式配置提供者托管的客户网络。客户可例如从客户自己的IP地址范围(而不是使用由计算资源提供者102分配的IP地址)将IP地址分配到设备,创建一个或多个子网,配置路由表,配置网络网关和/或否则配置网络。在客户从它自己的IP地址空间分配IP地址的实例中,计算资源提供者可利用网络地址转换(NAT)技术来管理在由计算资源提供者托管的各种设备当中管理网络流量。例如,计算资源提供者可将被递呈到客户104的IP地址的分组隐蔽在被递呈到由计算资源提供者102管理的IP地址的分组中用于在由计算资源提供者管理的各种设备当中传输。当分发到具有从客户IP空间寻址的IP地址的客户设备时,计算资源提供者可解开分组。
[0030] 关于子网配置和管理,很多布置可由客户利用。例如,客户104可为访问互联网的web服务器创建面向公众的子网。客户可为没有互联网访问的后端系统创建面向私人的子网。客户可通过杠杆作用影响多个安全层,包括防火墙和网络访问控制列表,以帮助控制对在每个子网中的设备的访问。
[0031] 此外,如图1所示,客户可具有其自己托管的客户网络108。自己托管的客户网络可以使用客户104自己的硬件托管的网络(物理、虚拟或物理和虚拟的组合)。如图1所示,自己托管的客户网络108和提供者托管的客户网络106通过安全通道110例如互联网协议安全(IPsec)隧道或直接连接与彼此通信,虽然可使用用于安全通信的其它机制。在一个例子中,安全通道110是使用适当的安全协议例如IPsec的虚拟专用网(VPN)连接。以这种方式,安全通道110以提供者托管的客户网络106有效地扩展客户104的自己托管的客户网络108,好像这两个网络的资源都使用单个设施的硬件资源位于同一地点一样。
[0032] 然而应注意,图1所示的环境100的特定配置是为了说明的目的,以及其它配置也被考虑为在本公开的范围内。例如,利用本文所述的技术的环境不一定需要包括通过安全通道连接到提供者托管的客户网络的自己托管的客户网络。客户可例如维持提供者托管的客户网络与任何自己托管的客户网络分离。此外,比图1所示的更少或更大数量的网络可包括在利用本公开的各种实施方案的环境中。此外,虽然为了说明的目的在整个本公开中广泛地使用客户-计算资源提供者关系,本公开的范围不限于利用这样的关系的环境。本文所述的各种技术例如可用于使一个实体能够向一个或多个其它实体提供一个或多个设备(例如HSM)的使用。此外,提供服务的实体和消费服务的实体可以是同一实体的子实体。例如,计算资源提供者可利用本文所述的技术来向计算资源提供者(例如向客户提供另一类型的服务的商业单元)的子实体提供HSM的使用。
[0033] 如上面提到的,本公开的实施方案给客户提供远程地请求并配置HSM成为提供者托管的客户网络的能力。如所示,客户104可向计算资源提供者102提交请求(在附图中被标记为“请求HSM”)。客户可例如将适当配置的API调用传输到计算资源提供者,其可包括配置成处理API调用的一个或多个系统。计算资源提供者可发起工作流,其使计算资源提供者的计算资源响应于该请求而使一个或多个HSM 112逻辑地成为提供者托管的客户网络的部分。换句话说,计算资源提供者可配置适当的计算资源,使得客户能够与HSM 112通信,好像HSM在客户自己的网络中一样。例如,到HSM 112的请求可被递呈到HSM的IP地址,其作为客户自己的IP空间的部分(例如客户拥有或控制的公开IP地址或客户的私有IP地址)。
[0034] 图2示出可用于提供一个或多个HSM即服务的使用的环境200的例证性例子。
[0035] 如图2所示,环境200包括客户逻辑网络202和虚拟客户系统(VCS)服务底层204,其可以是形成用于实现被提供为服务的虚拟计算系统的网络的一系列设备。例如,VCS服务底层204可包括一个或多个硬件服务器设备,每个可配置/配置成实现一个或多个虚拟计算机系统,例如虚拟服务器。VCS服务底层204也可包括实现VCS服务的其它设备,例如交换机、路由器和/或实现到/来自VCS底层204/在VCS底层204内的通信的其它设备。
[0036] 客户逻辑网络202可以是包括例如上面关于图1描述的一个或多个自己托管的客户网络和一个或多个提供者托管的客户网络的网络。如所示,客户逻辑网络包括由计算资源提供者托管的资源(例如在VCS服务底层204和客户逻辑网络202内部所示的资源)和由计算资源提供者的客户托管的资源(例如在客户逻辑网络202内部但在VCS服务底层204外部所示的资源。例如,如图2所示,客户逻辑网络202包括客户房屋网络206(例如自己托管的客户网络)和客户虚拟网络(VN)208(例如提供者托管的客户网络)。客户房屋网络206和客户VN 208可以是虚拟局域网(VLAN),其可以是相应的较大网络的相互隔离的逻辑分类。
[0037] 客户房屋网络206和客户VN 208可配置成作为单个网络来操作。例如,如所示,客户房屋网络206和客户VN 208可配置成使得数据能够在这两个网络之间安全地流动。例如,可利用在客户房屋网络206和客户VN 208之间的直接连接。在另一例子中,客户房屋网络206和客户VN 208由虚拟专用网络(VPN)连接(例如通过IPsec)连接。客户逻辑网络202也可包括使它的操作变得可能的各种设备,例如房屋内虚拟网络(VGW)和由VCS服务底层204实现的VGW(房屋外VGW)。房屋内VGW和房屋外VGW可以是配置成使在客户的房屋内的设备与在计算资源提供者的房屋设备上的设备之间的通信变得可能的网关设备。VGW和VGW可每个例如配置成在一个通信协议到另一通信协议之间转换和/或执行任何其它操作,使得通信在客户的设备和计算资源提供者之间是可能的。在一些例子中,房屋内VGW和房屋外VGW通过安全通道例如IPsec隧道或直接连接进行通信。如所示,客户网络可包括一个或多个客户远程个人识别码(PIN)输入设备(RPED)214。客户PRED 214在实施方案中是为了使用一个或多个HSM进行认证的目的而特别配置的设备。客户RPED 214可以是制造商特有的,使得例如如果客户请求特定类型的HSM,则客户可为所请求的特定类型的HSM购买客户RPED 214并将客户RPED 214添加到客户逻辑网络206。客户RPED 214可以是防篡改的,并可包括其它安全特征以防止密钥登录和其它安全缺口。客户(例如经授权用户)的操作员可利用RPED 214来输入密码以可以访问由相应的HSM(或HSM组)存储的信息。
[0038] 如图2所示,客户逻辑网络202可包括客户房屋内HSM 216。客户房屋内HSM可以是为了安全地存储信息(例如加密密钥)和使用安全地存储的信息执行加密操作的目的由客户托管的HSM。相应地,客户逻辑网络202可包括一个或多个房屋内HSM客户端218作为客户房屋网络206的部分,房屋内HSM客户端218是配置成向房屋内HSM(以及也许如下面讨论的,向一个或多个房屋外HSM)提交请求的设备(或设备的部件,例如位于设备上的编程模块)。在一些例子中,房屋内HSM客户端218和客户逻辑网络202共同配置成使得每个客户HSM客户端能够向房屋外HSM器具(如下所述的)提交请求。这样的请求(和对请求的响应)可通过房屋内VGW 210和房屋外VGW通过安全通道(例如IPsec隧道)被路由,如上面讨论的。
[0039] 客户逻辑网络202也可包括未由客户托管的但可由计算资源提供者托管的一个或多个设备作为客户VN 208的部分。例如,图2示出包括由计算资源提供者托管的房屋外客户HSM客户端220的客户逻辑网络202。在这个特定的例子中,房屋外客户HSM客户端220由VCS服务底层204实现(例如,作为由VCS服务底层的物理服务器实现的虚拟计算机系统)。房屋外客户HSM客户端220可以是配置成与HSM(例如下面描述的房屋内客户HSM 216或客户房屋外HSM)例如上面描述的房屋内HSM客户端218通信的设备(例如虚拟客户系统)。如所示,在这个例子中,客户VGW 212也由VSC服务底层204实现。
[0040] 在实施方案中,VCS底层实现在客户逻辑网络202之外的一系列设备,其使计算资源提供者能够特别是通过使到HSM器具的通信变得可能来提供HSM即服务的使用,该通信从客户的观点看被递呈到客户的子网的IP地址。例如,在实施方案中,VCS服务底层包括服务VN 222,其可以是包括HSM服务VCS网络地址转换代理(NAT实例224)和服务VN堡垒226的VLAN。NAT实例224可以是配置成执行在HSM器具和在客户VN 208中的子网之间的网络地址转换(NAT)的设备(例如由VCS服务底层实现的虚拟计算机系统),如下面更详细描述的。简要地,由NAT实例执行的NAT使客户能够将通信递呈到客户的IP空间的IP地址,同时计算资源提供者可使用它自己的IP空间的IP地址路由这样的通信。
[0041] 服务VN堡垒226可以是在具有互联网网关的公共子网中配置的设备(例如由VCS服务底层实现的虚拟计算机系统)。服务VN堡垒226可配置成接收与监控HSM器具有关的消息。服务VN堡垒226可以例如从度量系统例如监控系统、登录档案服务和计算资源提供者的各种其它服务的使用(例如用于存储监控数据的数据存储服务和/或队列服务)接收消息。服务VN堡垒226也可配置有只允许来自计算资源提供者防火墙的某些连接(例如安全壳(SSH)连接)的适当安全控制。在服务VN堡垒和NAT实例224之间的防火墙可配置成防止不希望有的连接,例如在服务VN堡垒226和NAT实例224之间的SSH连接。
[0042] 如图2所示,服务VN堡垒226在互联网上通过服务VN集成网关(IGW)228与各种服务例如数据存储服务230和HSM管理和监控服务232通信。HSM管理和监控服务232可以是配置成执行被提供为服务的HSM的各种管理和监控的系统。HSM管理和监控服务232可包括各种部件,例如网络时间协议(NTP)服务器、监控子服务以及HSM服务诊断和管理子服务。数据存储服务230可以是存储通过服务VN IGW228发送到服务用于由其它服务消费和/或档案原因的数据以及以其它方式由其它系统提供的其它数据的服务。监控子服务可以是消费服务VN堡垒226的数据并,如果可适用,检测故障和/或其它事件的服务。HSM服务诊断和管理子服务可配置成消费来自服务VN堡垒226和/或监控子服务的数据,并对数据执行分析以提供诊断信息并执行管理功能(例如引起支持HSM服务和/或其它管理功能的出故障的设备的再预备)。
[0043] 如上面提到的,客户逻辑网络202包括与HSM器具通信的设备,HSM器具在一些例子中是物理HSM的抽象。相应地,如图2所示,在各种实施方案中,环境200包括计算资源提供者(CRP)HSM 238。CRP HSM 238如同客户HSM 216一样可以是物理HSM设备。示例物理HSM设备是SafeNet有限公司的Luna SA HSM,虽然其它模型被考虑为在本公开的范围内。CRP HSM 238在实施方案中被排他地分派到单个客户。以这种方式,与被提供为服务的其它计算资源不同,其它客户者不利用设备(除非由CRP HSM 238被分派到的客户授权)。如所示,CRP HSM 
238通信地连接到服务VN 222,使得网络流量可在客户VN 208和CRP HSM 238之间通过服务VN被路由。在图2所示的例子中,CRP HSM 238配置成通过VCS服务覆盖设备240与服务VN 
222通信。因为作为连接到VCS服务底层204的物理硬件设备的CRP HSM 238在服务VN 222外部,VCS服务覆盖设备240可视情况使用网络地址转换以使来自CRP HSM 238的流量能够通过服务VN 222行进到客户VN 208,反之亦然。
[0044] 在示例实施方案中,CRP HSM 238连接到配置成将流量从CRP HSM 238路由到包括服务VN 222的覆盖网络的直接连接(DX)的HSM机架顶交换机(ToR)。例如,CRP HSM 238可通过被配置成在服务VN 222和CRP HSM 238之间路由网络流量的DX路由器连接到服务VN 222。DX路由器可将流量路由到VCS服务覆盖设备240/从VCS服务覆盖设备240路由流量。同样,DX路由器可从CRP HSM 238路由分组(经由HSM服务TOR交换机接收),使得分组适当地被提供到它们的适当目的地(例如将请求传输到CRP HSM 238的适当的客户HSM客户端)。
[0045] 概括地说,计算资源提供者托管物理CRP HSM 238。各种技术可用来允许计算资源提供者的客户使用CRP HSM 238,好像CRP HSM 238在客户自己的数据中心中一样。在示例实施方案中,CRP HSM 238在计算资源提供者的服务器机架中并通过适当的物理连接例如以太网连接来连接到ToR交换机(例如在同一机架中的ToR交换机)。ToR交换机具有到DX路由器的物理连接,DX路由器配置成将网络流量路由到CRP HSM 238和VCS服务覆盖设备/从CRP HSM 238和VCS服务覆盖设备路由网络流量。VCS服务覆盖设备240在一些例子中配置成通过专用VLAN(服务VN 222)将流量来/回路由到客户VGW 212。NAT实例224使用网络地址转换来越过服务VN 222和客户VN 208的不同接口路由分组。
[0046] 计算资源提供者的客户可通过将请求传输到IP地址来将请求提交到CRP HSM 238,其从客户的观点看是HSM器具,但以在图2中示出的示例网络拓扑之观点是配置成通过服务VN 222将请求路由到CRP HSM的NAT实例224的接口,CRP HSM具有不同于NAT实例224的IP地址。类似地,当CRP HSM 238产生对请求的响应(例如通过执行一个或多个加密操作和/或通过提供一个或多个加密操作的执行的结果作为响应),响应被路由到适当的HSM客户端(例如房屋外客户HSM客户端220或房屋内客户HSM客户端218),网络地址转换被执行以使路由能够被正确地执行,且使得从客户设备的观点看时响应能够有发端地址,好像响应起源于客户自己的网络一样。
[0047] 在图2中还示出的是CRP管理系统242,其可以是配置成管理计算资源服务器的资源例如VCS服务底层和HSM的计算资源的计算设备的网络。CRP管理系统242在实施方案中配置成执行与资源的管理有关的各种操作。例如,CRP管理系统提供使客户能够通过网络(例如互联网)提交请求的应用编程接口(API)。在一些例子中,CRP管理系统242包括配置成接收以Web服务请求的形式的API调用的一个或多个web服务(例如下面更详细描述的)。web服务可配置成在接收到Web服务请求时将请求传输(例如转发该请求或传输至少部分地基于Web服务请求产生的新请求)到配置成通过执行一个或多个工作流来处理请求的CRP管理系统242的子系统用于完成请求。示例请求包括预备或废止虚拟计算机系统、创建VN、重新配置VN的请求、将一个或多个HSM添加到VN的请求、预备存储设备(用于数据存储服务(未示出))的请求等。CRP管理系统在实施方案中也配置成处理请求并执行与请求处理(例如认证)有关的额外的操作。处理请求可包括处理由CRP管理系统242管理的工作流。工作流可包括被执行来处理相应的请求的一组操作。例如,用于预备虚拟计算机系统的操作可包括例如选择硬件资源(例如硬件服务器)以实现虚拟计算机系统、将机器图像装到所选择的硬件资源上、重新配置网络路由的操作和/或其它操作。
[0048] 如上面讨论的,本文所述的各种技术允许客户配置网络以包括远程托管的HSM。图3示出一种方式的例证性例子,这可通过该方式来完成。图3特别是示出用于使计算资源提供者的客户能够利用计算资源提供者对HSM即服务的使用的提议的环境300的例证性例子。
如图3所示,环境包括客户VN 302和HSM服务VN 304,其可以分别是上面描述的客户VN 208和HSM服务VN 222。
[0049] 客户VN 302的计算资源可包括在一个或多个数据区中托管的计算资源。数据区可包括一组计算资源,其与另一数据区的另一组计算资源分离。可为了故障容许度的目的而设计数据区,使得引起一个数据区中的一个或多个计算资源的不可操作性的事件对在一个或多个其它数据区中的逻辑上独立的计算资源的可操作性有很少或没有影响。作为例证性例子,在第一数据中心中托管的一组计算资源可包括第一数据区,以及在第二数据中心中托管的另一组计算资源可包括第二数据区。引起第一数据区中的一个或多个计算资源的不可操作性的在第一数据区中的电源故障将不对第二数据区的计算资源引起电力的损失。因此,电源故障将不影响第二数据区的计算资源的可操作性,除非例如第二数据区的计算资源是第一数据区的不可操作的计算资源(例如虚拟服务器)的客户端。
[0050] 可以用各种方式实现数据区。例如,数据区可由一个数据中心或聚集在地理区中并在彼此当中有直接通信连接的一系列数据中心实现。作为另一例子,数据区可由数据中心的不同房间实现,每个房间由不同的发电机供电。通常,可以用增加一个数据区相对于出现在一个或多个其它数据区中的事件(电力损失、火灾、地震、操作员错误等)的故障容许度的任何方式来实现数据区。计算资源提供者(或通常任何实体)可操作多个数据区以给客户提供较大的故障容许度、故障切换选择和其它益处,例如减小的时延。计算资源提供者可例如操作全世界的多个数据区以给客户提供性能和故障容许度的很多选择。
[0051] 相应地,如图3所示,客户VN 302包括在数据区306中的资源。虽然示出单个数据区306,如下面更详细讨论的,客户VN 302可包括来自多个数据区的计算资源。在这个例子中使用数据区306的资源来实现客户302的子网(VN子网308)。使用无类域间路由(CIDR)表示法,VN子网使用IP地址的例证性例子,在这个实例中是10.0.0.0/16。应注意,为了说明的目的,IP地址例证性地提供为互联网协议版本四(IPv4)IP地址。然而,可在各种实施方案中使用不同的寻址方法,包括但不限于互联网协议版本六(IPv6)地址。
[0052] VN子网308在这个例子中包括具有在10.0.0.0/16范围内的客户的IP地址的各种设备310(其可以是例如虚拟计算机系统或虚拟存储设备)。客户VN 302的VN子网308还包括客户服务网关(客户SG 212),其可以是配置有虚拟网络接口(VNI)314的网关设备。VNI 314如所示具有10.0.0.201的IP地址。
[0053] 如同客户VN 302一样,可使用数据区316的计算资源来实现HSM服务VN 304,数据区316可以是与客户VN 302的数据区306相同的数据区或可以不同于数据区306。数据区316的计算资源用于实现VN子网318,其在这个例子中具有192.168.0.0/24的IP地址空间。VN子网218包括服务SG 320,其包括NAT实例322(其可以是例如上面描述的NAT实例)和VNI 324。作为例证性例子,VNI 324具有在VN子网318的IP空间中的IP地址,该地址是192.168.0.55。
[0054] 此外,如图3所示,环境300包括物理HSM器具326,其在这个例子中具有10.10.0.3的IP地址。HSM器具可直接连接到VNI 324,且NAT实例可配置成执行适当的网络地址转换。
[0055] 在实施方案中,NAT实例322执行网络地址转换。例如,来自面向VNI 314的客户的网络流量可被转发到10.10.0.3,HSM器具326的IP地址。NAT实例322可执行网络地址转换以将网络流量的目的地IP地址改变到10.10.0.3。为了确保来自HSM器具326的返回流量到达同一NAT实例(例如,如果多个NAT实例被使用),则NAT实例322也可将源IP地址改变到192.168.0.55,它自己的面向内的IP地址。因为网络流量从HSM返回到同一设备,所以NAT实例能够确保流量到达正确的目的地。例如,NAT实例322可被编程为将流量从NAT实例322的HSM器具326转发到适当的客户设备(例如最初将请求提交到HSM的设备),视情况执行NAT。
[0056] 以这种方式,从HSM器具326的观点看,客户端流量起源于192.168.0.55,NAT实例的IP地址。此外,HSM器具326可能缺少识别客户VN 302的特征(例如IP地址)的任何信息。从客户设备310的观点看,VNI 314的IP地址(10.0.0.201)看起来是HSM器具326的IP地址。例如,客户设备310可将执行一个或多个加密操作的请求传输到10.0.0.201,从10.0.0.201接收响应,而具有不同的IP地址的设备(即HSM器具326)实际上执行所请求的加密操作。
[0057] 本公开的各种实施方案允许计算资源提供者提供HSM即服务的使用,同时处理各种安全顾虑。例如,计算资源提供者的一些客户可坚持认为计算资源提供者缺少对由HSM代表客户存储的任何加密信息(例如由客户使用的密钥)的访问。图4示出说明这可被实现的示例方式400。然而应注意,在图4中所示和在本文讨论的过程在性质上是例证性的,以及可使用提供HSM即服务而没有保留对由HSM存储的信息的访问的计算资源提供者的其它方法。例如,不同的HSM制造商可使用可以用不同的方式使用来确保计算资源提供者不能访问存储在HSM上的敏感客户信息的不同的过程和/或接口。
[0058] 特别是,在图4中的图400示出HSM器具402,其可以是由计算资源提供者的客户请求的HSM器具并被例如上面所述的计算资源提供者托管。HSM器具402可以是逻辑容器,其包含HSM管理接口406和物理和安全地包含加密信息的HSM器具的一部分(例如在图4中被标为“物理HM 404”。在实施方案中,HSM器具402可被考虑为包括由可访问性定义的部件的器具。例如在实施方案中,HSM器具402包括由具有某些管理角色的那些器具可访问的管理接口。
在这个例子中,角色包括CRP管理员408和客户管理员410。对管理接口406的访问可能需要适当的认证(例如通过证书的递呈),且访问的数量可取决于特定的角色。此外,对管理接口
406的访问可能需要例如通过SSH的安全连接。在实施方案中,经认证的CRP HSM管理员408可具有为HSM器具402创建一个或多个客户HSM管理员410的能力。可由CRP HSM管理员执行的其它行动在各种实施方案中包括策略的创建和管理、网络建立、登录和/或其它管理行动。
[0059] 客户HSM管理员410可具有与HSM管理接口交互以执行各种管理行动例如HSM器具402的初始化,例如通过向HSM器具402提交InitializeHSM命令的能力。HSM的初始化可导致一个或多个安全高级职员(SO)角色的创建。经认证的安全高级职员(被标记为客户安全高级职员412)可具有例如通过创建分区、创建客户端(具有对结合相应的分区将请求提交到HSM足够的访问权利的一组设备)管理HSM的配置、将客户端分配到分区(即规定每个客户端可访问哪个分区)等的能力。客户端的创建可包括更新HSM器具的数据暂存器中的条目,其指示客户端被授权利用HSM。客户端(或另一操作员)创建的SO可以用适当的软件配置客户端设备以使HSM的利用变得可能。换句话说,使设备能够利用HSM器具402可包括HSM器具402和充当HSM的客户端的设备的适当配置。
[0060] HSM器具402可配置成使得只有HSM管理员410所创建的客户HSM管理员410和安全高级职员412的账户访问由HSM存储的加密信息。换句话说,HSM器具402可配置成使得CRP HSM管理员角色缺少对由HSM器具420存储的加密信息的访问。以这种方式,计算资源提供者可使用CRP HSM管理员408的角色来创建客户HSM管理员410的账户。证书(例如登录和密码)可被提供到客户的经授权人,且经授权人可改变登录和密码,从而使计算资源提供者缺少对随后创建的逻辑分区的访问。因此,虽然计算资源提供者可保留一些管理特权(例如以在与客户的商业关系终止之后安全地擦除加密材料并创建新的客户HSM管理员账户),一旦客户改变客户HSM管理员410的账户的登录证书,计算资源提供者就缺少对安全地存储的加密材料的访问。
[0061] 本公开的各种实施方案还允许计算资源提供者的客户以当需要时增加HSM是操作的概率的方式和/或以提高性能(例如时延)的方式来利用计算资源提供者的HSM。图5相应地示出这样的技术优点可被实现的环境500的例证性例子。在图5的例子中,客户VN 504的VN子网502可包括各种计算资源,至少一些计算资源可由计算资源提供者托管,如上所述。例如,如在图5中示出的,环境500的VN子网502包括一个或多个HSM客户端506。不是与服务网关通信,如上面关于图3所讨论的,在图5中,HSM客户端504与负载平衡器508通信。负载平衡器508可以是配置成利用一种或多种负载平衡技术(例如轮叫调度及其变形)来分配来自HSM客户端506的请求的设备(例如由虚拟计算机系统服务提供的虚拟计算机系统)。在这个例子中,负载平衡器508配置成便于与例如上面所述的多个物理HSM器具510之一的通信。然而应注意,负载平衡器508的能力可合并到一个或多个HSM客户端中。例如,一个或多个客户端可具有执行负载平衡功能的负载平衡应用或通常与不必冗余地存储信息的多个HSM通信的能力。
[0062] 例如,负载平衡器506可通过VN子网502的相应的服务网关和虚拟网络接口(SG/VNI 512)并通过例如上面关于图3所述的服务VN子网516的服务网关、NAT设备和VNI(SG/NAT/VNI 514)将流量从HSM客户端504路由到HSM器具510。因此,以这种方式,从客户VN 504的VN子网502的观点看(特别是从负载平衡器508的观点看),到HSM器具510的通信被引导到SG/VNI 512的相应的服务网关。因此,为了使HSM客户端506将请求提交到HSM,客户端设备506可将请求递呈到负载平衡器508的IP地址,负载平衡器将请求转发到适当的HSM器具
510,接收任何响应,并将响应转发到请求程序。
[0063] 以这种方式,实现HSM的高可用性,同时从客户观点看维持简单的配置。此外,图5所示的技术及其变形可用于提供很多技术优点。例如,如在图5中所示的,每个HSM器具可存在于不同的数据区518中。不同的数据区可用于提供故障容许度和/或较低的时延(例如当HSM客户端分布在不同的数据区当中时)。
[0064] 如同本文所述的所有环境一样,变形被考虑为在本公开的范围内。例如,环境500的SG/VNI部件在一些实施方案中不需要位于负载平衡器后面,例如当不同的HSM用于不同的目的时(例如当多个HSM被使用时,每个HSM存储不同的密钥空间)。此外,除了在附图中示出的那些特征以外,额外的特征也被考虑为在本公开的范围内。例如,在多个HSM用于冗余的目的的实施方案中,安全方法可用于同步由HSM存储的信息冗余。例如,公开密钥加密方案可用于将信息从一个HSM安全地传送到另一HSM。HSM可使用由另一HSM使用的公开-私有密钥对来将信息加密。所加密的信息可通过网络传送到另一HSM以使用公开-私有密钥对的私有密钥来解密。
[0065] 如上面讨论的,本公开的各种实施方案允许虚拟资源提供者的客户将HSM添加到虚拟网络,使得计算资源提供者托管HSM但客户能够利用HSM,好像它们在客户自己的数据中心中一样。图6示出根据至少一个实施方案的用于处理对HSM的请求的过程600的例证性例子。过程600可由任何适当的系统例如上面关于图2讨论的CRP管理系统或参与被提交到计算资源提供者的请求的处理的任何系统执行。在实施方案中,过程600包括从客户(例如从客户计算设备)接收(602)对HSM的请求,其中请求包括HSM的一组参数。该请求可以是例如具有对HSM参数编码的API参数的API调用。然而应注意,虽然图6示出参数作为请求的部分被包括,HSM的参数可从请求被单独地提供。示例参数包括由计算资源提供者托管的客户的VN的标识符、由计算资源提供者托管的客户的VN的子集的标识符、HSM的模型标识符(在客户被提供从多个HSM模型选择的能力的实施方案中)、IP地址空间、IP地址类型(例如IPv4或IPv6)、通知模式(例如电子邮件地址、消息队列标识符或用于通知的其它标识符)和/或其它相关信息。此外,HSM参数可规定一个或多个防火墙参数适用于将被置于识别出的客户VN中的网络接口。通常,参数给计算资源提供者提供使计算资源提供者能够集成HSM与由计算资源提供者托管的客户的VN的信息。
[0066] 当接收到(602)请求时,过程600可包括创建(604)服务VN,例如附加到适当的HSM设备(例如具有匹配HSM参数的模型号的设备)的服务VN 222。创建(604)服务VN可包括预备和/或配置包括服务VN的一个或多个计算资源。服务VN可包括部件,例如上面关于图2讨论的那些部件。此外,服务VN可被创建为具有公共和专用子网的VLAN,用于监控和诊断的目的的公共子网和用于与客户VN的通信的专用子网。可创建服务以确保服务VN具有不与客户VN的IP范围重叠的IP范围。
[0067] 应注意,可以根据各种实施方案用各种方式执行创建(604)服务VN。例如,在一些实施方案中,计算资源提供者在接收到对HSM的请求之前预备并准备服务VN,该请求在被处理时将利用服务VN。在这样的实施方案中,创建服务VN可包括重新配置现有的资源以与在请求中规定的客户VN集成。换句话说,计算资源提供者可在接收到请求之前执行用于创建服务VN的一些操作。此外,执行创建(604)服务VN可包括额外的操作,例如配置HSM设备,客户将通过服务VN与HSM设备通信。可以用可根据各种HSM制造商和模型改变的各种方式执行HSM设备的配置。通常,配置HSM设备可包括采取为客户实现和/或便于HSM设备的操作作为HSM的任何行动。
[0068] 当创建(604)服务VN时,过程600可包括修改(606)服务的访问控制列表(ACL)以限制与来自服务队管理系统的那些的通信。以这种方式,服务VN与各种不必要的通信隔离,然而允许计算资源提供者的介入,假定这样的介入变得必要。可接着创建(608)服务VN的防火墙用于在开创服务实例(例如虚拟计算机系统变成服务VN的部分)时使用。可接着在服务VN中开创(610)一个或服务实例,参考所创建的防火墙。服务实例可以是在服务VN内部操作的虚拟计算机系统,例如上面关于图2描述的NAT实例224和服务VN堡垒226。开创服务实例可包括处理例如上面描述的服务实例的预备工作流。此外,如前面提到的,实例可在不同的时间被开创并简单地被重新配置。以这种方式,在请求的接收(602)和当HSM可用于由客户使用时的时间可减少。开创服务实例还可包括重新配置操作,例如装入软件和/或配置任何设置,其需要配置成使实例能够在服务VN中运行。
[0069] 如图6所示,过程600包括在客户的虚拟网络例如在HSM参数中规定的客户VN中创建(612)网络接口。如上面讨论的,网络接口可以是由计算资源提供者创建和托管的VNI。在实施方案中,创建网络接口可包括使用账户身份模拟来创建在客户的适当子网(例如由HSM参数规定的子网)中的网络接口。创建(612)网络接口还可包括其它操作,例如给网络接口相应于HSM服务的描述。该描述可例如识别HSM或网络接口用于连接到HSM。以这种方式,客户可(例如在由计算资源提供者托管的客户设备的清单中)区分开所创建(612)的网络接口与客户可在它的由计算资源提供者托管的虚拟网络中有的任何其它网络接口。在创建网络接口中包括的其它操作可包括将专用IP地址分配到网络接口以及配置任何安全设置(例如以防止客户改变网络接口的防火墙,其从计算资源提供者观点看可导致管理网络接口的能力的损失)。
[0070] 在实施方案中,过程(600)包括将所创建(612)的网络接口附加到(614)适当的服务实例(例如上面关于图2讨论的NAT实例224)。将所创建(604)的网络接口附加到所创建的服务实例可包括配置在服务虚拟网络和网络接口中的任何设置以允许到网络接口的通信继续进行到服务虚拟网络,反之亦然。例如,因为客户VN可被隔离,所以账户身份模拟可用于修改客户VN的设置以允许客户VN与服务实例通信。一旦网络接口附加到服务实例,过程600就可包括向客户通知HSM的可用性。通知可以根据各种实施方案以各种方式例如通过电子优点、即时消息、将通知消息置于通知队列中和/或以其它方式出现。此外,可在关于请求接收的HSM参数中规定通知出现的方式。
[0071] 图7示出可由客户执行以便利用由计算资源提供者提供为服务的HSM的过程700的例证性例子。过程700可在操作员的控制下由任何适当的系统例如客户的计算设备执行。在实施方案中,过程700包括使用提供HSM即服务的使用的计算资源提供者来创建远程托管的虚拟网络(例如远程托管的VLAN)。可以根据各种实施方案以各种方式创建远程托管的虚拟网络。例如,在一些实施方案中,可对计算资源提供者的管理系统进行适当配置的API调用以预备一个或多个计算资源(例如虚拟计算机系统),为VN提供适当的参数(例如IP地址范围),预备在远程托管的VN和房屋内网络之间的虚拟专用网络(VPN),等等。通常,可以使用可创建远程托管的客户VN的任何方式。
[0072] 一旦被创建,远程托管的虚拟网络就可配置(704)成连接到远程托管的HSM。可例如通过将API调用提交到计算资源提供者的管理系统来执行配置(704)远程托管的虚拟网络。配置(704)远程托管的虚拟网络可包括设置适当的访问许可以使计算资源提供者能够创建在远程托管的虚拟网络内部的网络接口。例如,可进行适当的API调用以创建允许计算资源提供者创建并附加网络接口的新角色。角色可以是能够访问虚拟网络的第三方角色。可为允许计算资源提供者创建网络接口的角色创建策略。关于角色的信息可被提供到计算资源提供者,其可使用该信息来创建网络接口并接着给客户发送另外的指令。
[0073] 如所示,过程(700)包括将对远程托管的HSM的请求提交到计算资源提供者。该请求可以是例如上面描述的具有HSM参数的适当配置的API调用。计算资源提供者可接着为HSM提供网络地址和证书。网络地址可以是HSM的管理接口例如在客户的虚拟网络中创建的网络接口可被访问所用的网络地址。相应地,过程700包括得到(708)远程托管的HSM器具的网络地址和证书。
[0074] 使用HSM器具的网络地址和证书,过程(700)可包括初始化并配置(710)远程托管的HSM。初始化并配置(710)远程托管的HSM可包括通过SSH(或以另一适当的方式)连接到HSM以及执行一个或多个操作。操作可包括改变证书(例如改变密码)以便限制计算资源提供者范围由HSM存储的信息的能力。其它操作可包括设置时区、HSM的系统日期和时间、将系统日志端点添加到HSM配置以使监控变得可能、将简单网络管理协议(SNMP)和系统日志配置添加到由计算资源提供者预备的现有设置。此外,初始化并配置(710)HSM可包括重新初始化HSM分区以永久地(即不能取消地)删除在HSM上的任何密钥和/或加密域以及创建上面描述的HSM的公开/私有密钥对以与其它HSM通信。创建公开/私有密钥对可包括从可被提供到一个或多个HSM客户端的公开密钥产生证书以使用公开/私有密钥电子签名方案使与HSM的通信变得可能。创建公开/私有密钥对可包括将命令传输到HSM以使HSM产生公开/私有密钥对和证书。除了上述内容以外,初始化并配置(710)远程托管的HSM可包括在HSM中创建例如上面讨论的一个或多个HSM客户端(即向HSM规定哪些客户端被授权使用HSM)。
[0075] 如所示,过程700包括配置(712)一个或多个HSM客户端,使得一个或多个HSM客户端能够利用HSM。例如,在实施方案中,配置HSM客户端可包括创建HSM客户端的公开/私有密钥对,HSM客户端从来自例如上面描述的公开/私有密钥对的公开密钥产生证书。这个证书可被提供到HSM(例如通过使用HSM的公开密钥将证书加密用于由HSM使用相应的私有密钥来解密)以使HSM能够使用公开密钥,用于产生被提供到HSM客户端用于验证的电子签名。其它操作可包括向HSM注册HSM客户端以及将HSM客户端分配到HSM的一个或多个分区。
[0076] 如同本文所述的所有过程一样,过程的变形被考虑为在本公开的范围内。例如,所示操作并不一定需要以所呈现的顺序执行。此外,可为了各种目的例如为了将HSM集成到各种环境内而包括额外的操作。例如,可为很多HSM和客户VN完成很多操作。可为了增加HSM可用性、增加性能和减小总操作故障的机会的目的(例如通过提供故障切换的选择,如果HSM变得不可操作)来建立多个HSM。此外,客户可托管它们自己的房屋内HSM。本公开的各种实施方案可包括使一个或多个房屋内HSM与一个或多个远程托管的HSM同步,使得例如客户可利用房屋内HSM,且如果房屋内HSM出故障,则使用远程托管的HSM。此外,如果客户选择终止与计算资源提供者的商业关系,则客户将存储在HSM中的信息(例如加密密钥)的拷贝维持在它自己的HSM中。
[0077] 此外,一旦不再被客户需要,本公开的各种实施方案就允许HSM的重新使用。例如在一些实施方案中,计算资源提供者要求(例如通过合同)客户在终止HSM即服务的使用之前不能取消地擦除存储在由客户使用的任何远程托管的HSM中的加密密钥。在坏账(例如客户也许由于破产而没有或不能付款)的情况下,计算资源提供者可远程访问由客户使用的任何远程托管的HSM(例如通过使HSM与网络断开、拔去电源插头等)并仍然在一段时间期间维持在HSM上的信息,在这段时间期间,客户被提供恢复对HSM的访问的机会(例如通过用现金支付债务或否则布置访问)。在这段时间过去之后,计算资源提供者可使用它的管理访问来将命令传输到任何适当的HSM以使HSM不能取消地擦除由HSM存储的任何加密信息。此时,计算资源提供者可利用任何回收的HSM来例如以上面描述的方式服务于其它客户。
[0078] 很多其它变形被考虑在本公开的范围内。例如,如上面提到的,计算资源提供者可提供多种类型的服务用于由客户使用。本公开的各种实施方案包括客户逻辑网络与服务的集成,以便可结合那些服务的使用来使用HSM。作为例证性例子,参考图2,客户可配置它的客户VN以与由计算资源提供者(或另一计算资源提供者)提供的数据存储服务通信。例如客户VN的一个或多个虚拟计算系统可配置成通过互联网通信并使用数据存储服务的Web服务。在由数据存储服务存储的数据存储对象上的许可例如限制对数据对象的访问,所以对象仅仅是从客户VN可访问的。本公开的各种实施方案允许与数据存储服务集成以允许例如服务器侧加密。客户VN可配置成使得数据存储服务的服务器可将数据提交到HSM以被加密。服务器可将明码文本提供到HSM,且HSM可返回使用适当的密钥(例如具有由服务器规定或默认地规定的标识符的密钥)产生的密码文本。明码文本可以是由服务器使用来将数据对象加密的密钥,且服务器可存储加密密钥连同加密数据对象。类似地,服务器可将加密密钥提供到HSM用于解密,且HSM可将密钥解密,提供解密的密钥用于在将数据对象解密时由服务器使用。其它变形也可被考虑为在本公开的范围内。
[0079] 鉴于下面的条款,可描述本公开的实施方案:
[0080] 1.一种计算机实现的方法,包括:
[0081] 在配置有可执行指令的一个或多个计算机系统的控制下,
[0082] 从计算资源提供者的客户接收将硬件安全模块添加到客户网络的请求,客户网络由计算机资源提供者托管并由客户远程地管理;
[0083] 作为接收到请求的结果,从计算资源提供者的多个可用硬件安全模块选择硬件安全模块;
[0084] 在客户网络中创建与被分派到客户的选定硬件安全模块通信的另一网络的网络接口;以及
[0085] 配置网络接口和另一网络,使得通过客户网络递呈到网络接口的请求被提供到选定硬件安全模块。
[0086] 2.条款1的计算机实现的方法,其中:
[0087] 客户网络还包括分配了由客户定义的相应网络地址的一个或多个设备;以及[0088] 客户网络通过虚拟专用网连接来连接到由客户托管的房屋内网络。
[0089] 3.条款1或2的计算机实现的方法,其中网络接口还包括在由客户定义的一组网络地址中的网络地址。
[0090] 4.条款1到3的计算机实现的方法,还包括:
[0091] 从客户的设备接收被递呈到接口的网络地址的通信;以及
[0092] 将通信的网络地址转换成由计算资源提供者利用的选定硬件电路模块的地址用于将网络流量路由到硬件安全模块。
[0093] 5.条款1到4的计算机实现的方法,还包括:
[0094] 使用硬件安全模块的第一管理账户来创建具有设备管理权利的第二管理账户;
[0095] 提供第二管理账户的证书以使客户能够改变证书,从而从计算资源提供者撤回对第二账户的访问。
[0096] 6.条款1到5的计算机实现的方法,还包括:
[0097] 在客户网络中创建与被分派到客户的第二选定硬件安全模块通信的第二网络的第二网络接口;以及
[0098] 配置所述第二网络接口和另一网络,使得通过客户网络递呈到第二网络接口的请求被提供到第二选定硬件安全模块。
[0099] 7.一种计算机实现的方法,包括:
[0100] 在配置有可执行指令的一个或多个计算机系统的控制下,
[0101] 从实体接收将设备添加到网络的请求;
[0102] 从可用于完成请求的一组可用设备选择设备;
[0103] 分派选定设备以由实体排他地使用;以及
[0104] 重新配置一组计算资源,使得网络包括连接网络接口和设备的另一网络的网络接口,以及使得被递呈到网络接口的网络流量通过另一网络转发到选定设备。
[0105] 8.条款7的计算机实现的方法,其中设备是硬件安全设备。
[0106] 9.条款7或8的计算机实现的方法,其中:
[0107] 实体还包括计算资源提供者的客户;以及
[0108] 网络由计算资源提供者托管并由客户管理。
[0109] 10.条款7到9的计算机实现的方法,其中网络还包括具有由实体定义的网络地址的设备。
[0110] 11.条款7到10的计算机实现的方法,其中:
[0111] 网络由不同于实体的组织托管;以及
[0112] 网络接口还包括作为实体的专用网络地址的网络地址。
[0113] 12.条款7到11的计算机实现的方法,其中请求还包括具有用于完成请求的参数的应用编程接口调用。
[0114] 13.一种系统,包括:
[0115] 一组计算资源,其实现网络;
[0116] web服务器,其配置成接收请求;
[0117] 管理子系统,其配置成:
[0118] 从web服务器接收将安全模块添加到具有一组相应的网络地址的网络的请求;以及
[0119] 作为接收到请求的结果,配置这组计算资源的至少子集,使得在网络中的一个或多个设备可通过将通信递呈到具有来自这组网络地址的网络地址的安全模块来与安全模块通信。
[0120] 14.条款13的系统,其中配置这组计算资源的子集包括:
[0121] 将网络接口添加到网络,使得网络接口还包括网络地址;以及
[0122] 还包括通过由这组计算资源实现的另一网络将网络接口连接到安全模块。
[0123] 15.条款13或14的系统,其中网络和另一网络还包括虚拟局域网。
[0124] 16.条款13到15的系统,其中安全模块还包括硬件安全模块。
[0125] 17.条款13到16的系统,其中:
[0126] 这组计算资源由计算资源提供者托管;以及
[0127] 请求还包括来自计算资源提供者的客户的Web服务调用。
[0128] 18.条款13到17的系统,其中:
[0129] 这组计算资源由计算资源提供者托管;在配置这组计算资源之后的时间,安全模块以计算资源提供者不可访问的方式存储计算资源提供者的客户的加密信息。
[0130] 19.一个或多个计算机可读存储介质,其具有共同存储在其上的指令,所述指令在由计算系统的一个或多个处理器执行时使计算系统:
[0131] 接收将安全模块添加到网络的请求,网络代表第三方实体被托管并具有一组相应的网络地址;
[0132] 所为接收到请求的结果,使一组计算资源中的计算资源重新配置,使得到安全模块的通信使用来自这组相应的网络地址的网络地址是可寻址的。
[0133] 20.条款19的一个或多个计算机可读存储介质,其中使计算资源重新配置还包括,包括使网络的将网络连接到安全模块的网络接口以成为网络的部分。
[0134] 21.条款19或20的一个或多个计算机可读存储介质,其中安全模块还包括硬件安全模块。
[0135] 22.条款19到21的一个或多个计算机可读存储介质,其中使计算资源重新配置还包括,包括使安全模块分派以由第三方实体排他地使用。
[0136] 23.条款19到22的一个或多个计算机可读存储介质,其中:
[0137] 安全模块还包括在这组网络地址之外的网络地址;以及
[0138] 使计算资源重新配置还包括,包括使网络连接到转换网络地址以实现在网络和安全模块之间的通信的网络地址转换设备。
[0139] 24.条款19到23的一个或多个计算机可读存储介质,其中这组相应的网络地址还包括专用互联网协议地址。
[0140] 图8示出用于实现根据各种实施方案的方面的示例环境800的方面。如将认识到的,虽然为了解释的目的使用基于Web的环境,可视情况使用不同的环境来实现各种实施方案。环境包括电子客户端设备802,其可包括可操作来通过适当的网络804发送并接收请求、消息或信息并将信息传送回到设备的用户的任何适当的设备。这样的客户端设备的例子包括个人计算机、蜂窝电话、手持消息发送设备、膝上型计算机、平板计算机、机顶盒、个人数字助理、嵌入式计算机系统、电子书阅读器等。网络可包括任何适当的网络,包括内联网、互联网、蜂窝网络、局域网或任何其它这样的网络或其组合。用于这样的系统的部件可至少部分地取决于所选择的网络和/或环境的类型。用于经由这样的网络进行通信的协议和部件是公知的且将不在本文被详细讨论。通过网络的通信可由有线或无线连接及其组合启用。在这个例子中,网络包括互联网,因为环境包括用于接收请求并响应于其而提供内容的Web服务器806,虽然对于其它网络,可使用提供类似的目的的可选设备,如将对本领域中的普通技术人员明显的。
[0141] 例证性实施方案包括至少一个应用服务器808和数据暂存器810。应理解,可以有可被链接或否则配置的几个应用服务器、层或其它元件、过程或部件,其可交互作用以执行任务,例如从适当的数据暂存器得到数据。可以用各种方式实现如在本文使用的服务器,例如硬件设备或虚拟计算机系统。在一些背景中,服务器可以指在计算机系统上执行的编程模块。如在本文使用的,术语“数据暂存器”指能够存储、访问和取回数据的任何设备或设备的组合,其可包括在任何标准、分布式或群集环境中的任何组合和数量的数据服务器、数据库、数据存储设备和数据存储介质。应用服务器可包括用于按需要与数据暂存器集成以执行客户端设备的一个或多个应用的方面、操纵应用的一些(甚至大部分)数据访问和商业逻辑的任何适当的硬件和软件。应用服务器可与数据暂存器协作来提供访问控制服务器,并能够产生将被传送给用户的内容例如文本、图形、音频和/或视频,其可以在这个例子中以超文本标记语言(“HTML”)、可扩展标记语言(“XML”)或另一适当的结构化语言的形式由Web服务器提供给用户。所有请求和响应的操纵以及在客户端设备802和应用服务器808之间的内容的分发可由Web服务器操纵。应理解,Web和应用服务器是不需要的,且仅仅是示例部件,因为本文讨论的结构化代码可在任何适当的设备或主机上执行,如在本文其它地方讨论的。此外,在本文被描述为由单个设备执行的操作可以,除非从上下文中清楚的,由可形成分布式系统的多个设备共同执行。
[0142] 数据暂存器810可包括几个单独的数据表格、数据库或用于存储与本公开的特定方面有关的其它数据存储机构和介质。例如,所示数据暂存器可包括用于存储可用于为生产侧提供内容的生产数据812和用户信息816的机制。数据暂存器也被示为包括用于存储可用于报告、分析或其它这样的目的的登录数据814的机制。应理解,可以有可能需要存储在数据暂存器中的很多其它方面,例如用于页面图像信息和访问权利信息,权利信息可视情况存储在任何上面列出的机制中或在数据暂存器810中的额外的机制中。数据暂存器810可操作来通过与其相关的逻辑从应用服务器808接收指令并响应于其而得到、更新或否则处理数据。在一个例子中,用户通过由用户操作的设备可提交对某种类型的物品的搜索请求。在这种情况下,数据暂存器可访问用户信息以验证用户的身份,并可访问类别细节信息以得到关于那个类型的物品的信息。信息任何可返回到用户,例如在用户能够经由用户设备
802上的浏览器观看的网页上的结果列表中。可在浏览器的专用页面或窗口中观看感兴趣的特定物品的信息。然而应注意,本公开的实施方案并不一定限于网页的上下文,而是可更一般地可适用于通常处理请求,其中请求不一定是对内容的请求。
[0143] 每个服务器一般将包括提供用于那个服务器的一般管理和操作的可执行程序指令,且一般将包括存储指令的计算机可读存储介质(例如硬盘、随机存取存储器、只读存储器等),指令在由服务器的处理器执行时允许服务器执行它的预期功能。操作系统的适当实现和服务器的一般功能是已知的或市场上可买到的,且容易由本领域中的具有普通技能的人特别是根据本文的公开来容易实现。
[0144] 环境在一个实施方案中是利用经由通信链路使用一个或多个计算机网络或直接连接互连的几个计算机系统和部件的分布式计算环境。然而,本领域中的普通技术人员将认识到,这样的系统可同样好地在具有比图8所示的更少或更大数量的部件的系统中操作。因此,图8中的系统800的描述应被理解为在性质上是例证性的且不限于本发明的范围。
[0145] 各种实施方案还可在各种操作环境中实现,操作环境在一些情况下可包括可用于操作多个应用中的任一个的一个或多个用户计算机、计算设备或处理设备。用户或客户端设备可包括多个通用个人计算机中的任一个,例如运行标准操作系统的桌上型计算机、膝上型计算机或平板计算机以及运行移动软件并能够支持多个联网和消息发送协议的蜂窝、无线和手持设备。这样的系统还可包括运行各种市场上可买到的操作系统和用于诸如发展和数据库管理的目的的其它已知的应用中的任一个的多个工作站。这些设备还可包括其它电子设备,例如哑终端、瘦客户端、游戏系统和能够经由网络进行通信的其它设备。
[0146] 本公开的各种实施方案利用本领域中的技术人员熟悉的用于使用各种市场上可买到的协议中的任一个来支持通信的至少一个网络,这些协议是例如传输控制协议/互联网协议(“TCP/IP”)、在开放系统互联(“OSI”)模型的各种层中操作的协议、文件传输协议(“FTP”)、通用即插即用(“UpnP”)、网络文件系统(“NFS”)、公用互联网文件系统(“CIFS”)和AppleTalk。网络可以是例如局域网、广域网、虚拟专用网、互联网、内联网、外联网、公共交换电话网络、红外网络、无线网络及其任何组合。
[0147] 在利用Web服务器的实施方案中,Web服务器可运行各种服务器或中层应用中的任一个,包括超文本传输协议(“HTTP”)服务器、FTP服务器、通用网关接口(“CGI”)服务器、数据服务器、Java服务器和商业应用服务器。服务器也可以能够例如通过执行一个或多个Web应用来执行在来自用户设备的响应请求中的程序或脚本,Web应用可被实现为以任何编程语言例如 C、C#或C++或任何脚本语言例如Perl、Python或TCL以及其组合编写的一个或多个脚本或程序。服务器还可包括数据库服务器,没有限制地包括在市场上从和 可买到的那些数据库服务器。
[0148] 环境可包括各种数据暂存器和如上面讨论的其它存储器及存储介质。这些可存在于各种位置上,例如在一个或多个计算机的本地(和/或存在于一个或多个计算机中)或远离整个网络中的任何或所有计算机的存储介质上。在一组特定的实施方案中,信息可存在于本领域中的技术人员熟悉的存储区域网(“SAN”)上。类似地,用于执行属于计算机、服务器或其它网络设备的功能的任何必要的文件可视情况在本地和/或远程地存储。在系统包括计算机化设备的场合时,每个这样的设备可包括可经由总线电耦合的硬件元件,元件包括例如至少一个中央处理单元(“CPU”或“处理器”)、至少一个输入设备(例如鼠标、键盘、控制器、触摸屏或袖珍键盘)和至少一个输出设备(例如显示设备、打印机或扬声器)。这样的系统还可包括一个或多个存储设备,例如磁盘驱动器、光学存储设备和固态存储设备例如随机存取存储器(“RAM”)或只读存储器(“ROM”)以及可移动介质设备、存储卡、闪存卡等。
[0149] 这样的设备还包括计算机可读存储介质阅读器、通信设备(例如调制解调器、网卡(无线或有线)、红外通信设备等)和如上所述的工作存储器。计算机可读存储介质阅读器可与连接于或配置成接收计算机可读存储介质,其代表远程、本地、固定和/或可移动存储设备以及用于临时和/或更永久地包含、存储、传输和取回计算机可读信息的存储介质。系统和各种设备也一般将包括多个软件应用、模块、服务或位于至少一个工作存储器设备内的其它元件,包括操作系统和应用程序,例如客户端应用或Web浏览器。应认识到,可选的实施方案也可被使用和/或特定的元件可在硬件、软件(包括便携式软件,例如小应用程序)或这两者中实现。此外,可使用到其它计算设备例如网络输入/输出设备的连接。
[0150] 用于包含代码或代码的部分的存储介质和计算机可读介质可包括本领域中已知或使用的任何适当的介质,包括存储介质和通信介质,例如但不限于在用于存储和/或传输信息例如计算机可读指令、数据结构、程序模块或其它数据的任何方法或技术中实现的易失性和非易失性、可移动和不可移动介质,包括RAM、ROM、电可擦除可编程只读存储器(“EEPROM”)、闪存或其它存储技术、光盘只读存储器(“CD-ROM”)、数字通用盘(DVD)或其它光学存储器、盒式磁带、磁带、磁盘存储器或其它磁性存储设备或可用于存储期望信息并可由系统设备访问的任何其它介质。基于本文提供的公开和教导,本领域中的普通技术人员将认识到实现各种实施方式的其它方式和/或方法。
[0151] 说明书和附图相应地在例证性而不是限制性的意义上被考虑。然而将明显,可对其进行各种修改和改变,而不偏离如在权利要求中阐述的本发明的更宽的精神和范围。
[0152] 其它变形在本公开的精神内。因此,虽然所公开的技术容易容许各种修改和可选的构造,但是其某些所示实施方案在附图中示出并在上面被详细描述。然而应理解,没有将本发明限制到所公开的特定形式或形式的意图,而是相反,本发明应涵盖落在如在所附权利要求中限定的本发明的精神和范围内的所有修改、可选的构造和等效形式。
[0153] 在描述所公开的实施方案的上下文中(特别是在下面的权利要求的上下文中)的术语“一(a)”和“一(an)”及“该(the)”和类似的所指对象的使用应被解释为涵盖单数和复数,除非在本文另有指示或除非与上下文明显矛盾。术语“包含”、“具有”、“包括”和“含有”应被解释为开放术语(即,意指“包括但不限于”),除非另有指及。术语“连接”当未被修改且指物理连接时应被解释为部分地或全部包含在…内、附接到或连接在一起,即使有介入的某物。在本文的值的范围的叙述仅仅意欲用作单独地提到落在该范围内的每个单独值的简略方法,除非在本文另有指示,且每个单独值合并到说明书中,如同它在本文被单独地叙述一样。术语“集合”(例如“物品的集合”)或“子集”的使用,除非另外提及或与上下文矛盾,应被解释为包括一个或多个成员的非空集合。此外,除非另外提及或与上下文矛盾,相应的集合的术语“子集”并不一定表示相应的集合的适合子集,而是子集和相应的集合可以是相等的。
[0154] 可以按任何适当的顺序执行本文所述的过程的操作,除非本文另有指示或除非与上下文明显矛盾。本文所述的过程(或其变形和/或组合)可在配置有可执行指令的一个或多个计算机系统之下被执行,并可被实现为共同在一个或多个处理器上由硬件或其组合执行的代码(例如可执行指令、一个或多个计算机程序或一个或多个应用)。代码可例如以包括由一个或多个处理器可执行的多个指令的计算机程序的形式存储在计算机可读存储介质上。计算机可读存储介质可以是非临时的。
[0155] 本文提供的任何和所有例子或示例性语言(例如,“例如(such as)”)仅意欲更好地说明本发明的实施方案且不对本发明的范围提出限制,除非另有主张。在说明书中没有语言应被解释为将任何未主张的元件指示为对本发明的实施是必不可少的。
[0156] 在本文描述了本公开的优选实施方案,包括发明人已知的用于实现本发明的最佳模式。在阅读前述描述时,那些优选的实施方案的变形可对本领域普通技术人员变得明显。发明人预期技术人员视情况使用这样的变形,且发明人预期本公开的实施方案应与如在本文特别描述的不同地被实施。相应地,本公开的访问包括在其所附的权利要求中叙述的主题的所有修改和等效形式,如被可适用的法律允许的。而且,在其中的所有可能的变形中的上述元件的任何组合由本公开的范围包括,除非在本文另有指示或除非与上下文明显矛盾。
[0157] 在本文引用的所有参考文献,包括出版物、专利申请和专利,特此通过引用并入,其程度如同单独地且特别地指示每个参考文献通过引用并入且在本文整体被阐述一样。