3. 密钥与证书体系基础
在 TI Sitara 处理器的安全启动链路中,密码学原语并不是抽象概念,而是直接决定“哪一段固件可以被加载、由谁签名、如何被验证”的工程要素。理解非对称密钥、对称密钥、哈希、数字签名与 X.509 证书之间的关系,是读懂后续密钥烧写、证书链配置和镜像签名流程的前提。
一、对称密钥与非对称密钥的分工
对称密钥使用同一把密钥完成加密与解密,典型算法是 AES。它的优势是速度快、适合大数据量处理,因此在 Sitara 安全启动中主要承担两类任务:一是对固件镜像做加密,保护代码和数据的机密性;二是作为派生密钥的输入,参与密钥派生与完整性保护。对称密钥的弱点是分发困难——验证方必须事先持有同一把密钥,一旦泄露,机密性与完整性同时失效。
非对称密钥使用一对数学相关的密钥:私钥用于签名或解密,公钥用于验签或加密。Sitara 安全启动中常见的是 RSA 与 ECC。私钥只保留在签名服务器或 HSM 中,公钥则以证书或密钥哈希的形式固化到设备。这样,设备只需要信任公钥,就能验证由对应私钥签出的镜像,而无需在设备端保存任何签名私钥。非对称密钥解决了“信任如何从签名方传递到设备”的问题,但运算开销明显高于对称算法,因此通常只用于签名和验签,不用于大块数据加密。
二、哈希算法:把任意长度数据压缩成固定指纹
哈希算法把任意长度的输入映射为固定长度的摘要,例如 SHA-256 输出 256 bit(32 字节)。它有三个关键性质:单向性(无法从摘要反推原文)、抗碰撞性(难以找到两个不同输入产生同一摘要)、雪崩效应(输入微小变化导致摘要大幅改变)。在安全启动中,哈希用于生成镜像摘要,再由私钥对摘要签名;验证时设备重新计算摘要,并用公钥验证签名是否匹配。这样既避免了直接对整块镜像做非对称运算,又保证了镜像任何一字节被篡改都会导致摘要不匹配。
三、数字签名:把私钥、摘要与信任绑定
数字签名的典型流程是:签名方先对镜像计算哈希,得到摘要;再用私钥对摘要(或包含摘要的签名结构)执行签名运算,生成签名值;签名值与镜像、证书一起打包。验证方收到后,用公钥对签名值做验签运算,恢复出摘要,再对镜像重新计算哈希,两者一致则通过。Sitara 安全启动中的签名通常还包含镜像长度、加载地址、版本号等元数据,防止攻击者替换镜像或回滚版本。
四、X.509 证书:把公钥和身份信息装进可验证的容器
X.509 证书是公钥基础设施中的标准格式,它把公钥、主体名称、有效期、用途扩展以及签发者信息打包,并由上级 CA 用私钥签名。Sitara 安全启动中,证书链通常包含根证书、中间证书和签名证书。设备端信任根可以是根证书本身,也可以是根证书公钥的哈希,固化在 eFuse 或 OTP 区域中。验证时,ROM Code 或 SPL 先校验证书链的签名,确认签名证书确实由可信 CA 签发,再用签名证书中的公钥验证镜像签名。这样,即使签名证书需要轮换,只要根信任不变,设备仍能安全地接受新证书。
五、在 Sitara 安全启动中的角色与配置要点
把上述原语串起来看,Sitara 安全启动的信任链是:eFuse 中的根公钥哈希 → 根证书 → 中间/签名证书 → 镜像签名 → 镜像哈希。每一级都依赖上一级的公钥或哈希来验证下一级。实际配置时,需要关注以下要点:
- 密钥长度与算法选择:RSA-2048 或 RSA-4096 适合兼容性要求高的场景;ECDSA P-256 签名更短、验签更快,适合资源受限的 SPL 阶段。选择后需与 ROM Code 支持的算法列表匹配。
- 哈希算法:SHA-256 是当前主流选择,SHA-1 已不推荐用于新设计。哈希算法必须在签名和验证两端一致,否则验签必然失败。
- 证书扩展:签名证书应设置正确的 Key Usage(digitalSignature)和 Extended Key Usage,避免被其他用途证书误用。
- eFuse 烧写:根公钥哈希或根证书哈希一旦烧入 eFuse 通常不可逆,烧写前必须确认密钥归属、备份和轮换策略。
- 版本与回滚保护:签名元数据中应包含镜像版本号,配合 eFuse 中的单调计数器,防止攻击者刷入旧版本固件。