zoukankan      html  css  js  c++  java
  • 验证的启动

    介绍


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

    带有root特权的聪明的恶意软件可以隐藏检測程序,因此可以隐藏他们自己.root软件可以这样做,由于他们比检測程序有很多其它特权,使得软件向检測程序"说谎".

    dm-verity特征使你看到一个块设备,文件系统底层的存储层,而且决定是否匹配他的期望的配置.他们使用一个password哈希树来实现.对于每个块(一般是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"中讲述.

  • 相关阅读:
    4.9 省选模拟赛 圆圈游戏 树形dp set优化建图
    C#异步编程の-------异步编程模型(APM)
    C#异步编程の----Threadpool( 线程池)
    C#の----Func,Action,predicate在WPF中的应用
    C#常见委托のdelegate定义,Func,Action,Predicate总结
    c++のmap的遍历
    C#深度学习の----深拷贝与浅拷贝
    NSIS学习记录の----查找注册表某个键是否存在
    WPFの操作文件浏览框几种方式
    C#Url处理类
  • 原文地址:https://www.cnblogs.com/llguanli/p/7383982.html
Copyright © 2011-2022 走看看