用于将程序代码包安装到设备中的方法以及设备和机动车
文献发布时间:2023-06-19 09:30:39
技术领域
本发明涉及一种用于把程序代码包录入或安装到设备、例如移动终端设备或机动车的控制设备中的方法。通过录入程序代码包,使得该程序代码包可在设备中作为可执行的软件供使用。程序代码包例如可以包含用于设备的操作系统,和/或通过录入得到设备中的操作软件或操作系统的更新。本发明也包括可按照方法运行的设备以及带有这样的设备的机动车。
背景技术
在机动车的控制设备中可以设有或提供处理器装置,处理器装置可以设有一个微处理器或多个微处理器且对于运行可使用操作系统、如例如Linux或Posix或
假如成功地在运行的操作系统中篡改校验和值的比较机制,以便伪装处理器装置,使得校验和值和参考校验和值一致,即使实际上根本不一致,则由现有技术已知的借助于校验和值的检验和安装程序可用于对设备的有针对性的篡改。然后被篡改的程序代码包也可以在设备中传输,且该被篡改的程序代码包随后借助于安装程序安装在设备中。
程序代码包在机动车控制设备中的录入例如在文献DE 10 2016 200 775 A1中描述。为了在此保护程序代码包不被篡改,规定,借助于控制设备识别通过对于车辆的网络攻击引起的可能的风险且对该风险进行分析,其中尤其是识别出以新的固件对各个控制设备的闪存器的未经计划的写入。在该方法中不利的是,需要带有自身的、运算增强的处理器装置的附加的控制设备,以便可以识别其他控制设备的处理器装置的篡改。
由文献DE 103 19 365 A1已知的是,在单个控制设备内借助于其处理器装置执行分开的运行时环境,其中可以执行来自接收的程序代码包的软件。由此,在程序代码包中可能包含的恶意代码不能蔓延到设备的其他部分上。在该方法中不利的是,对于控制设备的操作系统,无法在自身的运行时环境中运行,从而不存在对操作系统自身的保护。
由文献DE 10 2014 219 322 A1已知一种用于更新车辆控制系统的方法,其中在安装程序代码包之后,控制设备的由程序代码包的安装涉及的部分首先与其余部分隔离地运行,以便实施测试,且在识别到完好的安装之后才通过释放又重新利用控制设备的该部分。在该方法中不利的是,不能动用借助于校验和值进行的简单和快速的检查。这使得安装程序变得高成本。
发明内容
本发明的目的在于,阻止对设备的如可通过恶意软件引起的那样的篡改。
该目的通过独立权利要求的主题来实现。本发明有利的实施形式通过从属权利要求、以下的说明以及附图进行描述。
本发明提供一种方法,用于将程序代码包录入或安装到设备中。程序代码包可以是例如设备的处理器装置的操作系统的更新或更新版本,或者是设备的处理器装置的新的或修改的应用程序。处理器装置是指由至少一个微处理器和所属数据存储器组成的组件,数据存储器用于存储用于运行所述设备和特别是处理器装置的软件。录入是指安装程序代码包,亦即使得其可供用于在设备中执行。程序代码包例如可以作为文件或作为多个文件的组来提供。这样的程序代码包的已知的格式是所谓的刷新文件,其可用于,在处理器装置的存储器中实施所谓的刷新,亦即以程序代码包的数据覆盖存储器内容。为了安装,首先设备的所述处理器装置通过数据连接/数据链路从设备外部的数据源接收程序代码包。该数据连接在此称为第一数据连接,因为此外还描述了第二数据连接。设备外部的数据源例如可以是互联网的服务器或另一与该设备连接的其他设备。如由现有技术已知的那样,在方法中通过处理器装置对于所接收的程序代码包形成校验和值。用于形成校验和值的算法自身由现有技术已知。校验和值例如可以是所谓的HASH值。用于形成校验和值的可能的算法是算法SHA1。
借助校验和值可以识别,是否篡改了程序代码包的内容。对此需要“正确的”校验和值、亦即参考校验和值作为对照。自然,如果刚刚形成的校验和值以开头所述的方式通过处理器装置自身与参考校验和值进行比较,那么该比较过程或该比较程序可以被黑客篡改,以便隐瞒程序代码包的篡改。本发明因此设定,在设备中运行与处理器装置不同的控制装置,且通过控制装置从预定的位于设备外部的更新服务器装置借助与第一数据连接不同的第二数据连接接收参考校验和值。更新服务器装置例如可以由互联网的服务器或者由与该设备不同的设备形成。更新服务器装置例如可以由程序代码包的制造方运行。
即,控制装置与处理器装置无关,这涉及计算或比较的实施。随着参考校验和值的接收,在控制装置中已知“正确的”校验和值、即对于程序代码包在未被篡改的状态下必须得到的参考校验和值。例如,在程序代码包尚位于程序代码包的制造方处时,可以确保未被篡改的状态。通过控制装置现在附加地从处理器装置接收由该处理器装置形成的校验和值。由此那么现在在校验和值与参考校验和值之间的比较可以与处理器装置无关地或分开地通过控制装置来实施。由此,比较不能被例如可能已经安装在了处理器装置中的恶意软件篡改。
仅仅在校验和值和参考校验和值相同的情况下,才通过控制装置在处理器装置中触发预定的安装程序,用以在处理器装置中安装程序代码包。换言之,在控制装置中而不是在处理器装置自身中决定:是否真地在设备的处理器装置中安装、亦即录入程序代码包。
通过本发明产生如下优点,即:即使对于在处理器装置中已经由恶意软件篡改其运行并因此例如可能影响校验和值的比较的情况,也不能再安装另一被篡改的程序代码包,这是因为对于该安装,在处理器装置之外通过独立的控制装置实施程序代码包的校验和值与参考校验和值的比较。获得对处理器装置的控制且现在想要安装具有另的恶意代码的另一程序代码包的黑客不可能做到这一点,如果不能获得对控制装置的控制的话。因为人们可以例如基于在只读存储器(ROM-Read Only Memory)中的程序代码形成控制装置,于是这样的篡改完全不可能。
本发明也包括产生附加优点的实施形式。
在一个实施形式中,如通过控制装置执行的、安装程序的所述触发包括:通过控制装置发送许可信号给处理器装置。随后,通过处理器装置在接收到许可信号的情况下触发处理器装置的重新起动。重新起动一方面包括复位、也就是说处理器装置的运行的结束和处理器装置的运行状态或程序计数器的复位,另一方面包括重启(Reboot)、即紧接在复位之后通过处理器装置重新开始运行。通过由处理器装置自身触发重新起动,产生如下优点,即:处理器装置可以在实施重新起动之前存储任务的处理状态和/或运算结果。由此避免数据损失。许可信号可以是数字消息,该数字消息可通过数字通信接口(例如I2C总线)传输,或者是电压信号,该电压信号作为恒定的离散的模拟信号被施加在处理器装置的输入端口或输入连接端上。
在一个实施形式中,安装程序包括:通过控制装置在处理器装置外部在预定的持续时间之后强制使处理器装置复位。该持续时间例如可以从确认了校验和值与参考校验和值相同起测量,或者从发出或产生所述许可信号起测量。通过复位,中断或中止处理器装置的运行,且以所述方式使处理器装置复位,也就是说,处理器装置开始重启。通过在预定的持续时间之后强制复位,确保了:对于程序代码包具有与参考校验和值一致的校验和值的情况,也确保了实际上安装该程序代码包,其方法是:在运行中通过复位中断在处理器装置上已经运行的软件。由此有利地阻止:已经篡改的处理器装置通过阻挠复位来阻止更新(程序代码包的安装)。强制复位可以通过控制装置借助于处理器装置的复位引脚处的复位信号来实现。
在一个实施形式中,相比之下,为了通过控制装置强制进行所述复位,对供电装置进行驱控以中断处理器装置的能量供给,供电装置用于给处理器装置供给电能。换言之,连强制复位也不是由处理器装置自身来要求或强制进行的,而是控制装置用信号通知位于在处理器装置之外的供电装置:中断用于处理器装置的能量供给。由此可靠地停止处理器装置或者使得其中断运行。这是因为能量供给、即例如电压供给的中断在处理器装置中导致所述复位。通过驱控供电装置,处理器装置上的恶意代码无法影响该强制的复位。
在一个实施形式中,在程序代码包具有正确的校验和值的情况下被触发的所述安装程序包括:通过控制装置在处理器装置的电的信号输入端上在处理器装置的重新起动期间、特别是在重启期间调节电信号、特别是在该时间中不变的电压水平。换言之,通过控制装置在信号输入端、例如GPIO端口(GPIO-General Purpose Input Output)上产生电信号,该电信号那么可在处理器装置内读入或解读。相应地,通过处理器装置的引导加载器,对于在重新起动期间、特别是在重启期间在信号输入端上存在信号的情况,用程序代码包代替处理器装置的操作软件。
引导加载器是一种在处理器装置的重新起动期间执行的程序,该程序把处理器装置原本的操作系统复制或加载到处理器装置的RAM(Random Access Memory)中且随后把对处理器装置的控制转交或交出给该操作系统。但此外,处理器装置的引导加载器还具有安装例程,其负责用于,以程序代码包覆盖或用程序代码包代替在处理器装置的数据存储器中的、处理器装置的操作系统或操作软件。安装例程借助于信号输入端上的信号通过控制装置触发。因此即确保:即使处理器装置的迄今存在的操作系统或迄今存在的操作软件是被篡改的,控制装置也可以通过信号设置来确保:该被篡改的操作软件被程序代码包代替。因为这在通过引导加载器的重启期间发生,所以,处理器装置自身的被篡改的操作软件无法影响该过程。因此可靠地能实现基于程序代码包更新或代替操作软件。
在一个实施形式中,以与处理器装置的操作系统不同的操作系统运行控制装置。换言之,两个操作系统基于不同的技术或实现方案。例如,操作系统可以是如下中之一:Linux、Windows、QNX、基于Posix的操作系统。由此产生如下优点,即如果涉及控制装置的篡改,那么被安排用于处理器装置的操作系统的恶意代码(亦即用于篡改的软件)不能用于此或者是无效的。黑客因此必须成功实施两个不同性质的篡改尝试,而不是仅仅一个篡改尝试,以便绕过通过所述方法形成的免于恶意软件影响的保护。
在一个实施形式中,控制装置由微控制器提供。这样的微控制器可以是固定编程的,亦即具有例如可以存储在ROM中的不可变的操作软件。此外,微控制器相比于具有至少一个微处理器的处理器装置能以更低的电功率运行。
本发明也包括一种通过所述方法保护的设备。该设备具有处理器装置和所述类型的附加的控制装置。设备总体上设置为,实施按照本发明的方法的实施形式。该设备可通过处理器装置具有至少一个微处理器以及用于操作软件和至少一个应用软件的数据存储器,这些软件可通过至少一个微处理器执行。此外,为了在安装程序代码包时保护处理器装置,设有附加的控制装置,该控制装置能以所述方式例如基于微控制器实现或提供。
在一个实施形式中,设备是用于机动车的控制设备。因此可以保护机动车免于在其控制设备中安装被篡改的软件或恶意软件。在一个实施形式中,设备为移动终端设备。这样的移动终端设备例如可以是智能电话或平板电脑或智能手表。在一个实施形式中,设备为静止的运算装置、即例如工位PC(PC–Personal Computer)或服务器或云计算机。
结合该设备作为控制设备的设计方案,本发明也包括一种具有这样的设备的机动车,该设备提供在机动车中。由此保护机动车免受恶意软件的影响。按照本发明的机动车优选设计为汽车、特别是轿车或载重汽车。
附图说明
在下文中描述本发明的实施例。为此唯一的附图示出:
图示出按照本发明的设备的一个实施形式的示意图,在该设备中可实施按照本发明的方法的一个实施形式。
具体实施方式
下文中阐明的实施例是本发明的优选的实施形式。在实施例中,实施形式的所描述的部件分别表示本发明的可彼此独立看待的单个特征,这些特征也分别彼此独立地对本发明进行改进。因此,本公开也应包括不同于实施形式的特征的所示组合的组合。此外,所描述的实施形式也可通过本发明的已经描述的特征中的另外的特征来补充。
在附图中,相同的附图标记表示功能相同的元素。
附图示出设备10,其例如可以是电子控制设备(ECU-Electronic Control Unit),该电子控制设备可在机动车11中提供。设备10但也可以是例如移动终端设备,其可以由用户随身携带;或者是静止的运算装置,其例如可以设置在办公室中作为工位计算机;或者例如是静止的服务器装置,其作为服务器计算机例如可在计算中心中运行。在下文中,为了清楚起见可以假定:设备10是机动车11的电子控制设备。但是各实施方案相应地也适用于设备10的其他设计方案。
在设备10中可以提供处理器装置12,该处理器装置可以具有至少一个微处理器,因此处理器装置12在下文中也称为微处理器μP。处理器装置12此外可以具有数据存储器13,在该数据存储器中可存储有处理器装置12的操作软件OS(操作系统)和/或至少一个应用软件。为了处理器装置12的起动或启动/开机或引导流程,该处理器装置可以具有引导加载器14。
在设备10中可以提供用于处理器装置12的供电装置15。供电装置15例如可以设计为设备10的电源件。供电装置15例如可以从设备外部的电网17接收电能16且控制或确认对于处理器装置12电能16的能量供给18。电网17在机动车11的情况下例如可以是机动车11的车载电网。
在附图中示出,设备10此外可以具有可与处理器装置12独立运行的控制装置12’,该控制装置例如可以基于微控制器形成。在下文中因此控制装置12’也称为微控制器μC。
在示出的例子中可能需要,必须更新操作软件OS,亦即应实施操作软件的更新。为此,新的操作软件可以作为程序代码包19通过第一数据连接26传输给处理器装置12。处理器装置12例如可以从设备外部的数据源20接收程序代码包19,但是其中在处理器装置12中不可知的是,该数据源多可靠,这表示:不知道程序代码包19是否实际上包含由操作软件OS的制造方或运营方设定的功能性或者是否涉及可能包含恶意软件或恶意代码的被篡改的程序代码包。因此可以规定,借助于用于校验和的算法21、例如HASH算法对于接收的程序代码包19计算校验和值22、即例如HASH值。
但是,该校验和值22的检验或检查在设备10的情况下不通过处理器装置12自身实施,从而对于处理器装置12已经被篡改且校验和值22的这样的检验可能受不利影响的情况,这对于黑客也是不可能的,这是因为检查发生在处理器装置12之外。通过通信接口23可以将计算出的校验和值22为此传输给控制装置12’。通信接口23例如可以基于数字数据连接、例如串行数据连接或并行数据连接、例如数据总线来实现。为了进行比较,控制装置12’可以从更新服务器装置24通过第二数据连接26’接收参考校验和值25。更新服务器装置24例如可以通过操作软件OS的运营方或制造方提供。其例如可以是互联网的服务器。在更新服务器装置24与控制装置12’之间运行或构建的第二数据连接26’可以具有端对端加密,如例如基于公钥加密方法以自身已知的方法可提供的。例如可以调用TLS协议(TLS-Transport Layer Security)。第二数据连接26’特别是与第一数据连接26不同的数据连接,也就是说,程序代码包19通过第一数据连接26与通过第二数据连接26’传输的参考校验和值25分开地传输。两个数据连接26、26’可以分别例如基于通过互联网进行的通信连接和/或基于车辆内部的总线通信,如已经描述过的。
通过控制装置12’可以借助于比较程序27实施在处理器装置12的计算的校验和值22与参考校验和值25之间的比较。如果两个校验和值22、25相同,那么控制装置12’可以例如通过通信接口23发送许可信号28给处理器装置12。许可信号28可以向处理器装置12传递如下信号:由处理器装置接收的程序代码包19是正确的或正常的或有效的。接着,处理器装置12可以起动安装程序29,安装程序可以是,例如可以首先将当前的程序状态或计算状态存储在数据存储器13或其他数据存储器中且随后触发处理器装置12的复位。相反,如果两个校验和值22、25不等,那么代替许可信号28可以通过控制装置12’发送警告信号30给处理器装置12。警告信号30可以向处理器装置12传递如下信号:存在篡改企图。于是可以通过处理器装置12开始相应的防御措施,其中可以设置现有技术已知的防御措施。
在复位之后,处理器装置12可以借助于引导加载器14重新起动。控制装置12’可以借助于可由控制装置12’施加在处理器装置12的电的信号输入端32上的电信号31传递如下信号:引导加载器14不应起动已经存储在数据存储器13中的过去的操作软件OS,而是应首先用程序代码包19中的软件将其代替且随后应起动这样新安装的操作软件OS。当信号31在信号输入端32上存在时,引导加载器14总是可以实施这一点。
为了确保:处理器装置12的复位不被已经实现的黑客攻击或已经实现的对处理器装置12的篡改阻止,通过控制装置12’可以规定,在发出许可信号28预定的时间间隔33之后发出中断信号34给供电装置15。供电装置15可以在接收到中断信号34时借助于中断35中断能量供给18预定的持续时间、例如小于1分钟、特别是小于10秒钟的持续时间,由此从处理器装置外部强制处理器装置12的复位。
在下文中描述一个特别优选的实施形式,其中规定,作为程序代码包提供所谓的刷新文件用于覆盖处理器装置的操作软件。
μP(处理器装置12)的更新(程序代码包)的最终的检查和许可不通过μP自身实施,而是通过附加的小的μC(控制装置12’)实施。μC在此被视为“受信任区域”(可靠区域)且最终决定更新的许可。不是控制设备的要更新的部分(其被视为不受信任的区域、即不可靠的区域)负责决定更新,而是安全的一侧。由此阻止:在压缩的/受损的μP上可以播放外来软件。结果,通过附加的安全障碍提高了安全性。
对μP的简单攻击不再足以在ECU上播放有害的软件。亦即提高了安全性机制。然而,μP上的可能的有害软件尽管如此但可以重新编程。
因此,在μC上优选地应用不可自由访问的嵌入式操作系统,其特别是完全不同于μP上的操作系统。μC可视为受信任区域,这是因为软件对于第三方并非自由可用,而只能在预定的程序员(即例如OEM-Original Equipment Manufacturer)手中。
通过刷新文件(程序代码包),准备就绪的主管装置或更新服务器装置计算HASH值作为参考校验和值。该HASH值不附加于刷新文件,而是端对端加密地单独地仅仅发送给μC。刷新文件自身被发送给μP。关于刷新文件的HASH值的计算此外在μP上实现,因为仅仅μP具有处理大的刷新文件的运算能力。μP例如通过内部通信接口向μC提供计算出的HASH值作为计算的校验和值。
HASH值的检验或比较在μC上实现。在有效的检验之后,μC允许更新且通过内部通信接口告知μP该更新许可。μC给μP时间来关闭其文件系统和关机。在预定的持续时间过去之后,μC主动关断μP的供电(能量供给)。假如μP上的恶意软件阻止关机,那么尽管如此但通过接通和关断供电而强制μP进入引导加载器14的运行中。
同时μC将更新许可GPIO设置为高。在起动或引导μP时,引导加载器14被起动。该引导加载器读入更新许可GPIO且基于此开始更新。在没有更新许可GPIO的条件下,引导加载器将跑完标准引导例程。
因此总地可以在设备10中得到程序代码包的安装的如下流程:
A)把没有HASH值的刷新文件传输到μP。
B)把HASH值加密地传输到μC。
C)μP通过刷新文件计算HASH值。
D)μP将HASH值告知μC。
E)μC对计算的HASH值和获得的HASH值进行比较且据此允许更新。
F)μC告知μP对于更新的许可并要求其重新起动且转变到引导加载器中。
G)为使μP可靠地转变到引导加载器中(假如其是妥协的/受损的且不重新起动),μC关断μP的供电且又接通,由此使μP安全地重新起动。
H)同时,μC切换更新许可GPIO,以便将更新模式告知μP的引导加载器。
I)μP在引导加载器中读入更新许可GPIO且转变到更新模式和实施更新。
总体上,示例示出:如何通过本发明可以通过附加的微控制器安全层面提供用于微处理器的安全的更新机制。
- 用于将程序代码包安装到设备中的方法以及设备和机动车
- 用于将程序代码包安装到设备中的方法以及设备和机动车