CN112740210B - 验证车辆中电子设备软件安全性的方法及相关设备 - Google Patents

验证车辆中电子设备软件安全性的方法及相关设备 Download PDF

Info

Publication number
CN112740210B
CN112740210B CN202080005100.7A CN202080005100A CN112740210B CN 112740210 B CN112740210 B CN 112740210B CN 202080005100 A CN202080005100 A CN 202080005100A CN 112740210 B CN112740210 B CN 112740210B
Authority
CN
China
Prior art keywords
node
parameter
verification
tree
electronic devices
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
CN202080005100.7A
Other languages
English (en)
Other versions
CN112740210A (zh
Inventor
吉瑞沙·师瓦林加帕·瑞瓦帝加
魏卓
李臻
张明明
欧刚彦
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN112740210A publication Critical patent/CN112740210A/zh
Application granted granted Critical
Publication of CN112740210B publication Critical patent/CN112740210B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • 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
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供了一种用于验证车辆中电子设备软件安全性的方法及相关设备。所述方法包括获取N个第一验证参数;根据所述N个第一验证参数,确定对应第一节点的第一验证参数,其中,所述第一节点为所述N个电子设备的父节点;从可信设备获取对应所述第一节点的第一参考参数;根据对应所述第一节点的所述第一验证参数及对应所述第一节点的所述第一参考参数,验证所述N个电子设备的软件安全性。所述技术方案可以确保在车辆中电子设备上运行的软件的完整性及真实性。

Description

验证车辆中电子设备软件安全性的方法及相关设备
技术领域
本发明实施例涉及信息技术领域,并且更具体地,涉及一种验证车辆中电子设备软件安全性方法及相关设备。
背景技术
现代的轿车/车辆中配备有数百个电子设备。每个电子设备都彼此不同,并执行特定的操作。而电子设备中的软件控制操作。
由于配备有数百个电子设备,因此现代车辆更容易受到攻击。例如,攻击者可能将修改后的软件安装到电子设备中,以获取车辆访问权限、窃取敏感信息;恶意软件(malware)/病毒可能会进入车辆内部网络并对车辆中的电子设备进行重新编程。因此,如何确保车辆中电子设备的软件安全性是需要解决的问题。
发明内容
本申请实施例提供了一种用于验证车辆中电子设备软件安全性的方法及相关设备。所述技术方案可以确保车辆中电子设备上运行的软件的完整性及可靠性。
根据第一方面,本申请实施例提供了一种用于验证车辆中电子设备软件安全性的方法,其中,所述方法包括:=第一验证参数,其中,所述N个第一验证参数与所述车辆中N个电子设备一一对应,所述N个第一验证参数的第i个第一验证参数是根据所述N个电子设备的第i个电子设备的软件映像确定的,N为大于1的正整数;根据所述N个第一验证参数,确定对应第一节点的第一验证参数,其中,所述第一节点为所述N个电子设备的父节点;从可信设备获取对应所述第一节点的第一参考参数;根据对应所述第一节点的所述第一验证参数及对应所述第一节点的所述第一参考参数,验证所述N个电子设备的软件安全性。
所述方法较为新颖,且引入了在服务器及车辆上维护多个电子设备软件版本的有效方式。所述方法可以确保车辆中每个电子设备上运行的软件的完整性及可靠性。攻击者对电子设备的任何攻击及恶意修改都可以正确识别。所述方法可轻易在商业产品中实现。
在一种可能的设计中,其中,获取N个第二验证参数,其中,所述N个第二验证参数与所述N个电子设备一一对应,其中,所述N个第二验证参数的第i个第二验证参数是根据所述N个电子设备的第i个电子设备的软件映像确定的;所述获取N个第一验证参数,包括:根据所述N个第二验证参数的第i个第二验证参数以及所述N个电子设备的第i个电子设备的身份信息,确定所述N个第一验证参数的第i个第一验证参数,i=1,……,N。
在一种可能的设计中,其中,所述方法还包括:从可信设备中获取N个第二参考参数,其中,所述N个第二参考参数与所述N个电子设备一一对应;根据所述N个第二验证参数的第i个第二验证参数以及所述N个第二参考参数的第i个第二参考参数,验证所述N个电子设备中的第i个电子设备的软件安全性。
在一种可能的设计中,其中,所述方法还包括:确定对应M个电子设备的树,其中,所述树包括M个节点,所述M个节点与所述车辆中M个电子设备一一对应,所述M个电子设备包括所述N个电子设备,M为大于N的正整数;基于所述树中M个节点的连接关系,确定所述第一节点为所述N个电子设备的父节点。在一种可能的设计中,其中,所述树中M个节点的连接关系与所述车辆中M个电子设备的连接关系一致。
在一种可能的设计中,所述树中M个节点的连接关系与所述车辆中M个电子设备的连接关系一致。
在一种可能的设计中,其中,所述树为对应所述车辆的高度平衡二叉树。
在一种可能的设计中,其中,所述树为完全平衡二叉树,所述M个节点为所述树的叶子节点,所述树还包括K个非叶子节点,K为大于1的正整数。
在一种可能的设计中,其中,所述方法还包括确定并存储第一块,所述第一块与所述树对应,其中,所述第一块包括第一结构信息,所述第一结构信息用于指示所述树的节点的连接关系;确定并存储第二块,第二块包括第二结构信息,所述第二结构信息包括未修改指示信息以及已修改指示信息,所述未修改指示信息用于指示未更新节点,所述已修改指示信息用于指示已更新节点的连接关系,其中,对应每个所述未更新节点的第一验证参数和第二验证参数未更新;对应每个所述已更新节点的第一验证参数或第二验证参数已更新。
在一种可能的设计中,其中,所述第一块还包括:所述第一块还包括:指示存储所述第一块的时间的时间戳以及对应所述M个电子设备的软件信息;所述第二块还包括指示存储所述第二块的时间的时间戳以及对应已更新电子设备的软件信息。
根据第二方面,本申请实施例提供了一种计算设备,所述计算设备具有实现第一方面所述方法的功能。所述功能可以通过硬件实现,也可通过硬件执行相应的软件实现。所述软件的硬件包括至少一个对应所述功能的模块。
根据第三方面,本申请实施例提供了一种带有指令的计算机可读存储介质。当在计算机上运行所述指令时,使得所述计算机执行第一方面或第一方面的任意可能实现方式中的方法。
根据第四方面,提供了一种计算设备,包括:处理器、存储器和通信接口。所述处理器与所述存储器和所述通信接口连接。所述存储器用于存储指令,所述处理器用于执行所述指令,所述通信接口用于在所述处理器的控制下与其他网元进行通信。当所述处理器执行所述存储器存储的指令时,所述执行使得所述处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
根据第五方面,提供了一种芯片系统,包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于从所述存储器中调用并运行所述计算机程序,使得设置有所述芯片的服务器执行第一方面或第一方面的任意可能实现方式中的方法。
根据第六方面,提供了一种的计算机程序产品,其中,当所述计算机程序产品在服务器上运行时,使得所述服务器执行第一方面或第一方面的任意可能实现方式中的方法。
附图说明
图1为根据本申请实施例的车辆中电子设备的示意性框图。
图2为车辆中电子设备的结构示意图。
图3示出了根据本申请实施例的系统。
图4示出了VVT的示例。
图5示出了GVT的示例。
图6为用于验证车辆中电子设备软件安全性的方法的实施例的流程图。
图7示出了对应车辆200的树。
图8示出了对应车辆200的另一树。
图9示出了对应车辆200的又一树。
图10示出了对应车辆200的树。
图11为用于验证车辆中电子设备软件安全性的方法的另一实施例的流程图。
图12示出了对应车辆200的默克尔树。
图13示出了对应软件更新后的车辆200的树。
图14示出了VVT的部分区块链。
图15为用于验证车辆中电子设备软件安全性的方法的实施例的流程图。
图16示出了根据本申请实施例的计算设备1600的示意性框图。
图17示出了根据本申请实施例的计算设备1700的示意性框图。
图18示出了当ECU具有HSM/TPM时获取ECU的第二验证参数的过程。
图19示出了当ECU不具有HSM/TPM时获取ECU的第二验证参数的过程。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
根据本申请的车辆中电子设备可以包括远程信息处理器(telematics box,TBox)、中央控制器(central controller,CC)、域控制器(domain controller,DC)和电子控制单元(Electronic Control Unit,ECU),等等。
图1为根据本申请实施例的车辆中电子设备的示意性框图。
如图1所示,电子设备100可以包括收发器101、处理器102和存储器103。
收发器101可用于与其他电子设备通信。收发器101可以向其他电子设备发送控制信息和/或数据;收发器101可以从其他电子设备接收控制信息和/或数据。例如,收发器101可以从服务器接收更新包,将包括在接收到的更新包中的至少一个补丁发送至车辆中对应电子设备,并且从该对应电子设备接收更新反馈信息。
存储器103可以用于存储由处理器102执行的代码、指令等。换言之,与电子设备100的软件相关的指令和数据存储在存储器103中。
本申请不区分软件和固件。本申请提到的软件也可以用于表示固件。
图2为车辆中电子设备的结构示意图。
参见图2,车辆200包括14个电子设备,即TBox 201、CC 210、DC 220、DC 230、DC240、ECU 221、ECU 222、ECU 223、ECU 231、ECU 232、ECU 241、ECU 242、ECU 243和ECU 244。
TBox 201与CC 210连接。DC 220、DC 230和DC 240与CC 210连接。ECU 221、ECU222和ECU 213与DC 220连接;ECU 231和ECU 232与DC 230连接;ECU 241、ECU 242、ECU 243和ECU 244与DC 240连接。
TBox 201结合了无线通信模块。TBOX 201可以通过无线保真(WirelessFidelity,WiFi)、长期演进(Long Term Evolution,LTE)、第5代(5th generation,5G)移动网络等任意无线通信方式与空中下载(Over-Top-Air,OTA)服务器进行通信。
图3示出了根据本申请实施例的系统。
参见图3,该系统包括服务器300和车辆200。服务器300可以为用于验证车辆200中电子设备软件安全性的服务器,诸如OTA服务器或其他类型的服务器。
应注意,车辆200是多辆车辆中的一辆。所有这些车辆都对应服务器300。服务器300可以用于验证这些车辆中任意一辆的电子设备的软件安全性。为便于说明,图3中仅示出了一辆车辆(即车辆200)。
下面结合图2和图3对本申请实施例进行描述。
车辆200和服务器300可以使用全局版本树(global version tree,GVT)和车辆版本树(vehicle version tree,VVT)管理车辆中电子设备的软件。
每辆车辆都有对应的VVT。对应不同车辆的VVT可能不同。对应车辆200的VVT包括车辆200中每个电子设备的软件信息。车辆200和服务器300中存储的VVT可以包括车辆200中每个电子设备的当前软件信息。为便于描述,将对应车辆的VVT称为VVTVEH,将存储在车辆200中的VVT称为VVTVEH_V,将存储在服务器中的VVT称为VVTVEH_S
车辆200中电子设备的软件更新之后,VVTVEH、VVTVEH_V和VVTVEH_S相同。
图4示出了VVT的示例。
图4所示的VVT中,车辆200中电子设备的软件信息格式可以为[MFR_ID,DEV_ID:Version],其中,MFR_ID为用于标识电子设备类型和制造商的ID,DEV_ID为电子设备的唯一ID,而Version为电子设备当前软件版本。例如,TBox 201的软件信息为[MFR_AA,0x01:V4],表示标识TBox 201类型和TBox 201制造商的ID为MFR_AA,TBox 201的ID为0x01,TBox 201当前软件版本为V4。
每种汽车型号都有对应的GVT。例如,BMW-系列-2-2019Q1对应GVT 1,BMW-系列-2-2016Q2对应GVT 2。不同汽车型号可能配备有不同的电子设备。因此,对应不同汽车型号的GVT可能包括不同的信息。
存储在车辆200中的GVT和存储在服务器300中的GTV为对应车辆200的汽车型号的GVT。为便于描述,将车辆200的汽车型号称为目标型号,将对应该目标型号的GVT称为GVTTGT,将存储在车辆200中的GVT称为GVTTGT_V,将存储在车辆200中的服务器称为GVTTGT_S
车辆200中电子设备的软件更新之后,GVTTGT,GVTTGT_V和GVTTGT_S相同。
图5示出了GVT的示例。
图5所示的CVT中,目标型号中电子设备的软件信息的格式可以为[MFR_ID,:Version],其中,MFR_ID为用于标识电子设备类型和制造商的ID,Version为电子设备当前软件版本。例如,TBox 201的软件信息为[MFR_AA,:V4],表示标识TBox 201类型和制造商的ID为MFR_AA,TBox 201当前软件版本为V4。
理想情况下,VVTVEH、VVTVEH_V、VVTVEH_S、GVTTGT、GVTTGT_V和GVTTGT_S中电子设备当前软件版本是相同的。
图6为用于验证车辆中电子设备软件安全性的方法的实施例的流程图。
在一些实施例中,图6所示的方法可由车辆或车辆部件(诸如芯片或电路)执行。
在一些实施例中,图6所示的方法可由对应车辆的服务器或服务器的部件(诸如芯片或电路)执行。
以图3为例。在一些实施例中,车辆200或车辆200的部件可实现图6中所示的方法。在一些实施例中,服务器300或服务器300的部件可实现图6中所示的方法。
在一些实施例中,图6中所示的不同步骤可由车辆和/或对应车辆服务器的不同部件执行。
例如,车辆200的每个电子设备可确定其第二验证参数,并将第二验证参数发送至车辆200的芯片,该芯片用于确定第一验证参数并执行对比步骤。
又例如,车辆200的每个电子设备可确定其第二验证参数,并将第二验证参数发送至TBox 201。TBox 201将第二验证参数发送至服务器300。服务器300确定第一验证参数并执行对比步骤。
再例如,车辆200的每个电子设备可确定其第二验证参数,并将第二验证参数发送至车辆200的芯片,该芯片用于确定第一验证参数。芯片可以将第一验证参数和第二验证参数发送至车辆200的发射器。该发射器可以将第一验证参数和第二验证参数发送至服务器300。服务器300根据接收到的验证参数执行对比步骤。
可以结合图2和图3对图6所示的方法进行描述。此外,在下文关于图6的描述中,假定该方法由车辆200执行。
601,车辆200获取14个第一软件参数。
14个第一软件参数与车辆200的14个电子设备(即图2所示的电子设备)一一对应。为便于描述,将对应TBox 201的第一软件参数称为Fst201,将对应CC 210第一软件参数称为Fst210,将对应DC 220的第一软件参数称为Fst220,等等。
在一些实施例中,对应电子设备的第一软件参数可以是电子设备的软件映像。电子设备的软件映像可以反映电子设备的软件信息。不同软件的软件映像不同,且同一软件不同版本的软件映像也不同。例如,TBox 201的软件映像与CC 210的软件映像不同。若电子设备的软件已更新,则该电子设备的软件映像将相应改变。若恶意软件嵌入电子设备的软件中,则该电子设备的软件映像与未嵌入恶意软件的电子设备的软件映像不同。
在一些实施例中,对应电子设备的第一软件参数可以为用于电子设备软件更新的补丁。
在一些实施例中,对应电子设备的第一软件参数可以为电子设备软件的关键代码。
在一些实施例中,对应电子设备的第一软件参数可以包括电子设备的软件映像、电子设备的MFR_ID和DEV_ID。
在一些实施例中,对应电子设备的第一软件参数可以为对应电子设备的第二验证参数。例如,电子设备可以包括硬件安全模块(hardware security module,HSM)或可信平台模块(trusted platform module,TPM)。若HSM/TPM可用,则HSM/TPM可以根据电子设备的软件映像/用于软件更新的补丁/软件的关键代码确定电子设备的第二验证参数。若HSM/TPM不可用或电子设备不包括HSM/TPM,则电子设备可以将软件映像/用于软件更新的补丁/软件的关键代码发送至可信电子设备。该可信电子设备可以根据接收到的软件映像/补丁/关键代码确定电子设备的第二验证参数。可信电子设备可以为不能确定第二验证参数的电子设备的父/祖先设备。例如,若ECU 221的HSM/TPM不可用,则ECU 221的可信节点可以为DC220或CC 210。后文将描述确定第二验证参数的细节。
图18示出了当ECU具有HSM/TPM时获取ECU的第二验证参数的过程。
图19示出了当ECU不具有HSM/TPM时获取ECU的第二验证参数的过程。
在一些实施例中,全部14个第一软件参数可以为软件映像,或补丁,或关键代码。
在一些实施例中,全部14个第一软件参数可以为第二验证参数。
在一些其他实施例中,由于14个电子设备的部分参数不能确定第二验证参数且14个电子设备的其余参数可以确定第二验证参数,所以14个第一软件参数的部分参数可以是软件映像,或补丁,或密钥代码,而14个软件参数的其余部分参数可以是第二验证参数。
为便于描述,在下列实施例中,假定全部14个第一软件参数均为软件映像。
602,车辆200确定对应14个电子设备的树。
在一些实施例中,该树可以包括14个节点。该14个节点与车辆200中的14个电子设备一一对应。
在一些实施例中,树中14个节点之间的连接关系可以与车辆中14个电子设备之间的连接关系一致。为便于描述,将对应TBox 201的节点称为节点201,将对应CC 210的节点称为节点210,将对应DC 220的节点称为节点220,等等。
图7示出了对应车辆200的树。
参见图7,树700包括14个节点。图7所示节点的连接关系与图2所示电子设备的连接关系一致。例如,树700的层0包括一个节点,即节点201。节点201与节点210连接。参见图2,对应节点201的TBox 201与对应节点210的CC 210连接。
在一些实施例中,树中14个节点之间的连接关系可以不同于车辆200中14个电子设备之间的连接关系。例如,对应车辆200的树可以是高度平衡二叉树(Height BalancedBinary Tree,HBBT)、完全平衡二叉树(默克尔树),等等。
图8示出了对应车辆200的另一树。
图8示出了HBBT。如图8所示,树800的每个内部节点最多有两个子节点。例如,节点210有两个子节点,即节点230和节点240;节点221有一个子节点,即节点223。
图9示出了对应车辆200的又一树。
图9示出了默克尔树。如图9所示,树900的每个内部节点有两个子节点。例如,节点210有两个子节点,即节点230和节点240。除了对应14个电子设备的14个节点之外,树900还包括虚拟节点,即NodeD。虚拟节点的软件参数为预设值或与预设节点的软件参数相同,诸如节点244。
603,车辆200根据14个第一软件参数分别确定14个第二验证参数。
对应电子设备的第二验证参数是根据电子设备的第一软件参数确定的。为便于描述,将对应TBox 201的第二验证参数称为Hi_201,将对应CC 210的第二验证参数称为Hi_210,将对应DC 220的第二验证参数称为Hi_220,等等。
Hi_201是根据Fst201确定的。换言之,对应TBox 201的第二验证参数是根据TBox 201的第一软件参数确定。类似地,Hi_210是根据Fst210确定的;Hi_220是根据Fst220确定的。
在一些实施例中,第二验证参数可根据下列公式确定:
Hi_X=H(FstX), (公式1.1)
Hi_X为电子设备X的第二验证参数,FstX为电子设备X的第一软件参数。H(FstX)为对FstX的哈希计算。例如,车辆200可以对TBox 201的第一软件参数执行哈希计算以获取哈希值。该哈希值为对应TBox 201的第二验证参数,即Hi_201
在一些实施例中,第二验证参数可根据下列公式确定:
Hi_X=H(FstX,REFparX), (公式1.2)
Hi_X为电子设备X的第二验证参数,FstX为电子设备X的第一软件参数。REFparX为关于电子设备X的参考参数。REFparX可以包括对应电子设备X的至少一个参数。例如,REFparX可以包括下列任意至少一项:指示当前时间的时间戳、指示电子设备X软件安装时间的时间戳、指示GVT或VVT更新完成时间的时间戳,或对应车辆200电子设备的树的构建完成的时间戳、电子设备X的软件版本及电子设备X的MFR_ID或DEV_ID等。H(FstX,REFparX)为对FstX和REFparX的哈希计算。例如,车辆200可以对TBox 201的第一软件参数和对应TBox 201的一个或多个参数执行哈希计算以获取哈希值。该哈希值为对应TBox 201的第二验证参数,即Hi_201
根据本申请实施例的哈希计算的算法可以是安全哈希算法(Secure HashAlgorithm,SHA)、SHA2算法、消息摘要5(Message Digest 5,MD5)算法等,对此本发明实施例不做具体限定。
604,基于树中节点的连接关系,车辆200可以根据14个第二验证参数确定至少一个第一验证参数。
第一验证参数的数量可以与树中的节点的数量相同。
例如,对于图7或图8所示的树,车辆可以确定14个第一验证参数。对于图9所示的树,车辆可以确定15个第一验证参数。
下面将结合图7详细描述如何确定第一验证参数。为便于描述,节点用于表示相应的电子设备。例如,节点210的第一/第二验证参数表示对应CC 210的第一/第二验证参数。
下文中,为便于对本发明实施例的理解,介绍本发明实施例涉及关于树的基本概念。
1、根节点
根节点为树中可区分的初始项或基础项,是唯一没有父项的项。例如,节点201为树700的根节点。
2、叶子节点
叶子节点也可以称为外部节点或终端节点。叶子节点是树中没有任何子节点的节点。例如,节点221-223、231-232和241-244为树700的叶子节点。
3、内部节点
内部节点也可以称为非终端节点或非叶子节点。内部节点是树的节点,其有至少一个子节点,也就是说,其是非叶子节点。例如,节点210、220、230和240是树700的内部节点。
4、父节点
除根节点外,任意节点在该节点向上一条边的节点为父节点。例如,在树700中,节点220是节点221、222和223的父节点;节点210是节点220、230和240的父节点。
5、子节点
在给定节点下方通过其向下的边连接的节点称为其子节点。例如,在树700中,节点221、222和223是节点220的子节点;节点220、230和240是节点210的子节点。
6、后代节点
后代节点指连接到层次结构树下层的任意元素——无论多少层以下。后代是指孩子、孙子、曾孙等。例如,在树700中,节点222是节点220、210和201的后代节点;节点230是节点210和201的后代节点。
7、祖先节点
祖先指连接到层次结构树高层的任意元素——无论多少层以上。祖先是指父、祖父、曾祖父等。例如,在树700中,节点220是节点221、222和223的祖先节点。节点210是节点221、222和223的祖先节点。
8、层
节点的层由节点与根节点之间的连接数+1定义。例如,根节点的层为0,节点210的层为1,节点220的层为2。
树700的叶子节点的第一验证参数是根据该叶子节点的第二验证参数和该叶子节点的身份信息确定的。
可根据下列公式确定叶子节点的第一验证参数:
Hn_X=H(Hi_X,IDinfoX), (公式1.3)
Hn_X为电子设备X(叶子节点X)的第一验证参数。Hi_X为电子设备X(叶子节点X)的第二验证参数,IDinfoX为电子设备X(叶子节点X)的身份信息。H(Hi_X,IDinfoX)为对Hi_X,IDinfoX的哈希计算。例如,车辆200可以对节点221的第二参数和节点221的身份信息执行哈希计算以获取哈希值。该哈希值为对应节点221(即ECU 221)的第一验证参数,即Hn_221
对于内部节点,可以根据该内部节点的子节点的第一验证参数、该内部节点的第二验证参数以及该内部节点的身份信息确定第一验证参数。
例如,节点210的第一验证参数可以根据节点210的第二验证参数、节点220,节点230和节点240的第一验证参数、以及节点210的身份信息确定。换言之,Hn_210可以根据Hi_210、Hn_220、Hn_230、Hn_240以及IDinfo210确定,其中,IDinfor210为节点210的身份信息。
又例如,节点201的第一验证参数可以根据节点201的第二验证参数、节点201的第一验证参数以及节点201的身份信息确定。
可以根据下列公式确定内部节点的第一验证参数:
Hn_Y=H(Hi_Y,Hn_chY,IDinfoY), (公式1.4)
Hn_Y为电子设备Y(内部节点Y)的第一验证参数。Hi_Y为电子设备Y(内部节点Y)的第二验证参数。Hn_chY为内部节点Y的所有子节点的第一验证参数。对于若内部节点Y为节点220,则Hn_chY可以包括Hn_221、Hn_222及Hn_223;若内部节点Y为节点210,则Hn_chY可以包括Hn_220、Hn_230及Hn_240;若内部节点Y为节点201,则Hn_chY可以仅包括Hn_210。IDinfoY为电子设备Y(内部节点Y)的身份信息。H(Hi_Y,Hn_chY,IDinfoY)为对Hi_X,Hn_chY,IDinfoX的哈希计算。例如,车辆200可以对Hi_210、Hn_220、Hn_230、Hn_240及IDinfo210执行哈希计算以获取哈希值。哈希值为对应节点210(CC 210)的第一验证参数,即Hn_210
在一些实施例中,节点的身份信息可以包括层ID和节点ID。层ID表示节点的层。节点ID用于区分不同的节点。换言之,不同节点的节点ID不同。
图10示出了对应车辆200的树。
图10示出了树700中每个节点的身份信息。例如,节点201的身份信息为0:0,其中,左0为节点201的层ID,右0为节点201的节点ID。类似地,节点230的身份信息为2:6,其中,2为层ID,6为节点ID。
根据上述实施例,由于节点的身份信息包括层ID和节点ID,因此可以根据节点身份信息的身份信息确定节点的层和节点的标识。
在一些实施例中,节点的身份信息可以仅包括节点ID。
在一些实施例中,节点的身份信息可以为对应该节点的电子设备的DEV_ID或MFR_ID。
内部节点的第一验证参数是根据其子节点的第一验证参数确定的。因此,若改变其子节点中的一个节点的第一验证参数,则内部节点的第一验证参数将重新被计算。若内部节点(以下称为内部节点1)的子节点也是内部节点(以下称为内部节点2),则内部节点1的第一验证参数将受其孙子节点(即内部节点2的子节点)影响。
以树700为例,若更新节点244的软件,则节点244的软件参数将相应地更新。在此种情况下,将根据更新后的软件参数重新计算节点244的第二验证参数,并且将根据重新计算的节点244的第二验证参数来重新计算节点244的第一验证参数。由于节点240的第一验证参数是根据节点244的第一次验证确定的,因此将根据重新计算的节点244的第一验证参数重新计算节点240的第一验证参数。相应的,将重新计算节点210和节点201的第一验证参数。
通常情况下,内部节点的第一验证参数可能会受到其后代节点的软件的影响。换言之,节点(除根节点外)的软件可能会影响其祖先节点的第一验证参数。
605,车辆200从服务器300获取第一参考信息。
本申请实施例不限制以何种方式从服务器300获取第一参考信息。在一些实施例中,车辆200可以主动获取第一参考信息。例如,车辆可以向服务器300发送请求。接收到请求之后,服务器300可以将第一参考信息发送至车辆200。在一些实施例中,服务器300可以将第一参考信息推送至车辆200。例如,服务器300可以周期性地将参考信息发送至车辆200。又例如,当参考信息被更新后,服务器300可以将更新后的参考信息发送至车辆200。
606,车辆200根据第一验证信息和第一参考信息验证14个电子设备的软件安全性。
在一些实施例中,第一参考信息可以包括14个第一参考参数。第一参考参数与14个第一验证参数一一对应。
服务器300可以存储车辆200中14个电子设备的软件参数。因此,服务器300可以根据软件参数确定14个第一参考参数。确定第一参考参数的方法类似于确定第一验证参数的方法。为了简洁,在此不再赘述确定第一参考参数的具体细节。
将服务器300视为可信设备。在此种假设下,用于确定参考参数的软件信息不能被篡改。
为便于描述,将对应TBox 201的第一参考称为H’n_201,将对应CC 210的第一参考称为H’n_210,等等。Hn_201对应H’n_201,Hn_210对应H’n_210,Hn_220对应H’n_220,Hn_230对应H’n_230,等等。
电子设备的第一参考参数和电子设备的第一验证参数可用于验证对应电子设备的电子设备的软件安全性。
对应电子设备的电子设备包括电子设备本身和电子设备的所有后代节点。
例如,Hn_201和H’n_201可用于验证对应TBox 201的电子设备的软件安全性。对应TBox201的电子设备包括图2所示的全部14个电子设备。
又例如,Hn_210和H’n_210可用于验证对应CC 210的电子设备的软件安全性。对应CC210的电子设备包括CC 210、DC 220、DC 230、DC 240以及图2中所示的所有ECU。
若电子设备的第一验证参数和电子设备的第一参考参数相同,则车辆可以确定对应电子设备的电子设备的软件安全性为肯定的。换言之,若电子设备的第一验证参数和电子设备的第一参考参数相同,则车辆可以确定对应电子设备的每个电子设备的软件为安全的。
相反,若电子设备的第一验证参数和电子设备的第一参考参数不同,则车辆可以确定对应电子设备的电子设备的软件安全性为否定。换言之,若电子设备的第一验证参数和电子设备的第一参考参数不同,则车辆可以确定对应电子设备的至少一个电子设备的软件为不安全。在此种情况下,车辆200可以使用电子设备子节点的第一验证信息和第一参考信息确定子节点以及对应该子节点的电子设备软件的安全性。
下文中将结合图7、图8和图9描述如何验证电子设备的软件安全性。
在下列关于验证软件安全性的实施例中,假定恶意软件被插入到节点222(ECU222)的软件中。在此种情况下,节点222的软件映像被改变。因此,节点222及其祖先节点的第一验证参数可以与正确的第一验证参数(即当恶意软件未插入节点222的软件时的第一验证参数)不同。节点222及其祖先节点的第一参考参数与正确的第一验证参数相同。因此,节点222及其祖先节点的第一参考参数与节点222及其祖先节点的第一验证参数不同。
车辆200可以从根节点开始比较第一验证和第一参考。
以图7中的树700为例,车辆200可执行下列步骤以发现节点222的软件异常(下列步骤忽略验证内部节点软件安全性的步骤):
步骤1:将节点201的第一验证参数与节点201的第一参考参数进行比较,确定节点201的第一验证参数与节点201的第一参考参数不同;
步骤2:将节点210的第一验证参数与节点210的第一参考参数进行比较,确定节点210的第一验证参数与节点210的第一参考参数不同;
步骤3:将节点220的第一验证参数与节点220的第一参考参数进行比较,确定节点220的第一验证参数与节点220的第一参考参数不同;
步骤4:将节点221的第一验证参数与节点221的第一参考参数进行比较,确定节点221的第一验证参数与节点221的第一参考参数相同;
步骤5:将节点222的第一验证参数与节点222的第一参考参数进行比较,确定节点222的第一验证参数与节点222的第一参考参数不同;
步骤6:将节点223的第一验证参数与节点223的第一参考参数进行比较,确定节点223的第一验证参数与节点223的第一参考参数相同;
步骤7:将节点230的第一验证参数与节点230的第一参考参数进行比较,确定节点230的第一验证参数与节点230的第一参考参数相同,并确定节点230及其后代节点的软件安全性是肯定的;
步骤8:将节点240的第一验证参数与节点240的第一参考参数进行比较,确定节点240的第一验证参数与节点240的第一参考参数相同,并确定节点240及其后代节点的软件安全性是肯定的;
对于图7中所示的树700,车辆200执行8个步骤以发现节点222软件异常。
以图8中的树800为例,车辆200可执行下列步骤以发现节点222的软件异常(下列步骤忽略验证内部节点软件安全性的步骤):
步骤1:将节点201的第一验证参数与节点201的第一参考参数进行比较,确定节点201的第一验证参数与节点201的第一参考参数不同;
步骤2:将节点210的第一验证参数与节点210的第一参考参数进行比较,确定节点210的第一验证参数与节点210的第一参考参数相同,并确定节点210及其后代节点、节点230及其后代节点以及节点240及其后代节点的软件安全性是肯定的;
步骤3:将节点220的第一验证参数与节点220的第一参考参数进行比较,确定节点220的第一验证参数与节点220的第一参考参数不同;
步骤4:将节点221的第一验证参数与节点221的第一参考参数进行比较,确定节点221的第一验证参数与节点221的第一参考参数相同,并确定节点221和节点223的软件安全性是肯定的;
步骤5:将节点222的第一验证参数与节点222的第一参考参数进行比较,确定节点222的第一验证参数与节点222的第一参考参数不同,并确定节点222软件异常。
对于图8中所示的树800,车辆200仅执行5个步骤以发现节点222软件异常。
以图9中的树900为例,车辆200可执行下列步骤以发现节点222的软件异常(下列步骤忽略验证内部节点软件安全性的步骤):
步骤1:将节点201的第一验证参数与节点201的第一参考参数进行比较,确定节点201的第一验证参数与节点201的第一参考参数不同;
步骤2:将节点210的第一验证参数与节点210的第一参考参数进行比较,确定节点210的第一验证参数与节点210的第一参考参数相同,并确定节点210、节点230及其后代节点、节点240、节点241和节点242的软件安全性是肯定的;
步骤3:将节点220的第一验证参数与节点220的第一参考参数进行比较,确定节点220的第一验证参数与节点220的第一参考参数不同;
步骤4:将节点221的第一验证参数与节点221的第一参考参数进行比较,确定节点221的第一验证参数与节点221的第一参考参数相同,并确定节点221、节点223和节点243的软件安全性是肯定的;
步骤5:将节点222的第一验证参数与节点222的第一参考参数进行比较,确定节点222的第一验证参数与节点222的第一参考参数不同;
步骤6:将节点244的第一验证参数与节点244的第一参考参数进行比较,确定节点244的第一验证参数与节点244的第一参考参数相同,并确定节点244的软件安全性是肯定的,节点222的软件异常。
对于图9中所示的树900,车辆900仅执行6个步骤以发现节点222软件异常。
因此,若对应车辆200的电子设备的树是TBBT或默克尔树,则车辆200可以执行较少的比较。在此种情况下,车辆200可以更快地确定异常的电子设备。
根据上述实施例,车辆200仅根据第一验证信息和第一参考信息确定软件安全性。在此种情况下,若内部节点的软件异常,则车辆200必须测试其所有后代节点的软件安全性。例如,对于树900,车辆200确定节点244的软件为安全之后,确定节点222的软件为异常。进一步,若节点244的软件也异常,则车辆200无法确定节点222的软件安全性。在此种情况下,即使实际状态为正常,车辆200也必须确定节点222的软件安全性为非正常。
在一些实施例中,第一验证信息还可包括14个电子设备的第二验证参数,第一参考信息还可包括14个电子设备的第二参考参数。
确定第二参考参数的方法类似于确定第二验证参数的方法。为了简洁,在此不再赘述确定第二参考参数的具体细节。在此种情况下,车辆200可以使用第二验证参数和第二参考参数确定内部节点的软件安全性。若内部节点的第二验证参数与内部节点的第二参考参数相同,则内部节点的软件安全性为肯定。若内部节点的第二验证参数与内部节点的第二参考参数不同,则车辆200可以确定内部节点的软件安全性为否定。
例如,对于树900,车辆200可以根据节点222的第二验证参数和节点222的第二参考参数确定节点222的软件安全性。若节点222的第二验证参数与节点222的第二参考参数相同,则车辆200可以确定节点222的软件安全性为肯定。若节点222的第二验证参数与节点222的第二参考参数不同,则车辆200可以确定节点222的软件安全性为否定。
图11为用于验证车辆中电子设备软件安全性的方法的另一实施例的流程图。
在一些实施例中,图11所示的方法可由车辆或车辆部件(诸如芯片或电路)执行。
在一些实施例中,图11所示的方法可由服务器或对应车辆的服务器的部件(诸如芯片或电路)执行。
在一些实施例中,图11中所示的不同步骤可由车辆或对应车辆的服务器的不同部件执行。例如,车辆200的每个电子设备可确定其第二验证参数,并将第二验证参数发送至车辆200的芯片,该芯片用于确定第一验证参数并执行对比步骤。
下面结合图2和图3对图11所示的方法进行描述。此外,在下文关于图11的描述中,假定该方法由车辆200执行。
1101,车辆200获取14个第一软件参数。
步骤1101的细节可参考图6所示的步骤601。
1102,车辆200确定相对于14个电子设备的树。
该树为默克尔树。14个电子设备对应该默克尔树的14个叶子节点。
图12示出了对应车辆200的默克尔树。
如图12所示,树1200的每个内部节点有两个子节点。参见图12,00指节点00,11指节点11,201指节点201,210指节点210,等等。此外,图12示出的D表示虚拟节点。节点201是对应TBox 201的节点,节点210是对应CC 210的节点,等等。
1103,车辆200分别根据14个第一软件参数确定14个第二验证参数。
步骤1103的细节类似于步骤603。为了简洁,在此不再赘述确定第二参考参数的具体细节。
1104,车辆200确定内部节点的第一验证参数。
在一些实施例中,内部节点的第一验证参数可以根据其的子节点的验证参数确定。
在一些实施例中,若内部节点的子节点是叶子节点,则可以根据其的子节点的第二验证参数确定内部节点的第一验证参数。内部节点的第一验证参数可以根据下列公式确定:
Hn_Y=H(Hi_L,Hi_R), (公式2.1)
Hn_Y为电子设备Y(内部节点Y)的第一验证参数。Hi_L为电子设备Y(内部节点Y)的左子节点的第二验证参数。Hi_R为电子设备Y(内部节点Y)的右子节点的第二验证参数。H(Hi_L,Hi_R)为对Hi_L,Hi_R的哈希计算。例如,车辆200可以对Hi_201和Hi_210进行哈希计算以获取哈希值。该哈希值为节点31的第一验证参数,即Hn_31
在一些实施例中,若内部节点的子节点是叶子节点,则可以根据其的子节点的第一验证参数确定内部节点的第一验证参数。内部节点的第一验证参数可以根据下列公式确定:
Hn_Y=H(Hn_L,Hn_R), (公式2.2)
Hn_Y为电子设备Y(内部节点Y)的第一验证参数。Hn_L为电子设备Y(内部节点Y)的左子节点的第一验证参数。Hn_R为电子设备Y(内部节点Y)的右子节点的第一验证参数。H(Hn_L,Hn_R)为对Hn_L,Hn_R的哈希计算。例如,车辆200可以对Hn_201和Hn_210进行哈希计算以获取哈希值。哈希值为对应节点31的第一验证参数,即Hn_31
确定叶子节点的第一验证参数的方法可参考图6所示的实施例。
若内部节点的子节点是非叶子节点,则可以根据其子节点的第一验证参数确定内部节点的第一验证参数。换言之,公式2.2可用于计算任意内部节点的第一验证参数。
在一些实施例中,内部节点的身份信息可以用于确定内部节点的第一验证。内部节点的第一验证参数可以根据下列公式确定:
Hn_Y=H(Hn_L,Hn_R,IDinfoY), (公式2.3)
Hn_Y为电子设备Y(内部节点Y)的第一验证参数。Hn_L为电子设备Y(内部节点Y)的左子节点的第一验证参数。Hn_R为电子设备Y(内部节点Y)的右子节点的第一验证参数。IDinfoY为节点Y的身份信息。H(Hn_L,Hn_R,IDinfoY)为对Hn_L,Hn_R以及节点Y的身份信息的哈希计算。例如,车辆200可以对Hn_201,Hn_210以及节点31的身份信息进行哈希计算以获取哈希值。该哈希值为对应节点31的第一验证参数,即Hn_31
在一些实施例中,公式2.3中的Hn_L可由Hi_R代替,公式2.3中的Hn_R可由Hi_R代替。
节点身份信息的定义与图6所示实施例公开相同,此处不再赘述。
1105,车辆200从服务器300获取第一参考信息。
1106,车辆200根据第一验证信息和第一参考信息验证14个电子设备的软件安全性。
步骤1105和1106的细节可参考上述实施例中的步骤605和606,此处不再赘述。
车辆中电子设备的软件可以被更新。若一个或多个电子设备的软件被更新,则可以重新计算这些电子设备以及对应这些电子设备的电子设备的验证参数。以车辆200为例,假设14个电子设备中的2个电子设备的软件被更新。在此种情况下,应重新计算该2个电子设备的第一验证参数和第二验证参数。相应地,也可以重新计算该2个电子设备的第一参考参数和第二参考参数。重新计算第一/第二验证参数(第一/第二参考参数)的方法与上述实施例中公开的计算第一/第二验证参数(第一/第二参考参数)的方法相同,此处不再赘述。
进一步,由于父节点的第一验证参数是根据其字节点的第一验证参数确定的,因此需要重新计算该2个电子设备的祖先节点的第一验证参数。相应地,应该重新计算该2个电子设备的祖先节点的第一参考参数。
以树800为例,假设对应节点222和节点242的电子设备(即ECU 222和ECU 242)是该2个电子设备。为便于描述,将对应软件更新的软件参数称为第二软件参数。如同第一软件参数,电子设备的第二软件参数可以是电子设备更新的软件映像、用于更新电子设备的软件的补丁或电子设备软件更新的关键代码。
为便于描述,将根据第二软件参数确定的第二验证参数称为更新的第二验证参数。相应地,根据更新的第二验证参数确定的第一验证参数称为更新的第一验证参数,根据更新的第一验证参数确定的第一验证参数也称为更新的第一验证参数。
车辆200可以根据对应节点222的电子设备的第二软件参数确定节点222更新的第二验证参数。接着,车辆200根据节点222更新的第二验证参数和节点222身份信息确定节点222更新的第一验证参数。进一步,车辆200根据节点222更新的第一验证参数、节点221的第一验证参数、节点220的第二验证参数以及节点220的身份信息确定节点220更新的第一验证参数。
类似地,车辆200可以根据对应节点242的电子设备的第二软件参数确定节点242更新的第二验证参数。接着,车辆200根据节点242更新的第二验证参数和节点242身份信息确定节点242更新的第一验证参数。车辆200根据节点242更新的第一验证参数、节点241的第一验证参数、节点240的第二验证参数以及节点240的身份信息确定节点240更新的第一验证参数。车辆200根据节点240更新的第一验证参数、节点230的第一验证参数、节点210的第二验证参数以及节点210的身份信息确定节点210更新的第一验证参数。
最后,车辆200根据节点210更新的第一验证参数、节点220更新的的第一验证参数、节点201的第二验证参数以及节点201的身份信息确定节点201更新的第一验证参数。
为便于描述,软件更新的电子设备可以称为第一电子设备,软件未更新的电子设备可以成为第二电子设备。相应地,对应第一电子设备的节点可以称为第一节点,对应第二电子设备的节点可以称为第二节点。因此,根据上述假设,车辆200包括2个第一电子设备(ECU 222和ECU 242)和12个第二电子设备。相应地,树800包括2个第一节点和12个第二节点。因此重新计算该2个第一节点的祖先节点的第一验证参数。重新计算其第一/第二验证参数的节点可以称为更新节点,未重新计算其第一验证参数和第二验证参数的节点可以称为原始节点。
图13示出了对应软件更新后的车辆200的树。
参见图13中示出的树800’,树800’包括6个更新节点。
车辆200可以确定第二验证信息。
在一些实施例中,第二验证信息可以包括更新的指示、更新的第二验证参数和更新的第一验证参数。更新的指示用于指示第二电子设备(或原始节点)。
根据上述假设,更新的指示用于指示节点230及其子节点、节点241及其子节点、节点221及其子节点。第二验证信息包括2个第二验证参数(节点242更新的第二验证参数和节点222更新的第二验证参数)和6个第一验证参数(节点242、节点240、节点210、节点222、节点220和节点201更新的第一验证参数)。
在一些实施例中,若一个节点及其所有后代节点均为原始节点,则更新的指示可以包括该节点的身份信息或该节点对应电子设备的身份信息。例如,更新的指示可以包括节点221、节点241和节点230的身份信息。在一些实施例中,更新的指示可以包括每个原始节点的身份信息或每个第二电子设备的身份信息。在一些实施例中,更新的指示可以包括每个原始节点的身份信息或每个第二电子设备的身份信息。
在一些实施例中,第二验证信息可以包括对应车辆200的树中每个节点的第一验证参数和第二验证参数。以树800为例,第二验证信息包括14个第一验证参数和14个第二验证参数。14个第一验证参数包括更新节点的第一验证参数和原始节点的第一验证参数。类似地,14个第二验证参数包括更新节点的第二验证参数和原始节点的第二验证参数。
在一些实施例中,第一验证信息可以进一步包括时间戳。时间戳用于指示第一验证信息的完成时间。车辆200可以在确定第一验证参数和第二验证参数之后记下时间。该时间为第一验证信息的完成时间。
类似地,第二验证非正式可以进一步包括时间戳,该时间戳用于指示第二验证信息的完成时间。
上述实施例基于以下假设:本申请的方法由车辆200或车辆200的部件执行。如上所述,本申请的方法还可以由服务器或服务器的部件执行。若本申请的方法由服务器或服务器的部件执行,则车辆可以将电子设备的软件参数或电子设备的第二验证参数发送至服务器。为了简洁,带有软件参数或第二验证参数的消息可以称为验证消息。
在一些实施例中,可以通过使用私钥/公钥对保护验证消息。例如,车辆200可以使用公钥加密验证消息,并将加密的验证消息发送至服务器300。服务器300可以使用对应公钥的私钥对接收到的验证消息进行解密,以获取软件参数或第二验证参数。
上述实施例中所述的VVT和GVT描述了车辆的电子设备的实际内部网络。例如,图4中所示的VVT以及图5中所示的GVT描述了电子设备的实际连接关系(即图5中所示的连接关系)。在一些实施例中,VVT和GVT可以被转换为HBBT或默克尔树。
可选地,在一些实施例中,服务器300可以使用区块链管理车辆200的VVT和对应车辆200的汽车型号的GVT。如上所述,若车辆200中一个或多个电子设备的软件更新,则VVT和GVT可以相应地更新。为便于描述,版本号用于描述VVT/GVT和更新的VVT/GVT。例如,VVT v2为更新的VVT v1,VVT v3为更新的VVT v2,以此类推。类似地,GVT v2为更新的GVT v1,GVTv3为更新的GVT v2,以此类推。管理VVT的方法与管理GVT的方法相同。
服务器300可以存储每个VVT版本的块。例如,车辆200可以存储对应VVT v1的块1,对应VVT v2的块2,对应VVT v3的块3,等等。
对应VVT的块可以包括以下信息:对应VVT的VVT信息的哈希值、时间戳以及在先块的哈希值。时间戳用于指示存储该块的时间。对于初始块,在先的块的哈希值可以为预设值。另外,该块还可以包括对应VVT的结构信息,该结构信息用于指示VVT节点之间的连接关系。
例如,VVT v1为初始VVT。图8中所示的树800为VVT v1。块1可以包括树800的结构、VVT v1的VVT信息的哈希值、指示存储块1的时间的时间戳以及在先块的哈希值(预设值)。
在一些实施例中,可以根据VVT v1确定VVT v1的VVT信息。服务器300可以确定对应VVT v1的软件统计信息(以下称为M1)。M={连接的节点文件||Tv}。假定对应VVT v1的电子设备软件信息为图4所示的软件信息。因此,M1={[MFR_AA,0x01:V4]||[MFR_BB,0x02:V3]||[MFR_CC,0x03:V6]||[MFR_DD,0x001:V2]||[MFR_EE,0x002:V2]||[MFR_FF,0x003:V4]||[MFR_GG,0x04:V3]||[MFR_HH,0x004:V3]||[MFR_II,0x005:V3]||[MFR_JJ,0x05:V5]||[MFR_KK,0x005:V5]||[MFR_LL,0x007:V2]||[MFR_MM,0x008:V6]||[MFR_N,0x009:V4]||Tv},根据图5所示的树V2确定的VVT信息M为:{[MFR_BB,0x02:V3]||[MFR_CC,0x03:V6]||[MFR_EE,0x002:V2]||[MFR_JJ,0x05:V5]||[MFR_MM,0x008:V6]||Tv},其中,Tv为时间戳,该时间戳用于指示存储VVT v1的时间。换言之,时间戳是软件统计信息的一部分。在一些其他实施例中,软件统计信息可以不包括时间戳。
在一些实施例中,软件统计信息可以用作VVT信息。在一些其他实施例中,可以根据服务器300的软件统计信息和私钥确定VVT信息。具体的,VVT信息可以根据下列公式确定:
S=E(M,Kpriv), (公式3.1)
其中,S为VVT信息,M为软件统计信息,Kpriv为服务器的私钥。
在一些实施例中,对应初始VVT的块的结构信息可以包括初始VVT节点的完整连接关系。对应其他VVT的块的结构信息可以包括修改及未修改指示信息,该未修改指示信息用于指示该树的未修改部分。例如,VVT v1为初始VVT。因此,块1的结构信息可以包括图8所示的树,块2的结构信息可以包括图13所示的树以及对应未修改指示信息。
图14示出了VVT的部分区块链。图14示出了VVT的区块链中的3个块。
参见图14,块1包括整个VVT、H(M1)、H(Block0)以及Tv0。H(M1)为M1的哈希值。H(Block0)为预设值,Tv1为指示存储块1的时间的时间戳。块2包括部分VVT和未修改指示信息(由块2所示的箭头指示),H(M2)、H(Block1)和Tv2。H(M2)是M2的哈希值。H(Block1)为块1的哈希值,Tv2为指示存储块2的时间的时间戳。块3包括部分VVT和未修改指示信息(块3所示的箭头指示),H(M3)、H(Block2)和Tv3。H(M3)为M3的哈希值。H(Block2)为块2的哈希值,Tv3为指示存储块3的时间的时间戳。
图15为用于验证车辆中电子设备软件安全性的方法的实施例的流程图。
1501,计算设备可以获取N个第一验证参数,其中,该N个第一验证参数与车辆中N个电子设备一一对应,该N个第一验证参数的第i个第一验证参数是根据该N个电子设备的第i个电子设备的软件映像确定的,N为大于1的正整数。
该计算设备可以为车辆、车辆的部件、服务器或服务器的部件。
1502,该计算设备可根据该N个第一验证参数,确定对应第一节点的第一验证参数,其中,该第一节点为N个电子设备的父节点。
1503,该计算设备可从可信设备获取对应第一节点的第一参考参数。
1504,该计算设备可根据对应该第一节点的该第一验证参数及对应该第一节点的该第一参考参数,验证该N个电子设备的软件安全性。
可选地,在一些实施例中,该方法还可以包括:该计算设备可以获取N个第二验证参数,其中,该N个第二验证参数与该N个电子设备一一对应,其中,该N个第二验证参数的第i个第二验证参数是根据该N个电子设备的第i个电子设备的软件映像确定;该计算设备获取N个第一验证参数,包括:该计算设备可以根据该N个第二验证参数的第i个第二验证参数以及该N个电子设备的第i个电子设备的身份信息,确定该N个第一验证参数的第i个第一验证参数,i=1,……,N。
可选地,在一些实施例中,该方法还包括:该计算设备可以从可信设备中获取N个第二参考参数,其中,该N个第二参考参数与该N个电子设备一一对应。该计算设备可以根据该N个第二验证参数的第i个第二验证参数以及该N个第二参考参数的第i个第二参考参数,验证该N个电子设备中的第i个电子设备的软件安全性。
可选地,在一些实施例中,该方法还包括:该计算设备可以确定对应M个电子设备的树,其中,树包括M个节点,M个节点与该车辆中M个电子设备一一对应,该M个电子设备包括该N个电子设备,M为大于N的正整数;基于该树中该M个节点的连接关系,确定第一节点为该N个电子设备的父节点。
可选地,在一些实施例中,该树中该M个节点的连接关系与该车辆中该M个电子设备的连接关系一致。
可选地,在一些实施例中,该树为对应车辆的高度平衡二叉树。
可选地,在一些实施例中,该树为完全平衡二叉树,该M个节点为该树的叶子节点,该树还包括K个非叶子节点,K为大于1的正整数。
可选地,在一些实施例中,该计算设备可以确定并存储第一块,该第一块与该树对应,其中,该第一块包括第一结构信息,该第一结构信息用于指示树的节点的连接关系。该计算设备可以确定并存储第二块,该第二块包括第二结构信息,该第二结构信息包括未修改指示信息以及已修改指示信息,未修改指示信息用于指示未更新节点,已修改指示信息用于指示已更新节点之间的连接关系,其中,对应每个未更新节点的第一验证参数和第二验证参数未更新;对应每个已更新节点的第一验证参数或第二验证参数已更新。
可选地,在一些实施例中,第一块还包括:指示存储第一块的时间的时间戳以及对应M个电子设备的软件信息。第二块还包括指示存储第二块的时间的时间戳以及对应已更新电子设备的软件信息。
图16示出了根据本申请实施例的计算设备1600的示意性框图。如图16所示,计算设备1600包括获取模块1601和确定模块1602。
获取模块1601用于获取N个第一验证参数,其中,该N个第一验证参数与车辆中N个电子设备一一对应,该N个第一验证参数的第i个第一验证参数是根据N个电子设备的第i个电子设备的软件映像确定的,N为大于1的正整数。
确定模块1602用于根据该N个第一验证参数,确定对应第一节点的第一验证参数,其中,该第一节点为该N个电子设备的父节点。
获取模块1601还用于从可信设备获取对应该第一节点的第一参考参数.
确定模块1602还用于根据对应该第一节点的该第一验证参数及对应该第一节点的该第一参考参数,验证该N个电子设备的软件安全性。
可选地,计算设备1600可以为车辆、车辆的部件、服务器或服务器的部件。
可选地,在一些实施例中,获取模块1601用于获取N个第二验证参数,其中,N个第二验证参数与N个电子设备一一对应,其中,该N个第二验证参数的第i个第二验证参数是根据N个电子设备的第i个电子设备的软件映像确定的;获取模块1601具体用于根据该N个第二验证参数的第i个第二验证参数以及该N个电子设备的第i个电子设备的身份信息,确定该N个第一验证参数的第i个第一验证参数,i=1,……,N。
可选地,在一些实施例中,获取模块1601还用于从可信设备中获取N个第二参考参数,其中,该N个第二参考参数与该N个电子设备一一对应;确定模块1602还用于根据该N个第二验证参数的第i个第二验证参数以及该N个第二参考参数的第i个第二参考参数,验证该N个电子设备中的第i个电子设备的软件安全性。
可选地,在一些实施例中,确定模块1602还用于确定对应M个电子设备的树,其中,该树包括M个节点,该M个节点与该车辆中M个电子设备一一对应,该M个电子设备包括该N个电子设备,M为大于N的正整数;基于该树中该M个节点的连接关系,确定该第一节点为该N个电子设备的父节点。
可选地,在一些实施例中,该树中该M个节点的连接关系与车辆中M个电子设备的连接关系一致。
可选地,在一些实施例中,该树为对应车辆的高度平衡二叉树。
可选地,在一些实施例中,该树为完全平衡二叉树,该M个节点为该树的叶子节点,该树还包括K个非叶子节点,K为大于1的正整数。
可选地,在一些实施例中,确定模块1602还用于确定第一块,该第一块与该树对应,其中,该第一块包括第一结构信息,该第一结构信息用于指示该树的节点的连接关系;确定第二块,该第二块包括第二结构信息,该第二结构信息包括未修改指示信息以及已修改指示信息,未修改指示信息用于指示未更新节点,已修改指示信息用于指示已更新节点之间的连接关系,其中,对应每个未更新节点的第一验证参数和第二验证参数未更新;对应每个已更新节点的第一验证参数或第二验证参数已更新。
可选地,在一些实施例中,第一块还包括:指示存储第一块的时间的时间戳以及对应M个电子设备的软件信息;第二块还包括指示存储第二块的时间的时间戳以及对应已更新电子设备的软件信息。
应理解,本申请实施例的计算设备1600可对应上述实施例中的服务器或车辆,并且上述和服务器或车辆中模块的其它管理操作和/或功能分别用于实现前述各个方法的相应步骤。为了简洁,这里不再赘述。
如图17所示,计算设备1700可以包括收发器1701、处理器1702和存储器1703。存储器1703可以用于存储处理器1702执行的代码、指令等。
应理解,处理器1702可以是集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。该处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、离散门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
应理解,本发明实施例中的存储器1703可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchronous link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本申请实施例还提供了一种系统芯片,该系统芯片包括输入/输出接口、至少一个处理器、至少一个存储器和总线,该至少一个存储器用于存储指令,该至少一个处理器用于调用该至少一个存储器的指令,以进行上述各个实施例的方法的操作。
本申请实施例还提供一种计算机存储介质,该计算机存储介质可以存储用于指示上述任一种方法的程序指令。
可选地,该存储介质具体可以为存储器1703。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述系统、装置和单元的具体工作过程,可以参考上述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所公开的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,单元划分仅是一种逻辑功能划分,在实际实现方式中可以是其他划分。例如,以上所描述的装置实施例仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。此外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以通过一些接口来实现。设备或单元之间的间接耦合或通信连接,可以是电性,机械或其它的形式实现。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的较佳实现方式而已,并非用于限定本申请的保护范围。本技术领域的技术人员在本申请公开的技术范围内,可轻易想到的变化或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (16)

1.一种用于验证车辆中电子设备的软件版本的方法,其特征在于,所述方法包括:
获取N个第一验证参数,其中,所述N个第一验证参数与所述车辆中N个电子设备一一对应,所述N个第一验证参数的第i个第一验证参数是根据所述N个电子设备的第i个电子设备的软件映像确定的,N为大于1的正整数;
确定对应M个电子设备的树,其中,所述树包括M个节点,所述M个节点与所述车辆中M个电子设备一一对应,所述M个电子设备包括所述N个电子设备,M为大于N的正整数;
基于所述树中M个节点的连接关系,确定第一节点为所述N个电子设备的父节点;
根据所述N个第一验证参数,确定对应所述第一节点的第一验证参数;
从可信设备获取对应所述第一节点的第一参考参数;
根据对应所述第一节点的所述第一验证参数以及对应所述第一节点的所述第一参考参数,验证所述N个电子设备的软件安全性;
确定并存储第一块,所述第一块与所述树对应,其中,所述第一块包括第一结构信息,所述第一结构信息用于指示所述树的节点的连接关系;
确定并存储第二块,第二块包括第二结构信息,所述第二结构信息包括未修改指示信息以及已修改指示信息,所述未修改指示信息用于指示未更新节点,所述已修改指示信息用于指示已更新节点的连接关系,其中,对应每个所述未更新节点的第一验证参数和第二验证参数未更新;对应每个所述已更新节点的第一验证参数或第二验证参数已更新。
2.根据权利要求1所述方法,其特征在于,所述方法还包括:
获取N个第二验证参数,其中,所述N个第二验证参数与所述N个电子设备一一对应,其中,所述N个第二验证参数的第i个第二验证参数是根据所述N个电子设备的第i个电子设备的软件映像确定的;
所述获取N个第一验证参数,包括:
根据所述N个第二验证参数的第i个第二验证参数以及所述N个电子设备的第i个电子设备的身份信息,确定所述N个第一验证参数的第i个第一验证参数,i=1,…,N。
3.根据权利要求2所述方法,其特征在于,所述方法还包括:
从可信设备中获取N个第二参考参数,其中,所述N个第二参考参数与所述N个电子设备一一对应;
根据所述N个第二验证参数的第i个第二验证参数以及所述N个第二参考参数的第i个第二参考参数,验证所述N个电子设备中的第i个电子设备的软件安全性。
4.根据权利要求1所述的方法,其特征在于,所述树中M个节点的连接关系与所述车辆中M个电子设备的连接关系一致。
5.根据权利要求1所述的方法,其特征在于,所述树为对应所述车辆的高度平衡二叉树。
6.根据权利要求1所述的方法,其特征在于,所述树为完全平衡二叉树,所述M个节点为所述树的叶子节点,所述树还包括K个非叶子节点,K为大于1的正整数。
7.根据权利要求1所述的方法,其特征在于,所述第一块还包括:指示存储所述第一块的时间的时间戳以及对应所述M个电子设备的软件信息;
所述第二块还包括指示存储所述第二块的时间的时间戳以及对应已更新电子设备的软件信息。
8.一种计算设备,其特征在于,包括:
获取模块,用于获取N个第一验证参数,其中,所述N个第一验证参数与车辆中N个电子设备一一对应,所述N个第一验证参数的第i个第一验证参数是根据所述N个电子设备的第i个电子设备的软件映像确定的,N为大于1的正整数;
确定模块,用于根据所述N个第一验证参数确定对应第一节点的第一验证参数,其中,所述第一节点为所述N个电子设备的父节点;
所述获取模块,还用于从可信设备获取对应所述第一节点的第一参考参数;
所述确定模块,还用于根据对应所述第一节点的所述第一验证参数及对应所述第一节点的所述第一参考参数,验证所述N个电子设备的软件安全性;
所述确定模块还用于确定对应M个电子设备的树,其中,所述树包括M个节点,所述M个节点与所述车辆中M个电子设备一一对应,所述M个电子设备包括所述N个电子设备,M为大于N的正整数;基于所述树中M个节点的连接关系,确定所述第一节点为所述N个电子设备的父节点;
所述确定模块还用于确定第一块,所述第一块与所述树对应,其中,所述第一块包括第一结构信息,所述第一结构信息用于指示所述树的节点的连接关系;确定第二块,所述第二块包括第二结构信息,所述第二结构信息包括未修改指示信息以及已修改指示信息,所述未修改指示信息用于指示未更新节点,所述已修改指示信息用于指示已更新节点的连接关系,其中,对应每个所述未更新节点的第一验证参数和第二验证参数未更新;对应每个所述已更新节点的第一验证参数或第二验证参数已更新。
9.根据权利要求8所述的设备,其特征在于,所述获取模块还用于获取N个第二验证参数,其中,所述N个第二验证参数与所述N个电子设备一一对应,其中,所述N个第二验证参数的第i个第二验证参数是根据所述N个电子设备的第i个电子设备的软件映像确定的;
所述获取模块具体用于根据所述N个第二验证参数的第i个第二验证参数以及所述N个电子设备的第i个电子设备的身份信息,确定所述N个第一验证参数的第i个第一验证参数,i=1,……,N。
10.根据权利要求9所述的设备,其特征在于,
所述获取模块还用于从可信设备中获取N个第二参考参数,其中,所述N个第二参考参数与所述N个电子设备一一对应;
所述确定模块还用于根据所述N个第二验证参数的第i个第二验证参数以及所述N个第二参考参数的第i个第二参考参数,验证所述N个电子设备中的第i个电子设备的软件安全性。
11.根据权利要求8所述的设备,其特征在于,所述树中M个节点的连接关系与所述车辆中M个电子设备的连接关系一致。
12.根据权利要求8所述的设备,其特征在于,所述树为对应所述车辆的高度平衡二叉树。
13.根据权利要求8所述的设备,其特征在于,所述树为完全平衡二叉树,所述M个节点为所述树的叶子节点,所述树还包括K个非叶子节点,K为大于1的正整数。
14.根据权利要求8中所述的设备,其特征在于,所述第一块还包括指示存储所述第一块的时间的时间戳以及对应所述M个电子设备的软件信息;
所述第二块还包括指示存储所述第二块的时间的时间戳以及对应已更新电子设备的软件信息。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在服务器上运行时,使得所述服务器执行根据权利要求1至7中任一项所述的方法。
16.一种计算设备,其特征在于,包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于从所述存储器中调用所述计算机程序并运行所述计算机程序,使得设置有所述计算设备的服务器执行根据权利要求1至7中任一项所述的方法。
CN202080005100.7A 2020-09-30 2020-09-30 验证车辆中电子设备软件安全性的方法及相关设备 Active CN112740210B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/119574 WO2022067731A1 (en) 2020-09-30 2020-09-30 Method for verifying software security of electronic device(s) in vehicle and related device

Publications (2)

Publication Number Publication Date
CN112740210A CN112740210A (zh) 2021-04-30
CN112740210B true CN112740210B (zh) 2022-02-11

Family

ID=75609528

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080005100.7A Active CN112740210B (zh) 2020-09-30 2020-09-30 验证车辆中电子设备软件安全性的方法及相关设备

Country Status (4)

Country Link
EP (1) EP4211588A4 (zh)
JP (1) JP2023543476A (zh)
CN (1) CN112740210B (zh)
WO (1) WO2022067731A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024088912A1 (en) * 2022-10-25 2024-05-02 Robert Bosch Gmbh Digital shadows for remote attestation of vehicle software

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106845279A (zh) * 2017-02-17 2017-06-13 宇龙计算机通信科技(深圳)有限公司 安全服务管理实体ssme模块的校验方法及装置
CN109492352A (zh) * 2018-10-09 2019-03-19 华为技术有限公司 一种设备标识组合引擎的实现方法及装置
CN110262826A (zh) * 2019-03-05 2019-09-20 上海博泰悦臻网络技术服务有限公司 车载软件配置升级管理方法、服务端、客户端及处理端
JP2020023314A (ja) * 2018-07-25 2020-02-13 株式会社デンソー 車両用電子制御システム、プログラム更新の承諾判定方法及びプログラム更新の承諾判定プログラム
CN111279310A (zh) * 2017-10-24 2020-06-12 华为国际有限公司 一种车载设备升级方法及相关设备
CN111295862A (zh) * 2017-11-13 2020-06-16 大众汽车有限公司 用于密码地保证车辆身份的系统和方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102483781B (zh) * 2009-06-26 2015-05-13 信诚逻辑公司 数据验证方法
CN105515776A (zh) * 2010-03-05 2016-04-20 交互数字专利控股公司 给设备提供安全性的方法和装置
US9766874B2 (en) * 2014-01-09 2017-09-19 Ford Global Technologies, Llc Autonomous global software update
CN108304737A (zh) * 2018-01-26 2018-07-20 鑫银科技集团股份有限公司 一种数据验证方法、电子设备及数据验证系统
CN108881303A (zh) * 2018-08-06 2018-11-23 罗伯特·博世有限公司 具有计算功能的节点、安全验证网络和安全验证方法
US11204751B2 (en) * 2018-09-07 2021-12-21 International Business Machines Corporation Mitigating incompatibilities due to code updates in a system containing multiple networked electronic control units
CN110047168A (zh) * 2019-04-15 2019-07-23 优信拍(北京)信息科技有限公司 车辆信息的管理方法、装置、设备及系统
US10726000B1 (en) * 2019-07-23 2020-07-28 Science Applications International Corporation Blockchain based integrity checks
CN110460447B (zh) * 2019-08-16 2022-07-08 东北大学秦皇岛分校 基于哈希二叉树的边缘计算数据审计系统及审计方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106845279A (zh) * 2017-02-17 2017-06-13 宇龙计算机通信科技(深圳)有限公司 安全服务管理实体ssme模块的校验方法及装置
CN111279310A (zh) * 2017-10-24 2020-06-12 华为国际有限公司 一种车载设备升级方法及相关设备
CN111295862A (zh) * 2017-11-13 2020-06-16 大众汽车有限公司 用于密码地保证车辆身份的系统和方法
JP2020023314A (ja) * 2018-07-25 2020-02-13 株式会社デンソー 車両用電子制御システム、プログラム更新の承諾判定方法及びプログラム更新の承諾判定プログラム
CN109492352A (zh) * 2018-10-09 2019-03-19 华为技术有限公司 一种设备标识组合引擎的实现方法及装置
CN110262826A (zh) * 2019-03-05 2019-09-20 上海博泰悦臻网络技术服务有限公司 车载软件配置升级管理方法、服务端、客户端及处理端

Also Published As

Publication number Publication date
EP4211588A4 (en) 2023-10-25
EP4211588A1 (en) 2023-07-19
WO2022067731A1 (en) 2022-04-07
JP2023543476A (ja) 2023-10-16
CN112740210A (zh) 2021-04-30

Similar Documents

Publication Publication Date Title
US20160378457A1 (en) Program update system and program update method
CN111385191B (zh) 车载互联网关、车辆ota升级系统和方法、计算机存储介质
CN108762783B (zh) 车辆系统的软件更新方法、装置及车辆系统
JP5864510B2 (ja) 修正プログラム確認方法、修正プログラム確認プログラム、及び情報処理装置
US10372932B2 (en) Secure factory data generation and restoration
US8881308B2 (en) Method to enable development mode of a secure electronic control unit
US20200057630A1 (en) Method and Apparatus for Wirelessly Updating Software for Vehicle
CN110959274B (zh) 一种管理控制器局域网中模块间安全通信的系统及方法
US20140075517A1 (en) Authorization scheme to enable special privilege mode in a secure electronic control unit
US10752207B2 (en) Multi-factor authentication of a hardware assembly
CN104683409A (zh) 终端间应用共享的方法和终端
US11182485B2 (en) In-vehicle apparatus for efficient reprogramming and controlling method thereof
US20180310173A1 (en) Information processing apparatus, information processing system, and information processing method
US20140058532A1 (en) Method for partial flashing of ecus
CN104756120A (zh) 存储和访问数据
CN112740210B (zh) 验证车辆中电子设备软件安全性的方法及相关设备
Khodari et al. Decentralized firmware attestation for in-vehicle networks
JP2023518402A (ja) 証明書リスト更新方法および装置
CN112740172B (zh) 管理车辆中电子设备软件版本的方法及相关设备
US11935341B2 (en) Data storage device and non-transitory tangible computer readable storage medium
CN111142902B (zh) 处理器的升级固件保护方法、装置及车辆
US20220284743A1 (en) Center device and in-vehicle electronic control device
US20230274002A1 (en) Firmware authenticity check
US20240104211A1 (en) Generating audit records for distributed computing system-based motor vehicle tests
KR20240025970A (ko) Rxswin 정보를 포함하는 차량 제어 장치 및 그를 포함한 차량 제어 시스템

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