CN112219186B - 用于将程序代码包安装到设备中的方法以及设备和机动车 - Google Patents

用于将程序代码包安装到设备中的方法以及设备和机动车 Download PDF

Info

Publication number
CN112219186B
CN112219186B CN201980033310.4A CN201980033310A CN112219186B CN 112219186 B CN112219186 B CN 112219186B CN 201980033310 A CN201980033310 A CN 201980033310A CN 112219186 B CN112219186 B CN 112219186B
Authority
CN
China
Prior art keywords
processor
program code
processor device
control device
checksum value
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.)
Active
Application number
CN201980033310.4A
Other languages
English (en)
Other versions
CN112219186A (zh
Inventor
J·迈耶
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.)
Audi AG
Original Assignee
Audi AG
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 Audi AG filed Critical Audi AG
Publication of CN112219186A publication Critical patent/CN112219186A/zh
Application granted granted Critical
Publication of CN112219186B publication Critical patent/CN112219186B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • G06F9/4403Processor initialisation
    • 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
    • G06F9/4406Loading of operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及用于安装程序代码包(19)到设备(10)中的方法,设备(10)的处理器装置(12)通过第一数据连接(26)从设备外部的数据源(20)接收程序代码包(19)且为所接收的程序代码包(19)形成校验和值(22)。本发明设定,在设备(10)中运行有别于处理器装置(12)的控制装置(12’),由控制装置(12’)从预定的、设备外部的更新服务器装置(24)通过与第一数据连接(26)不同的第二数据连接(26’)接收参考校验和值(25),并从处理器装置(12)接收由其形成的校验和值(22),仅仅在校验和值(22)与参考校验和值(25)相同的情况下,才通过控制装置(12’)在处理器装置(12)中触发预定的用于在处理器装置(12)中安装程序代码包(19)的安装程序(29)。

Description

用于将程序代码包安装到设备中的方法以及设备和机动车
技术领域
本发明涉及一种用于把程序代码包录入或安装到设备、例如移动终端设备或机动车的控制设备中的方法。通过录入程序代码包,使得该程序代码包可在设备中作为可执行的软件供使用。程序代码包例如可以包含用于设备的操作***,和/或通过录入得到设备中的操作软件或操作***的更新。本发明也包括可按照方法运行的设备以及带有这样的设备的机动车。
背景技术
在机动车的控制设备中可以设有或提供处理器装置,处理器装置可以设有一个微处理器或多个微处理器且对于运行可使用操作***、如例如Linux或Posix或
Figure GDA0003243619880000011
为了更新操作***或一般地说处理器装置的软件,可以设有如下流程。首先通过数据连接从设备外部的数据源接收包括参考校验和值(例如HASH值)在内的程序代码包、例如所谓的刷新文件/flash文件(Flashfile)。数据连接例如可以基于以太网和/或CAN总线(CAN-Controller Area Network)和/或Flexray总线形成。在完全接收程序代码包且将其存储在处理器装置中之后,通过该处理器装置自身计算用于程序代码包的校验和值、将该校验和值与连同程序代码包一起接收的参考校验和值进行比较,并因此进行检验。由此可以确认:程序代码包是否已被完整无损地、即无错误地传输且/或未被篡改过。如果程序代码包是完整无损的,则处理器装置启动安装程序,安装程序可以规定:更新标志或更新位被设置且处理器装置随后实施复位。在复位之后,在重新启动期间通过引导加载器引导(booten)处理器装置。引导加载器在此识别所设的更新标志且启动更新过程,该更新过程可以设定为,处理器装置的操作软件或一般地说现有软件的至少一部分借助于程序代码包来代替或补充。该过程也称为刷新(Flashen)。所述基于校验和的检验在此备选地也可以在引导加载器自身中实现。
假如成功地在运行的操作***中篡改校验和值的比较机制,以便伪装处理器装置,使得校验和值和参考校验和值一致,即使实际上根本不一致,则由现有技术已知的借助于校验和值的检验和安装程序可用于对设备的有针对性的篡改。然后被篡改的程序代码包也可以在设备中传输,且该被篡改的程序代码包随后借助于安装程序安装在设备中。
程序代码包在机动车控制设备中的录入例如在文献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且转变到更新模式和实施更新。
总体上,示例示出:如何通过本发明可以通过附加的微控制器安全层面提供用于微处理器的安全的更新机制。

Claims (8)

