首页 > 技术知识 > 正文

1. 前言

防刷机方案帮助厂商控制产品上运行固件的安全性,任何没有厂商授权的固件(bootloader/kernel/android),都无法在产品上运行。 Secure boot实现的技术目的 :

建立完整trust chain,保证android设备加载的Kernel 和Android系统不被篡改。 防止rootkit、bootkit等软件对系统的攻击。 2. 硬件支持

硬件模块Secure Brom ,efuse 和crypto engine,为验证过程提供了IC内部支持。 (1)Secure Srom

是安全芯片内部一段电路逻辑,它会在芯片每次启动时被执行,它配合efuse存储的rsa public key,验证外部存储设备(Nand /Emmc)上的bootloader 完整性。Secure Brom的不可被修改性和强制执行,保证了整个安全启动过程。

(2)Efuse 帮助存储验证使用到的Root RSA public key。每个厂商保存自己的Root rsa private key,在量产时候将对应Root rsa public key刷入到芯片efuse指定区域。Efuse只能一次写入的特性,决定了芯片在量产刷写后,芯片Root rsa public key就被厂商所控制 ,永远不会被第三方修改。而掌握了Root rsa key的厂商,就掌握了芯片固件的控制权。

(3)Crypto engine 提供给固件验证算法支持和加速。目前使用到的硬件加速算法是RSA 非对称解密算法和 SHA数字摘要算法

3. Secure Boot 说明

Secure Boot启动过程中的boot代码完整性验证方法和启动顺序,secure boot从Secure Brom执行开始,到Android启动结束。下图描述了Secure Boot启动过程。

嵌入式平台防刷机原理说明

启动流程说明:

BRom 加载的Bootloader 代码, 验证其合法性后,跳转到Bootloader执行。 Bootloader验证和加载u-boot代码,跳转执行u-boot代码。 u-boot 先执行通用启动功能,包括调压调频,电源管理等,然后验证和加载boot.img ( kernel and ramdisk ), 验证完成后,cpu从u-boot跳转到kernel执行。 Kernel 首先运行内核子系统,设备驱动等,内核初始化完成后,运行android init 脚本,验证并加载android 系统。 android系统验证结束后,整个系统的启动流程结束

猜你喜欢