掌桥专利:专业的专利平台
掌桥专利
首页

密码模块和针对其的运行方法

文献发布时间:2023-06-19 09:44:49


密码模块和针对其的运行方法

技术领域

本发明涉及一种密码模块。此外,本发明涉及一种针对这样的密码模块的运行方法。

背景技术

从DE 10 2009 046436 A1中,已知了一种加密的硬件模块。

发明内容

本发明的任务是,说明一种具有提升的实用性的密码模块。

在开头所提到的类型的密码模块的情况下,该任务通过如下方式来解决:密码模块构造用于至少临时控制至少一个计算装置的运行;其中密码模块构造成,检验如下存储装置的至少一个存储区域:计算装置可访问所述存储装置;并且密码模块构造成,根据所述检验来控制至少一个计算装置的运行;其中所述密码模块构造成,从计算装置接收到第一控制指令,所述第一控制指令表征存储装置的至少一个要检验的存储区域;并且所述密码模块构造成,检验通过第一控制指令表征的存储区域。由此,有利地给出了如下可能性:例如根据相对于可预先给定的内容的偏差,检验存储区域的内容。经此,有利地例如可以阻止,通过计算装置执行不安全的或被攻击者所危害的计算机程序。进一步有利地,借助第一控制指令,可以将该要检验的存储区域或这些要检验的存储区域(例如地址信息,要检验哪些存储块)用信号通知给密码模块,使得例如不必预先配置这些信息。更确切而言,动态地(例如在密码模块或计算装置运行时),借助第一控制指令,可以用信号通知该要检验的存储区域或这些要检验的存储区域,由此进一步提升灵活性。

在优选的实施形式中,存储装置可以布置在密码模块和计算装置外部。可是,在其他优选的实施形式中,存储装置也可以集成到计算装置中。在还有其他优选的实施形式中,有利地也可以设置有片上系统(英语:system-on-a-chip,SoC),所述片上系统具有计算装置、存储装置和至少一个根据这些实施形式的密码模块。

在其他优选的实施形式中,计算装置可以具有至少一个计算核和/或微处理器和/或微控制器或者这一类的。

在其他优选的实施形式中设置了,密码模块构造成,在使用基于密钥的消息认证码CMAC(Cipher-based Message Authentication Code)的情况下,执行对至少一个存储区域的检验。由此,能够实现特别高效的检验。涉及CMAC方法的示例性设计方案的互联网出版物例如在

在其他优选的实施形式中设置了,密码模块具有优选地集成到密码模块中的存储单元,用于存储针对至少一个存储区域的至少一个参考值和/或参考布局。在其他优选的实施形式中,参考值例如可以表示针对可预先给定的存储内容的CMAC值,针对所述可预先给定的存储内容的CMAC值例如与如下CMAC值是可比较的:所述CMAC值在通过密码模块检验至少一个存储区域时已被测定。假如所测定的CMAC值与参考值有偏差,则可以推断出经过检验的存储区域的存储内容的不容许的改变。

在其他优选的实施形式中设置了,密码模块构造成,根据参考值来执行检验。在这些实施形式中,检验例如包括:根据至少一个存储区域的存储内容来形成CMAC值,和将这样形成的CMAC值与参考值进行比较,如该参考值例如寄存在密码模块的存储单元中那样。替选地或者进行补充地,在其他优选的实施形式中,借助第一控制指令,也可以向密码模块发送参考值。进一步替选地或者进行补充地,在其他实施形式中,借助第一控制指令,也可以向密码模块发送针对多个要检验的存储区域的多个参考值。

在其他优选的实施形式中,参考布局可以包含下列信息中的一个或者多个:a)存储装置中的存储区域的数目,计算装置可访问所述存储装置,b)有关的存储区域的地址范围(起始地址和/或结束地址),c)有关的存储区域的长度,d)有关的存储区域的至少一个参考值(例如CMAC值),e)关于加密的签名的数据、例如签名地址和/或签名类型和/或对上级证书(“root certificate(根证书)”)的参考。这些信息优选地可以存储在具有多个相对应的数据字段的数据结构中。

在其他优选的实施形式中,密码模块可以使用前面所提到的参考值或参考布局,以便确定对至少一个存储区域的检验的类型和范围。例如,依据起始地址和结束地址,可以确定针对检验的输入数据的集合(例如CMAC值形成)。

