一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

将安全客户机的安全密钥绑定到硬件安全模块的制作方法

2021-10-27 14:26:00 来源:中国专利 TAG:密钥 客户机 绑定 模块 硬件

将安全客户机的安全密钥绑定到硬件安全模块


背景技术:

1.在当今的计算机系统和信息传输网络中,密码元素是重要的技术组件。可以以加密保护的形式存储或传输信息,以便避免对所存储或传输的信息的非授权访问。在一些情况下,可以使用纯基于软件的技术,并且在其他情况下,可以使用硬件支持和安全特定元件来执行这样的数据保护。在一些情况下,这些特定元件被命名为硬件安全模块(hsm),其可被用作计算机或信息传输系统的一部分。这种硬件安全模块可以包括特定电路,以便提供用于数据加密和数据解密的功能。该功能还可以包括生成和存储用于客户机系统的使用的加密密钥。
2.hsm包含非授权方不可访问的主密钥。这些主密钥用于加密(即,包装)hsm的用户可用的密钥。由hsm主密钥包装的这种密钥被称为安全密钥。hsm是防篡改的,并且保护秘密不受非授权访问(例如,非计划的物理插入、物理渗透等)。hsm可以被分配给各种虚拟资源,诸如虚拟机(vm),并且在虚拟环境中,hsm可能不知道它从一个vm到另一个vm的重新分配。
3.vm分配的灵活性可造成安全问题,因为在高度敏感的托管信息技术(it)环境中,更严格的安全协议会支持保护利用具有安全密钥(由hsm的主密钥包装)的客户机的可信用户不被非受信用户使用安全密钥,即使客户机自己被非法入侵或以其它方式被损害并且安全密钥和其它数据被窃取。


技术实现要素:

