Android Verified Boot 概述 (www.xiezeyang.com)

【简介】

Verified Boot是Google为Android启动定义的一种安全机制。它建立了一条从受硬件保护的Root of trust到booloader,再到boot和其它验证分区(包括system、vendor、product、odm等)的完整信任链。在设备启动的过程中,无论处于哪个阶段,都会在进入下一个阶段前先验证下一个阶段的完整性和真实性。除了确保设备运行的是安全的Android系统以外,verified boot还支持回滚保护(anti-roll back),它可以保证设备只会更新到更高版本,以避免可能的漏洞持续存在。另外,verified boot还允许设备将其完整性传到给终端用户。

要想使能verified boot,需要在编译系统中启用dm-verity功能。Android 4.4就增加了对验证启动和 dm-verity 内核功能的支持。以前的Android版本会在发现设备损坏时向用户发出警告,但仍允许他们启动设备。从Android 7.0 开始,系统会严格强制执行verified boot,从而使得遭到入侵的设备无法启动,与此同时还增加了对向前纠错功能的支持,能更可靠地防范非恶意数据损坏。Android 8.0及更高版本包含了 Android Verified Boot (AVB)功能。其实AVB就是验证启动的一个参考实现,可与 Project Treble 配合使用。除此之外,AVB 还对分区脚本格式进行了标准化处理,并增添了回滚保护功能。为了便于区分,我们一般将此之前的verified boot称为1.0版,而AVB专指verified boot 2.0版。

点击查看全文 >>

@shengting 2021-03-19 17:09分享 / 0个评论
赞过的人: IT技术博客大学习
要不要再学学下面的文章?
Android R 如何访问 Android/data 目录? (mp.weixin.qq.com)
Android R上分区存储的限制得到进一步加强,无论APP的targetsdkversion是多少,都将无法访问Android/data和Android/obb这二个应用私有目录。这无疑对会部分APP的业务场景及用户体验造成冲击,典型的如下
by @code小生 2021-04-11 13:52 分享 查看详情
换个角度描述 Android 事件传递,读完会让你耳目一新 (mp.weixin.qq.com)
关于Android中事件传递机制早已是老生常谈的话题,甭管工作多久水平咋样应该都能道出一二。依稀记得刚接触事件分发那会,一股脑的钻进网络上那几张神图,什么三大方法、职责链,最后再巴拉巴拉贴一大堆源码(有的还贴错了),嗯,学完之后效果还挺不错,起码面试的时候能忽悠。关于只教是什么,不教为什么,鲁先生说过,这样是在耍流氓。今天我将换一种思路去描述事件分发,先带大家构建事件分发模型,讲述其设计背景和职责边界,最后带着我们的猜测去源码中找答案。
by @code小生 2021-04-11 13:52 分享 查看详情
十余年从业者谈谈 Android 开发现状 (mp.weixin.qq.com)
截止到今天,Android生态也发生了不少变化,从一个多年经验的Android开发者角度分析Android的开发现状,不喜勿喷。
by @code小生 2021-04-11 13:51 分享 查看详情
关于 Android MVVM 一些理解与实践 (mp.weixin.qq.com)
viewmodel可以理解为桥梁,通过viewmodel 将 View和Model双向绑定,数据的变化可以直接作用在View上,就是MVVM,其实MVVM,MVP都是在MVC的基础上演变而来。
by @code小生 2021-04-05 13:41 分享 查看详情
摆脱 Android 和 iOS:七款免费开源移动操作系统的尝试 (mp.weixin.qq.com)
长期以来,硅谷一直在鼓吹技术(而非真理)使人们自由。这种观点是否正确,至今还没有定论,但毫无疑问,智能手机虽然已经极大地改变了我们的世界,但也有一些严重的弊端。例如,集中化的应用商店意味着对人们有用的应用可以在一瞬间消失,而这些应用本身可以使用这些设备上的传感器来监控人们生活的方方面面。而最糟糕的可能是,这些智能设备虽然大多价格不菲,但它们的使用寿命预期不会超过几年。
by @code小生 2021-03-28 11:28 分享 查看详情
原生 Android 集成 React Native (mp.weixin.qq.com)
使用 React Native 从零开始开发一款移动应用是一件很惬意的事情,但对于一些已经上线的产品,完全摒弃原有应用的历史沉淀,全面转向 React Native 是不现实的。因此,使用React Native去统一原生Android、iOS应用的技术栈,把它作为已有原生应用的扩展模块,是目前混合开发的最有效方式。
by @code小生 2021-03-21 23:38 分享 查看详情
Android 12 有哪些新功能?开发人员测试版本即将发布 (mp.weixin.qq.com)
Google 可能即将发布 Android 12 的第一个开发人员测试版,但到目前为止,我们对即将到来的软件更新了解不多。
by @code小生 2021-03-21 23:37 分享 查看详情
MTK平台Android 安全中secure boot机制 (blog.csdn.net)
Secure boot指的是建立用于运行已验证应用程序的可信平台的启动序列。它从一个不可变的序列开始,使用密码验证验证代码的源,从而只执行授权的软件。启动序列将设备置于已知的安全状态,并检测软件的二进制操作和反射攻击。

Secure boot的目的就是确保在系统平台上所执行的程序代码是厂商确认过的,避免有人恶意修改系统程序的恶意行为。
by @shengting 2021-03-19 17:11 分享 查看详情
浅析安全启动(Secure Boot (bbs.pediy.com)
安全启动的根本目的是为了防止消费者从软硬件层面对产品的部分关键系统进行读写、调试等高权限的操作。以限制消费者的能力,来达到保护产品的商业机密、知识产权等厂家权益的目的。

当然,厂家是不会这样宣传 Secure Boot 的。他们的文案通常都是通过这项技术保护用户的隐私,防止恶意软件修改系统软硬件等等。不过不论如何,随着 ARM 架构的广泛授权,基于 TrustZone 的 Secure Boot 也越来越普遍了。

本文是通过我自己对市面上的一些基于 ARM TrustZone 的 Secure Boot 实现的浅见、零零碎碎读到的一些安全分析文章、看到的一些讲座,总结一些常用的攻击思路,介绍一些真实的攻击案例。
by @shengting 2021-03-19 17:07 分享 查看详情
浅谈 Android 的安全启动和完整性保护 (evilpan.com)
在 IoT 中保证设备安全性的重要一环就是保证代码的完整性,不让恶意代码影响业务的正常逻辑。一般而言是及时修复现有攻击面所面临的漏洞,比如浏览器、蓝牙、调试接口;另一方面需要确保的是即便恶意代码获取了执行权限,也无法修改系统镜像进行持久化。针对这点所构造的安全方案通常称为 Secure Boot,对于不同的厂商,实现上可能会引入不同的名字,比如 Verified Boot、High Assurance Boot 等等,但本质上都是类似的。
by @shengting 2021-03-19 17:07 分享 查看详情