FaCT: A Flexible, Constant-Time Programming Language
- 1 September 2017
- conference paper
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
Abstract
We argue that C is unsuitable for writing timing-channel free cryptographic code that is both fast and readable. Readable implementations of crypto routines would contain highlevel constructs like if statements, constructs that also introduce timing vulnerabilities. To avoid vulnerabilities, programmers must rewrite their code to dodge intuitive yet dangerous constructs, cluttering the code-base and potentially introducing new errors. Moreover, even when programmers are diligent, compiler optimization passes may still introduce branches and other sources of timing side channels. This status quo is the worst of both worlds: tortured source code that can still yield vulnerable machine code. We propose to solve this problem with a domain-specific language that permits programmers to intuitively express crypto routines and reason about secret values, and a compiler that generates efficient, timing-channel free assembly code.Keywords
This publication has 20 references indexed in Scilit:
- On Subnormal Floating Point and Abnormal TimingPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2015
- The Correctness-Security Gap in Compiler OptimizationPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2015
- Oblivious Program Execution and Path-Sensitive Non-interferencePublished by Institute of Electrical and Electronics Engineers (IEEE) ,2013
- Lucky Thirteen: Breaking the TLS and DTLS Record ProtocolsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2013
- Preventing Timing Leaks Through Transactional Branching InstructionsElectronic Notes in Theoretical Computer Science, 2006
- Curve25519: New Diffie-Hellman Speed RecordsLecture Notes in Computer Science, 2006
- Cache Attacks and Countermeasures: The Case of AESLecture Notes in Computer Science, 2006
- Remote timing attacks are practicalComputer Networks, 2005
- Language-based information-flow securityIEEE Journal on Selected Areas in Communications, 2003
- Translation validation for an optimizing compilerACM SIGPLAN Notices, 2000