可编程硬件安全模块和可编程硬件安全模块上的方法与流程

文档序号:18745671发布日期:2019-09-21 02:18阅读:173来源:国知局
可编程硬件安全模块和可编程硬件安全模块上的方法与流程

本发明涉及一种可编程硬件安全模块以及一种用于保护密码学的密钥对的私钥的方法和一种用于在可编程硬件安全模块上安全提供密码学的密钥对的私钥的方法。



背景技术:

在工业自动化环境中,出于保护数据安全或验证通信伙伴的目的而需要密码学的安全方法。对于密码学的安全机制而言,密码学的密钥资料是必要的。特别地,使用由私钥和公钥构成的密码学的密钥对。在此,需将相应的私钥保密,将公钥或相关联的数据结构、如数字证书或安全令牌提供给对应的部件以进行处理。关于密钥基础设施的建立,特别是关于密码学的密钥资料的分发,通常在小型自动化设备中不能提供相应的安全基础设施。通常,由于涉及封闭网络的有效规则或由于在本地控制可行性方面的要求而不能使用基于云端的解决方案。

通常已知的是:构建和运行中央的安全基础设施,即所谓的PKI-或安全运算中心。在实践中,这不是在所用应用情景中都可行的。



技术实现要素:

出于上述背景,本申请的目的在于,提供一种安全且可简单实现的分布式安全基础设施。

该目的通过独立权利要求的主题来实现。在从属权利要求中给出有利的设计方案。

本发明涉及一种可编程硬件安全模块,具有

-用于产生密码学的密钥对的应用装置,

-具有主传输密钥的存储区域,

-密钥推导模块,用于利用密钥对专用的推导参数由主传输密钥推导密钥对专用的传输密钥,其中能够将密钥对专用的传输密钥用于对密码学的密钥对的私钥进行加密。

可编程硬件安全模块例如理解为开放的硬件安全模块或也理解为硬件安全模块或Open Hardware Security Module,其允许:在受保护的执行环境中执行现有的商用软件或开源安全软件。在此,能够安装软件包并且以小的耗费来执行软件包。可编程硬件安全模块同时受到保护,例如通过硬件或软件安全机制来保护。在此,执行环境能够借助软件、配置数据或运行时间数据来保护。这种开放的硬件安全模块提供如下可行性:例如在Linux运行时间环境中执行安全性关键的数据和程序代码。此外,能够以较小的耗费实现本地PKI、所谓的公钥基础设施,以用于产生证书。

在硬件安全模块上设有应用装置,借助应用装置可提供用于产生密钥对的应用。其为密码学的密钥对,其中私人的、机密的密钥和公钥形成密钥对。此外,在硬件安全模块上存在具有主传输密钥的存储区域。该主传输密钥或Master Transport-Key设置用于保护私钥。

在硬件安全模块上设有密钥推导模块,用于利用密钥对专用的推导参数推导密钥对专用的传输密钥。现在,密钥对专用的传输密钥可用于对私钥进行加密。每个密钥对使用专用的推导参数,使得密钥对专用的传输密钥在理想情况下为每个密钥对仅产生一次。换言之,用于不同密钥对的全部密钥对专用的传输密钥是不同的。因此,密钥对专用的推导参数是用于密钥对的或密钥对的私钥或公钥的标识。密钥对专用的推导参数例如经由接口提供给可编程硬件安全模块并且存储在存储区域中。

能够以有利的方式构建简单的分布式PKI,以便产生用于目标设备的设备密钥,尤其产生设备证书。所描述的可编程硬件安全模块能够确保:用于保护所产生的私钥的传输密钥以密钥对专用的方式来设计。例如,在这种模块上能够利用脚本和开源软件(例如Open SSL)来简单地产生密钥对(即私钥和配属的证书),并且同时通过利用密钥对专用的传输密钥实现的保护来确保以该方式产生的私钥的安全。

根据一个设计方案,可编程硬件安全模块还具有输出单元,用于将私钥作为加密文件输出。例如,其为所谓的PEM文件,文件格式为privacyenhanced mail certificate(增强保密邮件证书)。尤其输出给如下设备,在该设备上应存储所产生的密码学的密钥对的私钥。也能够使用其他的文件格式来代替PEM文件,例如PKCS#12文件。