在其他优选的实施形式中设置了,密码模块构造成,将计算装置保持在复位状态(Resetzustand)中,其中尤其是密码模块构造成,将计算装置保持在复位状态中,一直到检验结束为止。由此防止了,只要检验并未已经结束,计算装置就执行与要检验的存储区域对应的计算机程序。在计算单元保持在复位状态中期间,所述计算单元不能执行计算机程序。特别有利地,针对具有密码模块和计算装置的系统的初始化,时间期满(Zeitablauf)也可以设置为使得:首先激活密码模块;并且直接在激活密码模块之后,密码模块将计算装置置于复位状态中,以便防止通过计算装置执行来自存储区域的也许并未已经被检查的软件。

在其他优选的实施形式中设置了,密码模块构造成,在检验的范围内查明,至少一个存储区域的内容是否与可预先给定的存储内容相对应,并且如果检验已得出,至少一个存储区域的内容与可预先给定的存储内容相对应,则结束针对计算装置的复位状态。那么可以从如下情况出发:至少一个存储区域的内容是按规定的,那就是说尤其是未被操纵。

在其他优选的实施形式中设置了,密码模块构造成,如果检验已得出,至少一个存储区域的内容不与可预先给定的存储内容相对应,那么将计算装置继续保持在复位状态中。在其他优选的实施形式中,又通过根据实际的存储内容形成CMAC值和将这样获得的CMAC值与参考CMAC值进行比较,可以执行检验至少一个存储区域的内容是否与可预先给定的存储内容相对应。

在其他优选的实施形式中设置了,至少一个存储区域具有针对计算装置的至少一个计算机程序、尤其是引导加载器(Bootloader)或引导管理器(Bootmanager),所述计算机程序设置用于在计算装置上执行。由此,有利地已经可以通过密码模块来检验引导加载器,那就是说检验针对计算装置的如下那个计算机程序:所述计算机程序在计算装置初始化时通常作为第一程序被执行,并且所述计算机程序例如控制,通过计算装置起动或执行哪些(其他)计算机程序。经此,有利地保证了,直接在计算装置初始化之后,通过计算装置执行仅事先通过密码模块检验过的计算机程序,或至少引导加载器不被操纵。

在其他优选的实施形式中,也针对不同于所提到的引导加载器的存储内容或计算机程序,例如对在计算装置的起动过程(引导)之后要执行的计算机程序,可以执行前面所描述的检验。在这种情况下,对于计算装置的继续运行而言,得出相对应的优点。尤其是,经此可以防止,通过计算装置执行被危害的计算机程序。特别有利地,由此也可以确保,不是一开始就(例如从系统起动起)可能(例如通过混入被操纵的计算机程序)危害例如要用密码技术保护的通信,计算装置(例如为了与另外的部件进行数据交换)要执行所述通信,所述被操纵的计算机程序滥用或者向未被授权的接收方传输也许要处理的(秘密的)加密的密钥。在其他有利的实施形式中,计算装置可以有利地(尤其是动态地)借助第一控制指令(并且或者借助其他的(对于第一控制指令可比较的)控制指令)给密码模块用信号通知:要通过密码模块检验哪些其他存储内容或计算机程序。

在其他优选的实施形式中设置了,密码模块构造成,为计算装置提供第一数据、尤其是加密的密钥,其中尤其是密码模块构造成,根据检验,将第一数据仅部分地或者甚至不供计算装置支配。假如例如在前面所描述的检验的范围内(例如在比较相对应的CMAC值的情况下)已查明经过检验的存储区域的内容与可预先给定的值相对应,则可以推断出,存在未被操纵的原软件,并且可以允许计算装置访问在密码模块中存储的第一数据、尤其是加密的密钥。可是,假如前面所描述的检验得出,经过检验的存储区域的内容并不与可预先给定的值相对应,那就是说经过检验的软件潜在地已被操纵,则可以设置,密码模块完全禁止计算装置对存储在密码模块中的或通过密码模块可提供的加密的密钥或者别的第一数据的访问,由此有利地可以防止,计算装置在被操纵的软件的控制下从密码模块中取出加密的密钥。在其他优选的实施形式中,也可设想的是,根据经过检验的存储内容的类型,释放计算装置对存储在密码模块中的加密的密钥的第一子集的访问,可是不释放对加密的密钥的第二子集的访问。

