Leveraging Logical and Physical Separation for Mobile Security

The importance of mobile computing and the number of mobile computing devices have both grown strongly over the recent years. Mobile devices, such as smartphones, laptops, tablets, and also wearables, show an interesting combination of traits. They are, as the name suggests, mobile, massively connected, gather valuable data with various sensors, and can typically be customized with apps. Together, those characteristics make mobile devices very popular among users and a prime attack target. More specifically, their mobility exposes mobile devices to a variety of, possibly hostile, environments, putting them at risk of loss and, thus, physical attacks. Their connectivity exposes them to numerous remote attacks via one of their various wireless interfaces. In reaction to this increasing threat potential, mobile devices and their CPUs gain more and more security functions. While some of those functions fulfill a very specific purpose, such as the secure boot, guaranteeing the integrity of the boot chain, others are very versatile and not fixed to a specific use case. This especially includes new functions for logical separation, such as Trusted Execution Environments (TEEs) and hardware-assisted virtualization, providing multiple isolated execution contexts inside the same CPU core. Logical separation enables novel, powerful security concepts, but can be overcome, for example, by cache timing attacks, raising the need for additional physical separation to protect high-value secrets. In this work, we explore ways to leverage both logical and physical separation to improve a mobile device’s confidentiality and integrity against remote and physical attackers. We define a system architecture consisting of the mobile target platform and a physically separated security token, connected to the target platform, storing high-value secrets. In order to enable the token to protect itself and its assets against a compromised target platform, we first propose a software-based trusted boot process for ARM application processors. Using a timing-based primitive for externally verifiable execution, this boot process allows the token to gain trust in the boot integrity of the target platform without relying on pre-shared or trusted key material, building the basis for all following tokenbased security concepts. A remote attacker typically tries to exploit a vulnerability to take control over a process communicating via one of the target platform’s interfaces. In order to detect and eventually prevent such remote attacks, we present a framework for transparent kernel and user space execution tracing from a minimal hypervisor. The framework leverages hardware-assisted virtualization in modern ARM CPUs to transparently restrict the target platform to a small set of executable memory pages, gathering control flow information on each resulting page fault in the hypervisor. The page-granular control flow data can be used as basis to detect and prevent control flow hijacking attacks and, thus, protect the target platform’s run-time integrity. Run-time integrity does not necessarily protect a system against physical attacks. A physical attacker might, for example, still be able to extract valuable data from the main memory of a system via DMA or cold boot attacks. In order to protect a target platform