信息安全 -- 什么是侧信道攻击

在经典大盗影片中,我们常看到这样的场景:

一名黑衣大盗屏息凝神,手指轻旋保险箱的密码锁,耳贴金属门板,通过锁芯转动的细微"咔嗒"声判断密码组合。

这种看似夸张的手法,实则是现实中侧信道攻击(Side-Channel Attack)​的雏形------攻击者不直接破解密码算法,而是通过分析设备运行时泄漏的物理信号(如功耗、电磁波、时间差等)间接获取密钥等敏感资产。

好了,全文完 -- 才怪。

但是上面这个场景就是侧信道攻击的简化版。

所谓侧信道的侧,指的就是一些可以被测量或者收集的额外信息。

还是以盗贼旋转密码锁为例,不管是盗贼还是保险箱主人,打开保险箱都需要输入密码,而输入密码这个动作本身就会传递一些信息,例如旋转时发出的声音、不同数字摩擦的力度,这些可能都会作为被收集对象用于分析,最终得出正确的密码。

那回到芯片、计算机等电子设备来说,只要上电运行,就势必会产生不同热量、电磁波、功耗甚至声音等等。

图片来源:《密码实现安全形式化验证发展现状与展望》

那我们让加密软硬件运行时,同样会产生这样的信息,这些信息被收集来分析作为攻击手段,这就是侧信道攻击。


从以上我们可以看到,侧信道泄露的信息往往是执行动作本身无意识透露的信息,比如说有人正常走路,但另一个人通过他走路的动作、速度来推断他要准备干什么、甚至他的个性等。

所以,侧信道攻击就可以根据不同的物理信号进行分类,常见的有如下五类:

  • 时间攻击(Timing Attack)​​

时间攻击就是测量算法执行的时间差异。例如,RSA处理"模乘"与"模约简"等操作耗时不同,攻击者可通过时间差反推密钥。

  • ​功耗分析攻击(Power Analysis Attack)​​

​利用电路执行不同操作时功耗波动不同。例如,AES加密中处理不同数据的功耗差异可泄露密钥,​典型手段​包括简单功耗分析(SPA)直接观察波形特征,差分功耗分析(DPA)通过统计方法从噪声中提取信号。

  • ​电磁攻击(Electromagnetic Attack)​​

​芯片运行时会释放与数据处理相关的电磁辐射。攻击者使用探头远程捕捉信号,甚至隔墙实施攻击。

  • ​缓存攻击(Cache Attack)​​

​该攻击主要是利用共享缓存资源的时间差异推测敏感信息。例如,云计算中多个虚拟机共享缓存,攻击者通过监测缓存访问时间窃取数据

  • ​故障注入攻击(Fault Attack)​​

​通过人为制造电压波动、激光照射等方式干扰设备,诱导其输出错误信息以提取密钥或者绕过安全机制。


前面我们提到,由于侧信道本身不可避免(例如功耗、辐射),要想做好防护就必须专项治理。

  • 例如在密码软硬件运行时加入随机噪声或虚拟操作,掩盖信号中的规律性,增加攻击者获取信息的难度;

  • 在设计时尽可能考虑操作执行时间均匀;

  • 通过增加电磁屏蔽来减少电磁辐射。

侧信道攻击的概念就简单介绍到这,具体如何实现,我再研究研究和大家分享。

好,这是真的全文完。

相关推荐
中微极客1 小时前
多智能体编排实战:CrewAI vs AutoGen(2026版)
大数据·网络·人工智能
小王C语言1 小时前
【3. 基于 Vibe Coding 的 OJ 平台】. 构建仓库、环境准备、需求梳理、安装依赖
网络·c++
新手unity自用笔记1 小时前
unity网络基础_1
网络·unity·游戏引擎
小王C语言2 小时前
【8.进行接口测试】:通过 curl 进行接口自动化测试 / 通过 python 程序进行接口自动化测试
网络·c++
一条大祥脚2 小时前
26杭电暑期第三场 DP|费用流|分解质因子|数论|贪心|图论|期望|无穷级数
网络·图论·网络流·无穷级数·费用流
早睡早起身体好1232 小时前
为什么 Network 中会出现两个同名请求?——CORS 预检请求学习笔记
网络·笔记·学习·网络安全
daad7773 小时前
记录matlab状态机demo
java·网络·matlab
paopaokaka_luck3 小时前
基于springboot3+vue3的智能文库平台(AI智能搜索、AI智能汇总、实时在线状态展示、多格式文档预览与富文本编辑、Echarts图形化分析)
前端·网络·spring boot·网络协议·echarts
Yang96114 小时前
告别“慢工出细活”:如何平衡光纤熔接的速度与精度?
网络
Nebula_g5 小时前
Java实现本地Socket通信(四)
网络