在其他优选的实施形式中设置了,密码模块至少部分地、尤其是完全地构造为硬件电路。在其他实施形式中可以设置,密码模块具有至少一个计算核和/或工作存储器(RAM)和/或非易失性存储器(例如闪存(Flash)-EEPROM)和/或至少一个(优选地至少部分地、进一步优选地完全地构造为硬件电路的)密码单元,所述密码单元例如构造用于执行CMAC计算和/或执行多个CMAC值(例如针对确定的存储区域的所测定的CMAC值/参考CMAC值)的比较。

在其他优选的实施形式中设置了,密码模块构造成,例如借助CMAC计算,检验计算装置的引导加载器,在成功检验引导加载器之后,(例如通过解除计算装置的复位状态)释放引导加载器的执行,并且优选地尤其是在释放引导加载器之后,等待第一控制指令,所述第一控制指令例如在引导加载器的控制下是可输出的。由此有利地确保了,以遵循这些实施形式的原理的方式,既可以检验计算装置的引导加载器,(尤其是无需为此不是已经主动工作的计算装置的第一控制指令可能是成功的),又可以检验针对计算装置的一个或者多个另外的计算机程序,其中在成功检验所述计算装置的引导加载器之后,所述计算装置可以有利地借助第一控制指令本身确定,要通过密码模块检验哪些(其他的)存储区域或计算机程序(除了已经被检验的引导加载器之外)。

其他优选的实施形式涉及一种用于运行密码模块的方法,所述密码模块用于至少临时控制至少一个计算装置的运行,其中所述密码模块检验如下存储装置的至少一个存储区域:计算装置可访问所述存储装置;并且根据所述检验,密码模块控制至少一个计算装置的运行;其中所述密码模块从计算装置接收到第一控制指令,所述第一控制指令表征存储装置的至少一个要检验的存储区域;并且所述密码模块检验通过第一控制指令表征的存储区域。

其他优选的实施形式涉及一种计算装置,所述计算装置具有至少一个根据这些实施形式的密码模块或用于至少一个根据这些实施形式的密码模块,其中所述计算装置构造成,向至少一个密码模块发送第一控制指令,其中第一控制指令表征存储装置的至少一个要检验的存储区域。由此,计算装置可以有利地(尤其是动态地)通知密码模块:按照这些实施形式的原理,要通过密码模块来检验哪个存储区域或哪些存储区域。

在其他优选的实施形式中设置了,计算装置构造成,从至少一个密码模块接收到第二控制指令,其中所述第二控制指令用信号通知对存储装置的要检验的存储区域的成功检验,其中尤其是计算装置构造成,在接收到第二控制指令之后,执行至少一个计算机程序,所述至少一个计算机程序与要检验的存储区域关联,尤其是所述至少一个计算机程序至少部分地(优选地完全地)处于要检验的存储区域中。

其他优选的实施形式涉及一种SoC,该SoC具有计算装置和至少一个根据这些实施形式的密码模块。

其他有利的实施形式是从属权利要求的主题。

附图说明

本发明的其他特征、应用可能性和优点从随后的对本发明的实施例的描述中得出,所述实施例在附图的图中示出。在此,所有所描述的或者所示出的特征本身或者以任意组合形成本发明的主题,而与其在权利要求中的概括或者其引用关系无关,以及与其在说明书中或在附图中的表述或图示无关。

在附图中:

图1示意性地示出了根据一实施形式的密码模块的简化框图,

图2示意性地示出了根据其他实施形式的密码模块的简化框图,

图3示意性地示出了根据一实施形式的方法的简化流程图,

图4示意性地示出了根据其他实施形式的方法的简化流程图,

图5示意性地示出了其他实施形式的简化框图,

图6示意性地示出了根据其他实施形式的密码模块的简化框图,

图7示意性地示出了根据其他实施形式的方法的简化流程图,以及

图8示意性地示出了根据一实施形式的数据结构。

具体实施方式

