硬件安全模块

文档序号:108573 发布日期:2021-10-15 浏览:28次 >En<

阅读说明:本技术 硬件安全模块 (Hardware security module ) 是由 V·克鲁梅尔 P·京特 于 2019-11-05 设计创作,主要内容包括:根据一个实施例描述了一种硬件安全模块,具有:接收器,其被设置为接收用于执行密码操作的委托,和控制装置,其被设置为基于所述硬件安全模块的委托负荷决定是否应当外包一个或多个委托,并且如果应当外包一个或多个委托,则确定用于外包所述一个或多个委托的另外的硬件安全模块,认证所述另外的硬件安全模块并请求所述另外的硬件安全模块处理所述一个或多个委托。(According to one embodiment, a hardware security module is described having: a receiver arranged to receive a delegate for performing a cryptographic operation, and control means arranged to decide whether one or more delegates should be outsourced based on a delegation load of the hardware security module, and if one or more delegates should be outsourced, to determine a further hardware security module for outsourcing the one or more delegates, authenticate the further hardware security module and request the further hardware security module to process the one or more delegates.)

硬件安全模块

技术领域

实施例一般地涉及硬件安全模块。

背景技术

与安全相关的密码操作可以外包给对此专门化的、安全的硬件外围设备,即所谓的硬件安全模块(HSM)。取决于应用情况,HSM可以执行大量的密码操作,这可能导致HSM过载,HSM所接收的委托存储在队列中并且委托方(例如计算机系统)对应地必须等待委托的处理。取决于应用,这可能导致不期望的延迟。避免出现这样的延迟是值得期望的。

发明内容

根据一种实施例提供了一种硬件安全模块,具有接收器和控制装置,所述接收器被设置为接收用于执行密码操作的委托,所述控制装置被设置为基于所述硬件安全模块的委托负荷决定是否应当外包一个或多个委托,并且如果应当外包一个或多个委托,则确定用于外包所述一个或多个委托的另外的硬件安全模块,认证所述另外的硬件安全模块并请求所述另外的硬件安全模块处理所述一个或多个委托。

附图说明

附图并没有再现实际的尺寸比例,而是应当用于图解各种实施例的原理。在下文中参考以下附图描述各种实施例。

图1示出了具有硬件安全模块的数据处理装置。

图2示出了具有多个硬件安全模块的数据处理装置。

图3更详细地示出了硬件安全模块,该硬件安全模块例如对应于图2的硬件安全模块之一。

图4示出了可以将一个或多个委托外包给另外的硬件安全模块的硬件安全模块。

具体实施方式

以下详细描述参考附图,所述附图示出了细节和实施例。这些实施例被详细描述,使得本领域技术人员能够执行本发明。另外的实施方式也是可能的,并且在不脱离本发明的主题的情况下,可以在结构方面、逻辑方面和电气方面更改这些实施例。不同的实施例不一定是相互排斥的,而是不同的实施方式可以相互组合,从而产生新的实施方式。在本说明书的范围中,术语“与…连接”、“连接到”以及“耦合”用于描述直接连接和间接连接二者、直接连接或间接连接以及直接耦合或间接耦合。

所谓的硬件安全模块(HSM)通常用于以下领域:其中发生与安全相关的事务,如秘密数据或不允许伪造或更改的数据的交换。

图1示出了具有硬件安全模块(HSM)101的数据处理装置100。

硬件安全模块101是计算机系统102(例如服务器-计算机或个人计算机或移动数据处理设备)的外围设备,所述硬件安全模块经由通信连接103与该计算机系统连接。硬件安全模块101可以设置在计算机系统102内部或者是外部设备。根据情况,通信连接103可以是例如计算机总线或经由计算机网络的连接。

HSM 101的任务是在安全环境中执行密码操作。计算机系统102可以经由通信连接103以消息的形式向HSM 101发送用于执行密码操作的委托104,HSM 101借助于与通信连接103相对应的通信接口105接收该委托(即,在这种情况下该通信接口作为接收器工作)。

HSM 101处理委托104。为此,HSM 101具有密码单元106,该密码单元106具有诸如处理器(CPU)107的数据处理组件和存储器108以及可能的其他数据处理组件。在处理了委托104之后,HSM 101借助于其通信接口105将处理109的结果108发送到计算机系统102。

HSM 101可以执行各种密码操作并为此实现各种密码算法,例如

