Minimal Kernel: An Operating System Architecture for TEE to Resist Board Level Physical Attacks

ARM specifications recommend that software residing in TEE’s (Trusted Execution Environment) secure world should be located in the on-chip memory to prevent board level physical attacks. However, the on-chip memory is very limited, placing significant limits on TEE’s functionality. The minimal kernel operating system architecture addresses this problem by building a small kernel which executes the whole TEE system only on the on-chip memory on demand and cryptographically protects all the data/code stored outside of SoC. In the architecture, a small kernel is built inside the TEE OS kernel space and achieves the minimal size by only including the very essential components used to execute and protect the TEE system. The minimal kernel consists of a minimal demand-paging system, which sets the on-chip memory as the only working memory for the TEE system and the off-chip memory as a backing store, and a memory protection component, which provides confidentiality and integrity protection on the backing store. A Merkle tree based memory protection scheme, reducing the requirement for on-chip memory, allows the minimal kernel to protect large trusted applications (TAs). This OS organization makes it possible to achieve the goal of physical security without losing any TEE’s functionality. We have incorporated a prototype of minimal kernel into OPTEE, a popular open source TEE OS. Our implementation only requires a runtime footprint of 100 KB on-chip memory but can protect the entire OP-TEE kernel and TAs, which are dozens of megabytes.

[1]  Yong Guan,et al.  SoftME: A Software-Based Memory Protection Approach for TEE System to Resist Physical Attacks , 2019, Secur. Commun. Networks.

[2]  Richard Earnshaw Procedure Call Standard for the ARM ® Architecture , 2006 .

[3]  Aymen Boudguiga,et al.  On the performance of freescale i.MX6 cryptographic acceleration and assurance module , 2015, RAPIDO '15.

[4]  Peter Gutmann,et al.  Data Remanence in Semiconductor Devices , 2001, USENIX Security Symposium.

[5]  Yong Guan,et al.  MicroTEE: Designing TEE OS Based on the Microkernel Architecture , 2019, 2019 18th IEEE International Conference On Trust, Security And Privacy In Computing And Communications/13th IEEE International Conference On Big Data Science And Engineering (TrustCom/BigDataSE).

[6]  Trent Jaeger,et al.  Building a Trustworthy Execution Environment to Defeat Exploits from both Cyber Space and Physical Space for ARM , 2019, IEEE Transactions on Dependable and Secure Computing.

[7]  Markus G. Kuhn,et al.  Cipher Instruction Search Attack on the Bus-Encryption Security Microcontroller DS5002FP , 1998, IEEE Trans. Computers.

[8]  Srinivas Devadas,et al.  Sanctum: Minimal Hardware Extensions for Strong Software Isolation , 2016, USENIX Security Symposium.

[9]  Andreas Dewald,et al.  AESSE: a cold-boot resistant implementation of AES , 2010, EUROSEC '10.

[10]  G. Edward Suh,et al.  Caches and hash trees for efficient memory integrity verification , 2003, The Ninth International Symposium on High-Performance Computer Architecture, 2003. HPCA-9 2003. Proceedings..

[11]  Alec Wolman,et al.  Using ARM trustzone to build a trusted language runtime for mobile applications , 2014, ASPLOS.

[12]  Ittai Anati,et al.  Innovative Technology for CPU Based Attestation and Sealing , 2013 .

[13]  Yubin Xia,et al.  TEEv: virtualizing trusted execution environments on mobile platforms , 2019, VEE.

[14]  R. Boivie SecureBlue + + : CPU Support for Secure Execution , 2011 .

[15]  Ning Zhang,et al.  CaSE: Cache-Assisted Secure Execution on ARM Processors , 2016, 2016 IEEE Symposium on Security and Privacy (SP).

[16]  Stephen Taylor,et al.  Beyond Full Disk Encryption: Protection on Security-Enhanced Commodity Processors , 2013, ACNS.

