Skip to main content
QUICK REVIEW

[论文解读] Did we learn from LLC Side Channel Attacks? A Cache Leakage Detection Tool for Crypto Libraries

Gorka Irazoqui, Kai Cong|arXiv (Cornell University)|Sep 5, 2017
Security and Verification in Computing参考文献 28被引用 12
一句话总结

本文提出了一种用于密码学库的主动缓存泄漏检测工具,结合动态污点分析、受控缓存驱逐和互信息分析,以识别AES、RSA和ECC实现中可被利用的侧信道泄漏。该工具发现,尽管此类攻击广为人知,但所分析的默认密码学库实现中仍有50%通过最后一级缓存(Last Level Cache, LLC)泄漏了敏感信息。

ABSTRACT

This work presents a new tool to verify the correctness of cryptographic implementations with respect to cache attacks. Our methodology discovers vulnerabilities that are hard to find with other techniques, observed as exploitable leakage. The methodology works by identifying secret dependent memory and introducing forced evictions inside potentially vulnerable code to obtain cache traces that are analyzed using Mutual Information. If dependence is observed, the cryptographic implementation is classified as to leak information. We demonstrate the viability of our technique in the design of the three main cryptographic primitives, i.e., AES, RSA and ECC, in eight popular up to date cryptographic libraries, including OpenSSL, Libgcrypt, Intel IPP and NSS. Our results show that cryptographic code designers are far away from incorporating the appropriate countermeasures to avoid cache leakages, as we found that 50% of the default implementations analyzed leaked information that lead to key extraction. We responsibly notified the designers of all the leakages found and suggested patches to solve these vulnerabilities.

研究动机与目标

  • 解决尽管已知LLC攻击风险,密码学库中缓存侧信道漏洞持续存在的长期挑战。
  • 开发一种自动化、平台无关的工具,用于在设计阶段检测密码学代码中真实且可被利用的缓存泄漏。
  • 使密码学库开发者能够主动识别并修补缓存泄漏缺陷,以避免部署后暴露。
  • 对主流密码学库在AES、RSA和ECC原 primitive 上进行大规模分析,评估真实世界中泄漏的普遍性。
  • 负责任地披露研究发现,并为广泛使用的密码学库安全态势的提升做出贡献。

提出的方法

  • 应用动态污点分析以识别密码学代码中依赖于秘密数据的内存访问。
  • 通过强制缓存驱逐(如使用flush-and-reload)对代码进行插桩,以生成可观测的缓存痕迹。
  • 在真实硬件上执行时记录低层级缓存访问模式,以模拟真实世界攻击条件。
  • 使用互信息分析(Mutual Information Analysis, MIA)作为统计度量,检测秘密值与可观测缓存行为之间的依赖关系。
  • 将污点传播与缓存痕迹模式相关联,以精确定位导致泄漏的具体代码区域。
  • 在无需平台特定配置调整的情况下,验证该工具在多种平台和密码学库上的有效性。

实验结果

研究问题

  • RQ1尽管已有已知的缓解技术,现代密码学库在多大程度上仍易受最后一级缓存(Last Level Cache, LLC)侧信道攻击?
  • RQ2结合污点分析与互信息分析的工具是否能有效检测真实世界密码学实现中的可被利用的缓存泄漏?
  • RQ3不同密码学实现(如T表、S盒、滑动窗口)在主流库中缓存泄漏表现如何?
  • RQ4现有验证技术是否足以检测细微的、非线性的缓存泄漏模式,还是会产生过多误报?
  • RQ5所提出的工具能否用于负责任地披露并修复广泛部署的密码学库中的漏洞?

主要发现

  • 在分析的50%默认密码学库实现中——涵盖OpenSSL、WolfSSL、NSS、Bouncy Castle等——AES、RSA和ECC原 primitive 均表现出可被利用的缓存泄漏。
  • 该工具在广泛使用的库中发现了12个此前未知的缓存泄漏漏洞,包括在OpenSSL(T表)、WolfSSL、Bouncy Castle和Intel IPP中的漏洞。
  • 即使在以安全著称的库中,如OpenSSL和Libgcrypt,当使用T表或滑动窗口等优化技术时,也发现了存在漏洞的实现。
  • 研究揭示,微架构细节如缓存行对齐显著影响泄漏情况,部分漏洞源于操作系统级别的数据错位。
  • 该工具成功识别出OpenSSL的WNAF实现(1.0.1分支)存在泄漏,而1.1.0分支则被发现是安全的,凸显了版本特定分析的重要性。
  • 负责任的披露导致多个CVE的分配,包括Intel IPP的CVE-2016-XXXX,以及WolfSSL和Bouncy Castle的多个CVE,目前补丁已发布或正在开发中。

更好的研究,从现在开始

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

无需绑定信用卡

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