普林斯顿大学在今年2月份的时候发布了一项研究成果,指出DRAM中的数据在计算机关机之后的数秒钟内处于一个“逐渐”消失的过程,如果环境温度较低的话,这个时间更会持续数分钟,这就意味着在这段时间内计算机系统中的例如密码之类的某些数据并未消失,别用有心的人完全可以通过特殊的手段获取并破解这些敏感数据(相关报道看这里)。昨天该研究小组在H.O.P.E 2008黑客大会上公开了这组用于破解的工具,并在他们的主页上发布了工具的源代码。
这套工具由三个部分组成:Memory imaging允许你使用PXE网络远程启动计算机,或者使用USB存储器获取内存镜像(压缩包中的教程以iPOD为例说明了相应的步骤),其中的EFI Netboot Imaging Tools则适用于EFI(Extensible Firmware Interface,可扩展固件接口)下的BSD系统环境;Automatic key-finding可分别从内存镜像中获取128/256位的AES或RSA密匙;Error-correction for AES key schedules则是为获取的AES密匙提供15%的误差修正。小组在大会上演示了这套工具,最后的内存数据和原始数据相比只有0.1%的差异,如果是 在冷却的情况下则不到0.01%,整个过程的前提是系统非正常关机(即强行拔出电源线或移除笔记本的电池),并且没有使用ECC内存。
由于DRAM的物理特点,整个破解方法适用于几乎所有的磁盘加密技术(Windows、Mac OS、Linux或者任何第三方磁盘加密工具),计算机处于非关机状态(包括锁定或休眠)意味着强行断掉计算机电源后在一小罐压缩冷却剂的帮助下内存条中 的所有密匙信息可以轻易被获取。你可以在这里下载到研究小组关于此课题的论文,对于内存中数据动态过程感兴趣的同学可以自己动手做这个实验来观察数据变化情况(Linux环境)。下面这个视频详细描述了以上所谓的“Cold Boot Attack”的过程: