CN114637996A - 用于以确保安全的方式启动计算单元的方法 - Google Patents

用于以确保安全的方式启动计算单元的方法 Download PDF

Info

Publication number
CN114637996A
CN114637996A CN202111539771.4A CN202111539771A CN114637996A CN 114637996 A CN114637996 A CN 114637996A CN 202111539771 A CN202111539771 A CN 202111539771A CN 114637996 A CN114637996 A CN 114637996A
Authority
CN
China
Prior art keywords
program
mac
host
hsm
memory
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
CN202111539771.4A
Other languages
English (en)
Inventor
P·珀因斯汀
F·诺滕斯泰纳
M·施赖贝尔
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 CN114637996A publication Critical patent/CN114637996A/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/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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

一种以确保安全的方式启动计算单元的方法,其中由HSM读取引导存储区,确定实际引导MAC并将其与参考引导MAC比较。如果实际引导MAC与参考引导MAC相同,则由主机执行在引导存储区中存储的引导程序,其中由HSM将密钥加载到密码模块中,其中由主机读取程序存储区并将其传输到所述密码模块。由所述密码模块分别在使用所述密钥的情况下确定针对所述程序存储区的实际程序MAC,其中由HSM分别将实际程序MAC与相对应的参考程序MAC比较。由主机执行在所述程序存储区中存储的应用程序,并且如果在比较中确定对于其中存储有所述应用程序的程序存储区而言实际程序MAC与参考程序MAC不同,则HSM禁止执行所述应用程序。

Description

用于以确保安全的方式启动计算单元的方法
技术领域
本发明涉及一种用于以确保安全的方式(abgesichert)启动计算单元的方法以及用于执行所述方法的计算单元和计算机程序。
背景技术
在机器和车辆中使用可编程控制设备来控制所述机器和车辆或其组件。例如,机动车辆可以包含用于发动机控制、用于制动***等的控制设备。这些控制设备包括具有一个或典型地具有多个处理器核的处理器(也简称为主机或主机***),所述处理器执行在存储器中所存储的程序以实现所述控制设备的功能。
出于安全原因可以规定,通过所述控制设备检查程序的真实性(Authentizität),以防止受到操纵的程序被执行。该检查可以由所谓的硬件安全模块HSM来执行,该硬件安全模块提供用于确保通信以及由控制设备执行的程序免受操纵的功能。为此,HSM使用借助于密码函数和(秘密)密钥所计算出的签名。在接通所述控制设备之后,必须首先检查主机的加载程序的真实性,其中所述加载程序特别是加载至少一个应用程序。HSM对所述加载程序和应用程序的真实性的这种检查延长了所述控制设备的启动阶段。附加地,所述启动阶段的持续时间也可能通过如下方式而受到负面影响:HSM仅以较低带宽连接到其中存储有所述加载程序和应用程序的存储器,并且所述控制设备必须首先通过所述加载程序被初始化并且在初始时间段内以降低的时钟频率运行,其中所述时钟频率在该初始化的范畴内才被提高。
发明内容
根据本发明,提出了具有独立专利权利要求的特征的用于以确保安全的方式启动计算单元的方法以及用于执行所述方法的计算单元和计算机程序。有利的设计方案是从属权利要求和以下描述的主题。
本发明利用以下措施:只有主机的引导存储区(Bootspeicherbereich)的真实性应直接使用硬件安全模块(HSM)来被检查。在执行了引导程序之后,在使用多个密码模块(Kryptomodule)的情况下间接检查主机的其他程序存储区,其中通过所述主机将这些程序存储区加载到这些密码模块中。这是有利的,因为主机典型地是以高带宽连接到该主机存储器的,而HSM则只能以相对较低的带宽访问所述主机存储器。
更具体地,用于以确保安全的方式的启动的所述方法涉及如下计算单元,其中该计算单元具有主机、主机存储器、硬件安全模块HSM、HSM存储器和至少一个密码模块,其中所述HSM和所述至少一个密码模块被设立为确定消息认证码MAC。
所述主机在此具有带有一个或优选多个主机内核(Hostkerne)的处理器,并且所述主机被设立为:执行在所述主机存储器中所存储的程序(引导程序、应用程序、检查程序)。
HSM具有至少一个HSM内核(HSM-Kern),在所述HSM内核中可以执行在HSM存储器中所存储的程序(HSM程序),其中所述主机正如不能访问HSM存储器那样也不能访问HSM。HSM用作所述计算单元的信任锚,并且特别是管理存储在HSM存储器中的秘密密钥和参考消息认证码(MAC)。此外,HSM或HSM程序被设立为,提供密码功能,特别是用于计算出MAC、但也例如用于对数据进行加密和解密的算法。
所述密码模块或者说密码学模块(Kryptographie-Modul)是针对密码功能的硬件加速器模块,即所述密码模块或者说密码学模块被设立为将密码功能应用于被传输到密码模块的数据,其中所述密码功能这里特别是消息认证码的计算(但也可能例如是加密、解密)。根据本发明,对实际程序MAC的计算或确定通过所述密码模块进行。由于所述密码模块是作为硬件实现的,因此它具有高速度,并且对于执行密码功能也有可预测的时间需求。密钥从HSM加载到所述密码模块中,所述密码模块在将密码功能应用于从主机传输到密码模块的数据时使用所述密钥。(秘密)密钥对主机来说保持未知。
主机存储器和HSM存储器均为非易失性存储器、SSD(Solid State Drive,固态驱动器)或可以例如被连接到外部的硬盘,所述非易失性存储器例如是闪存,其可以例如与所述主机、所述密码模块和HSM集成在一个芯片中。主机存储器和HSM存储器可以是单个存储器元件中被分开的区,或者也可以位于彼此分开的存储器元件中。
主机存储器和HSM存储器均可以包括多个存储器元件。所述主机优选不能访问HSM存储器。
消息认证码,简称MAC(英语:Message Authentication Code,消息认证码),允许检查消息或数据的真实性,其中所述消息或数据这里是存储在所述主机存储器的存储区中的数据。在此,MAC算法一方面使用要检查的数据以及另一方面使用秘密密钥以作为一对输入,并从这一对中计算出用于所述数据的校验和,该校验和称为MAC。如果这些数据已更改,则这可以通过与之前计算出的参考MAC进行比较而得以确定。因此在此应用中,通过HSM可以确定待检查的存储区的内容是未改变的(真实的)还是已改变的(已受损害的(kompromittiert))。如果是后者,则必须假定存储在所述存储区中的程序或数据已受到操纵。MAC算法本身是本领域技术人员已知的。优选地规定,使用密钥哈希消息认证码(Keyed-Hash-Message Authentication Code)(HMAC;对于可能的实现方案参见例如NIST标准FIPS198或RFC 2104)和/或基于密文的消息认证码(cipher-based message authenticationcode)(CMAC;对于可能的实现方案参见例如NIST特别出版物800-38B)。
首先由HSM读取主机存储器中的引导存储区,确定针对所述引导存储区的实际引导MAC并将所述实际引导MAC与存储在HSM存储器中的参考引导MAC进行比较。然后,如果所述实际引导MAC与所述参考引导MAC相同,则由所述主机执行在所述引导存储区中所存储的引导程序。这可以看作是对引导程序的真实性检查。所述引导程序或加载程序执行计算单元的基本初始化,特别地,所述引导程序或加载程序例如可以设置计算单元的运行频率。进一步地(weitergehend),所述引导程序调用应用程序,这些应用程序根据本发明经受后续真实性检查。
由HSM将存储在HSM存储器中的一个或多个密钥加载到所述至少一个密码模块中。由主机读取所述主机存储器中的一个或多个程序存储区并传输到所述至少一个密码模块。所述至少一个密码模块分别在使用所述一个或多个密钥的情况下确定针对所述一个或多个程序存储区的实际程序MAC。HSM分别将实际程序MAC与存储在HSM存储器中的相对应的参考程序MAC进行比较。由所述主机执行在所述一个或多个程序存储区中所存储的一个或多个应用程序,其中如果在比较中确定对于其中存储有所述一个或多个应用程序中的至少一个应用程序的程序存储区而言实际程序MAC与参考程序MAC不同,则HSM阻止执行所述至少一个应用程序。
程序存储区可以彼此不相交(disjunkt)和/或至少部分重叠。同样,一个程序存储区可以是另一个程序存储区的子集。优选地,一个程序存储区包括整个主机存储器,优选地包括所述引导存储区和可能的检查存储区在内。优选地,所述主机存储器的全部(已占用加上未占用的)存储空间减去所有存储区(程序存储区+引导存储区+检查存储区,其中可能的重叠仅被计数一次)的大小之和之后是小于最小的程序存储区的。由此可以识别出:受到操纵的应用程序在另一个存储区中保存未受到操纵的应用程序的如下副本,于是该副本总是会被检查。
(既在HSM中又在密码模块中的)MAC的确定优选地考虑相应存储区的地址信息。
在确保安全的方法中确定参考MAC(参考引导MAC、参考程序MAC、参考检查MAC)并传送到所述计算单元。例如,在对主机存储器进行闪存编程(Flashprogrammierung)时,可以借助于非对称方法(例如RSA、ECC)确保所编程的软件的完整性。在此可以同时确定或计算出参考MAC。因此,参考MAC是对应于所述软件(引导程序、应用程序、检查程序)的未受到操纵的状态的MAC。然后通过安全通信连接将计算出的参考MAC传送到所述计算单元,更准确地说传送到HSM或HSM存储器。
优选地,在确定了其中存储有应用程序的程序存储区的实际程序MAC并与相对应的参考程序MAC比较了之后,并且在由HSM在此过程中确定实际程序MAC与相对应的参考程序MAC相同的情况下才开始执行所述程序。通过这种方式,没有任何应用程序能够在没有事先真实性检查的情况下就被启动。因此提供了高度的安全性。
优选地,如果在比较中确定对于其中存储有所述一个或多个应用程序中的至少一个应用程序的程序存储区而言实际程序MAC与相对应的参考程序MAC不同,则由HSM中断所述至少一个应用程序的执行。也就是说,可以中断已经在运行中的应用程序。
优选地,由HSM读取所述主机存储器中的至少一个检查存储区,确定针对所述至少一个检查存储区的至少一个实际检查MAC,并且将所述至少一个实际检查MAC与存储在HSM存储器中的至少一个相对应的参考检查MAC进行比较。如果所述至少一个实际检查MAC与至少一个参考检查MAC相同,则由所述主机执行在所述至少一个检查存储区中所存储的至少一个检查程序。所述至少一个检查程序被设立为:当在主机中被执行时,由所述主机执行读取所述主机存储器中的一个或多个程序存储区并传输到所述至少一个密码模块的步骤,其中优选地,不同的检查程序在所述主机的不同主机内核中执行,所述主机内核进一步优选地与其中执行引导程序的主机内核不同。所述检查程序实现了将程序存储区加载到密码模块中。这里可以将不同的程序存储区分配给不同的检查程序,从而可以使所述方法的执行得以并行化并因此加速。
优选地,由HSM向所述主机发送至少一个检查请求:最迟直至所确定的检查时间点为止读取主机存储器中的至少一个待检查的程序存储区并传输到所述密码模块。进一步优选地,如果由HSM确定在所述至少一个检查请求中所确定的检查时间点之后的特定时间段内都没有为所述至少一个待检查的程序存储区确定实际程序MAC或者所述实际程序MAC与参考程序MAC不同,则阻止执行在所述至少一个待检查的程序存储区中所存储的程序。所述时间段特别是考虑了所述密码模块的处理持续时间。根据该实施方式实现了监视功能,其中所述主机必须在一定时间内向HSM证明:已对相应存储区进行了检查。
优选地,所述检查时间点包括:位于在执行引导程序的开始时间点之后和/或必要时执行所述至少一个检查程序的开始时间点之后和/或执行应用程序的开始时间点之后的预定时间间隔内的时间点;其中在使用应用程序的开始时间点的情况下,则所述至少一个待检查的程序存储区是其中存储有所述应用程序的程序存储区。该实施方式的有利效果在于,已被执行的、在运行时期间才以未经允许的方式被更改的程序可以被识别为受到操纵并且可以被中断。
根据本发明的计算单元(例如机动车辆的控制设备)特别是以程序技术被设立为执行根据本发明的方法。所述计算单元包括主机、主机存储器、硬件安全模块HSM、HSM存储器和至少一个密码模块,其中所述HSM和所述至少一个密码模块被设立为确定消息认证码MAC。
优选地,所述计算单元包括多个密码模块。同样优选地,所述主机包括多个主机内核,其中主机内核的数量大于或进一步优选地等于密码模块的数量。这些措施使得能够并行地执行多个程序存储区的真实性检查,并且由此能够进一步加速所述方法和所述计算单元或所述应用程序的启动。
以具有用于执行所有方法步骤的程序代码的计算机程序或计算机程序产品的形式实现根据本发明的方法也是有利的,因为这导致特别低的成本,特别是在进行执行的控制设备还用于其他任务并且因此总归存在的情况下。适合用于提供所述计算机程序的数据载体特别是磁的、光的和电的存储器,例如硬盘、闪存、EEPROM、DVD等。程序也可以经由计算机网络(互联网、内联网等)下载。
本发明的其他优点和设计方案从说明书和附图中得出。
附图说明
在附图中基于实施例示意性地示出本发明并且在下面参考附图描述本发明。
图1示意性地示出了根据实施方式的计算单元的结构;
图2示出了根据优选实施方式的用于以确保安全的方式启动计算单元的方法的流程图。
具体实施方式
图1示意性地示出了可用于实现本发明的计算单元1的结构,其中所述计算单元例如是机动车辆中的控制设备或工业设施中的机器中的控制设备。计算单元1包括主机2、硬件安全模块(HSM)4和至少一个密码模块6作为计算元件(Berechnungselement)。非易失性HSM存储器8和非易失性主机存储器10也被包括在该计算单元1中。
此外,计算单元1可以具有与主机连接的至少一个外部接口12。所述至少一个可选的外部接口12可以是串行或并行接口,例如以太网接口、CAN总线接口、USB接口等,所述外部接口用于所述计算单元与外部设备的通信;例如,发动机控制设备可以经由CAN总线与传感器或另外的控制设备连接。这些元件中的一些或全部元件可以集成在单个芯片中,例如以微控制器的形式。
主机2具有一个或优选多个计算内核(Rechenkerne)20(称为主机内核),在所述计算内核中可以执行计算机程序(也简称为程序)。实现所述计算单元的真正(eigentlich)功能的程序、例如在发动机控制设备的情况下控制所述发动机的程序在下文中称为应用程序或应用软件。同样设置(至少一个)引导程序或启动程序,其在被执行时特别是进行所述计算单元或所述计算单元的元件的初始化并且然后可以调用应用程序。此外,可以设置至少一个存储器检查程序或检查程序来用于执行,其在被执行时使得能够对存储区进行真实性检查。这样的检查程序也可以是所述引导程序的一部分。
这些程序被存储在具有多个存储区的主机存储器10中。示例性地提及:存储区22a、22b、22c。所述引导程序可以存储在例如引导存储区22a中。所述至少一个检查程序可以存储在检查存储区22b中。应用程序可以存储在其他应用存储区22c中。即使这里将主机存储器表示为单个存储器元件,所述主机存储器通常也可以包括多个存储器元件或主机存储器元件。
主机存储器10与主机2经由数据连接24、例如串行或并行连接而连接,以用于交换数据,其中主机(或其计算内核)既能够从主机存储器读取数据又能够将数据写入到主机存储器。也可以将主机存储器或多个主机存储器元件中的至少一个主机存储器元件实施为经由外部接口12连接的外部主机存储器或外部主机存储器元件。
提供安全相关的功能的HSM 4包括至少一个未示出的计算内核(称为HSM内核),在所述计算内核中可以执行在HSM存储器8中所存储的至少一个程序(称为HSM程序),其中所述至少一个程序实现这些功能。这些功能可以包括密码功能,特别是数据的加密和/或解密,或消息认证码的确定和/或检查。HSM 4与主机经由连接26、例如串行或并行连接而连接以用于交换数据。因此,数据可以从主机传输到HSM,所述HSM例如对所述数据进行加密或解密或检查消息认证码。特别地,HSM 4或由HSM 4执行的HSM程序被设立为阻止程序在主机2中的执行,即对程序执行的启动进行等待直到存在来自HSM的许可为止,或终止执行已经在运行中的程序。
HSM 4还与主机存储器10经由连接28、例如串行或并行连接而连接以用于交换数据,其中在这里HSM可以对主机存储器进行读访问。写访问可以被实现,但不是必须被实现。HSM和主机存储器之间的连接28典型地具有比主机和主机存储器之间的连接24明显更低的带宽,例如仅十分之一。
还可以设置HSM 4和外部接口12之间的连接(未示出),以例如使得HSM程序、密钥和/或消息认证码能够直接通过HSM更新,即无需经由主机间接传输数据到HSM。
HSM存储器8借助于连接28、例如串行或并行连接而(优选仅)与HSM 4连接以用于交换数据,其中HSM既能够从HSM存储器读取数据又能够将数据写入HSM存储器。优选地,不存在从HSM存储器8到主机2的连接;因此,无法通过主机读取或更改存储在HSM存储器中的安全相关数据(密钥、消息认证码等)。
在HSM存储器8中除了HSM程序之外特别是还存储了秘密密钥32和参考消息认证码(参考MAC)34a、34b。
密码模块6或者说密码学模块是针对密码功能(例如,加密、解密、计算出消息认证码)的硬件加速器模块,即所述密码模块6或者说密码学模块被设立为将密码功能应用于被传输到密码模块的数据。在此过程中使用的秘密密钥可以存储在密钥寄存器36中。可以设置多个密码模块,其中仅示出了一个密码模块,而其他密码模块则通过点来表明,其中关于所示出的密码模块所的阐述内容同样适用于所述其他密码模块。
所述密码模块6特别是被设立为,在使用存储在密钥寄存器36中的密钥的情况下计算出或确定针对所传输的数据的消息认证码(MAC)。该结果、即所计算出的MAC由密码模块6存储在结果寄存器38中。
所述(至少一个)密码模块6经由连接40与主机2连接并经由连接42与HSM 4连接。这两个连接可以彼此独立地是串行或并行的连接。
主机2和密码模块6之间的连接40在此被有利地设计为,使得主机只能将应当为其计算出MAC的数据传输到密码模块6,但既不能对密钥寄存器36进行读取也不能对密钥寄存器36进行写入并且不能对结果寄存器38进行写入(附加地,还可以阻止对结果寄存器的读访问)。如果加密和/或解密也作为密码学功能而由密码模块执行,则可以规定密码模块6将经过加密或经过解密的数据传输到主机。然而,这里主机也没有对密钥寄存器进行读写访问,并且至少也没有对结果寄存器进行写访问。
另一方面,HSM 4和密码模块6之间的连接42被设计为使得HSM 4可以写入密钥寄存器40,也就是说可以将密钥写入密钥寄存器40,并且可以读取结果寄存器42,也就是说可以读取计算出的MAC。
通过密码模块6与主机2或HSM 4之间的连接40、42的这种设计,确保了主机或在主机中执行的可能遭到泄漏的程序不能拥有秘密密钥或不能操纵密钥寄存器。
图2示出了根据本发明优选实施方式的用于以确保安全的方式启动计算单元的方法的流程图。在步骤100中启动或复位了计算单元后,立即在步骤102中首先检查引导程序的真实性。为此,HSM,更准确地说是在HSM内核中执行的HSM程序,从主机存储器中读取其中存储有引导程序的引导存储区并且计算出或确定所读取的引导存储区的实际引导MAC(Ist-Programm-MAC),即对包含在引导存储区中并从该引导存储区读取的数据应用MAC算法。在此使用存储在HSM存储器中的秘密密钥。HSM将计算出的实际引导MAC与存储在HSM存储器中的参考引导MAC进行比较。
如果实际引导MAC与参考引导MAC不同,即引导存储区相对于较早的参考状态发生了变化,并且因此没有确认引导程序的真实性,则以步骤103继续进行,在该步骤中采取合适的措施来尽可能防止执行受到操纵的引导程序。一种可能的措施是输出或发送错误消息(优选地,HSM为此与外部接口连接)并且优选地停止计算单元。然后可以分析错误,并且可以对例如主机存储器或至少对引导存储区重新编程,或者如果在错误分析中确定参考引导MAC是错误的,则可以在HSM存储器中更改该参考引导MAC。另一种可能的措施是启动存储在不可变存储器中的备份引导程序(Backup-Bootprogramm)。另外的可能措施同样是可以想到的。
另一方面,如果实际引导MAC与参考引导MAC相同,即引导存储区相对于较早的参考状态没有变化并且因此引导程序的真实性得到确认,则HSM允许该引导程序的执行。对应地,以步骤104继续进行,在该步骤中执行引导程序。引导程序典型地对计算单元进行初始化,然后促使应用程序的启动。所述初始化特别是可以包括设置(Einstellen)计算单元的运行频率;为此大多启动(hochfahren)锁相环路(PLL,英语:Phase Locked Loop)。在该设置之前,计算单元例如仅以相对较小的备份频率(Backup-Frequenz)运行。
在也可以与步骤104(执行引导程序)并行执行的步骤106中,HSM将秘密密钥加载到密码模块的密钥寄存器中,即HSM从HSM存储器读取存储在HSM存储器中的密钥,并且将所述密钥传输到或写入到密码模块的密钥寄存器中。如果存在多个密码模块,则也对应地将密钥加载到这些密码模块中。在这里,可以预给定:特定密钥到特定密码模块的分配。
在可选步骤108中,HSM检查至少一个检查程序的真实性。为此,HSM从主机存储器读取至少一个其中存储有至少一个检查程序的检查存储区并且计算出或确定所读取的至少一个检查存储区的至少一个实际检查MAC,即:将MAC算法应用于在至少一个检查存储区中所包含并从所述至少一个检查存储区中所读取的数据。HSM将被计算出的至少一个实际检查MAC与被存储在HSM存储器中的至少一个参考检查MAC进行比较。可能的是,一个检查存储区包含多个检查程序,或者一个检查程序经多个检查存储区延伸,因此检查程序的数量不必与检查存储区的数量相同。
当在主机中执行时特别是实现步骤110的程序被称为检查程序。步骤108是可选的,因为这样的检查程序可以已经被包括在已经在步骤102中已被检查了真实性的引导程序中。
如果在比较中确定实际检查MAC与相对应的参考检查MAC不同,也即:相对应的检查存储区相对于较早的参考状态发生了变化并且因此存储在所述检查存储区中的检查程序的真实性没有得到确认,则以步骤109继续进行,在该步骤中采取合适的措施来尽可能地防止受到操纵的检查程序的执行。特别地,可以在步骤109中阻止执行所述检查程序,即不启动所述检查程序。同样可以输出或发送错误消息,以便例如向计算单元的用户提示可能的操纵,该用户然后可以分析错误并且例如对所述检查存储区重新编程。
另一方面,如果在比较中确定出:实际检查MAC与相对应的参考检查MAC相同,即相对应的检查存储区相对于较早的参考状态没有变化,则以步骤110继续进行。
在步骤110中,主机、更准确地说在主机中执行的检查程序或引导程序(如果该引导程序包括检查程序的话)将主机存储器中的程序存储区加载到密码模块中,即主机从主机存储器读取程序存储区并将该程序存储区传输到密码模块。更准确地说,读取存储在程序存储区中的数据并且传输到密码模块。主机存储器中的其中至少部分地存储有一个或多个应用程序的存储区被称为程序存储区。一个应用程序也可以经多个程序存储区而延伸。因此,程序存储区与应用程序之间并非必要地存在一对一的分配,即使这当然是可能的和有利的,因为其使得能够对操纵尝试进行明确的分配。
在步骤112中,密码模块计算出或确定从主机传输的程序存储区的实际程序MAC。密码模块因此将MAC算法应用于从主机传输的数据,其中在MAC算法中使用存储在密钥存储器中的密钥,该密钥在步骤106中已从HSM传输到密码模块或密钥存储器。如果存在多个密钥,则必须将密钥清楚地(klarerweise)分配到程序存储区,例如通过合适的标识符,该标识符也可能由HSM预给定。所确定的实际程序MAC被存储在密码模块的结果寄存器中。
步骤110(将程序存储区加载到密码模块中)和步骤112(确定实际程序MAC)并非必要地先后执行,而是典型地并行执行。对于逐块地处理数据的MAC算法尤其如此,例如所提到的HMAC和CMAC,它们将块密码(Blockchiffre)或哈希函数应用于数据块并将这些数据块链接。因此,数据(块)流通过主机被传输到密码模块并在那里以块的形式被并行处理。
在步骤114中,HSM将实际程序MAC与存储在HSM存储器中的相对应的参考程序MAC进行比较。为此,HSM从密码模块的结果寄存器中读取实际程序MAC,并从HSM存储器读取相对应的参考程序MAC。
如果在比较中确定实际程序MAC与相对应的参考程序MAC不同,即:相对应的程序存储区相对于较早的参考状态发生了变化,并且因此没有确认所述程序存储区中存储的应用程序的真实性,则以步骤115继续进行,在该步骤中采取合适的措施来尽可能防止受到操纵的应用程序的执行。特别地,可以在步骤115中阻止所述应用程序的执行,即不启动该应用程序,或者如果已经执行该应用程序,则中断该应用程序。同样可以输出或发送错误消息,以便例如向计算单元的用户提示可能的操纵,该用户然后可以分析错误并且例如对所述程序存储区重新编程。
另一方面,如果在比较中确定实际程序MAC与相对应的参考程序MAC相同,即相对应的程序存储区相对于较早的参考状态没有变化,则以步骤116继续进行,在该步骤中主机执行在所述程序存储区中所存储的一个或多个应用程序。
原则上可能的是:不同于所示出的顺序,应用程序可以由主机或引导程序立即启动而无需等待事先检查,并且以后如果在步骤114中确定其中存储有相应应用程序的程序存储区具有与相对应的参考程序MAC不同的实际程序MAC,则所述应用程序在已经被执行期间被中断。这样做的优点是可以尽快启动应用程序。操纵在之后才被识别,例如依照步骤114中的阐述。
然而,优选地规定,在其中存储有应用程序的程序存储区已被检查的情况下,即在所属的实际程序MAC已被确定并且被HSM与相对应的参考程序MAC比较之后,才允许启动该应用程序。因此,优选地在已依照步骤110、112、114检查了其中存储有相应应用程序的程序存储区之后才执行步骤116。这种实施方式提供了更高的安全性,因为从一开始就防止了受到操纵的应用程序的启动。
在可选步骤118中,根据优选实施方式可以规定,HSM向主机发送检查请求(箭头118a),在该检查请求中请求主机将程序存储区加载到密码模块中。在此,在所述检查请求中说明要加载的程序存储区和所确定的检查时间点。主机(或检查程序或引导程序)然后应当依照步骤110直到所说明的检查时间点为止将所述程序存储区加载到密码模块中,或者在该检查时间点至少已经开始这样做。依照步骤112,该密码模块为所传输的程序存储区确定相对应的实际程序MAC。
在所述检查请求中说明的检查时间点之后的特定时间段,HSM跳转(箭头118b)到步骤114,即,将基于所述检查请求所计算出的实际程序MAC与相对应的参考程序MAC进行比较并阻止(步骤115)或允许(步骤116)执行在检查请求中所说明的程序存储区中所存储的程序。所述时间段特别是考虑了密码模块的处理持续时间并因此可以优选地由密码模块的处理持续时间而给定(该处理持续时间本身是已知的,特别是如果密码模块被实现为硬件模块的话),其中还可以考虑要检查的程序存储区的大小。
当然,可以对多个或所有程序存储区或者也对引导存储区或对检查存储区执行该行为方式(Vorgehensweise),其中可以预给定不同的检查时间点并且也可以多次检查一个程序存储区。
例如,可以这样确定检查时间点,使得所述检查时间点处在计算机单元启动之后、在检查程序或引导程序开始执行之后或在存储于要检查的程序存储区中的应用程序开始执行之后的特定时间间隔。同样可以彼此独立地预给定多个检查时间点。例如,可以随机选择程序存储区和相对应的检查时间点。也可以在多个例如均匀或随机间隔开的检查时间点检查程序存储区。这种行为方式实现:即使在计算单元的较长运行时间之后也识别出在计算单元启动时还尚不存在而是在运行时间期间才进行的操纵尝试。

