Trusted execution environment

From Wikipedia the free encyclopedia

A trusted execution environment (TEE) is a secure area of a main processor. It helps code and data loaded inside it to be protected with respect to confidentiality and integrity. Data confidentiality prevents unauthorized entities from outside the TEE from reading data, while code integrity prevents code in the TEE from being replaced or modified by unauthorized entities, which may also be the computer owner itself as in certain DRM schemes described in SGX. This is done by implementing unique, immutable, and confidential architectural security such as Intel Software Guard Extensions (Intel SGX) which offers hardware-based memory encryption that isolates specific application code and data in memory. Intel SGX allows user-level code to allocate private regions of memory, called enclaves, which are designed to be protected from processes running at higher privilege levels.[1][2][3] A TEE as an isolated execution environment provides security features such as isolated execution, integrity of applications executing with the TEE, along with confidentiality of their assets.[4] In general terms, the TEE offers an execution space that provides a higher level of security for trusted applications running on the device than a rich operating system (OS) and more functionality than a 'secure element' (SE).

History[edit]

The Open Mobile Terminal Platform (OMTP) first defined TEE in their "Advanced Trusted Environment:OMTP TR1" standard, defining it as a "set of hardware and software components providing facilities necessary to support Applications" which had to meet the requirements of one of two defined security levels. The first security level, Profile 1, was targeted against only software attacks and while Profile 2, was targeted against both software and hardware attacks.[5]

Commercial TEE solutions based on ARM TrustZone technology, conforming to the TR1 standard, were later launched, such as Trusted Foundations developed by Trusted Logic.[6]

Work on the OMTP standards ended in mid 2010 when the group transitioned into the Wholesale Applications Community (WAC).[7]

The OMTP standards, including those defining a TEE, are hosted by GSMA.[8]

Details[edit]

The TEE typically consists of a hardware isolation mechanism, plus a secure operating system running on top of that isolation mechanism – although the term has been used more generally to mean a protected solution.[9][10][11][12] Whilst a GlobalPlatform TEE requires hardware isolation, others such as EMVCo use the term TEE to refer to both hardware/software and only software-based solutions.[13] FIDO uses the concept of TEE in the restricted operating environment for TEEs based on hardware isolation.[14] Only trusted applications running in a TEE have access to the full power of a device's main processor, peripherals and memory, while hardware isolation protects these from user installed apps running in a main operating system. Software and cryptographic isolation inside the TEE protect the trusted applications contained within from each other.[15]

Service providers, mobile network operators (MNO), operating system developers, application developers, device manufacturers, platform providers and silicon vendors are the main stakeholders contributing to the standardization efforts around the TEE.

To prevent simulation of hardware with user-controlled software, a so-called "hardware root of trust" is used. This is a set of private keys that are embedded directly into the chip during manufacturing; one-time programmable memory such as eFuses are usually used on mobile devices. These cannot be changed, even after device resets, and whose public counterparts reside in a manufacturer database, together with a non-secret hash of a public key belonging to the trusted party (usually a chip vendor) which is used to sign trusted firmware alongside the circuits doing cryptographic operations and controlling access. The hardware is designed in a way which prevents all software not signed by the trusted party's key from accessing the privileged features. The public key of the vendor is provided at runtime and hashed; this hash is then compared to the one embedded in the chip. If the hash matches, the public key is used to verify a digital signature of trusted vendor-controlled firmware (such as a chain of bootloaders on Android devices or 'architectural enclaves' in SGX). The trusted firmware is then used to implement remote attestation.[16]

When an application is attested, its untrusted component loads its trusted component into memory; the trusted application is protected from modification by untrusted components with hardware. A nonce is requested by the untrusted party from verifier's server, and is used as a part of a cryptographic authentication protocol, proving integrity of the trusted application. The proof is passed to the verifier, which verifies it. A valid proof cannot be computed in a simulated hardware (i.e. QEMU) because in order to construct it, access to the keys baked into hardware is required; only trusted firmware has access to these keys and/or the keys derived from them or obtained using them. Because only the platform owner is meant to have access to the data recorded in the foundry, the verifying party must interact with the service set up by the vendor. If the scheme is implemented improperly, the chip vendor can track which applications are used on which chip and selectively deny service by returning a message indicating that authentication has not passed.[17]