4.通过提供一种用于将安全客户机的安全密钥绑定到硬件安全模块的方法,克服了现有技术的缺点并提供了附加优点。该方法包括例如由通信地耦合到管理程序和硬件安全模块的安全接口控件配置该硬件安全模块以用于由管理程序管理的安全客户机的独占使用,该配置包括:由安全接口控件经由管理程序从由管理程序管理的一个或多个客户机中的给定客户机获得用于配置硬件安全模块的配置请求;由安全接口控件确定硬件安全模块是否已经被配置给一个或多个客户机中的特定客户机,其中特定客户机和给定客户机包括一个或多个客户机中的不同客户机;基于确定硬件安全模块未被配置给特定客户机,由安全接口控件通过评估给定客户机的元数据来确定给定客户机包括安全客户机;基于确定给定客户机包括安全客户机,由安全接口控件通过将客户机对硬件安全模块的访问排他地限制到一个或多个客户机中的给定客户机,取消建立硬件安全模块的配置;由安全接口控件将给定客户机登录到硬件安全模块,其中登录到硬件安全模块包括利用给定客户机的秘密,其中元数据包括该秘密;基于登录到硬件安全模块,由安全接口控件从硬件安全模块获得会话代码;以及由安全接口控件保持会话代码。
5.通过提供一种用于将安全客户机的安全密钥绑定到硬件安全模块的计算机程序产品,克服了现有技术的缺点并提供了附加的优点。该计算机程序产品包括存储介质,该存储介质可由处理电路读取并且存储由处理电路执行以执行一种方法的指令。该方法包括例如由通信地耦合到管理程序和硬件安全模块的一个或多个处理器配置该硬件安全模块以用于由管理程序管理的安全客户机的独占使用,该配置包括:由一个或多个处理器经由管
理程序从由管理程序管理的一个或多个客户机中的给定客户机获得用于配置硬件安全模块的配置请求;由一个或多个处理器确定硬件安全模块是否已经被配置给一个或多个客户机中的特定客户机,其中特定客户机和给定客户机包括一个或多个客户机中的不同客户机;基于确定硬件安全模块未被配置给特定客户机,由安全接口控件通过评估给定客户机的元数据来确定给定客户机包括安全客户机;基于确定给定客户机包括安全客户机,由一个或多个处理器通过将客户机对硬件安全模块的访问排他地限制到一个或多个客户机中的给定客户机,取消建立硬件安全模块的配置;由一个或多个处理器将给定客户机登录到硬件安全模块,其中,登录到硬件安全模块包括利用给定客户机的秘密,其中元数据包括该秘密;基于登录到硬件安全模块,由一个或多个处理器从硬件安全模块获得会话代码;以及由一个或多个处理器保持会话代码。
6.通过提供一种用于将安全客户机的安全密钥绑定到硬件安全模块的系统,克服了现有技术的缺点并提供了附加的优点。该系统包括存储器、与存储器通信的一个或多个处理器、以及可由一个或多个处理器经由存储器执行以执行一种方法的程序指令。该方法包括例如由通信地耦合到管理程序和硬件安全模块的一个或多个处理器配置该硬件安全模块以用于由管理程序管理的安全客户机的独占使用,该配置包括:由一个或多个处理器经由管理程序从由管理程序管理的一个或多个客户机中的给定客户机获得用于配置硬件安全模块的配置请求;由一个或多个处理器确定硬件安全模块是否已经被配置给一个或多个客户机中的特定客户机,其中特定客户机和给定客户机包括一个或多个客户机中的不同客户机;基于确定硬件安全模块未被配置给特定客户机,由安全接口控件通过评估给定客户机的元数据来确定给定客户机包括安全客户机;基于确定给定客户机包括安全客户机,由一个或多个处理器通过将客户机对硬件安全模块的访问排他地限制到一个或多个客户机中的给定客户机,取消建立硬件安全模块的配置;由一个或多个处理器将给定客户机登录到硬件安全模块,其中,登录到硬件安全模块包括利用给定客户机的秘密,其中元数据包括该秘密;基于登录到硬件安全模块,由一个或多个处理器从硬件安全模块获得会话代码;以及由一个或多个处理器保持会话代码。
7.本文还描述并要求保护与一个或多个方面相关的方法和系统。此外,本文还描述并可能要求保护与一个或多个方面相关的服务。例如,在本发明的一些实施例中,保持包括将会话代码与null会话代码的关联存储在安全接口控件中的关联表中。
8.在本发明的一些实施例中,客户机的元数据被完整性保护,并且通过使用由安全接口控件所拥有的私钥导出的密钥来对秘密进行加密。私钥可以包括给定客户机的引导映像的加密措施(cryptographic measure)。
9.在本发明的一些实施例中,基于配置,(一个或多个)处理器和/或安全接口控件向给定客户机提供新的会话代码,以由给定客户机在到硬件安全模块的请求中使用。
10.在本发明的一些实施例中,(由(一个或多个)处理器和/或安全接口控件)提供包括:(一个或多个)处理器和/或安全接口控件拦截来自给定客户机的硬件安全模块登录请求,其中硬件安全模块登录请求包括来自给定客户机的登录数据;(一个或多个)处理器和/或安全接口控件基于给定客户机的秘密来生成新的登录数据;(一个或多个)处理器和/或安全接口控件向硬件安全模块发出来自给定客户机的新的硬件安全模块登录请求,其中新的硬件安全模块登录请求包括新的登录数据;(一个或多个)处理器和/或安全接口控件从
硬件安全模块获得会话代码;基于从硬件安全模块获得会话代码,(一个或多个)处理器和/或安全接口控件生成新的会话代码;(一个或多个)处理器和/或安全接口控件将来自硬件安全模块的会话代码与新的会话代码之间的关联存储在表中;以及响应于登录请求,(一个或多个)处理器和/或安全接口控件将新的会话代码发送到给定客户机。
11.在本发明的一些实施例中,(一个或多个)处理器和/或安全接口控件拦截从给定客户机到硬件安全模块的请求,其中该请求包括新的会话代码。(一个或多个)处理器和/或安全接口控件从表中获得与新的会话代码相关联的来自硬件安全模块的会话代码。(一个或多个)处理器和/或安全接口控件将来自给定客户机的请求更新成包括新的请求,其中新的请求包括来自硬件安全模块的会话代码而不是新的会话代码。(一个或多个)处理器和/或安全接口控件向硬件安全模块发出新的请求。
12.在本发明的一些实施例中,(一个或多个)处理器和/或安全接口控件从硬件安全模块获得请求的履行。(一个或多个)处理器和/或安全接口控件向给定客户机发出请求的履行。在本发明的一些实施例中,请求选自包括以下各项的组:硬件安全模块安全密钥生成请求,以及硬件安全模块注销请求。
13.在本发明的一些实施例中,(一个或多个)处理器和/或安全接口控件从管理程序获得给定客户机已停止的指示。(一个或多个)处理器和/或安全接口控件在表中识别来自硬件安全模块的会话代码与新的会话代码之间的关联。基于该表,(一个或多个)处理器和/或安全接口控件生成利用来自硬件安全模块的会话代码的一个或多个会话的列表。(一个或多个)处理器和/或安全接口控件从一个或多个会话中注销给定客户机。
14.在本发明的一些实施例中,(一个或多个)处理器和/或安全接口控件从管理程序获得给定客户机已停止的指示。(一个或多个)处理器和/或安全接口控件移除配置。
15.在本发明的一些实施例中,(一个或多个)处理器和/或安全接口控件从管理程序获得给定客户机已停止的指示。(一个或多个)处理器和/或安全接口控件识别在硬件安全模块中保持的对给定客户机的引用。(一个或多个)处理器和/或安全接口控件移除该引用。
16.在本发明的一些实施例中,安全接口组件选择包括以下各项的组:固件,硬件,以及软件。
17.在本发明的一些实施例中,通过评估给定客户机的元数据来确定给定客户机包括安全客户机包括:(一个或多个)处理器和/或安全接口控件验证元数据的存在或类型中的一个。
18.在本发明的一些实施例中,(一个或多个)处理器和/或安全接口控件利用给定客户机的秘密包括:(一个或多个)处理器和/或安全接口控件对秘密进行解密。
19.在本发明的一些实施例中,解密包括:利用由安全接口控件排他地计算的密钥。
20.通过本文所描述的技术来实现附加特征。其它实施例和方面在本文中被详细描述并被视为所要求保护的方面的一部分。
附图说明
21.在说明书的结尾处的权利要求中作为示例特别指出并清楚要求保护一个或多个方面。从结合附图的以下详细描述中,一个或多个方面的前述目的、特征和优点将变得显而易见,在附图中:
22.图1示出了利用硬件安全模块的当前方法所遇到的安全问题;
23.图2示出了本发明的一些实施例的各种方面;
24.图3是示出本发明的一些实施例的某些方面的工作流程;
25.图4是示出本发明的一些实施例的某些方面的工作流程;
26.图5是示出本发明的一些实施例的某些方面的工作流程;
27.图6是示出本发明的一些实施例的某些方面的工作流程;
28.图7是示出本发明的一些实施例的某些方面的工作流程;
29.图8是示出本发明的一些实施例的某些方面的工作流程;
30.图9描绘了可在云计算环境中利用的计算节点的一个实施例;
31.图10描绘了根据本发明的实施例的云计算环境;以及
32.图11描绘了根据本发明的实施例的抽象模型层。
具体实施方式
33.附图进一步示出了本发明,并且与本发明的详细描述一起用来解释本发明的原理,在附图中,贯穿各个视图,相同的附图标记表示相同或功能相似的元件,并且附图被并入说明书中并形成说明书的一部分。如本领域的技术人员所理解的,提供附图是为了易于理解和说明本发明的某些实施例的各方面。本发明并不限于附图中所描述的实施例。
34.如本领域的技术人员所理解的,在本技术中通篇所提及的程序代码包括软件和硬件两者。例如,本发明的某些实施例中的程序代码包括固定功能硬件,而其它实施例利用所描述的功能的基于软件的实现。某些实施例组合了两种类型的程序代码。当具有一组(至少一个)程序模块42的程序/实用程序40可被存储在存储器28中时,在图9中描绘了程序代码的一个示例(也称为一个或多个程序)。
35.术语“硬件安全模块”或hsm可以表示计算机系统的可插拔组件或单独连接组件。hsm可以使用主密钥或另一个提供的密钥(例如,客户机密钥)来执行加密操作和解密操作。加密和/或解密可以在硬件安全模块上以硬件和软件或两者的任意组合来执行。数据可以由硬件安全模块以未加密的方式接收,并且可以在hsm上被加密,反之亦然。
36.术语“客户机系统”可以表示例如在管理程序上的虚拟机vm中执行的操作系统。用户可以被分配给客户机系统。可以是特定加密密钥可被分配给客户机系统。所提到的管理程序可用于执行这样的分配。特定加密密钥可以被存储在hsm上。
37.术语“内容”可以表示任何基于字符的串。该串可以包括可读文本或任何其它二进制数据。
38.术语“数据模式”可以基本上是内容的另一种表达。数据模式可以表示可读字符串或者可以包括二进制数据。在本文的上下文中,对于数据模式没有附加的要求。它也可以是预定义的、随机选择的、或者以其他方式确定的。
39.术语“主密钥”可以表示被存储在hsm上的加密/解密密钥。在本文的上下文中,在一个实施例中,可以假设主密钥永远不能被传送出它被存储在其上的硬件安全模块。
40.术语“客户机加密单元”可以表示适于在客户机系统内或者作为客户机系统的一部分或者作为由客户机系统使用的服务执行加密和/或解密操作的模块。
41.术语“硬件安全模块加密单元”可以表示hsm内的适于使用主密钥或另一个提供的
密钥(例如客户机密钥)来加密任何数据模式的模块。因此,“硬件安全模块解密单元”可被用于使用主密钥来解密任何数据模式(例如客户机密钥),或者使用另一个提供的密钥(例如客户机密钥)来解密另一个数据模式。
42.可以注意,硬件安全模块(即hsm)可以是例如加密卡。客户机系统可以是例如运行或执行客户机操作系统的虚拟机(即vm)。配置hsm可以包括将主密钥存储在hsm的存储器中。
43.本发明的实施例包括计算机实现的方法、计算机程序产品、和计算机系统,其包括在至少一个处理电路上执行的程序代码,该程序代码有效地将hsm的安全密钥绑定到属于特定所有者的特定客户机,以使得被hsm保护的数据仅可在可访问hsm的系统内使用。具体地,如以下更详细地解释的,在本发明的实施例中,在一个或多个处理器上执行的程序代码基于被加密地链接到安全客户机的映像的秘密,将被配置为使用hsm的安全客户机(例如,vm)的安全密钥绑定到hsm会话代码。然而,该秘密不是客户机的一部分。相反,如本文所描述的,它作为客户机元数据的一部分通过安全通道(即,被加密的)被独立地传输到安全接口控件(例如,固件、可信组件),并被加密地链接到客户机。元数据被加密地链接到客户机(例如,包含客户机映像的签名),因此,一个客户机的元数据不能被误用为另一个客户机的元数据。因此,安全接口控件可以验证客户机和元数据/秘密属于彼此。在本发明的一些实施例中,秘密被链接到安全客户机的引导映像,该安全客户机被加密地绑定到被安全地(被完整性和机密性保护的)传送(例如,并且独立地,通过安全通道)到可信组件的元数据。在本发明的一些实施例中,元数据的包含秘密的部分会被只有安全接口控件可以计算的密钥加密。
44.安全客户机也可以被称为客户虚拟机、虚拟机和/或虚拟服务器。在本发明的实施例中,程序代码将秘密(安全地)提供给安全接口控件(例如固件、可信组件),作为被提供以启动安全客户机的映像的安装元数据的一部分。尽管被链接到客户机,但是秘密作为客户机元数据的一部分通过安全信道(即,被加密的)被独立地传输到安全接口控件并被加密地链接到客户机。因此,安全接口控件可以验证客户机和元数据/秘密属于彼此。因此,在本发明的一些实施例中,安全客户机的元数据被完整性保护,并且包括由使用安全接口控件所拥有的私钥(例如,给定客户机的引导映像的加密措施)导出的密钥来加密的秘密。元数据不需要可由安全客户机本身访问。如将在下面更详细地解释的,在本发明的实施例中,可信组件的程序代码:1)在客户机的生命周期内为安全客户机保留hsm;2)使用秘密来打开hsm会话;3)拦截hsm密钥生成请求,并在使用秘密打开会话时,重新发出用作为回复所接收的会话代码替换所使用的会话代码的请求;以及4)当安全客户机被终止时,关闭使用秘密打开的所有会话。
45.图1是包括hsm 110的共享计算环境100的一部分,其示出了本发明的实施例所解决的采用现有方法对hsm相关的密钥安全的问题,从而展示了本发明的实施例如何比现有方法多得多地在hsm中提供密钥安全。如图1所示,hsm包含非授权方不可访问的主密钥120。主密钥120由hsm的程序代码用来加密(即,包装)hsm的程序代码使其对hsm的用户可用的密钥。由hsm主密钥120包装的密钥被称为安全密钥。在图1中,客户机150(客户机1)、虚拟机(vm)拥有来自hsm 110的管理程序140提供给客户机150的安全密钥130。如本领域的技术人员所理解的,hsm是防篡改的,并且保护秘密不受非授权访问(例如,非计划的物理插入、物
理渗透等),然而,客户机150不具有相当的安全性,并因此可表示漏洞。在虚拟环境中,由于管理程序140控制安全密钥130的分配,因此,hsm 110可能不知道它从一个客户机(即,vm)到另一个客户机(即,vm)的重新分配。因此,如果恶意用户利用第二客户机160(客户机2)来入侵给定客户机150(客户机1),并且被分配给客户机150的安全密钥130被第二客户机160保持,则存在安全漏洞。因此,第二客户机160可以窃取(170)由管理程序140分配的客户机150的安全密钥130。这在高度敏感的托管it环境中尤其是问题,在这种环境中,被托管的客户机的所有者希望保持比主机环境的管理员更积极的安全性。在共享计算环境100中,各种客户机可以由不同的实体拥有,并且hsm 110可以仅属于这些实体中的某些实体。因此,客户机所有者(诸如安全密钥130被分配给的客户机150的所有者)期望保持它的安全密钥130,该安全密钥由hsm110的主密钥120包装。该客户机所有者不希望安全密钥130被利用共享计算环境100中的资源的不同实体所拥有的非受信客户机使用。在图1中,客户机和第二客户机160具有不同的所有者,并且客户机150的所有者想要确保即使客户机150被入侵(如图1所示)并且安全密钥130和其它数据被偷窃(170),它也不能被除了安全密钥130最初被分配给的客户机150的所有者之外的任何所有者利用。
46.本发明的实施例不可避免地与计算相联系,至少是因为它们旨在解决计算所特有的问题,并提供也在该领域内的技术方法。本发明的实施例将hsm的安全密钥绑定到属于特定所有者的特定客户机(例如vm)。图1中示出的本发明的一些实施例的各方面用于解决的问题是特定于计算的(即,非授权客户机获得对授权客户机的安全包装密钥的访问权)。假定问题和方法都是特定于计算的,则本发明的实施例不可避免地与计算相联系。
47.本发明的实施例相对于现有方法对图1所示的密钥安全问题提供显著的优点,例如,一些现有方法通过提供执行客户机的上下文,而无需管理程序能够访问客户机所使用的存储器和/或机密地安装该安全客户机(即,使用公钥来保护客户机的安装数据内的秘密,其中只有可信组件(硬件(hw)和/或固件(fw)组件)可以访问该客户机的私钥),提供对密钥安全的支持。在本发明的一些实施例中,安全接口控件(其也可以被理解为可信组件)是硬件、固件、或其组合。该方法添加了额外的复杂度层,并且仍然不将客户机所有者绑定到给定的安全密钥。其它方法创建单独的会话以将安全密钥与会话代码(其取决于会话登录数据)绑定,但是该方法消除了使给定密钥由客户机连续使用的功能,从而损害了在利用安全密钥的情况下涉及客户机的处理的效率。另外,一些方法试图将hsm绑定到操作系统(os)映像。这些方法具有在本发明的实施方案中未发现的特定缺陷:1)当引导设备改变时,绑定被打破;和/或2)hsm适配器仅在它被插入后才可被检查。
48.图2示出了其中实现本发明的某些实施例的各方面的计算环境200(诸如共享计算环境)的各方面。与图1中类似,hsm 210包括主密钥220。而且,管理程序240与包括安全客户机250的客户机(例如vm)交互,这被如此理解是因为它的安全密钥230(用主密钥220包装的)被绑定到hsm 210。除了管理程序240之外,在本发明的实施例中,可信组件(在该非限制性示例中被示为安全接口控件265,但在本发明的其它实施例中也可以是安全接口控件)支持直通访问hsm 210的配置。具体地,在本发明的一些实施例中,安全接口控件265实施这样的策略:一旦针对安全客户机250配置了直通访问,则在该安全客户机250的生命周期期间,hsm 210不能被(临时地)配置给另一个客户机或系统的组件。在本发明的一些实施例中,安全接口控件265基于秘密225来打开到hsm 210的会话,该秘密是被加密地链接到客户机的
客户机元数据的一部分并可被包含在安全客户机的安装数据(例如,安全执行(se)报头)中,并且将安全客户机250的所有安全密钥230绑定到该秘密225。秘密225被加密地链接到安全客户机250的映像,并且被安全地提供给安全接口控件265,作为被提供以启动安全客户机250的映像的安装元数据的一部分。秘密225不是安全客户机250的一部分,并作为客户机元数据的一部分被传输到安全接口控件265(通过安全通道,即,被加密的),并且被加密地链接到安全客户机250。因此,安全接口控件265可以验证安全客户机250和元数据/秘密225属于彼此。安全客户机250的元数据被完整性保护,并且包括秘密225,该秘密225可由使用安全接口控件265所拥有的私钥(例如,给定客户机的引导映像的加密措施)导出的密钥来加密。
49.图3是示出本发明的一些实施例的各方面的工作流程300。仅出于说明的目的,参考图2的计算环境200图示了工作流程300。具体地,图3是示出了将安全客户机250(具有已由hsm主密钥220包装的至少一个安全密钥230的客户机)绑定到hsm 210的各方面的工作流程300。如上所述,在可信组件(在图2中是安全接口控件265)的帮助下完成了许多绑定。在本发明的实施例中的安全接口控件265的程序代码支持直通访问hsm 210的配置。为了支持这个方面,在一个或多个处理器上执行的程序代码配置安全接口控件265(即,安全接口控件265的程序代码)以提供某些功能。
50.图3的工作流程300示出了由已配置的安全接口控件265提供的功能。具体地,工作流程300示出了本发明的一些实施例的某些方面,其中基于在安全客户机的元数据中包括hsm秘密,可信组件(例如,安全接口控件265、作为硬件、固件、或其组合的安全接口控件)基于hsm秘密来创建用于安全客户机的会话。因此,来自安全客户机的所有被创建的(即,经由登录而发起的)会话、密钥生成请求和会话终止请求(即,经由注销而发起的)被安全接口控件拦截。在拦截了这些请求后,安全接口控件的程序代码用包括登录数据(其包括hsm秘密)和由安全接口控件生成的会话代码的请求来重新发出最初包括标准登录数据和由hsm提供的会话代码的请求。因此,程序代码用包括hsm秘密的登录数据替换请求中的标准登录数据,并且程序代码用由安全接口控件生成的会话代码替换由hsm提供的会话代码。
51.参考图3,为了说明起见,以任意顺序呈现工作流程的某些方面。尽管为了易于理解而以顺序进行了描述,但是,安全接口控件的程序代码打开到hsm的默认会话以用于(尚)未被绑定到与hsm的任何会话的安全客户机的安全密钥(310)与程序代码确定安全客户机已经被终止(370)之间的所有方面是事件循环,其中,剩余方面(程序代码拦截安全客户机的每个hsm登录会话(320),程序代码将(通过登录发起的)会话与利用基于安全客户机的秘密的登录数据的hsm会话相关联(330),程序代码拦截安全客户机的每个hsm密钥生成和会话注销请求(340),程序代码用基于安全客户机的秘密的相关联的会话代码替换用于这些动作的会话代码(350),以及基于确定给定事件已经发生,程序代码关闭基于安全客户机的秘密的所有会话(360))可以以任意顺序发生,包括但不限于工作流程300的顺序,也可以在工作流程300期间的任何时间异步地发生。
52.返回图3,参考图2,在本发明的一些实施例中,安全接口控件265的程序代码打开到hsm 210的默认会话,以用于(尚)未被绑定到与hsm210的任何会话的安全客户机250的安全密钥(310)。程序代码拦截安全客户机250的每个hsm 210登录会话(320)。程序代码将(通过登录发起的)会话与利用基于安全客户机的秘密的登录数据的hsm 210会话相关联
(330)。在本发明的实施例中,秘密225不是客户机250的一部分,因为它作为客户机元数据的一部分被独立地传输到安全接口控件265(通过安全通道,即被加密的),并被加密地链接到客户机225。因此,安全接口控件265可以验证客户机250和元数据/秘密225属于彼此。hsm 265的程序代码可以在表245中保持它的基于安全客户机225的秘密的会话代码与被返回给安全客户机250的会话代码的关联。hsm可以在表215中提供和跟踪被返回给安全客户机250的会话代码。如图2所示,连同存储将基于安全客户机的秘密的会话代码与被返回给安全客户机245的会话代码相关联的表一起,安全接口控件265的程序代码还存储安全客户机250的hsm配置。
53.返回图3,程序代码拦截安全客户机250的每个hsm密钥生成和会话注销请求(340)。安全客户机250存储了由hsm 210用主密钥220包装的安全密钥230。程序代码用基于安全客户机的秘密225的相关联的会话代码(例如,来自表245)替换用于这些动作的会话代码(350)。程序代码确定安全客户机已经被终止(360)。基于确定给定事件已经发生,程序代码关闭基于安全客户机的秘密225的所有会话(370)。给定事件可以变化。在本发明的一些实施例中,程序代码基于确定安全客户机250已经被终止,关闭基于安全客户机的秘密225的所有会话。hsm 210的程序代码和系统的其它元件也可以在发生意外事件时采取附加动作以保护系统的安全。例如,在本发明的一些实施例中,如果hsm 210被拔出,则程序代码删除所有会话状态数据。在本发明的一些实施例中,如果安全接口控件265意外终止,则在处理设备上执行的程序代码清除hsm 210的所有会话。
54.在本发明的实施例中,在处理资源上执行的程序代码(包括可信组件(例如,图2的安全接口控件265)的程序代码)为了将安全客户机(例如,图2的安全客户机250)的安全密钥(例如,图2的安全密钥130)绑定到hsm(例如,图2的hsm 210),完成至少五个一般方面:1)安全接口控件的程序代码最初配置hsm与安全客户机之间的关系/连接;2)安全接口控件的程序代码拦截来自安全客户机的请求,最终向安全客户机返回新的会话代码;3)安全接口控件的程序代码拦截来自安全客户机的针对由hsm生成(用主密钥包装)新的安全密钥的请求;4)安全接口控件的程序代码拦截来自安全客户机的注销与hsm的会话的请求;以及5)基于停止安全客户机,安全接口控件的程序代码开始并完成各种清除活动。图4

