嗅探密钥 - 新的旁路密码操作类型

2014-04-01

介绍
在最近发布的论文中,Adi Shamir和其他人描述了一个新的方法 – 当在执行密码操作时,可以利用处理器发出的噪音萃取RSA密钥[1]。这篇论文的重大意义在于,它已经证明了可以使用其他的尚未考虑过的方法用于从计算机系统中提取关键信息的能力。

另一方面,利用计算机系统电力消耗的旁路方式来萃取密钥多年来已经众所周知[2]。简单的,电源差异分析现在通常用于评估智能卡芯片以确保他们不在某些类型的旁路分析中泄露密钥。电磁辐射也已经成功地被用作一个用于萃取密钥的原型[3]。同样,时隙攻击也已经非常成功的作为一种旁路方法[4]。

新的旁路方法
这些成果鼓舞了atsec的研究者寻找其他潜在的并且目前尚未被考虑过的旁路原型。其中,我们重点关注了电源分析旁路方法中的侧面影响,直到目前,这种方法在研究领域是被完全忽视了的:电源消耗的差异也会导致计算机系统产生热量差异。然而,直接测量热量需要相当的精度,导致测量过程非常复杂,我们采用了另一种侧面影响分析:热量的差异会导致物质挥发的差异,这种方式比热量差异更容易测量。从某种层度上说,你可以说我们已经“嗅探到了密钥!”

使用这个旁路方法萃取密钥
当然探测这些挥发的差异对于人类的鼻子来说太细微而且变化太快。和Adi Shamir的声噪相关的旁路办法一样,我们的旁路方法也需要专门的设备来萃取挥发中的变化。在我们的实例中,我们使用了质量-分光仪(“嗅探器”)来探测这些变化。我们使用了和Shamir类似的测试设置(举例来说,它也用于测试GnuPG RSA),但我们使用了质量-分光仪作为传感器,而Shamir使用了麦克风。复杂的部分在于分析要寻找的挥发类型是什么。校对整个系统,我们对CPU喷一些(好闻的)芬芳物,用于确保有效数量的已知类型的分子要被挥发。在一段时间内,我们使用一个已知密钥来测量这些分子的分布,然后当操作中挥发物被捕捉到时在误差重量之间执行修正。结果这种校准并没有我们原来想的那样容易。计算机系统的风扇引入了重要影响的紊流,导致测量到的数据增加了大量的“杂讯”。我们因此不得不把这些紊流考虑在内并且为Navier-Stokes差异方程式解决初始值问题。这样让我们消除了(在一个极大范围内)风扇在我们的数学模型中的影响。

成功校准之后,我们尝试不使用现有的知识来萃取RSA密钥。数次失败之后,我们改善了分析软件,我们能够在不到1小时内消耗200毫升的芬芳物来萃取一个1024 bit的RSA密钥。

更进一步的工作
到目前为止,我们只使用了一个单CPU(一个 Intel i7 处理器)以及一个专用芬芳物[4711]。我们现在正尝试使用其他CPUs以及其他芬芳物来获得更常规的结果。第一步,我们通过使用bullshit [5]代替芬芳物可以极大地减少密钥萃取时间,但是我们团队在做这个尝试的时候不得不离开房间。并且实验之后清洁计算机以及分光仪的时间是我们认为不可接受的。另外一个尝试,是我们使用酒精代替芬芳物,但是对团队生产率的负面影响使得我们停止使用这种物质。我们团队中的女士们现在正在尝试使用不同的芬芳物,闻起来可以比feces更好些,同时也能保持较少的萃取密钥的时间。

参考文献
[1] Daniel Genkin, Adi Shamir, Eran Tromer: RSA Key Extraction via Low-Bandwidth Acoustic Cryptoanalysis; December 18, 2013
[2] Paul Kocher, Joshua Jaffe, Benjamin Jun: Differential Power Analysis; Cryptographic Research
[3] Karine Gandolfi, Christophe Mourtel, Francis Olivier: Electromagnetic Analysis: Concrete Results
[4] Jean-Jacques Quisquater, Francois Koeune, Werner Schindler: Unleashing the Full Power of Timing Attacks
[5] Harry G. Frankfurt: On Bullshit; Princeton University Press; 1st edition January 2005
[4711] 4711