图1示意性地示出了根据一实施形式的密码模块100的简化框图。密码模块100设置用于至少临时控制至少一个计算装置200的运行。密码模块110尤其是构造成,检验如下存储装置300的至少一个存储区域310、320、330:所述计算装置200可访问所述存储装置300;并且密码模块110构造成,根据检验来控制至少一个计算装置200的运行;其中密码模块100构造成,从计算装置200接收到第一控制指令A1,所述第一控制指令A1表征所述存储装置300的至少一个要检验的存储区域310;并且密码模块100构造成,检验通过第一控制指令A1表征的存储区域。由此,有利地给出了如下可能性:例如根据相对于可预先给定的内容的偏差,检验存储区域的内容。经此,有利地例如可以阻止,通过计算装置200执行不安全的或被攻击者所危害的计算机程序。进一步有利地,借助第一控制指令A1,可以将该要检验的存储区域310或这些要检验的存储区域310、320、330(例如说明要检验哪些存储块的地址信息)用信号通知给密码模块100,使得例如不必预先配置这些信息。更确切而言,动态地(例如在密码模块100运行时),借助第一控制指令A1,可以用信号通知该要检验的存储区域或这些要检验的存储区域,由此进一步提升灵活性。

在优选的实施形式中,如示例性地在图1中所示出的那样,可以在密码模块100和计算装置200外部布置有存储装置300。

在其他优选的实施形式中设置了,密码模块100构造成,在使用基于密钥的消息认证码CMAC的情况下,执行对至少一个存储区域310、320、330的检验。由此,能够实现特别高效的检验。涉及CMAC方法的示例性的设计方案的互联网出版物例如在

在其他优选的实施形式中设置了,密码模块100具有可选的(优选地集成到密码模块100中的)存储单元102,用于存储针对至少一个存储区域310、320、330(或者在其他实施形式中,针对整个存储装置300)的至少一个参考值R和/或参考布局。优选地,计算装置200或者别的与密码模块100不同的部件不能访问存储单元102。

在其他优选的实施形式中,参考值R例如可以表示针对可预先给定的存储内容的CMAC值,所述针对可预先给定的存储内容的CMAC值例如与如下CMAC值是可比较的:所述CMAC值在通过密码模块100检验至少一个存储区域310、320、330时已被测定。假如所测定的CMAC值与参考值R有偏差,则可以推断出经过检验的存储区域310、320、330的存储内容的不容许的改变。

换言之,在优选的实施形式中设置了,密码模块100构造成,根据参考值R执行检验。在这些实施形式中,检验例如包括:根据至少一个存储区域310、320、330的存储内容形成CMAC值,和将这样形成的CMAC值与参考值R进行比较,如该参考值R例如寄存在密码模块100的存储单元102中那样。有利地,在密码模块100的存储单元102中,针对每个要检验的存储区域310、320、330可以寄存有相对应的参考值(例如CMAC值)。

在其他优选的实施形式中,同样可存储在密码模块100的存储单元102中的参考布局可以包含下列信息中的一个或者多个:a)存储装置300中的存储区域310、320、330的数目,所述计算装置200可访问所述存储装置300,b)有关的存储区域310、320、330的地址范围,c)有关的存储区域310、320、330的长度,d)有关的存储区域310、320、330的至少一个参考值(例如CMAC值),e)关于加密的签名的数据、例如签名地址和/或签名类型和/或对上级证书的签名参考。在其他实施形式中,特别优选地,参考布局包括针对计算装置200的引导加载器的上述数据(例如参考值和存储区域)中的至少有些数据,使得密码模块100甚至可以检验计算装置200的引导加载器。

在其他优选的实施形式中,密码模块100可以使用前面提到的参考值R或参考布局,以便确定对至少一个存储区域310、320、330的检验的类型和范围。

替选地或者进行补充地,在其他优选的实施形式中,借助第一控制指令A1,可以向密码模块发送参考值R或参考布局(或者其他控制信息,所述其他控制信息表征参考值R和/或参考布局)。这在其他实施形式中例如可以在引导加载器的控制下进行。因而,在其他实施形式中,至少针对有些潜在地要检验的存储区域,也可以取消参考值R或参考布局在密码模块100中的(尤其是超越临时缓存的)存储。

图2示意性地示出了其他实施形式的简化框图。示出了片上系统(英语:SoC)1000,该片上系统1000具有集成的计算装置200a和集成的密码模块100a,该集成的密码模块100a例如具有前面参照图1所描述的功能。此外,片上系统1000具有集成的存储装置300a,计算装置200a可以访问所述集成的存储装置300a。尤其是,在存储装置300a的相对应的存储区域(未示出)中,存储有设置用于通过计算装置200a执行的计算机程序或模块,并且通过根据这些实施形式的集成的密码模块100a可检验这些计算机程序或模块。

