志存高遠

侧信道安全

侧信道攻击

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

现代基于密码学的核心是密钥,侧信道攻击能够窃取密钥,从而利用密钥实现更大业务影响。

功耗或能量侧信道

基于硬件设备在执行不同操作时,其能量消耗会有不同。通过分析设备在执行加密或解密等特定操作时的,收集硬件设备(计算机/移动设备/单片机等)的电流信息,通过精准测量和分析这些变化,攻击者能够推断出密钥等关键信息。

AES、RSA执行加解密时的功耗曲线

解决方案:

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

电压/电磁故障注入

通过在设备运行过程中注入电压或电磁,影响设备正常运行,从而获取设备处理的密钥等敏感信息。

电压故障注入是通过突然改变设备的电源电压,让设备计算错误或内存错误,可能导致设备泄漏其正在处理的数据。

利用 Modchip 通过故障注入绕过 SpaceX 的 Starlink 星链设备的安全引导机制,实现引导自制固件。

电磁故障注入是一种低功耗的电磁脉冲攻击,通过降低信号强度,通过在设备附近产生强烈的电磁脉冲,使其刚好干扰设备正常运行(电路短路等)却又不会让设备损坏,实现让设备的内存数据被改变或丢失。

基于特斯拉线圈原理,使用自制设备不接触灯泡时能点亮灯泡。

基于电磁故障注入让门锁的主控 MCU 逻辑异常,实现无钥匙开门锁

解决方案:

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

脉冲/时钟毛刺攻击

处理器正常执行指令依赖时钟信号,如果对处理器时钟进行干扰(比如毛刺尖峰),实现干扰正常的指令执行(比如绕过 Secureboot 固件校验、读保护位校验等安全功能)。

例:任天堂 Switch 游戏机的硬件破解

例:电压毛刺注入,实现对开启芯片(AirTag)读保护的MCU固件读取。

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

随机数攻击

通过找出随机数生成器依赖信息,就能够预测随机数生成,实现加解密。

很多不带随机数发生器的 MCU 设备通过采集环境信息来生成随机数,可以通过控制这些环境信息实现控制随机数的随机性。

解决方案:

  • 使用基于硬件的真随机数生成器。
  • 使用加密安全的伪随机数生成器。
  • 使用多个随机种子。比如用户输入、系统时间、硬件状态、物理噪声等随机源作为生成随机数的种子。

激光注入

通过将激光指向设备的特定部分,引起设备的运行故障,从而获取设备处理的密钥等敏感信息。

激光窃听

检测玻璃震动信息的正反射式激光强度检测窃听技术

穿透玻璃检测物品震动的基于多普勒干涉式激光频率或相位变化的窃听技术

基于散斑探测的图像处理窃听技术

志存高遠
Loading