SplittingSecrets: A Compiler-Based Defense for Preventing Data Memory-Dependent Prefetcher Side-Channels
Reshabh K Sharma, Dan Grossman, David Kohlbrenner

TL;DR
SplittingSecrets is a compiler-based technique that transforms memory operations to prevent data memory-dependent prefetcher side-channels, enhancing software security against hardware optimizations that leak sensitive data.
Contribution
It introduces a novel compiler approach that prevents secret data from resembling addresses, thereby mitigating DMP side-channels without disabling prefetchers.
Findings
Successfully implemented in LLVM for AArch64 architecture.
Reduces side-channel risk in cryptographic libraries like libsodium.
Provides targeted software hardening against DMP-based attacks.
Abstract
Traditional side-channels take advantage of secrets being used as inputs to unsafe instructions, used for memory accesses, or used in control flow decisions. Constant-time programming, which restricts such code patterns, has been widely adopted as a defense against these vulnerabilities. However, new hardware optimizations in the form of Data Memory-dependent Prefetchers (DMP) present in Apple, Intel, and ARM CPUs have shown such defenses are not sufficient. These prefetchers, unlike classical prefetchers, use the content of memory as well as the trace of prior accesses to determine prefetch targets. An adversary abusing such a prefetcher has been shown to be able to mount attacks leaking data-at-rest; data that is never used by the program, even speculatively, in an unsafe manner. In response, this paper introduces SplittingSecrets, a compiler-based tool that can harden software…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSecurity and Verification in Computing · Cryptographic Implementations and Security · Physical Unclonable Functions (PUFs) and Hardware Security
