CN112292679A - 密码模块和用于密码模块的运行方法 - Google Patents

密码模块和用于密码模块的运行方法 Download PDF

Info

Publication number
CN112292679A
CN112292679A CN201980040931.5A CN201980040931A CN112292679A CN 112292679 A CN112292679 A CN 112292679A CN 201980040931 A CN201980040931 A CN 201980040931A CN 112292679 A CN112292679 A CN 112292679A
Authority
CN
China
Prior art keywords
cryptographic module
computing device
result
check
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980040931.5A
Other languages
English (en)
Inventor
J·施拉姆
R·荣格
C·楞次
A·莫伊雷尔
F·施通普夫
A·韦伯
F·齐格勒
I·萨加尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN112292679A publication Critical patent/CN112292679A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

密码模块,尤其是用于计算装置,其中所述密码模块被构造为检查所述计算装置能够访问的存储装置的至少一个存储区域,由此获得所述检查的结果,并且所述密码模块被构造为至少临时地存储所述结果。

Description

密码模块和用于密码模块的运行方法
技术领域
本公开涉及一种密码模块。本公开还涉及一种用于这种密码模块的运行方法。
背景技术
从DE 10 2009 046436 A1已知一种加密硬件模块。
发明内容
本发明的任务是说明一种具有提高的实用性的密码模块。
该任务在开头提到类型的密码模块中通过以下方式解决,即所述密码模块被构造为检查计算装置可以访问的存储装置的至少一个存储区域,由此获得所述检查的结果,并且所述密码模块被构造为至少临时地存储所述结果。由此,有利地给出了例如针对相对于可预给定内容的偏差来检查所述至少一个存储区域的内容的可能性。由此例如可以有利地防止由所述计算装置执行不安全的或被攻击者破坏的计算机程序。
在优选的实施方式中,所述存储装置可以布置在所述密码模块和所述计算装置的外部。然而,在其他优选的实施方式中,所述存储装置也可以集成到所述计算装置中。在还其他的优选实施方式中,还可以有利地设置单芯片系统(英语:system-on-a-chip,片上系统,SoC),所述单芯片系统具有所述计算装置、所述存储装置和根据实施方式的至少一个密码模块。在这种情况下,所述计算装置、所述存储装置和所述至少一个密码模块例如布置在共同的半导体衬底上,由此得到特别小的结构配置。
在其他优选的实施方式中,所述计算装置可以具有至少一个计算核心和/或微处理器和/或微控制器和/或数字信号处理器(DSP)和/或可编程逻辑模块(例如FPGA)等。
在其他优选的实施方式中规定,所述密码模块被构造为检查所述存储装置的多个存储区域或存储在所述存储装置中的多个计算机程序,其中所述密码模块尤其是周期性地检查所述存储装置的多个存储区域或所述多个计算机程序。由此可以有利地检查多个存储区域或存储在所述存储区域中的例如用于计算装置的计算机程序,其中通过周期性地检查进一步提高了抵抗对一个或多个存储区域的内容的操纵和/或随机出现的改变的安全性。可以理解,在应用根据实施方式的原理的情况下还可以检查数据(例如,与可以由所述计算装置执行的计算机程序相反)的完整性或与可预给定参考数据的一致性。在其他实施方式中,也可以设想既检查数据又检查计算机程序,所述计算机程序例如可以分别分配给所述存储装置的对应存储区域或同一存储区域。
在其他优选的实施方式中规定,所述密码模块被构造为:a)在至少一个随机或伪随机选择的时刻检查所述至少一个存储区域,和/或b)至少临时地以随机或伪随机顺序检查所述多个存储区域。也就是说,在其他实施方式中,可以在第一运行阶段期间例如使用随机或伪随机顺序来进行检查,并且也可以在第二运行阶段期间选择与针对所述第一运行阶段所提到的随机或伪随机顺序不同的顺序。
在其他优选的实施方式中规定,所述密码模块被构造为至少临时地以易失性和/或非易失性的方式(例如在闪速EEPROM存储器中)存储所述检查的结果。
在其他优选的实施方式中规定,检查存储区域的结果包括至少一个真值,所述真值表征所述检查的结果,例如在检查为否定的情况下(即例如在操纵所检查的存储区域的所考察的数据时)该值为“True”(“真”)。
在其他优选的实施方式中规定,对作为结果分配给所述存储装置的相应被检查存储区域的多个真值进行或逻辑运算以确定总结果,其中所述总结果尤其是表征所述存储装置的多个被检查存储区域的至少一个结果是否为否定的。
在其他优选的实施方式中规定,所述密码模块被构造为至少临时地以易失性和/或非易失性的方式存储所述总结果。
在其他优选的实施方式中规定,所述密码模块被构造为在使用基于密钥的消息认证码CMAC的情况下执行对所述至少一个存储区域的检查。由此使得检查特别有效。例如在https://doi.org/10.6028%2Fnist.sp.800-38b上可调用与CMAC方法的示例性设计有关的互联网出版物。
在其他优选的实施方式中规定,所述密码模块具有优选集成到所述密码模块中的存储单元,用于存储所述至少一个存储区域的至少一个参考值和/或参考布局。在优选的实施方式中,所述参考值可以例如代表可预给定存储内容的CMAC值,该CMAC值例如与在由所述密码模块检查所述至少一个存储区域时确定的CMAC值可类比。如果所确定的CMAC值偏离所述参考值,则可以推断出被检查存储区域的存储内容发生了不允许的改变。
在其他优选的实施方式中规定,所述密码模块被构造为根据所述参考值执行所述检查。在这些实施方式中,所述检查包括例如根据所述至少一个存储区域的存储内容来形成CMAC值以及将以此方式形成的CMAC值与所述参考值进行比较,所述参考值例如存储在所述密码模块的存储单元中。
在其他优选的实施方式中规定,所述密码模块被构造为在至少一个结果和/或所述总结果为否定时启动错误反应,其中所述错误反应尤其是具有以下措施中的至少一项:a)重置、即复位所述计算装置和/或重置所述计算装置和所述密码模块,b)向所述计算装置发送中断请求(必要时可以为此设置单独的数据连接以用于将所述中断请求传输到所述计算装置),c)阻止所述计算装置访问存储在所述密码模块中或可由所述密码模块提供的密码密钥和/或其他第一数据,d)防止执行所述计算装置的引导加载器,尤其是通过所述计算装置的重置保持,即将所述计算装置保持在重置状态中,e)为所述计算装置提供所述结果和/或总结果,和/或将所述结果和/或总结果发送给所述计算装置。
在其他优选的实施方式中规定,所述密码模块被构造为在所述检查的范围内明确所述至少一个存储区域的内容是否对应于可预给定的存储内容。
在其他优选的实施方式中规定,所述至少一个存储区域具有被设置用于在所述计算装置上执行的至少一个计算机程序,尤其是用于所述计算装置的引导加载器。
在其他优选的实施方式中规定,所述密码模块被构造为向所述计算装置提供第一数据,尤其是密码密钥,其中所述密码模块尤其是被构造为根据所述检查仅部分地或完全不向所述计算装置提供所述第一数据。
其他优选的实施方式涉及一种用于运行密码模块、尤其是用于计算装置的密码模块的方法,其中所述密码模块检查所述计算装置可以访问的存储装置的至少一个存储区域,由此获得所述检查的结果,并且所述密码模块至少临时存储所述结果。
在其他优选的实施方式中规定,所述密码模块检查所述存储装置的多个存储区域,其中所述密码模块尤其是周期性地检查所述存储装置的多个存储区域,其中尤其是所述密码模块在至少一个随机或伪随机选择的时刻检查所述至少一个存储区域,和/或b)至少临时地以随机或伪随机顺序检查所述多个存储区域,其中尤其是所述密码模块至少临时地以易失性和/或非易失性方式存储所述检查的结果。
其他有利的实施方式是从属权利要求的主题。
本发明的其他特征、应用可能性和优点从对本发明实施例的以下描述中得出,这些实施例在附图的各图中示出。在此,所描述或示出的所有特征均单独或以任何组合构成本发明的主题,而与这些特征在权利要求书中的概述或其引用无关,以及与这些特征在说明书或附图中的表述或图示无关。
附图说明
在附图中:
图1示意性地示出了根据一种实施方式的密码模块的简化框图,
图2示意性地示出了根据另一实施方式的密码模块的简化框图,
图3示意性地示出了根据一种实施方式的方法的简化流程图,
图4示意性地示出了根据另一实施方式的方法的简化流程图,
图5示意性地示出了根据另一实施方式的密码模块的简化框图,以及
图6示意性地示出了根据一种实施方式的数据结构。
具体实施方式
图1示意性地示出了根据一种实施方式的密码模块100的简化框图。密码模块100可以用于监视至少一个计算装置200,尤其是用于监视分配给计算装置200的存储装置300,和/或用于至少临时控制至少一个计算装置200的运行。
计算装置200例如是微控制器或微处理器。计算装置200可以执行计算机程序,在优选实施方式中所述计算机程序至少临时地存储在存储装置300(例如,工作存储器(RAM)和/或闪存EEPROM和/或其他存储器,尤其是可(重复)写入的存储器)中。示例性地,存储装置300在当前情况下具有三个存储区域310a,310b,310c,并且在第一存储区域310a中在当前情况下存储用于计算装置200的第一计算机程序PRG1。计算装置200可以经由第一数据连接DV1至少以读取的方式访问存储装置300,以便加载第一计算机程序PRG1。通常,可以在每个存储区域310a,310b,310c中存储一个或多个计算机程序,计算装置200可以经由第一数据连接DV1加载所述计算机程序,并且然后必要时可以执行所述计算机程序,例如还有计算装置200的引导加载器BL,即在初始化了计算装置200之后首先执行的计算机程序。一旦被执行,引导加载器BL就可以例如控制由计算装置200对至少一个其他计算机程序PRG1的后续加载和/或执行。
密码模块100被构造为检查计算装置200可以访问的存储装置300的至少一个存储区域310a,310b,310c,参见图3的简化流程图的步骤400,由此获得检查结果。在检查400之后,密码模块100(图1)至少临时地存储检查400的结果,参见步骤410(图3)。有利地,由此给出了例如针对相对于可预给定内容的偏差来检查至少一个存储区域310a的内容的可能性。由此可以有利地例如防止由计算装置200执行不安全的计算机程序PRG1或被攻击者破坏的计算机程序PRG1。
在优选的实施方式中,密码模块100侧的检查基本上独立于计算装置200的运行,使得计算装置200的运行不会被所述检查中断,并且反之亦然。
在其他优选的实施方式中,存储装置300可以布置在密码模块100和计算装置200的外部,如图1中示意性示出的。在此,密码模块100对存储装置300的访问经由第二数据连接DV2进行,第二数据连接DV2优选地与第一数据连接DV1分开。然而,在其他实施方式中,数据连接DV1,DV2也可以借助于共同的总线系统来实现。
在其他优选的实施方式中,存储装置300也可以集成到计算装置200中(未示出)。在还另外优选的实施方式中,参见图2,还可以有利地设置单芯片系统(英语:system-on-a-chip,片上系统,SoC)1000,所述单芯片系统具有计算装置200a、存储装置300a和至少一个根据实施方式的密码模块100a。因此,在这种情况下,计算装置200a、存储装置300a和至少一个密码模块100a布置在共同的半导体衬底1000a上,由此得到特别小的结构配置。
在其他优选的实施方式中规定,密码模块100、100a被构造为检查存储装置300的多个存储区域310a,310b,310c,其中尤其是密码模块100、100a周期性地检查存储装置300的多个存储区域310a,310b,310c。由此有利地可以检查多个存储区域或存储在这些存储区域中的计算机程序PRG1,BL,例如用于计算装置200的计算机程序,其中通过周期性地检查进一步提高了抵抗对一个或多个存储区域的内容的操纵和/或随机出现的改变的安全性。
在其他优选的实施方式中规定,密码模块100(图1),100a被构造为a)在至少一个随机或伪随机选择的时刻检查至少一个存储区域310a,310b,310c(图1),以及/或b)至少临时地以随机或伪随机顺序检查多个存储区域310a,310b,310c。也就是说,在其他实施方式中,可以在第一运行阶段期间例如使用随机或伪随机顺序用于检查,并且还可以在第二运行阶段期间选择不同于针对第一运行阶段提到的随机或伪随机顺序的顺序,例如确定性的顺序,例如取决于存储区域310a,310b,310c在存储装置300的地址空间中的位置。
在其他优选的实施方式中规定,密码模块100、100a被构造为至少临时以易失性和/或非易失性方式(例如在闪速EEPROM存储器中)存储检查400(图3)的结果,参见图3的步骤410。
在其他优选的实施方式中规定,存储区域的检查结果包括至少一个真值,该真值表征检查结果,例如在检查为否定的情况下为值“TRUE”(“真”)。
在其他优选的实施方式中规定,对作为结果分配给存储装置300的相应被检查存储区域的多个真值进行或逻辑运算以确定总结果,其中所述总结果尤其是表征所述存储装置的多个被检查存储区域的至少一个结果是否为否定。
在其他优选的实施方式中规定,密码模块100、100a被构造为至少临时地以易失性和/或非易失性方式存储所述总结果。
图4示例性地示出了根据另一实施方式的简化流程图。在步骤450中,密码模块100、100a根据(伪)随机选择的顺序首先检查存储装置300的存储区域310c(图1)。可选地,在步骤450中密码模块100、100a在检查了存储区域310c之后还立即存储相关联的结果。在步骤452中,密码模块100、100a检查存储装置300的存储区域310a(图1)。可选地,在步骤452中密码模块100、100a还在检查了存储区域310a之后立即存储相关联的结果。在步骤454中,密码模块100、100a检查存储装置300的存储区域310b(图1)。可选地,在步骤454中密码模块100、100a还在检查了存储区域310b之后立即存储相关联的结果。在同样可选的步骤456中,密码模块100、100a确定关于检查各个存储区域310a,310b,310c的步骤450、452、454的总结果,所述总结果同样可以可选地由密码模块100、100a至少临时存储。优选地,在其他实施方式中至少部分地重复、尤其是周期性地重复步骤450、452、454(必要时也以不同的顺序),从而多次检查存储装置300的至少一些、优选所有存储区域310a,310b,310c。例如,一旦步骤454或可选步骤456结束,就可以重复上面参考图4示例性描述的流程。
例如,在其他优选的实施方式中,一旦(单个存储区域,在当前情况下例如参见步骤452)检查结果和/或总结果为否定,就可以启动错误响应460。因此,在其他优选的实施方式中规定,密码模块100、100a被构造为如果至少一个结果和/或总结果为否定,就启动错误反应460,其中该错误反应尤其是具有以下措施中的至少一项:a)重置,也就是复位计算装置200和/或重置计算装置200和密码模块100,b)向计算装置200发送中断请求,c)阻止计算装置200访问存储在密码模块100中或能由所述密码模块提供的密码密钥和/或其他第一数据,d)防止计算装置200的引导加载器BL(图1)的执行,尤其是通过使计算装置200保持重置,即保持计算装置200处于重置状态中,e)为计算装置200提供结果和/或总结果和/或将所述结果和/或总结果发送到计算装置200,f)启动计算装置200的引导加载器BL(尤其是如果引导加载器BL先前已经被成功检查为未被改变或操纵)。
在其他优选的实施方式中规定,密码模块100、100a被构造为在使用基于密钥的消息认证代码CMAC的情况下对至少一个存储区域310a,310b,310c执行检查400(图3)或450、452、454(图4)。由此使得检查特别有效。例如在https://doi.org/10.6028%2Fnist.sp.800-38b上可调用与CMAC方法的示例性设计有关的互联网出版物。
在其他优选的实施方式中规定,密码模块100、100a具有存储单元102(图1),该存储单元优选集成到密码模块100中,用于存储至少一个存储区域310a,310b,310c的至少一个参考值R和/或参考布局。在优选的实施方式中,参考值R可以代表例如可预给定存储内容的CMAC值,该CMAC值例如与在检查所述至少一个存储区域时由所述密码模块确定的CMAC值可类比。如果所确定的CMAC值偏离所述参考值,则可以推断出被检查存储区域的存储内容发生了不允许的改变。
进一步优选地,密码模块100还可以具有结果存储器104,用于至少临时存储至少一个检查(图3的步骤400或图4的步骤450、452、454)的结果E(图1)和/或总结果GE(图1)。
在其他优选的实施方式中规定,密码模块100、100a被构造为根据参考值R执行检查400。在这些实施方式中,所述检查例如包括根据所述至少一个存储区域的存储内容来形成CMAC值以及将以此方式形成的CMAC值与所述参考值进行比较,所述参考值例如存储在所述密码模块的存储单元中。
例如,密码模块100可以例如经由第二数据连接DV2来加载第一计算机程序PRG1或存储装置300的存储区域310a的全部内容(逐块的也是可能的,然后优选地也在逐块的CMAC形成的情况下)。然后,密码模块100关于加载的第一计算机程序PRG1或存储装置300的存储区域310a的全部内容形成CMAC值。然后,可以将该CMAC值与第一计算机程序PRG1或存储装置300的存储区域310a的全部内容的对应参考值相比较,所述对应参考值例如提前地例如在制造密码模块100时在安全环境中产生并且优选地存储在密码模块100中,使得只有密码模块100可以访问该对应参考值。
在其他优选的实施方式中规定,密码模块100、100a被构造为在所述检查的范围内确定所述至少一个存储区域的内容是否对应于可预给定的存储内容。这例如对应于步骤400。除了优选使用的CMAC方法之外,在其他实施方式中为此也可以使用其他方法来比较数据。由此获得的结果E可以至少临时地存储在结果存储器104中。
在其他优选的实施方式中规定,至少一个存储区域310a,310b,310c具有被设置为在所述计算装置上执行的至少一个计算机程序PRG1,必要时还具有用于计算装置200的引导加载器BL。
在其他优选的实施方式中规定,密码模块100、100a被构造为向所述计算装置提供第一数据,尤其是密码密钥,其中尤其是密码模块100、100a被构造为根据检查400向计算装置200仅部分地或根本不提供第一数据。
图5示意性地示出了根据另一实施方式的密码模块100b的简化框图。密码模块100b具有计算核心或处理器110、工作存储器120、非易失性存储器130(例如闪速EEPROM)以及可选地具有被构造为执行一种或多种密码算法或其至少一部分的密码单元140。例如,密码单元140可以被构造为对检查400(图3)执行CMAC值的上述确定。在此获得的结果E或总结果GE(图1)可以由密码模块100、100a,100b例如存储在存储器130(图5)中。例如,存储器130的可预给定地址区域可以用于实现所述结果存储器。例如,根据图1的存储单元102的功能也可以由根据图5的存储器130实现。
在其他优选的实施方式中规定,密码模块100、100a,100b将所获得的检查400的结果E或总结果GE存储在存储器104(图1)中,计算装置200可以以读取的方式(并且优选仅以读取的方式)访问该存储器104。通过这种方式,计算装置200在计算机程序的控制下可以读取借助于密码模块100、100a,100b例如基本上与计算装置200的运行不同步地确定的结果E或总结果GE,并且必要时自身执行反应,例如启动错误反应。
图6示意性地示出了根据其他优选实施方式的数据结构DS。数据结构DS可以例如用于将用于密码模块100的CMAC参考值或参考布局等例如存储在密码模块100的存储单元102中。在优选的实施方式中,数据结构DS具有提供唯一标识的主索引PI。例如,如果存在多个数据结构或具有数据结构DS的数据集,则可以在使用主索引PI的对应值的情况下将它们彼此区分开。可以设想,在存在多个由密码模块100管理的数据结构或具有映射的数据结构DS的数据集的情况下,为每个数据集分配所述主索引PI的唯一值。
进一步优选地,数据结构DS可以具有起始地址ADR1,该起始地址例如定义了存储装置300(图1)中必要时待检查的存储区域310a,310b,310c的存储地址,尤其是起始地址。例如,这可以是存储装置300中的起始地址,在该起始地址处存储有诸如上述引导加载器BL或第一计算机程序PRG1的计算机程序。
进一步优选地,数据结构DS具有长度说明LEN,该长度说明LEN说明了所涉及存储区域310a,310b,310c的长度。进一步优选地,数据结构DS具有状态字段IS,该状态字段说明了当前数据集的完整性状态(例如“已检查”或“有错误”等,这可以例如根据按照图3中的步骤400的检查来确定)。因此,可以有利地以状态字段IS的形式存储单个计算机程序BL,PRG1或存储区域310a,310b,310c的检查400的结果E。
特别优选地,数据结构DS还具有用于容纳CMAC参考值的REF-CMAC字段,该CMAC参考值例如是在制造时刻为存储在存储装置300中的计算机程序(例如引导加载器BL)确定的。此后,可以由密码模块100使用该CMAC参考值来检查在所述检查的时刻存在于存储装置300或所涉及存储区域310中的计算机程序的真实性或完整性。
在其他优选的实施方式中,数据结构DS还可以包含其他数据字段DF,例如用于容纳签名地址、签名类型和对对应根证书的引用等,并且用于至少临时地存储例如以所有(单)结果的或逻辑运算形式获得的总结果GE(图1)。
在其他优选的实施方式中,密码模块100,100a,100b还可以引导关于成功和/或不成功的检查400、450、452、454的简档或日志文件。例如,如果对存储区域310a或该存储区域中包含的软件的检查失败(例如,通过所确定的CMAC值相对于参考CMAC值的偏差来识别),则密码模块100,100a,100b可以存储错误条目。所述日志文件优选地可以附加地用于至少临时存储结果或总结果,或者也可以用于持久保持(即用于非易失性地存储)这些值。
根据实施方式的原理具有以下提到的其他优点:a)可以在密码模块100和计算装置200的运行时期间有效地识别对存储装置300的内容的操纵(以及由于错误引起的改变),例如对存储在存储装置300中的诸如引导加载器等的计算机程序的操纵(“runtimemanipulation detection”,运行时操纵检测,RTMD),而不会损害计算装置200的运行,b)确保计算装置200上的软件(例如应用软件)的安全引导(即启动)(“trusted boot”,可信引导,例如通过早期检查引导加载器BL),c)有利地还可以根据按照实施方式的原理检查事后存储在存储装置300中的计算机程序或其他数据(“secure flashing”,安全刷新),d)可以依据根据实施方式的检查控制对必要时由所述密码模块提供的密码密钥的访问以及对其他敏感信息的访问(“security access”,安全访问),e)可以任意选择引导顺序(当计算单元200启动时处理计算机程序的顺序),而不会损害安全性;f)通过使用密码模块100,必要时与专用密码单元140一起使用,可以提供高效并且安全的加密功能,例如CMAC形成,例如基于128位AES(Advanced Encryption Standard,高级加密标准),g)通过设置例如根据图7的数据结构DS形式的参考布局,密码模块100的运行可以灵活地与不同的存储器布局和计算装置200的其他配置适配。