[17]  Sushil Jajodia,et al.  TrustDump: Reliable Memory Acquisition on Smartphones , 2014, ESORICS.

[18]  Alec Wolman,et al.  Protecting Data on Smartphones and Tablets from Memory Attacks , 2015, ASPLOS.

[19]  Ning Zhang,et al.  CacheKit: Evading Memory Introspection Using Cache Incoherence , 2016, 2016 IEEE European Symposium on Security and Privacy (EuroS&P).

[20]  Yuewu Wang,et al.  TrustOTP: Transforming Smartphones into Secure One-Time Password Tokens , 2015, CCS.

[21]  Andrew Ferraiuolo,et al.  Komodo: Using verification to disentangle secure-enclave hardware from software , 2017, SOSP.

[22]  Andrew Huang,et al.  Keeping Secrets in Hardware: The Microsoft Xbox™ Case Study , 2002, CHES.

[23]  Shay Gueron,et al.  A Memory Encryption Engine Suitable for General Purpose Processors , 2016, IACR Cryptol. ePrint Arch..

[24]  Lionel Torres,et al.  A parallelized way to provide data encryption and integrity checking on a processor-memory bus , 2006, 2006 43rd ACM/IEEE Design Automation Conference.

[25]  Xuejun Yang,et al.  Finding and understanding bugs in C compilers , 2011, PLDI '11.

[26]  David Seal,et al.  ARM Architecture Reference Manual , 2001 .

[27]  Lin Zhong,et al.  Ginseng: Keeping Secrets in Registers When You Distrust the Operating System , 2019, NDSS.

[28]  Patrick Simmons,et al.  Security through amnesia: a software-based solution to the cold boot attack on disk encryption , 2011, ACSAC '11.

[29]  N. Asokan,et al.  On-board credentials with open provisioning , 2009, ASIACCS '09.

[30]  Tilo Müller,et al.  PRIME: private RSA infrastructure for memory-less encryption , 2013, ACSAC.

[31]  Jing Wang,et al.  Protecting Private Keys against Memory Disclosure Attacks Using Hardware Transactional Memory , 2015, 2015 IEEE Symposium on Security and Privacy.

[32]  Yuewu Wang,et al.  TrustICE: Hardware-Assisted Isolated Computing Environments on Mobile Devices , 2015, 2015 45th Annual IEEE/IFIP International Conference on Dependable Systems and Networks.

[33]  Carlos V. Rozas,et al.  Innovative instructions and software model for isolated execution , 2013, HASP '13.

[34]  Jingqiang Lin,et al.  Copker: Computing with Private Keys without RAM , 2014, NDSS.

[35]  Ning Zhang,et al.  CryptMe: Data Leakage Prevention for Unmodified Programs on ARM Devices , 2018, RAID.

[36]  Jochen Liedtke,et al.  On micro-kernel construction , 1995, SOSP.

[37]  Peter A. H. Peterson,et al.  Cryptkeeper: Improving security with encrypted RAM , 2010, 2010 IEEE International Conference on Technologies for Homeland Security (HST).

[38]  Lionel Torres,et al.  Hardware Mechanisms for Memory Authentication: A Survey of Existing Techniques and Engines , 2009, Trans. Comput. Sci..

[39]  Yu Qin,et al.  Providing Root of Trust for ARM TrustZone using On-Chip SRAM , 2014, TrustED '14.

[40]  Andreas Dewald,et al.  TRESOR Runs Encryption Securely Outside RAM , 2011, USENIX Security Symposium.

[41]  Sotiris Ioannidis,et al.  PixelVault: Using GPUs for Securing Cryptographic Operations , 2014, CCS.

[42]  Sotiris Ioannidis,et al.  No Sugar but All the Taste! Memory Encryption Without Architectural Support , 2017, ESORICS.

[43]  Quan Chen,et al.  Hypervision Across Worlds: Real-time Kernel Protection from the ARM TrustZone Secure World , 2014, CCS.