旁注攻击(Side-channel attack)是一种利用物理信息泄露来破解加密系统的方法,如通过分析设备功耗、电磁辐射或声音等。
旁注攻击(SideChannel Attack)
定义
旁注攻击是一类利用密码系统在处理过程中产生的非直接信息(例如时间、功率消耗、电磁泄漏、声音等),来推断出敏感信息(如密钥)的攻击手段,与传统的密码分析方法不同,旁注攻击并不直接针对加密算法的理论弱点,而是利用实际实现时的物理或逻辑漏洞。
类型
1、时序攻击:通过分析加密设备完成特定操作所需的时间来获取信息。
2、能量分析:通过测量设备在执行加密运算时的能耗变化来推断密钥。
3、电磁泄露攻击:监测设备产生的电磁辐射以获取敏感信息。
4、声学攻击:借助麦克风捕捉设备在处理数据时产生的声音波动。
5、故障攻击:故意引发设备错误,通过异常输出揭露加密过程中的信息。
6、缓存攻击:利用处理器缓存的访问模式来获取密钥或其他敏感数据。
7、冷启动攻击:从断电后的物理内存中读取剩余数据。
防御措施
恒定时间实现:确保所有操作无论输入如何都消耗相同的时间。
随机延时:在关键操作中引入随机的时间延迟。
屏蔽:使用特殊硬件设计来防止能量和电磁泄露。
声音隔离:减少设备发出的声音或者使用噪声生成器掩盖。
错误检测与纠正:引入机制以检测并修正由故障引起的错误。
清除缓存:在使用敏感数据之前后清除CPU缓存。
加密内存:确保物理内存中的数据即使在掉电后也保持加密状态。
相关问题与解答
Q1: 什么是能量分析攻击?
A1: 能量分析攻击是一种旁注攻击,攻击者通过测量加密设备在执行运算时的能耗,分析这些能量消耗的模式,从而推断出设备正在处理的数据,尤其是密钥信息,这种攻击主要针对那些能量消耗与处理数据相关的设备。
Q2: 如何有效防御时序攻击?
A2: 有效防御时序攻击的方法之一是实施恒定时间的操作,这意味着无论进行哪种计算,系统都应该保证所有操作的执行时间相同,引入随机延时也可以增加攻击者分析的难度,因为这使得真实操作时间与随机延时混合在一起,难以区分。