跳到主要内容

侧信道安全

侧信道攻击绕过了加密算法本身,通过物理实现层面的信息泄露来推导密钥。 无论加密算法在数学上多么坚固,运行该算法的硬件在物理世界中总会产生功耗变化、电磁辐射、时延差异等可观测的副产品,这些副产品携带着与运算数据相关的信息,可被攻击者精确测量并反推出密钥。

侧信道攻击

侧信道攻击利用计算机运转时在物理世界产生的各种能量信息变化来提取目标信息。 比如电脑玩游戏时风扇转速会很高,浏览文档时风扇转速就很低,利用风扇转速就能大概推导是否在玩游戏。这一原理的精确化应用,就是从功耗能量、时延、声音、震动、光学、电磁辐射等物理量中提取密钥。

现代密码学的核心是密钥,侧信道攻击能够窃取密钥,从而使密码学保护形同虚设。

功耗或能量侧信道

硬件设备在处理不同数据时的能量消耗存在细微差异,这一差异直接泄露了正在处理的数据内容。 通过收集硬件设备(计算机/移动设备/单片机等)在执行加密或解密操作时的电流信息,对 AES、RSA 等算法执行时的功耗曲线进行精准测量和统计分析,攻击者能够推断出密钥等关键信息。

解决方案:

  • 随机功耗。执行各种操作时,设备的功耗一直存在随机变化。
  • 使用防侧信道攻击的加密算法。这些算法会在处理数据时保持功耗一致。

电压/电磁故障注入

故障注入通过破坏设备的正常运行环境,迫使设备在异常状态下泄露或错误处理敏感数据。 电压故障注入通过突然改变电源电压让设备产生计算错误或内存错误,可能导致设备泄漏正在处理的数据;利用 Modchip 通过故障注入可以绕过 SpaceX Starlink 设备的安全引导机制,引导自制固件。

电磁故障注入在不接触设备的情况下完成攻击,隐蔽性更强。 在设备附近产生精准的电磁脉冲,强度刚好干扰设备正常运行(触发电路短路等)而不损坏设备,使内存数据被改变或丢失。基于这一原理,可以让门锁主控 MCU 逻辑异常,实现无钥匙开锁。

解决方案:

  • 抗电磁的硬件:硬件设备设计时选用稳定性更高、滤波性能更好的电源或电磁屏蔽。
  • 错误检测和纠正:设计能够检测和纠正由电压或电磁故障引起的错误。
  • 使用防故障注入的软件:通过使用冗余计算或检测异常行为。

脉冲/时钟毛刺攻击

处理器执行指令依赖稳定的时钟信号,在时钟信号上注入毛刺尖峰可以跳过特定指令的执行,绕过安全校验逻辑。 安全引导校验、读保护位校验等安全功能本质上是一条或几条判断指令,时钟毛刺恰好在这些指令执行时注入,可以使处理器跳过或错误执行这些判断,从而绕过固件完整性校验。任天堂 Switch 游戏机的硬件破解以及 AirTag 开启读保护后的 MCU 固件读取,都利用了这一原理。

解决方案:芯片设计阶段对时钟毛刺进行冗余设计,增强异常时时钟信号的稳定性。

随机数攻击

密码学安全的基础之一是不可预测的随机数,随机数生成器的弱点会导致整个加密体系崩溃。 通过找出随机数生成器所依赖的环境信息,就能预测随机数的生成结果,进而推导出密钥或会话令牌。很多不带硬件随机数发生器的 MCU 设备通过采集环境信息来生成随机数,控制这些环境信息即可控制随机数的随机性。

解决方案:

  • 使用基于硬件的真随机数生成器。
  • 使用加密安全的伪随机数生成器。
  • 使用多个随机种子,例如用户输入、系统时间、硬件状态、物理噪声等多个独立随机源共同参与种子生成。

激光注入

激光可以对芯片特定区域实施精准的能量注入,引发局部电路故障来获取设备正在处理的密钥等敏感信息。 通过将激光指向设备的特定部分,引起设备的运行故障,从而使设备在异常状态下泄露数据。

激光窃听

激光窃听利用物体表面的微振动将声音信号转换为可远距离采集的光学信号。 通过检测玻璃震动信息的正反射式激光强度变化,可以在不接触建筑的情况下还原室内对话;基于多普勒干涉的激光技术可以穿透玻璃检测物品震动;基于散斑探测的图像处理技术则提供了另一种窃听路径。