图8示出了用于这些方面的工作流程400

800。
55.参考图4,工作流程400示出了在本发明的实施例中,安全接口控件的程序代码最初配置hsm与安全客户之间的关系/连接。如图2所示,安全接口控件经由管理程序被通信地耦合到hsm以及由管理程序管理的客户机。在本发明的一个实施例中,安全接口控件(例如,可信fw、可信组件等)的程序代码经由管理程序(例如,虚拟机管理器)从由管理程序管理的一个或多个客户机中的客户机(例如,虚拟机)接收配置请求(410)。程序代码确定hsm是否已经被配置给一个或多个客户机中的给定客户机(420)。基于确定hsm被配置给给定客户机,程序代码响应于配置请求而返回错误(435)。在本发明的实施例中,安全组件(例如,安全fw、安全接口控件)的程序代码实施:对于被配置给客户机的hsm,管理客户机的管理程序不能拦截到hsm的安全客户机的任何请求。
56.返回图4,基于确定hsm没有被配置给给定客户机,程序代码确定客户机是否是安全客户机(例如,基于包括客户机的元数据的各个方面的认证)(440)。在本发明的实施例中,客户机的元数据的存在或类型确定客户机是否安全。元数据被加密地链接到客户机(例
如,包含客户机映像的签名),因此,一个客户机的元数据不能被误用为另一个客户机的元数据。如果客户机不安全,则该过程终止(435)。基于确定客户机是安全客户机,程序代码阻止hsm被其他客户机访问(450)。在本发明的一些实施例中,如果安全客户机被启动但尚未被终止,则没有针对安全客户机而配置的hsm(特别是没有在其上使用安全客户机的hsm秘密来创建会话的hsm)可以被配置给另一个客户机(或在系统中运行的组件)。
57.参考图4,程序代码通过利用安全客户机的秘密来登录(例如,访问)hsm(460)。在hsm首次被安全客户机访问之前,安全接口控件的程序代码使用来自安全客户机的元数据的hsm秘密来登录到hsm。响应于登录到hsm,程序代码从hsm接收会话代码(470)。程序代码将会话代码与null会话代码的关联存储在安全组件中的关联表中(480)。因此,安全接口控件在表中存储null会话代码与由hsm返回的会话代码的关联。在本发明的一些实施例中,该表将基于安全客户机的秘密的会话代码与由hsm返回给安全客户机的会话代码相关联。
58.参考图5,工作流程500示出了在本发明的实施例中,安全接口控件的程序代码拦截来自安全客户机的请求。如图5所示,安全组件(例如安全fw)的程序代码拦截来自安全客户机的每个会话登录请求,并重新发出登录请求,其中的安全客户机的登录数据用该登录数据和hsm秘密的组合(例如,通过对两段数据进行逐位xor)来替换。因此,代替返回由hsm返回的会话代码,安全接口控件的程序代码生成与登录请求的规格一致的新的会话代码(例如,来自安全客户机的登录数据),并将所生成的会话代码与由hsm返回的会话代码的关联存储在表(例如,图2的表265)中。
59.返回图5,在本发明的一些实施例中,安全接口控件(例如,可信fw、可信组件)的程序代码拦截来自安全客户机的hsm登录请求,其中hsm登录请求利用来自安全客户机的登录数据(510)。程序代码基于安全客户机的秘密而生成新的登录数据,其中安全客户机的秘密被加密地链接到安全客户机的映像(520)。程序代码发出具有新的登录数据(即,基于安全客户机的秘密的数据)的hsm登录请求(已经拦截了原始请求)(530)。程序代码从hsm接收会话代码(540)。基于从hsm接收到会话代码,程序代码生成新的会话代码(会话代码基于登录数据而变化)(550)。程序代码将来自hsm的会话代码与新的会话代码相关联,并将该关联存储在关联表中(560)。程序代码将新的会话代码返回给安全客户机(570)。
60.除了如图5所示地拦截来自安全客户机的hsm登录请求之外,在本发明的实施例中,可信组件(例如,图2的安全接口控件265)的程序代码还拦截从安全客户机到hsm的请求,包括但不限于生成请求和会话注销请求。图6

