信息安全 -- 什么是侧信道攻击
在经典大盗影片中,我们常看到这样的场景:
一名黑衣大盗屏息凝神,手指轻旋保险箱的密码锁,耳贴金属门板,通过锁芯转动的细微“咔嗒”声判断密码组合。
这种看似夸张的手法,实则是现实中侧信道攻击(Side-Channel Attack)的雏形——攻击者不直接破解密码算法,而是通过分析设备运行时泄漏的物理信号(如功耗、电磁波、时间差等)间接获取密钥等敏感资产。
好了,全文完 -- 才怪。
但是上面这个场景就是侧信道攻击的简化版。
所谓侧信道的侧,指的就是一些可以被测量或者收集的额外信息。
还是以盗贼旋转密码锁为例,不管是盗贼还是保险箱主人,打开保险箱都需要输入密码,而输入密码这个动作本身就会传递一些信息,例如旋转时发出的声音、不同数字摩擦的力度,这些可能都会作为被收集对象用于分析,最终得出正确的密码。
那回到芯片、计算机等电子设备来说,只要上电运行,就势必会产生不同热量、电磁波、功耗甚至声音等等。
图片来源:《密码实现安全形式化验证发展现状与展望》
那我们让加密软硬件运行时,同样会产生这样的信息,这些信息被收集来分析作为攻击手段,这就是侧信道攻击。
从以上我们可以看到,侧信道泄露的信息往往是执行动作本身无意识透露的信息,比如说有人正常走路,但另一个人通过他走路的动作、速度来推断他要准备干什么、甚至他的个性等。
所以,侧信道攻击就可以根据不同的物理信号进行分类,常见的有如下五类:
-
时间攻击(Timing Attack)
时间攻击就是测量算法执行的时间差异。例如,RSA处理“模乘”与“模约简”等操作耗时不同,攻击者可通过时间差反推密钥。
-
功耗分析攻击(Power Analysis Attack)
利用电路执行不同操作时功耗波动不同。例如,AES加密中处理不同数据的功耗差异可泄露密钥,典型手段包括简单功耗分析(SPA)直接观察波形特征,差分功耗分析(DPA)通过统计方法从噪声中提取信号。
-
电磁攻击(Electromagnetic Attack)
芯片运行时会释放与数据处理相关的电磁辐射。攻击者使用探头远程捕捉信号,甚至隔墙实施攻击。
-
缓存攻击(Cache Attack)
该攻击主要是利用共享缓存资源的时间差异推测敏感信息。例如,云计算中多个虚拟机共享缓存,攻击者通过监测缓存访问时间窃取数据
-
故障注入攻击(Fault Attack)
通过人为制造电压波动、激光照射等方式干扰设备,诱导其输出错误信息以提取密钥或者绕过安全机制。
前面我们提到,由于侧信道本身不可避免(例如功耗、辐射),要想做好防护就必须专项治理。
-
例如在密码软硬件运行时加入随机噪声或虚拟操作,掩盖信号中的规律性,增加攻击者获取信息的难度;
-
在设计时尽可能考虑操作执行时间均匀;
-
通过增加电磁屏蔽来减少电磁辐射。
侧信道攻击的概念就简单介绍到这,具体如何实现,我再研究研究和大家分享。
好,这是真的全文完。