five

Compiler-Introduced Constant-Time Violations

收藏
arXiv2025-07-08 更新2025-07-10 收录
下载链接:
https://zenodo.org/records/15207769
下载链接
链接失效反馈
官方服务:
资源简介:
该数据集包含由编译器引入的常量时间违规行为,旨在帮助开发者理解编译器如何破坏常量时间代码,并提出一种无需修改源代码或编译器即可防止编译器引入常量时间违规行为的有效方法。数据集包含152个二进制文件,使用Microwalk工具检测到的常量时间违规行为。该数据集可以帮助研究者更好地理解编译器优化对常量时间代码的影响,并提出更有效的防御措施。

This dataset contains constant-time violations introduced by compilers, aiming to help developers understand how compilers break constant-time code and propose an effective method to prevent compilers from introducing such violations without modifying either the source code or the compiler itself. The dataset consists of 152 binary files with constant-time violations detected using the Microwalk tool. This dataset can assist researchers in better comprehending the impact of compiler optimizations on constant-time code and developing more effective defensive measures.
提供机构:
Inria
创建时间:
2025-07-08
搜集汇总
数据集介绍
main_image_url
构建方式
该数据集通过对比不同编译器版本(如GCC 9与13、LLVM 12与18)在优化级别O3和Os下生成的二进制文件,利用动态分析工具Microwalk检测时序侧信道漏洞。研究者选取了已验证恒定时间特性的密码库函数(如BearSSL、MbedTLS)及已知易被编译器破坏的示例代码作为基准,结合DWARF调试符号将漏洞指令映射至源代码行,确保精准定位编译器引入的违规行为。
特点
数据集聚焦于编译器优化对恒定时间代码的破坏性影响,揭示了GCC和LLVM中特定优化路径(如循环外提、向量化、cmov转换)的相互作用。其独特价值在于首次系统化分析了优化路径间的级联效应,并通过细粒度实验验证了禁用特定编译器标志(如-fno-unswitch-loops)可有效消除漏洞,同时保持性能开销低于3.3%。
使用方法
用户可通过编译基准代码(含CT与非CT函数)并运行Microwalk动态分析工具复现实验结果。数据集支持两种分析模式:直接统计漏洞指令数量或通过调试符号关联源代码行。研究者建议优先禁用LLVM的cmov转换、循环外提及GCC的路径分割等优化路径,具体参数详见论文附录。所有实验数据与脚本已开源在Zenodo平台,便于后续研究扩展验证。
背景与挑战
背景概述
Compiler-Introduced Constant-Time Violations数据集由Antoine Geimer和Clémentine Maurice等研究人员于2025年创建,主要研究编译器优化对恒定时间编程(Constant-Time Programming)的破坏问题。该数据集聚焦于GCC和LLVM两大主流编译器,揭示了编译器优化过程中可能重新引入时序侧信道漏洞的机制。作为密码学安全领域的重要资源,该研究填补了编译器行为对恒定时间代码影响机制的理论空白,为后续编译器安全优化和密码学实现提供了实证基础。
当前挑战
该数据集面临的核心挑战体现在两个维度:在领域问题层面,恒定时间编程要求代码执行时间与敏感数据无关,但编译器优化可能破坏这一特性,导致时序侧信道漏洞;在构建过程层面,研究者需要解决基准代码验证(确保源代码本身符合恒定时间要求)、跨版本编译器行为对比分析,以及优化过程与漏洞引入的因果关联判定等难题。特别是需要精确区分编译器引入的漏洞与源代码固有漏洞,这对检测工具的设计和实验方法提出了严格要求。
常用场景
经典使用场景
在密码学和安全编程领域,Compiler-Introduced Constant-Time Violations数据集被广泛用于分析和识别编译器优化过程中引入的时序侧信道漏洞。该数据集通过系统性地收集和分类由GCC和LLVM等主流编译器在优化过程中破坏常数时间编程原则的案例,为研究人员提供了一个可靠的基准测试平台。特别是在密码学库的开发和安全审计中,该数据集帮助开发者理解编译器优化对安全代码的影响,从而在实际开发中避免潜在的安全隐患。
解决学术问题
该数据集解决了编译器优化与常数时间编程之间的矛盾这一重要学术问题。通过详细分析GCC和LLVM中的特定优化路径,数据集揭示了哪些优化步骤会破坏常数时间保证,以及这些破坏是如何发生的。这不仅填补了之前研究中对编译器内部行为理解的空白,还为开发者在不需要修改编译器或源代码的情况下,提供了实用的解决方案。数据集的研究成果显著提升了学术界对编译器引入侧信道漏洞机制的认识,推动了安全编译技术的发展。
衍生相关工作
该数据集衍生了一系列重要的研究工作,包括对编译器优化路径的深入分析和新型安全编译技术的开发。例如,基于该数据集的研究提出了通过编译器选项禁用特定优化路径的实用方法,这一方法被后续多个工作采纳和扩展。此外,数据集还启发了对LLVM和GCC中其他潜在安全问题的研究,如内存访问模式的分析和优化路径的交互效应。这些衍生工作进一步丰富了对编译器安全性的理解,并为工业界提供了更多实用的安全工具和方法。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作