图7分别示出了安全组件处理密钥生成和注销请求的方面。如图6

图7所示,安全组件的程序代码拦截并重新发出这些请求,其中由安全客户机提供的会话代码被由hsm提供的会话代码(如关联表中所存储的)替换。
61.图6是示出了安全接口控件的程序代码处理利用新的会话代码(例如,图5的560)的hsm密钥生成请求的工作流程600。在本发明的一些实施例中,安全接口控件(例如,可信fw、可信组件)的程序代码从安全客户机拦截利用新的会话代码的hsm密钥生成请求(610)。程序代码在关联表中查找新的会话代码,并定位相关联的会话代码(来自hsm的会话代码,例如图5的540)(620)。基于定位会话代码,程序代码利用该会话代码向hsm发出hsm密钥生成请求(630)。响应于该请求,程序代码获得所请求的密钥,并将该密钥返回给安全客户机(640)。因此,程序代码将hsm请求的结果返回给安全客户机。
62.类似于图6的工作流程600,图7描绘了工作流程700,其示出了安全接口控件的程
序代码处理利用新的会话代码(例如,图5的560)的hsm注销请求。在本发明的一些实施例中,安全接口控件(例如,可信fw、可信组件)的程序代码从安全客户机拦截利用新的会话代码的hsm注销请求(710)。程序代码在关联表中查找新的会话代码,并定位相关联的会话代码(来自hsm的会话代码,例如图5的540)(720)。基于定位会话代码,程序代码利用该会话代码向hsm发出hsm注销请求(730)。程序代码从关联表中删除该关联(将新的会话代码与会话代码相关联的关联)(735)。响应于该请求,完成安全客户机从hsm的注销(740)。
63.图8描绘了说明本发明的一些实施例中的程序代码终止安全客户机的工作流程800。一般滴,在本发明的实施例中,如果安全客户机终止,则安全接口控件终止它(使用安全客户机的hsm秘密)创建的所有会话。在本发明的一些实施例中,安全接口控件的程序代码经由管理程序获得指示安全客户机已经被停止的信息(810)。基于确定安全客户机已经被停止,安全组件的程序代码基于关联表来识别安全客户机与hsm的所有会话(820)。在本发明的一些实施例中,程序代码可以生成与会话代码相关联的所有会话的列表。基于经由会话代码来识别会话,程序代码将安全客户机从所有所识别的会话中注销(830)。程序代码移除安全客户机的hsm配置(840)。程序代码清除安全客户机的剩余资源(850)。
64.本发明的实施例包括各种安全措施以保护hsm和安全客户机的完整性。例如,在本发明的一些实施例中,如果安全接口控件崩溃,则hsm中的所有会话都被终止。另外,如果hsm从服务器中移除,则hsm中的所有会话都被终止。
65.本发明的实施例包括用于将安全客户机的安全密钥绑定到硬件安全模块的计算机实现的方法、计算机程序产品和系统。这些实施例的各种方面由安全接口控件执行,该安全接口控件可包括软件、硬件、和/或固件。软件方面由一个或多个处理器执行。因此,为了易于理解,本发明的各种实施例的各方面被描述为广泛地由程序代码执行,程序代码可包括安全接口控件,而不管该方面的组成如何。因此,在本发明的一些实施例中,程序代码配置硬件安全模块以用于由管理程序管理的安全客户机的独占使用。该配置包括:程序代码经由管理程序从由管理程序管理的一个或多个客户机中的给定客户机获得用于配置硬件安全模块的配置请求;程序代码确定硬件安全模块是否已经被配置给一个或多个客户机中的特定客户机,其中,特定客户机和给定客户机包括一个或多个客户机中的不同客户机;基于程序代码确定硬件安全模块未被配置给特定客户机,程序代码通过评估给定客户机的元数据来确定给定客户机包括安全客户机;基于确定给定客户机包括安全客户机,程序代码通过将客户机对硬件安全模块的访问排他地限制到一个或多个客户中的给定客户机,取消建立硬件安全模块的配置。程序代码将给定客户机登录到硬件安全模块,其中登录到硬件安全模块包括利用给定客户机的秘密,其中元数据包括该秘密。基于程序代码登录到硬件安全模块中,程序代码从硬件安全模块获得会话代码;以及由一个或多个处理器保持该会话代码。
66.在本发明的一些实施例中,保持包括:程序代码将会话代码与null会话代码的关联存储在安全接口控件中的关联表中。
67.在本发明的一些实施例中,客户机的元数据被完整性保护,并且由使用安全接口控件所拥有的私钥导出的密钥来对秘密进行加密。私钥可以包括给定客户机的引导映像的加密措施。
68.在本发明的一些实施例中,基于配置,程序代码向给定客户机提供新的会话代码
以由给定客户机在到硬件安全模块的请求中使用。
69.在本发明的一些实施例中,(由程序代码)提供包括:程序代码拦截来自给定客户机的硬件安全模块登录请求,其中硬件安全模块登录请求包括来自给定客户机的登录数据;程序代码基于给定客户机的秘密来生成新的登录数据;程序代码向硬件安全模块发出来自给定客户机的新的硬件安全模块登录请求,其中,该新的硬件安全模块登录请求包括新的登录数据;程序代码从硬件安全模块获得会话代码;基于从硬件安全模块获得会话代码,程序代码生成新的会话代码;程序代码在表中存储来自硬件安全模块的会话代码与新的会话代码之间的关联;以及响应于登录请求,程序代码将新的会话代码发送到给定客户机。
70.在本发明的一些实施例中,程序代码拦截从给定客户机到硬件安全模块的请求,其中该请求包括的新会话代码。程序代码从表中获得与新的会话代码相关联的来自硬件安全模块的会话代码。程序代码更新来自给定客户机的请求以包括新的请求,其中该新的请求包括来自硬件安全模块的会话代码而不是新的会话代码。程序代码向硬件安全模块发出新的请求。
71.在本发明的一些实施例中,程序代码从硬件安全模块获得请求的履行。程序代码向给定客户机发出请求的履行。在本发明的一些实施例中,请求选自包括以下各项的组:硬件安全模块安全密钥生成请求,以及硬件安全模块注销请求。
72.在本发明的一些实施例中,程序代码从管理程序获得给定客户机已停止的指示。程序代码在表中识别来自硬件安全模块的会话代码与新的会话代码之间的关联。程序代码基于该表,生成利用来自硬件安全模块的会话代码的一个或多个会话的列表。程序代码从一个或多个会话中注销给定客户机。
73.在本发明的一些实施例中,程序代码从管理程序获得给定客户机已停止的指示。程序代码移除配置。
74.在本发明的一些实施例中,程序代码从管理程序获得给定客户机已停止的指示。程序代码识别在硬件安全模块中保持的对给定客户机的引用。程序代码移除这些引用。
75.在本发明的一些实施例中,安全接口组件选择包括以下项的组:固件,硬件,以及软件。
76.在本发明的一些实施例中,通过评估给定客户机的元数据来确定给定客户机包括安全客户机包括:程序代码验证元数据的存在或类型中的一个。
77.在本发明的一些实施例中,程序代码利用给定客户机的秘密包括:程序代码对秘密进行解密。
78.在本发明的一些实施例中,解密包括:利用由安全接口控件排他地计算的密钥。
79.通过本文所描述的技术来实现附加特征。其它实施例和方面在本文中被详细描述,并被认为是所要求保护的方面的一部分。
80.现在参考图9,计算节点(其可以是云计算节点10)的示例的示意图。云计算节点10仅是合适的云计算节点的一个示例,并且不旨在对本文描述的本发明的实施例的使用范围或功能提出任何限制。无论如何,云计算节点10能够被实现和/或执行上文阐述的任何功能。在本发明的实施例中,安全客户机250(图2)、安全接口控件265(例如,安全接口控件)(图2)、和/或管理程序240(图2)每个都可以被理解为在云计算节点10(图9)上执行,并且如
果不是云计算节点10,则是包括云计算节点10的各方面的一个或多个通用计算节点。
81.在云计算节点10中,存在计算机系统/服务器12,其可与许多其他通用或专用计算系统环境或配置一起操作。适合与计算机系统/服务器12一起使用的公知的计算系统、环境、和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络pc、小型计算机系统、大型计算机系统、以及包括任何上述系统或设备的分布式云计算环境等。
82.计算机系统/服务器12可以在计算机系统可执行指令(诸如程序模块)由计算机系统执行的一般上下文中描述。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器12可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
83.如图9所示,以通用计算设备的形式示出可以用作云计算节点10的计算机系统/服务器12。计算机系统/服务器12的组件可以包括但不限于一个或多个处理器或处理单元16、系统存储器28、以及将包括系统存储器28的各种系统组件耦合到处理器16的总线18。
84.总线18表示若干类型的总线结构中的任何一种的一个或多个,包括存储器总线或存储控制器、外围总线、加速图形端口、以及使用各种总线架构中的任何一种的处理器或局部总线。作为示例而非限制,这种架构包括工业标准体系结构(isa)总线、微通道体系结构(mca)总线、增强型isa(eisa)总线、视频电子技术标准协会(vesa)局部总线、以及外围部件互连(pci)总线。
85.计算机系统/服务器12通常包括各种计算机系统可读介质。这样的介质可以是计算机系统/服务器12可访问的任何可用介质,并且它包括易失性和非易失性介质、可移除和不可移除介质。
86.系统存储器28可以包括采用易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30和/或高速缓存32。计算机系统/服务器12还可以包括其他可移除/不可移除、易失性/非易失性计算机系统存储介质。仅作为示例,可提供存储系统34以用于从不可移除的非易失性磁介质(未示出,并且通常被称为“硬盘驱动器”)读取和向其写入。尽管未示出,但是可以提供用于从可移除的非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器、以及用于从诸如cd

