← 最新论文
💻 计算机科学

Comparative Timing Characterization of Early-Exit and Fixed-Work Secret Comparisons on ESP32 and ESP8266

本文量化了在 ESP32 和 ESP8266 微控制器上,16 字节早期退出式密钥比较相对于固定工作量替代方案的特定实现时序泄漏,证明了匹配前缀长度会显著增加这些平台上的执行时间,而固定工作量例程则保持恒定时序,尽管该研究并未证实二进制层面的恒定时间行为或远程可利用性。

原作者: Abrar Sobhan

发布于 2026-11-09
📖 1 分钟阅读☕ 轻松阅读

原作者: Abrar Sobhan

原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 ✨ 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

在计算机安全的隐秘世界中,存在着一种与破锁或窃取钥匙无关的无声危险。这关乎时间。当计算机检查一个秘密代码是否与密码匹配时,它通常会逐个比较这两个字符字符串。如果第一个字母错误,标准的程序会立即停止并返回“否”。如果前十个字母正确而第十一个字母错误,程序会继续运行,直到找到那个错误。这种计算机思考方式上的差异可能会造成泄露。一名熟练的观察者通过观察响应时间的长短,理论上可以计算出时间,从而得知在出错之前有多少个字母是正确的。这被称为计时侧信道(timing side channel),这是一种通过倾听时钟来窃取信息,而非通过破解代码的方式。几十年来,安全专家一直警告说,软件必须被编写成无论错误发生在何处,执行时间都完全相同,这种做法被称为常数时间编程(constant-time programming)。但在驱动从智能家居设备到简单传感器等各种设备的微型、廉价芯片上,这些规则是否在现实世界中依然成立,或者硬件本身是否会引入新的变数,并不总是明确的。

最近的一项研究旨在测试这两个世界上最常见的微芯片——ESP32和ESP8266——在现实中的表现。这些芯片是无数廉价联网设备背后的核心大脑。研究人员独自一人构建了两种让这些芯片比较秘密16字节代码的方法。第一种方法是标准的、存在漏洞的方法:它会在发现不匹配时立即停止。第二种方法是“固定工作量”(fixed-work)方法,旨在实现安全:它会强制芯片检查每一个字节的输入,无论错误出现在多么早的位置,从而确保总时长保持不变。为了观察这些方法的行为,研究人员向这些芯片发送了数千个测试代码。每个测试代码都经过精心设计,使其在开始部分的特定长度内与秘密密码匹配——有时是一个字母都不匹配,有时是全部十六个字母都匹配——然后再发生偏差。芯片测量其自身的内部时钟周期,以记录每次比较究竟耗时多久,并针对每种可能的起始长度重复该过程数百次。

结果清晰地描绘了标准方法存在的脆弱性。在速度更快的ESP32芯片上,每当测试代码在出错前多匹配一个字母时,芯片就会恰好多花四十个时钟周期来完成任务。在较慢的ESP8266上,延迟为每个额外匹配字母二十五个周期。这创造了一个完美且可预测的时间阶梯。如果代码匹配零个字母,芯片完成得很快;如果匹配了十五个,它则会耗费显著更长的时间。事实上,这种计时是非常一致的,以至于在许多测试组中,三百次尝试中的每一次都产生了完全相同的时钟计数。对于ESP32而言,仅凭一次测量所用的时间,就足以让研究人员准确判断出在该次会话中匹配了多少个字母。这证实了标准的“提前停止”方法会直接通过运行时间泄露信息。

相比之下,固定工作量方法表现得正如安全专家所希望的那样。当研究人员使用强制芯片检查所有十六个字节的版本时,耗时并不随匹配字母的数量而改变。无论测试代码是在第一个字母还是最后一个字母处失败,芯片处理数据所花费的时间都是相同的。中位数时间在所有场景下都保持平稳。然而,研究也揭示了这种安全性所带来的代价。固定工作量方法总是比脆弱的方法耗时更长,尤其是在测试代码立即失败时。在ESP32上,即使第一个字母错误,安全方法也需要近八百个周期,而脆弱的方法在不到七十个周期内就完成了。安全方法本质上是通过浪费时间去检查剩余的字母,以确保总持续时间保持恒定。这种速度与安全之间的权衡是嵌入式系统中的基本现实,在这些系统中,每一次额外的处理周期都会消耗电池电量或降低设备速度。

这项研究还发现了这些芯片在压力下表现出的一些意想不到的特性。虽然平均时间是稳定的,但仍有少部分单独的测量值明显高于其他数值,甚至跳升至预期时间的近两倍或三倍。这些峰值主要发生在芯片被允许处理正常的后台中断,而非处于隔离静止状态时。这表明,尽管安全代码的核心逻辑有效,但芯片周围的环境仍可能导致偶尔的、不可预测的延迟。研究人员指出,这些测量值是直接在芯片自身的内存中进行的,而非通过网络,这意味着虽然计时泄露在设备上是真实且可测量的,但这并不自动证明黑客可以从互联网另一端窃取密码。现实世界连接中的噪声可能会掩盖这些细微的差异。

最终,这项研究为这些特定且广泛使用的硬件提供了如何出现计时泄露的具体地图。它表明,仅仅是提前停止比较的行为,就会产生一个精确且可测量的信号,从而揭示秘密。它还证明了通过简单的代码更改——即强制计算机无论结果如何都完成任务——可以消除该信号,尽管这会带来性能损失。这些发现提醒我们,在嵌入式安全领域,程序的编写方式与它所使用的数学算法同样重要。这些芯片完全按照指令执行,但也正因如此,它们向任何倾听时钟的人低声诉说着秘密。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →