G.O.S.S.I.P 阅读推荐 2023-10-23 UnTrustZone(续)

2个月前我们在专栏【08-21】中介绍了一篇尚未公开的IEEE S&P 2024论文UnTrustZone: Systematic Accelerated Aging to Expose On-chip Secrets,今天我们终于可以一睹庐山真面目,来看看论文的细节了:

回顾一下8月我们在专栏文章中的内容,当时我们邀请到可能是华语世界最强的SRAM设计工程师H姐来介绍了SRAM的基本工作原理,着重介绍了论文里面的核心概念——power-on state:

SRAM 的 power-on state 简单说来就是 SRAM 在上电以后、还没有给它写入数据的时候的状态;作为一个物理元器件,SRAM 中存储0和1并不像你们计算机工程师想象的那么简单,而是根据某些电路特性处在一个特定范围内时表示为0(或1),那么在刚刚通电时,可想而知,这个时候的 SRAM 一定会处在一个虽然你也不知道是多少,但是肯定在合法范围之内的状态(想象一下高数的拉格朗日定理?),这时候你去读取它,就会读出来可能为0也可能为1;

在8月的文章中,我们曾经推测:

攻击者大概率是想办法让 SRAM 老化,且利用了 TrustZone 的一些相关密码学材料(例如设备密钥?或者随机数发生器的seed)对 SRAM 的依赖,通过预测这些秘密信息值,就可以攻击到 TrustZone 的密码学防护了!!!

现在看到论文全文后,发现攻击的安全威胁模型和细节不太一样。在本文中,作者提出了这样一种攻击方法:

  1. 首先让设备正常运行,SRAM中加载相关的(敏感)数据;

  2. 保持SRAM的通电状态,然后对其升温升电压(85摄氏度、4.8V电压),持续令其加速老化(aging);

这个攻击看起来非常之简单粗暴,但是却很管用,为什么?这里面的核心在于,当SRAM中的基本单位(cell,如下图所示)加载了不同的数据(0或者1),且在高温高压下持续老化后,它的power-on state就会与老化过程中存储的数据产生相关性。换句话说,当一个保存0的cell和一个保存1的cell,它们老化之后就各有各的“脾性”,而攻击者正是利用了SRAM这种在“炼丹炉”中会发生变化的特性来完成攻击。

我们过去曾经认为,SRAM的power-on state是一个随机的状态,甚至还有芯片利用这个特性来产生随机密钥,但是按照上述的攻击流程,经过“炼丹”之后的老化的SRAM,其power-on state其实是和此前存储的数据相关。那么,只要攻击者能够拿到一块被攻击的SRAM,读取它的power-on state,就可以推测出此前存储的数据。

下图就展示了这样一个实例,作者分析表明,在被攻击的SRAM中,利用这种power-on state推测大法,大约只有2.8%的错误率,而对于像AES密钥这种数据,完全可以穷搜索(限定搜索范围在特定的汉明距离之内)就可以找到原始密钥!

作者在文中给出了攻击SRAM的具体步骤,如下图所示。也对power-on state推测大法的成功率进行了广泛的测试。

不过,我们最后要指出的是,这种攻击存在一定的局限性:攻击者为了能访问到SRAM(因为造价成本高,一般都是将SRAM用作cache),需要首先获得特权级别,然后开启debug访问模式去获得访问SRAM的能力之后,才能获取power-on state(而且还要阻止系统加载的时候去重写SRAM);假设我们攻击的对象是一台装备了TrusZone的手机,在实际攻击中,攻击者首先需要拿到这台手机,然后拆掉外壳,控制其运行温度和电压,持续将其SRAM老化,然后还需要root手机(通过解锁或者漏洞)之后获取SRAM访问能力,最后才能恢复SRAM中曾经存储的数据。很明显,除非一些非常重要的设备(嗯你懂的),一般来说这种攻击对现实的威胁并没有那么大。


论文:https://www.computer.org/csdl/proceedings-article/sp/2024/313000a069/1RjEaFjRP5m


免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。查看原文

为您推荐