在密码学中,冷启动攻击(在程度较轻时称平台重置攻击)是一种旁路攻击,具有计算机物理访问权限的攻击者能够在使用冷启动重新启动计算机后从运行的操作系统中检索加密密钥。攻击依赖于DRAM和SRAM的数据残留特性检索断电后数秒至数分钟内内存中的可读内容。
背景冷启动攻击最先由 Halderman 等人于 2008 年的 USENIX Security 会议上作为一种有效的攻击方式提出并进行攻击展示,成功地破解了多个开源和商业的磁盘加密系统。1实际上,动态内存的数据剩余现象在低温下会被大大延长的特性的 发现可以追溯到20 世纪70 年代,被液氮冷却的内存芯片中的 数据可以保持一周而不发生变化。而 Chow 等人则在实 验中发现了内存中的数据会在计算机重启后保持的现象。 Pettersson受到此前工作的启发,提出内存的数据剩余导致 的计算机重启后内存中的数据继续保持的现象可以被攻击者
用来获取内存快照这个想法,但并没有真正通过实验进行验 证。除动态内存外( DRAM) ,静态内存( static random access memory,SRAM) 也被证明存在明显的内存剩余现象。 Carbone 等人在更广泛的软硬件环境下重复了冷启动 攻击的实验,并验证了冷启动攻击被用来进行数字取证( digital forensics) 的可行性。Gruhn 等人也验证了冷启动攻击的 实用性,并且发现即使只是将内存芯片轻微地冷却到10℃左 右,也能显著地延长内存中数据保持的时间。而 Müller 等 人成功地在一台 Nexus 智能手机上执行了冷启动攻击,将 冷启动攻击的适用范围从 PC、笔记本电脑扩展到智能设备 领域。
攻击定义冷启动攻击是一种新型的旁路攻击( side channel attack) 。 利用冷启动攻击,攻击者可以对其进行物理访问的正在运行的 计算机执行冷启动操作以绕过其软硬件防护机制,获取正在运 行的计算机的内存快照,并进一步从快照中提取出密钥等敏感信息。
攻击原理计算机动态内存芯片是由内存单元( DRAM cell) 阵列构 成。每个内存单元本质上是一个电容,利用电容的充电态 ( charged state) 和基态( ground state) 两种状态来表示一个比特 位的数据信息。如果没有外接电源,处于充电态的电容将 逐渐放电,并最终转换为基态。这个过程通常需要毫秒级的时 间才会完成状态转换,这个现象被称为数据剩余( data remanence) ,这个过程被称为数据退化( decay) 。所以内存芯片并 不会持续为内存单元充电,而是定期将内存单元的状态读出再 根据其状态重新对其充电或放电以维持其状态,以降低内存的 耗电量,这是动态内存动态性( dynamic) 的由来。这个时间被 称为刷新间隔( refresh interval)。正是由于内存单元的这种 性质,当内存芯片断电后,内存单元的状态仍然会保持一段时 间;如果将内存芯片置于低温下,这个时间将会大大延长。随 着内存芯片所处的温度和内存芯片制造工艺的不同,当内存芯 片断电几分钟甚至几十分钟以后,其中可能也只有少部分内存 单元的状态会发生变化; 而当内存芯片被重新加电,内存单元 会被重新刷新,其状态也随即固定下来。目前,几乎所有的动 态内存都利用了内存单元的这种性质进行设计、实现。甚至退 化时间随温度降低而延长的性质已经被用做优化内存能耗的 一种手段,当检测到内存芯片温度降低时,可以在保证数据不 会丢失的前提下降低内存的刷新频率,以节省能耗。另一方 面,这种性质为对目标计算机具有物理访问能力的攻击者提供 了攻击的可行性。
攻击过程利用内存的数据剩余特性,如果攻击者对正在运行的目标 计算机具有物理访问能力,则其可以首先将内存芯片冷却,再 将内存转移到事先准备好的用于执行攻击的计算机上以绕过 目标计算机的软硬件防护措施,通过特定的引导程序将内存中 的数据转储到磁盘等永久存储介质上,最后从内存快照中恢复 提取出密钥等密码信息。2
芯片转移为了防止目标计算机上可能存在的防护机制,比如 BIOS 可能在启动时清零内存,需要先将工作中的内 存芯片冷却后断电,将芯片转移到另一台提前准备好的计算机 上再执行后续攻击过程。Halderman 等人在实验中验证了 罐装空气( canned air) 是一种高效、低成本的冷却剂,可以快速 将内存芯片的温度降低到约 -40℃。在这个温度下,实验用的 内存芯片断电1 min 后数据退化率往往不超过0.1%。Gruhn 等人重复了前者的实验,并发现即使只将内存芯片冷却到 0℃左右,攻击也可以成功。
数据转储当内存芯片在用于执行攻击的计算机上加电后,芯片中的数据锁定为在目标计算机上断电时的状态。之 后可以利用一个精简的、自定义的引导程序将此时内存中的数 据完整地转储到磁盘等永久存储介质中以备后续分析。Halderman 等人在其项目网站上提供了可用的引导程序。
数据分析内存快照中包含了使用者的大量私人信 息,尤其是用户的私钥和磁盘加密密钥等,具有极为重要的价 值。需要注意的是,在分析提取信息时需要考虑攻击过程中因 数据退化现象而导致的一定比率的数据翻转。
本词条内容贡献者为:
李嘉骞 - 博士 - 同济大学