博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
验证的启动
阅读量:6427 次
发布时间:2019-06-23

本文共 866 字,大约阅读时间需要 2 分钟。

版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/50738864

介绍


Android 4.4和后续版本通过可选的dm-verity内核特征来支持验证启动,其会提供透明的块设备的完整性检查.dm-verity能帮助阻止root组件,该组件能够获取root特权.该实验特征能够帮助在启动设备的时候检查是否和上次使用过的一样.

带有root特权的聪明的恶意软件能够隐藏检测程序,因此能够隐藏他们自己.root软件可以这样做,因为他们比检测程序有更多特权,使得软件向检测程序"说谎".

dm-verity特征使你看到一个块设备,文件系统底层的存储层,并且决定是否匹配他的期望的配置.他们使用一个密码哈希树来实现.对于每一个块(通常是4K),都有一个SHA256的哈希.

由于哈希值被保存在一个页面树中,只有顶层的"root"哈希才能被信任来验证树的其他部分.修改块的能力应该和打破加密哈希是对等的.查看下面的图表来看一下结构的描述.

dm-verity-hash-table

                                                       dm-verity哈希表

一个公钥被包含在boot分区中,该分区必须要被OEM在外部被验证.该密钥用于验证该散列的签名,并确认该设备的系统分区是受保护的,并且是不变的。

先决条件


确定一个验证的启动流

为了大大降低妥协的风险,使用一个烧录到设备中的密钥来验证内核.详细的细节,在后面的文章"验证启动"中介绍.

转向面向块的OTA

为了使能设备的dm-verity,必须要使用基于块的OTA更新来确保所有的设备都使用相同的系统分区.更多的细节,是文章"基于块的OTA"中介绍的.

配置dm-verity

在转向面向块的OTA之后,组合最新的Android内核或者是使用上升的内核,并且通过包含相关配置选项CONFIG_DM_VERITY来打开dm-verity支持.

当使用Android内核的时候,dm-verity在内核被构建的时候打开.更多细节,将会在后续文章"实现dm-verity"中讲述.

你可能感兴趣的文章
备份Toad中保存的数据库连接用户名和密码
查看>>
ASP.NET中 Repeater 的使用前台绑定
查看>>
微信公众平台模拟群发技术
查看>>
C语言学习之指针详解
查看>>
学习使用Bing Maps Silverlight Control(一):准备和新建
查看>>
什么是Scrum
查看>>
nginx负载均衡的5种策略
查看>>
90%人都不知道:SVN 和 Git 的一些误解和真相
查看>>
防火墙配置十大任务之九,验证防火墙的运行
查看>>
【linux】浅谈Linux下的 find 指令
查看>>
CentOS 7 使用kubeadm 部署 Kubernetes
查看>>
我的友情链接
查看>>
透视美国大数据爆发全景
查看>>
java学习第一天1.2
查看>>
清空输入缓冲区的方法
查看>>
Yii2 项目优化小贴士
查看>>
UIScrollView的判断位置的属性如下:
查看>>
Applicatin Loader上传app步骤记录
查看>>
两种方法修改table表的内容
查看>>
张小龙莫慌 马化腾莫急 你们要好好的 微信还有时间
查看>>