根据一个设计方案,可编程硬件安全模块还具有用于产生数字证书的装置,数字证书包括密码学的密钥对的公钥。以有利的方式,直接在产生密码学的密钥对时,尤其作为另外的步骤,一同产生数字证书。优选地,输出数字证书,例如输出给目标设备,以用于将包含于数字证书中的公钥分配给可编程硬件安全模块。特别地,数字证书具有可编程硬件安全模块的标识数据。

本发明还涉及一种相对应的可编程硬件安全模块,具有

-接收装置,用于接收密码学的密钥对的、作为加密文件的私钥以及用于接收数字证书,数字证书包括密码学的密钥对的公钥,

-具有主传输密钥的存储区域,

-密钥推导模块,用于利用密钥对专用的推导参数由主传输密钥推导密钥对专用的传输密钥,其中,密钥对专用的传输密钥能够用于对加密文件进行解密。

以有利的方式,这两个模块(在本发明中为了区分而称为可编程硬件安全模块和相对应的可编程硬件安全模块)共同应用于一个实施变体方案中。在此,相对应的可编程硬件安全模块应用于目标设备侧或现场设备侧,并且其尤其与目标设备通信。这两个安全模块的共同点是根据本发明的密钥推导模块,仅在所生成的密钥对专用的传输密钥的使用中,这两个模块是不同的:可编程硬件安全模块产生密码学的密钥对的要保护的私钥并且能够以有利的方式用于产生利用密钥对专用的传输密钥加密的密钥文件。在另一方面,相对应的可编程硬件安全模块使用同样生成的密钥对专用的传输密钥,例如用于对所获得的密钥文件进行解密并且最后用于提供给目标设备或现场设备,目标设备或现场设备应配备密钥对。

根据审查指南F IV 3.2,对于多个相互补充或共同作用的主题可以撰写相应的独立权利要求。在本文中则涉及这种共同作用的相对应的部件。

例如,在相对应的可编程硬件安全模块上重新对加密的密钥文件进行加密并且以加密的方式提供给目标设备。特别地,为此在目标设备与相对应的且可编程的硬件安全模块之间使用协定的密钥。

根据一个设计方案,相对应的可编程硬件安全模块还具有用于将密钥对专用的传输密钥传输给目标设备的接口。因此,所描述的目标设备包含密钥对专用的传输密钥,以对密钥文件进行解密。在将密钥文件解密之后,随后在现场设备上在需要时存在私钥,以及数字证书,只要该数字证书被传输给目标设备。

根据一个替代设计方案,相对应的可编程硬件安全模块还具有用于将私钥传输给目标设备的接口。例如,该私钥利用尤其在现场设备与相对应的可编程硬件安全模块之间的协定的对称密钥来保护。

本发明还涉及一种用于保护密码学的密钥对的私钥的方法,具有如下步骤:

-在可编程硬件安全模块上产生密码学的密钥对,

-利用密钥对专用的推导参数由主传输密钥推导密钥对专用的传输密钥,

-利用密钥对专用的传输密钥对私钥进行加密。

根据一个设计方案,该方法还包括产生数字证书,该数字证书包括密码学的密钥对的公钥。

本发明还涉及一种用于在相对应的可编程的硬件安全模块上安全提供密码学的密钥对的私钥的方法,该方法具有如下步骤:

-接收作为加密文件的私钥以及包括密码学的密钥对的公钥的数字证书,

-利用密钥对专用的推导参数由主传输密钥推导密钥对专用的传输密钥,其中密钥对专用的传输密钥能够用于对加密文件进行解密。

用于保护私钥的方法和用于在相对应的可编程硬件安全模块上安全提供私钥的方法又共同作用,使得可在彼此对应的设备上执行的这两个方法以符合上述指南中规定的方式作为独立权利要求来被保护。

根据一个设计方案,该方法还包括:

-将数字证书提供给目标设备,

-借助密钥对专用的传输密钥对加密文件进行解密,

-将解密的私钥提供给目标设备。