Claims (16)

1.密码模块(100;100a;100b),尤其是用于计算装置(200;200a),其中所述密码模块(100;100a;100b)被构造为检查(400;450,452,454)所述计算装置(200;200a)能够访问的存储装置(300)的至少一个存储区域(310a,310b,310c),由此获得所述检查的结果,并且所述密码模块(100;100a;100b)被构造为至少临时地存储(410;450,452,454)所述结果。
2.根据权利要求1所述的密码模块(100;100a;100b),其中,所述密码模块(100;100a;100b)被构造为检查(450,452,454)所述存储装置(300)的多个存储区域(310a,310b,310c),其中所述密码模块(100;100a;100b)尤其是周期性地检查所述存储装置(300)的多个存储区域(310a,310b,310c)。
3.根据前述权利要求中的至少一项所述的密码模块(100;100a;100b),其中,所述密码模块(100;100a;100b)被构造为:a)在至少一个随机或伪随机选择的时刻检查所述至少一个存储区域(310a,310b,310c),和/或b)至少临时地以随机或伪随机顺序检查所述多个存储区域(310a,310b,310c)。
4.根据前述权利要求中的至少一项所述的密码模块(100;100a;100b),其中,所述密码模块(100;100a;100b)被构造为至少临时地以易失性和/或非易失性的方式存储所述检查的结果。
5.根据前述权利要求中的至少一项所述的密码模块(100;100a;100b),其中,检查存储区域(310a)的结果包括至少一个真值,所述真值表征所述检查的结果。
6.根据权利要求5和权利要求2至4中的至少一项所述的密码模块(100;100a;100b),其中,对作为结果分配给所述存储装置(300)的相应被检查存储区域(310a,310b,310c)的多个真值进行或逻辑运算,以确定总结果,其中所述总结果尤其是表征所述存储装置(300)的多个被检查存储区域(310a,310b,310c)的至少一个结果是否为否定的。
7.根据权利要求6所述的密码模块(100;100a;100b),其中,所述密码模块(100;100a;100b)被构造为至少临时地以易失性和/或非易失性的方式存储所述总结果。
8.根据前述权利要求中的至少一项所述的密码模块(100;100a;100b),其中,所述密码模块(100;100a;100b)被构造为在使用基于密钥的消息认证码CMAC的情况下执行对所述至少一个存储区域(310a,310b,310c)的检查(400;450,452,454)。
9.根据前述权利要求中的至少一项所述的密码模块(100;100a;100b),其中,所述密码模块(100;100a;100b)具有优选地集成到所述密码模块(100;100a;100b)中的存储单元(102),用于存储所述至少一个存储区域(310a,310b,310c)的至少一个参考值(R)和/或参考布局。
10.根据权利要求9所述的密码模块(100;100a;100b),其中,所述密码模块(100;100a;100b)被构造为根据所述参考值(R)执行所述检查(400;450,452,454)。
11.根据前述权利要求中的至少一项所述的密码模块(100;100a;100b),其中,所述密码模块(100;100a;100b)被构造为在至少一个结果和/或所述总结果为否定时启动错误反应,其中所述错误反应尤其是具有以下措施中的至少一项:a)重置、即复位所述计算装置(200;200a)和/或重置所述计算装置(200;200a)和所述密码模块(100;100a),b)向所述计算装置(200;200a)发送中断请求,c)阻止所述计算装置(200;200a)访问存储在所述密码模块(100;100a)中或可由所述密码模块(100;100a)提供的密码密钥和/或其他第一数据,d)防止执行所述计算装置(200;200a)的引导加载器,尤其是通过所述计算装置(200;200a)的重置保持,即将所述计算装置(200;200a)保持在重置状态中,e)为所述计算装置(200;200a)提供所述结果和/或总结果,和/或将所述结果和/或总结果发送给所述计算装置(200;200a)。
12.根据前述权利要求中的至少一项所述的密码模块(100;100a;100b),其中,所述密码模块(100;100a;100b)被构造为在所述检查(400;450,452,454)的范围内明确所述至少一个存储区域(310a,310b,310c)的内容是否对应于可预给定的存储内容。
13.根据前述权利要求中的至少一项所述的密码模块(100;100a;100b),其中,所述至少一个存储区域(310a,310b,310c)具有被设置用于在所述计算装置(200;200a)上执行的至少一个计算机程序(PRG1,BL),尤其是用于所述计算装置(200;200a)的引导加载器(BL)。
14.根据前述权利要求中的至少一项所述的密码模块(100;100a;100b),其中,所述密码模块(100;100a;100b)被构造为向所述计算装置(200;200a)提供第一数据,尤其是密码密钥,其中所述密码模块(100;100a;100b)尤其是被构造为根据所述检查(400;450,452,454)仅部分地或完全不向所述计算装置(200;200a)提供所述第一数据。
15.用于运行密码模块(100;100a;100b)、尤其是用于计算装置(200;200a)的密码模块(100;100a;100b)的方法,其中所述密码模块(100;100a;100b)检查(400;450,452,454)所述计算装置(200;200a)能够访问的存储装置(300)的至少一个存储区域(310a,310b,310c),由此获得所述检查的结果,并且所述密码模块至少临时地存储(410;450,452,454)所述结果。
16.根据权利要求15所述的方法,其中,所述密码模块(100;100a;100b)检查(450,452,454)所述存储装置(300)的多个存储区域(310a,310b,310c),其中所述密码模块(100;100a;100b)尤其是周期性地检查(450,452,454)所述存储装置(300)的多个存储区域(310a,310b,310c),其中尤其是所述密码模块(100;100a;100b)在至少一个随机或伪随机选择的时刻检查所述至少一个存储区域(310a,310b,310c),和/或b)至少临时地以随机或伪随机顺序检查所述多个存储区域(310a,310b,310c),其中尤其是所述密码模块(100;100a;100b)至少临时地以易失性和/或非易失性方式存储(450,452,454)所述检查的结果。
CN201980040931.5A 2018-06-20 2019-05-22 密码模块和用于密码模块的运行方法 Pending CN112292679A (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
DE102018209965 2018-06-20
DE102018209965.0 2018-06-20
DE102018211752 2018-07-13
DE102018211752.7 2018-07-13
DE102018213618.1 2018-08-13
DE102018213618.1A DE102018213618A1 (de) 2018-06-20 2018-08-13 Kryptografiemodul und Betriebsverfahren hierfür
PCT/EP2019/063189 WO2019242972A1 (de) 2018-06-20 2019-05-22 Kryptografiemodul und betriebsverfahren hierfür

Publications (1)

Publication Number Publication Date
CN112292679A true CN112292679A (zh) 2021-01-29

Family

ID=68805915

Family Applications (4)

Application Number Title Priority Date Filing Date
CN201980041324.0A Pending CN112313651A (zh) 2018-06-20 2019-05-22 密码模块和针对其的运行方法
CN201980040931.5A Pending CN112292679A (zh) 2018-06-20 2019-05-22 密码模块和用于密码模块的运行方法
CN201980041249.8A Pending CN112292680A (zh) 2018-06-20 2019-05-22 密码模块和针对其的运行方法
CN201980040932.XA Pending CN112236771A (zh) 2018-06-20 2019-05-22 计算装置和用于计算装置的运行方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201980041324.0A Pending CN112313651A (zh) 2018-06-20 2019-05-22 密码模块和针对其的运行方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN201980041249.8A Pending CN112292680A (zh) 2018-06-20 2019-05-22 密码模块和针对其的运行方法
CN201980040932.XA Pending CN112236771A (zh) 2018-06-20 2019-05-22 计算装置和用于计算装置的运行方法

Country Status (5)

Country Link
US (4) US11366911B2 (zh)
EP (5) EP4246335A3 (zh)
CN (4) CN112313651A (zh)
DE (4) DE102018213616A1 (zh)
WO (4) WO2019242970A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7286381B2 (ja) * 2019-04-01 2023-06-05 キヤノン株式会社 情報処理装置とその制御方法
WO2021217652A1 (zh) 2020-04-30 2021-11-04 西门子股份公司 一种移动存储设备的控制方法、装置和计算机可读介质
US11651077B2 (en) * 2021-01-22 2023-05-16 Dell Products L.P. Systems and methods for providing secured boot and scan for devices with limited access

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
DE10131577A1 (de) 2001-07-02 2003-01-16 Bosch Gmbh Robert Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation seines Programms
US7401234B2 (en) * 2004-03-01 2008-07-15 Freescale Semiconductor, Inc. Autonomous memory checker for runtime security assurance and method therefore
US7500098B2 (en) * 2004-03-19 2009-03-03 Nokia Corporation Secure mode controlled memory
US7937593B2 (en) * 2004-08-06 2011-05-03 Broadcom Corporation Storage device content authentication
US7356668B2 (en) * 2004-08-27 2008-04-08 Microsoft Corporation System and method for using address bits to form an index into secure memory
US20080141042A1 (en) * 2006-12-11 2008-06-12 Phison Electronics Corp. Memory card and security method therefor
DE102007013685A1 (de) * 2007-03-22 2008-09-25 Robert Bosch Gmbh Kollisionswarnvorrichtung für Kraftfahrzeuge
US7917741B2 (en) * 2007-04-10 2011-03-29 Standard Microsystems Corporation Enhancing security of a system via access by an embedded controller to a secure storage device
US8375219B2 (en) * 2007-10-24 2013-02-12 Microsoft Corporation Program and operation verification
DE102008010233A1 (de) * 2008-02-21 2009-08-27 Robert Bosch Gmbh Anordnung zur Überprüfung eines Programmspeichers einer Recheneinheit
US8370644B2 (en) * 2008-05-30 2013-02-05 Spansion Llc Instant hardware erase for content reset and pseudo-random number generation
DE102009046436A1 (de) 2009-11-05 2011-05-12 Robert Bosch Gmbh Kryptographisches Hardwaremodul bzw. Verfahren zur Aktualisierung eines kryptographischen Schlüssels
US8510569B2 (en) * 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
US8826035B2 (en) * 2009-12-23 2014-09-02 Intel Corporation Cumulative integrity check value (ICV) processor based memory content protection
DE102010002472A1 (de) * 2010-03-01 2011-09-01 Robert Bosch Gmbh Verfahren zum Verifizieren eines Speicherblocks eines nicht-flüchtigen Speichers
EP2461251B1 (en) * 2010-12-03 2017-06-21 Robert Bosch GmbH Memory protection unit and a method for controlling an access to a memory device
US9262631B2 (en) * 2011-11-15 2016-02-16 Mstar Semiconductor, Inc. Embedded device and control method thereof
US9038179B2 (en) * 2012-08-28 2015-05-19 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Secure code verification enforcement in a trusted computing device
US9473954B2 (en) * 2013-06-11 2016-10-18 Jin Jiang Performance monitor, evaluation and diagnosis system for wireless sensor networks
CN105637486B (zh) * 2013-10-31 2018-11-13 慧与发展有限责任合伙企业 内存完整性检查
DE102014208838A1 (de) * 2014-05-12 2015-11-12 Robert Bosch Gmbh Verfahren zum Betreiben eines Steuergeräts
US9553721B2 (en) * 2015-01-30 2017-01-24 Qualcomm Incorporated Secure execution environment communication
DE102015202935A1 (de) * 2015-02-18 2016-08-18 Robert Bosch Gmbh Verfahren zum Manipulationsschutz
EP3065078A1 (de) * 2015-03-02 2016-09-07 Siemens AG Österreich Schutz von speicherinhalten eines speichers eines computersystems unter verwendung einer hashfunktion
DE102015203776A1 (de) * 2015-03-03 2016-09-08 Robert Bosch Gmbh Verfahren zur Programmierung eines Steuergeräts eines Kraftfahrzeugs
DE102015108504B4 (de) * 2015-05-29 2019-05-02 Fujitsu Client Computing Limited Verfahren zum sicheren Booten eines Computersystems und Computersystem
KR102576417B1 (ko) * 2015-11-19 2023-09-08 로베르트 보쉬 게엠베하 네트워크화된 컴퓨터를 통한 임베디드 디바이스에 대한 보안 액세스 제어
US9900310B2 (en) * 2016-02-24 2018-02-20 Intel Corporation Local verification of code authentication
DE102016206630A1 (de) * 2016-04-20 2017-11-09 Robert Bosch Gmbh Verfahren und Vorrichtung zur Vermeidung von Manipulation einer Datenübertragung
CN109314645B (zh) * 2016-08-10 2021-08-13 Kddi株式会社 数据提供系统、数据保护装置、数据提供方法以及存储介质
GB2555628B (en) * 2016-11-04 2019-02-20 Advanced Risc Mach Ltd Main processor error detection using checker processors
KR101887974B1 (ko) * 2016-12-01 2018-08-13 현대오트론 주식회사 엔진제어기의 안전부팅을 위한 시스템 및 방법
US10230527B2 (en) * 2017-04-19 2019-03-12 Continental Automotive Systems, Inc. Method and apparatus to quickly authenticate program using a security element
US10877806B2 (en) * 2017-06-14 2020-12-29 Intel Corporation Method and apparatus for securely binding a first processor to a second processor
CN107466031A (zh) * 2017-08-08 2017-12-12 深圳市金立通信设备有限公司 一种保护数据的方法及终端
US10924277B2 (en) * 2018-01-25 2021-02-16 Micron Technology, Inc. Certifying authenticity of stored code and code updates
US10409585B2 (en) * 2018-02-14 2019-09-10 Micron Technology, Inc. Over-the-air (OTA) update for firmware of a vehicle component
US10719607B2 (en) * 2018-03-19 2020-07-21 Nxp B.V. Data integrity verification in a non-volatile memory

Also Published As

Publication number Publication date
DE102018213615A1 (de) 2019-12-24
WO2019242969A1 (de) 2019-12-26
US11366911B2 (en) 2022-06-21
US11657165B2 (en) 2023-05-23
EP3811260A1 (de) 2021-04-28
DE102018213617A1 (de) 2019-12-24
EP4246335A2 (de) 2023-09-20
CN112313651A (zh) 2021-02-02
US20210374230A1 (en) 2021-12-02
WO2019242970A1 (de) 2019-12-26
CN112292680A (zh) 2021-01-29
EP3811263B1 (de) 2023-09-27
US20210216477A1 (en) 2021-07-15
EP3811261A1 (de) 2021-04-28
WO2019242971A1 (de) 2019-12-26
CN112236771A (zh) 2021-01-15
EP3811261B1 (de) 2023-04-19
EP4246335A3 (de) 2023-11-29
US20210073397A1 (en) 2021-03-11
EP3811262A1 (de) 2021-04-28
DE102018213616A1 (de) 2019-12-24
WO2019242972A1 (de) 2019-12-26
US11461479B2 (en) 2022-10-04
DE102018213618A1 (de) 2019-12-24
US20210248088A1 (en) 2021-08-12
EP3811260B1 (de) 2023-04-19
EP3811263A1 (de) 2021-04-28

Similar Documents

Publication Publication Date Title
US10419216B2 (en) Keying infrastructure
US8407488B2 (en) Semiconductor device including encryption section, semiconductor device including external interface, and content reproduction method
CN102298529B (zh) 为系统提供硅集成代码
CN112292679A (zh) 密码模块和用于密码模块的运行方法
US11568088B2 (en) Method, processor and device for checking the integrity of user data
US20160098555A1 (en) Program code attestation circuitry, a data processing apparatus including such program code attestation circuitry and a program attestation method
US20220284105A1 (en) Systems, methods, and devices for secured nonvolatile memories
KR20140068867A (ko) 부팅 프로세스 동안 구성요소들을 인증하기 위한 시스템 및 방법
US10776493B2 (en) Secure management and execution of computing code including firmware
US20220382874A1 (en) Secure computation environment
JP2021179982A (ja) シリコンデバイスファームウェア上のロールバック攻撃を防止するセキュリティシステム、および、方法
TW202145007A (zh) 應用加速驗證映像檔方法的系統
CN115033930A (zh) 用户态文件完整性度量方法、装置、设备和介质
KR20230091660A (ko) 소프트웨어의 무결성 검증 방법 및 그 장치
JP6744256B2 (ja) 確認システム、制御装置及び確認方法
US10461926B2 (en) Cryptographic evidence of persisted capabilities
US20230152980A1 (en) External memory data integrity validation
CN116208353A (zh) 一种校验固件的方法、装置、网卡、芯片系统及服务器
WO2016184180A1 (zh) 一种系统安全启动方法及装置
CN111079194A (zh) 计算装置和用于该计算装置的运行方法
CN115130106A (zh) 一种通过fTPM实现可信启动的方法及相关装置
Detken et al. Software-design for internal security checks with dynamic integrity measurement (DIM)
US20200089890A1 (en) Device unit suitable for operation in a protected and/or open operating state and associated method
US20240078316A1 (en) Secure booting system and operation method thereof
US20240193275A1 (en) Electronic device and secure booting method thereof

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination