1.海思提供的文档
文档路径:ReleaseDoc\zh\01.software\board\Hi3519AV100╱Hi3556AV100 V100 安全启动使用指南.pdf
从文档中截下的boot image的结构图如下:


2.secure boot 保护了些什么
依据上图可以知道,secure boot 可以保护ddr_init.bin 和 uboot.bin。保证这两部分没有被篡改。
但是,secure boot 也仅仅只是保护了这两部分,当uboot运行完后,会条用后面的kernel,rootfs等等,这些部分secure boot是没有保护的。
那么如果想保护后面的分区,怎么做呢?
将后面的分区用RSA算法对其签名,公钥的hash保存起来(可以存在海思OTP中供用户使用的部分,也可以明文保存在uboot中,因为secure boot 确保了uboot不能被别人修改),然后在uboot中去验证后面分区的签名是否正确,签名正确才表示后面分区的内容没有被篡改,才将控制权交给kernel。
3.secure boot 中的一些必须知道的细节
最开始研究secure boot的时候是真的痛苦,现在回想起来是因为很多细节都不清楚导致。
预备知识
Flash 的编程原理都是只能将 1 写为 0,而不能将 0 写为 1。所以在 Flash 编程之前,必须将对应的块擦除,而擦除的过程就是把所有

本文深入探讨了海思芯片安全启动机制,详细解释了secureboot如何保护关键固件免遭篡改,包括ddr_init.bin和uboot.bin的验签过程。文章还介绍了OTP(一次性可编程存储器)的作用及其在安全启动中的应用,以及如何通过RSA签名进一步保护后续分区。
最低0.47元/天 解锁文章
588

被折叠的 条评论
为什么被折叠?



