Content deleted Content added
m SGX deprecation info, make it also sound like less of an ad - as that might've been the previous editor's intention |
→Details: Added link. Tags: Mobile edit Mobile app edit Android app edit App select source |
||
(20 intermediate revisions by 16 users not shown) | |||
Line 1:
{{Short description|Secure area of a main processor}}
A '''trusted execution environment''' ('''TEE''') is a secure area of a [[Central processing unit|main processor]]. It helps the code and data loaded inside it be protected with respect to [[Information security#Confidentiality|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 [[Digital_rights_management|DRM]] schemes described in
This is done by implementing unique, immutable, and confidential architectural security, which offers hardware-based memory encryption that isolates specific application code and data in memory. This 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.<ref>{{cite web | url=https://blog.quarkslab.com/introduction-to-trusted-execution-environment-arms-trustzone.html | title=Introduction to Trusted Execution Environment: ARM's TrustZone | date=19 June 2018 }}</ref><ref>{{cite web| url=https://globalplatform.org/wp-content/uploads/2018/04/131023-3-TLabs-livre_blanc.pdf | title=Security evaluation of Trusted execution environments: Why and how? | access-date=2024-02-15}}</ref><ref name="oulpita.com">{{cite web |url=https://poulpita.com/2014/02/18/trusted-execution-environment-do-you-have-yours/ |title=Trusted Execution Environment, millions of users have one, do you have yours? |website=Poulpita |date=2014-02-18 |access-date=2017-05-17 |archive-date=2021-01-27 |archive-url=https://web.archive.org/web/20210127231827/https://poulpita.com/2014/02/18/trusted-execution-environment-do-you-have-yours/ |url-status=live }}</ref> A TEE as an isolated execution environment provides security features such as isolated execution, integrity of applications executing with the TEE, and confidentiality of their assets. 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==
The
Commercial TEE solutions based on ARM [[TrustZone]] technology, conforming to the TR1 standard, were later launched, such as Trusted Foundations developed by Trusted Logic.<ref>{{Cite web|url=http://www.trusted-logic.com/IMG/pdf/TRUSTED_LOGIC_TRUSTED_FOUNDATIONS_OMTP_FINAL.pdf|archive-url = https://web.archive.org/web/20140903041544/http://www.trusted-logic.com/IMG/pdf/TRUSTED_LOGIC_TRUSTED_FOUNDATIONS_OMTP_FINAL.pdf|archive-date = 2014-09-03|title = Gemalto's website has moved to Thales}}</ref>
Line 14:
==Details==
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.<ref>{{cite book |last1=Sabt |first1=M |title=2015 IEEE Trustcom/BigDataSE/ISPA |pages=57–64 |last2=Achemlal |first2=M |last3=Bouabdallah |first3=A |chapter=Trusted Execution Environment: What It is, and What It is Not |publisher=IEEE |doi=10.1109/Trustcom.2015.357 |year=2015 |isbn=978-1-4673-7952-6 |s2cid=206775888 |url=https://hal.archives-ouvertes.fr/hal-01246364/file/trustcom_2015_tee_what_it_is_what_it_is_not.pdf |access-date=2020-04-19 |archive-date=2020-07-18 |archive-url=https://web.archive.org/web/20200718094655/https://hal.archives-ouvertes.fr/hal-01246364/file/trustcom_2015_tee_what_it_is_what_it_is_not.pdf |url-status=live }}</ref><ref>{{cite journal |last1=Pinto |first1=S. |last2=Santos |first2=N. |date=2019 |title=Demystifying Arm TrustZone: A Comprehensive Survey |url=https://doi.org/10.1145/3291047 |journal=ACM Computing Surveys |volume=51 |pages=1–36 | doi=10.1145/3291047|s2cid=59337370 |url-access=subscription }}</ref><ref>{{cite journal |last1=Lee |first1=S |last2=Lee |first2=JH |title=TEE based session key establishment protocol for secure infotainment systems |journal=Design Automation for Embedded Systems |volume=22 |issue=3 |pages=215–224 |publisher=Springer |doi=10.1007/s10617-018-9212-5 |year=2018 |s2cid=52081114 }}</ref><ref>{{cite book |last1=Shepherd |first1=C |title=2016 IEEE Trustcom/BigDataSE/ISPA |pages=168–177 |last2=Arfaoui |first2=G |last3=Gurulian |first3=I |last4=Lee |first4=R |last5=Markantonakis |first5=K |last6=Akram |first6=R |last7=Sauveron |first7=D |last8=Conchon |first8=E |chapter=Secure and Trusted Execution: Past, Present, and Future - A Critical Review in the Context of the Internet of Things and Cyber-Physical Systems |publisher=IEEE |doi=10.1109/TrustCom.2016.0060 |year=2016 |isbn=978-1-5090-3205-1 |s2cid=8717045 |url=https://core.ac.uk/download/pdf/77298166.pdf |access-date=2021-05-14 |archive-date=2021-05-14 |archive-url=https://web.archive.org/web/20210514194356/https://core.ac.uk/download/pdf/77298166.pdf |url-status=live }}</ref> Whilst a GlobalPlatform TEE requires hardware isolation, others, such as EMVCo, use the term TEE to refer to both hardware and software-based solutions.<ref>{{cite web |title=Software-Based Mobile Payment Evaluation Process |url=https://www.emvco.com/processes-forms/product-approval/mobile/sbmp |publisher=EMVCo |access-date=2021-10-13 |archive-date=2021-03-02 |archive-url=https://web.archive.org/web/20210302083210/https://www.emvco.com/processes-forms/product-approval/mobile/sbmp/ |url-status=live }}</ref> FIDO uses the concept of TEE in the restricted operating environment for TEEs based on hardware isolation.<ref>{{cite web |title=FIDO Authenticator Allowed Restricted Operating Environments List |url=https://fidoalliance.org/specs/fido-security-requirements-v1.0-fd-20170524/fido-authenticator-allowed-restricted-operating-environments-list_20170524.html |publisher=FIDO Alliance |access-date=2021-10-13 |archive-date=2021-07-13 |archive-url=https://web.archive.org/web/20210713153906/https://fidoalliance.org/specs/fido-security-requirements-v1.0-fd-20170524/fido-authenticator-allowed-restricted-operating-environments-list_20170524.html |url-status=live }}</ref> 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
Service providers, [[mobile network operator]]s (MNO), operating system developers, [[Mobile Application Development|application developers]], device manufacturers, platform providers, and silicon vendors are the main stakeholders contributing to the standardization efforts around the TEE.
To prevent the simulation of hardware with user-controlled software, a so-called "hardware root of trust" is used. This is a [[Trusted_computing#Endorsement_key|set of private keys that are embedded directly into the chip during manufacturing]]; one-time programmable memory such as [[eFuse]]s is usually used on mobile devices. These cannot be changed, even after the 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
When an application is attested, its untrusted components loads its trusted component into memory; the trusted application is protected from modification by untrusted components with hardware. A [[Cryptographic nonce|nonce]] is requested by the untrusted party from the verifier's server and is used as 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 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.<ref>{{cite web | url=https://optee.readthedocs.io/en/latest/building/devices/qemu.html | title=QEMU v7 — OP-TEE documentation documentation | access-date=2022-06-02 | archive-date=2022-06-25 | archive-url=https://web.archive.org/web/20220625012352/https://optee.readthedocs.io/en/latest/building/devices/qemu.html | url-status=live }}</ref>
To simulate hardware in a way
Christian Kison, Jürgen Frinken, and Christof Paar - https://www.iacr.org/archive/ches2015/92930620/92930620.pdf {{Webarchive|url=https://web.archive.org/web/20201116132154/https://www.iacr.org/archive/ches2015/92930620/92930620.pdf |date=2020-11-16 }}</ref><ref>{{Cite news |last1=Cassy |first1=John |last2=Murphy |first2=Paul |date=2002-03-13 |title=How codebreakers cracked the secrets of the smart card |language=en-GB |work=The Guardian |url=https://www.theguardian.com/technology/2002/mar/13/media.citynews |access-date=2023-08-09 |issn=0261-3077 |archive-date=2021-04-07 |archive-url=https://web.archive.org/web/20210407025459/https://www.theguardian.com/technology/2002/mar/13/media.citynews |url-status=live }}</ref><ref>{{Cite web |url=https://spectrum.ieee.org
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 their 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, [[monetization|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 its [[antifeature]]s, like [[Advertising|ads]], tracking and use case restriction for [[market segmentation]].
Line 78:
| Cloud Link TEE
|
| [[GlobalPlatform|GlobalPlatform]]
| Full
| <ref>{{cite web |title=Alibaba Cloud Link Tee V1.1.3 |url=https://globalplatform.org/certified-products/alibaba-cloud-link-tee-pro-edition-v113/ |publisher=GlobalPlatform |access-date=2021-10-13 |archive-date=2021-10-26 |archive-url=https://web.archive.org/web/20211026232042/https://globalplatform.org/certified-products/alibaba-cloud-link-tee-pro-edition-v113/ |url-status=live }}</ref>
Line 122:
|
|
| <ref>{{cite web |title=ProvenCore |url=https://provenrun.com/provencore/ |publisher=ProvenRun |access-date=2024-06-23 |archive-date=2024-02-26 |archive-url=
|-
| [[Qualcomm]]
Line 132:
|-
| [[Samsung]]
| TEEgris and [[Samsung Knox|Knox]]
| ARM TrustZone
| GlobalPlatform
Line 143:
| GlobalPlatform
|
| <ref>{{cite web |title=Enhance Device Security With T6 |url=https://www.trustkernel.com/en/products/tee/t6.html |publisher=TrustKernel |access-date=2021-10-13 |archive-date=2021-10-29 |archive-url=https://web.archive.org/web/20211029203221/https://www.trustkernel.com/en/products/tee/t6.html |url-status=live }}</ref>
|-
| Trustonic
Line 150:
| GlobalPlatform
| Full
| <ref name=kinibi>{{cite web |title=Certificate of Security Evaluation - Kinibi 410A |url=https://globalplatform.org/wp-content/uploads/2019/12/GP-TEE-2019_03-CR-1.0_GP190005-Certificate-and-Certification-Report_20191203.pdf |publisher=GlobalPlatform |access-date=2021-10-13 |archive-date=2021-10-26 |archive-url=https://web.archive.org/web/20211026232004/https://globalplatform.org/wp-content/uploads/2019/12/GP-TEE-2019_03-CR-1.0_GP190005-Certificate-and-Certification-Report_20191203.pdf |url-status=live }}</ref>
|-
| Trustonic
Line 172:
| GlobalPlatform
| Full
| <ref>{{cite web |title=WatchTrust 2.1.1 on SC9860 |url=https://globalplatform.org/wp-content/uploads/2018/09/GP-TEE-2018_01-CR-1.0_GP170003-Certificate-Certification-Report_20180904-signed-1.pdf |publisher=GlobalPlatform |access-date=2021-10-13 |archive-date=2021-10-26 |archive-url=https://web.archive.org/web/20211026232006/https://globalplatform.org/wp-content/uploads/2018/09/GP-TEE-2018_01-CR-1.0_GP170003-Certificate-Certification-Report_20180904-signed-1.pdf |url-status=live }}</ref>
|}
Line 179:
* [[AMD]]:
** [[AMD Platform Security Processor|Platform Security Processor]] (PSP)<ref name="amd.com">{{cite web|url=https://www.amd.com/en-us/innovations/software-technologies/security|title=AMD Secure Processor (Built-in technology)|website=Amd.com|access-date=2017-09-17|archive-date=2017-09-19|archive-url=https://web.archive.org/web/20170919154841/http://www.amd.com/en-us/innovations/software-technologies/security|url-status=live}}</ref><ref>{{cite web |url=https://classic.regonline.com/custImages/360000/369552/TCC%20PPTs/TCC2013_VanDoorn.pdf |title=Secure Hardware and the Creation of an Open Trusted Ecosystem |website=Classic.regonline.com |access-date=2017-05-17 |archive-date=2017-01-15 |archive-url=https://web.archive.org/web/20170115011459/https://classic.regonline.com/custImages/360000/369552/TCC%20PPTs/TCC2013_VanDoorn.pdf |url-status=live }}</ref><ref>{{cite web |last=Chiappetta |first=Marco |url=http://hothardware.com/Reviews/AMD-Beema-and-Mullins-Mainstream-and-LowPower-2014-APUs-Tested/?page=2#!bFIw4K |title=AMD Beema and Mullins Low Power 2014 APUs Tested - Page 2 |publisher=HotHardware |date=2014-04-29 |access-date=2017-05-17 |archive-date=2017-04-07 |archive-url=https://web.archive.org/web/20170407031130/http://hothardware.com/reviews/amd-beema-and-mullins-mainstream-and-lowpower-2014-apus-tested?page=2#!bFIw4K |url-status=dead }}</ref>
** AMD Secure Encrypted Virtualization (SEV)<ref name="OpenVirtualization">{{cite web|date=April 21, 2016|title=AMD MEMORY ENCRYPTION|url=https://developer.amd.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf|
* [[ARM architecture|ARM]]:
** [[TrustZone]]<ref>{{cite web|url=https://community.arm.com/cfs-file/__key/telligent-evolution-components-attachments/01-2142-00-00-00-00-51-36/GlobalPlatform-based-Trusted-Execution-Environment-and-TrustZone-R.pdf|title=GlobalPlatform based Trusted Execution Environment and TrustZone Ready|website=Arm.com|access-date=2020-04-24|archive-date=2020-07-04|archive-url=https://web.archive.org/web/20200704081700/https://community.arm.com/cfs-file/__key/telligent-evolution-components-attachments/01-2142-00-00-00-00-51-36/GlobalPlatform-based-Trusted-Execution-Environment-and-TrustZone-R.pdf|url-status=live}}</ref>
Line 187:
** [[IBM Secure Execution]],<ref>{{cite web|url=https://developer.ibm.com/blogs/technical-overview-of-secure-execution-for-linux-on-ibm-z/|title=Technical overview of Secure Execution for Linux on IBM Z|website=ibm.com|access-date=2020-04-15|archive-date=2020-04-15|archive-url=https://web.archive.org/web/20200415005646/https://developer.ibm.com/blogs/technical-overview-of-secure-execution-for-linux-on-ibm-z/|url-status=live}}</ref> introduced in IBM z15 and LinuxONE III generation machines on April 14, 2020.
* [[Intel]]:
** [[
*** [[Trusted Execution Technology]] (TXT)
*** [[Software Guard Extensions]] (SGX)<ref>{{cite web |url=http://www.cs.helsinki.fi/group/secures/CCS-tutorial/tutorial-slides.pdf |title=The Trusted Execution Environments on Mobile Devices |website=Cs.helsinki.fi |access-date=2017-05-17 |archive-date=2016-04-18 |archive-url=https://web.archive.org/web/20160418104838/https://www.cs.helsinki.fi/group/secures/CCS-tutorial/tutorial-slides.pdf |url-status=live }}</ref>
*** "Silent Lake" (available on Atom processors)<ref>{{cite web|url=http://wenku.baidu.com/view/cb01a885c8d376eeaeaa31a9.html|title=WW46_2014_MCG_Tablet_Roadmap_图文_百度文库|website=Wenku.baidu.com|access-date=2017-01-04|archive-date=2017-02-27|archive-url=https://web.archive.org/web/20170227010510/http://wenku.baidu.com/view/cb01a885c8d376eeaeaa31a9.html|url-status=live}}</ref><ref>{{cite web|url=https://github.com/CyanogenMod/android_device_asus_mofd-common/blob/b52bb27be47485df8646340b43a97f2dda974385/sepolicy/file.te|title=CyanogenMod/android_device_asus_mofd-common|website=GitHub|access-date=2017-01-04|archive-date=2017-03-24|archive-url=https://web.archive.org/web/20170324095520/https://github.com/CyanogenMod/android_device_asus_mofd-common/blob/b52bb27be47485df8646340b43a97f2dda974385/sepolicy/file.te|url-status=live}}</ref><ref>{{cite web|url=https://github.com/heidiao/sfp_m2_bt/blob/master/source/device/intel/cherrytrail/cht_cr_rvp/init.rc|title=heidiao/sfp_m2_bt|website=GitHub|access-date=2017-01-04|archive-date=2017-03-24|archive-url=https://web.archive.org/web/20170324095926/https://github.com/heidiao/sfp_m2_bt/blob/master/source/device/intel/cherrytrail/cht_cr_rvp/init.rc|url-status=live}}</ref> * [[RISC-V]]:
**
==See also==
|