To simulate hardware in a way which enables it to pass remote authentication, an attacker would have to extract keys from the hardware, which is costly because of the equipment and technical skill required to execute it. For example, using focused ion beams, scanning electron microscopes, microprobing, and chip decapsulation[18][19][20][21][22][23] is difficult, or even impossible, if the hardware is designed in such a way that reverse-engineering destroys the keys. In most cases, the keys are unique for each piece of hardware, so that a key extracted from one chip cannot be used by others (for example physically unclonable functions[24][25]).

Though deprivation of ownership is not an inherent property of TEEs (it is possible to design the system in a way that allows only the user who has obtained ownership of the device first to control the system, by burning a hash of an own key into e-fuses), in practice all such systems in consumer electronics are intentionally designed so as to allow chip manufacturers to control access to attestation and its algorithms. It allows manufacturers to grant access to TEEs only to software developers who have a (usually commercial) business agreement with the manufacturer, this way monetizing the user base of the hardware, to enable such use cases as tivoization and DRM and to allow certain hardware features to be used only with vendor-supplied software, forcing users to use it despite of its antifeatures, like ads, tracking and use case restriction for market segmentation.

Uses[edit]

There are a number of use cases for the TEE. Though not all possible use cases exploit the deprivation of ownership, TEE is usually used exactly for this.

Premium Content Protection/Digital Rights Management[edit]

Note: Much TEE literature covers this topic under the definition "premium content protection" which is the preferred nomenclature of many copyright holders. Premium content protection is a specific use case of digital rights management (DRM), and is controversial among some communities, such as the Free Software Foundation.[26] It is widely used by copyrights holders to restrict the ways in which end users can consume content such as 4K high definition films.

The TEE is a suitable environment for protecting digitally encoded information (for example, HD films or audio) on connected devices such as smart phones, tablets and HD televisions. This suitability comes from the ability of the TEE to deprive the owner of the device from reading stored secrets, and the fact that there is often a protected hardware path between the TEE and the display and/or subsystems on devices.

The TEE is used to protect the content once it is on the device: while the content is protected during transmission or streaming by the use of encryption, the TEE protects the content once it has been decrypted on the device by ensuring that decrypted content is not exposed to the environment not approved by the app developer or platform vendor.

Mobile financial services[edit]

Mobile commerce applications such as: mobile wallets, peer-to-peer payments, contactless payments or using a mobile device as a point of sale (POS) terminal often have well-defined security requirements. TEEs can be used, often in conjunction with near-field communication (NFC), SEs and trusted backend systems to provide the security required to enable financial transactions to take place

In some scenarios, interaction with the end user is required, and this may require the user to expose sensitive information such as a PIN, password or biometric identifier to the mobile OS as a means of authenticating the user. The TEE optionally offers a trusted user interface which can be used to construct user authentication on a mobile device.

With the rise of cryptocurrency, TEEs are increasingly used to implement crypto-wallets, as they offer the ability to store tokens more securely than regular operating systems, and can provide the necessary computation and authentication applications.[27]

Authentication[edit]

The TEE is well-suited for supporting biometric identification methods (facial recognition, fingerprint sensor and voice authorization), which may be easier to use and harder to steal than PINs and passwords. The authentication process is generally split into three main stages:

  • Storing a reference "template" identifier on the device for comparison with the "image" extracted in next stage.
  • Extracting an "image" (scanning the fingerprint or capturing a voice sample, for example).
  • Using a matching engine to compare the "image" and the "template".

A TEE is a good area within a mobile device to house the matching engine and the associated processing required to authenticate the user. The environment is designed to protect the data and establish a buffer against the non-secure apps located in mobile OSes. This additional security may help to satisfy the security needs of service providers in addition to keeping the costs low for handset developers.

Enterprise, government, and cloud[edit]

The TEE can be used by governments, enterprises, and cloud service providers to enable the secure handling of confidential information on mobile devices and on server infrastructure. The TEE offers a level of protection against software attacks generated in the mobile OS and assists in the control of access rights. It achieves this by housing sensitive, ‘trusted’ applications that need to be isolated and protected from the mobile OS and any malicious malware that may be present. Through utilizing the functionality and security levels offered by the TEE, governments and enterprises can be assured that employees using their own devices are doing so in a secure and trusted manner. Likewise, server-based TEEs help defend against internal and external attacks against backend infrastructure.

Secure modular programming[edit]

With the rise of software assets and reuses, modular programming is the most productive process to design software architecture, by decoupling the functionalities into small independent modules. As each module contains everything necessary to execute its desired functionality, the TEE allows to organize the complete system featuring a high level of reliability and security, while preventing each module from vulnerabilities of the others.

In order for the modules to communicate and share data, TEE provide means to securely have payloads sent/received between the modules, using mechanisms such as objects serialization, in conjunction with proxies.

See Component-based software engineering

TEE operating systems[edit]

Company Product Hardware Used API Standard Certification type References
Alibaba Cloud Link TEE GlobalPlatform Full [28]
Apple Secure Enclave Separate processor Proprietary [29]
BeanPod ARM TrustZone GlobalPlatform [30]
Huawei iTrustee ARM TrustZone GlobalPlatform Full [31]
Google Trusty ARM / Intel Proprietary [32]
Linaro OPTEE ARM TrustZone GlobalPlatform [33]
Qualcomm QTEE ARM TrustZone GlobalPlatform + Proprietary [34]
Samsung TEEgris ARM TrustZone GlobalPlatform Full [35]
TrustKernel T6 Arm / Intel GlobalPlatform [36]
Trustonic Kinibi ARM TrustZone GlobalPlatform Full [37]
Trustonic SW TEE SW TEE on GlobalPlatform [37]
uberSpark uberXMHF ARM TrustZone / Intel Formal Mechanized Proof [38]
Watchdata WatchTrust ARM TrustZone GlobalPlatform Full [39]

Hardware support[edit]

The following hardware technologies can be used to support TEE implementations:

See also[edit]

