Skip to main content
QUICK REVIEW

[论文解读] Iodine: Verifying Constant-Time Execution of Hardware

Klaus von Gleissenthall, Rami Gökhan Kıcı|arXiv (Cornell University)|Oct 7, 2019
Security and Verification in Computing被引用 16
一句话总结

Iodine 是一个形式化验证框架,通过分析信号从源到汇的时钟精确影响集,确保硬件设计实现恒定时间执行。它通过一种新颖的活性等价性方法,将恒定时间验证简化为断言有效性检查,从而实现快速、精确的开源硬件验证,仅需极少开发工作量,并在浮点单元和RSA模块中发现了两个真实的时序侧信道。

ABSTRACT

To be secure, cryptographic algorithms crucially rely on the underlying hardware to avoid inadvertent leakage of secrets through timing side channels. Unfortunately, such timing channels are ubiquitous in modern hardware, due to its labyrinthine fast-paths and optimizations. A promising way to avoid timing vulnerabilities is to devise --- and verify --- conditions under which a hardware design is free of timing variability, i.e., executes in constant-time. In this paper, we present Iodine: a clock precise, constant-time approach to eliminating timing side channels in hardware. Iodine succeeds in verifying various open source hardware designs in seconds and with little developer effort. Iodine also discovered two constant-time violations: one in a floating-point unit and another one in an RSA encryption module.

研究动机与目标

  • 为解决现代硬件中时序侧信道这一关键问题,尽管其依赖于恒定时间执行,但此类侧信道仍会破坏对加密操作的信任。
  • 为并发、长期运行的硬件电路形式化定义适合的恒定时间执行概念,其中传统基于软件的方法不适用。
  • 在无需架构更改或划分为安全等级的前提下,实现对现有硬件设计的高效验证。
  • 通过在使用假设下验证恒定时间行为,检测开源硬件中真实存在的时序漏洞,例如在浮点单元和密码学单元中的漏洞。

提出的方法

  • Iodine 通过影响集定义恒定时间执行——即源值对汇计算产生贡献的周期,确保执行时间与秘密输入无关。
  • 它引入了 t-活跃值(t-live values)的概念,若某值在周期 t 受到输入影响,则称其为 t-活跃值,从而实现周期级分析。
  • 该框架将恒定时间验证简化为活性等价性检查:在相同使用假设下,两次执行必须为汇分配相同的 t-活跃值。
  • 它基于竞争自由的产物构造,避免完整自复合,仅聚焦于相关执行路径,从而提升可扩展性。
  • Iodine 将验证过程转化为标准断言检查,使用 SMT 求解器,支持与现有形式化验证流程的集成。
  • 它支持使用假设(如无除法)以细化验证,避免在 SIMD 或浮点单元等复杂设计中产生误报。

实验结果

研究问题

  • RQ1如何为并发、长期运行的硬件电路正式定义恒定时间执行,其中传统软件的时序概念不适用?
  • RQ2影响集能否精确捕捉硬件中的时序变化性,而独立于数据、标志或并发干扰?
  • RQ3是否可能在不使用完整自复合或信息流类型系统的情况下,将恒定时间验证简化为标准断言检查?
  • RQ4此类验证框架在现有硬件设计中检测真实世界时序侧信道的效率如何?
  • RQ5该框架是否可应用于密码加速器和通用单元(如 FPU)而无需架构修改?

主要发现

  • Iodine 在仅需极少开发者投入的情况下,于数秒内成功验证了多个开源硬件设计,证明了其在实际应用中的可行性。
  • 该框架发现了两个此前未知的恒定时间违规:一个存在于浮点乘法器中,另一个存在于RSA加密模块中。
  • Iodine 基于影响集的定义实现了精确的时钟精确验证,无需无条件恒定时间或安全等级划分。
  • 活性等价性方法避免了完整自复合带来的可扩展性问题,使验证在复杂电路中高效且实用。
  • 该方法与现有信息流和类型化方法互补,因其专注于时钟精确的时序,而非一般的信息流安全。
  • 该框架依赖使用假设,使其能避免在 FPU 等单元中产生误报,因为这些单元在约束条件下本就允许时序变化。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。