Eliminating Timing Side-channel Leaks Using Program Repair
We propose a method, based on program analysis and transformation, for eliminating timing side channels in software code that implements security-critical applications. Our method takes as input the original program together with a list of secret variables (e.g., cryptographic keys, security tokens, and passwords) and returns the transformed program as output. The transformed program is guaranteed to be functionally equivalent to the original program and free of both instruction- and cache-timing side channels. Specifically, we ensure (1) the number of CPU cycles taken to execute any path is independent of the secret data and (2) the cache behavior of memory accesses, in terms of misses/hits, is independent of the secret data. We have implemented our new method in LLVM and validated its effectiveness on a large set of applications, which are cryptographic libraries with 19,708 lines of C/C++ code in total. Our experiments show the method is both scalable for real applications and effective in eliminating timing side channels.
Mon 16 Jul
11:00 - 12:30: ISSTA Technical Papers - Secure and Sound at Zurich II Chair(s): Cristian CadarImperial College London | ||||||||||||||||||||||||||||||||||||||||||
11:00 - 11:20 Talk | Martin KelloggUniversity of Washington, Seattle, Vlastimil DortCharles University, Suzanne MillsteinUniversity of Washington, Michael D. ErnstUniversity of Washington, USA | |||||||||||||||||||||||||||||||||||||||||
11:20 - 11:40 Talk | Meng WuVirginia Tech, Shengjian (Daniel) GuoVirginia Tech, Patrick SchaumontVirginia Tech, Chao WangUniversity of Southern California | |||||||||||||||||||||||||||||||||||||||||
11:40 - 12:00 Talk | Tegan Brennan, Seemanta SahaUniversity of California Santa Barbara, Tevfik BultanUniversity of California, Santa Barbara, Corina S PasareanuNASA Ames Research Center | |||||||||||||||||||||||||||||||||||||||||
12:00 - 12:20 Talk | ||||||||||||||||||||||||||||||||||||||||||
12:20 - 12:30 |