rom、dvd

rom或其它光学介质等可移除的非易失性光盘读取或向其写入的光盘驱动器。在这种情况下,每一个都可以通过一个或多个数据介质接口被连接到总线18。如下面将进一步描绘和描述的,存储器28可以包括具有一组(例如,至少一个)程序模块的至少一个程序产品,程序模块被配置为执行本发明的实施例的功能。
87.仅作为示例而非限制,具有一组(至少一个)程序模块42的程序/实用程序40、以及操作系统、一个或多个应用程序、其它程序模块、以及程序数据可被存储在存储器28中。操作系统、一个或多个应用程序、其它程序模块、程序数据或其某种组合中的每一个可包括联网环境的实现。程序模块42通常执行本文所描述的本发明实施例的功能和/或方法。
88.计算机系统/服务器12还可以与一个或多个外部设备14(诸如键盘、指示设备、显示器24等);一个或多个设备,其使得用户能够与计算机系统/服务器12交互;和/或使得计算机系统/服务器12能够与一个或多个其它计算设备通信的任何设备(例如网卡、调制解调
器等)进行通信。这种通信可以经由输入/输出(i/o)接口22而发生。而且,计算机系统/服务器12可以经由网络适配器20与一个或多个网络(诸如局域网(lan)、通用广域网(wan)、和/或公共网络(例如,互联网))进行通信。如图所示,网络适配器20经由总线18与计算机系统/服务器12的其它组件通信,。当理解,尽管未示出,但其它硬件和/或软件组件可以与计算机系统/服务器12结合使用。示例包括但不限于:微代码、设备驱动程序、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器、以及数据档案存储系统等。
89.应当理解,尽管本公开包括关于云计算的详细描述,但是本文所记载的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
90.云计算是一种服务交付模式,用于实现对共享的可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、vm和服务)池池的方便、按需的网络访问,可配置计算资源可以以最小的管理成本或与服务提供商进行最少的交互来快速供应和释放。这种云模式可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
91.特征如下:
92.按需自助式服务:云的消费者可以单方面自动地按需提供计算能力(诸如服务器时间和网络存储),而无需与服务提供者进行人工交互。
93.广泛的网络接入:能力在网络上可用并通过促进异构的瘦或厚客户端平台(例如,移动电话、膝上型计算机和pda)的使用的标准机制来接入。
94.资源池:提供商的计算资源被归入资源池以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和再分配。一般情况下,消费者不能控制或不知道所提供的资源的确切位置,但是可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
95.迅速弹性:可以迅速且有弹性地(在一些情况下自动地)提供能力以快速向外扩展并被迅速释放以快速缩小。对于消费者,可用于提供的能力通常看起来是无限的,并可以在任何时间以任何数量购买。
96.可测量的服务:云系统通过利用在适于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象程度的计量能力,自动地控制和优化资源使用。可以监视、控制和报告资源使用情况,为所利用的服务的提供者和消费者双方提供透明度。
97.服务模型如下:
98.软件即服务(saas):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可通过诸如网络浏览器的瘦客户机接口(例如,基于网络的电子邮件)来从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置以外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、或甚至单个应用能力等的底层云基础架构。
99.平台即服务(paas):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用是使用由提供商支持的编程语言和工具创建的。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
100.基础架构即服务(iaas):向消费者提供的能力是提供消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其它基础计算资源。消费者既不管
理也不控制底层云基础架构,但对操作系统、存储、所部署的应用具有控制权,对所选择的网络组件(例如,主机防火墙)可能具有有限的控制权。
101.部署模型如下:
102.私有云:云基础架构单独为某个组织运行。它可以由该组织或第三方管理,并且可以存在于该组织内部或外部。
103.共同体云:云基础架构被若干组织共享,并支持具有共同利害关系(例如,任务、安全要求、政策和合规考虑)的特定共同体。它可以由该组织或第三方管理,并且可以存在于该组织内部或外部。
104.公共云:云基础架构可用于一般公众或大型产业群,并由销售云服务的组织拥有。
105.混合云:云基础架构由两个或更多云(私有云、共同体云或公共云)组成,这些云依然是独特实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
106.云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语义的互操作性。计算的核心是包括互连节点网络的基础架构。
107.现在参考图10,描绘了说明性的云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,本地计算设备例如是个人数字助理(pda)或蜂窝电话54a、台式计算机54b、膝上型计算机54c和/或汽车计算机系统54n。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络(诸如如上文所描述的私有云、共同体云、公共云或混合云或其组合)中。这允许云计算环境50提供基础架构即服务、平台即服务和/或软件即服务,而云消费者不需要为其在本地计算设备上维护资源。应当理解,图10中所示的各类计算设备54a

