Overview
The increasing adoption of edge and cloud computing is providing individual users with a more seamless interaction with numerous mobile and server devices. Alongside industry advancements, there is a growing concern for data security. Advanced virtualization-based TEE introduced in the recently new concept of Confidential Compute Architecture (CCA) creates a new physical address space (PAS) called Realm world for confidential computing to protect the data confidentiality and integrity. The current version of CCA primarily achieves isolation through the construction of Realm VM using virtualization techniques and does not provide user-level isolation environments.
We propose Shelter as a complement to CCA’s primary Realm VM-style architecture, aiming to allow third-party developers to deploy their applications with isolation in userspace as SApp. Shelter is designed by cooperating with Arm CCA hardware primitive to provide hardware-based isolation while removing the need for software workloads to trust their data to a Host OS, hypervisor, or privileged software (e.g., trusted OS, Secure/Realm hypervisor).
FAQ
(1) What's the difference between Shelter and CCA?
Isolation | PAS world | Privilege level | TCB | |
---|---|---|---|---|
Shelter | RME+Multi-GPT | Normal | User | Monitor |
CCA | RME+Virtualization | Realm | VM | Monitor+RMM |
(2) How does Shelter enforce isolation?
Shelter reuses CCA hardware Realm Management Extension (RME) and CCA’s in-memory structure Granule Protection Table (GPT) to enforce isolation in userspace as Shelter App (SApp). GPT specifies what physical address spaces (PAS) a memory page belongs to. Granule Protection Check (GPC) enforced by RME checks the GPT on each memory access and blocks illegal access.
To isolate each SApp from other SApps, untrusted OS/hypervisor, and privileged software (e.g., trusted OS, SPM, and RMM), Shelter deploys a design called Multi-GPT Memory Isolation. Shelter maintains multiple GPTs to divide the PAS for different programs. Shelter controls the access permissions of different programs by dynamically swapping the corresponding GPT based on the running target program. By establishing an address-space-per-core for each SApp and other code regions, each SApp is isolated from other SApps and software in the Normal, Secure, and Realm World.
Prototype
We release a prototype based on FVP Base RevC-2xAEMvA with RME-enabled features for functional validation of our design.
Publication
SHELTER: Extending Arm CCA with Isolation in User Space
Yiming Zhang, Yuxin Hu, Zhenyu Ning, Fengwei Zhang, Xiapu Luo, Haoyang Huang, Shoumeng Yan, and Zhengyu He
In Proceedings of the 32nd USENIX Security Symposium (USENIX Security'23).
Bibtex for citation:
@inproceedings{zhang2023shelter, title={SHELTER: Extending Arm CCA with Isolation in User Space}, author={Zhang, Yiming and Hu, Yuxin and Ning, Zhenyu and Zhang, Fengwei and Luo, Xiapu and Huang, Haoyang and Yan, Shoumeng and He, Zhengyu}, booktitle={32nd USENIX Security Symposium (USENIX Security’23)}, year={2023} }