电子控制器刷写方法、电子控制器、管理服务器与流程

未命名 07-29 阅读:111 评论:0


1.本发明涉及电子控制器刷写领域,尤其涉及一种电子控制器刷写方法、电子控制器、管理服务器、电子设备及可读存储介质。


背景技术:

2.智能汽车为了适应不同的使用环境或者提升整体的性能,需要通过ecu(electronic control unit,电子控制单元)刷写的方式对ecu中装配的软件进行升级。
3.ecu数据刷写是指外部数据刷写工具通过ecu通信网络,向ecu发送数据信息,实现ecu数据的管理和更新。
4.然而,由于外部数据刷写工具在ecu刷写软件包时,ecu并未对软件包的来源进行校验,导致ecu可能被刷写来源不明的软件包,造成安全风险。


技术实现要素:

5.鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种电子控制器刷写方法、电子控制器、管理服务器。
6.第一方面,本技术实施例公开了一种电子控制器刷写方法,应用于电子控制器,所述电子控制器与刷写工具通信,所述方法包括:
7.响应于刷写工具发送的授权请求,将设备信息发送至所述刷写工具,以供所述刷写工具将所述设备信息发送至管理服务器;
8.接收所述刷写工具发送的授权文件,所述授权文件由所述管理服务器根据所述设备信息生成并发送给所述刷写工具,且所述授权文件经过所述管理服务器的私钥进行签名加密;
9.在通过保存在本地的公钥对所述授权文件成功解密的情况下,从所述授权文件获取软件包特征信息,将所述设备信息与所述软件包特征信息进行比较,获得比较结果;
10.在所述比较结果符合预设条件的情况下,接收所述刷写工具发送的软件包,并在所述电子控制器刷写所述软件包;所述软件包由所述管理服务器根据所述设备信息生成并发送给所述刷写工具。
11.第二方面,本技术实施例公开了一种电子控制器刷写方法,应用于管理服务器,所述管理服务器与刷写工具通信,所述方法包括:
12.接收所述刷写工具发送的设备信息,并根据所述设备信息匹配对应的软件包;
13.从所述软件包获取软件包特征信息,并利用保存在本地的私钥对所述软件包特征信息签名加密,生成授权文件;
14.将所述授权文件和所述软件包发送至所述刷写工具,以供所述刷写工具将所述授权文件发送至电子控制器,并在所述电子控制器通过保存在所述电子控制器的本地的公钥对所述授权文件成功解密,且所述电子控制器的设备信息与所述软件包特征信息的比较结果符合预设条件的情况下,将所述软件包刷写在所述电子控制器。
15.第三方面,本技术实施例公开了一种电子控制器,所述电子控制器包括:
16.第一发送模块,用于响应于刷写工具发送的授权请求,将设备信息发送至所述刷写工具,以供所述刷写工具将所述设备信息发送至管理服务器;
17.第一接收模块,用于接收所述刷写工具发送的授权文件,所述授权文件由所述管理服务器根据所述设备信息生成并发送给所述刷写工具,且所述授权文件经过所述管理服务器的私钥进行签名加密;
18.解密模块,用于在所述电子控制器通过保存在本地的公钥对所述授权文件成功解密的情况下,从所述授权文件获得软件包特征信息,将所述设备信息与所述软件包特征信息进行比较,获得比较结果;
19.第二接收模块,用于在所述比较结果符合预设条件的情况下,接收所述刷写工具发送的软件包,并在所述电子控制器刷写所述软件包;所述软件包由所述管理服务器根据所述设备信息生成并发送给所述刷写工具。
20.第四方面,本技术实施例公开了一种管理服务器,所述管理服务器包括:
21.匹配模块,用于接收所述刷写工具发送的设备信息,并根据所述设备信息匹配对应的软件包;
22.加密模块,用于从所述软件包获取软件包特征信息,并利用保存在本地的私钥对所述软件包特征信息签名加密,生成授权文件;
23.第二发送模块,用于将所述授权文件和所述软件包发送至所述刷写工具,以供所述刷写工具将所述授权文件发送至电子控制器,并在所述电子控制器通过保存在所述电子控制器的本地的公钥对所述授权文件成功解密,且所述电子控制器的设备信息与所述软件包特征信息的比较结果符合预设条件的情况下,将所述软件包刷写在所述电子控制器。
24.第五方面,本技术实施例公开了一种电子设备,包括处理器和存储器、所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面以及第二方面所述的方法的步骤。
25.第六方面,本技术实施例公开了一种可读存储介质,所述可读存储介质上存储有程序或指令,所述程序或指令被处理器执行时实现如第一方面以及第二方面任一项所述的方法的步骤。
26.本技术实施例中,电子控制器与刷写工具通信,刷写工具还与管理服务器通信,响应于刷写工具发送的授权请求,电子控制器将设备信息发送至刷写工具,刷写工具将设备信息再发送至管理服务器,使得管理服务器可以根据设备信息生成经过私钥加密的授权文件以及软件包并发送给刷写工具,刷写工具将授权文件刷写在电子控制器,电子控制器使用本地的公钥对授权文件进行验签,验签成功的情况下,进一步将授权文件中的软件包特征信息与设备信息比较,并在比较结果符合预设条件的情况下,将软件包刷写在电子控制器。本技术通过电子控制器的公钥对经过管理服务器的私钥加密的授权文件进行验签,确定授权文件以及软件包均来源于管理服务器,而非其他第三方,保证了软件包的安全性,进一步地,本技术还对授权文件中的软件包特征信息与设备信息进行比较,确定了该软件包是否是符合预设条件的软件包,进一步避免了不符合的软件包被刷写在电子控制器,导致发生安全风险,同时节约了后续修正的成本。
附图说明
27.图1是本发明实施例提供的一种电子控制器刷写方法,应用于电子控制器的步骤流程图;
28.图2是本发明实施例提供的一种ecu软件刷写授权保护方法流程图;
29.图3是本发明实施例提供的一种刷写过程交互图;
30.图4是本发明实施例提供的一种电子控制器刷写方法,应用于管理服务器的步骤流程图;
31.图5是本发明实施例提供的一种管理服务器生成授权文件和软件包的流程图;
32.图6是本发明实施例提供的一种软件包刷写运行流程图;
33.图7是本发明实施例提供的一种电子控制器框图;
34.图8是本发明实施例提供的一种管理服务器框图;
35.图9是本技术一个电子设备的框图;
36.图10是本技术另一个实施例的电子设备的框图。
具体实施方式
37.下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
38.参考图1,其示出了本技术实施例提供的电子控制器刷写方法的步骤流程图,应用于电子控制器,所述电子控制器与刷写工具通信,所述方法包括:
39.步骤101,响应于刷写工具发送的授权请求,将设备信息发送至所述刷写工具,以供所述刷写工具将所述设备信息发送至管理服务器;。
40.在本发明实施例中,电子控制器(ecu,electronic control unit)又称为汽车的“行车电脑”,它们的用途就是控制汽车的行驶状态以及实现其各种功能。主要是利用各种传感器、总线的数据采集与交换,来判断车辆状态以及司机的意图并通过执行器来操控汽车。ecu数据刷写能够单个或批量更改ecu内部的数据或程序代码,便捷地实现ecu数据更新,使得ecu可以满足不同车辆的控制需求。刷写工具用于通过与ecu通信,向ecu发送数据信息,实现ecu数据的管理和更新,刷写工具可以内置在汽车中,也可以为外接的设备,即可以是诊断刷写设备、也可以是产线刷写设备,甚至可以是整车中的ota(overtheair,空中升级)主控设备。管理服务器可以为车企提供的用于下载ecu软件包的平台,管理服务器可以与刷写工具进行通信。
41.进一步地,在对ecu进行刷写的过程中,刷写工具首先向ecu发送授权请求,以收集ecu相关的设备信息,并基于设备信息向管理服务器发起授权请求,ecu根据授权请求将ecu相关的设备信息发送至刷写工具,设备信息可以包括:ecu的当前软件版本信息,芯片标识符,放重放计数值等信息。具体地,ecu中先定义收集基于软件授权请求的设备信息并实现诊断服务,刷写工具通过调用诊断服务获得ecu的设备信息,再通过移动数据网络或无线网络上传给管理服务器,以使得管理服务器基于接收的设备信息下发授权文件。
42.步骤102,接收所述刷写工具发送的授权文件,所述授权文件由所述管理服务器根
据所述设备信息生成并发送给所述刷写工具,且所述授权文件经过所述管理服务器的私钥进行签名加密。
43.在本发明实施例中,管理服务器接收到设备信息后,可以基于设备信息生成授权文件以及软件包。授权文件用于实现校验软件包的来源,确定软件包来源于管理服务器,而非其他不符合规范的来源。
44.进一步地,管理服务器中预置有授权公钥私钥对,ecu中预置有与管理服务器的私钥对应的公钥,管理服务器通过私钥对授权文件进行签名加密,再将签名加密后的授权文件发送至刷写工具,刷写工具可以将授权文件通过can(controller area network,串行通信协议)或以太网网络刷写到ecu中,ecu可以通过预置的公钥对授权文件的签名加密进行验签解密。
45.由于私钥与公钥唯一对应,私钥保存在管理服务器,公钥保存在ecu,当管理服务器的授权文件采用私钥签名加密后,仅能使用对应的公钥才能对签名进行验签解密,因此,若公钥可以对私钥解密,表明该授权文件是管理服务器下发的,来源合规的文件,通过设置私钥与公钥对授权文件校验,避免ecu被刷写其他第三方的软件包,造成安全风险。
46.步骤103,在通过保存在本地的公钥对所述授权文件成功解密的情况下,从所述授权文件获取软件包特征信息,将所述设备信息与所述软件包特征信息进行比较,获得比较结果。
47.在本发明实施例中,若ecu不能通过本地的公钥对授权文件的签名进行验签解密,那么对ecu对授权文件的校验失败,刷写工具中的软件包不能刷下在ecu中。若ecu可以通过本地的公钥对授权文件的签名进行验签解密,表明授权文件来源于管理服务器,可以进一步对授权文件中保存的取软件包特征信息进行检验,确定是否要将软件包刷写在ecu。
48.进一步地,可以通过对软件包特征信息于设备信息之间的比较,确定软件包是否可以刷写在ecu。软件包特征信息可以包括:软件包的版本号、ecu的芯片标识符,防重放计算值等信息。例如:可以将ecu的芯片标识符与设备信息中的芯片标识符匹配,若匹配一致,继续对其他信息进行比较校验,若匹配不一致,则授权文件校验失败,终止ecu刷写的流程。本技术通过在对授权文件的私钥验签成功后,进一步对授权文件中保存的软件包特征信息进行校验,进一步确定刷写工具中的软件包是否是符合ecu刷写要求的软件包,如,版本是否正确,芯片标识符是否正确等,进一步保证了软件包刷写的规范性,避免刷写错误导致的刷写效率降低以及后续修正错误的麻烦。
49.可选地,所述设备信息包括第一芯片标识符、第一防重放计数值,所述软件包特征信息包括:第二芯片标识符、第二防重放计数值,防重放计数值用于表征所述电子控制器的软件包被更新的次数,步骤103,具体包括:
50.子步骤1031,在所述第一芯片标识符与所述第二芯片标识符匹配成功的情况下,比较所述第一防重放计数值是否小于所述第二防重放计数值。
51.在本发明实施例中,芯片标识符用于表征ecu的芯片标识身份,刷写设备从ecu中获取ecu提供的第一芯片标识符,并将第一芯片标识符发送至管理服务器,管理服务器根据刷写工具发送的第一芯片标识符以及其他设备信息生成授权文件以及软件包,同时,在生成授权文件时,对接收的第一芯片标识符加密作为第二标识符,将第二标识符添加至授权文件,也就是说,授权文件中的第二标识符若与电子控制器的第一标识符一致,表明授权文
件是基于设备信息生成,是与该ecu对应的授权文件,若第一标识符与第二标识符不匹配,表明授权文件非基于ecu的设备信息生成,授权文件的校验不通过,软件包刷写过程终止。
52.进一步地,若第一芯片标识符与所述第二芯片标识符匹配成功,那么继续对第一防重放计数值和第二防重放计数值进行比较。防重放计数值用于表征ecu中的软件包被累计刷写的次数。若管理服务器的软件包的版本比ecu中的软件包的版本更新,那么第二防重返计数值应当大于第一防重放计数值,以使得电子控制器确定将被刷写的软件包要新于当前软件包。
53.子步骤1032,若所述第一防重放计数值大于或等于所述第二防重放计数值,则退出软件包刷写步骤。
54.在本发明实施例中,若第一防重放计数值大于或等于所述第二防重放计数值,表明刷写工具接收的软件包并未比当前ecu所运行的软件包更新,那么ecu将不允许刷写工具将软件包刷写至ecu。
55.子步骤1033,若所述第一防重放计数值小于所述第二防重放计数值,则确定所述比较结果符合预设条件。
56.在本发明实施例中,若所述第一防重放计数值小于所述第二防重放计数值,表明软件包的版本符合预设条件,授权文件的软件包特征信息校验成功,软件包可以被刷写在ecu上。软件包被刷写在ecu上之后,ecu当前的防重放计数值更新为第二防重放计数值,ecu通过更新自身的防重放计数值来记录当前ecu上的软件版本,避免低于当前ecu版本的软件包被刷写在ecu上,导致产生安全问题。
57.步骤104,在所述比较结果符合预设条件的情况下,接收所述刷写工具发送的软件包,并在所述电子控制器刷写所述软件包;所述软件包由所述管理服务器根据所述设备信息生成并发送给所述刷写工具。
58.在本发明实施例中,通过对设备信息与软件包特征信息中包括的各项内容的比较,可以获得比较结果,若比较结果符合预设条件,那么刷写工具实施将软件包刷写在ecu的步骤,若比较结果不符合预设条件,那么终止软件包的刷写流程。
59.可选地,所述软件包特征信息包括所述软件包的第一特征值,所述第一特征值为所述管理服务器通过预设加密算法对所述软件包的内容计算得到,在步骤104之后,所述方法还包括:
60.步骤105,在所述软件包刷写完成后,利用所述预设加密算法对所述软件包的内容计算得到第二特征值。
61.在本发明实施例中,为了保证软件包在传输的过程中不被篡改,可以在管理服务器以及电子控制器对软件包的内容进行加密验证。
62.具体地,管理服务器在匹配到与设备信息对应的软件包之后,可以利用预设的预设加密算法计算软件包的内容的第一特征值,预设加密算法可以为sm3加密算法。例如,管理服务器在生成软件包后,sm3算法首先将软件包数据按照512位的大小分成若干组,最后一组不足512位时按规则填充至512位。经过多轮迭代压缩后,输出长度为256位的摘要值。这个256的摘要值即可以作为第一特征值。管理服务器将第一特征值同样添加至授权文件并用私钥加密。
63.在软件包刷写在电子控制器后,电子控制器可以使用同样的预设加密算法,如sm3
算法对软件包的内容进行计算,经过计算得到软件包对应的256位的摘要值,即第二特征值。若管理服务器与电子控制的软件包一致,那么第一特征值与第二特征值为经过相同计算的特征,其大小应该一致,若第一特征值与第二特征值不一致,表明,管理服务器出的软件包,与电子控制器出处的软件包不一致,软件包可能被篡改。通过对第一特征值与第二特征值的比较,可以进一步保证软件包传输的安全性,避免被篡改的软件包运行在电子控制器。
64.步骤106,在所述第一特征值与所述第二特征值匹配成功的情况下,在所述电子控制器运行所述软件包。
65.在本发明实施例中,第一特征值与所述第二特征值匹配成功的情况下,表明管理服务器生成的软件包与刷写在电子控制器的软件包一致,软件包可以正常运行在电子控制器。
66.步骤107,在所述第一特征值与所述第二特征值匹配失败的情况下,将所述电子控制器的软件包回滚至原版本。
67.在本发明实施例中,第一特征值与所述第二特征值匹配失败的情况下,表明管理服务器生成的软件包与刷写在电子控制器的软件包不一致,软件包可能被篡改,电子控制器的软件包将回滚至未被刷写前的版本,或者默认的版本。
68.参考图2,图2为一种ecu软件刷写授权保护方法流程图,包括:步骤t1,在管理服务器预置授权公私钥、在ecu预置公钥以及授权校验程序;步骤t2,刷写工具收集ecu中的设备信息;步骤t3,管理服务器生成并下载ecu下载软件包与授权文件;步骤t4,电子控制器校验ecu软件授权文件并刷写软件包;步骤t5,电子控制器启动时校验ecu软件授权文件和软件包的合法性。
69.可选地,所述电子控制器的一次性可编程存储器中预置有与所述管理服务器中的私钥对应的公钥,以及所述电子控制器刷写方法;所述刷写工具与所述管理服务器基于安全传输协议进行数据传输;所述刷写工具与所述电子控制器通过总线网络或以太网络进行数据传输。
70.在本发明实施例中,参考图3,管理平台服务器预置有授权公钥和授权私钥,为了保证保存在ecu的公钥不被篡改,可以在ecu产线的时候,将公钥烧写入otp(one time programmable,一次性可编程存储器),otp还存储有电子控制器的刷写方法,即ecu的软件授权校验程序,若数据被烧写在otp,那么便不可再次更改和清除,因此,保证了公钥的安全性,同时保证了ecu刷写过程的规范性,每次刷写均按照otp中存储的检验程序进行校验,保证ecu软件包的安全性,可以有效防止内部泄漏的特权软件版本或有漏洞的旧版本滥用,提升ecu安全性。
71.综上,本技术实施例中,电子控制器与刷写工具通信,刷写工具还与管理服务器通信,响应于刷写工具发送的授权请求,电子控制器将设备信息发送至刷写工具,刷写工具将设备信息再发送至管理服务器,使得管理服务器可以根据设备信息生成经过私钥加密的授权文件以及软件包并发送给刷写工具,刷写工具将授权文件刷写在电子控制器,电子控制器使用本地的公钥对授权文件进行验签,验签成功的情况下,进一步将授权文件中的软件包特征信息与设备信息比较,并在比较结果符合预设条件的情况下,将软件包刷写在电子控制器。本技术通过电子控制器的公钥对经过管理服务器的私钥加密的授权文件进行验
签,确定授权文件以及软件包均来源于管理服务器,而非其他第三方,保证了软件包的安全性,进一步地,本技术还对授权文件中的软件包特征信息与设备信息进行比较,确定了该软件包是否是符合预设条件的软件包,进一步避免了不符合的软件包被刷写在电子控制器,导致发生安全风险,同时节约了后续修正的成本。
72.参考图4,其示出了本技术实施例提供的电子控制器刷写方法的步骤流程图,应用于管理服务器,所述管理服务器与刷写工具通信,所述方法包括:
73.步骤201,接收所述刷写工具发送的设备信息,并根据所述设备信息匹配对应的软件包。
74.在本发明实施例中,参考图3,图3示出了一种刷写过程交互图。刷写工具与管理服务器通信,刷写工具获取到ecu的设备信息后,可以将设备信息传输至管理服务器,管理服务器基于设备信息生成授权文件和软件包。生成的授权文件和软件包可以通过管理服务器与刷写工具之间通信的软件下载通道传输至刷写工具。
75.可选地,所述设备信息包括:电子控制器中软件包的版本信息,步骤201具体包括:
76.子步骤2011,根据所述电子控制器中软件包的版本信息,判断所述管理服务器中是否存在版本信息晚于所述电子控制器中软件包的版本信息的目标软件包。
77.在本发明实施例中,参考图5,图5为一种管理服务器生成授权文件和软件包的流程图;步骤s1,管理服务器根据ecu当前软件版本匹配待下载软件包。设备信息包括电子控制器中软件包的版本信息,软件包的版本信息可以用于表征软件包的更新时间。管理服务器根据设备信息中的版本信息可以确定,电子控制器在当前的版本状态下,能够下载的软件包。具体地,管理服务器可以选择软件包的版本晚于电子控制器中的软件包的版本的软件包作为与设备信息匹配的目标软件包。
78.子步骤2012,若所述目标软件包存在,则将所述目标软件包作为与所述设备信息匹配的软件包。
79.在本发明实施例中,若所述目标软件包存在,那么将目标软件包作为与设备信息匹配的软件包。
80.子步骤2013,若所述目标软件包不存在,则退出软件包刷写步骤。
81.在本发明实施例中,若目标软件包不存在,表明电子控制器中当前运行的软件包已经是最新版本的软件包,无需进行刷写,退出软件包刷写步骤。
82.步骤202,从所述软件包获取软件包特征信息,并利用保存在本地的私钥对所述软件包特征信息签名加密,生成授权文件.
83.在本发明实施例中,步骤s4,管理服务器根据待下载软件包的特征值、新防重放计数器值等生成授权文件;软件包特征信息可以包括:软件包的版本信息、描述、大小、特征值以及ecu独有的信息(如芯片身份标识符)等。将软件包特征信息采用私钥进行签名加密生成授权文件,加密算法如国家密码算法sm2。生成的授权文件可以通过安全传输协议,如https(hypertext transfer protocol secure,超文本传输安全协议)。
84.可选地,所述设备信息包括第一防重放计数值,步骤202具体包括:
85.子步骤2021,对所述第一防重放计数值修正,得到所述软件包对应的第二防重放计数值。
86.在本发明实施例中,参考图5,步骤s3,管理服务器计算待下载软件包的特征值;管
理服务器根据设备信息生成新的软件包之后,需要对软件包对应的防重放计数值进行修正,以表明当前的软件包是比电子控制器运行的软件包更新的软件包。
87.具体地,在修正时,可以在第一重放计数值的基础上加一作为第二防重放计数值。
88.子步骤2022,将所述第二防重放计数值添加至所述软件包特征信息。
89.在本发明实施例中,将计算得到的第二防重放计数值添加至软件包特征信息,使得电子控制器在对授权文件的签名加密验签成功后,可以通过授权文件中的第二防重放计数值判断新的软件包是否是比当前运行的软件包更新的软件包,进而决定是否要将新的软件包刷写在电子控制器。
90.可选地,步骤202具体包括:
91.子步骤2023,使用预设加密算法对所述软件包的内容进行计算,得到所述软件包对应的第一特征值;所述第一特征值用于与第二特征值进行匹配,以确定所述软件包是否可以运行在所述电子控制器,所述第二特征值由所述电子控制器接收到所述软件包后,通过预设加密算法计算得到。
92.在本发明实施例中,参考图5,步骤s2,管理服务器计算待下载软件包的特征值;管理服务器可以对软件包的内容通过预设加密算计进行计算,得到对应的第一特征值,并将第一特征值保存在授权文件中,使得电子控制器在刷写软件包之后,可以通过同样的预设加密算法再次计算刷写的软件包对应的第二特征值,进而确定软件包是否被篡改,具体计算方式可参考步骤105的描述,此处不再赘述。
93.子步骤2024,将所述第一特征值添加至所述软件包特征信息。
94.在本发明实施例中,将所述第一特征值添加至所述软件包特征信息,软件包的特征信息经私钥加密生成授权文件,电子控制器可以通过对授权文件的校验,确定是否可以将软件包刷写在电子控制器。
95.步骤203,将所述授权文件和所述软件包发送至所述刷写工具,以供所述刷写工具将所述授权文件发送至电子控制器,并在所述电子控制器通过保存在所述电子控制器的本地的公钥对所述授权文件成功解密,且所述电子控制器的设备信息与所述软件包特征信息的比较结果符合预设条件的情况下,将所述软件包刷写在所述电子控制器。
96.在本发明实施例中,步骤s5,刷写工具下载软件包与授权文件;管理服务器可以将经过私钥加密的授权文件以及软件包传输至刷写工具,同样,软件包也可以通过私钥进行加密后传输,参考图2,刷写工具在获取到软件包和授权文件后,可以在电子控制器对授权文件校验通过的情况下,通过软件刷写通管道刷写至电子控制器,完成一次汽车ecu的刷写过程。
97.可选地,步骤201之前,所述方法还包括:
98.步骤204,生成私钥以及与所述私钥对应的公钥,并将所述私钥保存在本地。
99.在本发明实施例中,公钥和私钥可以在管理服务器中生成,具体地,可以在管理服务器中配置pki(public key infrastructure,公钥基础设施)系统,公钥基础设施是一个包括硬件、软件、人员、策略和规程的集合,用来实现基于公钥密码体制的密钥和证书的产生、管理、存储、分发和撤销等功能。在pki系统中生成授权公私钥对,授权私钥存储在pki系统中的加密机中,保证授权私钥的不被窃取,并将授权公钥导出。
100.步骤205,将所述公钥通过加密传输的方式传输至电子控制器,以供所述电子控制
器将所述公钥保存在所述电子控制器的一次性可编程存储器中。
101.在本发明实施例中,管理服务器生成的公钥可以通过安全传输的方式传输至电子控制器,公钥被烧写在电子控制器的otp中,保证公钥不被篡改。
102.参考图3、图6,图6为一种软件包刷写运行流程图,包括:
103.p1、刷写工具将授权文件下载至ecu中。例如,刷写工具将授权文件通过can或以太网网络刷写到ecu中,刷写协议可参考uds诊断刷写协议。
104.p2、ecu授权校验程序使用授权公钥对授权文件进行签名校验;例如,ecu授权校验程序使用授权公钥和国家密码算法sm2对授权文件的签名进行验签。
105.p3、若授权文件签名校验失败,则不允许刷写,结束流程;若授权文件签名校验成功,则跳转至步骤p4;
106.p4、ecu授权校验程序比较授权文件中ecu的芯片身份标识符与ecu本地芯片中的身份标识符是否一致;
107.p5、若芯片身份标识符不一致,则不允许刷写,结束流程;若芯片身份标识符一致,则跳转至步骤p6;
108.p6、ecu授权校验程序比较授权文件中防重复计数器与ecu本地存储的防重放计数器;
109.p7、若授权文件中的防重放计数器不大于ecu本地存储的防重放计数器,则不允许刷写,结束流程;若授权文件中的防重放计数器大于ecu本地存储的防重放计数器,则跳转至步骤p8;
110.p8、ecu授权校验程序接收下载软件包、计算下载软件包的特征值,与授权文件中的下载软件包的特征值进行比较;
111.p9、若计算下载软件包的特征值与授权文件中的下载软件包的特征值不同,回滚至原软件版本;若相同,则允许切换至新版软件运行。
112.综上,本技术实施例中,电子控制器与刷写工具通信,刷写工具还与管理服务器通信,响应于刷写工具发送的授权请求,电子控制器将设备信息发送至刷写工具,刷写工具将设备信息再发送至管理服务器,使得管理服务器可以根据设备信息生成经过私钥加密的授权文件以及软件包并发送给刷写工具,刷写工具将授权文件刷写在电子控制器,电子控制器使用本地的公钥对授权文件进行验签,验签成功的情况下,进一步将授权文件中的软件包特征信息与设备信息比较,并在比较结果符合预设条件的情况下,将软件包刷写在电子控制器。本技术通过电子控制器的公钥对经过管理服务器的私钥加密的授权文件进行验签,确定授权文件以及软件包均来源于管理服务器,而非其他第三方,保证了软件包的安全性,进一步地,本技术还对授权文件中的软件包特征信息与设备信息进行比较,确定了该软件包是否是符合预设条件的软件包,进一步避免了不符合的软件包被刷写在电子控制器,导致发生安全风险,同时节约了后续修正的成本。
113.参考图7,其示出了本技术实施例提供的一种电子控制器框图,所述电子控制器30包括:
114.第一发送模块301,用于响应于刷写工具发送的授权请求,将设备信息发送至所述刷写工具,以供所述刷写工具将所述设备信息发送至管理服务器;
115.第一接收模块302,用于接收所述刷写工具发送的授权文件,所述授权文件由所述
管理服务器根据所述设备信息生成并发送给所述刷写工具,且所述授权文件经过所述管理服务器的私钥进行签名加密;
116.解密模块303,用于在所述电子控制器通过保存在本地的公钥对所述授权文件成功解密的情况下,从所述授权文件获得软件包特征信息,将所述设备信息与所述软件包特征信息进行比较,获得比较结果;
117.第二接收模块304,用于在所述比较结果符合预设条件的情况下,接收所述刷写工具发送的软件包,并在所述电子控制器刷写所述软件包;所述软件包由所述管理服务器根据所述设备信息生成并发送给所述刷写工具。
118.可选地,所述软件包特征信息包括所述软件包的第一特征值,所述第一特征值为所述管理服务器通过预设加密算法对所述软件包的内容计算得到,所述电子控制器还包括:
119.计算模块,用于在所述软件包刷写完成后,利用所述预设加密算法对所述软件包的内容计算得到第二特征值;
120.运行模块,用于在所述第一特征值与所述第二特征值匹配成功的情况下,在所述电子控制器运行所述软件包;
121.回滚模块,用于在所述第一特征值与所述第二特征值匹配失败的情况下,将所述电子控制器的软件包回滚至原版本。
122.可选地,所述设备信息包括第一芯片标识符、第一防重放计数值,所述软件包特征信息包括:第二芯片标识符、第二防重放计数值,防重放计数值用于表征所述电子控制器的软件包被更新的次数,所述解密模块,包括:
123.第一判断子模块,用于在所述第一芯片标识符与所述第二芯片标识符匹配成功的情况下,比较所述第一防重放计数值是否小于所述第二防重放计数值;
124.第二判断子模块,用于若所述第一防重放计数值大于或等于所述第二防重放计数值,则退出软件包刷写步骤;
125.确定子模块,用于若所述第一防重放计数值小于所述第二防重放计数值,则确定所述比较结果符合预设条件。
126.可选地,所述电子控制器的一次性可编程存储器中预置有与所述管理服务器中的私钥对应的公钥,以及所述电子控制器刷写方法;
127.所述刷写工具与所述管理服务器基于安全传输协议进行数据传输;所述刷写工具与所述电子控制器通过总线网络或以太网络进行数据传输。
128.参考图8,其示出了本技术实施例提供的一种管理服务器40,所述管理服务器包括:
129.匹配模块401,用于接收所述刷写工具发送的设备信息,并根据所述设备信息匹配对应的软件包;
130.加密模块402,用于从所述软件包获取软件包特征信息,并利用保存在本地的私钥对所述软件包特征信息签名加密,生成授权文件;
131.第二发送模块403,用于将所述授权文件和所述软件包发送至所述刷写工具,以供所述刷写工具将所述授权文件发送至电子控制器,并在所述电子控制器通过保存在所述电子控制器的本地的公钥对所述授权文件成功解密,且所述电子控制器的设备信息与所述软
件包特征信息的比较结果符合预设条件的情况下,将所述软件包刷写在所述电子控制器。
132.可选地,所述设备信息包括第一防重放计数值,所述从所加密模块包括:
133.修正模块,用于对所述第一防重放计数值修正,得到所述软件包对应的第二防重放计数值;
134.第一添加子模块,用于将所述第二防重放计数值添加至所述软件包特征信息。
135.可选地,所述加密模块,包括:
136.特征值确定子模块,用于使用预设加密算法对所述软件包的内容进行计算,得到所述软件包对应的第一特征值;所述第一特征值用于与第二特征值进行匹配,以确定所述软件包是否可以运行在所述电子控制器,所述第二特征值由所述电子控制器接收到所述软件包后,通过预设加密算法计算得到;
137.第二添加子模块,用于将所述第一特征值添加至所述软件包特征信息。
138.可选地,所述设备信息包括:电子控制器中软件包的版本信息,所述匹配模块,包括:
139.软件包获取子模块,用于根据所述电子控制器中软件包的版本信息,判断所述管理服务器中是否存在版本信息晚于所述电子控制器中软件包的版本信息的目标软件包;
140.匹配子模块,用于若所述目标软件包存在,则将所述目标软件包作为与所述设备信息匹配的软件包;
141.退出子模块,用于若所述目标软件包不存在,则退出软件包刷写步骤。
142.可选地,所述管理服务器还包括:
143.密钥生成模块,用于生成私钥以及与所述私钥对应的公钥,并将所述私钥保存在本地;
144.公钥输出模块,用于将所述公钥通过加密传输的方式传输至电子控制器,以供所述电子控制器将所述公钥保存在所述电子控制器的一次性可编程存储器中。
145.综上,本技术实施例中,电子控制器与刷写工具通信,刷写工具还与管理服务器通信,响应于刷写工具发送的授权请求,电子控制器将设备信息发送至刷写工具,刷写工具将设备信息再发送至管理服务器,使得管理服务器可以根据设备信息生成经过私钥加密的授权文件以及软件包并发送给刷写工具,刷写工具将授权文件刷写在电子控制器,电子控制器使用本地的公钥对授权文件进行验签,验签成功的情况下,进一步将授权文件中的软件包特征信息与设备信息比较,并在比较结果符合预设条件的情况下,将软件包刷写在电子控制器。本技术通过电子控制器的公钥对经过管理服务器的私钥加密的授权文件进行验签,确定授权文件以及软件包均来源于管理服务器,而非其他第三方,保证了软件包的安全性,进一步地,本技术还对授权文件中的软件包特征信息与设备信息进行比较,确定了该软件包是否是符合预设条件的软件包,进一步避免了不符合的软件包被刷写在电子控制器,导致发生安全风险,同时节约了后续修正的成本。
146.图9是根据一示例性实施例示出的一种电子设备600的框图。例如,电子设备600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
147.参照图9,电子设备600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(i/o)的接口612,传感器组件614,
以及通信组件616。
148.处理组件602通常控制电子设备600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
149.存储器604用于存储各种类型的数据以支持在电子设备600的操作。这些数据的示例包括用于在电子设备600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,多媒体等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
150.电源组件606为电子设备600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为电子设备600生成、管理和分配电力相关联的组件。
151.多媒体组件608包括在所述电子设备600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的分界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当电子设备600处于操作模式,如拍摄模式或多媒体模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
152.音频组件610用于输出和/或输入音频信号。例如,音频组件610包括一个麦克风(mic),当电子设备600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
153.i/o接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
154.传感器组件614包括一个或多个传感器,用于为电子设备600提供各个方面的状态评估。例如,传感器组件614可以检测到电子设备600的打开/关闭状态,组件的相对定位,例如所述组件为电子设备600的显示器和小键盘,传感器组件614还可以检测电子设备600或电子设备600一个组件的位置改变,用户与电子设备600接触的存在或不存在,电子设备600方位或加速/减速和电子设备600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
155.通信组件616用于便于电子设备600和其他设备之间有线或无线方式的通信。电子设备600可以接入基于通信标准的无线网络,如wifi,运营商网络(如2g、3g、4g或5g),或它
们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件616还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
156.在示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于实现本技术实施例提供的一种电子控制器刷写方法。
157.在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由电子设备600的处理器620执行以完成上述方法。例如,所述非临时性存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
158.图10是根据一示例性实施例示出的一种电子设备700的框图。例如,电子设备700可以被提供为一服务器。参照图10,电子设备700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行本技术实施例提供的一种电子控制器的刷写方法。
159.电子设备700还可以包括一个电源组件726被配置为执行电子设备700的电源管理,一个有线或无线网络接口750被配置为将电子设备700连接到网络,和一个输入输出(i/o)接口758。电子设备700可以操作基于存储在存储器732的操作系统,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm或类似。
160.本技术实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现所述的电子控制器的刷写方法。
161.本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求指出。
162.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。

技术特征:
1.一种电子控制器刷写方法,应用于电子控制器,所述电子控制器与刷写工具通信,其特征在于,所述方法包括:响应于刷写工具发送的授权请求,将设备信息发送至所述刷写工具,以供所述刷写工具将所述设备信息发送至管理服务器;接收所述刷写工具发送的授权文件,所述授权文件由所述管理服务器根据所述设备信息生成并发送给所述刷写工具,且所述授权文件经过所述管理服务器的私钥进行签名加密;在通过保存在本地的公钥对所述授权文件成功解密的情况下,从所述授权文件获取软件包特征信息,将所述设备信息与所述软件包特征信息进行比较,获得比较结果;在所述比较结果符合预设条件的情况下,接收所述刷写工具发送的软件包,并在所述电子控制器刷写所述软件包;所述软件包由所述管理服务器根据所述设备信息生成并发送给所述刷写工具。2.根据权利要求1所述的方法,其特征在于,所述软件包特征信息包括所述软件包的第一特征值,所述第一特征值为所述管理服务器通过预设加密算法对所述软件包的内容计算得到,所述在所述比较结果符合预设条件的情况下,接收所述刷写工具发送的软件包,并在所述电子控制器刷写所述软件包之后,所述方法还包括:在所述软件包刷写完成后,利用所述预设加密算法对所述软件包的内容计算得到第二特征值;在所述第一特征值与所述第二特征值匹配成功的情况下,在所述电子控制器运行所述软件包;在所述第一特征值与所述第二特征值匹配失败的情况下,将所述电子控制器的软件包回滚至原版本。3.根据权利要求1所述的方法,其特征在于,所述设备信息包括第一芯片标识符、第一防重放计数值,所述软件包特征信息包括:第二芯片标识符、第二防重放计数值,防重放计数值用于表征所述电子控制器的软件包被更新的次数,所述将所述设备信息与所述软件包特征信息进行比较,获得比较结果,包括:在所述第一芯片标识符与所述第二芯片标识符匹配成功的情况下,比较所述第一防重放计数值是否小于所述第二防重放计数值;若所述第一防重放计数值大于或等于所述第二防重放计数值,则退出软件包刷写步骤;若所述第一防重放计数值小于所述第二防重放计数值,则确定所述比较结果符合预设条件。4.根据权利要求1所述的方法,其特征在于,所述电子控制器的一次性可编程存储器中预置有与所述管理服务器中的私钥对应的公钥,以及所述电子控制器刷写方法;所述刷写工具与所述管理服务器基于安全传输协议进行数据传输;所述刷写工具与所述电子控制器通过总线网络或以太网络进行数据传输。5.一种电子控制器刷写方法,应用于管理服务器,所述管理服务器与刷写工具通信,其特征在于,所述方法包括:接收所述刷写工具发送的设备信息,并根据所述设备信息匹配对应的软件包;
从所述软件包获取软件包特征信息,并利用保存在本地的私钥对所述软件包特征信息签名加密,生成授权文件;将所述授权文件和所述软件包发送至所述刷写工具,以供所述刷写工具将所述授权文件发送至电子控制器,并在所述电子控制器通过保存在所述电子控制器的本地的公钥对所述授权文件成功解密,且所述电子控制器的设备信息与所述软件包特征信息的比较结果符合预设条件的情况下,将所述软件包刷写在所述电子控制器。6.根据权利要求5所述的方法,其特征在于,所述设备信息包括第一防重放计数值,所述从所述软件包获取软件包特征信息包括:对所述第一防重放计数值修正,得到所述软件包对应的第二防重放计数值;将所述第二防重放计数值添加至所述软件包特征信息。7.根据权利要求5所述的方法,其特征在于,所述从所述软件包获取软件包特征信息,包括:使用预设加密算法对所述软件包的内容进行计算,得到所述软件包对应的第一特征值;所述第一特征值用于与第二特征值进行匹配,以确定所述软件包是否可以运行在所述电子控制器,所述第二特征值由所述电子控制器接收到所述软件包后,通过预设加密算法计算得到;将所述第一特征值添加至所述软件包特征信息。8.根据权利要求1所述的方法,其特征在于,所述设备信息包括:电子控制器中软件包的版本信息,所述根据所述设备信息匹配对应的软件包,包括:根据所述电子控制器中软件包的版本信息,判断所述管理服务器中是否存在版本信息晚于所述电子控制器中软件包的版本信息的目标软件包;若所述目标软件包存在,则将所述目标软件包作为与所述设备信息匹配的软件包;若所述目标软件包不存在,则退出软件包刷写步骤。9.根据权利要求5所述的方法,其特征在于,所述接收所述刷写工具发送的设备信息之前,所述方法还包括:生成私钥以及与所述私钥对应的公钥,并将所述私钥保存在本地;将所述公钥通过加密传输的方式传输至电子控制器,以供所述电子控制器将所述公钥保存在所述电子控制器的一次性可编程存储器中。10.一种电子控制器,其特征在于,所述电子控制器包括:第一发送模块,用于响应于刷写工具发送的授权请求,将设备信息发送至所述刷写工具,以供所述刷写工具将所述设备信息发送至管理服务器;第一接收模块,用于接收所述刷写工具发送的授权文件,所述授权文件由所述管理服务器根据所述设备信息生成并发送给所述刷写工具,且所述授权文件经过所述管理服务器的私钥进行签名加密;解密模块,用于在所述电子控制器通过保存在本地的公钥对所述授权文件成功解密的情况下,从所述授权文件获得软件包特征信息,将所述设备信息与所述软件包特征信息进行比较,获得比较结果;第二接收模块,用于在所述比较结果符合预设条件的情况下,接收所述刷写工具发送的软件包,并在所述电子控制器刷写所述软件包;所述软件包由所述管理服务器根据所述
设备信息生成并发送给所述刷写工具。11.一种管理服务器,其特征在于,所述管理服务器包括:匹配模块,用于接收所述刷写工具发送的设备信息,并根据所述设备信息匹配对应的软件包;加密模块,用于从所述软件包获取软件包特征信息,并利用保存在本地的私钥对所述软件包特征信息签名加密,生成授权文件;第二发送模块,用于将所述授权文件和所述软件包发送至所述刷写工具,以供所述刷写工具将所述授权文件发送至电子控制器,并在所述电子控制器通过保存在所述电子控制器的本地的公钥对所述授权文件成功解密,且所述电子控制器的设备信息与所述软件包特征信息的比较结果符合预设条件的情况下,将所述软件包刷写在所述电子控制器。12.一种电子设备,其特征在于,包括处理器和存储器、所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至9中任一项所述的方法的步骤。13.一种可读存储介质,其特征在于,所述可读存储介质上存储有程序或指令,所述程序或指令被处理器执行时实现如权利要求1至9中任一项所述的方法的步骤。

技术总结
本发明提供了一种电子控制器刷写方法、电子控制器、管理服务器,电子控制器将设备信息发送至刷写工具,刷写工具将设备信息再发送至管理服务器,使得管理服务器可以根据设备信息生成经过私钥加密的授权文件以及软件包并发送给刷写工具,刷写工具将授权文件刷写在电子控制器,电子控制器使用本地的公钥对授权文件进行验签,验签成功后,进一步将授权文件中的软件包特征信息与设备信息比较,并在比较结果符合预设条件的情况下,将软件包刷写在电子控制器。通过公钥对授权文件进行验签,保证了软件包的安全性,避免电子控制器被刷写来源不明的软件包,同时对授权文件的内容进行校验,进一步保证软件包符合预设条件,避免错刷。避免错刷。避免错刷。


技术研发人员:汪向阳 张贤 张鹏 谭成宇
受保护的技术使用者:重庆长安汽车股份有限公司
技术研发日:2023.04.06
技术公布日:2023/7/28
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