汽车电子硬件开发常用的安全机制
由于信任链建立流程中,镜像合法性是由其前级镜像验证的,那么第一级镜像的合法性如何保证呢?
我们知道,ROM 是一种只读存储器,它只能被编程一次且内容在编程后不能被再次更改。因此,如果在SoC内部集成一片ROM,并在芯片生产时将第一级启动镜像刷到这块ROM 中,那么就能保证它是可信的。这也是现代 SoC 的普遍制作方法。
由于SoC 可能会支持不同的启动方式,如XIP 启动可以直接从外部的NOR Flash 开始启动。因此,在ROM中集成BootROM镜像之后,我们还需要保证芯片每次启动时都必须从BootROM开始执行,否则攻击者可能通过XIP 绕过整个安全启动流程。一般情况下,XIP 启动模式在调试阶段用于问题定位。因此,在产品调试完成、安全启动之前,必须关闭该模式。通常,这可以通过OTP或EFUSE中的特定位实现。
(4) 镜像签名和验签流程
制作镜像签名的基本流程如图5-22所示。
1 ) 使用Hash算法生成镜像的Hash 值 hash(image)。
2 ) 通过镜像发布者的私钥,使用非对称算法对镜像的Hash 值执行签名流程,并生成其签名值sig(hash)。
3 ) 将镜像的Hash值、签名值与镜像一起发布,在芯片启动时可通过图5-23所示流程验证镜像合法性。
图 5-22 制作镜像签名的基本流程
图 5-23 验证镜像合法性流程
上述流程过程如下。
1) 使用非对称算法的公钥和签名值,对镜像的Hash 值进行验签。若验签通过,则可进一步校验镜像完整性;否则,启动失败。
2) 若验签通过,则重新计算镜像的Hash 值hash(image)', 并将其与原始 Hash 值 hash(image) 比较,若相等则表明镜像的完整性验证通过,否则启动失败。
(5) 公钥保护
由于验签操作依赖于公钥,若设备上的公钥被攻击者替换成他们自己的,那么攻击者只需用与其匹配的私钥伪造镜像签名即可。因此,我们必须要保证设备上的公钥不能被替换。
一 般,SoC芯片内部会含有若干OTP或EFUSE空间,这些空间只能被编程一次,且在编程后不能被再次修改。
将公钥保存到OTP 或EFUSE中,可以很好地保证其不可被修改。由于OTP 空间一般较小,而像RSA 之类的公钥长度却较长,例如 RSA 2048的公钥长度为2048bit 。为 了 节 约OTP 资源,通常在OTP 中只保存公钥的Hash 值 ( 如sha256 的 Hash 值长度为256bit),而将公钥本身附加到镜像中。
在使用公钥之前,只需使用OTP 中的公钥Hash 值验证镜像附带公钥的完整性,即可确定公钥是否合法。
编辑推荐
最新资讯
-
泽尔测试战略入股赛孚汽车科技,布局汽车安
2025-04-07 17:33
-
每秒采集100万个数据 | 下一代USB DAQ产品-
2025-04-07 14:12
-
重型商用车辆和客车的动力学——振动环境
2025-04-07 14:11
-
2025年10大隐形车衣品牌排行榜
2025-04-07 10:40
-
沃尔沃卡车与Greenlane合作推动商业电动化
2025-04-07 08:42