References[edit]

  1. ^ "Introduction to Trusted Execution Environment: ARM's TrustZone".
  2. ^ "Security evaluation of Trusted execution environments: Why and how?" (PDF). Retrieved 2024-02-15.
  3. ^ "Trusted Execution Environment, millions of users have one, do you have yours?". Poulpita. 2014-02-18. Archived from the original on 2021-01-27. Retrieved 2017-05-17.
  4. ^ Ram Kumar Koppu (26 October 2013). "The benefits of Trusted Execution Environment (TEE)". YouTube. Archived from the original on 1 September 2020. Retrieved 31 July 2014.
  5. ^ "Omtp Hardware Requirements And Defragmentation" (PDF). Gsma.org. Archived (PDF) from the original on 2018-12-14. Retrieved 2017-05-17.
  6. ^ "Gemalto's website has moved to Thales" (PDF). Archived from the original (PDF) on 2014-09-03.
  7. ^ "OMTP announces final documents prior to transition into Wholesale Application Community". Mobileeurope.co.uk. Archived from the original on 2018-12-14. Retrieved 2014-08-27.
  8. ^ "OMTP documents". Gsma.com. May 2012. Archived from the original on 19 February 2015. Retrieved 12 September 2014.
  9. ^ Sabt, M; Achemlal, M; Bouabdallah, A (2015). "Trusted Execution Environment: What It is, and What It is Not". 2015 IEEE Trustcom/BigDataSE/ISPA (PDF). IEEE. pp. 57–64. doi:10.1109/Trustcom.2015.357. ISBN 978-1-4673-7952-6. S2CID 206775888. Archived (PDF) from the original on 2020-07-18. Retrieved 2020-04-19.
  10. ^ Pinto, S.; Santos, N. (2019). "Demystifying Arm TrustZone: A Comprehensive Survey". ACM Computing Surveys. 51: 1–36. doi:10.1145/3291047. S2CID 59337370.
  11. ^ Lee, S; Lee, JH (2018). "TEE based session key establishment protocol for secure infotainment systems". Design Automation for Embedded Systems. 22 (3). Springer: 215–224. doi:10.1007/s10617-018-9212-5. S2CID 52081114.
  12. ^ Shepherd, C; Arfaoui, G; Gurulian, I; Lee, R; Markantonakis, K; Akram, R; Sauveron, D; Conchon, E (2016). "Secure and Trusted Execution: Past, Present, and Future - A Critical Review in the Context of the Internet of Things and Cyber-Physical Systems". 2016 IEEE Trustcom/BigDataSE/ISPA (PDF). IEEE. pp. 168–177. doi:10.1109/TrustCom.2016.0060. ISBN 978-1-5090-3205-1. S2CID 8717045. Archived (PDF) from the original on 2021-05-14. Retrieved 2021-05-14.
  13. ^ "Software-Based Mobile Payment Evaluation Process". EMVCo. Archived from the original on 2021-03-02. Retrieved 2021-10-13.
  14. ^ "FIDO Authenticator Allowed Restricted Operating Environments List". FIDO Alliance. Archived from the original on 2021-07-13. Retrieved 2021-10-13.
  15. ^ "Solutions - Trustonic- Securing Smart Devices & Mobile Applications". Trustonic.com. Archived from the original on 2014-08-10. Retrieved 2014-07-31.
  16. ^ "Towards Formalization of Enhanced Privacy ID (EPID)-based Remote Attestation in Intel SGX".
  17. ^ "QEMU v7 — OP-TEE documentation documentation".
  18. ^ "Editing Circuits with Focused Ion Beams". April 2014. Archived from the original on 2020-11-28. Retrieved 2020-11-14.
  19. ^ "Advanced IC reverse engineering techniques: in depth analysis of a modern smart card" (PDF). Archived (PDF) from the original on 2020-11-14. Retrieved 2020-11-14.
  20. ^ Finding the AES Bits in the Haystack: Reverse Engineering and SCA Using Voltage Contrast by Christian Kison, Jürgen Frinken, and Christof Paar - https://www.iacr.org/archive/ches2015/92930620/92930620.pdf Archived 2020-11-16 at the Wayback Machine
  21. ^ Cassy, John; Murphy, Paul (2002-03-13). "How codebreakers cracked the secrets of the smart card". The Guardian. ISSN 0261-3077. Retrieved 2023-08-09.
  22. ^ "X-Ray Tech Lays Chip Secrets Bare - IEEE Spectrum". 7 October 2019. Archived from the original on 2020-12-08. Retrieved 2020-11-14.
  23. ^ Design Principles for Tamper-Resistant Smartcard Processors by Oliver Kömmerling Advanced Digital Security and Markus G. Kuhn University of Cambridge https://www.usenix.org/legacy/events/smartcard99/full_papers/kommerling/kommerling.pdf Archived 2021-01-21 at the Wayback Machine
  24. ^ "Physically Unclonable Functions (PUFs)". Semiconductor Engineering. Archived from the original on 2020-11-16. Retrieved 2020-11-15.
  25. ^ Areno, Matthew & Plusquellic, J.. (2012). Securing Trusted Execution Environments with PUF Generated Secret Keys. 1188-1193. 10.1109/TrustCom.2012.255.
  26. ^ "Digital Restrictions Management and Treacherous Computing Free Software Foundation working together for free software". Archived from the original on 2018-07-05. Retrieved 2019-08-20.
  27. ^ "Ethereum Wallet in a Trusted Execution Environment / Secure Enclave". Medium. 7 June 2018. Archived from the original on 2021-07-15. Retrieved 2021-10-13.
  28. ^ "Alibaba Cloud Link Tee V1.1.3". GlobalPlatform. Archived from the original on 2021-10-26. Retrieved 2021-10-13.
  29. ^ "Secure Enclave overview". Apple Inc. Archived from the original on 2021-08-13. Retrieved 2021-10-13.
  30. ^ "GlobalPlatform Welcomes New Participating Member Beijing Beanpod Technology". GlobalPlatform. Archived from the original on 2021-10-26. Retrieved 2021-10-13.
  31. ^ "Huawei iTrustee V3.0 on Kirin 980". GlobalPlatform. Archived from the original on 2021-04-14. Retrieved 2021-10-13.
  32. ^ "Trusty TEE". Google Android. Archived from the original on 2021-10-14. Retrieved 2021-10-13.
  33. ^ "Security, Trustzone and OP-TEE". Linaro. Archived from the original on 2021-02-27. Retrieved 2021-10-13.
  34. ^ "Guard your Data with Qualcomm Snapdragon Mobile Platform" (PDF). Qualcomm. Archived (PDF) from the original on 2021-06-25. Retrieved 2021-10-13.
  35. ^ "Samsung TeeGris V4.1". GlobalPlatform. Archived from the original on 2021-01-17. Retrieved 2021-10-13.
  36. ^ "Enhance Device Security With T6". TrustKernel.
  37. ^ a b "Certificate of Security Evaluation - Kinibi 410A" (PDF). GlobalPlatform.
  38. ^ "uberXMHF".
  39. ^ "WatchTrust 2.1.1 on SC9860" (PDF). GlobalPlatform.
  40. ^ "AMD Secure Processor (Built-in technology)". Amd.com. Archived from the original on 2017-09-19. Retrieved 2017-09-17.
  41. ^ "Secure Hardware and the Creation of an Open Trusted Ecosystem" (PDF). Classic.regonline.com. Archived (PDF) from the original on 2017-01-15. Retrieved 2017-05-17.
  42. ^ Chiappetta, Marco (2014-04-29). "AMD Beema and Mullins Low Power 2014 APUs Tested - Page 2". HotHardware. Archived from the original on 2017-04-07. Retrieved 2017-05-17.
  43. ^ "AMD MEMORY ENCRYPTION" (PDF). developer.amd.com. April 21, 2016.
  44. ^ "AMD SEV-SNP: Strengthening VM Isolation with Integrity Protection and More" (PDF). January 2020. Archived (PDF) from the original on 2020-11-05.
  45. ^ "GlobalPlatform based Trusted Execution Environment and TrustZone Ready" (PDF). Arm.com. Archived (PDF) from the original on 2020-07-04. Retrieved 2020-04-24.
  46. ^ "IBM Secure Service Container". ibm.com. Archived from the original on 2019-07-12. Retrieved 2019-07-12.
  47. ^ "Family 2965+01 IBM z13s Models N10 and N20". ibm.com. 22 May 2018. Archived from the original on 2021-01-26. Retrieved 2021-10-27.
  48. ^ "Technical overview of Secure Execution for Linux on IBM Z". ibm.com. Archived from the original on 2020-04-15. Retrieved 2020-04-15.
  49. ^ "The Trusted Execution Environments on Mobile Devices" (PDF). Cs.helsinki.fi. Archived (PDF) from the original on 2016-04-18. Retrieved 2017-05-17.
  50. ^ "WW46_2014_MCG_Tablet_Roadmap_图文_百度文库". Wenku.baidu.com. Archived from the original on 2017-02-27. Retrieved 2017-01-04.
  51. ^ "CyanogenMod/android_device_asus_mofd-common". GitHub. Archived from the original on 2017-03-24. Retrieved 2017-01-04.
  52. ^ "heidiao/sfp_m2_bt". GitHub. Archived from the original on 2017-03-24. Retrieved 2017-01-04.
  53. ^ "Hex Five Security Adds MultiZone™ Trusted Execution Environment to the SiFive Software Ecosystem". hex-five.com. 22 August 2018. Archived from the original on 2018-09-13. Retrieved 2018-09-13.
  54. ^ "Keystone Paper and Customizable TEEs". keystone-enclave.org. 22 July 2019. Archived from the original on 2020-07-14. Retrieved 2021-06-10.
  55. ^ "Penglai Enclave". penglai-enclave.systems/. Archived from the original on 2021-05-06. Retrieved 2021-06-10.