首页 / 新闻资讯 / 安卓固件加固过不了等保测评的3个常见原因,我们踩过的坑
去年我们给某城商行做车载中控设备,固件加固做完,等保三级测评直接被打回。专家指着报告说:安全启动链不完整,密钥管理不合规,日志审计功能缺失。客户差点解约,我们赔偿了两次复测费用——前后折腾了3个月。

这三个坑,每一个都是真金白银换来的教训。
找的第一家加固厂商,号称“固件级防护”。结果测评时,专家用fastboot刷了一个未签名的boot.img,设备居然正常启动了。
问题出在哪?厂商只加密了system分区,根本没动boot分区和vbmeta分区。这意味着攻击者只需要替换内核,就能绕过所有“加固”措施。
根据等保2.0“安全计算环境”控制项,三级系统必须实现安全启动:从硬件信任根开始,逐级验证各阶段镜像的完整性和真实性。
Android Verified Boot 2.0的标准信任链是这样的:
核心要求:链条任何一个环节被破坏,设备必须拒绝启动。
发现问题后,我们换了能完整支持AVB 2.0的厂商。重新修改Bootloader、重新生成vbmeta签名、重新配置验证链,花了4周。更麻烦的是,已经出厂的200台样机需要返厂烧录(熔丝是一次性的,无法远程升级)。
早期确定加固方案时,必须索要《安全启动兼容性测试报告》,确认厂商方案覆盖了完整的AVB 2.0验证链。
第二家厂商自称“金融级加固”,密钥存在TrustZone里,听起来很安全。测评时也确实没被直接攻破。

但专家翻出代码审计报告,指出致命问题:加密密钥硬编码在native SO库里,虽然存在TEE环境中,但派生密钥的种子是编译时固定的。所有设备使用相同的密钥材料,一旦某台设备被提取,整个批次全部沦陷。
等保三级对密钥管理有明确要求:密钥必须每设备唯一,且与设备硬件特征绑定。
具体到Android固件层面,合规的密钥管理应该满足:
Google Play Integrity API的MEET_STRONG_INTEGRITY要求,本质上就是验证这套机制是否完整。
发现问题后,我们被迫修改固件架构:在TrustZone中实现每设备密钥派生、改造OTA分发机制、重新设计密钥轮换策略。硬件层面,某些没有独立安全芯片的旧平台根本无法改造,只能换主板。

选型时,必须要求厂商提供《密钥管理方案说明书》,明确说明密钥是否每设备唯一、是否绑定硬件、是否支持远程认证。
前两次整改后,我们以为万无一失。结果测评报告里多了一项“不符合”:系统日志无法追溯安全事件——谁、什么时间、修改了哪个安全配置、结果是成功还是失败,完全查不到。
厂商的回应是:“我们只做加固,日志审计是应用层的事。”
等保三级“安全审计”控制项要求:
对于固件层,这意味着:Bootloader阶段、内核阶段、系统服务阶段的安全事件,都要有审计记录。加固方案如果破坏了原有auditd/selinux日志机制,等于自动丧失合规性。
我们不得不额外集成一套内核级审计模块,修改audit规则、配置远程日志服务器、改造日志存储分区(防止日志丢失)。增加这些功能后,存储空间额外占用200MB,老设备根本扛不住。
合同中必须明确“日志审计功能由谁负责”。如果厂商的加固会影响系统日志,要求其提供替代方案。
| 失败原因 | 发现时机 | 补救周期 | 补救费用 | 是否可远程修复 |
|---|---|---|---|---|
| 安全启动链不完整 | 测评现场 | 4周 | 改Bootloader+返厂烧录 | ❌ 需返厂 |
| 密钥管理不合规 | 代码审计阶段 | 6周 | 重构TEE密钥方案 | ⚠️ 部分可远程 |
| 日志审计缺失 | 测评报告 | 3周 | 集成审计模块+存储扩容 | ✅ 可远程OTA |
一句话建议:选安卓固件加固厂商,别只看“防逆向”“防篡改”这些营销词。拿着等保2.0的技术要求,一条条对:安全启动链条完整吗?密钥每设备唯一吗?审计日志被破坏了吗?这三个问题答不清楚,直接pass。