计算环境中的安全密钥交换的制作方法

文档序号:31482108发布日期:2022-09-10 03:25阅读:152来源:国知局
计算环境中的安全密钥交换的制作方法

1.本发明一般涉及在计算环境内提供安全性,尤其涉及由计算环境的节点进行的安全密钥交换(ske)认证。


背景技术:

2.加密为在两个实体之间传输的数据和/或其他信息提供数据安全性,所述两个实体诸如经由多个端点或链路耦合的源节点和目标节点。为了标准化加密的方面,为不同类型的通信协议提供了各种标准。例如,fc-sp-2和fc-ls-3标准被提供用于光纤信道。
3.作为示例,用于加密光纤信道链路的fc-sp-2标准包括用于两个端点的相互认证的协议,以及用于协商在两个端点之间的通信会话中使用的加密密钥的协议。该标准提供对各种机制的支持以认证所涉及的各方,以及提供或开发密钥材料的机制。该标准是针对若干认证基础结构定义的,作为示例,包括基于秘密的、基于证书的、基于口令的、以及基于预共享密钥的。
4.通常,基于证书的基础结构被认为提供了强形式的安全认证,因为端点的身份是由受信任的证书管理机构来证明的。fc-sp-2标准定义了一种机制,通过该机制,多个经认证的实体可使用证书将其绑定的公钥-私钥对,以便彼此认证。这种认证通过使用光纤信道认证协议(fcap)直接发生在两个实体之间,fcap的设计基于使用例如在因特网密钥交换(ike)协议中定义的证书和签名的认证。
5.然而,在线交换和验证证书是计算密集型的,并且耗时。fcap协议也在实体之间的每个光纤信道链路上执行。由于这是在任何客户端业务在要被完整性和/或安全保护的链路上流动之前进行的,因此这可能负面地影响(延长)链路初始化时间,并且因此影响引起和开始执行客户端工作负荷所花费的时间。ike协议还涉及相当集中的中央处理单元密集数学计算,并且在包括大型企业服务器(其具有在连接到大量存储控制器端口的动态交换结构中的大量光纤信道物理端口)的环境中,完成ike协议的这些计算和大量帧交换的乘法器效应也会对系统初始化产生负面影响,并导致繁重的正常操作中的约束。


技术实现要素:

