lcytms
发表于 2017-7-26 14:15:54
回到实践中,下图是本次攻击中使用的天线。
就是一根电缆外加胶带“随意”制作的环状天线。
lcytms
发表于 2017-7-26 14:17:41
攻击场景如下:
绿色的PCB是目标板,环状天线悬空固定在芯片上方,信号通过了外部的放大器和带通滤波器。
这些都是标准的工业器件,价格也不贵。
比较有意思的是采集设备,通常时域采集可以使用示波器,或者专用的数据记录仪,再不济也得用个USRP之类的软件无线电设备。
Fox-IT的专家一开始自然也是这么考虑的。
lcytms
发表于 2017-7-26 14:19:55
图中左边是专用的数据记录仪,傻大粗,价格倒是很美丽。
中间是USRP板子,这个板子的性能够用,价格也是一般的研究机构或者个(tu)人(hao)可以承受了。
有趣的部分在图中右边,这个标识为RTLSDR的USB小玩意玩无线电的小伙伴一定不陌生。
实际上国内也有卖,价格只需要几十到上百人民币。
本次研究表明,这么一个入门级的小东西已经完全可以用来完成攻击。
lcytms
发表于 2017-7-26 14:21:36
下图就是用上述硬件观测到的AES模式,可以清晰地看到I/O操作之间的AES加密流程,包括Key Schedule过程和14轮的操作,都是清晰可见。
lcytms
发表于 2017-7-26 14:23:20
接下来是分析过程,这方面,文献中并没有详细介绍。
但是DPA是一个比较标准的套路,他们也使用了业界标杆级的软件Riscure's Inspector,因为可以结合笔者的经验来谈一谈。
首先是信号预处理,这部分主要包括数字滤波,复信号转为实信号,当然也包括重采样,截取等步骤。
还有一个比较重要的过程是不同traces之间的对齐,比较简单的方法是使用滑动窗和相关性分析的方法,使得所有traces能够精确对准。
接下来就是真正的DPA了,这在Inspector软件中有标准的模块,反而不需要自己实现。
不过也有一些技巧,文献中就提到了一个。
为了快速验证采集到的电磁信号和设备功耗有直接关联,以及采集的位置是否正确。
使用输入的明文(或输出的密文)和采集的trace做一次相关性分析,并验证泄露模型是否有效。
这条相关性曲线说明了数据和信号之间确实有相关性的点,即确实可以从采集的信号中检测到数据。
lcytms
发表于 2017-7-26 14:24:40
接下来就是猜测密钥了,下图中相关性最高的猜测就是正确的密钥。
实验表明SmartFusion2中,泄露来自AHB,这是符合预期的。
因为AHB连接了Cortex-M3和片上RAM,查表操作就是M3内核访问RAM的一个操作。
相比于简单的MCU,这里还要考虑cache的影响,对于指令cache,使用Hamming distance模型即可,而SmartFusion2为了和FPGA模块连接,考虑到数据一致性而没有设置数据cache,这也算是简化了攻击者的工作。
以上操作在几厘米之内探测电磁信号就完成了整个攻击过程,硬件成本小于200欧元(约1500人民币)。
实际上这些硬件在国内购买的话,完全可能低于1000元。
在软件方面,Inspector是商业软件,需要支付授权费用。
好在核心算法早已是公开的,可以自己编写,也可以使用便宜的解决方案,所以这方面的费用不计在总价内也是可以理解的。
lcytms
发表于 2017-7-26 14:27:12
局限性
通过梳理整个攻击流程,我们可以总结出这类旁路攻击的先决条件,也是它的局限性所在。
(1)必须完全可以控制目标设备,给它输入不同的明文,控制其完成加密操作。
(2)必须可以接近到目标设备,因为要测量设备的物理属性(电磁特征),究竟距离多近需要看现场的电磁环境。
(3)必须熟悉目标设备使用的算法和实现细节。
算法本身比较容易确认,实现细节很多设备不会公开源代码,但是密码学算法通常有若干标准实现,不难猜测确定。
要完成攻击攻击,条件(1)是基础,所以不用担心邻居家可以只通过旁路攻击来破解你家的路由器了。
条件(2)主要看距离要多近,这里有一些深入的研究。
前文使用的手工制作的环状天线,工作距离只有若干厘米,稍远一点就淹没在噪声里了。
lcytms
发表于 2017-7-26 14:29:16
于是(早已坐不住的)天线工程师制造了下图的PCB天线,它的性能好很多,可惜为了降低尺(jia)寸(ge),它的工作频率是400MHz。
而SmarFusion2只能最高工作到142MHz。既然是研究,不如换个目标设备(就是这么任性),比如Xilinx的Pynq board就可以稳稳地跑在400MHz。
实践表明,依然可以用RTL-SDR完成攻击。
这次攻击可以在30厘米内完成,但是不要忘了需要采集400k条traces,而且是在一定电磁屏蔽的环境下完成的。
PCB天线
lcytms
发表于 2017-7-26 14:30:18
使用急救毯包裹的攻击环境
lcytms
发表于 2017-7-26 14:31:08
最后再冲击一下1米的距离,这需要在理想条件下完成。
首先,测试在微波暗室中进行,尽可能地排除了干扰信号。
天线方面使用了盘锥天线,并保证了测量子系统和加密子系统之间的电气隔离。
1米的距离很艰难的达到了,使用了240万条traces。
这个理想实验证明了,在足够好的条件下,1米的攻击距离是完全可行的。