在该变体中,相对应的可编程硬件安全模块首先将私钥解密,其中相对应的可编程硬件安全模块自身已经可以使用密钥对专用的传输密钥并且将其应用于密钥文件上,以及随后传输密钥对的私钥。该传输优选地又不以明文进行,而是借助于与目标设备约定的密钥、尤其对称密钥来进行,对称密钥经由Diffie-Hellman密钥交换方法来协定。

根据一个设计方案,该方法还包括:

-将数字证书提供给目标设备,

-将加密文件提供给目标设备,

-将密钥对专用的传输密钥提供给目标设备。

在该变体中,相对应的可编程硬件安全模块将密钥对专用的传输密钥传输给目标设备,目标设备随后能自主地解密密钥文件。

根据一个设计方案,相对应的可编程硬件安全模块对目标设备进行验证。为此,例如在相对应的可编程硬件安全模块与目标设备之间进行通信,以便交换目标设备的凭证(Credentials)或标识信息。因此,以有利的方式,被解密的私钥或密钥对专用的传输密钥到目标设备的传输与目标设备的事先验证相结合。

根据一个设计方案,相对应的可编程硬件安全模块产生目标设备专用的密钥,并且将私钥或密钥对专用的传输密钥以利用目标设备专用的密钥保护的方式提供给目标设备。

根据一个设计方案,使用密钥推导函数来推导密钥对专用的传输密钥,至少将密钥对专用的推导参数和主传输密钥作为输入参数被预设给密钥推导函数。例如,将所谓的Key Derivation Function(密钥推导函数)用作为密钥推导函数,例如所谓的HKDF(或,基于HMAC的Key Derivation Function),其中使用所谓的HMAC哈希函数,或者所谓的PBKDF2(或,基于密码的Key Derivation Function 2),一种用于由密码推导密钥的标准化的函数。这些为示例而提出的函数一方面预设了主传输密钥(或,MasterTransport Key),主传输密钥形成密钥推导的基础。另一方面,还将密钥对专用的推导参数预设为输入参数或推导参数。

根据一个设计方案,由数字证书的证书信息、尤其公钥、设备标识符、或数字证书的哈希值形成密钥对专用的推导参数。

例如,由与私钥相关联的数字证书的信息形成密钥推导参数。与私钥相关联的数字证书例如是X.509-证书或JSON令牌。推导参数例如能够利用所产生的密钥对的公钥或利用设备标识符,例如利用序列号来具体地形成,设备标识符连同密钥请求消息一起传输给可编程硬件安全模块或相对应的可编程硬件安全模块。此外,能够使用所产生的证书的其他属性、例如证书的签名、证书的序列号或出自证书扩展的附加属性。此外,能够使用整个证书,或整个证书的哈希值,例如借助函数SHA256产生的哈希值。

在形成推导参数中所使用的参数能够分别被直接地使用,或能够分别借助于哈希函数根据这些数据来形成哈希值,哈希值随后作为推导参数用于密钥推导函数。附加地,对于全部所提出的实例,还能够可选地采用由可编程硬件安全模块或相对应的可编程硬件安全模块本身选择的推导参数。这在产生密钥对专用的传输密钥时能够提供额外的安全性。推导参数通过推导参数形成函数(或,Derivation Parameter construction Function DPCF)形成。

以有利的方式,知晓主传输密钥的另一节点能够单独地基于证书或证书的部分信息来确定密钥对专用的传输密钥。

通过所描述的要求保护的设备和方法的共同作用实现:以小的耗费以安全的方式实现设备密钥的产生和加载。

模块和装置能够以硬件技术和/或也以软件技术来实施。在硬件实施方案中,相应的单元能够设计为设备或者设计为设备的一部分,例如设计为计算机或处理器或微处理器。在软件实施方案中,相应的装置或相应的模块能够设计为计算机程序产品、函数、例程、程序代码的一部分或者可执行的对象。处理器应理解为用于基于计算机进行数据处理的电子电路,例如CPU。其能够为计算机的CPU或微芯片的微处理器。

附图说明

下面,根据实施例借助附图详细阐述本发明。附图示出:

图1:根据本发明的第一实施例的可编程硬件安全模块的示意图;

图2:根据本发明的第二实施例的相对应的可编程硬件安全模块的示意图;

