Android安全启动学习(一):AVB校验是什么?

发布于:2022-11-28 ⋅ 阅读:(482) ⋅ 点赞:(0)

最近老师让学习一下AVB,这玩意很难找到资料。只有网上搜索一些零碎的资料和博客。最多的资料就是官网的。这里来整理学习一下AVB的相关资料。

1、AVB是什么?

如果你知道安全启动ATF,那么到这里肯定是能接上的,如果没有那也不影响。

我们的ATF在安全启动流程的时候走到了BL33,BL33一般就是bootloder(u-boot、BLOB、Redboot等)。到下一步就是要通过BL33去加载kernel。

这里需要讲一下android与linux的关系。详细内容看一下Android和Linux:你俩到底啥关系

在这里插入图片描述
(盗图来自前面的链接)Android的kernel采用的还是Linux kernel,但很明显Android加入了自己的东西,对Linux进行了一些修改。

所以回到主题就是加载android镜像就是加载linux kernel。所以难怪有很多的android启动流程有这个图:
在这里插入图片描述
但是你说前面安全启动整了那么长一套,这里就松懈了肯定不行。所以我把AVB看做是ATF安全启动的延续。

所以AVB本质上还是从bootloader开始,去实现加载完整正确的系统镜像。

2、小结

上面讲诉的有点乱,小结一下。

启动时验证会尽力确保所有已执行代码均来自可信来源(通常是设备的原始设备制造商 [OEM]),以防受到攻击或损坏。它可建立一条从受硬件保护的信任根到引导加载程序再到 boot 分区和其他已验证分区(包括 system、vendor 和可选的 oem 分区)的完整信任链。

在设备启动过程中,无论是在哪个阶段,都会在进入下一个阶段之前先验证下一个阶段的完整性和真实性。

这个是不是就是牵扯到COT,前面从受硬件保护的信任根到引导加载程序这个部分就是ATF或者android官网的trusty TEE。了解一下。

AVB的关键在于第二个部分 boot 分区和其他已验证分区。

对于要启动的 Android 版本中包含的所有可执行代码和数据,启动时验证均要求在使用前以加密形式对其进行验证,其中包括内核(从 boot 分区加载)设备树(从 dtbo 分区加载)system 分区vendor 分区等

下一篇先来看看android镜像到底有什么,再来看看AVB的具体工作流程。


网站公告

今日签到

点亮在社区的每一天
去签到