TEEshift: Protecting Code Confidentiality by Selectively Shifting Functions into TEEs

Abstract

We present TEEshift, a tool suite that protects the confiden- tiality and integrity of code by shifting selected functions into TEEs. Our approach works entirely on binary-level and does not require the adaption of source code projects or build environments, nor does it require compiler-level patches. Programmers provide a list of ELF symbols pointing to the functions that should be protected. After post-processing an ELF binary with TEEshift, the selected functions are not present in cleartext anymore. Only after attesting to a re- mote party that the loading enclave behaves with integrity, the functions are decrypted, but remain inside the enclave protected against reverse engineering. An online connection is only required when a program starts for the first time on a PC. Afterwards, sealing is used to securely store the decryption key and bind it to the PC. By allowing program- mers to move selected function into TEEs, without patching their source code, we provide a convenient way to enable TEEs in existing projects while preserving the flexibility for a finegrained security and performance tradeoff. We evaluated our tool using a real world gaming application, confirming the practicability of our approach for existing projects. We overcome the limitation of the fragmented TEE landscape by building on top of Asylo, an open framework by Google for apps which aim to support different TEEs such as Intel SGX and AMD SEV using a unified API.

Mehr zum Titel

Titel TEEshift: Protecting Code Confidentiality by Selectively Shifting Functions into TEEs
Medien SysTEX '18: Proceedings of the 3rd Workshop on System Software for Trusted Execution
Verfasser Titouan Lazard, Johannes Götzfried, Prof. Dr. Tilo Müller, Gianni Santinelli, Vincent Lefebvre
Seiten S. 14-19
Veröffentlichungsdatum 15.01.2018
Zitation Lazard, Titouan; Götzfried, Johannes; Müller, Tilo; Santinelli, Gianni; Lefebvre, Vincent (2018): TEEshift: Protecting Code Confidentiality by Selectively Shifting Functions into TEEs . SysTEX '18: Proceedings of the 3rd Workshop on System Software for Trusted Execution, S. 14-19.