•非对称密码方法,例如RSA(加密或签名)、Diffie-Hellman密钥更换、ECC(Elliptic Curve Cryptography,椭圆曲线密码学)、ECDSA(Elliptic Curve DigitalSignature Algorithm,椭圆曲线数字签名算法)

•对称的加密和解密:AES(Advanced Encryption Standard,高级加密标准)、DES(Data Encryption Standard,数据加密标准)、Triple-DES、IDEA(International DataEncryption Algorithm,国际数据加密算法)

•密码散列函数,如SHA-l(Secure Hash Algorithm-1,安全散列算法-1)

•产生随机数、密钥和PIN(个人标识号;即是物理的又是确定性的)。

根据情况,结果109包含例如经过加密或解密的数据、经过签名的数据、散列值、密码密钥(或密钥对)、PIN、随机数或其中的多个。

使用HSM 101时的安全目标典型地是执行密码操作的机密性和真实性。这些安全目标是通过用于HSM 101的专门的基于硬件的安全机制实现的,例如传感器和芯片屏蔽(例如,防止从芯片背侧对芯片进行物理攻击)。然后可以免除对例如计算机系统102的其他组件的硬件保护。因此,这些安全目标的实现典型地只能通过密码协议和其安全锚点位于密码单元中的机制来得到保证。

HSM 101特别是可以具有用于安全地管理HSM 101和由其存储的数据(例如密码密钥)的广泛功能。对此的示例是通过硬件令牌(例如,借助于芯片卡或安全令牌)来认证操作员和管理员,基于多眼原理的访问保护(例如,需要来自n个人的访问k),数据(如密钥和配置数据)的加密备份和HSM 101的安全克隆。

HSM通常被设计为具有固定功能范围、固定配置和设定计算能力的单个服务器。对配置的更改典型地需要复杂的手动过程,以排除对相应设备的操纵。对所述功能范围的更改典型地伴随着固件升级,该固件升级同样通过手动过程来进行。这样的HSM的性能在其整个使用寿命期间都不能更改,而必要的性能提升只能通过集成其他相同类型的HSM来实现,所述相同类型的其他HSM的管理和负荷分发必须通过基础设施进行。

因此根据各种实施方式提供了一种HSM,其提供了通过添加其他空闲的HSM来动态地吸收过载(由于大量委托或各个复杂的委托)的可能性。在处理了过载后,再次释放附加的HSM。

图2示出了具有多个硬件安全模块(HSM)201、202、203的数据处理装置200。

在该示例中设置了三个HSM 201、202、203,但是也可以仅设置两个或更多数量的HSM。

HSM 201、202、203经由通信连接204彼此连接,例如完全地或仅部分地或根据诸如环形拓扑的另外的拓扑。

在该示例中,HSM 201、202、203例如经由计算机网络207与多个计算机系统204、205、206连接。然而,它们也可以至少部分地设置在计算机系统204、205、206中并且经由计算机系统204、205、206之间的通信连接彼此连接。HSM 201、202、203彼此之间以及HSM 201、202、203与计算机系统204、205、206之间的通信连接例如是对应的计算机总线或网络连接。

每个HSM 201、202、203例如具有以上针对HSM 101描述的功能和机制。特别地,每个HSM 201、202、203为密码操作的执行提供安全环境。为此,每个HSM 201、202、203为密码算法的执行提供硬件保护,例如使用秘密的密码密钥。

根据各种实施方式,每个HSM 201、202、203可以由不同的计算机系统204、205、206使用,即接收和处理来自不同(例如所有)计算机系统204、205、206的委托。例如,不同的计算机系统204、205、206对应于不同的客户并且每个HSM 201、202、203可以由不同的客户使用。这也称为多租户能力(或英语:Multi-Tenancy)。在此,客户(或计算机系统204、205、206)可以占用HSM 201、202、203并且随时再次释放该HSM。在进行了释放后,另外的客户可以使用该HSM。

根据一个实施方式,支持HSM 201、202、203的可扩展性。这意味着在需要时,每个HSM 201、202、203都可以在运行期间重新配置一个或多个其他HSM 201、202、203并且可以使用当前委托来支持处理。由此使得复杂委托的自动并行化成为可能。HSM 201、202、203之间的通信在此可以基于不需要中央服务器或上级软件层的受保护的对等方案。该通信例如特别是受到保护,并且加密的安全性同样可以是可扩展的。该通信可以附加地分为不同的、独立的会话(根据秘密共享原理)。在这种情况下,想要获取关于该通信的信息的攻击者必须成功攻击这些会话中的每一个会话。

