华为海思芯片的信任根启动机制基于芯片内部固化代码,通过建立信任链、验证镜像签名与完整性以及严格的密钥管理等方式,确保系统启动的安全性与可信性,具体如下:
- 信任根与固化代码:芯片内部固化的代码作为信任根,是安全启动的基础。如 BootROM 中的代码,在芯片生产时就被写入且不可更改。CPU 上电后首先执行这些固化代码,它拥有最高的执行权限,负责初始化安全启动机制及加载相关密钥等。
- 建立信任链:从芯片上电开始,安全启动机制会建立起一条信任链。每一级启动镜像都由前一级镜像进行合法性验证,从而确保整个系统的可信性。例如,BootROM 会验证引导加载器的合法性,引导加载器再验证操作系统内核等后续启动镜像的合法性。
- 镜像签名验证与完整性校验:使用非对称加密算法,如 RSA 或 ECC,设备制造商使用私钥对固件镜像进行签名,签名信息会附加在固件文件中。而芯片内部则存储着对应的公钥,在启动时,芯片会使用公钥对固件的签名进行验证,只有签名验证通过的固件才会被认为是合法的。同时,通过消息摘要算法,如 SHA256、SHA512 等,计算固件镜像的哈希值,并将其与预先存储的正确哈希值进行比对,以验证固件的完整性。若哈希值一致,则说明固件未被篡改;若不一致,则启动失败。
- 密钥管理与保护:相关密钥会被安全地存储在芯片内部的特定区域,如 OTP 存储器或 efuse 中。OTP 具有写入后不可更改的特性,efuse 则是一种一次性编程存储模块,其比特一旦烧写为 0 就无法再改变,保证了密钥的安全性和完整性。同时,部分存储密钥的区域仅供 CPU 访问,进一步增强了密钥的保密性,确保只有芯片的 CPU 能够使用密钥进行合法的验证操作。