图3示出了根据一实施形式的方法的简化流程图。在步骤400中,密码模块100(图1)检验存储装置300的至少一个存储区域310、320、330,并且在随后的步骤410中,密码模块100根据检验400来控制计算装置200的运行。

在其他优选的实施形式中设置了,密码模块100(图1)构造成,将计算装置200保持在复位状态中,其中尤其是密码模块100构造成,将计算装置200保持在复位状态中,一直到检验结束为止。由此防止了,只要检验并未已经结束,计算装置200就执行与要检验的存储区域310、320、330对应的计算机程序。在计算单元200保持在复位状态中期间,所述计算单元200不能执行计算机程序。

在其他优选的实施形式中设置了,密码模块100构造成,在检验的范围内查明,至少一个存储区域310、320、330的内容是否与可预先给定的存储内容相对应;并且如果检验已得出,至少一个存储区域的内容与可预先给定的存储内容相对应,则结束针对计算装置200的复位状态。

特别优选地,密码模块100构造成,如果检验已得出,至少一个存储区域的内容不与可预先给定的存储内容相对应,那么将计算装置200继续保持在复位状态中。在其他优选的实施形式中,又可以通过如下方式来执行检验至少一个存储区域的内容是否与可预先给定的存储内容相对应:根据实际的存储内容形成CMAC值,并且将这样获得的CMAC值与参考CMAC值进行比较。

在其他优选的实施形式中设置了,至少一个存储区域具有至少一个计算机程序、尤其是针对计算装置的引导加载器,所述计算机程序设置用于在计算装置上执行。由此,有利地已经可以通过密码模块100检验引导加载器,那就是说检验针对计算装置的如下那个计算机程序:所述计算机程序在计算装置200的初始化时作为第一程序被执行。经此,有利地保证了,直接在计算装置初始化之后,通过计算装置执行仅事先通过密码模块检验过的计算机程序。

在其他优选的实施形式中,也针对不同于所提到的引导加载器的存储内容或计算机程序,可以执行前面所描述的检验,例如对在计算装置的起动过程(引导)之后要执行的这种计算机程序执行前面所描述的检验。在这种情况下,针对计算装置的继续运行而言,得出相对应的优点。尤其是,经此可以防止,通过计算装置执行被危害的计算机程序。

在其他优选的实施形式中设置了,密码模块100构造成,给计算装置200提供第一数据、尤其是加密的密钥,其中尤其是密码模块100构造成,根据检验400(图3),将第一数据仅部分地或者甚至不供计算装置200支配。假如例如在前面所描述的检验400的范围内(例如在比较相对应的CMAC值的情况下)已查明,经过检验的存储区域310(图1)的内容与可预先给定的值相对应,则可以推断出,存在未被操纵的原软件,并且可以允许计算装置200访问存储在密码模块100中的第一数据、尤其是加密的密钥。计算装置200可以将从密码模块获得的加密的密钥例如用于:例如通过加密消息和/或形成针对所述消息的CMAC值,用密码技术保护与另外的单元(例如另外的计算单元(未示出))的通信。

可是,假如前面所描述的检验得出,经过检验的存储区域的内容不与可预先给定的值相对应,那就是说潜在地已被操纵,则可以设置,密码模块100完全禁止计算装置200访问存储在密码模块中的或通过密码模块可提供的加密的密钥或者别的第一数据,由此有利地可以防止,计算装置在被操纵的软件的控制下从密码模块中取出加密的密钥。在其他优选的实施形式中也可设想的是,根据经过检验的存储内容的类型,给计算装置(例如引导加载器或者常规软件,所述常规软件在执行引导加载器之后才应被执行)释放对存储在密码模块中的加密的密钥的第一子集的访问,可是不释放对加密的密钥的第二子集的访问。

图4示出了根据其他实施形式的方法的简化流程图。在步骤420中,对密码模块100(图1)进行初始化。在这种情况下,例如可以读取和评估存储在存储单元102中的参考布局,或可以读取和评估其中的部分和/或针对密码模块100的配置数据。可选地,计算装置200在步骤420中也可以被置于其复位状态中,并且暂时保持在复位状态中。在步骤422(图4)中,然后检验存储装置300的至少一个存储区域310(图1),在所述至少一个存储区域310中例如存储有针对计算装置200的引导加载器程序。步骤422中的检验例如涉及针对引导加载器程序的CMAC值的形成。在这种情况下所测定的CMAC值然后在步骤424中与针对引导加载器事先测定的和存储的参考值进行比较,所述参考值例如可以通过密码模块100从存储单元102来加载。

假如比较424得出,在步骤422中的检验中形成的针对目前存储在存储区域310中的引导加载器程序的CMAC值与事先(例如在制造密码模块100和/或在密码技术方面安全的环境中参数化密码模块100时)测定的和存放在存储单元102中的CMAC参考值相一致,则密码模块100可以结束计算装置200的复位状态,参见步骤426,随后计算装置200可以着手其常规运行,并且可以执行来自存储区域310的引导加载器程序。

可是,假如比较424得出,在步骤422中的检验中形成的针对目前存储在存储区域310中的引导加载器程序的CMAC值与事先所测定的CMAC参考值不一致,则分岔到步骤428中,在该步骤428中,通过密码模块100继续地将计算装置200保持在其复位状态中,以便防止,计算装置200执行潜在地被危害的引导加载器。

可选地,在步骤426中也可以释放计算装置200对一个或者多个通过密码模块100可提供的加密的密钥的访问。

进一步可选地,在步骤426之后,计算装置可以向密码模块100发送第一控制指令A1(图1),参见步骤426a(图4),例如以便给密码模块100显示,接下来要通过密码模块100检验哪个存储区域或哪个计算机程序。然后,同样可选地,可以根据第一控制指令A1通过密码模块100进行相对应的(其他)检验,参见步骤426b。

图5示意性地示出了其他实施形式的简化框图。区域100'基本上包括在密码模块100侧执行的步骤,并且区域200'基本上包括在计算装置200侧执行的步骤。在步骤S1中,激活密码模块100。直接在激活密码模块100之后,密码模块100将计算装置200保持在其复位状态中。在步骤S2中,密码模块100检验针对计算装置200的第一计算机程序SW1。优选地,第一计算机程序SW1可以是针对计算装置200的引导加载器BL。在步骤S2中的检验例如包括:根据第一计算机程序SW1或存储第一计算机程序SW1的存储装置的相对应的存储内容来形成CMAC值,并且与参考CMAC值进行比较。密码模块例如可以从存储在存储单元102中的参考数据中取出如下信息:要检查哪个存储区域,和为此要使用哪个(例如CMAC)参考值。

假如检验S2没有得出两个CMAC值的一致,则推断出,第一计算机程序SW1被操纵或是有损伤的,并且分岔到步骤S21中,在该步骤S21中例如停用计算装置200。假如检验S2得出两个CMAC值的一致,则可以推断出,第一计算机程序SW1是完好的并且允许通过计算装置200来执行。在该情况下,从步骤S2分岔在步骤S3中,在步骤S3中,计算装置200被释放,那就是说解除被致使的或事先被维持的复位状态。然后,计算装置200可以执行第一计算机程序SW1,在本发明因此起动引导加载器,参见步骤S4。

在其他优选的实施形式中,例如在引导加载器SW1的控制下,计算装置200可以向密码模块100发送前面参考图1已经描述的第一控制指令A1,参见步骤S5,其中第一控制指令A1表征存储装置300的至少一个(其他的)要检验的存储区域,或表征相对应的计算机程序SW2,例如说明在存储装置中的有关的地址或地址范围。

在本发明,示例性地从如下情况出发,在存储装置的第二存储区域320中,设置有针对计算装置200的第二计算机程序SW2,所述第二计算机程序应是通过密码模块100接下来检验的主题。与此相应地,计算装置200向密码模块100发送所提到的第一控制指令A1,并且密码模块100在步骤S6中执行对第二计算机程序SW2的检验。根据步骤S6的检验优选地例如可以类似于根据步骤S2的检验进行。密码模块100又可以从内部存储单元102中读出针对第二计算机程序SW2的相对应的CMAC参考值。替选地或者进行补充地,也借助第一控制指令A1,可以由引导加载器BL向密码模块发送针对第二计算机程序SW的相对应的CMAC参考值。

