Litcius/Paper detail

A Design and Verification Methodology for a TrustZone Trusted Execution Environment

Haiyong Sun, Hang Lei

2020IEEE Access15 citationsDOIOpen Access PDF

Abstract

Hardware support for isolated execution (e.g., ARM TrustZone) enables the development of a trusted execution environment (TEE) that ensures the security of the code and data while communicating with a compromised rich execution environment (REE). The ability to satisfy various security services is complicated and usually consists of trusted applications, a trusted kernel and a secure monitor. However, formally verifying the security of an entire TEE security remains challenging. We present a methodology for designing a TEE in a way that enables verification of its security properties. Our methodology consists of forcing a trusted application and kernel to communicate with an REE via a narrow interface and compile and link them with a small secure monitor that implements the interface and runs at the highest privilege level. We provide functional verification of the secure monitor to ensure that it correctly switches the TEE/REE, communicates with the REE at a pre-defined memory space and has no integer overflow vulnerability. We also perform a verification of the secure monitor's scheduler to ensure that it satisfies information flow noninterference. We present a modular verification framework that can prove an end-to-end security property for cross-language programmes (e.g., C and assembly languages). Our evaluation suggests that the methodology scales to real-world TEE applications.

Topics & Concepts

Computer scienceModular designInterface (matter)Direct Anonymous AttestationVulnerability (computing)CompilerTrusted ComputingOperating systemTrusted computing baseEmbedded systemComputer securityCloud computing securityCloud computingBubbleMaximum bubble pressure methodSecurity and Verification in ComputingDistributed systems and fault toleranceCloud Data Security Solutions
A Design and Verification Methodology for a TrustZone Trusted Execution Environment | Litcius