首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android引导序列-经过验证的引导安全性

Android引导序列-经过验证的引导安全性
EN

Security用户
提问于 2019-01-30 23:04:37
回答 2查看 4.2K关注 0票数 3

经过一些研究后,我目前对Android的引导序列(至少在高通设备上)的理解如下:

PBL -> XBL (取代SBL) --> Aboot >核

PBL:

  • 主引导加载器(有时称为bootROM)。
  • 启动设备后执行的第一段代码(因此PBL是信任的根源)
  • 由高通自己在SoC上构建和分发
  • 真正的是ROM (不能更新)
  • 包含用于验证XBL完整性的公钥。高通拥有相应的私钥。
  • 访问写入RPMB分区(链接)所需的唯一256位auth键的设备。

XBL:

  • 扩展引导装载机
  • XBL取代了旧的SBL (链接)
  • 专有高通解决方案(即由高通公司提供并签署)
  • 在某些情况下,它可以通过OEM为价格(链接)定制。
  • 生活在eMMC上(在boot0硬件分区中?)
  • 包含用于验证Aboot完整性的公钥。
  • 可以更新
  • 由于它存在于eMMC上,具有根权限的用户可以修改它,并可能对设备进行砖块:http://trac.gateworks.com/wiki/MMC注意到,默认情况下引导分区是只读的,因为它们通常用于敏感的引导固件。若要向它们写入,可以在sysfs中禁用force_ro。

Aboot

  • Android Boot Loader
  • 由OEM提供
  • 取决于OEM,可以是部分开源的,也可以是封闭式的(例如三星) (链接)
  • 必须签名(我假设是OEM而不是高通,这意味着XBL中的公钥必须是OEM的公钥?)
  • 生活在eMMC上(在boot0或boot1硬件分区中)?或者可能在用户数据硬件分区中)
  • 包含一个公钥,用于在加载内核/OS(也称为ROM)之前验证其完整性。但是,如果Aboot是“解锁”的,那么任何ROM都可以加载)
  • 可以更新
  • 由于它存在于eMMC上,所以具有根用户权限的用户可以修改它,并可能将设备分块。

问题

除了我上面提到的问题。

  1. 假设数以百万计的高通设备都有完全相同的在PBL中编程的公钥,这是安全的吗?
  2. 不能更改PBL中的公钥。对,是这样?
  3. 如果高通的私钥在某种程度上被泄露,那么在所有受影响的设备上都不能永远信任经过验证的引导?
EN

回答 2

Security用户

回答已采纳

发布于 2019-01-30 23:29:18

我不能特别和高通或Android通话,但是任何时候你在进行代码签名时,客户端都需要在某个地方开始其信任链。一个固定在固件中的不可改变的、不可升级的、不可撤销的公钥和其他的方法一样好。

不可升级的根公钥(通过归纳证明)

是有意义的

你问:

  1. 不能更改PBL中的公钥。对,是这样?

证明草图:

  1. 任何需要现场升级的软件组件都需要能够在运行之前验证其软件的完整性和真实性。
  2. 验证软件完整性和真实性通常是通过数字签名进行的。
  3. 该设备必须具有或能够获得执行数字签名的公钥。
  4. 如果该公钥本身包含在字段可升级的代码或数据块中,则必须通过数字签名验证该公钥的完整性和真实性。
  5. 该设备必须具有或能够获得执行数字签名的公钥。
  6. 如果此公钥本身包含在字段可升级的代码或数据块中,.

这就变成了一堆海龟(或者在这种情况下,是公钥),唯一可以终止的方法是,如果有一些根公钥是不可升级的,即我们对该密钥有绝对信任,并且不需要验证它的完整性和真实性。

QED。

回答另外两个问题(按倒序排列)

  1. 如果高通的私钥在某种程度上被泄露,那么在所有受影响的设备上都不能永远信任经过验证的引导?

选择任何PKI结构(公共HTTPS PKI、DNSSEC PKI、Windows代码签名PKI),总是会有类似的关于最顶端根密钥被破坏的末日场景。这就是PKI的工作原理。

为了防范这种情况,证书管理机构在HSM、网络安全设备和保护根密钥的人工策略上投入了大量的时间和金钱。但是在一天结束时,我们不得不依靠传统的口碑(ArsTechnica、推特、Reddit等)来告诉我们这些根键中是否有一个被破坏了。

  1. 假设数以百万计的高通设备都有完全相同的在PBL中编程的公钥,这是安全的吗?

一些公司将为不同的产品行保留单独的代码签名PKIs,这样就可以在不影响其他产品行的情况下撤销一个产品线。然而,现实地说,如果他们有一个如此大规模的缺口,那么无论如何没有人会相信任何事情,那么为什么要费心呢?

票数 2
EN

Security用户

发布于 2019-08-31 02:48:34

我知道这是旧的,但我只是想补充到现有的答案,如果OEM没有吹坏某些引信,你可以使用不同的PBL。

从你的第一个链接

如果标有的QFUSE保险丝行被触发(在非中文/OnePlus引导程序上也是如此),PBL (高通的主引导加载程序)将被验证并从BootROM ( SoC上的不可写存储)加载到内存中。

所以,当它是ROM时,如果你有正确的设备,大部分都不需要运行。

票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/202587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档