$crypto_{lib}$: Comparing and selecting cryptography libraries (long version of EICC 2022 publication)
从众多候选库中选择一个库可能是一项费力且资源密集的任务。我们提出了$crypto_{lib}$索引,决策者选择最适合的密码库为给定的上下文的工具。为了定义我们的指数,15个图书馆属性的基础上,文献综述和采访决策者的调查结果合成。这些属性随后通过在线调查进行验证和加权。为了创建给定库的索引值,使用与各个属性相关联的给定评估标准来评估各个属性。作为概念证明并给出实际使用示例,详细显示了库Bouncy Castle和Tink的$crypto_{lib}$值的推导。总体而言,通过根据当前用例调整$crypto_{lib}$属性的权重,决策者能够以有指导的、可重复的和可靠的方式系统地选择最适合他们手头的软件项目的密码库。
2022-03-30 cs.CR cs.HC
Performance Evaluation and Modeling of Cryptographic Libraries for MPI Communications
为了使具有数据安全要求的高性能计算(HPC)应用程序在公共云中执行,云基础设施必须确保数据的隐私性和完整性。为了实现这一目标,我们考虑在消息传递接口(MPI)库中加入加密。我们经验评估四个当代加密库,OpenSSL,BoringSSL,Libsodium和CryptoPP使用微基准和NAS并行基准两种不同的网络技术,10Gbps以太网和40Gbps的InfiniBand。我们还开发了精确的模型,使我们能够在不同情况下对加密MPI通信的性能进行推理,并就如何提高加密MPI性能提供指导。
2020-10-13 cs.CR cs.DC
A Systematic Evaluation of Automated Tools for Side-Channel Vulnerabilities Detection in Cryptographic Libraries
本研究系统评估34个侧信道检测框架,选取5个工具构建统一基准,测试其发现密码学库中真实漏洞的能力,发现现有工具因缺乏SIMD指令、隐式流和内部秘密生成支持而难以检测漏洞,并提出改进建议。
2023-10-12 cs.CR
An AI Approach to Verified Production Cryptographic Libraries
Stanford University(斯坦福大学);University of North Carolina at Chapel Hill(北卡罗来纳大学教堂山分校);VMware Research by Broadcom(博通旗下VMware研究院);Amherst College(阿默斯特学院)
本文提出基于AI的CryptoProver系统,可从API合约合成内部规范与Verus验证的证明,成功验证了支撑Signal等系统的curve25519-dalek和RustCrypto的chacha20实现,遵循信任优先设计原则。
2026-10-19 cs.AI cs.CR
Point Intervention: Improving ACVP Test Vector Generation Through Human Assisted Fuzzing
本研究提出一种人工辅助的混合模糊测试系统,可生成覆盖全面的ACVP格式加密测试向量,支持安全便捷地构建测试模块,已用于改进NSS库测试、检测漏洞并推动ACVP格式优化。
2024-07-11 cs.CR
Biased RSA private keys: Origin attribution of GCD-factorable keys
2016年,Svenda等人(USENIX 2016,百万密钥问题)报告说,加密库中的实现选择允许对RSA公钥的起源进行有条件的猜测。我们将该技术扩展到两个新的场景时,不仅公共,而且私钥可用于起源属性-分析的GCD-可分解的密钥在IPv4范围内的TLS扫描和法医调查的未知来源的来源。我们学习几个代表的偏见从私人密钥训练模型上收集了超过1.5亿的密钥从70个密码库,硬件安全模块和加密智能卡。我们的模型不仅使可区分的库组的数量增加了一倍(与Svenda等人的公钥相比)。而且在精度w.r.t.方面也提高了两倍以上。随机猜测时,一个单一的关键是分类。对于来自同一来源的至少10个密钥可用的取证场景,正确的原始库被正确识别,平均准确率为89%,而随机猜测的准确率为4%。该技术还用于识别产生GCD因子化TLS密钥的库,表明只有三组是可能的嫌疑人。
2020-09-14 cs.CR
Systematization of Knowledge and Implementation: Short Identity-Based Signatures
基于身份的签名方案每天都在获得大量的普及。在过去的十年里,已经提出了很多计划。有几个库实现了基于身份的密码系统,包括基于身份的签名方案,如用Java编写的JPBC库和用Python编写的charm-crypto库。然而,这些库并不包含所有流行的方案,JPBC库只包含一个基于身份的签名方案,而Charm-Crypto库包含三个。此外,所实现的方案被设计为在一个特定的配对曲线上工作。在基于配对的密码系统中,即使对于给定的签名方案,签名的大小和性能(即签名和验证的时间)也取决于所选择的配对曲线。存在其中签名大小比性能更重要的许多应用,以及类似地其中性能比签名大小更重要的其它应用。在这项工作中,我们描述了流行的签名方案及其使用JPBC库的实现,并描述了不同的配对曲线如何影响签名的大小和性能。我们还提供了两种方法来进一步缩短签名大小,这在默认情况下不存在于库中。
2019-08-14 cs.CR
Cache Refinement Type for Side-Channel Detection of Cryptographic Software
缓存侧信道攻击对软件安全和隐私构成了严重威胁,尤其是对密码系统。在本文中,我们提出了CaType,一种新的细化类型为基础的工具,用于检测高速缓存侧通道加密软件。与以前的工作相比,CaType提供了以下优点:(1)CaType第一次使用x86汇编代码上的细化类型来分析缓存侧通道。它揭示了改进类型的几个重要而有效的增强,包括位级粒度跟踪,区分变量的不同影响,精确的类型推断和高可伸缩性。(2)CaType是第一个考虑基于盲法防御的加密库静态分析器。(3)从实现的角度来看,CaType使用潜在易受攻击的控制流分支的缓存布局,而不是缓存状态来抑制误报。我们评估CaType在识别真实世界的加密软件中的侧通道漏洞,包括来自OpenSSL和Libgcrypt的RSA,ElGamal和(EC)DSA。CaType捕获所有已知的缺陷,检测以前未知的漏洞,并揭示以前工具的几个误报。在性能方面,CaType在分析相同库时比CacheD快16倍,比CacheS快131倍。这些评估结果证实了CaType在以高精度、高效率和可扩展性识别侧通道缺陷方面的能力。
2022-10-19 cs.CR
Vivienne: Relational Verification of Cryptographic Implementations in WebAssembly
本文探讨了使用关系符号执行来对抗WebAssembly程序中的定时侧通道。我们设计并实现了Vivienne,一个开源工具,可以自动分析WebAssembly加密库的恒定时间违规行为。我们的方法具有利用WebAssembly和自动定理证明器的结构的各种优化,包括通过关系不变量支持循环。我们评估了Vivienne在57个真实世界的加密实现,包括一个以前未经验证的HACL* 库在WebAssembly中的实现。结果表明Vivienne是WebAssembly中密码库的恒定时间分析的实用解决方案。
2021-09-03 cs.CR cs.PL cs.SC
Are easily usable security libraries possible and how should experts work together to create them?
由于非专家也在开发安全相关的应用程序,因此也有必要支持它们。目前研究中的一些改进可能无法达到或影响这些开发人员。尽管如此,这些开发人员使用安全库。有调查结果表明,即使它们的使用是不容易的,应用程序很容易受到所谓的治疗威胁。因此,提高安全库的可用性具有重要意义。这本身并不简单,因为例如需要成熟过程。通过聚集不同领域的专家,特别是加密和API可用性专家,这两个问题都可以解决。
2016-03-23 cs.CR
Towards Automated Augmentation and Instrumentation of Legacy Cryptographic Executables: Extended Version
加密库中的实现缺陷、底层加密原语中的设计缺陷以及使用两者的协议中的弱点都可能导致软件中的可利用漏洞。手动修复此类问题具有挑战性且消耗资源,特别是在维护包含损坏或过时的密码学的遗留软件时,并且其源代码可能不可用。虽然存在识别密码原语的现有工作(通常在恶意软件分析的上下文中),但是这些先前的工作都没有集中于在识别出这些原语之后用更强(或更安全)的原语替换这些原语。本文探讨了设计和实现加密可执行文件的增强和遗留软件插装(ALICE)工具链的可行性。ALICE的主要特点是:(i)从二进制文件中自动检测和提取弱的或损坏的密码原语的实现,而不需要源代码或调试符号,(ii)识别使用这些原语的上下文和范围,并执行程序分析以确定用更安全的实现替换这些实现的效果,以及(iii)用更强或更安全的原语的实现替换弱原语的实现。我们证明了我们的方法的实际可行性加密哈希函数与几个流行的加密库和现实世界中的各种复杂程度的程序。我们的实验结果表明,ALICE可以定位和替换不安全的散列函数,即使在大型二进制文件(我们测试的大小高达1.5MB),同时保留现有的功能的原始二进制文件,而在重写的二进制文件中产生最小的执行时间开销。我们还在https://github.com/SRI-CSL/ALICE上开源了ALICE的代码。
2020-04-22 cs.CR
Revisiting and Evaluating Software Side-channel Vulnerabilities and Countermeasures in Cryptographic Applications
我们系统化的软件侧信道攻击,重点是在加密实现的漏洞和对策。特别是,我们调查过去的研究文献,对易受攻击的实现进行分类,并确定消除它们的常见策略。然后,我们评估流行的库和应用程序,定量测量和比较漏洞的严重程度,响应时间和覆盖率。基于这些特征和评估,我们提供了一些见解,侧信道的研究人员,密码软件开发人员和用户。我们希望我们的研究可以激励侧通道研究社区发现新的漏洞,更重要的是,加强应用程序对它们的攻击。
2019-12-12 cs.CR
Breaking Bad: How Compilers Break Constant-Time Implementations
本文研究编译器优化如何破坏密码学库的高级恒定时间实现,并通过跨架构动态分析44,604个目标,首次在真实主流加固库中发现编译器引发的秘密依赖操作。
2025-09-02 cs.CR
High-level Cryptographic Abstractions
通常使用的加密库所公开的接口是笨拙的、复杂的,并且假定理解加密算法。挑战在于设计需要最少知识和工作量的高级抽象,同时在需要时允许最大限度的控制。本文提出了这种高层次的抽象组成的简单的密码原语和完整的声明式配置。这些抽象可以在任何语言的任何加密库之上实现。我们已经在Python中实现了这些抽象,并使用它们编写了各种各样的知名安全协议,包括Signal,TLS和TLS。我们表明,使用我们的抽象程序更小,更容易写比使用低级别的库,其中实现的安全协议的大小平均减少了约三分之一。我们表明,我们的实现产生了一个小的开销,小于5微秒的共享密钥操作和小于341微秒(< 1%)的公钥操作。我们还表明,我们的抽象是安全的,对主要类型的密码滥用文献中报道。
2019-08-23 cs.CR cs.PL
CryptoSolve: Towards a Tool for the Symbolic Analysis of Cryptographic Algorithms
近年来,人们对符号技术在密码系统的规范和分析中的应用产生了浓厚的兴趣。这些技术,当伴随着适当的证明的可靠性/完整性,可以用来识别不安全的密码系统,并证明健全的安全。但是,尽管已经开发和实现了一些这样的符号算法,它们仍然分散在文献中。在本文中,我们提出了一个工具,CryptoSolve,它提供了一个共同的基础规范和实现这些算法,CryptoSolve包括库,提供用于表达符号密码系统的术语代数,以及实现有用的算法,如统一和变体生成。在其当前的初始迭代中,它具有用于生成和分析密码操作模式的几种算法,这些算法允许使用块密码来加密超过一个块长的消息。我们工作的目标是继续扩展该工具,以考虑其他密码系统和安全问题,并扩展符号库以提高其适用性。
2022-09-21 cs.CR cs.LO cs.SC
New Cross-Core Cache-Agnostic and Prefetcher-based Side-Channels and Covert-Channels
本文发现英特尔XPT预取器跨核共享漏洞,提出PrefetchX攻击,可窃取RSA密钥、监控键盘和网络流量,且绕过现有缓存缓解措施。
2023-06-19 cs.AR cs.CR
Classifying Implementations of Cryptographic Primitives and Protocols that Use Post-Quantum Algorithms
Northeastern University(东北大学);Cisco(思科)
本文提出了一种对使用后量子算法的密码原语和协议实现进行分类的方法,通过分析密钥交换、数字签名及SNARK生成库,实现了高准确率的区分和识别。
2026-01-10 cs.CR
Chai: Agentic Discovery of Cryptographic Misuse Vulnerabilities
UC Berkeley(加州大学伯克利分校)
提出Chai系统,利用AI改进差分测试,从库级缺陷出发沿依赖图传播,发现并验证加密误用漏洞,在X.509、JWT、SAML库中发现超100个漏洞。
2026-06-26 cs.AI cs.CR
FuzzEval: Assessing Fuzzers on Generating Context-Sensitive Inputs
本文评估了十一种先进模糊测试器为密码标准PKCS#1-v1.5的十三个实现生成上下文敏感输入的能力,揭示了其在输入有效性和多样性上的差异及现有局限,以推动相关研究。
2024-09-18 cs.CR
Design and Implementation of a Controlled Ransomware Framework for Educational Purposes Using Flutter Cryptographic APIs on Desktop PCs and Android Devices
本文设计并实现了一个用于教育目的的可控勒索软件框架,基于Python和Flutter/Dart加密API,模拟WannaCry行为,通过目录限制、RSA私钥解密和文件类型白名单等防护措施支持安全实验与网络安全教学。
2025-08-16 cs.CR
MicroWalk: A Framework for Finding Side Channels in Binaries
本文提出基于动态二进制插桩与互信息分析的 MicroWalk 框架,用于在无源码二进制中定位和量化微架构侧信道泄露,并首次发现 Intel IPP 与 Microsoft CNG 中的未知泄露。
2019-01-07 cs.CR
Testing side-channel security of cryptographic implementations against future microarchitectures
该研究针对未来微架构优化对密码实现的侧信道安全影响评估缺失问题,开发了泄漏模型描述语言LmSpec与自动测试框架LmTest,经实证发现18种待落地优化会导致现有25种密码实现均存在密钥相关泄漏。
2024-02-01 cs.CR
Towards Efficient Verification of Constant-Time Cryptographic Implementations
本文提出结合IFDS轻量污点分析、精确污点分析与自组合程序安全性验证的实用方法,并实现为工具CT-Prover,高效验证密码学实现的常数时间性,发现开源SSL库新漏洞且性能显著优于现有工具。
2024-02-21 cs.CR cs.SE
Scaling Verification of Cryptographic Software with Aeneas, Rust, and Lean
Microsoft(微软);Google(谷歌);CMU(卡内基梅隆大学);Inria(法国国家信息与自动化研究所);ENS Paris-Saclay(巴黎萨克雷高等师范学院)
我们提出一种结合 Aeneas、Rust 和 Lean 的密码学软件验证方法,利用 AI 智能体辅助证明,并在 SymCrypt 上验证了后量子算法,实现了大规模代码的功能正确性。
2026-09-15 cs.CR
Déjà Vu: Side-Channel Analysis of Mozilla's NSS
最近关于侧通道分析(SCA)的工作针对的是旧的、众所周知的漏洞,甚至是以前在知名密码库中被利用、报告和修补的漏洞。然而,研究人员继续在新旧产品中发现并利用相同的漏洞,这突出了供应商之间的一个大问题:在没有直接向他们披露的情况下,有效地跟踪和修复安全漏洞。在本工作中,我们通过对Mozilla的NSS安全库执行第一个库范围的SCA安全评估,展示了该问题的另一个实例。我们使用两个独立开发的SCA安全框架的组合来识别和测试安全漏洞。我们的评估揭示了NSS中影响DSA,ECDSA和RSA密码系统的几个新漏洞。我们利用这些漏洞,并使用信号实现密钥恢复攻击-通过不同的技术,如定时,微架构和EM-和改进的网格方法提取。
2020-08-13 cs.CR
CacheQL: Quantifying and Localizing Cache Side-Channel Vulnerabilities in Production Software
缓存侧信道攻击通过检查受害者软件如何访问缓存来提取秘密。到目前为止,在不同的场景下,对密码系统和媒体库的实际攻击被证明,推断密钥和重建私人媒体数据,如图像。这项工作首先提出了八个标准,设计一个全面的检测器缓存侧通道漏洞。然后,我们提出了CacheQL,一种满足所有这些标准的新型检测器。CacheQL通过描述记录的边通道跟踪的可重复性来精确量化二进制代码的信息泄漏。此外,CacheQL模型泄漏作为一个合作的游戏,允许信息泄漏被精确地分配到易受缓存侧通道的程序点。CacheQL经过精心优化,可以分析从生产软件中记录的整个侧通道跟踪(每个跟踪可能有数百万条记录),并消除由加密盲法、ORAM或真实世界噪声引入的随机性。我们的评估量化了生产加密和媒体软件的侧通道泄漏。我们进一步本地化以前的检测器报告的漏洞,并确定了几百个新的泄漏网站在最近的OpenSSL(版本。3.0.0)、MbedTLS(ver. 3.0.0),Libgcrypt(ver. 1.9.4)。我们的许多本地化程序点都在密码系统的预处理模块中,由于可扩展性,现有的作品没有分析这些模块。我们还本地化Libjpeg中的漏洞(ver. 2.1.2)泄露关于输入图像的隐私。
2022-10-03 cs.CR
Finding Security Vulnerabilities in IoT Cryptographic Protocol and Concurrent Implementations
物联网(IoT)由大量通过网络连接的设备组成,这些设备交换大量数据,从而带来新的安全,隐私和信任问题。解决这些问题的一种方法是使用物联网协议的轻量级加密算法来确保数据机密性。然而,这种协议的设计和实现是一项容易出错的任务;实现中的缺陷可能导致破坏性的安全漏洞。在这里,我们提出了一种新的验证方法命名为加密BMC和Fuzzing(EBF),它结合了有界模型检验(BMC)和Fuzzing技术来检查安全漏洞,出现并发实现的并行图形协议,其中包括数据竞争,线程泄漏,算术溢出,内存安全。EBF使用POSIX线程将IoT协议建模为客户端和服务器,从而模拟两个实体的通信。它还采用静态和动态验证,以涵盖系统的状态空间详尽。我们评估EBF对三个基准。首先,我们使用SV-COMP的并发基准测试,并表明它在错误发现方面优于其他最先进的工具,如ESBMC,AFL,Lazy-CSeq和TSAN。其次,我们评估了一个名为WolfMQTT的开源实现。它是一个使用WolfSSL库的MQTT客户端实现。我们发现,\tool检测数据竞争的错误,其他方法是无法找到的。第三,为了证明EBF的有效性,我们复制了OpenSSL和CyaSSL(最近的WolfSSL)库中的一些已知漏洞。EBF可以在最短的时间内检测到错误。
2021-04-27 cs.CR
Identifying Cache-Based Side Channels through Secret-Augmented Abstract Interpretation
基于缓存的侧通道使专门的攻击者能够通过测量缓存访问模式来揭示程序秘密。实际的攻击已经被证明是针对真实世界的加密算法实现,如RSA,AES和ElGamal。到目前为止,识别由于基于缓存的侧信道导致的信息泄漏,无论是静态还是动态方式,仍然是一个挑战:现有方法无法同时提供高精度,全覆盖和良好的可扩展性,从而阻碍了它们在现实世界场景中的实际使用。在本文中,我们提出了一种新的静态分析方法对二进制检测缓存为基础的侧通道。我们使用抽象解释来推理每个程序点上的抽象值的程序状态。为了使这种抽象的解释可扩展到现实世界的密码系统,同时提供高精度和全覆盖,我们提出了一种新的抽象域称为秘密增强符号域(SAS)。SAS跟踪程序秘密和对它们的依赖性以获得精确度,而它只跟踪粗粒度的公共信息以获得可扩展性。我们已经将所提出的技术实现到一个名为CacheS的实用工具中,并在现实世界的加密库中广泛使用的加密算法(包括Libgcrypt,OpenSSL和mbedTLS)的实现上对其进行了评估。CacheS成功证实了之前研究报告的154个信息泄露和54个之前未知的泄露。我们已经向开发商报告了我们的发现。他们证实,许多未知的信息泄露确实会导致潜在的侧渠道。
2019-05-30 cs.CR
Certified Side Channels
我们证明了私钥持久化的格式会影响边通道分析(SCA)的安全性。调查了几个广泛部署的软件库,我们调查了它们支持的格式、它们如何解析这些键以及它们做出的运行时决策。我们发现了一个弱点和漏洞的组合,在极端情况下,诱导完全不相交的多精度算术堆栈深处的密码系统级别的密钥,否则似乎在逻辑上等同。利用这些漏洞,我们设计和实现的关键恢复攻击利用信号范围从电磁(EM)的发射,粒度微架构缓存的时间,粗糙的传统挂钟的时间。
2020-04-01 cs.CR
Sleep Reveals the Nonce: Breaking ECDSA using Sleep-Based Power Side-Channel Vulnerability
University of Florida(佛罗里达大学)
本文提出利用基于睡眠的电源侧信道漏洞,通过电源波动提取ECDSA nonce,揭示了睡眠功能在加密系统中的潜在安全风险。
2026-02-02 cs.CR
CopyCat: Controlled Instruction-Level Attacks on Enclaves
可信执行环境(TEE)提出的对抗模型促使研究人员研究不寻常的攻击向量。一类特别强大的受控通道攻击滥用页表修改来以页级粒度可靠地跟踪飞地存储器访问。与嘈杂的微架构时序泄漏相反,这一系列确定性受控通道攻击滥用了不可或缺的架构接口,因此无法通过调整微架构资源来缓解。我们提出了一种创新的受控通道攻击,名为CopyCat,确定性地计算在单个飞地代码页内执行的指令数。我们表明,通过将CopyCat收获的指令计数与传统的粗粒度页级泄漏相结合,可以在最大的隔离级粒度下准确重建飞地控制流。CopyCat可以识别最终可能仅在单个指令中有所不同的页内和高速缓存行内分支决策,强调即使是极其细微的控制流偏差也可能从安全飞地中确定性地泄漏。我们通过对针对加密实现的单迹和确定性攻击的广泛研究,展示了CopyCat在英特尔SGX上的更高分辨率和实用性,并给出了利用广泛使用的加密库的最新版本中的微妙漏洞执行单迹密钥提取的新颖算法攻击。我们的研究结果强调了对加密实现进行更严格验证的重要性,特别是在TEE的背景下。
2020-06-26 cs.CR
A Risk Estimation Study of Native Code Vulnerabilities in Android Applications
针对Android原生C/C++库漏洞,本文提出基于正则表达式识别库版本和脆弱函数、结合漏洞数据库评分评估应用风险的快速方法,并在逾10万个应用上验证其有效性。
2024-06-04 cs.CR
Adversarial Prefetch: New Cross-Core Cache Side Channel Attacks
现代x86处理器有许多预取指令,程序员可以使用这些指令来提高性能。然而,这些指令也可能导致安全问题。特别是,我们发现在英特尔处理器上,PREFETCHW(一种用于加速未来写入的指令)的实现存在两个安全漏洞。首先,此指令可以在具有只读权限的数据上执行。其次,该指令的执行时间泄漏了目标数据的当前一致性状态。基于这两个设计问题,我们构建了两种跨核私有缓存攻击,可用于包容性和非包容性LLC,名为Prefetch+Reload和Prefetch+Prefetch。我们在不同的场景中展示了我们攻击的重要性。首先,在隐蔽通道的情况下,当在发送器和接收器之间仅使用一个共享高速缓存行时,预取+缓存和预取+预取实现782 KB/s和822 KB/s信道容量,这是CPU高速缓存隐蔽通道的最大单线容量。此外,在侧信道的情况下,我们的攻击可以监视受害者在同一处理器上的访问模式,几乎为零出错率。我们表明,他们可以用来泄漏私人信息的真实世界的应用程序,如密钥。最后,我们的攻击可以用于瞬态执行攻击,以泄漏更多的秘密在瞬态窗口比以前的工作。从实验结果来看,我们的攻击允许泄漏大约2倍的秘密字节,与Flush+ Snackad相比,这是广泛用于瞬态执行攻击。
2022-08-17 cs.CR
Uncovering Information Flow Policy Violations in C Programs
用C语言编写的加密应用程序的程序员需要避免常见的错误,例如通过公共通道发送私有数据,用不可信的函数修改可信数据,或不正确地排序协议步骤。使用现有的通用工具检查这些保密性、完整性和排序策略可能很麻烦。我们开发了一种新的方法来指定和发现违反这些政策的行为,这种方法比以前的工具更轻量级。我们通过源代码到源代码的转换将策略注释嵌入到C的类型系统中,并利用现有的C编译器来检查策略违规,从而实现高性能和可扩展性。我们通过最近的加密库和应用程序的案例研究表明,我们的工作是能够表达详细的政策,大型机构的C代码,可以找到微妙的违反政策。为了获得正式的理解,我们的政策注释,我们展示了正式的政策注释和信息流类型系统之间的连接,并证明了不干涉保证。
2019-07-03 cs.CR cs.PL
Constant-Time Foundations for the New Spectre Era
恒定时间规则是一种基于软件的对策,用于保护高保证加密实现免受定时侧信道攻击。常数时间是有效的(它可以防止许多已知的攻击),严格的(它可以使用程序语义形式化),并服从自动验证。然而,微体系结构攻击的出现使得今天存在的恒定时间变得不那么有用。本文奠定了基础,在投机和乱序执行的存在下,常数时间编程。我们提出了一个操作语义和恒时程序在这个扩展设置的正式定义。我们的语义避免形式化的微架构功能(而不是假设对手的控制下),并产生一个概念的恒定时间,保持优雅和易处理的通常的概念。我们证明了我们的语义在两个方面的相关性:第一,通过对比现有的幽灵般的攻击与我们的定义的恒定时间。其次,通过实现一个静态分析工具Pitchfork,它可以检测在现实世界的加密库中违反我们扩展的恒定时间属性的行为。
2020-05-08 cs.CR cs.PL
Eliminating Timing Side-Channel Leaks using Program Repair
我们提出了一种方法,基于程序分析和转换,用于消除定时侧通道的软件代码,实现安全关键的应用程序。我们的方法将原始程序和一系列秘密变量(例如,密码密钥、安全令牌或密码),并返回转换后的程序作为输出。转换后的程序保证在功能上等同于原始程序,并且没有指令和缓存定时侧通道。具体来说,我们确保执行任何路径所需的CPU周期数与秘密数据无关,并且内存访问的缓存行为(命中和未命中)与秘密数据无关。我们已经在LLVM中实现了我们的方法,并在大量应用程序上验证了其有效性,这些应用程序是总共有19,708行C/C ++代码的加密库。实验结果表明,该方法不仅具有良好的可扩展性,而且能够有效地消除定时边信道。
2018-07-21 cs.CR cs.PL cs.SE
On the Challenges of Detecting Side-Channel Attacks in SGX
检测英特尔SGX上的侧信道攻击的现有工具基于对攻击影响受害应用程序性能的观察。因此,所有检测工具都监视潜在的受害者,并在见证性能(在运行时、飞地中断、缓存未命中等方面)不寻常在本文中,我们表明,监测飞地的性能来检测侧信道攻击可能是无效的。我们的核心直觉是,所有的监控工具都是针对干扰受害者执行的对手的,以便提取最多数量的秘密比特(例如,整个秘密)在一次或几次运行中。然而,它们无法检测到在每次执行受害者时泄漏较小部分秘密(小到一个位)的对手。特别是,通过最大限度地减少每次运行时泄露的信息,可以显著降低任何侧信道攻击对应用程序性能的影响-确保检测工具无法检测到攻击。通过多次重复攻击,每次攻击秘密的不同部分,对手可以恢复整个秘密并保持不被发现。基于这种直觉,我们适应已知的攻击利用页表和L3缓存绕过现有的检测机制。我们的实验表明,攻击者可以成功地exfiltrate的秘密密钥中使用的飞地运行各种加密例程的libgcrypt。除了加密库之外,我们还展示了如何妥协运行OpenCV决策树例程的飞地的预测。我们的评估结果表明,基于性能的检测工具并不能阻止对SGX飞地的侧信道攻击,有效的检测机制尚未设计出来。
2022-06-30 cs.CR
Security Is More Than a Library Call: How Security Features Live in Code
Ruhr University Bochum(鲁尔大学波鸿分校);Chalmers | University of Gothenburg(查尔姆斯理工大学|哥德堡大学)
本研究通过挖掘9个大型开源Java系统,发现安全特性在代码中远非简单库调用,而是规模大、分散且相互缠绕,需大量集成代码。
2026-10-06 cs.CR cs.SE
Power Side-Channel Attacks in Negative Capacitance Transistor (NCFET)
侧信道攻击使得能够绕过电路中的加密组件。电力侧信道(PSC)攻击由于其非侵入性和经验证的有效性而受到特别的关注。除了专注于常规技术的现有技术之外,这是在PSC攻击的背景下研究新兴的负电容晶体管(NCFET)技术的第一项工作。我们实现了一个CAD流程PSC评估在设计时。它利用了行业标准的设计工具,同时还采用了广泛接受的相关功率分析(CPA)攻击。使用基于7nm FinFET技术的标准单元库NCFET及其对应的CMOS设置,我们的评估表明,基于NCFET的电路更能抵抗经典的CPA攻击,这是由于负电容对开关功率的相当大的影响。我们还证明了铁电层越厚,基于NCFET的电路的弹性就越高,这为优化和权衡打开了新的大门。
2020-07-08 cs.CR physics.app-ph
CACHE SNIPER : Accurate timing control of cache evictions
在过去的几年里,微架构侧信道攻击在安全研究中非常突出。高速缓存一直是一个杰出的隐蔽通道,因为它们提供高分辨率和通用的跨核泄漏,即使是简单的用户模式代码执行权限。为了防止这些通用的跨核攻击,所有主要的加密库现在都提供了通过跨核缓存攻击来阻止密钥提取的对策,例如避免秘密相关访问模式和预取数据。在本文中,我们表明,旨在防止简单的缓存攻击的“足够好”的对策保护的实现仍然是脆弱的。我们提出了一种新的攻击,使用一种特殊的定时技术来确定何时开始加密,然后在所需的时刻准确地驱逐数据。这种新的攻击不需要特殊权限,也不需要攻击者和受害者之间的显式同步。我们的攻击的一个关键改进是一种方法,通过利用TSX的瞬时功能并依赖于最近反向工程的L3替换策略,在没有共享内存的情况下,通过单次内存访问从缓存中驱逐数据。我们证明了效率,通过执行异步最后一级缓存攻击,以提取RSA密钥从最新的SSL库,这已特别适应,以避免泄漏的访问模式,并通过提取AES密钥从S盒实现包括在OpenSSL绕过每轮预取打算作为对缓存攻击的保护。
2020-08-27 cs.CR
BandwidthBreach: Unleashing Covert and Side Channels through Cache Bandwidth Exploitation
本文提出 BandwidthBreach,通过操纵 LFB 冲突、预取失败和缓存路径拥塞构建高速隐蔽信道,并结合 Spectre 与 BP Timing 攻击提取 RSA、EdDSA 密钥。
2023-06-03 cs.CR
Layered Binary Templating: Efficient Detection of Compiler- and Linker-introduced Leakage
缓存模板攻击证明了共享库中用户输入的自动泄漏。但是,对于大型二进制文件,运行时非常高。其他自动化方法集中于加密实现和媒体软件,但不直接适用于用户输入。因此,在巨大的代码库内以高速缓存行粒度发现和消除所有用户输入侧信道泄漏是不切实际的。本文提出了一种新的通用缓存模板攻击技术,LBTA,分层二进制模板攻击。LBTA使用多个粗粒度侧通道层作为缓存行粒度模板的扩展,以加快缓存模板攻击的运行时间。我们描述了LBTA与不同粒度的具体侧通道,从64 B到2MB在实践中和理论上超越一个可变的层数。特别地,软件级页面缓存侧通道与硬件级L3缓存侧通道的组合已经将模板化运行时间减少了三个数量级。我们将LBTAs应用于不同的软件项目,从而在编译和链接过程中发现数据重复删除和死剥离作为新的安全问题。我们表明,这些机制引入了大的空间距离在二进制文件中的数据访问在一个pencil,使可靠的泄漏的pencil。在基于Chromium的应用程序上使用LBTA,我们可以构建一个完全无特权的基于缓存的键盘记录器。我们的研究结果表明,所有基于Chromium的应用程序的用户输入都受到影响,我们在一系列流行的应用程序上证明了这一点,包括Signal,Threema,Discord和密码管理器应用程序,如passky。由于这不是个别应用程序的缺陷,而是框架的缺陷,因此我们得出结论,所有使用框架的应用程序也将受到影响,即,数百…
2022-08-04 cs.CR
Microwalk-CI: Practical Side-Channel Analysis for JavaScript Applications
针对 JavaScript 密码学库缺乏易用侧信道检测工具的问题,本文提出 Microwalk-CI 框架,支持泄漏定位量化、执行轨迹生成与 CI 集成,并在多个流行库中发现严重泄漏。
2022-08-31 cs.CR cs.SE
Activation Functions Considered Harmful: Recovering Neural Network Weights through Controlled Channels
School of Computer Science University of Birmingham(计算机科学学院 英国伯明翰大学);School of Computer Science Durham University(计算机科学学院 唐斯大学)
本研究发现特权攻击者可利用神经网络激活函数的输入相关内存访问模式,借助SGX-Step框架从Intel SGX飞地中窃取模型参数,实验验证了攻击有效性,并指出需加强机器学习实现的侧信道验证。
2025-10-02 cs.CR cs.LG
Example-Based Vulnerability Detection and Repair in Java Code
Java库JCA和JSSE提供了加密API以促进安全编码。当开发人员滥用某些API时,他们的代码容易受到网络攻击。为了消除这些漏洞,人们构建了通过模式匹配检测安全API滥用的工具。然而,大多数工具不(1)修复误用或(2)允许用户扩展工具的模式集。为了克服这两个限制,我们创建了Seader--一种基于示例的方法来检测和修复安全API滥用。给定一个示例<insecure,secure>代码对,Seader比较代码片段以推断任何API滥用模板和相应的修复编辑。根据推断出的信息,给定一个程序,Seader执行过程间静态分析来搜索安全API误用并提出定制的修复方案。为了进行评估,我们将Seader应用于28个<不安全,安全>代码对; Seader成功地推断出21个独特的API误用模板和相关修复。通过这些<vulnerability,fix>模式,我们将SEADER应用于一个有86个已知漏洞的程序基准测试。Seader以95%的准确率、72%的召回率和82%的F分数检测到漏洞。我们还将Seader应用于100个开源项目,并手动检查了77个建议的修复;其中76个修复是正确的。Seader可以帮助开发人员正确使用安全API。
2022-04-28 cs.CR cs.SE
MAMBO-V: Dynamic Side-Channel Leakage Analysis on RISC-V
本文提出 MAMBO-V:将 MAMBO 移植到 RISC-V 并结合 Microwalk,对 64 位 RISC-V 二进制进行动态侧信道泄漏分析,在多个密码库中发现可利用泄漏。
2023-09-27 cs.CR
SplittingSecrets: A Compiler-Based Defense for Preventing Data Memory-Dependent Prefetcher Side-Channels
University of Washington(华盛顿大学)
SplittingSecrets是一种基于编译器的工具,通过防止秘密数据以地址形式存储来防御DMP引起的侧信道攻击。
2026-01-18 cs.CR cs.PL