Copker——无需访问内存芯片的公钥密码算法实现

作者:林璟锵(中国科学院信息工程研究所副研究员)

冷启动攻击(Cold-Boot Attack)是影响范围极大的物理攻击。基本原理是,由于数据延迟消失效应,在断电之后,内存芯片上的数据仍然会存在一定时间;在低温下,甚至能够达到数小时。如果攻击者可以接触到正在运行的受害设备(例如,丢失的笔记本电脑和智能手机),就可以插入含恶意代码的启动设备(例如,U盘)、重启设备,就可以从内存中读取原有的数据。甚至,可以有更简单的方法:在低温环境中(例如,电冰箱),拔下受害设备的内存芯片,插到攻击者的机器上,就可以读取原有的内存数据。冷启动攻击可以有效地获取内存中的各种密钥数据。

对于计算机系统,内存和CPU是最基本的组成部分。当敏感的密钥数据不能出现在内存芯片时,我们只能考虑将密钥运算限定在CPU内部。已有方案使用寄存器来完成AES对称密码运算。但是,基于寄存器的方案难以推广到公钥密码算法,因为公钥密码算法(例如,RSA算法)需要的数据空间远远大于对称密码算法。

Copker(Computing with Private Keys without RAM)利用CPU的片上Cache来执行公钥密码运算。利用最基本的WB模式(即,CPU会尽可能在Cache上执行操作、直至Cache不足才将数据交换到内存芯片),使得计算时密钥保持在Cache中。同时,合理安排密码运算的输入、输出和动态变量等数据,使得计算过程中不会有Cache冲突。对于多核CPU,还需要设定不处于密码计算任务的其它核的Cache访问模式,避免不同核之间的Cache冲突。通过以上措施,能够有效地将公钥密码运算过程中的数据访问限定的Cache上、不会出现在内存芯片,从而能够有效防范冷启动攻击。

更多详细内容详见:Copker: Computing with Private Keys without RAM(NDSS2014)。

作者简介

linjq

林璟锵,博士,中国科学院信息工程研究所副研究员。2001年毕业于中国科学技术大学,获得电子信息工程学士学位;2004年和2009年在中国科学院研究生院分别获得硕士学位(通信与信息系统)和博士学位(信息安全)。主要研究领域是系统安全和应用密码学,研究成果发表在IEEE S&PNDSSESORICSCHESSRDSACNSISCSecureCommICICS等国际会议和TKDETIFS等重要期刊。

Bookmark the permalink.

Comments are closed.