在请求者(即发送委托的计算机系统204、205、206)和HSM 201、202、203之间设置安全通信。例如经由安全通信信道实现来自和去往HSM 202、202、203的通信。这可以包括用户概念、访问控制和事务认证。

根据一个实施方式,每个HSM 201、202、203具有用于输入的委托的安全队列。所述队列受到保护以免受可能的攻击。除了机密性之外,还保证委托的真实性、完整性和以正确顺序(例如与委托的输入相对应地)正确处理委托。还可以在HSM中设置安全的内部路由。

在过载的情况下,每个HSM 201、202、203可以应用向一个或多个另外的HSM 201、202、203的负荷分发,即,将一个或多个委托外包给一个或多个另外的HSM 201、202、203。在此,HSM 201、202、203可以将挂起的负荷(例如,其队列中的委托)重新引导至已经可用并对应配置的其他HSM 201、202、203。在此,该HSM确保机密性、真实性和完整性。

如参考图1所描述的,每个HSM 201、202、203是借助于基于硬件的安全预防措施来被保护免受逻辑和物理攻击(特别是还有侧信道攻击)的设备。特别地,HSM 201、202、203可以是由相应的(单独的)硬件实现和保护的单独的设备。如果HSM 201、202、203识别出违反安全预防措施的攻击(例如,借助于对应的传感器),如以暴力打开HSM 201、202、203的壳体,则例如可以进行规定,HSM 201、202、203完全删除存储在该HSM中的所有安全相关信息,例如密码密钥。

关于由HSM实现的密钥管理,每个HSM 201、202、203例如可以导入待使用的(密码)密钥并且将它们内部存储在安全区域中。该HSM可以检查每个密钥的真实性和完整性。该HSM可以附加地针对每个密钥存储元数据,所述元数据例如说明用于所述密钥的密码算法、密钥用途等。如果存在这样的元数据,则HSM 201、202、203在每次使用密钥之前检查,在这种情况下其基于所述元数据来检查所述密钥的授权使用。

在每个HSM 201、202、203中可以绑定不同的密码硬件。例如,可以在密码单元106中使用专用硬件和/或一个或多个协处理器以进行高效和安全的处理。密码单元106可以针对待使用的相应密码算法进行了优化,并且例如仅实施所需要的方法,即放弃对未使用方法的支持。

HSM 201、202、203可以支持它们的状态(例如随时)由外部服务检查,例如由计算机系统201、202、203之一检查(在英语中称为:remote Attestation,远程证明)。该检查是以密码保护的方式进行的,例如通过挑战-应答协议。

HSM 201、202、203可以支持密钥撤销(英语:Key Revocation)。例如,HSM 201、202、203检查密钥元数据中的到期日期,并且如果该密钥已经到期则丢弃该密钥。这也可以借助于具有时间有限的有效性的签名来进行。由HSM 201、202、203使用的整个密钥联合体也可以被时间有限地签名。于是该联合体的各个密钥的有效性取决于所述签名的有效性。例如,一个或多个密钥必须不时被重新签名以保持有效签名。如果所述签名的有效性已到期,即已超过对应日期,则HSM 201、202、203拒绝所述一个或多个密钥的使用。由于密钥只能在唯一的HSM 201、202、203内使用,因此可以通过这种方式实现撤销。

替代于使用单独的硬件,HSM 201、202、203也可以在公共设备中实现。例如,一个计算机系统实现多个HSM 201、202、203。在这种情况下,HSM 201、202、203可以被看做由所述计算机系统提供的HSM服务的虚拟HSM 201、202、203,或者也可以被看做多个HSM实例。例如,HSM 201、202、203的组件(如密码单元106)由公共处理器实现。然而,所述计算机系统具有硬件保护措施,即通过硬件保护的处理环境,以实现HSM 201、202、203,并且各个HSM201、202、203的域正如在单独硬件的情况下那样相互保护,例如使得秘密数据不会以明文形式离开HSM 201、202、203的域。

根据一个实施方式,HSM 201、202、203使得可以从外部进行灵活的操控。HSM 201、202、203的输入是具有处理所需要的所有参数的委托104(例如,针对用户之间待保护的事务)。可以独立于HSM 201、202、203的设计选择确切的规格。HSM 201、202、203的输出108是处理所述委托的结果并且还可以包含表明所述委托是否被成功处理或是否发生错误的状态。在一个实施方式中,出于安全原因,准确的错误细节不经由接口105与结果108一起发送,而是可以通过监视服务或日志记录服务加以查询。出于安全原因,可以保护所述状态以防止未经授权的读取。

下面描述HSM 201、202、203的架构的示例。

图3示出了HSM 300。

HSM 300具有管理单元301,该管理单元包含整个系统(即整个HSM 300)的控制逻辑。该控制逻辑尤其是控制HSM 300内的整个通信,但也控制与外部世界,即诸如另外的HSM201、202、203和计算机系统204、205、206的外部设备的通信。

为了临时存储输入的委托,HSM 300具有队列302。在那里存储经过彻底检查后输入的委托(例如针对事务)。取决于系统的特性,可以使用FIFO(先进先出)队列、随机队列或具有优先级列表的队列。

HSM 300的会话管理单元(英语:Session Handler)303打开会话以处理委托。会话可以提供机密和经过认证以及双向的通信,例如与另外的HSM的通信。不同的会话是相互独立的,从而如果一个会话被破坏,它不会影响另外的会话。

HSM 300还包含用于参数的存储器304。每个HSM 201、202、203具有参数集。这些参数包括:

•功能参数:功能参数包括与HSM进行可靠通信所需要的所有参数。例如,功能参数包括诸如HSM的IP地址的值、所使用的通信协议的说明等。这些参数不一定是安全相关的。

•用于管理的参数:为了管理需要特定的功能和对HSM的访问。这些参数例如包括HSM管理员的访问数据(英语:credentials,证书)。这些参数与安全相关并受到对应的保护。

•用于定义接口的参数:HSM可以被配置为提供、有限地提供或根本不提供特定的服务。该配置可以静态进行,即通过固定的规则和标准。然而,该配置也可以动态进行,例如,取决于当前会话。

•用于内部保护的密钥:例如为了相对于另外的HSM进行认证,HSM使用诸如密钥材料和属性证书的秘密数据。这些数据是安全地产生的,安全地输入到HSM中并安全地存储在那里。对这些数据的访问只能通过HSM内部的协议进行。这些参数与安全相关并对应地受到保护。

•用户密钥:根据使用场景,在HSM中使用用户密钥。根据具体使用的密码方法,确保私钥的机密性和所有密钥的真实性。

HSM 300具有作为核心的密码单元305。密码单元305执行各种密码方法。为了保护诸如密钥的敏感数据,通过基于硬件的保护措施来保护密码单元305。除了物理安全之外,还确保了所述密码方法的正确和高性能实施和执行。密码单元305的全部内容(即存储在密码单元305中用于处理的数据)是与安全相关的并且通过对应的基于硬件的保护措施来加以保护。

HSM的API(Application Programming Interface,应用编程接口)包装器306可以将定义的用户事务转换为特定于硬件的命令。从而可以使用不同的密码单元进行运行。

HSM 300还具有密钥管理单元306,该密钥管理单元存储和管理要用于特定功能(特别是所执行的密码方法)的密钥。除了可靠地存储密钥外,密钥管理单元还支持诸如更新密钥的功能,例如定期更换密钥或响应于对应的触发器进行撤销,即将密钥声明为无效,以及不可恢复地删除密钥的安全删除。

日志记录单元307(Logging单元)记录在HSM 300中执行的操作的日志。在此,该日志不包含诸如密钥的机密数据。保护日志条目的完整性和真实性。可以设置对该日志的导出以用于外部分析和存储,例如通过借助于日志服务的访问。

监视单元308监视HSM 300的其余组件的状态。从而所述监视单元例如检查日志记录单元307的日志的真实性和完整性、密码单元305的状态和队列302的状态。在诸如密码单元305泄露的关键状态情况下,监视单元发送消息到可配置的接收器(例如通过网络、无线电网络、电话网络或卫星)以进行外部监视309。用于外部监视的设备309还可以借助于所述监视单元从外部查询关于HSM 300的状态的信息。

为了与另外的设备(例如另外的HSM 201、202、203和计算机系统204、205、205)通信,HSM 300具有通信接口310。通信接口310设置有防火墙,该防火墙调控HSM 300与另外的设备的通信。从而例如可以抵御诸如DoS(Denial of Service,拒绝服务)攻击的基于网络的攻击。

HSM 300的各种功能单元,如管理单元301、会话管理单元303、API包装器306、密钥管理单元306、日志记录单元307、监视单元308和通信接口310可以由一个或多个经过编程的处理器以及必要时对应的存储器(以及对应地视为逻辑组件的组件)实现或也可以通过硬连线的电路实现。

例如,管理单元301决定将委托外包给另外的HSM。为此,所述管理单元例如检查队列的状态,并且如果队列的填充水平高于预给定的阈值,则决定应当将委托外包。管理单元301可以例如通过访问存储器304找出存在哪些另外的HSM以及如何能够达到它们。例如,为此在存储器304中存储对应的信息(例如,另外的HSM的IP地址或TCP地址)。

HSM 300使用各种对象,例如以下对象的一个或多个

•会话对象:为每个会话创建会话对象并且所述会话对象包含以下数据

o会话ID:所述会话的唯一标识符。但是,唯一性不是安全特征。

o会话密钥:所述会话的唯一机密密钥。可以从该密钥中导出例如用于各种保护目标的工作密钥。

•证书,例如根证书HSM-AUTH-ROOT-ZERT,用于检查真实性证书链,例如为了对HSM进行相互认证。

•密码密钥,例如用于证明HSM 300的真实性的机密密钥HSM-AUTH-KEY。

•DH(Diffie-Hellmann)参数,例如

O DH生成器:DH组的生成器

O DH组参数:DH组的参数(例如模块、EC(椭圆曲线)、...)。

下面描述用于HSM 300的组件的过程和协议。除了所需要的功能外,这还包括用于实现诸如机密性、完整性、真实性、可用性和责任/不可否认性的保护目标的具体措施。

用户借助于计算机系统102向HSM 300发送委托104以进行处理。委托除了命令的描述之外还包含所有必要的参数和数据。

队列302负责管理输入的委托。根据一个实施方式,实现了先进先出方案。替代地,也可以实现基于独立委托的优化策略。根据一个实施方式,所述队列没有在HSM 300的安全硬件区域中存储和处理。相反,上述保护目标是通过适当的密码措施来得到确保的。

用于将委托加入队列302的操作(入队操作)将新委托纳入队列302中。出于安全原因,通过例如以下对应的措施来追求上述安全目标:

•机密性,即不允许通过分析激活的队列来确定关于委托内容的信息。为此,每个委托都加密地存储在所述队列中,并且每个响应(例如结果109)都加密地传输到发送方。

•真实性,即只允许接受来自经过认证的源的委托。为此,仅接受经过认证的委托。此外,将关于接受委托104的经过认证(即经过签名)的确认发送到委托源(计算机系统102)并且相对于所述委托源来认证响应109。

•可用性,即队列302不允许作为“单点故障”危及由HSM 300提供的服务的可用性,例如由于故障或过载。为此,可以冗余地存储队列(例如,借助于通过诸如多个HSM的多个对等体的复制)。

•责任/不可否认性。为此向所述委托源发送关于接受委托的经过认证(经过签名)的确认。此外,日志记录单元307在委托日志中设置经过认证的条目。

从队列302中移除委托的操作(出队操作)将委托发送到HSM 300的安全硬件以进行处理并从队列302中移除该条目。在此不需要用于机密性、完整性和真实性的其他机制。为了可用性,可以冗余地存储队列302(例如借助于通过多个诸如HSM的对等体的复制)。通过冗余实例复制出队操作。为了责任/不可否认性,日志记录单元307在日志(例如日志文件)中登记委托的执行。该日志例如包含委托方、纳入队列的时刻、从队列中移除的时刻以及关于流程链接的信息,例如关于与执行的另外的操作(例如交叉引用)的关联的信息。

为了将负荷分发到另外的HSM 201、202、203上,HSM 300搜索另外的HSM 201、202、203并且首先验证所述另外的HSM 201、202、203是有效的HSM。为此,HSM(以下称为经过验证的HSM)和所述另外的HSM(以下称为目标HSM)使用HSM验证操作(例如,称为“验证SFC-HSM”)。该操作验证目标HSM是有效的HSM。在此,没有公开关于谁当前“拥有”目标HSM(所有权)的信息,即哪个客户或哪个计算机系统204、205、206当前占用目标HSM。

假设如上所述目标HSM配备有(机密)密钥HSM-AUTH-KEY。目标HSM还具有对应的证书HSM-AUTH-ZERT,该证书证明密钥HSM-AUTH-KEY的真实性。该证明是在全局HSM-AUTH-ROOT-ZERT中结束的证书链的一部分。经过验证的HSM具有证书HSM-AUTH-ROOT-ZERT。

如果HSM验证操作失败,则经过验证的HSM不确信(即,未成功验证)目标HSM是有效的HSM。如果HSM验证操作成功并且作为结果产生了会话对象,则经过验证的HSM确信(即成功验证)目标HSM是有效的HSM。所述会话对象使得可以在经过验证的HSM和目标HSM之间建立安全的通信会话。

HSM验证操作的输入是目标HSM的地址(例如TCP地址)。如果验证失败,则HSM验证操作的输出是“错误”。如果验证成功,则返回会话对象。

出于安全原因,例如通过以下对应措施追求上述安全目标:

•机密性:规定外部人员无法看到关于机密密钥材料、HSM的设置或关于谁拥有HSM(所有权)的信息。这例如是通过以下措施实现的:

o在经过验证的HSM和目标HSM之间用于验证的同步协议使用合适的加密措施。

o为此使用的密钥基于预先个性化的密钥集。

o同步协议是特定于方向和基于会话的,并且具有前向秘密特性。

•真实性:为了验证而在经过验证的HSM和目标HSM之间交换的所有消息的数据的真实性通过签名(或替代地通过MAC(Message Authentication Codes,消息认证代码))得以确保。针对每个消息直接在获得后检查真实性。如果检查失败,则中止HSM验证操作(带有错误消息)。

•可用性:不适用。可以通过冗余地存储队列302来实现输入的委托的可用性。

•责任/不可否认性。为此向委托源发送关于接受委托的经过认证(经过签名)的确认。此外,日志记录单元307在委托日志中设置经过认证(签名)的条目。

表格1示出了以伪代码表示的HSM验证操作的流程示例。在此,V表示经过验证的HSM,P(代表检验者)表示目标HSM。如果只说明了源而没有说明目标,则是在源中执行的操作,否则是在通过箭头“→”说明的方向上传输消息。箭头“←”表示用该箭头右侧的内容形成该箭头左侧的消息。

表格1

在(2)中,HSM-AUTH-ZERT代表HSM-AUTH-ZERT和证书链中的所有其他证书。如果从(4)到(6)的验证成功,则执行(7)到(9)以进行DH密钥更换。

根据一个实施方式,为了进行负荷分发还设置以下操作,利用这些操作经过验证的HSM验证目标HSM是有效HSM并且该目标HSM由具体的客户或计算机系统204、205、206拥有(所有权),即当前由特定客户或计算机系统占用。例如,该操作称为“验证客户HSM”。

补充地,可以设置称为“isFree”操作的操作,借助于该操作,HSM可以确定目标HSM是否空闲(即当前未被使用)。

对于“验证客户HSM”操作,假设目标HSM配备有(机密)密钥HSM-AUTH-KEY。目标HSM还具有对应的证书HSM-AUTH-ZERT,该证书证明密钥HSM-AUTH-KEY的真实性。该证明是在全局HSM-AUTH-ROOT-ZERT中结束的证书链的一部分。经过验证的HSM具有证书HSM-AUTH-ROOT-ZERT。

由经过验证的HSM检查的所有权是例如目标HSM是否与经过验证的HSM本身一样由同一个客户拥有。

如果目标HSM已被具体的客户拥有,则目标HSM具有包括(针对客户的)所有个人设置和密钥的配置数据集。每个HSM都实现了一种算法,该算法创建了关于所述配置集的密码校验和。所述校验和是明确的、抗冲突的,并且不允许推断出配置的内容。

如果经过验证的HSM向目标HSM调用对应的校验和以验证所述目标HSM是否被具体的客户占用,则为此例如在双方都设置随机数:在经过验证的HSM一方用于防止重放攻击,而在目标HSM一方用于确保机密性。不同算法输出的比较不应允许推断出例如相同或不同。

如果客户HSM验证操作失败,则经过验证的HSM不确信目标HSM是被相应拥有的有效HSM。如果HSM验证操作成功并且作为结果产生了会话对象,则经过验证的HSM确信目标HSM是被相应拥有的有效HSM。所述会话对象使得可以在经过验证的HSM和目标HSM之间建立安全的通信会话。

客户HSM验证操作的输入是目标HSM的地址(例如IP地址)。如果验证失败,则客户HSM验证操作的输出是“错误”。如果该验证成功,则返回会话对象。

出于安全原因,例如通过以下对应措施追求上述安全目标:

•机密性:规定外部人员无法看到关于机密密钥材料、HSM的设置或关于谁拥有HSM(所有权)的信息。这例如是通过以下措施实现的:

o在经过验证的HSM和目标HSM之间用于验证的同步协议使用合适的加密措施。

o为此使用的密钥基于预先个性化的密钥集。

o所述同步协议是特定于方向和基于会话的,并且具有前向秘密特性。

o校验和是随机的,从而无法基于日志记录推断出配置的更改。这意味着双方(经过验证的HSM和目标HSM)都在日志流程中引入了随机值,这防止了基于日志记录导出关于目标HSM的内部状态的信息。

•真实性:为了验证而在经过验证的HSM和目标HSM之间交换的所有消息的数据的真实性通过签名(或替代地通过MAC(Message Authentication Codes,消息认证代码))得以确保。针对每个消息直接在获得后检查真实性。如果检查失败,则中止HSM验证操作(带有错误消息)。

•可用性:不适用。可以通过冗余地存储队列302来实现输入的委托的可用性(例如借助于通过多个对等方,即HSM的复制)。

•责任/不可否认性。为此向委托源发送关于接受委托的经过认证(经过签名)的确认。此外,日志记录单元307在委托日志中设置经过认证(签名)的条目。

表格2示出了以伪代码表示的客户HSM验证操作的流程示例。如在表格1中那样,V表示经过验证的HSM,P表示目标HSM。如果只说明了源而没有说明目标,则是在源中执行的操作,否则是在通过箭头“→”说明的方向上传输消息。箭头“←”表示用该箭头右侧的内容形成该箭头左侧的消息。

表格2

在(2)中HSM-AUTH-ZERT代表HSM-AUTH-ZERT和证书链的所有其他证书。如果从(4)到(6)的验证成功,则执行(7)到(9)以进行DH密钥更换。

为了将委托从一个HSM(以下称为源HSM)分发到另外的HSM(以下称为目标HSM),例如出于性能原因可以将源HSM(具体硬件)克隆到目标HSM上,所述源HSM可以为了处理针对特定客户(或计算机系统204、205、206)的委托而被对应地个性化。在此,所有特定于客户的数据、设置和密钥都从源HSM的安全区域发送到目标HSM的安全区域。这里应当注意的是,必须从硬件中导出敏感的密钥材料(这可能与认证有关)。成功执行该操作后,目标HSM等效于源HSM。

所述克隆操作启动克隆过程,所述克隆过程例如包括以下动作:

1.寻找潜在的目标HSM

2.将设置和密钥同步

3.对所述同步进行验证。

出于安全原因,例如通过以下对应措施追求上述安全目标:

•机密性:规定外部人员无法看到关于机密密钥材料、HSM的设置或关于谁拥有HSM(所有权)的信息。这例如是通过以下措施实现的:

o在源HSM和目标HSM之间使用的同步协议使用合适的加密措施。

o为此使用的密钥基于预先个性化的密钥集。

o所述同步协议是特定于方向和基于会话的,并且具有前向秘密特性。

•真实性:

o目标HSM只接受来自经过认证的源HSM的配置。

o目标HSM发送经过认证(即经过签名)的确认。

o源HSM认证(即验证)来自目标HSM的每个响应。

如果用户或计算机系统204、205、206向HSM 300发送委托(例如针对事务),则HSM300根据其负荷或委托的复杂性必要时将负荷分发到一个或多个另外的HSM上。为此,HSM300可以借助于上述验证操作来验证所述另外的HSM(即检查它们的真实性)并且借助于上述克隆操作将其配置转移到所述另外的HSM。

所有活动都由日志记录单元307记录。HSM可以(例如周期性地)检查日志的真实性和完整性。此外,HSM可以(例如周期性地)执行管理单元301和队列302的状态检查。

总之,根据各种实施方式提供了一种硬件安全模块,如图4所示。

图4示出了硬件安全模块400。

硬件安全模块400具有接收器401,该接收器被设置为接收用于执行密码操作的委托。

硬件安全模块400还具有控制装置402,该控制装置被设置为基于硬件安全模块400的委托负荷来决定是否应当外包一个或多个委托。

控制装置402还被设置为,如果应当外包一个或多个委托,则确定用于外包所述一个或多个委托的另外的硬件安全模块403,对所述另外的硬件安全模块403进行认证并请求所述另外的硬件安全模块402处理所述一个或多个委托。

根据各种实施方式,为了避免在通过硬件安全模块(HSM)处理针对密码操作的委托时发生延迟而在多个HSM之间进行负荷分发。为此,已接收了委托的源HSM选择目标HSM,对其进行认证并请求由目标HSM来处理所述委托。通过所述认证,源HSM确保目标HSM是真实的HSM,例如对应受保护的设备,而不是仅伪装成是HSM的攻击者的设备。

通过在多个HSM之间分发负荷,清楚地为用户提供HSM服务而不是提供各个HSM,或者换句话说,实现由各个具有云功能的HSM组成的云。

硬件安全模块400和另外的硬件安全模块402例如具有通信接口,借助于该通信接口,这些硬件安全模块执行认证,并且硬件安全模块400借助于该通信接口请求另外的硬件安全模块402执行一个或多个委托。为了请求委托,硬件安全模块400向另外的硬件安全模块402发送例如所述委托的规范和执行所述委托所需要的数据(例如加密文本和密钥)。硬件安全模块400可以将其配置(即配置数据)复制到另外的硬件安全模块402上(清楚地说是克隆自身)。所述配置数据可以包含执行所述委托所需要的数据(例如密钥)。

下面详细说明各种实施例。

实施例1为如图4所示的硬件安全模块。

实施例2是根据实施例1的硬件安全模块,其中所述控制装置被设置为配置所述另外的硬件安全模块以执行所述一个或多个委托。

实施例3是根据实施例1或根据实施例2的硬件安全模块,其中所述控制装置被设置为将所述硬件安全模块的配置克隆到所述另外的硬件安全模块,以通过所述另外的硬件安全模块处理所述一个或多个委托。

实施例4是根据实施例1至3之一的硬件安全模块,其中所述控制装置被设置为借助于对等通信连接将所述一个或多个委托发送给所述另外的硬件安全模块。

实施例5是根据实施例1至4之一的硬件安全模块,其中所述控制装置被设置为如果所述硬件安全模块的委托负荷高于预给定阈值,则决定应当外包所述一个或多个委托。

实施例6是根据实施例5的硬件安全模块,具有委托队列,其中所述委托负荷是所述委托队列的填充水平。

实施例7是根据实施例1至6之一的硬件安全模块,其中所述控制装置被设置为分配所述另外的硬件安全模块并被设置为在处理了所述一个或多个委托后再次释放所述另外的硬件安全模块。

实施例8是根据实施例1至7之一的硬件安全模块,其中所述控制装置被设置为基于所述硬件安全模块的委托负荷确定应当外包的所述一个或多个委托的数量。

实施例9是根据实施例1至8之一的硬件安全模块,其中所述控制装置被设置为决定将委托外包,直到所述硬件安全模块的委托负荷下降到预给定阈值以下为止。

实施例10是根据实施例1至9之一的硬件安全模块,具有被设置为执行密码操作的密码单元。

实施例11是根据实施例1至10之一的硬件安全模块,其中每个密码操作具有解密、加密、签名和/或签名的验证。

实施例12是根据实施例1至11之一的硬件安全模块,其中所述控制装置被设置为基于由所述另外的硬件安全模块产生的签名来认证所述另外的硬件安全模块。

实施例13是根据实施例1至12之一的硬件安全模块,其中所述硬件安全模块和所述另外的硬件安全模块具有用于执行密码操作的分开的硬件。

根据另一实施例,提供一种硬件安全模块,其具有接收器,所述接收器被设置为接收用于执行密码操作的委托,探测装置,所述探测装置被设置为探测过载,以及外包装置,所述外包装置被设置为在过载的情况下将一个或多个委托外包给另外的硬件安全模块。

尽管已经尤其是参考特定实施方式示出和描述了本发明,但是本领域技术人员应该理解,在不脱离由以下权利要求定义的本发明的精神和范围的情况下,可以对设计和细节进行许多更改。因此,本发明的范围通过所附权利要求确定,并且意图包括在权利要求的字面含义或等效范围内的所有更改。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于处理系统信息的方法和节点

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类