就在不久前,从严加隔离的计算机获取信息还需要精密设备。在本人撰写的专栏文章《严加隔离的计算机不再安全》中,美国乔治亚理工学院的研究人员解释了仅仅使用自受攻击计算机发出来的杂散的电磁边信道信号,从计算机获取击键内容有多简单。
特拉维夫大学的几位研究人员:Daniel Genkin、Lev Pachmanov、Itamar Pipman和Eran Tromer一致认为,这个过程很简单。不过,科学家们提出了更高的要求,想弄清楚如何使用边信道攻击技术,获取复杂的加密数据。
图A:特拉维夫大学的几位研究人员制作了这个独立式的PITA接收器。
具体过程
在《使用无线电从PC窃取密钥:针对窗口取幂运算发动低成本的电磁攻击》文章中,研究人员解释了他们如何通过在计算机中执行的运算里面获取关于秘密值的信息,从而破解数学安全的加密方案的解密密钥。
团队撰文道:“我们对RSA和ElGamal算法方案实施了新的边信道攻击,这些算法方案使用流行的滑动窗口或固定窗口(m-ary)模幂运算算法。即使攻击GHz级处理器时,攻击也能使用低测量带宽(低于2 MHz的载波附近100 kHz以下的频带),获取解密密钥。”
要是那说明不了太多,这可能有帮助:研究人员测量从计算机发出来的边信道信号,只要短短几秒,就能从GnuPG获取密钥。研究人员补充说:“测量成本很便宜、很小巧,使用随处可得的组件。”运行这个道理,该大学研究团队设计出了下列攻击。
软件定义无线电(SDR)攻击:这包括捕获边信道信号的屏蔽环形天线,然后安装在笔记本电脑上的SDR程序记录信号。
便携式跟踪采集仪器(PITA)攻击:研究人员使用可用的电子产品和食品(谁说学术人士就没有幽默感?),制作了图A中所示的独立式接收器。PITA接收器有两种模式:在线模式和自主模式。
•在线模式:PITA通过无线网络,连接到附近的观测站,提供了实时流式传输数字化信号的功能。
•自主模式:类似在线模式,PITA先测量数字化信号,然后将它记录到内部microSD卡上,以便以后通过物理访问或通过无线网络来获取。
消费者无线电攻击:为了设计出一种成本还要低的攻击手法,该团队充分利用了已知的这一点:边信道信号在1.7 MHz附近的载波频率调制,这在AM无线电频段范围内。作者解释:“我们使用了普通的消费级无线电接收器来采集所需的信号,更换了磁探针和SDR接收器。然后,我们将该接收器连接到宏达电EVO 4G智能手机的麦克风输入端,以此记录信号。”
密码分析方法
这时候,神奇的一幕出现了。我得承认,要是阐述研究人员的做法将会是帮倒忙;我觉得,最好还是采用他们的密码分析描述:
“我们的攻击利用了这一事实,即在滑动窗口或固定窗口取幂例程中,可以部分预测密文幂表里面的值。通过制作一个合适的明文,攻击者就能让特定表项处的值具有一种特定的结构。”
“这种结构,结合GnuPG的基本乘法例程里面深处的控制流程方面的细微差异,只要出现乘以这个结构化值,就会引起泄漏信号出现显著变化。这让攻击者得以了解秘密指数里面的所有位置;在这些位置,特定表项由滑动窗口中的位模式来选择。针对所有表索引重复这个过程就会泄露密钥。”
图B是张光谱图,显示了测得的幂与时间和频率有关,通过记录GnuPG,破解了使用不同的随机生成的RSA密钥的同一密文。研究团队的解释如下:
“很容易看出,每个解密的起始位置和结束位置(黄色箭头)。请注意每个解密运算中间的变化,覆盖几个频带。这是由于,在内部,每个GnuPG RSA解密都先取幂模秘密素数p,然后取幂模秘密素数q,我们就能看出这些阶段之间的差异。”
“这每一对看起来不一样,因为每个解密都使用不同的密钥。所以在这个例子中,只要观测解密过程中发出来的电磁信号,使用这个图中的机制,我们就能辨别不同的秘密密钥。”
图B:光谱图
有啥方法可以防止泄漏吗?
尽管使用不便,但有一种解决办法就是在法拉第罩中(Faraday cage)操作计算机,法拉第罩可以阻止任何杂散的信号逃逸。文章提到:“可以改动密码软件,还可以运用算法手段,让发出来的信号对攻击者来说用处不大。这些方法确保了算法行为与它收到的输入无关。”
令人关注的是,这篇研究文章处理了边信道攻击方面的一个问题:“这是个硬件问题,那么何不修复设备?”
大致来说,研究人员提到:发出来的信号强度非常微弱,因而防止信号不切实际,原因在于:
•任何残余的泄漏信号都常常可以由合适的操作加以放大,就像我们在选择明文攻击中所做的那样;
•另外,信号泄漏常常是提升性能的必要机制不可避免的副作用。
另外值得关注的是,美国国家标准和技术研究所(NIST)认为,抵御边信道攻击的能力是考虑其SHA-3算法的一个重要的评估因素。
英文:Computer-stored encryption keys are not safe from side-channel attacks