Android Secure Boot

1 原理

首先,Secure Boot功能的目的是什么?查了下资料,就是不让设备刷第三方的固件。类似圆环套圆环,圆环第一环是CPU,CPU定制了空间保存密钥,然后就是Boot,然后是OS,最后一直套到最后APP。如下图:

高通芯片流程如下,基本和上面的差不多,就是Bootloader分成了两个:

稍微要注意的就是有一个efuse,保存了根密钥的hash值,可以用来验证后面的hash是否正确。就是电子保险丝,一旦写入之后就不能更改。

可以看到的是以后手机,刷机成了不再可能的事情了,甚至可能刷一个软件都不行。。。

在Andorid的层面,又进行了扩展。搞了一个Verified boot,运行时也可以校验。

2 用Openssl生成密钥

可以看下面这篇,我觉得写的还不错:

https://zhuanlan.zhihu.com/p/492475360

3 以高通为例

在高通平台上,提供了一套python的工具,用的是Openssl,还有一个V3.ext。

官方的流程大概是以下几步:

3.1 Generate secure boot keys

这一步就是把openssl,和v3.ext的相关文件拷贝到一个文件夹。同时配置配置文件。

3.2 Generate root key pair and certificate

生成根CA密钥对和证书。

四个openssl命令。

3.3 Generate attestation CA key pair and certificate

生成认证CA密钥对和证书。

同样也是4个openssl命令。

3.4 Configure PK hash in fuse

生成电子熔断中的根证书hash。

用openssl digest命令。

3.5 Generate sec.elf image

生成加密分区。

3.6 Sign the images

对各个分区镜像进行签名。这里可以看到,高通常规的操作是对各个分区进行验证。如果私下对有的分区进行了烧写,就可能导致校验不过无法启动。

3.7 Flash signed image on device

烧写分区。

4 参考

https://source.android.com/docs/security/features/verifiedboot?hl=zh-cn

Secure boot and image authentication in mobile tech | Qualcomm

android手机系统的启动流程-secureboot流程(以MTK平台为例)_android secure boot怎么开启-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值