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

free-jdx 2020-09-30 15:05:19 5282
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系统验证结束后,整个系统的启动流程结束
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
free-jdx
红包 4 2 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
free-jdx
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区