图3:根据本发明的第一实施例的用于保护私钥的方法的示意框图;

图4:根据本发明的第二实施例的用于安全提供私钥的方法的示意框图。

具体实施方式

图1示出可编程硬件安全模块10,其能够与工业计算机PC交换数据。可编程硬件安全模块10例如是所谓的开放的硬件安全模块(或,OpenHardware Security Module)或者工业安全模块。在可编程硬件安全模块上例如设置有应用装置11,在应用装置上例如安装应用,应用产生不对称的密钥对。因此,密码学的密钥对是由公钥和私钥形成的对。例如,应用借助用于产生数字证书C的装置来颁布该证书C。

计算机PC在一个情景中应当用于为目标设备、例如现场设备配备密码学的密钥资料,该计算机将目标设备的标识符或标记ID传输给可编程硬件安全模块10。可编程硬件安全模块使用该信息来产生用于目标设备的密钥对。数字证书C例如存储在计算机PC上,以便其随后能够被传递给现场设备。此外,在可编程硬件安全模块10上设有存储区域12,存储区域具有主传输密钥MK(或,Master Transport Key)。该主密钥MK优选能被受保护地存储。例如设有防篡改措施,以便防止需保持机密的主密钥MK受到未经允许的读取或篡改。在可编程硬件安全模块10上还设有密钥推导模块13,密钥推导模块利用密钥对专用的推导参数DP由主传输密钥MK推导出密钥对专用的传输密钥TK。主传输密钥MK在内部从存储区域提供给密钥推导模块13。在一个实施方式中,密钥对专用的推导参数DP能够设置在可编程硬件安全模块10上,或者可替代地从外部提供给密钥推导模块13。推导出的密钥对专用的传输密钥TK在可编程硬件安全模块10上可用并且尤其以有利的方式用于对密码学的密钥对的所产生的私钥进行加密。例如,产生加密文件KF,并且在可编程硬件安全模块10的输出单元14处将加密文件提供给计算机PC。

图2示出相对应的可编程硬件安全模块20,其能够有利地与结合图1描述的计算机PC相互配合使用。此外,相对应的可编程硬件安全模块20与现场设备FD或目标设备接触。特别地,相对应的可编程硬件安全模块20能够将数据传输给现场设备FD。这经由接口24、25来进行。相对应的可编程硬件安全模块20具有用于接收私钥的接收装置21,私钥从计算机PC以加密或未加密的形式接收。特别地,结合图1描述的计算机PC将加密的密钥文件KF传输给相对应的可编程硬件安全模块20。同样,以有利的方式,根据第一实施例的描述存储在计算机PC上的证书C现在由计算机PC传输给接收装置21。此外,在相对应的可编程硬件安全模块20上还设有具有主传输密钥MK的存储区域22。

对于根据图1阐述的可编程硬件安全模块10应与根据图2描述的相对应的可编程硬件安全模块20共同作用的情景而言,在这两个模块上应存储相同的主传输密钥MK。然后,能够以有利的方式借助于设置在相对应的可编程硬件安全模块20上的密钥推导模块23利用密钥对专用的推导参数DP由主传输密钥MK推导出相同的密钥对专用的传输密钥。为此,所设置的密钥推导函数也必须与可编程硬件安全模块10上的密钥推导函数一致,以及所使用的密钥对专用的推导参数DP也一致。如果密钥对专用的推导参数DP直接在相应的模块上由公钥或公钥的数字证书生成,那么在这两个模块上分别可生成相同的密钥对专用的推导参数DP。为了该目的,其他使用的参数以及用于生成推导参数的函数是相同的。例如,在这两个模块上通过如下方式产生密钥对专用的推导参数DP:产生整个数字证书C的哈希值。这在以下情况下是有利可行的:在这两个模块上都提供有数字证书C的信息(不论其通过自身生成或通过从计算机PC接收)并且使用一致的哈希函数。

