Memory Trace Oblivious Program Execution
Title | Memory Trace Oblivious Program Execution |
Publication Type | Conference Paper |
Year of Publication | 2013 |
Authors | Chang Liu, Hicks, M., Shi, E. |
Conference Name | Computer Security Foundations Symposium (CSF), 2013 IEEE 26th |
Date Published | June |
Keywords | Arrays, cloud computing, cloud service providers, cold-boot style attacks, compiler, computing infrastructure, computing platform, cryptography, DRAM chips, Encryption, formal security, memory access overhead, memory access traces, memory trace oblivious program execution, oblivious RAM, optimal efficiency, ORAM banks, physical access, physical attacks, physical control, probing memory buses, program compilers, program diagnostics, program verification, programming language techniques, Random access memory, Semantics, type system, variable partitioning |
Abstract | Cloud computing allows users to delegate data and computation to cloud service providers, at the cost of giving up physical control of their computing infrastructure. An attacker (e.g., insider) with physical access to the computing platform can perform various physical attacks, including probing memory buses and cold-boot style attacks. Previous work on secure (co-)processors provides hardware support for memory encryption and prevents direct leakage of sensitive data over the memory bus. However, an adversary snooping on the bus can still infer sensitive information from the memory access traces. Existing work on Oblivious RAM (ORAM) provides a solution for users to put all data in an ORAM; and accesses to an ORAM are obfuscated such that no information leaks through memory access traces. This method, however, incurs significant memory access overhead. This work is the first to leverage programming language techniques to offer efficient memory-trace oblivious program execution, while providing formal security guarantees. We formally define the notion of memory-trace obliviousness, and provide a type system for verifying that a program satisfies this property. We also describe a compiler that transforms a program into a structurally similar one that satisfies memory trace obliviousness. To achieve optimal efficiency, our compiler partitions variables into several small ORAM banks rather than one large one, without risking security. We use several example programs to demonstrate the efficiency gains our compiler achieves in comparison with the naive method of placing all variables in the same ORAM. |
URL | http://ieeexplore.ieee.org/document/6595820/ |
DOI | 10.1109/CSF.2013.11 |
Citation Key | 6595820 |
- Oblivious RAM
- variable partitioning
- type system
- Semantics
- Random access memory
- programming language techniques
- program verification
- program diagnostics
- program compilers
- probing memory buses
- physical control
- physical attacks
- physical access
- ORAM banks
- optimal efficiency
- arrays
- memory trace oblivious program execution
- memory access traces
- memory access overhead
- formal security
- encryption
- DRAM chips
- Cryptography
- computing platform
- computing infrastructure
- compiler
- cold-boot style attacks
- cloud service providers
- Cloud Computing