1.一种用于将程序代码包(19)安装到设备(10)中的方法,其中,设备(10)的处理器装置(12)通过第一数据连接(26)从设备外部的数据源(20)接收该程序代码包(19),并为所接收的程序代码包(19)形成校验和值(22),
其中,
在设备(10)中运行有别于处理器装置(12)的控制装置(12’),由该控制装置(12’)从预定的、设备外部的更新服务器装置(24)通过与第一数据连接(26)不同的第二数据连接(26’)接收参考校验和值(25),并由该控制装置从处理器装置(12)接收由该处理器装置形成的校验和值(22),
仅仅在校验和值(22)与参考校验和值(25)相同的情况下,才由控制装置(12’)在处理器装置(12)中触发预定的用于在处理器装置(12)中安装程序代码包(19)的安装程序(29),由此在控制装置(12’)中而不是在处理器装置(12)自身中决定:是否真地在设备(10)的处理器装置(12)中安装程序代码包(19),
安装程序(29)包括:通过控制装置(12’)在预定的持续时间(33)之后从处理器装置(12)外部强制使处理器装置(12)复位,
为了通过控制装置(12’)强制进行复位,对用于给处理器装置(12)供给电能(16)的供电装置(15)进行驱控,以中断(35)对处理器装置(12)的能量供给(18)。
2.根据权利要求1所述的方法,其中,安装程序(29)的触发包括:由控制装置(12’)发送许可信号(28)给处理器装置(12),由处理器装置(12)在接收到许可信号(28)时触发处理器装置(12)的重新启动。
3.根据权利要求1或2所述的方法,其中,安装程序(29)规定:在处理器装置(12)重新启动期间,通过控制装置(12’)在处理器装置(12)的电的信号输入端(32)上设定电的信号(31),对于在重新启动期间在信号输入端(32)上存在信号(31)的情况,通过处理器装置(12)的引导加载器(14)用程序代码包(19)代替处理器装置(12)的操作软件(OS)。
4.根据权利要求1或2所述的方法,其中,控制装置(12’)以与处理器装置(12)的操作***(OS)不同的操作***来运行。
5.根据权利要求1或2所述的方法,其中,控制装置(12’)由微控制器(μC)提供。
6.一种具有处理器装置(12)和附加的控制装置(12’)的设备(10),其中,设备(10)被设置用于实施根据权利要求1-5之一所述的方法。
7.根据权利要求6所述的设备(10),其中,设备(10)被设计为用于机动车(11)的控制设备或移动终端设备或静止的运算装置。
8.一种机动车(11),其具有根据权利要求6或7所述的设备(10)。
CN201980033310.4A 2018-09-04 2019-08-19 用于将程序代码包安装到设备中的方法以及设备和机动车 Active CN112219186B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102018215011.7 2018-09-04
DE102018215011.7A DE102018215011A1 (de) 2018-09-04 2018-09-04 Verfahren zum Installieren eines Programmcodepakets in ein Gerät sowie Gerät und Kraftfahrzeug
PCT/EP2019/072104 WO2020048756A1 (de) 2018-09-04 2019-08-19 Verfahren zum installieren eines programmcodepakets in ein gerät sowie gerät und kraftfahrzeug

Publications (2)

Publication Number Publication Date
CN112219186A CN112219186A (zh) 2021-01-12
CN112219186B true CN112219186B (zh) 2021-11-19

Family

ID=67810579

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980033310.4A Active CN112219186B (zh) 2018-09-04 2019-08-19 用于将程序代码包安装到设备中的方法以及设备和机动车

Country Status (5)