6.本发明的实施例涉及由计算环境的响应方节点基于安全密钥交换(ske)认证响应的主机总线适配器(hba)的信道密钥加载。根据本发明的一个方面,一种计算机实现的方法包括在发起方节点上的发起方信道处从响应方节点上的响应方信道接收认证响应消息以建立安全通信,所述接收在执行于所述发起方节点上的本地密钥管理器(lkm)处进行。基于发起方节点和响应方节点的安全关联来执行状态检查。执行认证响应消息的验证。从认证响应消息中提取所选择的加密算法的标识符。发起方信道至少部分地基于成功的状态检查、成功的验证和所选择的加密算法来请求与响应方信道通信。
7.本发明的其它方面在计算机系统和计算机程序产品中实现上述方法的特征。
8.通过本发明的技术实现了额外的技术特征和益处。本发明的实施例和方面在本文
中详细描述,并且被认为是所要求保护的主题的一部分。为了更好地理解,参考详细描述和附图。
附图说明
9.在说明书的结尾处的权利要求中特别指出并清楚地要求了本文描述的专有权的细节。从下面结合附图的详细描述中,本发明的实施例的前述和其它特征和优点将变得显而易见,其中:
10.图1描绘了结合和使用本发明的一个或多个实施例的计算环境的示例;
11.图2a描绘了用于结合和/或使用本发明的一个或多个实施例的图1的计算环境的主机的示例;
12.图2b描绘了用于结合和/或使用本发明的一个或多个实施例的图1的计算环境的主机的另一示例;
13.图3示出了根据本发明的一个或多个实施例的用于本地密钥管理器(lkm)初始化和主机总线适配器(hba)安全注册的计算环境的框图;
14.图4示出了根据本发明的一个或多个实施例的lkm初始化和hba安全注册的过程;
15.图5描述了根据本发明的一个或多个实施例的用于生成安全密钥交换(ske)初始化请求的计算环境的框图;
16.图6描述了根据本发明的一个或多个实施例的用于生成ske安全关联(sa)初始化请求的过程;
17.图7描述了根据本发明的一个或多个实施例的用于在目标信道的节点处ske sa处理和消息产生的计算环境的框图;
18.图8描述了根据本发明的一个或多个实施例的用于在目标信道的节点处ske sa初始化处理和消息产生的过程;
19.图9描述了根据本发明的一个或多个实施例的用于基于ske sa初始化响应产生ske认证请求的计算环境的框图;
20.图10描述了根据本发明的一个或多个实施例的用于基于ske sa初始化响应产生ske认证请求的过程;
21.图11示出了根据本发明的一个或多个实施例的用于ske认证消息处理的计算环境的框图;
22.图12描述了根据本发明的一个或多个其他实施例的ske认证消息处理的过程;
23.图13示出了根据本发明的一个或多个实施例的用于基于ske认证的hba密钥加载的计算环境的框图;
24.图14示出了根据本发明的一个或多个实施例的基于ske认证的hba密钥加载的过程;
25.图15描述了根据本发明的一个或多个实施例的用于在使用ske提供安全数据传输的计算环境中刷新密钥的过程;
26.图16a描述了包含和使用本发明的一个或多个方面的计算环境的另一个示例;
27.图16b描述了图16a的存储器的进一步细节;
28.图17示出根据本发明的一个或多个实施例的云计算环境;以及
29.图18示出了根据本发明的一个或多个实施例的抽象模型层。
具体实施方式
30.根据本发明的一个或多个实施例,当数据在数据中心内和跨数据中心移动时,交换数据的身份的认证和数据的加密用于加强数据的安全性。在一个示例中,由纽约armonk的国际商业机器公司提供的光纤信道端点安全(fces)被用于使用光纤信道和光纤连接(ficon)协议来加密飞行中的数据(data in fly)。fces通过创建加密飞行中的数据的可信存储网络,帮助确保在授权主机和存储设备之间的光纤信道链路上流动的所有数据的完整性和机密性。在本发明的一个或多个实施例中,使用安全密钥交换(ske)消息在主机和存储设备之间协商和建立安全级别。作为这个过程的一部分,ske请求和响应消息被产生和处理,以确保端点(即,主机和存储设备)使用正确的安全级别。
31.如这里所使用的,术语“安全密钥交换”或“ske”指的是用于在网络中的两个端点或节点之间创建安全关联(sa)的协议。这里描述的ske协议的一个或多个实施例建立在因特网密钥交换(ike)协议上。根据本发明的一个或多个实施例,在每个节点上执行的本地密钥管理器(lkm)连接到安全密钥生命周期管理器,该管理器用于创建仅涉及的各方才能访问的共享秘密消息。根据本发明的一个或多个实施例,lkm充当安全密钥生命周期管理器的客户端,其发出密钥管理互操作性协议(kmip)请求以创建密钥。ske协议的一个或多个实施例涉及四个消息的交换。前两个消息称为“ske sa init请求”(这里也称为“ske sa初始化请求”)和“ske sa init响应”(这里也称为“ske sa初始化响应”),它们是交换用于导出一组加密密钥的参数的未加密消息。最后两个消息被称为“ske auth请求”(这里也被称为“ske认证请求”)和“ske auth响应”(这里也被称为“ske认证响应”),它们是加密消息,用于建立每个端点或节点的真实性,以及识别哪个加密算法将被用于保护端点之间的通信。在光纤信道环境中,ske消息可以例如以fc-sp-2标准定义的格式封装在auth扩展链路服务请求(auth els)中。
32.本发明的一个或多个实施例向lkm提供主机总线适配器(hba)安全注册以用于ske消息处理,以允许在计算环境中的计算节点之间(或在同一计算节点上的信道之间)发送安全数据。根据本发明的一个或多个实施例,在计算节点上初始化管理计算节点上的hba的私有安全密钥的lkm。lkm建立与远离计算节点的外部密钥管理器(ekm)的连接。此外,向lkm注册执行lkm的计算节点上的hba。hba向lkm的注册允许hba的信道正确地处理发送到计算节点或从计算节点接收的ske消息。一旦lkm初始化完成,lkm就知道hba的安全能力。lkm使用该信息来建立和管理计算节点和计算环境中的其他计算节点之间的数据请求的安全性。
33.本发明的一个或多个实施例提供ske sa初始化请求或ske sa init请求的生成,以提供计算环境中信道之间数据传输的安全性。ske sa初始化请求处理在lkm初始化和在产生ske sa初始化请求的计算节点上注册hba之后执行。ske sa初始化请求可以由在计算节点上执行的lkm响应于从计算节点的hba(这里也称为“信道”)接收到与另一信道通信(例如,向其发送数据)的请求而生成。另一个信道可以位于同一节点上,以提供在该节点上执行的两个不同分区之间安全地传递数据的能力。另一信道也可位于不同的计算节点上,以提供在位于不同计算节点上的信道之间安全地传递数据的能力。
34.具有发起与另一信道通信的请求的信道的节点在此被称为“发起方”或“源”节点;
并且包含作为请求目标的其它信道的节点在这里被称为“响应方”或“目标”节点。在从hba或信道接收到与目标节点上的信道通信的请求时,源节点上的lkm创建sa,然后经由请求信道将请求消息(这里称为“ske sa初始化请求消息”)发送到目标节点上的信道。根据本发明的一个或多个实施例,ske sa初始化请求消息包括由ekm提供的共享密钥标识符),其识别将在源节点和目标节点之间提供安全通信的共享密钥。共享密钥重设密钥定时器(shared key rekey timer)可以由lkm设置以基于系统策略限制共享密钥的使用期限。除了共享密钥之外,ske sa初始化请求消息包括发起方信道的临时值(nonce)和安全参数索引(spi),它们被用于导出用于加密和解密节点之间发送的有效负载(例如,数据)的密钥。
35.如本文所使用的,术语“节点”或“计算节点”是指但不限于:主机和存储阵列。存储阵列例如可以由控制单元和/或存储控制器来实现。主机计算机或主机例如可以由处理器、计算机系统和/或中央电子复合体(cec)来实现。如在此所使用的,术语“计算环境”是指耦合在一起以执行在此所述的处理的全部或子集的一组节点。对于ficon信道到信道(ctc)连接,每个端口或信道可以是发起方和响应方。与ficon信道相反,主机上的光纤信道协议(fcp)存储信道总是源或发起方;而控制单元或存储阵列总是目标或响应方。
36.本发明的一个或多个实施例提供了在目标信道的节点处的ske sa初始化处理和消息产生。响应于目标信道从源信道接收到ske sainit请求,执行ske sa init响应消息的处理和生成。在响应方或目标节点处的处理包括:lkm获得共享密钥(如果需要的话),并且经由ske sa init响应消息将由lkm生成的临时值和描述目标信道的spi传输到发起方节点上的信道。当与ske sa init请求消息和ske sa init响应消息相关的处理完成时,发起方节点和响应方节点具有共享密钥信息,它们需要在它们之间传输加密的消息并解密它们接收的消息。
37.本发明的一个或多个实施例提供了在源信道的节点处的ske sa初始化响应消息处理和ske auth请求消息产生。响应于源信道从目标信道接收到ske sa init响应,执行ske auth请求消息的处理和生成。在发起方或源节点处的处理可以包括ske sa init响应消息验证和基于sa的设备组检查。源节点的lkm可生成会话密钥并构建ske auth请求消息。源节点向目标节点发送ske auth请求消息。
38.本发明的一个或多个实施例提供了在目标信道的节点处的ske auth请求消息处理和ske auth响应消息生成。响应于目标信道从源信道接收到ske auth请求,执行ske auth响应消息的处理和生成。在响应方或目标节点处的处理可以包括ske auth请求消息验证和基于sa的设备组检查。目标节点的lkm可解密ske auth请求消息,验证发起方签名,生成响应方签名,选择加密算法,并构建ske auth响应消息。目标节点向源节点发送ske auth响应消息。
39.本发明的一个或多个实施例提供ske auth响应消息处理和在目标信道的节点处hba密钥加载。响应于源信道从目标信道接收到ske auth响应,执行处理和hba密钥加载。在发起方或源节点处的处理可以包括ske auth响应消息验证和基于sa的设备组检查。源节点的lkm可解密ske auth响应消息,验证响应方签名,选择加密算法,并在源信道处加载一个或多个hba密钥以支持在将来与目标信道的通信中使用所选择的加密算法。在向源节点的lkm通知认证完成时,可启动会话密钥重设密钥定时器以基于系统策略发起会话密钥重设密钥过程。
40.本发明的一个或多个实施例提供了一种用于对共享密钥和会话密钥进行刷新或重设密钥的过程。如前所述,共享密钥重设密钥定时器可以被设置成限制可以使用共享密钥的时间量。当共享密钥重设密钥定时器到期时,启动生成新共享密钥的过程。此外,如前所述,可以设置会话密钥重设密钥定时器以限制可以使用会话密钥的时间量。当会话密钥重设密钥定时器到期时,产生ske sa init请求消息,以启动用于在源节点和目标节点之间的通信中使用的一组新的密码密钥的导出。
41.通过ekm,共享多条链路的信任节点之间的认证执行一次,而不是逐个链路地执行。两个实体作为ekm的受信实体接收共享密钥(例如,对称密钥)并使用其加密/解密它们之间的消息的能力证明了相互认证。此外,提供了连接它们的所有链路(或所选链路)上的安全通信,而无需对ekm的附加访问。相反,先前获得的共享密钥被用于耦合提供链路认证的节点的其他链路或信道上的受信节点之间的通信中,而不必经由ekm重新认证受信节点。
42.根据本文所述的一个或多个实施例,受信节点发起和激活在受信节点上执行的lkm以管理hba之间的安全性。hba向lkm注册其安全能力和地址信息,以便允许hba上的信道处理ske消息。ske sa初始化请求消息可以基于信任节点上的hba信道来构建,该信任节点请求在其自身(发起方节点)和目标或响应方节点之间的ske sa初始化。lkm管理用于两个受信节点的设备组密钥标识符的标识或激活,该设备组密钥标识符被用于建立ske sa初始化请求。发起方节点上的lkm和响应方节点上的lkm经由ske sa初始化请求和响应消息来交易信息。交易信息用于加密和解密各个节点上的信道之间发送的数据。ske sa初始化请求和响应消息可以以未加密的格式交换,ske认证请求和响应消息可以以加密的格式发送。ske认证请求消息可以包括用于节点之间交换的数据的加密算法的建议列表,并且ske认证响应消息可以确认响应方节点接受哪个建议作为选择的加密算法。响应方节点还可以通知发起方节点何时使用所选择的加密算法开始数据传输,所选择的加密算法可以是与用于发送ske认证请求和响应消息的加密不同的加密格式。共享密钥和会话密钥都可以基于可编程定时器期满而被刷新或重设密钥。
43.参考图1描述了包括本发明的一个或多个方面的计算环境100的一个示例。在图1所示的示例中,计算环境包括经由存储区域网络(san)108耦合在一起的至少一个节点(例如主机102)和至少一个其他节点(例如存储阵列110)。主机102可以包括中央处理单元和存储器,并且可以由诸如但不限于由国际商业机器公司提供的system z的系统来实现。图1所示的主机102包括lkm 104和一个或多个hba 106。根据本发明的一个或多个实施例,lkm 104是管理hba 106的私钥的组件,并且每个hba 106提供发送和加密数据的输入/输出(i/o)接口。存储阵列110可以由例如存储设备、直接存取存储设备(dasd)或磁带设备来实现。可以使用的存储设备的一个例子包括由国际商业机器公司提供的ds8000。图1所示的存储阵列110包括lkm 112和一个或多个hba 114。san 108可以由ficon和光纤信道交换机和控制器的网络来实现。ficon是利用光纤信道技术的主机和存储设备之间的数据的已知通信路径。
44.图1所示的计算环境还包括经由服务网络130耦合到一个或多个主机102的一个或多个支持元件(se)128。se 128还经由专用网络126耦合到服务器硬件管理控制台(hmc)124。服务网络130在内部服务器网络中,由se 128用来与每个子系统或主机102通信,并且例如可以由以太网或其它已知的局域网(lan)实现。在图1所示的实施例中,专用网络126用
于se 128到服务器hmc 124的通信,并且可以例如通过以太网或其它已知的lan来实现。每个服务器hmc 124管理多个主机102,并且如图1所示,它们可以使用例如se证书通过专用网络126与se 128通信。se 128可以由服务器实现,并且用于管理经由服务网络130与主机102中的lkm 104通信的硬件。在一个实施例中,每个se 128对应于一个主机102,并且包括使用se证书初始化对应的主机102的指令。使se 128经由内部网络与主机102通信,提供对se证书的附加保护级别。根据本发明的一个或多个实施例,主机102由客户配置成利用本文所述的安全特征。
45.如图1所示,服务器hmc 124经由网络120耦合到存储阵列hmc 118和ekm 122。每个存储阵列hmc 118可以用于管理多个存储阵列110,并且如图1所示,它们可以经由服务网络116与存储阵列110通信。服务网络116可以例如通过以太网或其它已知的lan来实现。网络120可以由本领域已知的任何网络来实现,例如但不限于广域网(wan)和lan。根据本发明的一个或多个实施例,ekm 122用于向主机102和存储阵列110提供共享密钥。它经由例如在设置时安装在主机102、存储阵列110和ekm 122上的证书而被主机102和存储阵列110信任,并且由证书管理机构(未示出)签名。
46.图1所示的主机102中的hba 106和存储阵列110中的hba 114经由san 108通信。san 108可以包括经由光缆连接的光纤信道节点,其中使用光收发器来交换数据。物理链路规范可以由例如fc-pi定义。光纤信道通信可以封装多个更高层的协议,例如由fc-sb2定义的ficon,以及由fcp-4定义的用于scsi的光纤信道协议。
47.应当理解,图1的框图不旨在指示计算环境100要包括图1所示的所有组件。相反,计算环境100可包括图1中未示出的任何适当的更少或附加的组件,其中图1所示的一些组件被组合,或者由一个或多个组件执行的功能由不同的或若干个组件执行。此外,本文关于计算环境100描述的实施例可以用任何适当的逻辑来实现,其中如本文所提到的逻辑在各种实施例中可以包括任何适当的硬件(例如,处理器、嵌入式控制器或专用集成电路等)、软件(例如,应用等)、固件或硬件、软件和固件的任何适当的组合。
48.尽管本文提供了协议、通信路径和技术的示例,但是一个或多个方面可应用于其他类型的协议、通信路径和/或技术。此外,其它类型的节点可以采用本发明的一个或多个方面。另外,节点可以包括更少、更多和/或不同的组件。此外,彼此耦合的两个节点可以是相同类型的节点或不同类型的节点。作为示例,两个节点都是主机,两个节点都是存储阵列,或者一个节点是主机而另一个节点是存储阵列,如本文的示例中所述。许多变化是可能的。
49.作为示例,主机可以是计算设备,诸如处理器、计算机系统、中央电子复合体(cec)等。图2a中描绘了可以包括和/或使用本发明的一个或多个方面的计算机系统的一个示例。
50.参考图2a,在一个示例中,以通用计算设备的形式示出了计算机系统200。计算机系统200包括和/或耦合到多个组件,这些组件是图1所示的组件的补充和/或包括这些组件,这些组件包括但不限于lkm 104、hba 106、lkm 112、hba 114、服务网络130和服务网络116,这些组件是计算机系统的一部分和/或耦合到计算机系统,但在图2a中未明确示出。在一个示例中,计算机系统200包括但不限于经由一个或多个总线和/或其他连接208彼此耦合的一个或多个处理器或处理单元202(例如,中央处理单元(cpu)、处理电路)、存储器204(作为示例,又名系统存储器、主存储器、主存储、中央存储或存储)以及一个或多个输入/输
出(i/o)接口206。
51.继续图2a,总线208表示若干类型的总线结构中的任何一种的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线体系结构中的任何一种的处理器或局部总线。作为示例而非限制,这些体系结构包括工业标准体系结构(isa)、微信道体系结构(mca)、增强型isa(eisa)、视频电子标准协会(vesa)局部总线和外围部件互连(pci)。
52.存储器204可以包括例如高速缓存,诸如共享高速缓存210,其可以耦合到处理器202的本地高速缓存212。此外,存储器204可以包括一个或多个程序或应用214、操作系统216和一个或多个计算机可读程序指令218。计算机可读程序指令218可以被配置为执行本发明的各方面的实施例的功能。
53.计算机系统200还可以经由例如i/o接口206与一个或多个外部设备220、一个或多个网络接口222和/或一个或多个数据存储设备224通信。示例外部设备包括用户终端、磁带驱动器、指示设备、显示器等。网络接口222使计算机系统200能够与一个或多个网络通信,诸如局域网(lan)、通用广域网(wan)和/或公共网络(例如,因特网),从而提供与其他计算设备或系统的通信。
54.数据存储设备224可以存储一个或多个程序226、一个或多个计算机可读程序指令228和/或数据等。计算机可读程序指令可以被配置为执行本发明的各方面的实施例的功能。
55.计算机系统200可以包括和/或耦合到可移动/不可移动、易失性/非易失性计算机系统存储介质。例如,它可以包括和/或耦合到不可移动的、非易失性磁介质(通常称为“硬盘驱动器”)、用于从可移动的、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器、和/或用于从可移动的、非易失性光盘(诸如cd-rom、dvd-rom或其它光学介质)读取或向其写入的光盘驱动器。应当理解,其它硬件和/或软件组件可以与计算机系统200结合使用。实例包括但不限于:微码、设备驱动程序、冗余处理单元、外部磁盘驱动器阵列、raid系统、磁带驱动器和数据档案存储系统等。
56.计算机系统200可以与许多其它通用或专用计算系统环境或配置一起操作。适合与计算机系统200一起使用的公知的计算系统、环境和/或配置的示例包括但不限于,个人计算机(pc)系统、服务器计算机系统、瘦客户机、胖客户机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络pc、小型计算机系统、大型计算机系统、以及包括任何上述系统或设备的分布式云计算环境等。
57.如上所述,计算机系统是可以结合和/或使用本发明的一个或多个方面的主机的一个例子。结合和/或使用本发明的一个或多个方面的主机的另一个例子是中央电子复合体,其例子在图2b中描述。
58.参考图2b,在一个示例中,中央电子复合体(cec)250包括和/或耦合到多个组件,其是图1中所示的组件的补充和/或包括这些组件,包括但不限于本地密钥管理器(lkm)104、hba 106、lkm 112、hba 114、服务网络130和服务网络116,其是中央电子复合体的一部分和/或耦合到中央电子复合体,但在图2b中未明确指示。在一个示例中,cec 250包括但不限于耦合到一个或多个处理器(也称为中央处理单元(cpu))260和输入/输出子系统262的存储器254(也称为系统存储器、主存储器、主存储、中央存储、存储)。
59.在一个示例中,中央电子复合体250的存储器254包括例如一个或多个逻辑分区264、管理逻辑分区的管理程序266以及处理器固件268。管理程序266的一个例子是由国际商业机器公司提供的处理器资源/系统管理器(pr/sm)。如这里所使用的,固件包括例如处理器的微代码。它包括例如在实现更高级的机器代码时使用的硬件级指令和/或数据结构。在一个实施例中,它包括例如专有代码,该专有代码通常作为包括可信软件的微代码或底层硬件专用的微代码来传递,并且控制操作系统对系统硬件的访问。
60.每个逻辑分区264能够作为单独的系统。即,每个逻辑分区可以被独立地重置,运行诸如由国际商业机器公司提供的z/os的客户操作系统270,或另一个操作系统,并且利用不同的程序282来操作。在逻辑分区中运行的操作系统或应用程序看起来可以访问整个系统,但实际上,只有一部分系统是可用的。
61.存储器254耦合到处理器(例如cpu)260,其是可以分配给逻辑分区的物理处理器资源。例如,逻辑分区264包括一个或多个逻辑处理器,每个逻辑处理器代表可以动态分配给逻辑分区的物理处理器资源260的全部或一部分。
62.此外,存储器254耦合到i/o子系统262。i/o子系统262可以是中央电子复合体的一部分或与其分离。它引导主存储装置254和输入/输出控制单元256以及耦合到中央电子复合体的输入/输出(i/o)设备258之间的信息流。
63.虽然本文描述了主机的各种示例,但是其他示例也是可能的。此外,作为示例,主机在本文中也可被称为源、服务器、节点或端点节点。另外,作为示例,存储设备在本文中可以被称为目标、节点或端点节点。示例存储设备包括存储控制器或控制单元。其它示例也是可能的。
64.现在转到图3,根据本发明的一个或多个实施例,一般地示出了用于lkm初始化和hba安全注册的计算环境300的框图。图3所示的组件包括如先前参照图1所述的主机102、san 108、存储阵列110、服务网络130、se 128、专用网络126、服务器hmc 124、网络120和ekm 122。图3所示的主机102由执行若干逻辑分区(一个或多个)的服务器实现,包括运行操作系统(o/s)302的两个分区和执行lkm 104的一个分区。图3所示的主机102包括用于管理分区的管理程序304,以及在分区和输入/输出(i/o)子系统306之间的接口。如图3所示的i/o子系统306提供到hba106的接口。
65.根据本发明的一个或多个实施例,lkm激活和启动由请求将安全性应用于主机102的客户(例如,主机102的所有者)触发。这可以例如通过客户应用他们通过在se 128中启用特征代码并重新启动se 128而购买的特征代码来发生。在重新引导时,se 128可以触发主机102初始化用于执行lkm 104的分区。不需要重启se 128来激活和启动lkm,并且在另一示例中,通过在不重启se 128的情况下启用se 128中的特征代码来激活和启动lkm。激活和初始化lkm 104的触发事件在图3中被示为“1”。一旦lkm被激活并初始化,lkm 104就通知i/o子系统306初始化完成。该通知事件在图3中被示为“2”。如图3所示,通知由lkm 104发起,其通知管理程序304,其又通知i/o子系统306lkm初始化完成。根据一个或多个实施例,一旦lkm 104在主机102上执行,lkm初始化就完成。
66.根据本发明的一个或多个实施例,一旦lkm初始化完成,则lkm 104联系ekm 122以请求到ekm 122的安全连接。根据本发明的一个或多个实施例,执行lkm 104的主机102是已由受信任证书管理机构认证的受信任节点。根据一个或多个实施例,主机102具有ekm的网
际协议(ip)地址或主机名以及来自受信任证书管理机构的主机的签名证书。联系ekm 122以请求连接在图3中被示为“3”。如图3所示,连接请求跨越将lkm 104连接到ekm 122的若干组件:管理程序304、i/o子系统306、服务网络130、服务元件128、专用网络126、服务器hmc 124和网络120。根据本发明的一个或多个实施例,lkm 104将建立与ekm 122的连接的请求发送到管理程序304,其将该请求发送到i/o子系统306,其经由服务网络130将该请求发送到se 128。se128经由专用网络126向服务器hmc 124发送请求,以打开通过网络120到ekm 122的代理连接(例如,传输层安全或tls会话)。
67.根据一个或多个实施例,kmip被用于从ekm 122请求连接。kmip消息可以包括来自受信任证书管理机构的证书,并且可以从ekm 122返回kmip消息,在图3中示为“4”,其具有已经建立连接的指示或没有建立连接的指示。根据一个或多个实施例,如果ekm 122识别出由主机102在连接请求中发送的证书,则可以建立到ekm 122的安全连接。根据一个或多个实施例,由于例如网络连接性问题、配置问题和/或ekm 122不识别证书,所以没有建立到ekm 122的安全连接。tls和kmip仅仅是示例,也可以使用其他协议和安全通信。
68.基于lkm 104和ekm 122之间的连接被建立,lkm 104经由管理程序304通知i/o子系统306连接已经被建立。这在图3中显示为“5”。如图3中的“6”所示,i/o子系统306向hba106通知lkm 104准备好处理ske消息(即,准备好提供与其他计算节点的安全数据传输)。如图3中的“7”所示,hba 106向lkm 104注册它们的安全能力和地址信息。安全能力的示例包括但不限于:认证或不同类型的加密。地址信息可以包括但不限于:分配给hba的光纤信道地址。
69.应当理解,图3的框图不旨在指示计算环境300将包括图3中所示的所有组件。而是计算环境300可以包括图3中未示出的任何适当的更少或附加的组件,其中图3中所示的一些组件被组合或者由一个或多个组件执行的功能由不同的或若干组件执行。此外,本文关于计算环境300描述的实施例可以用任何适当的逻辑来实现,其中如本文所提到的逻辑在各种实施例中可以包括任何适当的硬件(例如,处理器、嵌入式控制器或专用集成电路等)、软件(例如,应用等)、固件或硬件、软件和固件的任何适当的组合。
70.现在转到图4,根据本发明的一个或多个实施例,一般地示出了用于lkm初始化和hba安全注册的过程400。图4所示的处理的全部或一部分可以例如由在图1的主机102上执行的图1的lkm 104来实现。在框402处,在诸如图1的主机102的节点上激活并初始化lkm分区。处理在框404处继续,其中lkm向诸如图3的i/o子系统306的节点上的i/o子系统通知lkm的初始化完成。在框406,lkm发起与诸如图1的ekm 122之类的ekm的联系,以请求安全连接。如前所述,这可以使用包含请求和tls会话的kmip消息来执行。在框408,确定是否可以建立与ekm的连接。根据一个或多个实施例,基于作为对在框406处发送的请求的响应从ekm返回的消息来进行该确定。
71.如图4中的过程400的实施例中所示,如果没有建立与ekm的连接,则处理在框406继续,尝试另一连接。如果在框408确定建立了与ekm的连接,则处理在框410继续。在框410,lkm通知子系统ekm连接已经被建立,并且在框412,i/o子系统通知在执行lkm的节点上的hba,诸如图1的hba106,lkm准备好处理ske消息。在框414处,执行lkm的节点上的hba向lkm注册其安全能力。
72.图4的过程流程图不旨在指示过程400的操作将以任何特定顺序执行,或者过程
400的所有操作将被包括在每种情况中。另外,过程400可以包括任何适当数量的附加操作。
73.现在转到图5,根据本发明的一个或多个实施例,一般地示出了用于生成ske sa初始化请求(在此也称为“ske sa init请求”)的计算环境500的框图。图5所示的计算环境500包括两个节点:主机502和存储阵列504,它们经由一个或多个连接508耦合到ekm服务器506(这里也称为ekm)。作为示例,一个或多个连接508是利用tls安全通信保护的以太网连接。一个或多个连接508可以包括图1和3中所示的元件的全部、子集或超集。ekm506包括执行本文描述的ekm处理的计算机指令。在图5所示的实施例中,主机502、存储阵列504和ekm服务器506耦合到证书管理机构(ca)510,该证书管理机构用于对安装在主机502、存储阵列504和ekm服务器506上的证书进行签名以在它们之间建立信任。
74.如图5所示,主机502包括耦合到hba 518(例如,光纤信道端口或ficon信道或其他链路)的lkm 520,其用于经由例如san网络(诸如图1的san 108)与存储阵列504通信。尽管在图5中未示出,主机502和存储阵列504还可以包括经由连接508耦合到ekm服务器506的一个或多个以太网端口。ficon是用于主机502和存储阵列504之间的数据传输的已知通信路径,而以太网是已知的局域网(lan)。类似地,在该示例中,存储阵列504包括耦合到用于与主机502通信的hba 522(例如,光纤信道端口或ficon信道)的lkm 528。
75.如图5的箭头512所示,lkm 520从主机502上的hba 518接收请求以将数据发送到存储阵列504上的hba 522。响应于从hba 518接收到请求,主机502上的lkm 520确定在主机502上的hba 518(“发起方节点”)和存储阵列504上的hba 522(“响应方节点”)之间是否已经存在sa。根据本发明的一个或多个实施例,主机502上的hba 518与存储阵列504上的hba 522之间一次仅可打开一个通信路径。因此,如果sa当前存在,则在这两个信道之间通信路径已经在进行中,或者已经发生错误(例如,来自主机502上的hba 518的请求具有错误并且已经请求错误的目标节点和/或目标信道)。在任一情况下,向请求hba 518返回错误消息,并且拒绝该请求。
76.如果sa不存在,则主机502上的lkm 520进入其在主机502上的hba 518与存储阵列506上的hba 522之间创建sa的状态。主机502上的lkm 520确定其是否具有用于主机502/存储阵列504对的共享密钥和共享密钥标识符。共享密钥和共享密钥标识符可以存储在例如位于主机502上的、可由lkm 520访问的易失性存储器(例如,高速缓冲存储器)中。如果lkm 520没有定位主机502/存储阵列504对的共享密钥,则如图5中的箭头514所示,其向ekm服务器506发送请求,以检索主机502/存储阵列504对的共享密钥,并在ekm服务器506上建立包括主机502/存储阵列504对的设备组(如果还不存在一个)。根据本发明的一个或多个实施例,这是通过多步骤过程来执行的,其中lkm 520首先查询ekm服务器506以确定对于主机502/存储阵列504对是否存在设备组,并且一旦确定不存在该设备组,则请求ekm服务器506创建一个设备组。一旦确定对于主机502/存储阵列504对存在设备组,lkm 520请求对应于设备组的共享密钥。
77.主机502和/或存储阵列504可以通过它们各自的全球节点名(wwnn)向ekm标识。响应于从lkm 520接收到请求,ekm服务器506认证该lkm,并且如果需要,则创建包括主机502/存储阵列504对的设备组。ekm服务器506还生成专用于主机502/存储阵列504对的共享密钥(这里也称为“共享秘密密钥”),以用于对在主机502与存储阵列504之间传输的消息和数据进行加密和解密。如图5的箭头524所示,ekm服务器506将共享密钥发送到主机502上的请求
lkm 520。
78.lkm 520对共享密钥的接收可以是多步骤过程。根据本发明的一个或多个实施例,lkm 520首先从ekm服务器506请求用于指定设备组的共享密钥标识符。共享密钥标识符是可以由ekm服务器506用来定位/确定相应的共享密钥的唯一标识符。响应于接收到共享密钥标识符,lkm 520向ekm服务器506发送包括共享密钥标识符的第二请求以请求共享密钥。ekm服务器506通过返回共享密钥来响应。根据本发明的一个或多个实施例,设备组名是主机502和存储阵列504的wwnn的级联。根据本发明的一个或多个实施例,在接收到共享密钥时,lkm 520可以启动共享密钥重设密钥定时器,该定时器用于限制在需要重设密钥或刷新之前可以使用共享密钥的时间量。该时间量可以基于系统策略,诸如但不限于正被交换的数据的机密性质、计算机环境中适当位置的其他安全保护、和/或未授权访问尝试的可能性。根据本发明的一个或多个实施例,除了经过的时间量之外,或者作为对经过的时间量的替代,共享密钥重设密钥定时器可以基于源节点和目标节点之间的数据交换的次数而到期。策略可以由客户经由hmc上的用户接口来配置,hmc例如是图1的服务器hmc 124或存储阵列hmc 118,当共享密钥重设密钥定时器到期时,lkm 520发起从ekm服务器506获得新的共享密钥的过程,如下面参考图15所描述的。
79.响应于lkm 520具有或获得有效的共享密钥和共享密钥标识符,lkm 520生成ske sa init请求消息,其包括共享密钥标识符以及由lkm 520创建的用于信道之间的安全通信的临时值和安全参数索引(spi)。lkm 520使用随机数发生器创建临时值和spi。临时值是在密码通信中可以仅使用一次的任意数。spi是被添加到加密的光纤信道数据帧的明文部分的标识标签。帧的接收器可以使用该字段来验证用于加密数据有效负载的密钥材料。ske sa init请求消息被发送到hba 518或信道,其请求将数据发送到存储阵列504上的hba 522。这在图5中由箭头516示出,请求(或发起方)hba 518例如经由san网络将ske sa init请求消息发送到存储阵列504上的目标hba 522,如图5中的箭头526所示。根据本发明的一个或多个实施例,ske sa init请求消息作为明文发送(即,其未被加密)。
80.应当理解,图5的框图不旨在指示计算环境500要包括图5中所示的所有组件。相反,计算环境500可以包括图5中未示出的任何适当的更少或附加的组件,其中图5中所示的一些组件被组合,或者由一个或多个组件执行的功能由不同的或若干个组件执行。例如,可以存在一个或多个附加节点(例如,主机和/或存储阵列)。此外,本文关于计算环境500描述的实施例可以用任何适当的逻辑来实现,其中如本文所提到的逻辑在各种实施例中可以包括任何适当的硬件(例如,处理器、嵌入式控制器或专用集成电路等)、软件(例如,应用等)、固件或硬件、软件和固件的任何适当的组合。
81.现在转到图6,根据本发明的一个或多个实施例,一般地示出了用于生成ske sa初始化请求的过程600。过程600的全部或一部分可由例如图5的lkm 520等的lkm执行,过程600在框602处开始,其中lkm从信道(发起方信道)接收消息,该消息请求初始化与另一信道(响应方信道)的安全通信。例如,发起方信道可以是图1的hba 106,响应方信道可以是图1的hba114。在框604确定发起方hba是否已向lkm注册。如果发起方hba尚未向lkm注册,则处理在框608处继续,拒绝请求(例如,因为lkm无法确定发起方hba的安全能力)。
82.如果在框604确定发起方hba已向lkm注册,则处理在框606继续。在框606,确定在发起方信道和响应方信道之间是否已经存在sa。如果sa已经存在,则处理在框608继续,拒
绝请求。
83.如果在框606确定在发起方节点和响应方节点之间不存在sa,则处理在框610继续创建sa。一旦在框610为发起方信道/响应方信道对创建了sa状态,处理就在框612继续,确定是否存在发起方节点/响应方节点对的设备组密钥或共享密钥。如果对于发起方节点/响应方节点对存在共享密钥,则处理在框614处继续,使用现有共享密钥。在框616,ske sa init请求消息由lkm建立。根据一个或多个实施例,ske sa init请求消息包括:所述共享密钥的标识符;以及由lkm创建的用于信道之间的安全通信的临时值和spi。在框618,ske sa init请求消息被发送到发起方信道。然后,发起方信道将ske sa init请求消息发送到响应方节点上的响应方信道。
84.如果在框612确定不存在用于发起方节点/响应方节点对的共享密钥,则处理在框620继续。在框620,确定对于发起方节点/响应方节点对是否存在设备组。确定是否存在设备组可以包括:lkm询问ekm是否存在用于发起方节点/响应方节点对的设备组,并且如果存在设备组,则ekm用相应的共享密钥的标识符(共享密钥标识符)进行响应,或者如果不存在设备组,则ekm用错误消息进行响应。如果确定设备组确实存在,则处理在框622继续,为发起方节点/响应方节点对创建共享密钥,并且在框624,共享密钥被存储在发起方节点处。可以由ekm响应于来自lkm的请求而创建共享密钥。根据本发明的一个或多个实施例,共享密钥和共享密钥标识符被存储在易失性存储器中,使得当发起方节点断电或重启时不保存共享密钥。根据本发明的一个或多个实施例,共享密钥具有有限的寿命,例如基于但不限于:共享密钥已经被使用的安全关联的数量和/或自从创建共享密钥以来经过的时间量。在存储了共享密钥之后,处理在框616处继续,其中lkm建立ske sa init请求消息。
85.如果在框620确定对于发起方节点/响应方节点对不存在设备组,则执行框626,并且为发起方节点/请求方节点对创建设备组对。设备组和共享密钥可以由ekm响应于来自lkm的单个(或多个)请求而创建。一旦创建了设备组,处理就在框622处继续,为发起方节点/请求方节点对创建共享密钥。
86.图6的过程流程图不旨在指示过程600的操作将以任何特定顺序执行,或者过程600的所有操作将被包括在每种情况中。另外,过程600可以包括任何合适数量的附加操作。
87.现在转到图7,根据本发明的一个或多个实施例,一般地示出了用于目标信道的节点处的ske sa初始化处理和消息生成的计算环境700的框图。图7所示的计算环境700类似于图5所示的计算环境500,只是增加了在目标hba522的存储阵列504处对ske sa init请求消息的处理。
88.如图7的箭头526所示,存储阵列504上的hba 522从主机502上的hba 518接收ske sa init请求消息。响应于接收到ske sa init请求消息,hba 522将ske sa init请求消息发送到位于存储阵列504上的lkm 528(如图7的箭头708所示)。响应于接收到该消息,存储阵列504上的lkm 528确定在主机502上的hba 518和存储阵列504上的hba 522之间是否已经存在sa。如果sa已经存在,则向hba返回错误消息522,并拒绝该请求。
89.如果sa不存在,则存储阵列504上的lkm 528进入这样的状态,其中它在主机502上的hba 518和存储阵列506上的hba 522之间创建sa。存储阵列504上的lkm 528确定其是否具有与包含在ske sa init请求中的共享密钥标识符相对应的共享密钥。共享密钥及其对应的共享密钥标识符可以存储在例如位于存储阵列504上的、可由lkm 528访问的易失性存
储器(例如,高速缓冲存储器)中。如果lkm 528没有定位主机502/存储阵列504对的共享密钥,则如图7中的箭头702所示,lkm 528向ekm服务器506发送请求以检索与在ske sa init请求消息中接收到的共享密钥标识符相对应的共享密钥。响应于从lkm 528接收到请求,ekm服务器506认证lkm 528并且如图7中的箭头704所示将共享密钥发送到存储阵列504上的lkm 528。根据本发明的一个或多个实施例,在接收到共享密钥时,lkm 528可以启动共享密钥重设密钥定时器,该定时器用于限制在需要重设密钥或刷新之前可以使用共享密钥的时间量。时间量可以基于系统策略。因为不同的节点可能具有不同的策略,所以由lkm 528上的共享密钥重设密钥定时器所指示的时间量可能不同于由lkm 520上的共享密钥重设密钥定时器所指示的时间量。根据本发明的一个或多个实施例,除了时间量之外或作为其替换,共享密钥重设密钥定时器可基于源节点和目标节点之间的数据交换的次数而期满。当共享密钥重设密钥定时器到期时,lkm 528发起从ekm服务器506获得新的共享密钥的过程,如下面参考图15所描述的。
90.响应于lkm 528具有或获得有效的共享密钥,lkm 528生成ske sa init响应消息,该ske sainit响应消息包括由lkm 528创建的用于信道之间的安全通信的临时值和安全参数索引(spi)。ske sa init响应消息被发送到hba 522,如图7中的箭头710所示。响应方(或目标)hba 522将ske sa init响应消息发送到主机502上的发起方hba 518,如图7中的箭头706所示。根据本发明的一个或多个实施例,ske sa init响应消息作为明文发送(即,其未被加密)。
91.应当理解,图7的框图不旨在指示计算环境700要包括图7中所示的所有组件。而是计算环境700可以包括图7中未示出的任何适当的更少或附加的组件,其中图7中所示的一些组件被组合或者由一个或多个组件执行的功能由不同的或若干组件执行。例如,可以存在一个或多个附加节点(例如,主机和/或存储阵列)。此外,本文关于计算环境700描述的实施例可以用任何适当的逻辑来实现,其中如本文所提到的逻辑可以包括任何适当的硬件(例如,处理器、嵌入式控制器或专用集成电路等)、软件(例如,应用等)、固件或在各种实施例中硬件、软件和固件的任何适当的组合。
92.现在转到图8,根据本发明的一个或多个实施例,一般地示出了用于在目标信道的节点处的ske sa初始化处理和消息生成的过程800。过程800的全部或一部分可以由例如图7的lkm 528这样的lkm执行。过程800在框802处开始,其中lkm接收ske sa init请求消息,该请求消息请求发起方和响应方信道之间的安全通信的初始化。例如,发起方信道可以是图1的hba 106,响应方信道可以是图1的hba 114。在框804确定响应方hba是否已经向响应方节点上的lkm注册。如果响应方hba尚未向lkm登记,则处理在框808处继续,拒绝请求(例如,因为lkm无法确定响应方hba的安全能力)。
93.如果在框804确定响应方hba向lkm注册,则处理在框806继续。在框806,确定在发起方信道所在的节点(发起方节点)和响应方信道所在的节点(响应方节点)之间是否已经存在sa。如果sa已经存在,则处理在框808继续,拒绝请求。
94.如果在框806确定在发起方节点和响应方节点之间不存在sa,则处理在框810继续创建sa。一旦在框810为发起方节点/响应方节点对创建了sa状态,处理就在框812继续,确定在响应方lkm处是否存在用于发起方节点/响应方节点对的共享密钥。如果可以在响应方lkm上为发起方节点/响应方节点对定位共享密钥,则处理在框820处继续。在框820,为响应
信道生成临时值和spi,并且在框822,在响应节点处导出将在发起方信道和响应方信道之间的加密和解密中使用的密钥。可以使用响应方的临时值和spi、发起方的临时值和spi以及共享密钥来生成密钥。
95.密钥推导可以基于在发起方和响应方之间建立的ske sa init消息交换的sa有效负载中协商的伪随机函数(prf)参数。“prf+”可以是用于生成在认证和加密模式中使用的密钥的基本算子。密钥生成可以在多个步骤上发生。例如,作为第一步,可以生成称为“skeyseed”的种子密钥,并将其定义为skeyseed=prf(ni|nr,secret_key),其中ni和nr是临时值,并且secret_key是从诸如ekm服务器506的ekm获得的共享秘密。作为第二步,可以生成一系列七个密钥。对于ske,可以有五个密钥和两个盐值(salt),例如,假设ske sa通过需要盐值的方法保护。盐值是随机数据,其可以用作对数据、密码或口令短语进行散列的单向函数的附加输入。盐值可以作为密钥材料的一部分产生。例如,多字节盐值可被用作到基于散列的消息认证码(hmac)的初始化向量(iv)输入的一部分。作为另一示例,32字节密钥和4字节盐值可以由以下生成:
96.{sk_d|sk_ei|salt_ei|sk_er|salt_er|sk_pi|sk_pr}=
97.prf+(skeyseed,ni|nr|spli|splr)
98.其中:
99.输入
100.·
ni、nr可以是来自相应ske_sa_init消息的16字节的临时值;
101.·
spii和spir可以是来自各自ske_sa_init消息的ske报头的8字节父sa spi值,并且可以用于认证;
102.以及输出
103.·
sk_d是用于在第三步骤中生成(用于子sa的)数据传送密钥的另一种子密钥;
104.·
sk_ei、salt_ei、sk_er和salt_er是用于加密ske_auth消息和父sa下的任何后续消息的密钥和盐值;以及
105.·
sk_pi和sk_pr是用于生成用于ske_auth消息中的auth有效负载的认证数据的密钥。
106.仅对于认证,这些是可能需要的所有密钥。对于用户数据的加密,第三步骤生成数据传送密钥和盐值。第三步骤可以从prf的新的递归调用开始,导出用于子sa的密钥和盐值。
107.在框824,由响应方节点处的lkm构建ske sa init响应消息,该ske sa init响应消息包括共享密钥的标识符以及由lkm在响应方节点处创建的用于信道之间的安全通信的临时值和spi。在框826,ske sa init响应消息被发送到响应方信道,并且响应方信道通过例如san网络将ske sa init响应消息发送到发起方节点上的发起方信道。
108.如果在框812确定不存在用于发起方节点/响应方节点对的共享密钥,则处理在框816继续。在框816,确定对于发起方节点/响应方节点对是否存在设备组。确定是否存在设备组可以包括:lkm询问ekm是否存在用于发起方节点/响应方节点对的设备组,并且如果存在设备组,则ekm用相应的共享密钥的标识符进行响应,或者如果不存在设备组,则ekm用错误消息进行响应。如果确定设备组确实存在,则处理在框818继续,从ekm获得发起方节点/响应方节点对的共享密钥,并且处理在框820继续,生成响应方spi和临时值。根据本发明的
一个或多个实施方式,共享密钥和共享密钥标识符存储在响应方节点处的易失性存储器中,使得当响应方节点断电或重启时不保存共享密钥。
109.如果在框816确定在响应方lkm上不存在发起方节点/响应方节点对的设备组,则执行框814,并且发起方节点/请求方节点对加入设备组。处理在框818继续。
110.图8的过程流程图不旨在指示过程800的操作将以任何特定顺序执行,或者过程800的所有操作将被包括在每种情况中。另外,过程800可以包括任何适当数量的附加操作。
111.图9描述了根据本发明的一个或多个实施例的用于基于ske sa初始化响应产生ske认证请求(在此也称为“ske auth请求”)的计算环境900的框图。图9所示的计算环境900类似于图5和7所示的计算环境500、700,除了在主机502处为存储阵列504构建ske auth请求消息之外。
112.如图9的箭头526所示,主机502上的hba 518将ske sa init请求消息传输到存储阵列504上的hba 522。如图9的箭头706所示,存储阵列504上的hba 522发送ske sa init响应消息,该消息由主机502上的hba 518接收。响应于接收到ske sa init响应消息,hba 518将ske sa初始化响应消息发送到位于主机502上的lkm 520(如图9的箭头902所示)。响应于接收到该消息,主机502上的lkm 520验证ske sa init响应消息,并确认发起方节点和响应方节点的设备组形成有效的sa对。主机502上的lkm 520导出一组加密密钥并构建ske认证请求消息。例如,可以使用如前所述的过程来导出该组密码密钥。ske auth请求消息可包括基于hba 518支持的安全能力的建议列表,以帮助选择也通过存储阵列504上的hba 522支持的加密算法。ske auth请求消息的有效负载可使用不同的加密标准来加密,所述标准不必与基于建议列表选择的加密算法相同。在hba 518或hba 522不直接支持加密的一些实施例中,建议列表中的选项可以不是仅加密-认证。ske auth请求消息被发送到hba 518或信道,其请求将数据发送到存储阵列504上的hba 522。这在图9中由箭头904所示,请求(或发起方)hba 518经由例如san网络将ske auth请求消息发送到存储阵列504上的目标hba 522,如图9中的箭头906所示。
113.应当理解,图9的框图并不旨在指示计算环境900要包括图9所示的所有组件。相反,计算环境900可以包括图9中未示出的任何适当的更少或附加的组件,其中图9所示的一些组件被组合,或者一个或多个组件所执行的功能由不同的或若干组件执行。例如,可以存在一个或多个附加节点(例如,主机和/或存储阵列)。此外,本文关于计算环境900描述的实施例可以用任何适当的逻辑来实现,其中如本文所提到的逻辑在各种实施例中可以包括任何适当的硬件(例如,处理器、嵌入式控制器或专用集成电路等)、软件(例如,应用等)、固件或硬件、软件和固件的任何适当的组合。
114.现在转到图10,根据本发明的一个或多个实施例,一般地示出了用于生成ske认证请求的过程1000。过程1000的全部或一部分可以由例如图9的lkm 520之类的lkm执行。过程1000开始于框1002,其中lkm接收ske sa init消息。在框1004处,lkm可确定ske sa初始化消息是否是ske sa初始化响应消息,并且如果是,则过程1000前进到框1006。在框1006,lkm可检查sa状态以确定信道是否是发起方。在一些实施例中,诸如hba 518之类的信道可以在回送(loopback)操作模式下与其自身通信,其中发起方节点也是响应方节点。回送模式可以用于测试和/或作为特殊ficon操作模式,其中sa模式被设置到发起方和响应方两者。如果sa状态是发起方,则在框1008处,lkm可以执行消息排序检查以验证在与发起方节点和响
应方节点对相关联的sa状态机处接收到的最后的消息是开始lkm消息。在框1010,基于确认所接收的最后消息是开始lkm消息,并且因此不是非预期消息序列,lkm可以检查ske sa初始化响应消息的有效负载类型以确定ske sa初始化响应消息的有效负载类型是否是通知消息类型。通知消息类型可以指示在响应方节点处的故障或其他条件,其阻止认证序列中的进一步进展。例如,响应方节点的lkm,诸如lkm 528,可能具有通信错误、密钥访问错误、排序错误或其他这样的情况。
115.如果ske sa初始化消息不是ske sa初始化响应消息,作为框1004的验证结果,则调用错误处理程序1012。如果在框1006sa状态是非兼容sa状态,在框1008检测到非预期消息序列,或者如果在框1010有效负载类型是通知消息类型,则也可以调用错误处理程序1012。错误处理程序1012可以拒绝在框1002接收的ske sa init消息,并且在错误条件是临时条件的情况下支持作为恢复过程的一部分的重试序列。在某些情况下,例如共享密钥错误或安全关联错误,错误处理程序1012可以执行恢复过程,该恢复过程例如通过向ekm服务器506发出对发起方节点和响应方节点之间的共享密钥的新请求来重新初始化通信序列。在重试失败的情况下或者在不执行重试的条件下,释放被保留以支持通信序列的资源。
116.在框1010确认ske sa init响应消息不是通知消息类型之后,过程1000前进到框1014。在框1014处,lkm可基于ske sa init响应消息的sa有效负载导出一组加密密钥。例如,可以使用如先前参考图8的过程800所描述的步骤来执行密钥导出。在框1016处,lkm可以至少部分地基于从ske sa init响应消息中提取的一个或多个参数来计算发起方签名。例如,发起方签名可以基于响应方临时值、共享密钥、发起方标识符、以及来自该组密码密钥的至少一个密钥。例如,ske sa init响应消息可以包括spi和临时值(nonce),如前所述。lkm可基于输入计算hmac,并且响应方节点还可独立地计算发起方签名作为发起方节点的进一步认证。
117.在框1018处,诸如hba518的发起方信道可以向主机的lkm报告安全能力,该安全能力由lkm基于发起方信道所支持的一个或多个安全能力构建到建议列表。例如,能力可以包括由发起方节点支持的加密算法的列表。加密算法可以被存储为优先级列表,例如,基于计算复杂度或用于建立偏好的另一度量来定义偏好。优先级列表可以随时间而改变,以确保在一段时间内选择不同的加密算法,以进一步增强安全性。例如,prf可被用于建立建议列表中的优先级。
118.在框1020,lkm至少部分地基于密码密钥集和建议列表来构建ske认证请求消息,其中密码密钥中的一个或多个被用于计算包括在ske认证请求消息中的建议列表中的发起方签名。发起方节点可以使用预定的加密算法来加密ske auth请求消息的有效负载。在框1022,lkm将具有加密的有效负载的ske auth请求消息发送到发起方信道,该发起方信道将ske auth请求消息传输到响应方节点的响应方信道。
119.图10的过程流程图不旨在指示过程1000的操作将以任何特定顺序执行,或者过程1000的所有操作将被包括在每种情况中。另外,过程1000可包括任何合适数量的附加操作。
120.图11描述了根据本发明的一个或多个实施例的用于基于ske认证请求产生ske认证响应(在此也称为“ske auth响应”)的计算环境1100的框图。图11所示的计算环境1100类似于图5、7和9所示的计算环境500、700、900,只是增加了在存储阵列504处为主机502建立ske auth响应消息。
121.如图11的箭头526所示,主机502上的hba 518将ske sa init请求消息传输到存储阵列504上的hba 522。如图11的箭头706所示,存储阵列504上的hba 522发送ske sa init响应消息,该消息由主机502上的hba 518接收。响应于接收到ske sa初始化响应消息,主机502向存储阵列504发送ske认证请求消息(箭头906)。响应于接收到ske auth请求消息,hba 522将ske auth请求消息发送到位于存储阵列504上的lkm 528(如图11的箭头1102所示)。响应于接收到该消息,存储阵列504上的lkm 528验证ske auth请求消息,并确认发起方节点和响应方节点的设备组与其他期望的状态和序列值一起形成有效的sa对。lkm 528解密ske认证请求消息的有效负载并执行验证检查。lkm 528可执行签名检查以进一步认证发起方节点。ske auth请求消息可包括基于hba 518支持的安全能力的建议列表,以帮助选择也通过存储阵列504上的hba 522支持的加密算法。ske auth请求消息的有效负载可使用不同的加密标准来加密,所述标准不必与基于建议列表选择的加密算法相同。一旦从与hba 522兼容的建议列表中选择了加密算法,lkm 528就可构建ske auth响应消息,该ske auth响应消息标识所选的加密算法并例如使用与用于加密ske auth请求消息的有效负载的加密算法相同的加密算法来加密有效负载。
122.ske auth响应消息被发送到hba 522或信道。这在图11中由箭头1104示出。存储阵列504上的响应方hba 522例如经由san网络将ske auth响应消息发送到主机502上的发起方hba 518,如图11中的箭头1106所示。
123.应当理解,图11的框图并不旨在指示计算环境1100要包括图11中所示的所有组件。而是计算环境1100可以包括图11中未示出的任何适当的更少或附加的组件,其中图11中所示的一些组件被组合,或者一个或多个组件所执行的功能由不同的或若干组件执行。例如,可以存在一个或多个附加节点(例如,主机和/或存储阵列)。此外,本文关于计算环境1100描述的实施例可以用任何适当的逻辑来实现,其中如本文所提到的逻辑在各种实施例中可以包括任何适当的硬件(例如,处理器、嵌入式控制器或专用集成电路等)、软件(例如,应用等)、固件或硬件、软件和固件的任何适当的组合。
124.图12描述了根据本发明的一个或多个实施例的ske认证消息处理的过程1200。例如,可以通过诸如图11的lkm 528之类的lkm来执行过程1200的全部或一部分。过程1200开始于框1202,其中lkm接收ske认证消息。lkm可确定ske认证消息是否是作为验证检查的ske认证请求消息,其中lkm可支持ske认证请求和响应消息类型。
125.在框1204处,可以基于发起方节点和响应方节点的sa来执行状态检查。状态检查的示例可以包括确认存在用于具有共享密钥的发起方节点和响应方节点对的sa。sa模式检查可以确认sa的模式被设置给响应方。在框1204处的状态检查还可以包括验证lkm 528的最后接收的消息状态和最后发送的消息状态与期望值相匹配。例如,可以检查消息序列状态机,以确认从响应节点发送的最后消息是ske sa init响应消息,并且接收的最后消息是ske sainit请求消息。
126.如果在框1204状态为ok(例如,所有期望值都被验证),则在框1206可检查ske auth请求消息的有效负载类型,以确定消息是否是通知消息类型。通知消息类型可以指示发起方节点处的故障或其他条件,其阻止认证序列中的进一步进展。例如,诸如lkm 520的发起方节点的lkm可能具有通信错误、密钥访问错误、排序错误或其他这样的状况。通知消息类型指示符可以在ske auth请求消息的有效负载内未加密地出现。
127.如果在框1206消息有效负载不是通知消息类型,则在框1208可以解密消息有效负载。在解密之后,在框1210处可执行进一步的验证检查。ske auth请求消息的验证检查可包括,例如,基于对有效负载的解密,检查一个或多个消息报头参数和有效负载的标识符。可以在消息报头中检查的参数可以包括版本和有效负载长度。ske auth请求消息的解密的有效负载可被检查,以确认消息中标识的全球节点名或全球端口名与基于ske sa init请求消息的期望值相匹配。
128.lkm 528可在框1212处计算发起方签名,并且可在框1214处检查发起方签名。可以基于先前确定的值或从诸如ske sa init请求消息的先前消息中提取的值来计算发起方签名。例如,可以在lkm 528处基于响应方临时值、共享密钥、发起方标识符、以及来自该组密码密钥的至少一个密钥来计算发起方签名。计算出的发起方签名可以与ske auth请求消息中接收到的发起方签名相比较,其中在作为进一步验证的解密之后,可以从ske auth请求消息的有效负载中提取发起方签名。
129.如果在框1214处发起方签名检查通过,则在框1216处可计算响应方签名。响应方签名可以基于发起方临时值、共享密钥、响应方标识符、以及来自一组密码密钥的至少一个密钥来计算。在计算响应方签名中使用的一个或多个值可以基于从诸如ske sainit请求消息的先前消息中提取的值。
130.在框1218,基于在ske auth请求消息中接收的建议列表和响应方节点支持的最高优先级加密算法的能力,选择加密算法用于加密发起方信道和响应方信道之间的数据。hba 522的能力可被报告给lkm 528以帮助lkm 528从建议列表中选择将由发起方节点和响应方节点支持的加密算法。如果在块1220确定算法选择是不可能的,其中响应方节点不支持来自提议清单的任何加密算法,则在块1222拒绝ske auth请求消息。ske auth请求消息还可在框1222根据框1204处的非预期状态、在框1206处检测到的通知消息类型、在框1210处的验证检查失败或在框1214处的签名检查失败而被拒绝。ske auth请求消息的拒绝可支持重试选项,其中响应方节点准备接受替换ske auth请求消息。在取消通信会话并清除关联值之前,可能支持预定次数的重试。
131.如果在框1220处进行加密算法选择是可能的,则在框1224处,lkm 528构建ske auth响应消息。ske auth响应消息的构建可至少部分基于成功的状态检查、成功的确认、以及从建议列表中选择一个加密算法。ske auth响应消息的有效负载可以包括在块1216中计算的响应方签名和在块1218基于选择的所选加密算法的指示符。ske auth响应消息的有效负载例如使用与用于加密ske auth请求消息的有效负载相同的加密算法来加密。ske认证响应消息独立于建议列表被加密。
132.在框1226处构建lkm完成消息。lkm完成消息可包括一个或多个会话密钥、发起方spi和响应方spi以使得能够使用所选择的加密算法在发起方信道和响应方信道之间进行加密通信。会话密钥也称为数据传送密钥,其可以基于所选择的加密算法和先前作为种子密钥导出的密码密钥集合中的一个或多个来计算。会话密钥可以结合发起方节点和响应方节点两者对所选加密算法的了解,支持对发起方信道和响应方信道之间的数据传输的加密和解密。lkm完成消息还可将sa状态设置为完成,且可触发与认证过程相关联的进一步清除动作。此外,可以启动会话密钥重设密钥定时器。会话密钥重设密钥定时器可以触发如下面参考图15所述的重设密钥过程,会话密钥重设密钥定时器可以基于终止的时间量和在目标
节点和源节点之间发生的交换的数量中的一个或两个而终止。
133.在框1228,ske认证响应消息和lkm完成消息被从lkm 528发送到hba 522。在hba 522向hba 518发送ske auth响应消息之后,lkm完成消息可触发hba 522的重新配置以使用选定加密算法与hba 518通信。
134.图12的过程流程图不旨在指示过程1200的操作将以任何特定顺序执行,或者过程1200的所有操作将被包括在每种情况中。另外,过程1200可以包括任何合适数量的附加操作。
135.图13示出了根据本发明的一个或多个实施例的用于基于ske认证响应的hba密钥加载的计算环境1300的框图。图13所示的计算环境1300与图5、7、9和11所示的计算环境500、700、900、1100类似,只是在主机502处增加了ske auth响应消息处理,以完成加密链接路径的建立。
136.如图13的箭头526所示,主机502上的hba 518将ske sa init请求消息传输到存储阵列504上的hba 522。如图13的箭头706所示,存储阵列504上的hba 522发送ske sa init响应消息,该消息由主机502上的hba 518接收。响应于接收到ske sa初始化响应消息,主机502向存储阵列504发送ske认证请求消息(箭头906)。响应于接收到ske auth请求消息,hba 522用ske auth响应消息(箭头1106)向hba 518作出响应。
137.响应于接收到ske auth响应消息,hba 518将ske auth响应消息发送到位于主机502上的lkm 520(如图13的箭头1302所示)。响应于接收到该消息,主机502上的lkm 520验证ske认证响应被接收,并确认发起方节点和响应方节点的设备组与其他期望的状态和序列值一起形成有效的sa对。lkm 520解密ske认证响应消息的有效负载并执行验证检查。lkm 520可执行签名检查以进一步认证响应方节点。ske auth响应消息可包括选定的加密算法,它对应于先前在ske auth请求消息的建议列表中发送的一个或多个加密算法。在一些实施例中,所选择的加密算法可以不是仅加密-认证。ske auth响应消息的有效负载可使用不同的加密标准来加密,所述标准不必与基于建议列表选择的加密算法相同。一旦从与hba 518和hba 522兼容的建议列表中选择了加密算法,lkm 520就可将该选择本地存储在易失性存储器中。lkm 520可构建lkm完成消息,其标识所选加密算法、会话密钥和spi,以支持hba 518对与hba 522的通信进行加密和解密。lkm完成消息可被发送到hba 518,如箭头1304所示。
138.hba 518可经配置以使用来自lkm完成消息的信息与hba 522通信,且完成使用hba 518与hba 522之间的选定加密算法建立加密链路路径,如箭头1306所描绘。
139.应当理解,图13的框图不旨在指示计算环境1300要包括图13中所示的所有组件。而是计算环境1300可包括图13中未示出的任何适当的更少或附加的组件,其中图13中所示的一些组件被组合,或者一个或多个组件所执行的功能由不同的或若干组件执行。例如,可以存在一个或多个附加节点(例如,主机和/或存储阵列)。此外,本文关于计算环境1300描述的实施例可以用任何适当的逻辑来实现,其中如本文所提到的逻辑在各种实施例中可以包括任何适当的硬件(例如,处理器、嵌入式控制器或专用集成电路等)、软件(例如,应用等)、固件或硬件、软件和固件的任何适当的组合。
140.图14示出了根据本发明的一个或多个实施例的基于ske认证响应的hba的信道密钥加载的过程1400。过程1400的全部或一部分可由例如图13的lkm 520之类的lkm执行。过
程1400开始于框1402,其中lkm接收ske认证消息。在框1404,lkm可确定ske认证消息是否是ske认证响应消息作为验证检查,其中lkm可支持ske认证请求和响应消息类型。
141.在确认ske auth响应消息在框1404被接收之后,过程1400继续到框1406。在框1406,可以基于发起方节点和响应方节点的sa执行状态检查。状态检查的示例可以包括确认存在用于具有共享密钥的发起方节点和响应方节点对的sa。sa模式检查可以确认sa的模式被设置为发起方。在框1406处的状态检查还可以包括验证lkm 520的最后接收的消息状态和最后发送的消息状态是否与期望值匹配。例如,可检查消息序列状态机以确认从发起方节点发送的最后消息是ske auth请求消息,而接收的最后消息是ske sa init响应消息。
142.如果在框1406,状态是合格的(例如,所有期望值都被验证),则在框1408,ske auth响应消息的有效负载类型可被检查,以确定消息是否是通知消息类型。通知消息类型可以指示发起方节点处的故障或其他条件,其阻止认证序列中的进一步进展。例如,响应方节点的lkm,诸如lkm 528,可能具有通信错误、密钥访问错误、排序错误或其他这样的情况。通知消息类型指示符可以在ske auth响应消息的有效负载内未加密地出现。
143.如果在框1408,消息有效负载不是通知消息类型,则在框1410,可以对消息有效负载进行解密。在解密之后,在框1412处可执行进一步的验证检查。ske auth响应消息的验证检查可包括,例如,基于对有效负载的解密,检查一个或多个消息头参数和有效负载的标识符。可以在消息报头中检查的参数可以包括版本和有效负载长度。可检查ske auth响应消息的解密有效负载,以确认消息中标识的全球节点名或全球端口名匹配基于开始lkm消息的期望值。
144.lkm 520可在框1414计算响应方签名,并且可在框1416检查响应方签名。响应方签名可以基于发起方临时值、共享密钥、响应方标识符、以及来自一组密码密钥的至少一个密钥来计算。在计算响应方签名中使用的一个或多个值可以基于从诸如ske sainit响应消息的先前消息中提取的值。计算的响应方签名可以与ske auth响应消息中接收的响应方签名进行比较,其中响应方签名可以在作为进一步的验证解密之后从ske auth响应消息的有效负载中提取。如果在框1416签名检查验证失败,则在框1418拒绝ske auth响应消息。ske auth响应消息也可以在框1418根据框1404的非预期消息、框1406的非预期状态、框1408检测的通知消息类型或框1412的验证检查失败(例如,不成功的验证结果)而被拒绝。ske auth响应消息的拒绝可支持重试选项,其中发起方节点准备接受替换ske auth响应消息。在取消通信会话并清除关联值之前,可能支持预定次数的重试。如果在框1416响应方签名检查通过,则在框1420识别并保存从ske auth响应消息中选择的加密算法。
145.在框1422处建立lkm完成消息。lkm完成消息可包括一个或多个会话密钥、发起方spi和响应方spi以使得能够使用所选择的加密算法在发起方信道和响应方信道之间进行加密通信。会话密钥也称为数据传送密钥,其可以基于所选择的加密算法和先前作为种子密钥导出的密码密钥集合中的一个或多个来计算。会话密钥可以结合发起方节点和响应方节点两者对所选加密算法的了解,支持对发起方信道和响应方信道之间的数据传输的加密和解密。lkm完成消息还可将sa状态设置为完成,且可触发与认证过程相关联的进一步清除动作。
146.在框1424,启动会话密钥重设密钥定时器。会话密钥重设密钥定时器可以触发如下面参考图15所述的重设密钥过程,会话密钥重设密钥定时器可以基于终止的时间量和在
目标节点和源节点之间发生的交换的数量中的一个或两个而终止。因为它们的相应节点可能具有不同的策略,所以在发起方信道处的会话密钥重设密钥定时器可能在与在响应方信道处的会话密钥重设密钥定时器不同的时间到期。在框1426,在启动会话密钥重设密钥定时器之后,可以将lkm完成消息发送到发起方信道。在接收到lkm完成消息后,hba518可加载密钥以支持基于选定加密算法与hba 522的经加密通信。此后,使用所选加密算法和会话密钥执行hba 518和hba 522之间的数据传输,直到会话完成或重设密钥。
147.图14的过程流程图不旨在指示过程1400的操作将以任何特定顺序执行,或者过程1400的所有操作将被包括在每种情况中。另外,过程1400可以包括任何合适数量的附加操作。根据本发明的一些实施例,重设密钥过程仅由发起方侧(例如,发起方节点或源节点)控制。
148.现在转向图15,根据本发明的一个或多个实施例,一般地示出了用于在使用ske提供安全数据传输的计算环境中刷新密钥的过程1500。例如,可以通过诸如图5的lkm 520或lkm 528之类的lkm来执行过程1500的全部或一部分。如前所述,根据本发明的一个或多个实施例,基于系统策略设置共享密钥重设密钥定时器和会话密钥重设密钥定时器。根据本发明的一个或多个实施例,重设密钥定时器由每个节点处的lkm启动和跟踪。
149.过程1500开始于块1502,其中重设密钥定时器到期。在块1504,确定重设密钥定时器是共享密钥重设密钥定时器还是会话密钥重设密钥定时器。如果在框1504确定共享密钥重设密钥定时器已到期,则处理在框1506继续。如前所述,共享密钥重设密钥定时器涉及从诸如图5的ekm 506的ekm获得的共享密钥对于诸如图5的主机502和存储阵列504的两个节点之间的通信保持有效的时间量。根据本发明的一个或多个实施例,计算环境中的每个节点处的lkm控制(例如,启动和监视)用于存在于计算环境中的节点和其他节点之间的每个共享密钥的单独的共享密钥重设密钥定时器。每个共享密钥重设密钥定时器与包括一对节点(每对包括lkm正在执行的节点)的设备组相关联。此外,lkm存储共享密钥的当前值和存在于该节点和其它节点之间的用于安全通信的共享密钥中的每一个的共享密钥标识符。
150.在框1506,确定在与共享密钥重设密钥定时器相关联的节点对之间是否存在设备组。如果确定不存在设备组,则处理在框1508继续,以诸如以上参考图5和6所述的方式在节点对之间创建设备组。一旦创建了设备组,处理在块1510继续。
151.如果在框1506确定在节点对之间存在设备组,则处理在框1510继续。在块1510,创建新的共享密钥。根据本发明的一个或多个实施例,lkm向诸如图5的ekm服务器506的ekm发送对包括该对节点的设备组的新的共享密钥的请求。响应于接收到该请求,ekm为设备组创建新密钥,并将该新密钥与设备组的共享密钥标识符相关联。ekm将新密钥发送到请求lkm。lkm接收共享密钥可以是多步骤过程,其中在从ekm请求更新的密钥之后(或者可替换地,响应于从ekm接收到已经创建新密钥的通知),lkm向ekm发送包括共享密钥标识符的第二请求以请求当前密钥(即,更新的密钥)。ekm通过将与共享密钥标识符相对应的共享密钥的值返回给请求lkm来进行响应。在框1512处,由lkm存储更新的密钥作为当前共享密钥。根据本发明的一个或多个实施例,lkm跟踪在lkm正在执行的节点上的信道和其它节点上的其它信道之间的当前通信会话或sa。当前通信会话中的每一个都以先前的共享密钥继续,直到会话结束或者会话密钥重设密钥定时器过期,其中先前的共享密钥是在创建新的共享密钥之前使用的共享密钥。一旦lkm确定没有更多的当前通信会话正在使用先前的共享密钥,则在框
1514处撤销该先前的共享密钥。根据本发明的一个或多个实施例,lkm存储关于使用sa的当前通信会话的状态的信息。
152.如果在块1504确定会话密钥重设密钥定时器已经到期,则处理在块1516继续。如前所述,会话密钥重设密钥定时器涉及会话密钥(其可以包括若干密钥)对于两个信道(例如图5的hba 518和hba 522)之间的通信会话保持有效的时间量,根据本发明的一个或多个实施例,计算环境中的每个节点处的lkm控制(例如,启动和监视)用于每个通信会话的单独的会话密钥重设密钥定时器,该通信会话在该节点上的信道和计算环境中的其他节点上的信道之间进行处理。每个会话密钥重设密钥定时器与一对信道相关联(每对信道包括在lkm正在执行的节点上的信道)。
153.在块1516,lkm访问与节点相关联的当前共享密钥,其中与已到期的会话密钥重设密钥定时器相关联的一对信道位于该节点。在块1518,lkm以诸如以上关于图5和6所描述的方式构建ske sa初始化请求消息。在块1520,ske sa初始化请求消息被发送到另一节点上的信道以发起会话密钥的重新协商。根据本发明的一个或多个实施例,重新协商包括在一对信道之间交换ske sa初始化请求、ske sa初始化响应、ske认证请求和ske认证响应消息。
154.提供刷新或重设密钥的能力,密钥为系统提供了另一层安全性。根据本发明的一些实施例,共享密钥比会话密钥更不频繁地被刷新。
155.图15的处理流程图不旨在指示处理1500的操作将以任何特定顺序执行,或者处理1500的所有操作将被包括在每种情况中。另外,过程1500可以包括任何合适数量的附加操作。
156.尽管本文描述了各种实施例,但是其它变化和实施例是可能的。
157.本发明的一个或多个方面不可分地依赖于计算机技术,并便于计算机内的处理,从而提高其性能。在一个示例中,在认证节点之间的链路时提供性能增强。这些链路用于在由链路耦合的节点之间安全地传输消息。一个或多个方面减少了链路初始化时间、提高了计算机环境中的生产率、增强了计算机环境中的安全性、和/或提高了系统性能。
158.其它类型的计算环境也可结合和使用本发明的一个或多个方面,包括但不限于仿真环境,其示例参考图16a描述。在该示例中,计算环境35包括例如本机中央处理单元(cpu)37、存储器39、以及经由例如一个或多个总线43和/或其他连接彼此耦合的一个或多个输入/输出设备和/或接口41。作为示例,计算环境35可包括由纽约armonk的国际商业机器公司提供的powerpc处理器;和/或基于由国际商业机器公司、英特尔或其它公司提供的体系结构的其它机器。
159.本机中央处理单元37包括一个或多个本机寄存器45,诸如在环境内的处理期间使用的一个或多个通用寄存器和/或一个或多个专用寄存器。这些寄存器包括表示在任何特定时间点的环境状态的信息。
160.此外,本机中央处理单元37执行存储在存储器39中的指令和代码。在一个特定示例中,中央处理单元执行存储在存储器39中的仿真器代码47。该代码使得在一个架构中配置的计算环境能够仿真另一架构。例如,仿真器代码47允许基于z/架构之外的架构的机器,诸如powerpc处理器或其他服务器或处理器,来仿真z/架构,并执行基于z/架构开发的软件和指令。
161.参考图16b描述了与仿真器代码47有关的进一步细节。存储在存储器39中的访客
指令49包括软件指令(例如,与机器指令相关),其被开发为在除了本机cpu 37的架构之外的架构中执行,例如,访客指令49可以被设计为在z/架构处理器上执行,但是替代地,在本机cpu 37上被仿真,其可以是例如intel处理器。在一个示例中,仿真器代码47包括指令取回例程51,以从存储器39获得一个或多个访客指令49,并且可选地为所获得的指令提供本地缓冲。它还包括指令转换例程53,以确定已经获得的访客指令的类型,并且将访客指令转换成一个或多个对应的本机指令55。该转换包括例如标识要由访客指令执行的功能以及选择(一个或多个)本机指令来执行该功能。
162.此外,仿真器代码47包括仿真控制例程57以使得执行本机指令。仿真控制例程57可以使本机cpu 37执行仿真一个或多个先前获得的客户机指令的本机指令的例程,并且在这样的执行结束时,将控制返回到指令获取例程以仿真下一个客户机指令或一组客户机指令的获得。本机指令55的执行可以包括将数据从存储器39加载到寄存器中;将数据从寄存器存储回存储器;或者执行由转换例程确定的某种类型的算术或逻辑运算。
163.例如,每个例程以软件实现,该软件存储在存储器中并由本机中央处理单元37执行,在其他示例中,例程或操作中的一个或多个以固件、硬件、软件或其某种组合实现。被仿真的处理器的寄存器可以使用本机cpu的寄存器45或通过使用存储器39中的位置来仿真。在实施例中,访客指令49、本机指令55和仿真器代码37可以驻留在相同的存储器中,或者可以在不同的存储器设备之间分配。
164.一个或多个方面可以涉及云计算。
165.应当理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
166.云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,所述可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
167.特征如下:
168.按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
169.广域网接入:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和pda)使用的标准机制来访问。
170.资源池化:供应商的计算资源被集中以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级别(例如国家、州或数据中心)指定位置。
171.快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
172.测量服务:云系统通过利用在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资
源使用,从而为所利用服务的提供者和消费者两者提供透明性。
173.服务模型如下:
174.软件即服务(saas):提供给消费者的能力是使用在云基础结构上运行的提供者的应用。应用程序可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户机界面从各种客户机设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至个别应用能力的底层云基础结构,可能的例外是有限的用户专用应用配置设置。
175.平台即服务(paas):提供给消费者的能力是将消费者创建或获取的应用部署到云基础结构上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础结构,但具有对部署的应用和可能的应用托管环境配置的控制。
176.基础结构即服务(iaas):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其它基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础结构,但具有对操作系统、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
177.部署模型如下:
178.私有云:云基础结构仅为组织操作。它可以由组织或第三方管理,并且可以存在于建筑物内或建筑物外。
179.社区云:云基础结构由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
180.公有云:云基础结构可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
181.混合云:云基础结构是两个或更多云(私有、共同体或公共)的组合,所述云保持唯一实体,但是通过使数据和应用能够可移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
182.云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础结构。
183.现在参考图17,描述了说明性的云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点52,所述本地计算设备例如个人数字助理(pda)或蜂窝电话54a、台式计算机54b、膝上型计算机54c和/或汽车计算机系统54n。节点52可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础结构、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图17中所示的计算设备54a-n的类型仅旨在说明,并且计算节点52和云计算环境50可以在任何类型的网络和/或网络可寻址连接上(例如,使用web浏览器)与任何类型的计算机化设备通信。
184.现在参考图18,示出了由云计算环境50(图17)提供的一组功能抽象层。应当预先理解,图18中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
185.硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于risc(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储装置65;以及网络和网络组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
186.虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户机75。
187.在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其它资源的动态采购。计量和定价82提供了在云计算环境中利用资源时的成本跟踪,以及用于消耗这些资源的开帐单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(sla)规划和履行85提供对云计算资源的预安排和采购,其中根据sla预期未来需求。
188.工作负载层90提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:绘图和导航91;软件开发和生命周期管理92;虚拟教室教育传送93;数据分析处理94;交易处理95;以及认证处理96。
189.本发明的各方面可以是处于任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(一个或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。
190.计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
191.本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
192.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如smalltalk、c++等)和过程编程语言(例如“c”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读
程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
193.在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
194.这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
195.计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
196.附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所提及的功能可不按图中所提及的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
197.除了上述之外,可以由提供客户环境管理的服务提供商来提供、部署、管理、服务等一个或多个方面。例如,服务提供商可以创建、维护、支持等执行一个或多个客户的一个或多个方面的计算机代码和/或计算机基础结构。作为回报,服务提供商可以例如在订阅和/或费用协议下从客户接收支付。另外或替代地,服务提供商可以从向一个或多个第三方销售广告内容接收支付。
198.在一个方面,可以部署应用以执行一个或多个实施例。作为一个示例,应用的部署包括提供可操作以执行一个或多个实施例的计算机基础结构。
199.作为另一方面,可以部署计算基础结构,包括将计算机可读代码集成到计算系统中,其中与计算系统结合的代码能够执行一个或多个实施例。
200.作为又一方面,可以提供一种用于集成计算基础结构的过程,包括将计算机可读
代码集成到计算机系统中。计算机系统包括计算机可读介质,其中计算机介质包括一个或多个实施例。与计算机系统结合的代码能够执行一个或多个实施例。
201.尽管上文描述了各种实施例,但这些仅是实例。例如,其它体系结构的计算环境可用于结合和使用一个或多个实施例。此外,可以使用不同的指令、命令或操作。此外,可以采用其他安全协议、传输协议和/或标准。许多变化是可能的。
202.此外,其它类型的计算环境也可以受益并被使用。作为示例,适于存储和/或执行程序代码的数据处理系统是可用的,其包括通过系统总线直接或间接耦合到存储器元件的至少两个处理器。存储器元件包括例如在程序代码的实际执行期间采用的本地存储器、大容量存储装置和高速缓冲存储器,高速缓冲存储器提供至少一些程序代码的临时存储以便减少在执行期间必须从大容量存储装置检索代码的次数。
203.输入/输出或i/o设备(包括但不限于键盘、显示器、定点设备、dasd、磁带、cd、dvd、拇指驱动器和其它存储介质等)可以直接或通过中间i/o控制器耦合到系统。网络适配器也可以耦合到系统,以使数据处理系统能够通过中间专用或公共网络耦合到其它数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡只是几种可用的网络适配器类型。
204.本文所用的术语仅是为了描述特定实施例的目的,而不是旨在进行限制。如本文所用,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。还将理解,术语“包括”和/或“包含”在本说明书中使用时,指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。
205.如果存在,下面的权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作和等同物旨在包括用于与具体要求保护的其它要求保护的元件组合执行功能的任何结构、材料或动作。已经出于说明和描述的目的呈现了对一个或多个实施例的描述,但是该描述不旨在是穷尽的或者限于所公开的形式。许多修改和变化对于本领域普通技术人员来说是显而易见的。选择和描述实施例是为了最好地解释各个方面和实际应用,并且使本领域的其他普通技术人员能够理解具有适合于所设想的特定用途的各种修改的各种实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1