cpu efuse 原理

文章介绍了手机CPU内部的efuse技术,如何通过写入引导程序公钥的哈希值形成安全启动校验链,防止第三方篡改。未溶丝状态下可使用第三方ROM,而溶丝后则限制了系统替换。深层代码修改需原始源代码,且涉及硬件操作和权限控制。
摘要由CSDN通过智能技术生成

溶丝,指的是在CPU内部集成的一个efuse器件,这个器件就是一组保险丝,大约几百个bits吧。一旦写入数据,保险丝熔断是没有办法恢复的,一次性的。

把引导程序的公钥的hash值写入efuse后,CPU的BootROM会按照这个值校验引导程序。

引导程序校验下一段程序,比如boot.img(linux kernel)。

这样就形成了一个安全启动的校验链(secure boot chain),除非你有对应的私钥给刷机包的校验链涉及到的image签名,否则修改之后,启动时会校验失败而黑屏或者停止在启动画面。

当然,用于卡刷的recovery也在校验链里面。以上这就防止了第三方对ROM的篡改。

现在基本所有手机的CPU都支持这个功能,可能有一些没有打开而已。10几年前溶丝这个技术就有了,但没有用在手机上面,POS机可能是最早用到的这个功能吧。

未溶丝,就是这个校验链还没有完全生效,你还有机会用第三方的ROM。溶丝之后,就只能用360的ROM了。不过,溶丝之后上面的字会消失。


你说的深层代码,应该主要是指引导程序和linux kernel,用的是C语言。不过你得先拿到这部手机的源代码才能修改,这个很难做到。


这个通常和开发语言无关,而是需要开发工具,甚至一定的权限。
一般意义上的熔断(fuse)是指的针对出售的手机(具体来说,可能是手机内部的CPU也可能是一个独立的安全器件)做一个写操作。

这个操作的结果就是在硬件上写入某个寄存器(该操作不可逆),那么今后开机boot代码会检查这个寄存器来确认这个寄存器的值来验证这一台是否属于合法出售的手机。

安全性更高的一些方案(比如以前MARVELL给黑莓定制的方案)可能是对硬件做一次加密操作(比如HASH),然后对手机写入这个HASH值(公钥),今后只有被授予权限的机构才有合法私钥可以被允许更改手机代码。

因此你拿到的测试手机,如果能拿到相应的fuse工具(从安全考虑,一般都是独立的工具)可能就可以完成fuse.如果安全程度很高(不过国内手机基本没人这么玩)拿到工具也没用,还需要开启权限。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值