n仅仅是示意性的,计算节点10和云计算环境50可以在任何类型的网络和/或网络可寻址连接上(例如,使用网络浏览器)与任何类型的计算设备通信。
108.现在参考图11,示出了由云计算环境50(图10)提供的一组功能抽象层。首先应当理解,图11所示的组件、层和功能仅仅是示意性的,本发明的实施例不限于此。如图所示,提供了以下层和相应的功能:
109.硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:大型机61;基于risc(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和网络组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
110.虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用程序和操作系统74;以及虚拟客户端75。
111.在一个示例中,管理层80可以提供以下描述的功能。资源供应功能81提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取。计量和定价功能82提供对在云计算环境内使用资源的成本跟踪,并为这些资源的消耗提供账单或发票。在一个示例中,这些资源可以包括应用软件许可。安全功能为云消费者和任务提供身份认证,并为数据和其他资源提供保护。用户门户功能83为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能84提供云计算资源的分配和管理,以满足所需的服务水平。服务水平协议(sla)计划和履行功能85提供对根据sla针对其预测未来需求的云计算资源的预安排和采
购。
112.工作负载层90提供可以利用云计算环境的功能的示例。在该层中,可提供的工作负载和功能的示例包括:地图绘制与导航91;软件开发及生命周期管理92;虚拟教室的教学提供93;数据分析处理94;交易处理95;以及将安全密钥绑定到安全客户机96。可以理解,这些仅是一些示例,在其他实施例中,这些层可包括不同的服务。
113.本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括在其上具有计算机可读程序指令的(一个或多个)计算机可读存储介质,计算机可读程序指令用于使处理器执行本发明的各方面。
114.计算机可读存储介质可以是可保持并存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或前述存储设备的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd

rom)、数字多功能盘(dvd)、记忆棒、软盘、诸如在上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码设备、以及上述设备的任何适当的组合。如本文所使用的计算机可读存储介质不应被解释为是暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
115.本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
116.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或者以一种或多种编程语言(包括面向对象的编程语言,例如smalltalk、c 等)和过程编程语言(例如“c”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行、部分在用户的计算机上执行、作为独立的软件包执行、部分在用户的计算机上并且部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种场景下,远程计算机可以通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户的计算机,或者可以连接到外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本发明的各方面。
117.在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
118.这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数
据处理装置的处理器以产生机器,以使得经由计算机或其他可编程数据处理装置的处理器而执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,已使得在其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
119.计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使一系列操作步骤将在计算机、其他可编程装置或其他设备上执行,以产生计算机实现的过程,以使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
120.附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
121.本文所用的术语仅是为了描述特定实施例的目的,而不是旨在进行限制。如本文所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。还将理解,术语“包括”和/或“包含”在本说明书中使用时指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件组件和/或其群组的存在或添加。
122.本文已经出于说明的目的呈现了对各种实施例的描述,但其并非旨在是穷尽性的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