假如根据步骤S6的检验已得出,第二计算机程序SW2是完好的,则密码模块100可以借助第二控制指令A2将这一点用信号通知给计算装置200。在接收到第二控制指令A2时,计算装置200与此相应地转向接下来的步骤S7,所述接下来的步骤S7例如涉及第二计算机程序SW2的执行。可是,假如根据步骤S6的检验已得出,第二计算机程序SW2不是完好的,则密码模块100同样借助第二控制指令A2将这一点通知给计算装置200(替选地,可以略过第二控制指令A2的传送,并且在没有从密码模块接收到第二控制指令A2的情况下在可预先给定的等待时间期满之后,计算装置200可以推断出,检验曾是不成功的)。在该情况下,计算装置200在接收到第二控制指令A2(或在没有接收到第二控制指令A2的情况下的时间期满)之后转到步骤S8中,该步骤S8导致采取错误反应。根据步骤S8的错误反应例如可以涉及第二计算机程序SW2的停用或删除。

在其他优选的实施形式中,该方法可以通过借助密码模块100检验其他计算机程序或相对应的存储区域而继续进行,参见步骤S9。

在其他优选的实施形式中,密码模块100可以记关于成功的和/或不成功的检验的记录或日志文件。例如,如果对存储区域310、320、330或其中包含的软件的检验失败(例如识别出所测定的CMAC值与参考CMAC值的偏差),则密码模块100可以存储错误项。在其他实施形式中,例如在随后的密码模块和/或计算装置起动时,可以评估该记录或日志文件或其中的部分,并且根据所述评估来控制计算装置200的继续运行。例如,在有些实施形式中,如果事先检验失败,则可以防止重新的引导过程(引导加载器BL的执行)。替选地或者进行补充地,可以产生至少一个中断请求(“Interrupt(中断)”),和/或将计算装置200复位(“reset”)。

图6示意性地示出了根据其他实施形式的密码模块100b的简化框图。密码模块100b具有计算核或处理器110、工作存储器120、非易失性存储器130(例如闪存-EEPROM)和可选地密码单元140,该密码单元140构造用于执行一个或者多个加密的算法或者其中的至少部分。例如,密码单元140可以构造成,执行前面所描述的对CMAC值的测定。

根据这些实施形式的原理有利地能够实现:借助加密的方法,例如通过前面所描述的对CMAC值的测定和与参考值的比较,鉴于例如针对计算装置200所设置的计算机程序的真实性和/或完好性,有针对性地检验这些计算机程序。由此,可以特别高效地测定,例如引导加载器对于计算装置200而言是否安全,或者引导加载器是否也许已被攻击者操纵(或者引导加载器是否已通过错误无意地被修改)。在该情况下,根据容纳引导加载器的实际存储区域算出的CMAC值与密码模块100已知的参考值不一致。

根据这些实施形式的原理的其他优点在于,根据针对计算装置200的计算机程序SW1、SW2的安全性和/或实时性,能够实现对这些计算机程序的比较细粒度地检验,使得也可以选择性地通过密码模块来检验各个计算机程序。特别有利地,例如对针对计算装置200的引导加载器的选择性检验能够实现快速地将计算装置200置于安全的能引导的状态中。有利地,例如至少临时地与计算装置200的开动并行地,在引导加载器SW1的控制下或者在以后的时刻(有利地,尤其是通过第一控制指令A1动态触发地),可以进行对其他计算机程序SW2的也许同样必要的或期望的检验。换言之,在应用根据这些实施形式的原理的情况下,不必始终一下子检验存储装置300的整个存储器,而是可以在可预先给定的时刻灵活地通过密码模块100来检验各个存储区域310、320、330。

图7示意性地示出了根据其他实施形式的方法的简化流程图。在步骤430中,例如与根据图4的步骤S2可比较地借助CMAC计算,密码模块100(图1)检验计算装置200的引导加载器BL(图5)。在成功检验引导加载器BL之后,参见步骤432,密码模块100例如通过如下方式释放引导加载器BL的执行:通过密码模块没有较长地维持计算装置200的复位状态;并且在步骤434中,密码模块434等待第一控制指令A1,也参见图4。

图8示意性地示出了根据其他优选的实施形式的数据结构DS。可选地,数据结构DS例如可以用于,将针对密码模块100的CMAC参考值或参考布局或者这一类的例如存储在密码模块100的存储单元102中。在优选的实施形式中,数据结构DS具有主索引PI,该主索引提供明确的标识。假如例如存在多个数据结构或具有该数据结构DS的数据记录,则在使用针对主索引PI的相对应的值的情况下可以将这些数据结构或数据记录彼此区分。可想象的是,在多个通过密码模块110管理的数据结构或具有所映射的数据结构DS的数据记录的情况下,针对每个数据记录给予针对所提到的主索引PI的明确的值。