Claims (12)

1.用于以确保安全的方式启动计算单元的方法,所述计算单元具有主机、主机存储器、硬件安全模块HSM、HSM存储器和至少一个密码模块,其中所述HSM和所述至少一个密码模块被设立为确定消息认证码MAC;
其中由所述HSM读取所述主机存储器中的引导存储区,确定针对所述引导存储区的实际引导MAC,并将所述实际引导MAC与存储在所述HSM存储器中的参考引导MAC进行比较;
其中如果所述实际引导MAC与所述参考引导MAC相同,则由所述主机执行在所述引导存储区中所存储的引导程序;
其中由所述HSM将存储在所述HSM存储器中的一个或多个密钥加载到所述至少一个密码模块中;
其中由所述主机读取所述主机存储器中的一个或多个程序存储区并传输到所述至少一个密码模块;
其中由所述至少一个密码模块分别在使用所述一个或多个密钥的情况下确定针对所述一个或多个程序存储区的实际程序MAC;
其中由所述HSM分别将实际程序MAC与存储在所述HSM存储器中的相对应的参考程序MAC进行比较;
其中由所述主机执行在所述一个或多个程序存储区中所存储的一个或多个应用程序;以及
其中如果在比较中确定对于其中存储有所述一个或多个应用程序中的至少一个应用程序的程序存储区而言所述实际程序MAC与所述参考程序MAC不同,则由所述HSM阻止执行所述至少一个应用程序。
2.根据权利要求1所述的方法,其中,在确定了其中存储有应用程序的程序存储区的实际程序MAC并与相对应的参考程序MAC比较了之后,并且在由所述HSM在此过程中确定所述实际程序MAC与所述相对应的参考程序MAC相同的情况下才开始执行所述程序。
3.根据前述权利要求中任一项所述的方法,其中,如果在比较中确定对于其中存储有所述一个或多个应用程序中至少一个应用程序的程序存储区而言所述实际程序MAC与相对应的参考程序MAC不同,则由所述HSM阻止执行所述至少一个应用程序。
4.根据前述权利要求中任一项所述的方法,
其中,由所述HSM读取所述主机存储器中的至少一个检查存储区,确定针对所述至少一个检查存储区的至少一个实际检查MAC,并且将所述至少一个实际检查MAC与存储在所述HSM存储器中的至少一个相对应的参考检查MAC进行比较;
其中,如果所述至少一个实际检查MAC与所述至少一个参考检查MAC相同,则由所述主机执行在所述至少一个检查存储区中所存储的至少一个检查程序;
其中,所述至少一个检查程序被设立为:当在所述主机中被执行时,由所述主机执行读取所述主机存储器中的一个或多个程序存储区并传输到所述至少一个密码模块的步骤;
其中优选地,不同的检查程序在所述主机的不同主机内核中被执行,其中所述主机内核进一步优选地与其中执行所述引导程序的主机内核不同。
5.根据前述权利要求中任一项所述的方法,其中由所述HSM向所述主机发送至少一个检查请求:最迟直至所确定的检查时间点为止读取所述主机存储器中的至少一个待检查的程序存储区并传输到所述密码模块。
6.根据权利要求5所述的方法,其中,如果由所述HSM确定在所述至少一个检查请求中所确定的检查时间点之后的特定时间段内都没有为所述至少一个待检查的程序存储区确定实际程序MAC或者所述实际程序MAC与所述参考程序MAC不同,则阻止执行在所述至少一个待检查的程序存储区中所存储的程序。
7.根据权利要求5或6所述的方法,其中,所述检查时间点包括:位于在执行所述引导程序的开始时间点之后的预定时间间隔内和/或如果引用权利要求4则在执行所述至少一个检查程序的开始时间点之后和/或执行应用程序的开始时间点之后的预定时间间隔内的时间点;其中在使用所述应用程序的开始时间点的情况下,则所述至少一个待检查的程序存储区是其中存储有所述应用程序的程序存储区。
8.一种计算单元,所述计算单元包括主机、主机存储器、硬件安全模块HSM、HSM存储器和至少一个密码模块,其中所述HSM和所述至少一个密码模块被设立为确定消息认证码MAC;其中所述计算单元被设立为执行根据前述权利要求中任一项所述的方法的所有方法步骤。
9.根据权利要求8所述的计算单元,其中所述计算单元包括多个密码模块。
10.根据权利要求8或9所述的计算单元,其中,所述主机具有多个主机内核,并且所述主机内核的数量大于所述密码模块的数量,或进一步优选地等于所述密码模块的数量。
11.计算机程序,当所述计算机程序在计算单元上被执行时,所述计算机程序促使根据权利要求8至10中任一项所述的计算单元执行根据权利要求1至7中任一项所述的方法的所有方法步骤。
12.机器可读存储介质,所述机器可读存储介质具有在自身上所存储的根据权利要求11所述的计算机程序。
CN202111539771.4A 2020-12-16 2021-12-16 用于以确保安全的方式启动计算单元的方法 Pending CN114637996A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102020216030.9 2020-12-16
DE102020216030.9A DE102020216030A1 (de) 2020-12-16 2020-12-16 Verfahren zum abgesicherten Start einer Recheneinheit

