首页 > 汽车技术 > 正文

汽车电子硬件开发常用的安全机制

2025-04-07 08:34:10·  来源:汽车电子与软件  作者:SASETECH社区  
 
(3) 安全启动的信任根

由于信任链建立流程中,镜像合法性是由其前级镜像验证的,那么第级镜像的合法性如何保证呢?

ROM 一种只读存储器,它只能被编程次且内容在编程后不能被再次更改。因此,如果在SoC内部集成一片ROM,并在芯片生产时将第一级启动镜像刷到这块ROM 中,那么就能保证它是可信的。这也是现代 SoC 的普遍制作方法。

SoC 可能会支持不同的启动方式,如XIP 启动可以直接从外部的NOR  Flash 动。因此,在ROM中集成BootROM镜像之后,我们还需要保证芯片每次启动时都必须从BootROM开始执行,否则攻击者可能通过XIP 绕过整个安全启动流程。一般情况下,XIP 动模式在调试阶段用于问题定位。因此,在产品调试完成、安全启动之前,必须关闭该模式。通常,这可以通过OTPEFUSE中的特定位实现。

(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芯片内部会含有若干OTPEFUSE空间,这些空间只能被编程一次,且在编程后不能被再次修改。

将公钥保存到OTP EFUSE中,可以很好地保证其不可被修改。由于OTP 空间一般较小,而像RSA 之类的公钥长度却较长,例如 RSA 2048的公钥长度为2048bit    OTP 资源,通常在OTP 中只保存公钥的Hash  ( 如sha256  Hash 值长度为256bit),而将公钥本身附加到镜像中。

在使用公钥之前,只需使用OTP 中的公钥Hash 值验证镜像附带公钥的完整性,即可确定公钥是否合法。

分享到:
 
反对 0 举报 0 收藏 0 评论 0
沪ICP备11026917号-25