标签: AVB; dm-verity ;Android
Android Verified Boot (AVB) 与 dm-verity 之间的关系、相同点与差异点
概述
Android Verified Boot (AVB) 和 dm-verity 是 Android 操作系统中用于确保设备启动过程和运行时数据完整性的两个重要技术。尽管它们有着不同的实现和侧重点,但它们都旨在提高系统的安全性,防止未授权的修改和恶意软件的注入。
相同点
-
数据完整性保护:
- AVB 和 dm-verity 都致力于保护数据完整性。AVB 在设备启动时验证系统映像的完整性,而 dm-verity 在运行时持续验证文件系统的完整性。
-
基于哈希树的验证:
- 哈希树(Merkle Tree):二者都使用哈希树来验证数据块的完整性。每个数据块都有一个哈希值,这些哈希值组合成更高层次的哈希,最终形成一个根哈希,用于验证整个数据结构的完整性。
-
防止未授权的修改:
- 防止篡改:通过使用哈希和签名,AVB 和 dm-verity 可以检测到系统映像或文件系统中的任何未授权修改,防止恶意软件的注入。
-
集成于Android安全架构:
- Android生态系统:二者都集成在Android安全架构中,并共同作用于提升设备的整体安全性。
差异点
-
功能和作用:
-
AVB(Android Verified Boot):
- 主要功能是验证设备启动过程中每个阶段的系统映像的完整性和真实性。
- 通过
vbmeta.img
文件包含所有系统映像的签名和哈希信息,并在启动时进行验证。 - 提供回滚保护机制,以防止设备降级到存在已知漏洞的旧版本软件。
-
dm-verity:
- 主要功能是验证运行时文件系统的完整性。
- 在访问文件系统的每个块时,dm-verity 通过哈希树验证该块的完整性,防止运行时的数据篡改。
- 集成在
kernel-cmdline
中,通过内核模块实现对文件系统的持续验证。
-
-
实现层次:
-
AVB:
- 实现于引导加载程序(bootloader)层次,确保在系统启动过程中加载的每个映像都是完整和可信的。
- 使用公钥基础设施(PKI)签名和验证系统映像。
-
dm-verity:
- 实现于内核层次,内核模块负责验证文件系统块的完整性。
- 使用哈希树(Merkle Tree)结构在运行时验证文件系统数据块。
-
-
验证时机:
-
AVB:
- 验证在启动过程中进行,一旦系统成功启动,通过 AVB 验证的映像不会再被重新验证。
-
dm-verity:
- 验证在运行时进行,系统在每次访问文件系统的块时都会进行验证,确保整个运行期间的数据完整性。
-
总结
Android Verified Boot (AVB) 和 dm-verity 都是 Android 安全架构中的关键组件,共同确保设备从启动到运行时的数据完整性。尽管二者都使用了哈希树和签名验证技术,但它们在功能、实现层次和验证时机上有显著差异。AVB 专注于启动过程中的系统映像验证,而 dm-verity 则在运行时持续验证文件系统的完整性。理解这两个技术及其相互关系,有助于更好地设计和维护安全的 Android 系统。
作者简介:https://shimo.im/docs/rp3OVwxle2fJn7Am/
上海徐汇
2024年6月9日