车辆ECU的升级方法、存储介质、客户端转让专利
申请号 : CN202210019168.1
文献号 : CN114091040B
文献日 : 2022-05-06
发明人 : 孙维国 , 张恩勤
申请人 : 苏州萨沙迈半导体有限公司 , 合肥智芯半导体有限公司
摘要 :
权利要求 :
1.一种车辆ECU的升级方法,其特征在于,所述方法用于ECU的BootLoader,所述方法包括:
接收客户端发送的升级请求,并根据所述升级请求生成随机数,以及根据所述升级请求中的update_ID查找对应的非对称加解密的公钥public_key;
利用所述公钥public_key将所述随机数加密成密文,并将所述密文发送给所述客户端,以使所述客户端利用与所述update_ID对应的非对称加解密的私钥private_key对所述密文进行解密,并将解密结果发送给所述BootLoader;
接收所述客户端发送的所述解密结果,并将所述解密结果与所述随机数进行比对;
确定比对成功,则向所述客户端反馈比对成功信息,以使所述客户端发送新应用程序给所述BootLoader;
接收所述新应用程序,并根据所述新应用程序对所述ECU进行程序升级;
其中,所述随机数包括随机生成的第一密钥和第一认证码;
所述解密结果包括第二认证码,所述将所述解密结果与所述随机数进行比对,包括:将所述第二认证码与所述第一认证码进行比对;
其中,当所述第二认证码与所述第一认证码相同时,确定比对成功;
所述解密结果还包括第二密钥,所述客户端还利用所述第二密钥对新应用程序进行对称加密,所述根据所述新应用程序对所述ECU进行程序升级,还包括:利用所述第一密钥对所述新应用程序进行解密;
在所述接收客户端发送的升级请求之前,所述方法还包括:判断所述ECU是否复位;
若所述ECU复位,则检查是否接收到所述客户端发送的远程程序加载请求;
若接收到,则建立与所述客户端之间的通信。
2.根据权利要求1所述的车辆ECU的升级方法,其特征在于,所述方法包括:确定比对失败,则判定所述客户端不可信,禁止所述客户端对所述ECU进行程序升级,并运行所述ECU的当前应用程序。
3.根据权利要求1所述的车辆ECU的升级方法,其特征在于,所述根据所述新应用程序对所述ECU进行程序升级,包括:对所述新应用程序进行完整性验证;
确定所述新应用程序完整,则利用所述新应用程序进行ECU升级。
4.根据权利要求3所述的车辆ECU的升级方法,其特征在于,所述客户端还对所述新应用程序进行哈希计算,得到第一哈希值,并将所述第一哈希值发送给所述BootLoader,所述对所述新应用程序进行完整性验证,包括:对所述新应用程序进行哈希计算,得到第二哈希值;
将所述第二哈希值与所述第一哈希值进行比对;
当所述第二哈希值与所述第一哈希值相等时,确定所述新应用程序完整。
5.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1‑4中任一项所述的车辆ECU的升级方法。
6.一种客户端,包括存储器、处理器和存储在所述存储器上的计算机程序,其特征在于,所述计算机程序被所述处理器执行时,实现如下方法:向ECU的BootLoader发送升级请求,以使所述BootLoader根据所述升级请求生成随机数,并根据所述升级请求中的update_ID查找对应的非对称加解密的公钥public_key,以及利用所述公钥public_key将所述随机数加密成密文,并将所述密文发送给所述客户端;
接收所述密文,并利用与所述update_ID对应的非对称加解密的私钥private_key对所述密文进行解密;
将解密结果发送给所述BootLoader,以使所述BootLoader将所述解密结果与所述随机数进行比对,并在比对成功时,向所述客户端反馈比对成功信息;
根据所述比对成功信息发送新应用程序给所述BootLoader,以使所述BootLoader根据所述新应用程序对所述ECU进行程序升级;
其中,所述随机数包括随机生成的第一密钥和第一认证码;
所述解密结果包括第二认证码,所述将所述解密结果与所述随机数进行比对,包括:将所述第二认证码与所述第一认证码进行比对;
其中,当所述第二认证码与所述第一认证码相同时,确定比对成功;
所述解密结果还包括第二密钥,所述客户端还利用所述第二密钥对新应用程序进行对称加密,所述根据所述新应用程序对所述ECU进行程序升级,还包括:利用所述第一密钥对所述新应用程序进行解密;
在所述向ECU的BootLoader发送升级请求之前,所述方法还包括:判断所述ECU是否复位;
若所述ECU复位,则检查是否接收到所述客户端发送的远程程序加载请求;
若接收到,则建立与所述客户端之间的通信。
说明书 :
车辆ECU的升级方法、存储介质、客户端
技术领域
背景技术
展,汽车就如手机电脑一样慢慢开始接入到了互联网中,汽车软件升级都通过互联网进行
升级,这样传统的ECU就有可能被不可靠的客户端进行升级。
发明内容
升级。
求生成随机数,以及根据所述升级请求中的update_ID查找对应的非对称加解密的公钥
public_key;利用所述公钥public_key将所述随机数加密成密文,并将所述密文发送给所
述客户端,以使所述客户端利用与所述update_ID对应的非对称加解密的私钥private_key
对所述密文进行解密,并将解密结果发送给所述BootLoader;接收所述客户端发送的所述
解密结果,并将所述解密结果与所述随机数进行比对;确定比对成功,则向所述客户端反馈
比对成功信息,以使所述客户端发送新应用程序给所述BootLoader;接收所述新应用程序,
并根据所述新应用程序对所述ECU进行程序升级;其中,所述随机数包括随机生成的第一密
钥和第一认证码。
钥public_key,进而利用公钥public_key将随机数加密成密文,并将密文发送给客户端,以
使客户端利用与update_ID对应的非对称加解密的私钥private_key对密文进行解密,并将
解密结果发送给BootLoader;在接收客户端发送的解密结果之后,可以将解密结果与随机
数进行比对,若比对成功,则向客户端反馈比对成功信息,以使客户端发送新应用程序给
BootLoader,并根据新应用程序对ECU进行程序升级。由此,可以实现在对车辆ECU进行程序
升级之前,BootLoader首先对客户端的可靠性进行认证,以及在确认客户端可靠后,再接收
客户端发送的新应用程序,从而防止不可靠的客户端对车辆ECU进行程序升级,提高车辆的
安全性与可靠性。而且,上述生成的随机数中包含第一密钥,进而在将该随机数发送给客户
端后,客户端可以利用该即时随机生成的密钥对新应用程序进行加密,从而进一步提高车
辆的安全性与可靠性。而且,通过生成一个随机数,并令该随机数中包括密钥与认证码,实
现了仅需一次发送即可将认证码与密钥均发送至客户端,速度快且步骤简单,进一步降低
了风险。
述第二认证码与所述第一认证码相同时,确定比对成功。
程序。
进行ECU升级。
整性验证,包括:对所述新应用程序进行哈希计算,得到第二哈希值;将所述第二哈希值与
所述第一哈希值进行比对;当所述第二哈希值与所述第一哈希值相等时,确定所述新应用
程序完整。
级,还包括:利用所述第一密钥对所述新应用程序进行解密。
法:向ECU的BootLoader发送升级请求,以使所述BootLoader根据所述升级请求生成随机
数,并根据所述升级请求中的update_ID查找对应的非对称加解密的公钥public_key,以及
利用所述公钥public_key将所述随机数加密成密文,并将所述密文发送给所述客户端;接
收所述密文,并利用与所述update_ID对应的非对称加解密的私钥private_key对所述密文
进行解密;将解密结果发送给所述BootLoader,以使所述BootLoader将所述解密结果与所
述随机数进行比对,并在比对成功时,向所述客户端反馈比对成功信息;根据所述比对成功
信息发送新应用程序给所述BootLoader,以使所述BootLoader根据所述新应用程序对所述
ECU进行程序升级;其中,所述随机数包括随机生成的第一密钥和第一认证码。
钥public_key,以及利用公钥public_key将随机数加密成密文,并将密文发送给客户端;进
而在接收到密文后,利用与update_ID对应的非对称加解密的私钥private_key对密文进行
解密,以及将解密结果发送给BootLoader,以使BootLoader将解密结果与随机数进行比对,
并在比对成功时,向客户端反馈比对成功信息;进而根据比对成功信息发送新应用程序给
BootLoader,以使BootLoader根据新应用程序对ECU进行程序升级。由此,可以实现在对车
辆ECU进行升级之前,首先向BootLoader表明自身的可靠性,从而防止不可靠的客户端对车
辆ECU进行程序升级,提高车辆的安全性与可靠性。而且,上述生成的随机数中包含第一密
钥,客户端可以利用该即时随机生成的密钥对新应用程序进行加密,从而进一步提高车辆
的安全性与可靠性。而且,通过生成一个随机数,并令该随机数中包括密钥与认证码,实现
了仅需一次发送即可将认证码与密钥均发送至客户端,速度快且步骤简单,进一步降低了
风险。
附图说明
具体实施方式
图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
有,则进入BootLoader模式,建立与发送该远程程序加载请求的客户端之间的总线通信以
便接收客户端发送的升级请求。
在需要对车辆ECU进行程序升级时,客户端发送升级请求,通过该升级请求发送update_ID。
钥public_key的方法例如可以为由ECU开发者建立一个数据平台,进而BootLoader在提取
得到update_ID之后,可以访问该数据平台,从该数据平台中获取与该update_ID对应的非
对称加解密的公钥public_key。再例如可以为由ECU开发者可以预先设定一个根据update_
ID得到非对称加解密的公钥public_key的规则,并将该规则保存在车辆上的预设存储位
置,从而BootLoader可以在提取得到update_ID,将该update_ID代入该规则得到对应的非
对称加解密的公钥public_key。再例如可以为预先在车辆预设位置存储update_ID与公钥
public_key的对应关系表,进而BootLoader可以通过查询该表得到对应的非对称加解密的
公钥public_key。
第一认证码(128位,随机生成)。
(Data Encryption Algorithm,数据加密算法)、三重数据加密算法、AES(Advanced
Encryption Standard,高级加密标准)等。
结果发送给BootLoader。
与update_ID对应的非对称加解密的私钥private_key对密文进行解密,得到解密结果。
应用程序进行解密。例如,BootLoader可以运行NVM(non‑volatile memory,非易失性存储
器)驱动程序,以便将接收到的新应用程序编程至NVM中。
2,在确定第一认证码与第二认证码相同后,判断该客户端通过认证,是可靠的客户端,并向
客户端反馈比对成功信息,进而客户端对新应用程序进行哈希计算,得到第一哈希值,并将
第一哈希值发送给BootLoader,例如可以在将新应用程序发送至BootLoader之后,将第一
哈希值发送给BootLoader。BootLoader判断是否接收完成,并在完成接收后,对新应用程序
进行哈希计算,得到第二哈希值;进而BootLoader将第二哈希值与第一哈希值进行比对,当
第二哈希值与第一哈希值相等时,判断完整性一致,确定新应用程序完整,从而可以启动新
的应用程序。
对应的第一值,并将该第一值发送给BootLoader,进而BootLoader在完成接收后,可以采用
对应的算法生成第二值,进而若第一值与第二值相等,则判断完整性一致。
的公钥public_key,进而利用公钥public_key将随机数加密成密文,并将密文发送给客户
端,以使客户端利用与update_ID对应的非对称加解密的私钥private_key对密文进行解
密,并将解密结果发送给BootLoader;在接收客户端发送的解密结果之后,可以将解密结果
与随机数进行比对,若比对成功,则向客户端反馈比对成功信息,以使客户端发送新应用程
序给BootLoader,并根据新应用程序对ECU进行程序升级。由此,可以实现在对车辆ECU进行
升级之前,BootLoader首先对客户端的可靠性进行认证,以及在确认客户端可靠后,再接收
客户端发送的新应用程序,从而防止不可靠的客户端对车辆ECU进行程序升级,提高车辆的
安全性与可靠性,例如,可以防止非法的客户端对ECU进行程序升级,从而防止出现故意破
坏的情况。而且,上述生成的随机数中包含第一密钥,进而在将该随机数发送给客户端后,
客户端可以利用该即时随机生成的密钥对新应用程序进行加密,从而进一步提高车辆的安
全性与可靠性。而且,通过生成一个随机数,并令该随机数中包括密钥与认证码,实现了仅
需一次发送即可将认证码与密钥均发送至客户端,速度快且步骤简单,进一步降低了风险。
公钥public_key将随机数加密成密文,并将密文发送给客户端。
加解密的公钥public_key,以及利用公钥public_key将随机数加密成密文,并将密文发送
给客户端;进而在接收到密文后,利用与update_ID对应的非对称加解密的私钥private_
key对密文进行解密,以及将解密结果发送给BootLoader,以使BootLoader将解密结果与随
机数进行比对,并在比对成功时,向客户端反馈比对成功信息;进而根据比对成功信息发送
新应用程序给BootLoader,以使BootLoader根据新应用程序对ECU进行程序升级。由此,可
以实现在对车辆ECU进行升级之前,首先向BootLoader表明自身的可靠性,从而防止不可靠
的客户端对车辆ECU进行程序升级,提高车辆的安全性与可靠性。而且,上述生成的随机数
中包含第一密钥,客户端可以利用该即时随机生成的密钥对新应用程序进行加密,从而进
一步提高车辆的安全性与可靠性。而且,通过生成一个随机数,并令该随机数中包括密钥与
认证码,实现了仅需一次发送即可将认证码与密钥均发送至客户端,速度快且步骤简单,进
一步降低了风险。
读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其
他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行
系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、
通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设
备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或
多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只
读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光
盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其
他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必
要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器
中。
或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下
列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路
的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场
可编程门阵列(FPGA)等。
点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不
一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何
的一个或多个实施例或示例中以合适的方式结合。
针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或
位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必
须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三
个等,除非另有明确具体的限定。
接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内
部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员
而言,可以根据具体情况理解上述术语在本发明中的具体含义。
第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示
第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第
一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
实施例进行变化、修改、替换和变型。