1.本发明总体上涉及在车辆、特别是机动车辆内安装数据处理组件。
2.本发明特别有利地用于将这种数据处理组件下载到车辆内的背景下,但也用于将数据处理组件例如从存储卡本地加载到车辆中的情况。
3.更具体地,本发明涉及一种用于安装数据处理组件的方法以及一种相关联的电子设备。
背景技术:4.在一些情况下,期望在车辆中设置的电子设备中安装数据处理组件。当期望更新电子设备内实施的软件或电子设备操纵的数据时,尤其如此。
5.这种数据处理组件的安装自然会对车辆的后续操作产生影响,并且必须以受控方式进行。
技术实现要素:6.在这种背景下,本发明提出了一种用于在车辆中设置的电子设备中安装数据处理组件的方法,该方法包括以下步骤:
7.‑
接收包括第一清单的设备包,该第一清单包括该数据处理组件的散列值;
8.‑
验证该第一清单的完整性;
9.‑
接收该数据处理组件;
10.‑
验证该数据处理组件的散列值与所接收的数据处理组件之间的对应关系;
11.‑
仅在该第一清单的完整性通过验证且该对应关系通过验证的情况下安装该数据处理组件。
12.以此方式,作为本发明的结果,车辆接收与数据处理组件相关联、并参与(特别地通过使用散列值)对数据处理组件的完整性的验证的数据结构。所提出的解决方案进一步使得可以分开传输设备包和数据处理组件本身,这在设计车辆及其电子设备期间提供了更大的灵活性。
13.进一步,上述第一清单可以包括第一车辆标识符,并且然后该安装方法可以包括以下步骤:
14.‑
将该第一车辆标识符与存储在该车辆内的第二车辆标识符进行比较;
15.‑
仅在该第一标识符与该第二标识符的比较结果为肯定的情况下安装该数据处理组件。
16.以下是根据本发明的方法的其他非限制性的有利特征,这些特征单独地或根据所有技术上可能的组合加以考虑:
17.‑
该设备包包括第一签名;
18.‑
通过将密码签名验证算法应用于该第一签名和该第一清单来验证该清单的完整性;
19.‑
该数据处理组件是独立于该设备包而被接收的;
20.‑
该数据处理组件是在该设备包内被接收的;
21.‑
该数据处理组件包括第二签名和内容;
22.‑
该方法包括使用该第二签名来验证该内容的完整性的步骤。
23.该方法可以进一步包括以下步骤:
24.‑
接收包括该设备包和第二清单的容器;
25.‑
验证该第二清单的完整性。
26.该第二清单因此可以包括第一车辆标识符,并且该安装方法在这种情况下可以包括以下步骤:
27.‑
将该第一车辆标识符与存储在该车辆内的第二车辆标识符进行比较;
28.‑
仅在该第一标识符与该第二标识符的比较结果为肯定的情况下传输该设备包。
29.该容器因此可以包括例如旨在用于另一电子设备的另一设备包。
30.该容器可以进一步响应于由车辆传输的请求而从远程服务器(例如直接经由在远程服务器与车辆之间建立的通信,该通信能够部分地使用车辆与蜂窝电话网络之间的无线链路)被接收;在变体中,该容器可以从插入到该车辆中设置的读卡器中的存储卡被接收。
31.最后,本发明涉及一种旨在设置在车辆中的电子设备,并且该电子设备包括:
32.‑
用于接收包括清单的设备包的模块,该清单包括数据处理组件的散列值;
33.‑
用于验证该清单的完整性的模块;
34.‑
用于接收该数据处理组件的模块;
35.‑
用于验证该数据处理组件的散列值与所接收的数据处理组件之间的对应关系的模块;
36.‑
安装模块,该安装模块被配置成仅在该清单的完整性通过验证且该对应关系通过验证的情况下安装该数据处理组件。
37.进一步,该清单可以包括第一车辆标识符,并且该电子设备因此可以包括用于将该第一车辆标识符与存储在该车辆内的该车辆的第二标识符进行比较的模块。
38.该安装模块可以被配置成仅在该清单的完整性通过验证、该第一标识符与该第二标识符的比较结果为肯定的且该对应关系通过验证的情况下安装该数据处理组件。
39.除了由进行清单验证提供的完整性和真实性保护之外,在清单中使用目标车辆标识符还使得能够增加合法性保护。这是因为虽然车载更新进程当然可以验证所接收的图像是未损坏的、真实的和在特定硬件上兼容的,但这并不一定意味着该车辆可以合法地接收该图像。在端到端传输链中出现网络攻击或恶意进程的情况下,兼容车辆的图像可能会被插入而取代源图像。因此,清单中的车辆标识符将允许在这种场景下防止任何欺骗的发生。
40.这种电子设备例如是电子控制单元(或计算机),该电子控制单元包括处理器和存储可由该处理器执行的计算机程序指令的存储器。
41.在这种情况下,例如通过处理器和特定指令的协作来实施上述模块,这些指令被配置成当被处理器执行时实施属于所讨论的模块(如下文所述)的功能。
42.当然,本发明的各种特征、变体和实施例可以根据各种组合相互关联,只要它们不是不兼容或相互排斥的。
具体实施方式
43.参照附图通过非限制性示例给出的描述将使得容易理解本发明涉及的内容以及可以如何实施本发明。
44.在附图中:
45.图1示意性地示出了可以在其中实施本发明的系统;
46.图2示出了可以在本发明的背景下使用的数据组织的示例;
47.图3示出了可以在本发明的背景下使用的数据组织的另一示例;以及
48.图4示出了根据本发明的用于在车辆内安装数据处理组件的方法的示例。
49.图1的系统包括车辆v(例如,机动车辆)、移动电话网络n、广域网i(比如互联网)和远程服务器s。
50.车辆v包括通信单元2、处理单元4、第一电子控制单元6、网关8和第二电子控制单元10。
51.图1示出了对理解本发明有利的车辆v的元件,但在实践中车辆v自然包括其他元件、特别是其他电子控制单元或处理器。
52.上述电子设备(通信单元2、处理单元4、第一电子控制单元6、网关8和第二电子控制单元10)在实践中可以各自以微处理器架构的形式产生;特别地,在这种背景下,这些电子设备中的每一个都包括处理器和至少一个存储器(例如,ram和/或非易失性存储器)。
53.处理单元4本身在实践中可以通过电子控制单元来实施,在适用的情况下,其具有比下面描述的更多的功能。
54.如图1示意性展示的,处理单元4连接到通信单元2、第一电子控制单元6和网关8,以便能够与这些不同的电子设备交换数据。通信单元2、处理单元4、电子控制单元6和网关8为此例如连接到(同一)车载数据处理网络(未示出),例如,can总线(“控制器局域网络”)。
55.网关8进一步例如通过专用总线连接到第二电子控制单元10。
56.车辆v可以进一步包括用于存储卡20的读卡器12,该读卡器可用于本发明的构造变体中,如下所述。
57.通信单元2被配置成在移动电话网络n中实施通信c(如图1中由实线示意性展示出的,其表示该连接是物理类型的,例如3g/4g、wi
‑
fi等),并且因此可以通过移动电话网络n(特别是通过使用车辆v与作为移动电话网络n的一部分的蜂窝电话网络之间的无线链路)和广域网i建立与远程服务器s的连接,使得处理单元4和远程服务器s可以特别是在车辆v内安装数据处理组件的背景下交换数据d(如图1中通过虚线示意性展示出的,其表示该连接是逻辑类型的),如下文所述。
58.图2示出了可以在本发明的背景下使用的数据组织的示例。
59.这些数据特别是包括期望安装在车辆v的一个或多个电子设备中(在这种情况下特别是安装在第一电子控制单元6和/或第二电子控制单元10中,在此实例中,这两个电子控制单元都使用术语“电子设备”来指代)的数据处理组件comp1、comp2、compi。
60.在这种情况下,数据处理组件comp1、comp2、compi被封装在树状结构内,如下所示:
61.‑
下载包dpack包括一个或多个设备包ecupack1、ecupack2、ecupackn,每个设备包与车辆v的电子设备相关;
62.‑
每个设备包ecupack包括与旨在用于特定的电子设备的一个或多个数据处理组件comp1、comp2、compi相关的数据。
63.这种俄罗斯套娃式的封装方法是特别有利的,因为该方法除了能够按目标组件,也就是说这里按电子控制单元2、4、6、8和10(其软件可以通过远程更新(或空中固件升级fota)进行修改)进行内容隔离之外,还能够确保同一电子组件内更新的一致性。此外,这种封装能够实现具有多个阶段的多级别完整性/真实性验证。更具体地,通信单元2将能够对下载包dpack进行第一级验证,并且一旦验证通过,就将(多个)设备包ecupack提取并分发到目标组件2、4、6、8和10。因此,目标组件2、4、6、8和10将能够使用不同的密码硬件进行第2级验证,这使得能够产生按组件的内容隔离(内容可能有许多提供者)。在(多个)设备包ecupack通过认证之后,可以提取数据处理组件comp1、comp2、compi,进而对其进行第三密码级验证,并最终在通过验证的情况下进行安装。因此,该过程在目标处理器是通信单元2的情况下特别有利,因为对于通常由安全或受保护区域(或受信任区域)和非安全区域(或不受信任区域)组成的这种通信单元而言,该方法因此使其能够作为远程处理器进行两个级别的验证:在非信任连接区域验证下载包dpack;提取设备包ecupack并与受信任区域共享,然后在受信任区域中进行设备包验证。以此方式,最终,无论目标ecu是本地还是远程(车辆网络的其他ecu),该方法都使得能够进行多个级别的验证。在图2中另外展示的替代方案中,组件comp不在设备包ecupack中,该组件将通过第二交换过程被接收并通过包含在设备包ecupack的第一实例中的散列值h(comp1)、h(comp2)、h(compi)进行验证。将更新内容封装在组件中使得能够控制制造商级别的电子签名以确保对图像的认证,从而确保对部署的控制。组件的这种签名操作将例如由经过认证的安全代理(具有特定特权)在车辆制造商处手动执行。在不进行此操作的情况下,无法在车辆上部署未损坏的内容。该签名级别例如是手动的(特别是assim签名)并且使得能够对部署授权进行控制。以此方式,供应商提供的未损坏且真实的二进制更新内容在不进行此级别验证的情况下将无法被处理器2、4、6、8或10使用,这使得能够确保只有经过车辆制造商认证的图像才能被传输到车辆。这进一步在部署前确保了目标软件的质量。
64.这些数据包中的每一个都包含用于安装数据处理组件的数字签名,如下所述。如以下所设想的,数字签名的验证需要特定的密码基础设施,这里将对其进行描述。
65.为了简化表述,下文中将任何数字签名简称为“签名”。
66.下文特别是使用以下内容:
67.‑
根证书root.cert,其包含元数据root.md以及与私钥root.kpriv相关联的公钥root.kpub;
68.‑
授权证书ca.cert,其包含元数据ca.md、公钥ca.kpub和签名ca.sig;
69.‑
制造商证书r.cert,其包含元数据r.md、公钥r.kpub和签名r.sig;
70.‑
公钥bk.kpub,其与私钥bk.kpriv相关联。
71.私钥ca.kpriv与公钥ca.kpub相关联。
72.以相同的方式,私钥r.kpriv与公钥r.kpub相关联。
73.在这种情况下,术语“相关联的公钥和私钥”旨在被理解为是指在“公钥基础设施”(或pki)中关联的公钥和私钥。
74.在这种背景下,可以通过对一组数据应用使用私钥的密码签名算法(在这种情况
下为rsa类型的密码签名算法)来对该组数据进行签名;然后可以通过使用与上述私钥相关联的公钥的相关联密码签名验证算法(在这种情况下,也是rsa类型的密码签名验证算法)来验证该签名。
75.授权证书ca.cert的签名ca.sig是通过对由元数据ca.md和公钥ca.kpub形成的组应用使用私钥root.kpriv的密码签名算法来获得的(这个操作例如由认证机构执行)。
76.制造商证书r.cert的签名r.sig本身是通过对由元数据r.md和公钥r.kpub形成的组应用使用私钥ca.kpriv的密码签名算法来获得的(这个操作也能够由上述认证机构执行)。
77.现在将详细描述图2所展示的各种数据结构。
78.要安装的每个数据处理组件comp包括:
79.‑
内容conten,其包括要安装(实际上要存储)在所讨论电子设备中的数据;
80.‑
清单compind,其特别是包含要安装的内容的散列值h(conten)以及(在适用的情况下)对数据处理组件的描述,例如,对被该组件更新的功能的描述;
81.‑
清单compind的签名sig(compind)。
82.这些要安装的数据可以构成软件或软件组件(例如,软件更新)。该软件或软件组件因此被配置成至少部分地由所讨论的电子设备的处理器执行。在变体中,这些要安装的数据可以是要存储以供所讨论的电子设备的处理器进行后续操纵的数据(例如,地图数据)。
83.通过将散列值函数(例如,sha
‑
256类型的散列值函数)应用于内容conten来获得散列值h(conten)。
84.通过对清单comind应用使用私钥bk.kpriv的密码签名算法来获得签名sig(compind)。
85.这些操作例如由所讨论的内容conten(例如,软件)的认证主体执行。
86.在这种情况下,每个设备包ecupack包括:
87.‑
如上所述的一个或多个数据处理组件comp1、comp2、compi;
88.‑
清单ecupackind,其包括包含在设备包ecupack中的每个数据处理组件comp1、comp2、compi的散列值h(comp1)、h(comp2)、h(compi)、以及(在适用的情况下)车辆标识符vin和/或对包含在数据包中的数据处理组件comp1、comp2、compi的描述;
89.‑
清单ecupackind的签名sig(ecupackind)。
90.可以实施多种用于提供标识符vin的变体。如上所述地在设备包ecupack中包括标识符vin使得能够确保安装在电子设备中的数据处理组件(例如,车辆的处理器)确实是属于该车辆的组件。这是因为一个组件很可能适合于大量相同类型的车辆,这为用户提供了例如将其车辆的处理器替换为另一相同类型车辆的处理器的可能性。在设备包ecupack中包括vin标识符使得能够避免这种操纵。
91.然而,在变体中,仍然可以例如通过将车辆标识符vin置于下面描述的清单dpackind中来对这种操纵进行授权,如图3所示的变体中的情况。在这种情况下,可以设想仅在所接收的在清单dpackind内的标识符vin与所存储的车辆v的标识符(在这种情况下,在处理单元4内)的比较结果为肯定的情况下才(使用处理单元4)向所讨论的电子设备传输设备包ecupack。
92.根据可以设想的其他实施例,标识符vin可以置于清单dpackind和清单ecupackind两者中,或者不在这两个清单中的任一个中,特别是对于与任何车辆都兼容的数据处理组件,诸如作为包括导航系统的地图数据的数据处理组件。
93.在这种情况下,车辆v的标识符vin是与车辆唯一关联的编号,通常称为vin“车辆识别号”。
94.通过例如在设备包ecupack的定义期间(根据所讨论的设备的要求,特别是该设备的更新要求)将散列函数(例如,sha
‑
256类型的散列函数)分别应用于构成所讨论的数据处理组件comp1、comp2、compi的数据来获得散列值h(comp1)、h(comp2)、h(compi)。
95.通过对清单ecupackind应用使用(与制造商证书r.cert相关联的)私钥r.kpriv的密码签名算法来获得签名sig(ecupackind)。
96.这些操作例如由车辆制造商(或者代表车辆制造商)在为(使用标识符vin来标识的)特定车辆中的所讨论的电子设备定义要安装的数据处理组件时执行。
97.在实践中,签名sig(ecupackind)例如包含在专用于设备包ecupack的字段中,例如包含在cms格式(“密码消息语法”)的字段中。在这种情况下,该字段可以包括签名sig(ecupackind)、授权证书ca.cert和制造商证书r.cert。
98.下载包dpack包括:
99.‑
如上所述的一个或多个设备包ecupack1、ecupack2、ecupackn;
100.‑
清单dpackind特别是包括包含在下载包dpack中的每个设备包ecupack1、ecupack2、ecupackn的散列值h(ecupack1)、h(ecupack2)、h(ecupackn),以及(在适用的情况下)对包含在下载包dpack中的设备包ecupack1、ecupack2、ecupackn的描述(例如,对所讨论的设备包的目标电子设备的每个设备包ecupack1、ecupack2、ecupackn的指示);
101.‑
清单dpackind的签名sig(dpackind)。
102.通过例如在定义下载包dpack期间(在定义目标电子设备和每个设备的相应需求之后)将散列函数(例如,sha
‑
256类型的散列函数)分别应用于所讨论的设备包ecupack2、ecupack2、ecupackn来获得散列值h(ecupack1)、h(ecupack2)、h(ecupackn)。
103.通过对清单dpackind应用使用(与制造商证书r.cert相关联的)私钥r.kpriv的密码签名算法来获得签名sig(dpackind)。
104.这些操作例如由车辆制造商(或代表车辆制造商)在定义所讨论的电子设备和要安装在这些电子设备中的数据处理组件时执行。
105.在实践中,签名sig(dpackind)例如包含在下载包dpack的专用字段中,例如包含在cms格式(“密码消息语法”)的字段中。在这种情况下,该字段可以包括签名sig(dpackind)、授权证书ca.cert和制造商证书r.cert。
106.应当注意,在上述架构中,数据处理组件comp1、comp2、compi中的每一个都独立于安装目标车辆v(并且可以例如用于一队车辆)。然而,设备包ecupack1、ecupack2、ecupackn(以及因此下载包dpack)是专门针对车辆v配置的。
107.图3具有可以针对下载包dpack内的数据组织设想的变体。
108.如已经指出的,在这个变体中,车辆标识符vin置于清单dpackind内。
109.此外,与特定电子设备相关的数据处理组件comp1、comp2、compi不包括在旨在用于该电子设备的设备包ecupack1中,而是相对地在该设备包外部以便能够在适用的情况下
与设备包ecupack1分开传输,如下文将解释的。
110.在这种情况下,设备包ecupack1包括:
111.‑
清单ecupackind,其包括与所讨论的电子设备相关联的数据处理组件comp1、comp2、compi中的每一个的散列值h(comp1)、h(comp2)、h(compi);
112.‑
清单ecupackind的签名sig(ecupackind)。
113.现在将参考图4描述根据本发明的用于在车辆v内安装数据处理组件的方法的示例。
114.该方法开始于步骤e2,在该步骤期间,处理单元4传输旨在发往远程服务器s的请求req。通过该请求,车辆v试图确定数据处理组件是否可用于安装在车辆v内,例如,以用于更新特定软件组件或特定数据(诸如地图数据)。
115.请求req例如由处理单元4周期性地传输。在实践中,远程服务器s的电子坐标例如存储在处理单元4内并且用于传输旨在发往远程服务器s的请求req。电子坐标优选地是指安全连接,诸如ssl(安全套接层)。
116.请求req可以包括车辆v的标识符vin。
117.远程服务器s在步骤e4中接收请求req并确定(例如,基于包括在请求req中的标识符vin)数据处理组件是否可用于车辆v下载。
118.在这种情况下假设数据处理组件可用于下载并安装在车辆v中。因此,服务器s在步骤e6中将全局容器glob传输到处理单元4。
119.该全局容器glob包括清单dpackind、相关联的签名sig(dpackind)和设备包ecupack1、ecupack2、ecupackn。因此,根据各实施例,该全局容器glob包括或不包括数据处理组件comp1、comp2、compi。
120.这是因为,根据第一实施例,还可以在该步骤e6中传输所有或部分数据处理组件comp1、comp2、compi(在步骤e6中传输的这些组件因此不在如下所述的步骤e26中传输)。因此,这些数据处理组件可以在设备包ecupack内传输(例如,在图2中所展示的数据结构的框架内),或者与所讨论的设备包ecupack1一起传输(例如,在图3中所展示的数据结构的框架内)。
121.根据第二实施例,在步骤e6处传输的全局容器glob不包含数据处理组件comp1、comp2、compi中的任何一个(这些数据处理组件因此在根据如下所述的e26步骤的一个或多个步骤期间进行传输)。
122.处理单元4在步骤e8中接收全局容器glob并且因此可以存储该全局容器。在这种情况下,全局容器glob是通过在远程服务器s与车辆v之间建立的通信直接接收的,该通信在这种情况下部分地使用车辆v与已经提到的蜂窝电话网络之间的无线链路。
123.在变体中,全局容器glob(具有或不具有数据处理组件)可以在步骤e8中从被插入到如上所述的读卡器12中(并且由此连接到处理单元4)的存储卡20被接收。在这种情况下不实施步骤e2到e6。
124.应当注意,在所传输的全局容器glob不包含数据处理组件comp1、comp2、compi(或至少其中一些)的实施例中,处理单元4内为存储所接收的全局容器glob而需要的内存大小可能会减小。换句话说,不需要在处理单元4内提供适合于存储整个下载包dpack的缓冲存储器。
125.处理单元4因此在步骤e10中执行对制造商证书r.cert的验证(该制造商证书特别是包含随后用于验证签名的公钥r.kpub)。
126.如上所述,在这种情况下,证书r.cert包含在下载包dpack(并且因此在步骤e8中所接收的全局容器glob)的cms格式的字段中。
127.为了验证制造商证书r.cert,将使用公钥ca.kpub的密码签名验证算法应用于签名r.sig和经签名的数据(在这种情况下为元数据r.md和公钥r.kpub)。(应当注意,公钥ca.kpub是本身包含在具有上述格式cms的字段中的证书ca.cert的一部分。)在实践中,例如,将经签名的数据的散列值与通过将使用公钥ca.kpub的密码算法(在这种情况下为rsa类型的密码算法)应用于签名r.sig而获得的结果进行比较。
128.在没有通过验证的情况下(也就是说,在将上述散列值与上述结果进行比较的步骤期间出现不相等的情况下),安装过程结束并且在适用的情况下向远程服务器s发送错误消息。
129.在步骤e10中通过验证的情况下(也就是说,在将上述散列值与上述结果进行比较的步骤中出现相等的情况下),处理单元可以通过将所涉及的日期和时间与元数据r.md中提到的到期日期和时间进行比较来验证证书r.cert是否尚未过期。
130.如果证书已过期,则安装过程结束并且在适用的情况下向远程服务器s发送错误消息。
131.如果证书有效,则处理单元4在步骤e12中执行对授权证书ca.cert(其特别是包含如上所述使用的公钥ca.kpub)的验证。
132.如上所述,在这种情况下,证书ca.cert包含在下载包dpack(并且因此在步骤e8中所接收的全局容器glob)的cms格式的字段中。
133.为了验证授权证书ca.cert,将使用公钥root.kpub的密码签名验证算法应用于签名ca.sig和经签名的数据(在这种情况下为元数据ca.md和公钥ca.kpub)。在实践中,例如,将经签名的数据的散列值与通过将使用公钥root.kpub的密码算法(在这种情况下为rsa类型的密码算法)应用于签名ca.sig而获得的结果进行比较。
134.公钥root.kpub例如(在生产处理单元4期间)被存储在处理单元4的非易失性存储器内。
135.在没有通过验证的情况下(也就是说,在将上述散列值与上述结果进行比较的步骤期间出现不相等的情况下),安装过程结束并且在适用的情况下向远程服务器s发送错误消息。
136.在步骤e12中通过验证的情况下(也就是说,在将上述散列值与上述结果进行比较的步骤中出现相等的情况下),处理单元可以通过将所涉及的日期和时间与元数据ca.md中提到的到期日期和时间进行比较来验证证书ca.cert是否尚未过期。
137.如果证书已过期,则安装过程结束并且在适用的情况下向远程服务器s发送错误消息。
138.如果证书有效,则可以用同样的方式通过将给定时间的日期和时间与元数据root.md中提到的根证书root.cert的到期日期和时间进行比较来对根证书root.cert的有效性进行验证。
139.如果证书已过期,则安装过程结束并且在适用的情况下向远程服务器s发送错误
消息。
140.如果证书有效,则处理单元4在步骤e14中对在步骤e8中接收的全局容器glob的特定部分进行验证。
141.处理单元在步骤e14中特别是对清单dpackind(其在全局容器glob中被接收)的完整性进行验证。
142.为此,处理单元将使用公钥r.kpub的密码签名验证算法应用于签名sig(dpackind)和清单dpackind。在实践中,例如,将清单dpackind的散列值与通过将使用公钥r.kpub的密码算法(在这种情况下为rsa类型的密码算法)应用于签名sig(dpackind)而获得的结果进行比较。(应当注意,在步骤e10中对包含公钥r.kpub的证书r.cert的有效性进行了验证。)
143.在没有通过验证的情况下(也就是说,在将上述散列值与上述结果进行比较的步骤期间出现不相等的情况下),安装过程结束并且在适用的情况下向远程服务器s发送错误消息。
144.在步骤e14中通过验证的情况下(也就是说,在将上述散列值与上述结果进行比较的步骤期间出现相等的情况下),在步骤e16中继续安装过程,现在将对该步骤进行描述。
145.处理单元4在步骤e16中将各种设备包ecupack分发到负责安装数据处理组件的电子设备(在这种情况下例如为第一电子控制单元6和/或网关8)。
146.每个设备包ecupack包含旨在用于特定电子设备(在这种情况下为第一电子控制单元6或网关8)的全局容器glob的数据,也就是说,旨在用于电子设备的设备包ecupackn的数据,取决于所讨论的实施例,设备包具有或不具有数据处理组件comp1、comp2、compi本身。
147.如已经指出的,实际上可以在步骤e6期间在全局容器glob中传输所有或部分电子组件,并且因此至少一些设备包ecupack可以包括一个或多个数据处理组件。
148.因此,在步骤e18中,所讨论的每个电子设备接收设备包ecupack。虽然下面描述了用于这样的电子设备(在这种情况下为第一电子控制单元6或网关8)的方法的实施方式,但在实践中对接收设备包ecupack的其他电子设备执行类似的步骤。
149.电子设备(在这种情况下为第一电子控制单元6或网关8)因此可以在适用的情况下在步骤e20中实施对制造商证书r.cert和授权证书ca.cert进行验证的步骤。应当注意,在这种情况下描述的示例中,这些证书r.cert和ca.cert是设备包ecupack的cms类型字段的一部分。
150.步骤e20的验证(由所讨论的电子设备6、8执行)与上述步骤e10和e12中处理单元4执行的验证类似,并且在此不再详述。
151.在步骤e20中没有通过验证的情况下,所讨论的设备项6、8内的安装过程结束。可以进一步向处理单元4发送错误消息(例如,可能传输到远程服务器s)。
152.在步骤e20中通过验证的情况下,所讨论的电子设备6、8在步骤e22中执行对清单ecupackind(其在设备包ecupackind内被接收)的完整性的验证。
153.为此,所讨论的电子设备6、8将使用公钥r.kpub的密码签名验证算法应用于签名sig(ecupackind)和清单ecupackind。在实践中,例如,将清单ecupackind的散列值与通过将使用公钥r.kpub的密码算法(在这种情况下为rsa类型的密码算法)应用于签名sig
(ecupackind)而获得的结果进行比较。(应当注意,在步骤e20期间对包含公钥r.kpub的证书r.cert的有效性进行了验证。)
154.在没有通过验证的情况下(也就是说,在将上述散列值与上述结果进行比较的步骤中出现不相等的情况下),所讨论的电子设备6、8处的安装过程结束并且在适用的情况下向处理单元4发送错误消息(例如,可能传输到远程服务器s)。
155.在步骤e22中通过验证的情况下(也就是说,在将上述散列值与上述结果进行比较的步骤中出现相等的情况下),所讨论的电子设备6、8在步骤e24中验证清单ecupackind中包括的车辆v的标识符vin是否对应于(也就是说,在实践中等于)存储在电子设备6、8内(例如,在非易失性存储器中)的车辆v的标识符vin。
156.在没有通过验证的情况下(也就是说,在清单ecupackind中指示的标识符vin与所存储的标识符不相等的情况下),所讨论的电子设备6、8处的安装过程结束并且在适用的情况下向处理单元4发送错误消息(例如,可能传输到远程服务器s)。
157.在步骤e24中通过验证的情况下(也就是说,在清单ecupackind中指示的标识符vin与所存储的标识符相等的情况下),可以在下面描述的步骤e32中(在接收到数据处理组件之后,如现在将要描述的)继续安装。
158.与所提到的在负责安装的电子设备6、8内进行的处理并行,远程服务器s在步骤e26中向处理单元4传输下载包dpack中的至少一个数据处理组件compi。(尽管这未在图4中展示,但是可以在远程服务器s接收到来自处理单元4的指示之后发起该数据处理组件compi的传输,该指示用信号通知例如缓冲存储器中有足够的空间来存储数据处理组件compi)。
159.处理单元4在步骤e28中接收数据处理组件compi。
160.现在将在下面描述对单个数据处理组件compi的处理。在实践中,取决于处理单元4的缓冲存储器的容量而同时或稍后接收多个数据处理组件,并且如针对数据处理组件compi所描述地那样进行处理。
161.当在步骤e28中接收的组件compi使设备包ecupackn能够被补充(使用全局容器glob的数据)时,处理单元4可以在适用的情况下在步骤e29中例如通过将清单dpackind中包含的散列值h(ecupackn)与通过将散列函数(在这种情况下,为sha256)应用于所接收的设备包ecupackn而获得的散列值进行比较来实施对所讨论的设备包ecupackn的内容的验证。
162.在没有通过验证的情况下(也就是说,在清单dpackind的散列值h(ecupackn)与基于所接收的设备包ecupackn而获得的散列值不同的情况下),不将数据处理组件compi传送到所讨论的电子设备6、8并且可以在适用的情况下向远程服务器s发送错误消息。
163.在步骤e29中通过验证的情况下,也就是说,在清单dpackind的散列值h(ecupackn)与基于所接收的设备包ecupackn而获得的散列值相等的情况下,在步骤e30中,将数据处理组件compi分发到所讨论的电子设备6、8。
164.因此,在步骤e32中,所讨论的电子设备6、8接收数据处理组件compi。
165.因此,电子设备6、8可以对该数据处理组件compi进行验证。
166.首先,在步骤e34中,电子设备6、8将清单ecupackind中包含的散列值h(compi)与通过将散列函数(在这种情况下,为sha256)应用于所接收的数据处理组件compi而获得的
散列值进行比较。(应当注意,在步骤e22中对清单ecupackind的完整性进行过验证。)
167.在没有通过验证的情况下(也就是说,在清单ecupackind中包含的散列值h(compi)与获得的散列值不同的情况下),数据处理组件compi的安装结束。
168.在步骤e34中通过验证的情况下(也就是说,在清单ecupackind中包含的散列值h(compi)与获得的散列值相等的情况下),在步骤e36中继续对数据处理组件compi的验证。
169.电子设备6、8首先在步骤e36中对数据处理组件compi的清单compind的完整性进行验证。
170.为此,所讨论的电子设备6、8将使用公钥bk.kpub的密码签名验证算法应用于签名sig(compind)和清单compind。在实践中,例如,将清单compind的散列值与通过将使用公钥bk.kpub的密码算法(在这种情况下为rsa类型的密码算法)应用于签名sig(compind)而获得的结果进行比较。
171.公钥bk.kpub例如存储在所讨论的电子设备6、8的非易失性存储器中。
172.在没有通过验证的情况下(也就是说,在将上述散列值与上述结果进行比较的步骤中出现不相等的情况下),数据处理组件compi的安装过程结束,在适用的情况下向处理单元4发送错误消息(例如,可能传输到远程服务器s)。
173.在签名sig(compind)通过验证的情况下(也就是说,在将上述散列值与上述结果进行比较的步骤中出现相等的情况下),电子设备6、8将清单compind中包含的散列值h(conten)与通过将散列函数(在这种情况下为sha256)应用于所接收的数据处理组件compi的内容conten而获得的散列值进行比较。
174.在没有通过验证的情况下(也就是说,在清单compind的散列值h(conten)与获得的散列值不相等的情况下),数据处理组件compi的安装过程结束,在适用的情况下向处理单元4发送错误消息(例如,可能传输到远程服务器s)。
175.在通过验证的情况下(也就是说,在清单compind的散列值h(conten)与获得的散列值相等的情况下),安装方法如这里描述的继续进行。
176.例如,在车辆v是具有热力发动机的车辆的情况下,可以提供等待热力发动机运行的步骤e38(这使得在实践中能够确保所有电子设备正在运行,并且数据处理组件compi将能够正确安装在所讨论的电子设备中)。
177.当热力发动机运行时(或者对于没有热力发动机的车辆来说没有该条件),所讨论的电子设备6、8控制数据处理组件compi的安装,也就是说,将数据处理组件compi存储在非易失性(可重写)存储器中以便随后使用。
178.在一些情况下(例如,对于第一电子控制单元6),数据处理组件compi的安装是在已经执行了上述验证步骤e20到e36的电子设备本身(在这种情况下为第一电子控制单元6)内执行的。
179.相比之下,在其他情况下(在此实例中,对于网关8),负责进行安装并且在这种情况下已经执行了先前的验证步骤e20到e36的电子设备(在这种情况下为网关8)控制将数据处理组件compi安装在另一个电子设备(在这种情况下为第二电子控制单元10)内。网关8如此控制例如将数据处理组件compi存储在第二电子控制单元10的非易失性(可重写)存储器中。
180.在这种情况下,数据处理组件在安装后不立即使用,而是在符合其他条件时使用,
如在此所描述的。
181.当车辆v是具有热力发动机的车辆时,可以使用等待热力发动机的运行停止的步骤e42。
182.当车辆v的热力发动机停止时(或车辆v未使用热力发动机时),处理单元4在用户界面(例如,布置在车辆v的乘客舱中的屏幕)上显示数据处理组件已安装并可以使用的指示(步骤e44)。
183.处理单元4因此在步骤e46中等待来自用户(例如车辆v的驾驶员)的、例如通过上述用户界面(在适用的情况下,当上述屏幕为触摸屏时为该屏幕)做出的响应。
184.在用户做出否定响应的情况下,不使用在步骤e40中安装的(多个)数据处理组件。
185.在用户在步骤e46中做出肯定响应的情况下,处理单元4向所讨论的各种电子设备(在这种情况下向第一电子控制单元6以及经由网关8向第二电子控制单元10)传输用于激活所安装的数据处理组件的命令cmd(步骤e48)。
186.然后,激活所安装的数据处理组件(步骤e50)。
187.对于软件数据处理组件,所讨论的数据处理组件中包括的指令然后可以由其中已经安装有数据处理组件的电子设备6、10的处理器执行。
188.对于由可操纵数据形成的数据处理组件,所讨论的数据处理组件中包括的数据可以由已经安装有数据处理组件的电子设备6、10的处理器来操纵。