1.本发明涉及计算机系统、像比如用于车辆的控制设备的可靠的启动。
背景技术:2.越来越多的用于车辆的控制设备被构造为计算机系统,在该计算机系统中主计算单元执行在主存储器中所包含的指令。因为在这样的控制设备的使用寿命期间经常需要该主存储器中的软件的至少一次升级,所以该主存储器经常是虽然永久的、但是能覆盖写入的存储器。
3.这原则上使得该控制设备为软件的未经授权的改变而敞开。用这样的改变,比如能够跟踪以下目标,即:超越由制造商所规定的尺度来提高车辆的马达功率或者以其他的方式使该车辆“更具运动风格”。但是,对于与安全相关的控制设备的未经授权的改变可能提高事故风险并且/或者导致用于车辆的运行许可的终止。除此以外,比如由于马达功率的提高而可能产生马达损坏,车辆使用者可能在保修的范围内要求对该马达损坏进行维修,尽管他已经通过篡改而丧失了保修权益。
4.由de 101 31 300 a1已知一种用于保护控制设备以便防止尤其在软件升级时的篡改的方法。
技术实现要素:5.在本发明的范围内开发了一种用于可靠地启动计算机系统的方法。这种计算机系统具有至少一个主计算单元和至少一个带有至少一个有待由该主计算单元执行的程序的主存储器。
6.该方法以以下步骤来开始,即:读出该主存储器的、在被包含在特殊的列表中的存储地址处的存储内容和/或与这些存储内容相对应的元数据。该列表被保存在与该主存储器分开的并且防止未经许可的改变的安全存储器中。特别有利的是,这个安全存储器还额外地得到保护以防止未经许可的读出。关于存储内容的元数据比如能够是校验和或者其他信息,它们与该存储内容分开地(比如在该安全存储器中)保存并且尤其比如能够用于该存储内容的完备性检查。
7.根据同样被保存在该安全存储器中的比较信息来检查,该存储内容和/或该元数据是否符合预先给定的额定状态。在对该存储内容和/或该元数据符合该预先给定的额定状态这种情况的响应中,促使该主计算单元执行该主存储器中的程序。但是,如果该存储内容和/或该元数据不符合该预先给定的额定状态,则禁止该主计算单元执行该主存储器中的程序。
8.在此,该主存储器尤其比如也能够包含多个在彼此上面构建的程序。比如,被保存在该主存储器中的引导程序(bootloader)首先能够被构造用于从该主存储器中重新装载操作系统,并且该操作系统而后又能够重新装载自身的应用程序。
9.已经发现,通过这种方式,不仅在软件升级的时刻而且在每次起动该计算机系统
时都能够识别篡改。该作用原理有点类似于pc系统的用“安全启动”来保护的uefi启动过程。在此,在操作系统的引导程序被执行之前典型地就其完备性进行检查。与此不同,用该方法能够检查该主存储器的全部内容,也就是说也比如检查对所提到的篡改来说最有意义的真正的应用软件。最终用户通常从仅仅对于引导程序的篡改中得不到什么好处。在此,通过对于存储地址的仅仅抽样式的监测,同时确保对于该主存储器中的程序的检查不会持续太久。车辆的起动过程在总体上大多小于5秒,因而通常期待控制设备在接通电源之后在150-200ms之内向车辆总线报告准备运行。
10.在此,该主存储器中的、被包含在列表中的存储地址的密度代表着重要的参数,用该参数能够设定安全水平与对检查来说必需的时间之间的折衷。要检查的存储地址越多,在处于所检查的存储地址处的存储内容不改变的边界条件下就越难将特定的所期望的改变加入到该程序中。
11.比如能够指定,主存储器分摊到每个被包含在列表中的、平均处于16个字节与1mb之间、优选处于256个字节与1mb之间的存储地址上。被包含在列表中的存储地址比如能够随机地分布在该主存储器中或者能够根据任意的算法分布在该主存储器中。
12.作为替代方案或者也在这方面的组合中,比如能够指定,该主存储器的最大的连续的区域——在该区域中不存在被包含在该列表中的存储地址——具有处于16个字节与1gb之间、优选处于1kb与32mb之间的大小。这后面隐藏的构想是,该篡改的目的是有意识地改变程序的功能,通常该主存储器的较大的连续的区域被涉及到。
13.如果该计算机程序的使用者或者其他未经许可的第三者不能获悉以下存储地址,该存储地址的内容要经过检查,则安全性尤其得到提高。为此,有利的是,该安全存储器不能读出。特别有利的是,给计算机程序的多个样本配备该安全存储器中的存储地址的不重合的列表。而后,不可能的是,比如通过来自一个系列的唯一的控制设备的“逆向工程”来获悉所检查的存储地址的列表并且而后编制程序的改动方案,该改动方案刚好在所检查的存储地址处还具有旧的存储内容。
14.该比较信息尤其比如能够具有加密的安全的、关于在被包含在列表中的存储地址处的存储内容和/或关于与此相对应的元数据的散列值。一个唯一的散列值而后能够作为经过很大程度的压缩的比较信息来保护任意多的存储内容和/或元数据。但是,根据该列表中的存储地址的数目,也比如能够将存储单元的存储内容和/或该元数据甚至存放在该安全存储器中。这能够实现更加精确的诊断,这刚好在该程序上被改变。
15.在一种特别有利的设计方案中,将用于车辆的控制设备选择作为计算机系统。该控制设备尤其能够被构造用于影响到马达控制系统并且/或者影响到车辆的制动系统。如之前所解释的那样,刚好在该控制设备中仅仅少许时间供在启动时检查程序所用。与此相比,该设备配备有较小的计算功率。
16.该控制设备的主存储器尤其比如能够不仅包含至少一个有待由该主计算单元来执行的程序而且包含用于这种程序的配置数据。而后,有利的是,被包含在列表中的存储地址的密度在该主存储器的包含配置数据的部分中比在该主存储器的包含程序的部分中高。比较困难的是,通过仅仅少许的存储内容的改变将该程序的功能朝所期望的方向引导,而对于少许参数或者其他配置数据的篡改则已经能够大大改变该控制设备的性能。因此,比如对于配置数据中的唯一的数字、像比如用于马达转速或者用于增压压力的极限值的改变
已经能够引起马达功率的明显的升高,其中这种功率在没有考虑到马达上的可能的损坏的情况下被调用。
17.在一种特别有利的设计方案中,用与该主计算单元分开的安全计算单元来至少实施对于该存储内容和/或元数据的读出及检查,该安全计算单元根据在该安全存储器中所保存的程序来工作。比如,用于控制设备的微控制器能够包含带有该主计算单元和主存储器的主系统以及带有该安全计算单元和安全存储器的安全系统。而后,该安全系统比如能够通过得到保护的接口来访问该主系统的主存储器,并且如果所检查的存储内容和/或该元数据符合预先给定的额定状态,则能够释放该主计算单元的启动。该主系统的主存储器中的可能被改变的程序而后不能在检查之前“隐藏”,方法是:它比如截获对检查来说表征的、对于各个存储内容或者元数据的访问并且用旧的合适的数值来答复。
18.在另一种有利的设计方案中,在运行该主计算单元的期间编制该主存储器的存储地址的新列表。根据该主存储器的在这些新的存储地址处的存储内容并且/或者根据与此相对应的元数据来获取新的比较信息。存储地址的新列表和新的比较信息而后被保存在该安全存储器中。通过这种方式,比如能够在容纳有该控制设备的车辆每次行驶时重新产生有待检查的存储地址的列表。即使在特定的时刻对有待检查的存储地址进行了分析,这种认识因而仅仅在短时间里有效,这使得用于有针对性的篡改的使用明显变得困难。
19.在另一种特别有利的设计方案中,在禁止该主计算单元执行主存储器中的程序的情况下,由该安全计算单元通过从单独的存储组合件和/或经由网络系统获得的内容来取代该主存储器的内容。通过这种方式,又能够将该计算机系统置于一种状态中,该状态虽然可能不再是最新的,但是在该状态中该计算机系统至少仅仅用经过授权的软件来工作。
20.本发明比如能够以比如由该安全计算单元来执行的软件来体现。因此,本发明也涉及一种具有可机读的指令的计算机程序,该指令在其在一台或者多台计算机上被执行时促使该一台或多台计算机执行所描述的方法之一。在这个意义上,用于车辆的控制设备和用于技术设备的、同样能够执行可机读的指令的嵌入式系统也可以视为计算机。
21.同样,本发明也涉及一种具有计算机程序的可机读的数据载体和/或下载产品。下载产品是能够通过数据网络系统来传输的、也就是说能够由数据网络系统的使用者下载的数字产品,其比如能够在在线商店里自由提供,以便立即下载。
22.此外,一种计算机能够装备有该计算机程序、该可机读的数据载体或者该下载产品。
附图说明
23.下面与对于本发明的优选的实施例的描述一起借助于附图对另外的改进本发明的措施进行详细描述。
24.图1示出了该方法100的一种实施例;图2示出了示范性的计算机系统10的在实施该方法100时的情况。
具体实施方式
25.图1示出了该方法100的一种实施例的示意性的流程图。在步骤110中,根据存储地址3a的从安全存储器4中获得的列表3从该主存储器2中读出存储内容2a和/或与这些存储
内容2a相对应的元数据2a’。在步骤120中,根据同样被保存在该安全存储器4中的比较信息6来检查,该存储内容2a和/或元数据2a’是否符合预先给定的额定状态。
26.在此,按照方框111和121,能够用与该主计算单元1分开的安全计算单元5来实施对于该存储内容2a和/或元数据2a’的读出和检查。按照方框122,能够给该计算机系统10的多个样本配备该安全存储器4中的存储地址3a的不重合的列表3,以用于使从该主存储器2查询的存储内容2a或者与其相对应的元数据2a’较少能预测。
27.如果该存储内容2a和/或元数据2a’符合额定状态(在步骤120中真值1),则在步骤130中促使该主计算单元1执行该主存储器2中的程序2b。与此同时,而后该安全计算单元5能够在步骤150中编制该主存储器2的存储地址3a’的新列表3’。而后在步骤160中,根据该主存储器2的在这些新的存储地址3a’处的存储内容2a并且/或者根据与此相对应的元数据2a’来获取新的比较信息6’。而后在步骤170中,将该存储地址3a’的新列表3’和该新的比较信息6’保存在该安全存储器4中。
28.如果该存储内容2a和/或元数据2a’不符合额定状态(在步骤120中真值0),则在步骤140中禁止该主计算单元1执行该主存储器2中的程序2b。在这种情况下,在步骤180中,能够通过从单独的存储组合件并且/或者经由网络系统获得的内容来取代该主存储器2的内容。因此,比如能够使车辆至少将就地重又准备行驶,在该车辆中控制设备由于存储内容2a或者元数据2a’与比较信息6’之间的差异而拒绝工作。引起该差异的原因不一定总是有意识的篡改。其实是比如在合法的升级尝试时,该主存储器2中的程序2b可能已经受损并且由此该控制设备可能已经“被堵住(gebrickt)”。
29.图2作为瞬间照片示出了一种示范性的计算机系统10的在实施该方法100的一种实施例时的情况。该计算机系统10被划分为安全系统10a和主系统10b。
30.该主系统10b包括主计算单元1和主存储器2。该主存储器2不仅包括有待由该主计算单元1执行的程序2b而且包括用于该程序2b的配置调节2bc。
31.该安全系统10a包括安全计算单元5和安全存储器4。在该安全存储器4中保存了存储地址3a的列表3,在该存储地址中应该从该主存储器中读出存储内容2a。此外,在该安全存储器6中也存放了比较信息6,应该根据该比较信息来检查存储内容2a和/或与此相对应的元数据2a’。如通过划虚线的连接所勾画的那样,该安全计算单元5拥有得到保护的接口,其用于从该主存储器2中读出存储内容2a和/或元数据2a’。此外,该安全计算单元5能够在成功地结束检查之后将监测转交给该主计算单元1。