借助在相对应的可编程硬件安全模块20上生成的密钥对专用的传输密钥TK,例如能够对所接收的加密文件KF解密。设置用于目标设备FD的密钥对的私钥随后在相对应的可编程硬件安全模块20上被提供并且例如能够经由接口25传输给现场设备FD。随后,在现场设备上提供私钥Kpriv。证书C也以有利的方式传输给目标设备,使得密钥材料因此以可靠的途径存储在现场设备FD上。同样有利的能够是:经由接口24将加密文件KF和所生成的密钥对专用的传输密钥TK传输给现场设备FD。在现场设备FD上随后能够进行密钥文件KF的解密,使得最终也在该变体中在现场设备FD上存在私钥Kpriv。

当在现场设备FD上需存储密钥资料、即证书和所属的私钥时,这两个模块以有利的方式应用于制造中或在现场设备投入运行时使用。有利地,设有不同的接口以输出密钥对专用的传输密钥TK和具有私钥KF的加密文件,使得这两个信息以不同的途径输出。例如,设有显示屏以及另一输出单元,例如以有线连接的方式设置。

在一个变体中,应用的所有密钥,例如主传输密钥MK和证书实例的用于对证书签名的签名,在应用中被固定地编码。此外,在应用中还能够固定地预设要颁发的证书C的区域,使得在使用应用时仅必须传输目标设备FD的设备ID,以便为因此被识别的现场设备FD创建数字证书C。可替代地,应用中的参数能够通过配置消息来设定。在通过激活命令激活应用之后,它们不可再被改变。

尤其有利地,在相对应的可编程硬件安全模块上对加密的密钥文件KF解密,其中密钥文件以加密的方式包含私钥,并且利用专用于目标设备DF的密钥重新加密。例如,该密钥借助在相对应的可编程硬件安全模块20与目标设备DF之间的Diffie-Hellman密钥交换来动态地协定。如此重加密的密钥文件DF传输给目标设备DF并且通过目标设备DF解密。特别地,为了该传输而使用单独的通信接口、例如JTAG或SPI。

图3示意性示出在根据第一实施例的用于保护密码学的密钥对的私钥的方法中的方法步骤。在可编程硬件安全模块上、例如根据图1在第一实施例中阐述的可编程硬件安全模块上,产生101密码学的密钥对。此外,利用密钥对专用的推导参数由主传输密钥推导102密钥对专用的传输密钥。此外,利用密钥对专用的传输密钥对具有私钥的文件加密103。在此,步骤101和102能够彼此分开地并且尤其以可变的顺序执行。

附加地并且同时或时间上随步骤101之后地,产生101'包括密码学的密钥对的公钥的数字证书。

图4描述用于在相对应的可编程硬件安全模块上、尤其在根据图2在第二实施例中阐述的相对应的可编程硬件安全模块上,安全提供密码学的密钥对的私钥的方法。接收201作为加密文件的私钥以及包括密码学的密钥对的公钥的数字证书。此外,利用密钥对专用的推导参数由主传输密钥推导202密钥对专用的传输密钥。在此,步骤201和202能够彼此分开地且尤其时间上可变地、时间上并行地或时间上错开地执行。

此外,将数字证书提供203给目标设备。在一个变体中,借助密钥对专用的传输密钥对加密文件进行解密204,以及将解密的私钥提供205给目标设备。在此,这两个步骤204和205能够相对于步骤203在时间上错开地或者同时地执行。代替步骤204,也能够将加密文件提供204'给目标设备并且将密钥对专用的传输密钥提供205'给目标设备。在此,这两个步骤204'和205'能够相对于步骤203在时间上错开地或同时地执行。步骤204'和205'又能够以任意的顺序执行。

尽管在细节上通过实施例详细地阐述和说明了本发明,然而本发明不局限于所公开的实例,并且本领域技术人员能够从中推导出其他变体,而没有脱离本发明的保护范围。

利用所描述的设备和方法构建分布式PKI,借助分布式PKI能够产生设备密钥和设备证书,并且它们能够被受保护地提供给目标设备。在此,扮演核心角色的是密钥对专用的传输密钥,其用于保护所产生的且要传输的私钥。密钥对专用的传输密钥,通过利用密钥对专用的推导参数,从主密钥出发的密钥推导来结合于分别为目标设备所设的密钥对。由此,以小的耗费且以安全的方式实现设备密钥的产生和加载。

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