什么是设备真实状态
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 部分嵌入在较低级别(特定于供应商) .这种验证机制链称为信任链。理想情况下,您希望信任链向下扩展到硬件级别,并将一些供应商密钥烧录到芯片中。
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 部分嵌入在较低级别(特定于供应商) .这种验证机制链称为信任链。理想情况下,您希望信任链向下扩展到硬件级别,并将一些供应商密钥烧录到芯片中。