G.O.S.S.I.P 阅读推荐 2023-08-21 UnTrustZone 攻击

现在还是2023年的夏天,但是我们已经开始展望2024年了——至少可以展望下2024年的 IEEE S&P,因为今天要介绍的论文 UnTrustZone: Systematic Accelerated Aging to Expose On-chip Secrets 是一篇要发表在 IEEE S&P 2024 上的论文,可细节尚未公开,我们今天就尝试来解读一下这篇论文(这则大新闻)。

这篇论文只需要看第一个单词就知道它针对的对象是谁了,没错,就是 ARM 的 TrustZone,不过严格来说也不能说这篇论文提出的是一种直接针对 TrustZone 的攻击,更准确地说,应该是提出了一种针对 SRAM 的攻击,能够用来提取 TrustZone 相关密钥。 不知道这样解释,读者有没有听明白。首先我们要科普一下 SRAM 这种存储介质,它全称是 Static Random-Access Memory 也就是静态随机存储器。和我们常见的 DRAM 也就是内存相比,SRAM 的特点是它只要通电之后,数据储存在里面就可以不用管了,而 DRAM 则需要周期性地刷新。SRAM 主要用于缓存也就是 Cache,它的成本要比 DRAM 高,速度也快,更多的技术细节再说下去就会损失一批计算机系的读者了,我们先停在这里,回到本文的攻击中去。

由于作者只把论文相关的 high-level 信息放在网站上,而并没有任何细节和实质性的内容,所以我们需要做做功课。我们首先检索到了来自 Virginia Tech 的研究团队在2020年 ASPLOS 上发表的研究论文 Forget Failure: Exploiting SRAM Data Remanence for Low-overhead Intermittent Computation 中,已经对 SRAM 的特性有所研究,用它在某些非常特定的场景下来代替 Non-Volatile Memory(NVM)加速运算。

不过这篇 ASPLOS 论文主要讲的是怎么合法使用 SRAM,和本文的攻击好像还有一点差别。在目前网站上公开的信息中,我们只能知道几个关键点:

  1. 攻击利用了当前主流的 SoC 的特点——允许访问 SRAM 的 power-on state 和 core voltage pin;

  2. 攻击是通过加速 SRAM 的老化(cause aging in SRAM)之后,想办法访问 secure data;

  3. 攻击的成功与否,取决于是否触发了被攻击的 SRAM 的 “burn-in” 特性;如果触发成功,攻击者就可以很容易弄清 SRAM 的 power-on state,进而解密后续数据。

听完这几个关键点,你是不是云里雾里?没关系,你订阅我们公众号是有道理的,为了更好理解UnTrustZone攻击,G.O.S.S.I.P 编辑部有幸能够邀请到可能是(我们严格遵循《中华人民共和国广告法》)华语世界最强的 SRAM 设计工程师——H姐,请她为我们分析解读这篇论文背后的原理。H姐的著名言论包括“你们程序员只知道0和1,根本不懂在(模拟的)物理世界上构建数字系统是一件多么复杂和脆弱的工程”以及“没有我们芯片工程师,计算机上层建筑早就不复存在了”,听上去好像有一点道理。下面我们进入对谈:

G.O.S.S.I.P 编辑部(以下简称G):请H姐为我们科普一下什么是 SRAM 的 power-on state?

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

G(好吧看来以后骂人非黑即白也不能说人家二极管了):那什么是 core voltage pin 呢?

H姐:如果简单的说,这就是 SRAM 的工作电压,但是肯定没这么简单啦,不过既然你们诚心诚意地问了,按照高晓松的说法,那我就大慈大悲地告诉你。实际上 SRAM 可能有两个工作电压,一个是给核心元器件使用,另一个用来给一些外围的部分,这个要详细解释是很复杂的,跟你们计算机系的人一句话也讲不清楚。

G(不懂芯片果然丧权辱国):所以根据我们的推测,这个攻击是通过让 SRAM 老化,进而触发 “burn-in” 特性?

H姐:这里先要科普一下,所谓的“老化”,并不是说 SRAM 老化,要具体到 SRAM 里面用到的每个存储单元中的 MOS 管(也就是 N 管和 P 管)的,就是在长时间使用后,这些 MOS 管的阈值电压和工作电流都和最初设计时候出现了偏差,导致读写不再正常。而 burn-in 通俗一点来说是你们搞计算机的人喜欢说的“烤机”,这里我们电路设计的时候会参考一个叫做“浴盆曲线”(bathtub curve)的特性,就是在器件的生命周期中,开始和结束的一小段时间,故障率是很高的,但是中间会有一个很平稳的时期,所以在设备出厂前都会有一些预测试让它进入到稳定状态(或者出故障了扔掉)。根据你们这个论文,可以认为是攻击者想办法让设备老化到了生命周期最后更容易出错的阶段,才能想办法实施攻击。

图片来源:http://www.leancrew.com/all-this/2011/03/not-dead-finished/

G(似懂非懂):所以老化了的 SRAM 就坏了?

H姐(这个编辑才是真正的二极管):不是坏了,而是物理特性和设计之初产生了差别。如果老化到一定程度,可能某个部件的物理特性变化巨大,以至于影响它所在的存储单元,要么读出来总是0要么总是1(即使你写入不同的数据)。我们刚刚说的 power-on state 其实就是取决于 SRAM 上电时,一个存储单元中两个不同部件的特征(具体来说就是反向器的阈值电压),正常情况下 SRAM 上电时的状态是一个比较随机的状态,我听说有工程师在做安全芯片,也利用这个来构造物理不可克隆函数(Physically Unclonable Function)或者生成一些随机数什么的。那么老化的 SRAM 它的 power-on state 很有可能是可预测的,对于你们来说是不是就可以利用了?

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

H姐(看智障的眼神):我也不懂你们计算机安全,但愿如此吧。


我们对H姐的访谈就到此,非常感谢世界级的 SRAM 工程师为我们答疑解惑,当然,我们上述的分析也完全是在论文还没有公布之前的猜测,所有错误的推断都来自G.O.S.S.I.P 编辑部,和H姐无关~ 再次对H姐表示感谢!!!最后放一个论文网站上的图片,希望大家都一起来思考下UnTrustZone攻击的更多细节和可能。


网站:https://forte-research.github.io/UnTrustZone/


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

为您推荐