一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于执行计算单元的安全启动序列的方法与流程

2023-09-20 13:22:40 来源:中国专利 TAG:


1.本发明涉及一种用于执行计算单元的安全启动序列的方法以及一种用于执行该方法的计算单元。


背景技术:

2.机动车辆或其它机器的控制设备可以配备安全模块、比如所谓的硬件安全模块(hsm),该安全模块提供功能,用于以密码方式来保护控制设备的功能、尤其是控制设备对应用程序或计算机程序的执行。例如,应用程序的真实性可以在执行这些应用程序之前被检查,或者hsm可以执行对数据的加密和/或解密,比如从控制设备发送给另一计算单元或者被另一计算单元接收的数据。通常,hsm与控制设备的主处理器一起集成在微芯片中,以便确保高处理速度。


技术实现要素:

3.按照本发明,提出了具有专利独立权利要求的特征的一种用于执行计算单元的安全启动序列的方法以及一种用于执行该方法的计算单元。有利的设计方案是从属权利要求以及随后的描述的主题。
4.本发明利用如下措施:随着该计算单元的启动,启动安全模块和存储器保护单元,并且为存储器的存储加载程序的加载存储区激活写保护和/或读保护和/或执行保护。然后,通过安全模块来检查该加载存储区的完整性,并且如果该加载存储区的完整性得到确认,则存储器保护单元通过安全模块被配置为停用针对该加载存储区的读保护和/或执行保护,而且在主机中启动对该加载程序的执行。通过在完整性检查期间激活这些保护功能,由于启动该加载程序的时间点不同于该加载存储区的完整性检查的时间点所产生的攻击的漏洞被封闭或者至少被缩小。
5.在该计算单元中包括主机、至少一个存储器、安全模块和存储器保护单元。主机具有主机处理器。存储器保护单元可通过安全模块来配置,并且被设立为:针对该至少一个存储器的至少一个可配置区域,按照相应的配置选择性地实现主机访问的写保护和/或读保护和/或执行保护。由于存储器保护单元可通过安全模块来配置,所以可能的是:为在相应时间点所要验证的数据所在的不同存储区动态地激活存储器保护。优选地,存储器保护单元无法由主机来配置。这一点是有利的,原因在于:这样防止了被操纵的、已经执行的计算机程序绕过保护功能,例如以便执行另一个被操纵的计算机程序。
[0006]“读保护”是指:存储在存储区中的数据无法被主机读取。“写保护”是指:主机无法将新数据写入存储区或者在该存储区中的数据无法改变。“执行保护”是指:当在存储区中的数据是计算机程序时,主机无法执行该计算机程序。在本技术中,执行保护通常与读保护相结合。没有读保护的执行保护意味着:数据不被主机解释成机器指令(操作码(opcode));即存储器保护单元阻止这些数据被加载到主机处理器的指令解码单元中。在这种情况下,读取本身、即加载到主机处理器的通用数据寄存器中(即在指令解码单元以外)是可行的。
[0007]
安全模块尤其是硬件安全模块(hsm),即基本上由硬件元件来实现(即不是实现为在主机中执行的软件模块)。安全模块提供密码功能,这些密码功能可被主机使用,以便保护安全关键的功能,比如多个控制设备彼此间的通信或者对程序代码是否已被操纵的(完整性)检查。为此,安全模块尤其是管理秘密密码(密文)和/或密码密钥,并且优选地以硬件来实现密码方法。这些密钥由安全模块存储在主机存储器的为此所提供的区域内和/或存储在安全模块存储器、即该安全模块自己的存储器中。安全模块包括处理器(该处理器不同于主机处理器),并且可以与主机分开地实施或者与主机或主机处理器以及存储器一起集成在芯片中(于是,安全模块和主机在某种程度上可以说是通过该芯片上的不同的处理器内核来形成或映射)。安全模块被设立为检查存储区的完整性。
[0008]
在完整性检查时,尤其是将函数、即校验值函数或密码哈希函数应用于在所要检查的存储区中的数据,并且将所获得的当前校验值与参考校验值进行比较。如果两者相同,则认为(就完整性检查或哈希函数而言)数据未发生变化,即完整性得到确认。如果两者不同,则认为:数据已发生变化或已被操纵,即完整性未得到确认。参考校验值例如可以存储在非易失性安全模块存储器中。参考校验值可以由安全模块来管理或存储。适合的哈希函数例如是按照sha-1或sha-2的哈希函数,即sha-224、sha-256、sha-384、sha-512、sha-512/224和sha-512/256,这些哈希函数比如从nist(美国国家标准与技术研究院(national institute of standards and technology))的文献fips pub 180-4(http://dx.doi.org/10.6028/nist.fips.180-4)中公知或者也从rfc 6234中公知。对于sha-1,哈希值的长度为160位,对于sha-2系列的哈希函数,哈希值的长度为224、256、384或512位。同样,还能够使用md5(消息摘要算法5(message-digest algorithm 5),rfc1321),长度为128位,或者使用sha-3(fips pub 202,http://dx.doi.org/10.6028/nist.fips.202),长度视版本而定为224、256、384、512位或者任意。
[0009]
还可以使用消息认证码(mac:message authentication code)来进行完整性检查。比如按照rfc2104或fips pub 198(http://csrc.nist.gov/publications/fips/fips198-1/fips-198-1_final.pdf)的hmac(hash-based message authentication code;基于哈希的消息认证码)。hmac包括多次应用哈希函数,尤其是上述密码哈希函数之一。更一般地,还可以使用另一消息认证码(mac),在该另一消息认证码的映射中加入密钥(例如由安全模块存储)和消息(在存储区中的数据)。相对应地,密钥和消息到认证码(校验值)的hmac映射或mac映射表示校验值函数。除了hmac之外的消息认证码的其它示例是cmac(基于密码的消息认证码(cipher-based message authentication code))、gmac(伽罗瓦信息认证码(galois message authentication code))或者siphash。
[0010]
优选地,随着该计算单元的启动,为存储器的存储系统内核程序的系统内核存储区激活写保护和/或读保护和/或执行保护,其中通过该加载程序来促使安全模块对这个系统内核存储区的完整性进行检查,而且其中当该系统内核存储区的完整性得到确认时,存储器保护单元通过安全模块被配置为停用针对该系统内核存储区的读保护和/或执行保护,而且在主机中启动对该系统内核程序的执行(当该系统内核存储区的完整性得到确认时)。
[0011]
该系统内核程序(例如操作系统)是计算机程序,该计算机程序实现基本功能,这些基本功能涉及对应用程序的管理和执行。这种功能的示例有:促使应用程序的启动和结
束;给这些应用程序分配硬件资源(计算时间、易失性存储器中的存储空间
……
);或者实现用于与外部设备(其它计算单元、传感器、受控组件)进行通信的接口。进一步,尤其是对于仅提供一个应用程序的情况来说,该系统内核程序本身可以是应用程序或者包括应用程序。
[0012]
优选地,随着该计算单元的启动,为存储器的存储至少一个应用程序的至少一个应用程序存储区激活写保护和/或读保护和/或执行保护,其中通过该加载程序或者必要时该系统内核程序来促使安全模块对该至少一个应用程序存储区的完整性进行检查,而且其中当该至少一个应用程序存储区的完整性得到确认时,存储器保护单元通过安全模块被配置为停用针对该至少一个应用程序存储区的读保护和/或执行保护,而且在主机中启动对该至少一个应用程序的执行(当该应用程序存储区的完整性得到确认时)。
[0013]
应用程序是计算机程序,这些计算机程序实现该计算单元的实际功能。在控制设备的情况下,这些实际功能例如是控制功能,其中应用程序从传感器或受控组件接收数据和/或生成针对受控组件的控制信号。可能仅存在一个应用程序或者可能存在多个应用程序。在多个应用程序的情况下,可以针对这些应用程序中的每个单独的应用程序来执行上述步骤。优选地,通过该系统内核程序来引起对应用程序的完整性检查和启动。原则上,也可以规定:尤其是当仅提供一个单独的应用程序时,通过该加载程序来引起对应用程序的完整性检查和启动。
[0014]
优选地,存储器保护单元被设立为:在启动时实现标准配置,在该标准配置中,为该加载存储区激活写保护和/或读保护和/或执行保护。替代地、同样优选地,在启动安全模块时,存储器保护单元通过该安全模块被配置为针对该加载存储区激活写保护和/或读保护和/或执行保护。优选地,在该标准配置中,还为该系统内核存储区激活写保护和/或读保护和/或执行保护。替代地、同样优选地,在启动安全模块时,存储器保护单元通过该安全模块被配置为针对该系统内核存储区激活写保护和/或读保护和/或执行保护。优选地,在该标准配置中,还为该至少一个应用程序存储区激活写保护和/或读保护和/或执行保护。替代地、同样优选地,在启动安全模块时,存储器保护单元通过该安全模块被配置为针对该至少一个应用程序存储区激活写保护和/或读保护和/或执行保护。
[0015]
这些设计方案涉及有效实现对相应存储区(加载存储区、系统内核存储区、应用程序存储区)的保护功能的初始激活的可能性。尤其是使得在相应存储区的完整性检查之前不存在这些保护功能未被激活的中间时间段。
[0016]
优选地,如果该加载存储区的完整性没有得到确认,则安全模块不会将存储器保护单元配置为停用针对该加载存储区的读保护和/或执行保护,而且进一步优选地,生成和/或存储报错消息。优选地,如果该系统内核存储区的完整性没有得到确认,则安全模块不会将存储器保护单元配置为停用针对该系统内核存储区的读保护和/或执行保护,而且进一步优选地,生成和/或存储报错消息。优选地,如果该至少一个应用程序存储区的完整性没有得到确认,则安全模块不会将存储器保护单元配置为停用针对该至少一个应用程序存储区的读保护和/或执行保护,而且进一步优选地,生成和/或存储报错消息。
[0017]
与这些存储区之一的完整性没有得到确认的情况有关的这些设计方案是有利的,原因在于:这样可以有效防止主机对相应的计算机程序的执行。报错消息使得能够识别潜在操纵并且用于对例如涉及到哪个计算机程序的错误分析。
[0018]
优选地,如果接收到编程单元对于对该加载程序和/或该系统内核程序和/或该至少一个应用程序进行重新编程的请求,则通过安全模块来检查该编程单元的真实性,而且如果该真实性得到确认,则该安全模块将该存储器保护单元配置为停用针对该加载存储区和/或该系统内核存储区和/或该至少一个应用程序存储区的写保护。通过该设计方案,能够对计算机程序进行更新。
[0019]
按照本发明的计算单元、例如机动车辆或其它机器的控制设备具有:带主机处理器的主机;存储器;安全模块;和可通过该安全模块来配置的存储器保护单元,该存储器保护单元被设立为:按照相应的配置,为该至少一个存储器的至少一个可配置区域选择性地实现写保护、读保护和执行保护中的一个或多个。该计算单元被设立为:执行按照本发明的方法的所有方法步骤。
[0020]
本发明的其它优点和设计方案从说明书以及附图中得出。
[0021]
本发明依据实施例在附图中示意性示出并且在下文参考附图予以描述。
附图说明
[0022]
图1示例性示出了计算单元,在该计算单元中可以实现用于执行安全启动序列的方法。
[0023]
图2图解说明了按照优选的实施方式的用于执行计算单元的安全启动序列的方法的流程。
具体实施方式
[0024]
图1示例性示出了计算单元2,在该计算单元中可以实现用于验证数据的方法。计算单元2、例如机动车辆或其它机器的控制设备包括:主机4;安全模块6;存储器保护单元8;非易失性存储器10;和可选地包括易失性存储器11。
[0025]
主机4包括:主机处理器12,该主机处理器具有一个或多个处理器内核;以及可选地包括易失性工作存储器14(ram:随机存取存储器(random access memory))。除了所示出的元件之外,主机当然还可以包括其它元件,尤其是用于与该计算单元的其它元件和/或在该计算单元以外的元件(比如由该计算单元控制的机动车辆或由该计算单元控制的机器的传感器或者受控组件)进行数据通信的接口。主机通过执行相对应的计算机程序(应用程序)来实现计算单元2的实际功能,例如在控制设备的情况下的控制功能。
[0026]
在非易失性存储器10(例如闪存)中,可以存储计算机程序和对于执行来说所需的数据。可以提供可选的易失性存储器11(例如ram存储器),以便能够实现主机与安全模块之间的数据交换,即该可选的易失性存储器是共享的易失性存储器。如通过线所表示的那样,主机4与非易失性存储器10以及必要时易失性存储器11连接,以进行数据通信。存储器10以及必要时易失性存储器11可以被视为主机存储器,主机可以根据通过存储器保护单元8所实现的保护功能(见下文)来访问该主机存储器。用于数据通信以及还有与安全模块的连接在这里并未明确地详细示出,而是仅一般性地通过线来表示。这些连接例如可以借助于总线和/或点对点连接来实现。
[0027]
安全模块6、尤其是硬件安全模块(hsm)用作计算单元2的信任锚。安全模块6示例性地包括一个或多个处理器内核22、易失性安全模块存储器22(例如ram存储器)和非易失
性安全模块存储器24。在非易失性安全模块存储器24中,可以存储密码数据,例如密码密钥或密文。在那里还可以存储实现安全模块功能的计算机程序。代替非易失性安全模块存储器24或者除了该非易失性安全模块存储器之外,还可以在非易失性存储器10中提供受保护的存储区(即主机无法访问的存储区),在该受保护的存储区中可以存储安全模块的密码数据或计算机程序。原则上,还可能的是:所述一个或多个处理器内核22在不执行计算机程序(软件)的情况下实现安全模块功能,例如作为状态机。安全模块6还可以包括其它硬件元件26(仅示例性示出了一个),这些其它硬件元件实现特定的安全相关功能或密码功能,例如纠错方法(ecc:纠错码(error correcting code))、随机数发生器(rng:random number generator)、哈希方法、非对称密码方法(比如rsa:rivest-shamir-adleman)或者对称密码方法(比如aes:高级加密标准(advanced encryption standard))。还提供用于与主机4、非易失性存储器10、必要时易失性存储器11以及存储器保护单元8进行数据通信的接口(未详细示出)。
[0028]
存储器保护单元8是可配置的,例如借助于配置寄存器28。即,由存储器保护单元8所实现的存储器保护功能不是静态的,而是动态的。计算单元2被设立为使得存储器保护单元8的配置只能由安全模块6来进行,例如通过将配置写入配置寄存器28。主机4无法对存储器保护单元8进行配置,或者更一般地,无法访问存储器保护单元8的功能。可以规定:存储器保护单元8在启动或初始化时采用标准配置,即在启动时按照预定的标准配置来实现存储器保护功能。由于配置寄存器通常是易失性存储单元,所以由此防止了在重启之后存在无限期的存储器保护。
[0029]
可以为指定的(可配置的)存储区、例如从起始地址延伸直至结束地址为止的存储区设置存储器保护。可能的保护功能是:读保护(r)、写保护(w)和执行保护(x)。配置寄存器28中的相对应的条目比如可能如下:(起始地址、结束地址、r、w、x),其中起始地址和结束地址表明存储区并且r、w、x是表明是否允许相对应的访问的位。如果主机4试图访问非易失性存储器10(或者必要时易失性存储器11),则存储器保护单元8检查是否允许相对应的访问(例如依据配置寄存器28)。如果访问未被允许,则阻止该访问,尤其是由存储器保护单元8来阻止该访问。还可以显示错误(异常错误、异常(exception))并且调用相对应的错误处理例程,比如在安全模块中。适宜地,在该预定的标准配置中,为所有存储区或者为特定存储区激活读保护和/或写保护和/或执行保护。
[0030]
安全模块6可以独立于存储器保护地访问非易失性存储器10(以及必要时易失性存储器11)。即,该存储器保护仅涉及主机对非易失性存储器10(以及必要时易失性存储器11)的访问,即读保护、写保护和/或执行保护是针对主机来实现的。
[0031]
图2图解说明了按照优选的实施方式的用于执行计算单元的安全启动序列的方法的流程。该图分为四列,其中每一列分别涉及该计算单元的一个元件并且表明在该元件中执行的方法步骤或该元件的相应状态。具体来说,列40被提供用于主机,列50被提供用于安全模块,列60被提供用于存储器保护单元,而且列70被提供用于非易失性存储器。
[0032]
在用于非易失性存储器的列70中,分别示出了该存储器的三个存储区(一般来说,该存储器当然还可能具有所示出的三个存储区以外的存储区,即示出了该存储器的一部分)。示出了加载存储区72、系统内核存储区74和应用程序存储区76。分别勾画出:是否针对各个存储区激活存储器保护功能,其中带有阴影的存储区是存储器保护功能被激活的存储
区,并且没有阴影的存储区是存储器保护功能(至少部分地)被停用的存储区。在加载存储区72中存储加载程序,在系统内核存储区74中存储系统内核程序并且在应用程序存储区76中存储应用程序。
[0033]
随着该计算单元的启动,在步骤100中启动安全模块并且同样在步骤105中启动存储器保护单元。还启动主机,而该主机首先并不执行计算机程序(未示出)。随着该计算单元的启动,为这三个所示出的存储区激活存储器保护功能,这些存储器保护功能是读保护和/或写保护和/或执行保护。为此,该存储器保护单元可以被设立为:随着启动,自动实现这些存储器保护功能,尤其是借助于在启动时自动实现的相对应的预定的标准配置。替代地或附加地,安全模块可以被设立为:随着启动,将该存储器保护单元配置为使得读保护和/或写保护和/或执行保护被激活。
[0034]
在步骤110中,安全模块执行对加载存储区72的完整性检查。如果加载存储区72的完整性没有得到确认,即如果识别出潜在操纵,则优选地保留这些存储器保护功能(未示出)。此外,可以生成和/或存储相对应的报错消息(比如在非易失性安全模块存储器中)。附加地,这里可能会将该计算单元关断。
[0035]
如果加载存储区72的完整性得到确认,则在步骤120中,安全模块将该存储器保护单元配置(通过箭头所示)为至少部分地解除针对加载存储区72的存储器保护功能(步骤125)。尤其是,该存储器保护单元被配置为停用针对加载存储区72的读保护和/或执行保护。优选地,写保护保持激活。在其它两个存储区74、76中,这些存储器保护功能保持激活。
[0036]
在步骤130中,主机开始执行该加载程序。例如可以将消息从安全模块发送给主机,该消息表明能够执行或者引起该加载程序的启动。
[0037]
在步骤140中,主机或在该主机中执行的加载程序促使安全模块来检查系统内核存储区74的完整性(比如借助于相对应的请求)。
[0038]
在步骤150中,安全模块执行对系统内核存储区74的完整性检查。如果系统内核存储区74的完整性没有得到确认,则优选地保留这些存储器保护功能(未示出)。此外,可以生成和/或存储相对应的报错消息(比如在非易失性安全模块存储器中)。附加地,这里也可能会将该计算单元关断。
[0039]
如果系统内核存储区74的完整性得到确认,则在步骤160中,安全模块将该存储器保护单元配置为至少部分地解除针对系统内核存储区74的存储器保护功能(步骤165)。尤其是,该存储器保护单元被配置为停用针对系统内核存储区74的读保护和/或执行保护。优选地,写保护保持激活。对于应用程序存储区76来说,这些存储器保护功能保持激活。
[0040]
在步骤170中,主机开始执行该系统内核程序。例如可以将消息从安全模块发送给主机,该消息表明能够执行或者引起该系统内核程序的启动。该系统内核程序可以被视为管理程序(例如操作系统),该管理程序引起对一个或多个应用程序的执行。存储在应用程序存储区76中的应用程序例如是这些(通常是多个)应用程序中的一个。
[0041]
在步骤180中,主机或在该主机中执行的系统内核程序促使安全模块来检查应用程序存储区76的完整性(比如借助于相对应的请求)。
[0042]
在步骤190中,安全模块执行对应用程序存储区76的完整性检查。如果应用程序存储区76的完整性没有得到确认,则优选地保留这些存储器保护功能(未示出)。此外,可以生成和/或存储相对应的报错消息(比如在非易失性安全模块存储器中)。该报错消息尤其可
以被传送给主机或系统内核程序,该系统内核程序例如可以实现相对应的错误处理例程。
[0043]
如果应用程序存储区76的完整性得到确认,则在步骤200中,安全模块将该存储器保护单元配置为至少部分地解除针对应用程序存储区76的存储器保护功能(步骤205)。尤其是,该存储器保护单元被配置为停用针对应用程序存储区76的读保护和/或执行保护。优选地,写保护保持激活。如果对于其它应用程序来说存在其它应用程序存储区,则在这些其它应用程序存储区中的这些存储器保护功能保持激活。
[0044]
在步骤210中,主机开始执行应用程序。例如可以将消息从安全模块发送给主机,该消息表明能够执行或者引起该应用程序的启动。如果存在其它应用程序应该被启动,则相对应地重复步骤180至210,其中代替针对所示出的应用程序存储区76,针对存储相应的应用程序的应用程序存储区来执行完整性检查以及必要时对这些存储器保护功能的停用。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表