quinnwencn / blog

Apache License 2.0
0 stars 0 forks source link

[Crypto]安全刷写 #44

Open quinnwencn opened 2 weeks ago

quinnwencn commented 2 weeks ago

现代汽车的ECU都普遍支持诊断刷写和FOTA升级,在诊断刷写和FOTA升级中,必须做到安全刷写,否则可能会刷写被篡改的软件,导致ECU被黑,安全刷写可以带来以下有点:

  1. 防止恶意软件注入:未经认证的固件可能包含恶意代码,导致设备被黑客控制或执行未授权的操作。
  2. 保护知识产权:防止未经授权的固件复制和篡改,保护厂商的知识产权。(一般用于软件包加密)
  3. 保证设备稳定性:确保设备只运行经过测试和认证的固件,避免因固件问题导致的设备故障。
  4. 合规性要求:某些行业和应用(如医疗设备、汽车电子)需要遵守严格的安全和合规性标准。

常见的安全刷写方法采用的是签名,但是由于bare metal的ECU类型计算能力较弱,一般无法验证签名,或者验证签名耗费时间很久。对于这类ECU,可以采用对称加密算法来保证完整性,也就是计算软件包CMAC。以下是固件的制作和刷写过程: image

如果既要保证软件包的完整性,又要保护知识产权,建议使用AES-GCM算法加密镜像。