进一步优选地,数据结构DS可以具有起始地址ADR1,该起始地址ADR1例如限定存储装置300(图1)中的也许要检验的存储区域310的存储地址(尤其是起始地址)。例如,这可以是在存储装置300中的起始地址,在所述起始地址处存放有计算机程序、如例如前面所描述的引导加载器。

进一步优选地,数据结构DS具有长度说明LEN,该长度说明LEN说明了有关的存储区域的长度。进一步优选地,数据结构DS具有状态字段IS,该状态字段IS说明了当前的数据记录的完整性状态(例如“经过检验的”或者“有错误的”或者这一类的,这例如根据图3中的根据步骤400的检验是可测定的)。特别优选地,数据结构DS此外还具有字段REF-CMAC,用于容纳CMAC参考值,如该CMAC参考值例如在针对存储在存储装置300中的计算机程序(例如引导加载器)的生产时刻已被测定的那样。CMAC参考值可以从此以后通过密码模块100被用于检验如下计算机程序的实时性或完好性:所述计算机程序存在于检验的时刻在存储装置300或有关的存储区域310中。

在其他优选的实施形式中,数据结构DS也可以还包含其他数据字段DF,例如用于容纳签名地址、签名类型和对相对应的根证书的参阅诸如此类。

根据这些实施形式的原理具有其他在后面所提到的优点:a)在密码模块100的运行时间期间,可以高效地识别对存储装置300的内容的操纵(如也可以识别错误引起的改变),例如识别存储在其中的计算机程序(如例如引导加载器或者这一类)的操纵,(“runtime manipulation detection(运行时操纵检测)”,RTMD),b)确保在计算装置200上的软件(例如应用程序)的安全引导(那就是说起动),(“trusted boot(可信引导)”),c)也可以事后有利地按照根据这些实施形式的原理来检验存储到存储装置300中的计算机程序SW2或别的数据,(“secure flashing(安全的闪存)”),d)根据按照这些实施形式的检验,可控制对也许通过密码模块提供的加密的密钥和另外的敏感信息的访问,(“securityaccess(安全访问)”),e)可以任意选择引导顺序(在计算单元200起动时处理计算机程序的顺序),而不损害安全性,f)通过采用(也许具有专用的密码单元140的)密码模块100,可以提供效率高的和安全的加密的功能,例如(例如基于128位AES(Advanced EncryptionStandard(高级加密标准))的)CMAC形成,g)通过设置例如呈按照图7的数据结构DS的形式的参考布局,密码模块100的运行可以灵活地与计算装置200的不同的存储器布局和别的配置适配,h)通过传送第一控制指令A1,可以动态地(例如在密码模块运行时)将要检验的存储区域用信号通知给密码模块。

其他优选的实施形式涉及计算装置200(图1),该计算装置200具有至少一个根据这些实施形式的密码模块100或用于至少一个根据这些实施形式的密码模块100,其中计算装置200构造成,向至少一个密码模块100发送第一控制指令A1,其中所述第一控制指令A1表征存储装置300的至少一个要检验的存储区域310。由此,计算装置200有利地可以(尤其是动态地)通知密码模块100:按照这些实施形式的原理,要通过密码模块100检验哪个存储区域或哪些存储区域(也许除了可选地可首先检验的引导加载器BL之外)。在其他优选的实施形式中,第一控制指令A1的发送可以通过计算装置200的引导加载器BL(图5)来执行。如已经提及的那样,在其他优选的实施形式中,此前已经可以通过密码模块100进行对引导加载器BL本身的检验或对包含所述引导加载器BL的存储区域的检验。

在其他优选的实施形式中设置了,计算装置200构造成,从至少一个密码模块接收到第二控制指令A2(图4),其中第二控制指令用信号通知对存储装置的要检验的存储区域的成功检验,其中尤其是计算装置200构造成,在接收到第二控制指令A2之后,执行至少一个计算机程序SW2,所述至少一个计算机程序SW2与要检验的存储区域关联,尤其是所述至少一个计算机程序SW2至少部分地(优选地完全地)处于要检验的存储区域中。换言之,在其他优选的实施形式中,在成功检验了要检验的存储区域之后,密码模块100可以向计算装置200发送第二控制指令A2,以便用信号通知该成功检验。

相关技术
  • 密码模块和针对其的运行方法
  • 密码模块和用于密码模块的运行方法
技术分类

06120112284264