Publications (1)

Publication Number Publication Date
CN114637996A true CN114637996A (zh) 2022-06-17

Family

ID=81847279

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111539771.4A Pending CN114637996A (zh) 2020-12-16 2021-12-16 用于以确保安全的方式启动计算单元的方法

Country Status (2)

Country Link
CN (1) CN114637996A (zh)
DE (1) DE102020216030A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022116869A1 (de) 2022-07-06 2024-01-11 Infineon Technologies Ag Verfahren zum ausführen eines programms auf einer datenverarbeitungsvorrichtung

Also Published As

Publication number Publication date
DE102020216030A1 (de) 2022-06-23

Similar Documents

Publication Publication Date Title
US10244394B2 (en) Method and update gateway for updating an embedded control unit
US8332653B2 (en) Secure processing environment
US9830456B2 (en) Trust transference from a trusted processor to an untrusted processor
US7831841B2 (en) Semiconductor device including encryption section, semiconductor device including external interface, and content reproduction method
US10091183B2 (en) Method and decision gateway for authorizing a function of an embedded control unit
CN108885668B (zh) 用于用户数据的完整性检查的方法、处理器和设备
US20140298026A1 (en) Information processing device and computer program product
US20070237325A1 (en) Method and apparatus to improve security of cryptographic systems
US20050182952A1 (en) Information processing apparatus and method and computer program
CN102105883A (zh) 电子装置以及电子装置的软件或固件更新的方法
EP2084848A2 (en) Method for programming on-chip non-volatile memory in a secure processor, and a device so programmed
CN107092833B (zh) 用于处理数据的组件和用于实施安全功能的方法
US20230351056A1 (en) Sram physically unclonable function (puf) memory for generating keys based on device owner
JP2007310688A (ja) マイクロコンピュータおよびそのソフトウェア改竄防止方法
WO2023212178A1 (en) Sram physically unclonable function (puf) memory for generating keys based on device owner
US11797681B2 (en) Fast and versatile multicore SoC secure boot method
CN116566613A (zh) 使用平台密钥保护与安全处理器的通信
CN114637996A (zh) 用于以确保安全的方式启动计算单元的方法
EP1465038A1 (en) Memory security device for flexible software environment
WO2019059148A1 (ja) Bios管理装置、bios管理システム、bios管理方法、及び、bios管理プログラムが格納された記録媒体
CN113342735B (zh) 一种处理器芯片及电子设备
CN114816549A (zh) 一种保护bootloader及其环境变量的方法及***
US7913074B2 (en) Securely launching encrypted operating systems
US20230244790A1 (en) Accelerated Secure Boot for Embedded Controllers
JP7511492B2 (ja) 自動車用電子制御装置

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