no script

你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!

网联汽车FOTA固件代码签名原理与流程方案

新能源汽车在FOTA升级时,面临着固件被篡改或恶意刷写的风险,黑客可通过篡改过的固件代码完全控制车辆的行为,对车辆安全和车主的人身安全危害性极大。针对这种固件篡改所带来的安全风险,通常通过验证固件代码签名的方法,保证车辆ECU的安全启动。

1. 代码签名证书

​ 代码签名证书是由证书颁发机构颁发的数字签名证书,其中包含了汽车公司名称信息、公司地址信息、软件开发者信息等,代码签名证书使用公钥和私钥的机制,开发者使用私钥签署软件、应用程序或代码,配对的公钥用于验证该开发者的身份。这样可以最终保护车机在FOTA后获取的固件代码没有以任何的形式修改过,从而确保车机的正确启动。

2. 代码签名的流程

​ 代码签名证书提供给开发者,对开发的软件代码进行数字签名,用于验证开发者身份的真实性和验证代码的完整性。车机通过OTA升级固件时,能通过数字签名来验证固件代码的来源是否可信,确认软件没有被非法篡改或植入病毒木马,保护车机不被病毒、木马、恶意代码所侵害,保护了软件开发者和公司的利益。

1666331715707.png

代码签名的工作原理和流程
  1. 软件开发者,通过向证书颁发机构提交证书申请请求,请求信息包括公司名称、公司地址、开发者信息等。
  2. 证书签发机构向软件开发者颁发证书,即代码签名证书(公私钥对)。
  3. 软件开发者通过HASH算法计算固件代码的hash摘要值。
  4. 使用代码签名证书的私钥加密hash摘要值以获得hash摘要值的数字签名。
  5. 软件开发者将原始固件代码、hash摘要的数字签名和代码签名证书的公钥一起打包下发。
  6. 车机通过FOTA的安全通道,升级固件代码,随之获取的还有hash摘要的数字签名和代码签名证书的公钥。这里的安全通道,开发者需要设计具有TLS安全协议的双向认证通道方案,涉及建立安全链接前的启动证书和用于建立通道链接的工作证书,以保证FOTA的通道免遭中间人攻击和数据包的恶意篡改。一般地,首次建立非安全通道(认为首次建链具备一定的安全性)获取启动证书,随后通过启动证书与证书颁发机构建立双向认证通道,并获取工作证书。获取工作证书后可删除启动证书,并通过工作证书建立双向认证的安全通道,FOTA升级的安全通道建立成功,通信链路层安全下载固件代码包。
  7. 车机获取固件代码包后,获取代码签名证书的公钥,并向证书颁发机构申请鉴别该公钥是否可信,以防止公钥被恶意篡改的可能性。
  8. 车机通过固件代码包中的原始代码重新计算hash摘要值。并使用代码签名证书的公钥解密数字签名,以获取数字签名的明文即FOTA下载前的固件代码的hash摘要值。这样,计算获取的两个hash摘要值如果完全匹配,则代码签名认证成功,否则失败。

3. 总结

​ 代码签名是新能源汽车各域控制器升级代码包的重要安全手段,也是车机系统开发生命周期中的重要组成部分,使用代码签名方案将增加车机系统的安全性和健壮性,增加软件和应用程序的信任度和真实性,使整车系统和车主用户之前建立了更加长远的信心和良好体验。

0
chujiao_92ddb**9048
Dry Martini风度翩翩的猪肉王子
  • 赞同
  • 威望

相关问题

    Copyright © 2025