什么是设备真实状态

what is device verity state

device verity state is: ENABLED

我在启动日志中找到了上面一行。我可以知道它会做什么吗? 我已阅读 android 来源 link,但不明白。

你能帮帮我吗

提前致谢。

Android 可以使用 dm-verity 来保护非数据分区免受操作 (link, link)。

目标是防止攻击者(对设备具有物理访问权限)插入恶意代码,例如进入存储在 /system/recovery 分区上的低级 Android 服务。

对于 fstab 中标有 verity 标志的分区,在构建时会计算分区的 dm-verity 哈希树。哈希树用 RSA 密钥签名,并作为元数据附加到分区。 RSA 密钥的 public 部分添加到 boot 分区。

在启动时,内核使用存储在 boot 分区中的 RSA public 密钥验证分区元数据中已签名哈希树的完整性。然后它可以计算分区的哈希树并将其与元数据中的哈希树进行比较。如果不匹配,内核将拒绝启动。

因此,如果攻击者操纵分区,则在启动时计算的哈希树将与分区元数据中的哈希树不匹配。如果攻击者还从分区元数据中操纵散列树,使用 RSA public 密钥的签名验证将失败。

当然你需要一个额外的机制来确保boot分区的完整性。这可以通过类似安全启动的机制来完成,其中 boot 分区再次用另一个 (RSA) 密钥签名,并且该密钥的 public 部分嵌入在较低级别(特定于供应商) .这种验证机制链称为信任链。理想情况下,您希望信任链向下扩展到硬件级别,并将一些供应商密钥烧录到芯片中。