OpenHarmony HVB安全启动一键启停全栈实践:从U-Boot签名到fastboot解锁的闭环避坑指南
1. 技术背景
HVB(Verified Boot)是OpenHarmony的安全启动机制,通过验证系统镜像的完整性和合法性,确保设备启动的镜像:
- 来源合法
- 未被篡改
- 无法回滚到有漏洞的历史版本
这里为了方便理解我们提一下android里面的avb
HVB(OpenHarmony)与 AVB(Android)都是“开机时校验系统完整性”的保险箱,只是品牌不同;
最常见的用法就是 release 版本强制开启、debug/开发版本临时关掉,以便在“安全”和“刷机方便”之间切换。
在android里面会听到开avb和关avb,在openharmony我们称作HVB
1.1. 为什么必须存在
- 防篡改:把 boot/system/vendor 等分区做一次哈希/签名,启动时先验真伪,被改过就拒绝启动或降级到“黄/红”状态。
- 防回滚:版本号写进签名里,防止刷回旧系统、利用旧漏洞。
- 链式信任:从 Boot ROM ➜ Bootloader ➜ Kernel ➜ system,一路签名验证,建立“可信启动链”。
HVB主要用于校验系统镜像,根据镜像的类型分为整包校验和分块校验两种方式:
整包校验(hash)
整包校验适用于一次性加载的镜像,这种镜像只需要生成一个hash值即可,加载镜像时对整个镜像进行hash计算,与编译时的hash值进行对比确保完整性。
此校验方式的弊端是镜像过大时影响开机校验时间。
按需校验(hashtree)
按需校验适用于大的文件系统镜像包,由内核在访问存储块时进行完整性校验。由于是按存储块进行hash值计算的,因此需要在编译时构造哈希树(hashtree)加快校验速度。此方案可以不用在开机时对整个进行进行完整性校验,而只对hashtree进行校验,加快系统启动速度。
1.2. 最常见用法
场景 | Android (AVB) | OpenHarmony (HVB) |
---|---|---|
量产机 | avb=true (或 androidboot.verifiedbootstate=green ),锁了 Bootloader,刷机必须重签名。 | < |