属于网安的隔山打牛-浅谈侧信道攻击

网络安全的方向多种多样,但是在我心目中最有意思的当属侧信道分析方法了,也最符合我小时候幻想的黑客的行为,今天就尽量通俗的介绍一下侧信道分析的原理和应用。

首先来解释一下什么是侧信道分析,其核心思想是通过设备或者程序运行时泄露的信息来进行分析,侧信道主要存在于信息发送方和信息接受方之间,比如我们使用手机通讯软件进行聊天,传输过程是加密的,也就是传递消息的信道,但如果聊天的两个人手机被肩窥(乘扶梯、排队等场景),那么就会存在信息泄漏的风险,这个泄露的途径就是侧信道,也叫边缘信道。

举个简单的例子,在古代发生战争的时候,双方的参战人数都是保密的,有经验的将军观察对方生火做饭的炊烟数量来估计参战人数,这就属于侧信道的基础范畴。

再举一个例子,我们想知道李华(一个喜欢喝水的人)烧水的时间,我们不需要直接给李华的房间内安装监控,只需要观察他房间的电力功率检测设备,当功率明显上升时,就可以推测出大概率他在使用热水壶烧水。

同样的,当我们面前有一台正在执行加密算法的电脑时,我们可以利用计算设备泄露的物理信息,如功耗、时间、电磁辐射、声波等,来推测内部的秘密数据(如密钥),这个过程就是侧信道攻击。

假设现在有一台完全没有接通任何网络的主机,如何监控它的行为或者利用它向外界偷偷传递信息呢?我们注意到,电脑硬盘的磁头在接触不同部位读写数据时,发出的噪音不同,那么就可以利用读写磁盘时发出的噪音来传递信息,例如将某种噪音记为『1』,再讲某种噪音记为『0』,那么通过预先编写的程序就可以通过特定硬盘读写使磁头传递特殊编码的信息。

磁盘与磁头

还有一种光学侧信道的方法,利用轻量级反光物体表面的气压波动去恢复物体附近的声音。具体来说,声波会导致气压波动,造成反光物振动并反射(强弱不同的)光线,光线的变化某种程度上就反映了声音的内容。

如果你在需要监听的人附近放一个捏扁的易拉罐,在很远的地方用望远镜+光电二极管(一种将光转换为电压的传感器)照射这个反光物体,分析传感器输出的电压,获取反光物所反射光线的实时波动数据,就可以实现窃听的目的。

对于密码学中的侧信道,假设我正在电脑中运行AES加密(一种对称加密)的程序,这个时候监控电脑CPU的功耗,当运行到特定步骤的时候,功耗会出现明显变化,且计算不同的数据功耗也不同,在每次设备运行时,都记录下一个能量痕迹,运行AES运算N次,采集每一次运行的功耗曲线,每条曲线有M个功耗点,采集每一次运行的功耗曲线,每条曲线有M个功耗点(每一行为条功耗曲线,每 一列对应不同时刻的功耗点)如下矩阵:

功耗矩阵

接下来穷举猜测分段密钥k,并计算猜测的中间结果的汉明重量,与之前采集的多条功率曲线进行差异化分析:

AES功耗采波

计算猜测密钥的汉明重量与对应能量迹之间的相关系数,若相关系数越大,则说明他们之间的相关性越强,若数据中某一猜测密钥对应的相关系数相比于其他相关系数要大的多,就可以说明这一猜测密钥是正确的:

所以,危险无处不在,你根本并不知道你的每一个动作泄露了多少信息,也许以往为了防止窃听只是关闭麦克风和摄像头/断开互联网这么简单,但是侧信道让监听和密钥破解更加复杂化了。

更多游戏资讯请关注:电玩帮游戏资讯专区

电玩帮图文攻略 www.vgover.com