Country Link
US (1) US11880273B2 (zh)
EP (1) EP3752911B1 (zh)
CN (1) CN112219186B (zh)
DE (1) DE102018215011A1 (zh)
WO (1) WO2020048756A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7370003B2 (ja) * 2019-11-20 2023-10-27 パナソニックIpマネジメント株式会社 車両診断システム及び移動体診断システム
CN113076077B (zh) * 2021-03-29 2024-06-14 北京梧桐车联科技有限责任公司 安装车载程序的方法、装置和设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012220132A1 (de) * 2012-11-06 2014-05-08 Robert Bosch Gmbh Verfahren, Vorrichtung und System zum Aktualisieren eines Steuergerätes
CN105938433A (zh) * 2015-03-03 2016-09-14 罗伯特·博世有限公司 用于对机动车的控制设备进行编程的方法
CN108885668A (zh) * 2016-03-31 2018-11-23 西门子股份公司 用于用户数据的完整性检查的方法、处理器和设备

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19802728A1 (de) * 1998-01-24 1999-07-29 Heidenhain Gmbh Dr Johannes Verfahren und Schaltungsanordnung zur Überwachung von Maschinenparametern
US6223284B1 (en) * 1998-04-30 2001-04-24 Compaq Computer Corporation Method and apparatus for remote ROM flashing and security management for a computer system
US20050149923A1 (en) * 2002-05-28 2005-07-07 Sheng Lee System update protocol
DE10319365A1 (de) 2003-04-29 2004-11-18 Volkswagen Ag Computersystem für ein Fahrzeug und Verfahren zum Kontrollieren des Datenverkehrs in ein solches Computersystem
US20090019435A1 (en) * 2007-07-12 2009-01-15 Sauer-Danfoss Inc. System and method for over the air programming
US8078861B1 (en) * 2008-02-13 2011-12-13 Omnimgtrix, LLC Remote processor reprogramming
US8607343B2 (en) * 2011-06-05 2013-12-10 Apple Inc. Ticket-based personalization
US8776040B2 (en) * 2011-08-19 2014-07-08 International Business Machines Corporation Protection for unauthorized firmware and software upgrades to consumer electronic devices
US9015837B1 (en) * 2011-09-29 2015-04-21 Google Inc. Systems and methods for verifying an update to data of an electronic device
US8898481B1 (en) * 2012-07-18 2014-11-25 Dj Inventions, Llc Auditable cryptographic protected cloud computing communications system
GB2525409B (en) * 2014-04-24 2016-11-02 Ibm Enabling an external operating system to access encrypted data units of a data storage system
GB201413836D0 (en) * 2014-08-05 2014-09-17 Arm Ip Ltd Device security apparatus and methods
DE102014219322B4 (de) 2014-09-24 2023-08-03 Continental Automotive Technologies GmbH Update einer Fahrzeugsteuerung per Car2X
US9965632B2 (en) * 2014-12-22 2018-05-08 Capital One Services, Llc System and methods for secure firmware validation
KR102324336B1 (ko) * 2015-03-20 2021-11-11 한국전자통신연구원 사용자 장치 및 그것에 대한 무결성 검증 방법
DE102016200775A1 (de) 2016-01-21 2017-07-27 Robert Bosch Gmbh Verfahren und Vorrichtung zum Schutz eines Fahrzeuges vor Cyberangriffen
US9916452B2 (en) * 2016-05-18 2018-03-13 Microsoft Technology Licensing, Llc Self-contained cryptographic boot policy validation
US10171478B2 (en) * 2016-06-30 2019-01-01 Faraday & Future Inc. Efficient and secure method and apparatus for firmware update
WO2018078406A1 (en) * 2016-10-31 2018-05-03 Harman Becker Automotive Systems Gmbh Software update mechanism for safety critical systems
CN111133412A (zh) * 2017-07-25 2020-05-08 奥罗拉实验室有限公司 基于工具链构建车辆ecu软件的软件增量更新和异常检测

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012220132A1 (de) * 2012-11-06 2014-05-08 Robert Bosch Gmbh Verfahren, Vorrichtung und System zum Aktualisieren eines Steuergerätes
CN105938433A (zh) * 2015-03-03 2016-09-14 罗伯特·博世有限公司 用于对机动车的控制设备进行编程的方法
CN108885668A (zh) * 2016-03-31 2018-11-23 西门子股份公司 用于用户数据的完整性检查的方法、处理器和设备

Also Published As

Publication number Publication date
CN112219186A (zh) 2021-01-12
DE102018215011A1 (de) 2020-03-05
WO2020048756A1 (de) 2020-03-12
US20210240563A1 (en) 2021-08-05
EP3752911B1 (de) 2021-06-23
EP3752911A1 (de) 2020-12-23
US11880273B2 (en) 2024-01-23

Similar Documents

Publication Publication Date Title
CN109564606B (zh) 用于将安全协处理器用于固件保护的方法和装置
US9372699B2 (en) System and method for processing requests to alter system security databases and firmware stores in a unified extensible firmware interface-compliant computing device
EP2393007B1 (en) Processing device
US11755719B2 (en) Interface for a hardware security module
CN112219186B (zh) 用于将程序代码包安装到设备中的方法以及设备和机动车
TW202044022A (zh) 更新信號技術
US9778642B2 (en) Protection unit for a programmable data-processing system
JP6659180B2 (ja) 制御装置および制御方法
US20200233676A1 (en) Bios management device, bios management system, bios management method, and bios management program-stored recording medium
US10686812B2 (en) Device and method for detecting manipulation of a program code
CN113226858B (zh) 信息处理装置
US11418505B2 (en) Information processing apparatus, system and method
CN116208353A (zh) 一种校验固件的方法、装置、网卡、芯片***及服务器
US20220300612A1 (en) Security processing device
US12050691B2 (en) Security processing device
WO2022185570A1 (ja) 制御装置
CN111914222B (zh) 保护电子控制单元的方法
US20170017794A1 (en) Method and device for protecting a computing apparatus against manipulation
US20210042419A1 (en) Contingent authenticated boot of an electronic control unit
JP2023122639A (ja) 車両のソフトウェアの改竄の軽減
CN117874784A (zh) 一种车辆加密***和方法
JP2023044469A (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
GR01 Patent grant
GR01 Patent grant