draft-ietf-teep-architecture-12.txt   draft-ietf-teep-architecture-13.txt 
TEEP M. Pei TEEP M. Pei
Internet-Draft Broadcom Internet-Draft Broadcom
Intended status: Informational H. Tschofenig Intended status: Informational H. Tschofenig
Expires: January 14, 2021 Arm Limited Expires: May 6, 2021 Arm Limited
D. Thaler D. Thaler
Microsoft Microsoft
D. Wheeler D. Wheeler
Intel Intel
July 13, 2020 November 02, 2020
Trusted Execution Environment Provisioning (TEEP) Architecture Trusted Execution Environment Provisioning (TEEP) Architecture
draft-ietf-teep-architecture-12 draft-ietf-teep-architecture-13
Abstract Abstract
A Trusted Execution Environment (TEE) is an environment that enforces A Trusted Execution Environment (TEE) is an environment that enforces
that any code within that environment cannot be tampered with, and that any code within that environment cannot be tampered with, and
that any data used by such code cannot be read or tampered with by that any data used by such code cannot be read or tampered with by
any code outside that environment. This architecture document any code outside that environment. This architecture document
motivates the design and standardization of a protocol for managing motivates the design and standardization of a protocol for managing
the lifecycle of trusted applications running inside such a TEE. the lifecycle of trusted applications running inside such a TEE.
skipping to change at page 1, line 40 skipping to change at page 1, line 40
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 14, 2021. This Internet-Draft will expire on May 6, 2021.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 29 skipping to change at page 2, line 29
not be created outside the IETF Standards Process, except to format not be created outside the IETF Standards Process, except to format
it for publication as an RFC or to translate it into languages other it for publication as an RFC or to translate it into languages other
than English. than English.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1. Payment . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.1. Payment . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2. Authentication . . . . . . . . . . . . . . . . . . . . . 7 3.2. Authentication . . . . . . . . . . . . . . . . . . . . . 8
3.3. Internet of Things . . . . . . . . . . . . . . . . . . . 8 3.3. Internet of Things . . . . . . . . . . . . . . . . . . . 8
3.4. Confidential Cloud Computing . . . . . . . . . . . . . . 8 3.4. Confidential Cloud Computing . . . . . . . . . . . . . . 8
4. Architecture . . . . . . . . . . . . . . . . . . . . . . . . 8 4. Architecture . . . . . . . . . . . . . . . . . . . . . . . . 8
4.1. System Components . . . . . . . . . . . . . . . . . . . . 8 4.1. System Components . . . . . . . . . . . . . . . . . . . . 8
4.2. Multiple TEEs in a Device . . . . . . . . . . . . . . . . 11 4.2. Multiple TEEs in a Device . . . . . . . . . . . . . . . . 11
4.3. Multiple TAMs and Relationship to TAs . . . . . . . . . . 13 4.3. Multiple TAMs and Relationship to TAs . . . . . . . . . . 13
4.4. Untrusted Apps, Trusted Apps, and Personalization Data . 14 4.4. Untrusted Apps, Trusted Apps, and Personalization Data . 14
4.4.1. Example: Application Delivery Mechanisms in Intel SGX 16 4.4.1. Example: Application Delivery Mechanisms in Intel SGX 16
4.4.2. Example: Application Delivery Mechanisms in Arm 4.4.2. Example: Application Delivery Mechanisms in Arm
TrustZone . . . . . . . . . . . . . . . . . . . . . . 16 TrustZone . . . . . . . . . . . . . . . . . . . . . . 16
4.5. Entity Relations . . . . . . . . . . . . . . . . . . . . 17 4.5. Entity Relations . . . . . . . . . . . . . . . . . . . . 17
5. Keys and Certificate Types . . . . . . . . . . . . . . . . . 18 5. Keys and Certificate Types . . . . . . . . . . . . . . . . . 18
5.1. Trust Anchors in a TEEP Agent . . . . . . . . . . . . . . 20 5.1. Trust Anchors in a TEEP Agent . . . . . . . . . . . . . . 20
5.2. Trust Anchors in a TEE . . . . . . . . . . . . . . . . . 20 5.2. Trust Anchors in a TEE . . . . . . . . . . . . . . . . . 20
5.3. Trust Anchors in a TAM . . . . . . . . . . . . . . . . . 20 5.3. Trust Anchors in a TAM . . . . . . . . . . . . . . . . . 20
5.4. Scalability . . . . . . . . . . . . . . . . . . . . . . . 20 5.4. Scalability . . . . . . . . . . . . . . . . . . . . . . . 20
5.5. Message Security . . . . . . . . . . . . . . . . . . . . 21 5.5. Message Security . . . . . . . . . . . . . . . . . . . . 21
6. TEEP Broker . . . . . . . . . . . . . . . . . . . . . . . . . 21 6. TEEP Broker . . . . . . . . . . . . . . . . . . . . . . . . . 21
6.1. Role of the TEEP Broker . . . . . . . . . . . . . . . . . 22 6.1. Role of the TEEP Broker . . . . . . . . . . . . . . . . . 22
6.2. TEEP Broker Implementation Consideration . . . . . . . . 22 6.2. TEEP Broker Implementation Consideration . . . . . . . . 22
6.2.1. TEEP Broker APIs . . . . . . . . . . . . . . . . . . 22 6.2.1. TEEP Broker APIs . . . . . . . . . . . . . . . . . . 23
6.2.2. TEEP Broker Distribution . . . . . . . . . . . . . . 23 6.2.2. TEEP Broker Distribution . . . . . . . . . . . . . . 24
7. Attestation . . . . . . . . . . . . . . . . . . . . . . . . . 23 7. Attestation . . . . . . . . . . . . . . . . . . . . . . . . . 24
7.1. Information Required in TEEP Claims . . . . . . . . . . . 25 8. Algorithm and Attestation Agility . . . . . . . . . . . . . . 26
8. Algorithm and Attestation Agility . . . . . . . . . . . . . . 25 9. Security Considerations . . . . . . . . . . . . . . . . . . . 27
9. Security Considerations . . . . . . . . . . . . . . . . . . . 26 9.1. Broker Trust Model . . . . . . . . . . . . . . . . . . . 27
9.1. Broker Trust Model . . . . . . . . . . . . . . . . . . . 26 9.2. Data Protection . . . . . . . . . . . . . . . . . . . . . 27
9.2. Data Protection . . . . . . . . . . . . . . . . . . . . . 26 9.3. Compromised REE . . . . . . . . . . . . . . . . . . . . . 28
9.3. Compromised REE . . . . . . . . . . . . . . . . . . . . . 27 9.4. CA Compromise or Expiry of CA Certificate . . . . . . . . 29
9.4. Compromised CA . . . . . . . . . . . . . . . . . . . . . 28 9.5. Compromised TAM . . . . . . . . . . . . . . . . . . . . . 29
9.5. Compromised TAM . . . . . . . . . . . . . . . . . . . . . 28 9.6. Malicious TA Removal . . . . . . . . . . . . . . . . . . 29
9.6. Malicious TA Removal . . . . . . . . . . . . . . . . . . 28 9.7. Certificate Expiry and Renewal . . . . . . . . . . . . . 30
9.7. Certificate Expiry and Renewal . . . . . . . . . . . . . 29 9.8. Keeping Secrets from the TAM . . . . . . . . . . . . . . 31
9.8. Keeping Secrets from the TAM . . . . . . . . . . . . . . 30 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 30 11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 31
11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 30 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 31
12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 30 13. Informative References . . . . . . . . . . . . . . . . . . . 31
13. Informative References . . . . . . . . . . . . . . . . . . . 30 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 32
1. Introduction 1. Introduction
Applications executing in a device are exposed to many different Applications executing in a device are exposed to many different
attacks intended to compromise the execution of the application or attacks intended to compromise the execution of the application or
reveal the data upon which those applications are operating. These reveal the data upon which those applications are operating. These
attacks increase with the number of other applications on the device, attacks increase with the number of other applications on the device,
with such other applications coming from potentially untrustworthy with such other applications coming from potentially untrustworthy
sources. The potential for attacks further increases with the sources. The potential for attacks further increases with the
complexity of features and applications on devices, and the complexity of features and applications on devices, and the
skipping to change at page 6, line 15 skipping to change at page 6, line 12
administration rights. In this case, the enterprise appoints a administration rights. In this case, the enterprise appoints a
Device Administrator that is not the device owner. Device Administrator that is not the device owner.
- Device User: A human being that uses a device. Many devices have - Device User: A human being that uses a device. Many devices have
a single device user. Some devices have a primary device user a single device user. Some devices have a primary device user
with other human beings as secondary device users (e.g., parent with other human beings as secondary device users (e.g., parent
allowing children to use their tablet or laptop). Other devices allowing children to use their tablet or laptop). Other devices
are not used by a human being and hence have no device user. are not used by a human being and hence have no device user.
Relates to Device Owner and Device Administrator. Relates to Device Owner and Device Administrator.
- Personalization Data: A set of configuration data that is specific
to the device or user. The Personalization Data may depend on the
type of TEE, a particular TEE instance, the TA, and even the user
of the device; an example of Personalization Data might be a
secret symmetric key used by a TA to communicate with some
service.
- Raw Public Key: The raw public key only consists of the - Raw Public Key: The raw public key only consists of the
SubjectPublicKeyInfo structure of a PKIX certificate that carries SubjectPublicKeyInfo structure of a PKIX certificate [RFC5280]
the parameters necessary to describe the public key. Other that carries the parameters necessary to describe the public key.
serialization formats that do not rely on ASN.1 may also be used. Other serialization formats that do not rely on ASN.1 may also be
used.
- Rich Execution Environment (REE): An environment that is provided - Rich Execution Environment (REE): An environment that is provided
and governed by a typical OS (e.g., Linux, Windows, Android, iOS), and governed by a typical OS (e.g., Linux, Windows, Android, iOS),
potentially in conjunction with other supporting operating systems potentially in conjunction with other supporting operating systems
and hypervisors; it is outside of any TEE. This environment and and hypervisors; it is outside of any TEE. This environment and
applications running on it are considered untrusted (or more applications running on it are considered untrusted (or more
precisely, less trusted than a TEE). precisely, less trusted than a TEE).
- Trust Anchor: As defined in [RFC6024] and - Trust Anchor: As defined in [RFC6024] and
[I-D.ietf-suit-manifest], "A trust anchor represents an [I-D.ietf-suit-manifest], "A trust anchor represents an
skipping to change at page 6, line 50 skipping to change at page 7, line 8
[I-D.ietf-suit-manifest], a Trust Anchor Store must resist [I-D.ietf-suit-manifest], a Trust Anchor Store must resist
modification against unauthorized insertion, deletion, and modification against unauthorized insertion, deletion, and
modification. modification.
- Trusted Application (TA): An application (or, in some - Trusted Application (TA): An application (or, in some
implementations, an application component) that runs in a TEE. implementations, an application component) that runs in a TEE.
- Trusted Application (TA) Developer: An entity that develops one or - Trusted Application (TA) Developer: An entity that develops one or
more TAs. more TAs.
- Trusted Application (TA) Signer: An entity that signs a TA with a - Trusted Component (TA) Signer: An entity that signs a Trusted
key that a TEE will trust. The signer might or might not be the Component with a key that a TEE will trust. The signer might or
same entity as the TA Developer. For example, a TA might be might not be the same entity as the TA Developer. For example, a
signed (or re-signed) by a Device Administrator if the TEE will TA might be signed (or re-signed) by a Device Administrator if the
only trust the Device Administrator. A TA might also be TEE will only trust the Device Administrator. A TA might also be
encrypted, if the code is considered confidential. encrypted, if the code is considered confidential.
- Trusted Application Manager (TAM): An entity that manages Trusted - Trusted Application Manager (TAM): An entity that manages Trusted
Applications (TAs) running in TEEs of various devices. Components running in TEEs of various devices.
- Trusted Component: A set of code and/or data in a TEE managed as a
unit by a Trusted Application Manager. Trusted Applications and
Personalization Data are thus managed by being included in Trusted
Components. Trusted OS code or trusted firmware can also be
expressed as Trusted Components that a TA depends on.
- Trusted Execution Environment (TEE): An execution environment that - Trusted Execution Environment (TEE): An execution environment that
enforces that only authorized code can execute within the TEE, and enforces that only authorized code can execute within the TEE, and
data used by that code cannot be read or tampered with by code data used by that code cannot be read or tampered with by code
outside the TEE. A TEE also generally has a device unique outside the TEE. A TEE also generally has a device unique
credential that cannot be cloned. There are multiple technologies credential that cannot be cloned. There are multiple technologies
that can be used to implement a TEE, and the level of security that can be used to implement a TEE, and the level of security
achieved varies accordingly. In addition, TEEs typically use an achieved varies accordingly. In addition, TEEs typically use an
isolation mechanism between Trusted Applications to ensure that isolation mechanism between Trusted Applications to ensure that
one TA cannot read, modify or delete the data and code of another one TA cannot read, modify or delete the data and code of another
skipping to change at page 8, line 16 skipping to change at page 8, line 29
The Internet of Things (IoT) has been posing threats to critical The Internet of Things (IoT) has been posing threats to critical
infrastructure because of weak security in devices. It is desirable infrastructure because of weak security in devices. It is desirable
that IoT devices can prevent malware from manipulating actuators that IoT devices can prevent malware from manipulating actuators
(e.g., unlocking a door), or stealing or modifying sensitive data, (e.g., unlocking a door), or stealing or modifying sensitive data,
such as authentication credentials in the device. A TEE can be the such as authentication credentials in the device. A TEE can be the
best way to implement such IoT security functions. best way to implement such IoT security functions.
3.4. Confidential Cloud Computing 3.4. Confidential Cloud Computing
A tenant can store sensitive data in a TEE in a cloud computing A tenant can store sensitive data, such as customer details or credit
server such that only the tenant can access the data, preventing the card numbers, in a TEE in a cloud computing server such that only the
cloud hosting provider from accessing the data. A tenant can run TAs tenant can access the data, preventing the cloud hosting provider
inside a server TEE for secure operation and enhanced data security. from accessing the data. A tenant can run TAs inside a server TEE
This provides benefits not only to tenants with better data security for secure operation and enhanced data security. This provides
but also to cloud hosting providers for reduced liability and benefits not only to tenants with better data security but also to
increased cloud adoption. cloud hosting providers for reduced liability and increased cloud
adoption.
4. Architecture 4. Architecture
4.1. System Components 4.1. System Components
Figure 1 shows the main components in a typical device with an REE. Figure 1 shows the main components in a typical device with an REE.
Full descriptions of components not previously defined are provided Full descriptions of components not previously defined are provided
below. Interactions of all components are further explained in the below. Interactions of all components are further explained in the
following paragraphs. following paragraphs.
+-------------------------------------------+ +-------------------------------------------+
| Device | | Device | Trusted Component
| +--------+ | TA Developer | +--------+ | Signer
| +-------------+ | |-----------+ | | +-------------+ | |-----------+ |
| | TEE-1 | | TEEP |---------+ | | | | TEE-1 | | TEEP |---------+ | |
| | +--------+ | +----| Broker | | | | +--------+ | | | +--------+ | +----| Broker | | | | +--------+ |
| | | TEEP | | | | |<---+ | | +->| |<-+ | | | TEEP | | | | |<---+ | | +->| |<-+
| | | Agent |<----+ | | | | | +-| TAM-1 | | | | Agent |<----+ | | | | | +-| TAM-1 |
| | +--------+ | | |<-+ | | +->| | |<-+ | | +--------+ | | |<-+ | | +->| | |<-+
| | | +--------+ | | | | +--------+ | | | | +--------+ | | | | +--------+ |
| | +---+ +---+ | | | | | TAM-2 | | | | +---+ +---+ | | | | | TAM-2 | |
| +-->|TA1| |TA2| | +-------+ | | | +--------+ | | +-->|TA1| |TA2| | +-------+ | | | +--------+ |
| | | | | | |<---------| App-2 |--+ | | | | | | | | | |<---------| App-2 |--+ | | |
| | | +---+ +---+ | +-------+ | | | Device Administrator | | | +---+ +---+ | +-------+ | | | Device Administrator
| | +-------------+ | App-1 | | | | | | +-------------+ | App-1 | | | |
| | | | | | | | | | | | | |
| +--------------------| |---+ | | | +--------------------| |---+ | |
| | |--------+ | | | |--------+ |
| +-------+ | | +-------+ |
+-------------------------------------------+ +-------------------------------------------+
Figure 1: Notional Architecture of TEEP Figure 1: Notional Architecture of TEEP
- TA Signers and Device Administrators utilize the services of a TAM - Trusted Component Signers and Device Administrators utilize the
to manage TAs on devices. TA Signers do not directly interact services of a TAM to manage TAs on devices. Trusted Component
with devices. Device Administators may elect to use a TAM for Signers do not directly interact with devices. Device
remote administration of TAs instead of managing each device Administators may elect to use a TAM for remote administration of
directly. TAs instead of managing each device directly.
- Trusted Application Manager (TAM): A TAM is responsible for - Trusted Application Manager (TAM): A TAM is responsible for
performing lifecycle management activity on TAs on behalf of TA performing lifecycle management activity on Trusted Components on
Signers and Device Administrators. This includes installation and behalf of Trusted Component Signers and Device Administrators.
deletion of TAs, and may include, for example, over-the-air This includes installation and deletion of Trusted Components, and
updates to keep TAs up-to-date and clean up when a version should may include, for example, over-the-air updates to keep Trusted
be removed. TAMs may provide services that make it easier for TA Components up-to-date and clean up when one should be removed.
Signers or Device Administators to use the TAM's service to manage TAMs may provide services that make it easier for Trusted
multiple devices, although that is not required of a TAM. Component Signers or Device Administators to use the TAM's service
to manage multiple devices, although that is not required of a
TAM.
The TAM performs its management of TAs on the device through The TAM performs its management of Trusted Components on the
interactions with a device's TEEP Broker, which relays messages device through interactions with a device's TEEP Broker, which
between a TAM and a TEEP Agent running inside the TEE. TEEP relays messages between a TAM and a TEEP Agent running inside the
authentication is performed between a TAM and a TEEP Agent. TEE. TEEP authentication is performed between a TAM and a TEEP
Agent.
As shown in Figure 1, the TAM cannot directly contact a TEEP As shown in Figure 1, the TAM cannot directly contact a TEEP
Agent, but must wait for the TEEP Broker to contact the TAM Agent, but must wait for the TEEP Broker to contact the TAM
requesting a particular service. This architecture is intentional requesting a particular service. This architecture is intentional
in order to accommodate network and application firewalls that in order to accommodate network and application firewalls that
normally protect user and enterprise devices from arbitrary normally protect user and enterprise devices from arbitrary
connections from external network entities. connections from external network entities.
A TAM may be publicly available for use by many TA Signers, or a A TAM may be publicly available for use by many Trusted Component
TAM may be private, and accessible by only one or a limited number Signers, or a TAM may be private, and accessible by only one or a
of TA Signers. It is expected that many manufacturers and network limited number of Trusted Component Signers. It is expected that
carriers will run their own private TAM. many manufacturers and network carriers will run their own private
TAM.
A TA Signer or Device Administrator chooses a particular TAM based A Trusted Component Signer or Device Administrator chooses a
on whether the TAM is trusted by a device or set of devices. The particular TAM based on whether the TAM is trusted by a device or
TAM is trusted by a device if the TAM's public key is, or chains set of devices. The TAM is trusted by a device if the TAM's
up to, an authorized Trust Anchor in the device. A TA Signer or public key is, or chains up to, an authorized Trust Anchor in the
Device Administrator may run their own TAM, but the devices they device. A Trusted Component Signer or Device Administrator may
wish to manage must include this TAM's public key/certificate run their own TAM, but the devices they wish to manage must
[RFC5280], or a certificate it chains up to, in the Trust Anchor include this TAM's public key or certificate, or a certificate it
Store. chains up to, in the Trust Anchor Store.
A TA Signer or Device Administrator is free to utilize multiple A Trusted Component Signer or Device Administrator is free to
TAMs. This may be required for managing TAs on multiple different utilize multiple TAMs. This may be required for managing Trusted
types of devices from different manufacturers, or mobile devices Components on multiple different types of devices from different
on different network carriers, since the Trust Anchor Store on manufacturers, or mobile devices on different network carriers,
these different devices may contain different TAMs. A Device since the Trust Anchor Store on these different devices may
Administrator may be able to add their own TAM's public key or contain different TAMs. A Device Administrator may be able to add
certificate to the Trust Anchor Store on all their devices, their own TAM's public key or certificate to the Trust Anchor
overcoming this limitation. Store on all their devices, overcoming this limitation.
Any entity is free to operate a TAM. For a TAM to be successful, Any entity is free to operate a TAM. For a TAM to be successful,
it must have its public key or certificate installed in a device's it must have its public key or certificate installed in a device's
Trust Anchor Store. A TAM may set up a relationship with device Trust Anchor Store. A TAM may set up a relationship with device
manufacturers or network carriers to have them install the TAM's manufacturers or network carriers to have them install the TAM's
keys in their device's Trust Anchor Store. Alternatively, a TAM keys in their device's Trust Anchor Store. Alternatively, a TAM
may publish its certificate and allow Device Administrators to may publish its certificate and allow Device Administrators to
install the TAM's certificate in their devices as an after-market- install the TAM's certificate in their devices as an after-market-
action. action.
skipping to change at page 11, line 14 skipping to change at page 11, line 17
Broker that runs in an REE). A TEEP Agent in the TEE may parse Broker that runs in an REE). A TEEP Agent in the TEE may parse
requests or forward requests to other processing modules in a TEE, requests or forward requests to other processing modules in a TEE,
which is up to a TEE provider's implementation. A response which is up to a TEE provider's implementation. A response
message corresponding to a TAM request is sent back to the TAM, message corresponding to a TAM request is sent back to the TAM,
again typically relayed via a TEEP Broker. again typically relayed via a TEEP Broker.
- Certification Authority (CA): A CA is an entity that issues - Certification Authority (CA): A CA is an entity that issues
digital certificates (especially X.509 certificates) and vouches digital certificates (especially X.509 certificates) and vouches
for the binding between the data items in a certificate [RFC4949]. for the binding between the data items in a certificate [RFC4949].
Certificates are then used for authenticating a device, a TAM, or Certificates are then used for authenticating a device, a TAM, or
a TA Signer, as discussed in Section 5. The CAs do not need to be a Trusted Component Signer, as discussed in Section 5. The CAs do
the same; different CAs can be chosen by each TAM, and different not need to be the same; different CAs can be chosen by each TAM,
device CAs can be used by different device manufacturers. and different device CAs can be used by different device
manufacturers.
4.2. Multiple TEEs in a Device 4.2. Multiple TEEs in a Device
Some devices might implement multiple TEEs. In these cases, there Some devices might implement multiple TEEs. In these cases, there
might be one shared TEEP Broker that interacts with all the TEEs in might be one shared TEEP Broker that interacts with all the TEEs in
the device. However, some TEEs (for example, SGX [SGX]) present the device. However, some TEEs (for example, SGX [SGX]) present
themselves as separate containers within memory without a controlling themselves as separate containers within memory without a controlling
manager within the TEE. As such, there might be multiple TEEP manager within the TEE. As such, there might be multiple TEEP
Brokers in the REE, where each TEEP Broker communicates with one or Brokers in the REE, where each TEEP Broker communicates with one or
more TEEs associated with it. more TEEs associated with it.
skipping to change at page 12, line 5 skipping to change at page 12, line 5
It is up to the REE and the Untrusted Applications how they select It is up to the REE and the Untrusted Applications how they select
the correct TEEP Broker. Verification that the correct TA has been the correct TEEP Broker. Verification that the correct TA has been
reached then becomes a matter of properly verifying TA attestations, reached then becomes a matter of properly verifying TA attestations,
which are unforgeable. which are unforgeable.
The multiple TEEP Broker approach is shown in the diagram below. For The multiple TEEP Broker approach is shown in the diagram below. For
brevity, TEEP Broker 2 is shown interacting with only one TAM and brevity, TEEP Broker 2 is shown interacting with only one TAM and
Untrusted Application and only one TEE, but no such limitations are Untrusted Application and only one TEE, but no such limitations are
intended to be implied in the architecture. intended to be implied in the architecture.
+-------------------------------------------+ +-------------------------------------------+ Trusted
| Device | | Device | Component
| | TA Signer | | Signer
| +-------------+ | | | +-------------+ | |
| | TEE-1 | | | | | TEE-1 | | |
| | +-------+ | +--------+ | +--------+ | | | +-------+ | +--------+ | +--------+ |
| | | TEEP | | | TEEP |------------->| |<-+ | | | TEEP | | | TEEP |------------->| |<-+
| | | Agent |<----------| Broker | | | | TA | | | Agent |<----------| Broker | | | | TA
| | | 1 | | | 1 |---------+ | | | | | 1 | | | 1 |---------+ | |
| | +-------+ | | | | | | | | | +-------+ | | | | | | |
| | | | |<---+ | | | | | | | | |<---+ | | | |
| | +---+ +---+ | | | | | | +-| TAM-1 |Policy | | +---+ +---+ | | | | | | +-| TAM-1 |Policy
| | |TA1| |TA2| | | |<-+ | | +->| | |<-+ | | |TA1| |TA2| | | |<-+ | | +->| | |<-+
skipping to change at page 12, line 50 skipping to change at page 12, line 50
+-------------------------------------------+ +-------------------------------------------+
Figure 2: Notional Architecture of TEEP with multiple TEEs Figure 2: Notional Architecture of TEEP with multiple TEEs
In the diagram above, TEEP Broker 1 controls interactions with the In the diagram above, TEEP Broker 1 controls interactions with the
TAs in TEE-1, and TEEP Broker 2 controls interactions with the TAs in TAs in TEE-1, and TEEP Broker 2 controls interactions with the TAs in
TEE-2. This presents some challenges for a TAM in completely TEE-2. This presents some challenges for a TAM in completely
managing the device, since a TAM may not interact with all the TEEP managing the device, since a TAM may not interact with all the TEEP
Brokers on a particular platform. In addition, since TEEs may be Brokers on a particular platform. In addition, since TEEs may be
physically separated, with wholly different resources, there may be physically separated, with wholly different resources, there may be
no need for TEEP Brokers to share information on installed TAs or no need for TEEP Brokers to share information on installed Trusted
resource usage. Components or resource usage.
4.3. Multiple TAMs and Relationship to TAs 4.3. Multiple TAMs and Relationship to TAs
As shown in Figure 2, a TEEP Broker provides communication between As shown in Figure 2, a TEEP Broker provides communication between
one or more TEEP Agents and one or more TAMs. The selection of which one or more TEEP Agents and one or more TAMs. The selection of which
TAM to communicate with might be made with or without input from an TAM to communicate with might be made with or without input from an
Untrusted Application, but is ultimately the decision of a TEEP Untrusted Application, but is ultimately the decision of a TEEP
Agent. Agent.
A TEEP Agent is assumed to be able to determine, for any given TA, A TEEP Agent is assumed to be able to determine, for any given
whether that TA is installed (or minimally, is running) in a TEE with Trusted Component, whether that Trusted Component is installed (or
which the TEEP Agent is associated. minimally, is running) in a TEE with which the TEEP Agent is
associated.
Each TA is digitally signed, protecting its integrity, and linking Each Trusted Component is digitally signed, protecting its integrity,
the TA back to the TA Signer. The TA Signer is often the TA and linking the Trusted Component back to the Trusted Component
Developer, but in some cases might be another party such as a Device Signer. The Trusted Component Signer is often the TA Developer, but
Administrator or other party to whom the code has been licensed (in in some cases might be another party such as a Device Administrator
which case the same code might be signed by multiple licensees and or other party to whom the code has been licensed (in which case the
distributed as if it were different TAs). same code might be signed by multiple licensees and distributed as if
it were different TAs).
A TA Signer selects one or more TAMs and communicates the TA(s) to A Trusted Component Signer selects one or more TAMs and communicates
the TAM. For example, the TA Signer might choose TAMs based upon the the Trusted Component(s) to the TAM. For example, the Trusted
markets into which the TAM can provide access. There may be TAMs Component Signer might choose TAMs based upon the markets into which
that provide services to specific types of devices, or device the TAM can provide access. There may be TAMs that provide services
operating systems, or specific geographical regions or network to specific types of devices, or device operating systems, or
carriers. A TA Signer may be motivated to utilize multiple TAMs in specific geographical regions or network carriers. A Trusted
order to maximize market penetration and availability on multiple Component Signer may be motivated to utilize multiple TAMs in order
types of devices. This means that the same TA will often be to maximize market penetration and availability on multiple types of
devices. This means that the same Trusted Component will often be
available through multiple TAMs. available through multiple TAMs.
When the developer of an Untrusted Application that depends on a TA When the developer of an Untrusted Application that depends on a
publishes the Untrusted Application to an app store or other app Trusted Component publishes the Untrusted Application to an app store
repository, the developer optionally binds the Untrusted Application or other app repository, the developer optionally binds the Untrusted
with a manifest that identifies what TAMs can be contacted for the Application with a manifest that identifies what TAMs can be
TA. In some situations, a TA may only be available via a single TAM contacted for the Trusted Component. In some situations, a Trusted
- this is likely the case for enterprise applications or TA Signers Component may only be available via a single TAM - this is likely the
serving a closed community. For broad public apps, there will likely case for enterprise applications or Trusted Component Signers serving
be multiple TAMs in the manifest - one servicing one brand of mobile a closed community. For broad public apps, there will likely be
device and another servicing a different manufacturer, etc. Because multiple TAMs in the Untrusted Application's manifest - one servicing
different devices and different manufacturers trust different TAMs, one brand of mobile device and another servicing a different
the manifest can include multiple TAMs that support the required TA. manufacturer, etc. Because different devices and different
manufacturers trust different TAMs, the manifest can include multiple
TAMs that support the required Trusted Component.
When a TEEP Broker receives a request (see the RequestTA API in When a TEEP Broker receives a request (see the RequestTA API in
Section 6.2.1) from an Untrusted Application to install a TA, a list Section 6.2.1) from an Untrusted Application to install a Trusted
of TAM URIs may be provided for that TA, and the request is passed to Component, a list of TAM URIs may be provided for that Trusted
the TEEP Agent. If the TEEP Agent decides that the TA needs to be Component, and the request is passed to the TEEP Agent. If the TEEP
installed, the TEEP Agent selects a single TAM URI that is consistent Agent decides that the Trusted Component needs to be installed, the
with the list of trusted TAMs provisioned in the TEEP Agent, invokes TEEP Agent selects a single TAM URI that is consistent with the list
the HTTP transport for TEEP to connect to the TAM URI, and begins a of trusted TAMs provisioned in the TEEP Agent, invokes the HTTP
TEEP protocol exchange. When the TEEP Agent subsequently receives transport for TEEP to connect to the TAM URI, and begins a TEEP
the TA to install and the TA's manifest indicates dependencies on any protocol exchange. When the TEEP Agent subsequently receives the
other trusted components, each dependency can include a list of TAM Trusted Component to install and the Trusted Component's manifest
URIs for the relevant dependency. If such dependencies exist that indicates dependencies on any other trusted components, each
are prerequisites to install the TA, then the TEEP Agent recursively dependency can include a list of TAM URIs for the relevant
dependency. If such dependencies exist that are prerequisites to
install the Trusted Component, then the TEEP Agent recursively
follows the same procedure for each dependency that needs to be follows the same procedure for each dependency that needs to be
installed or updated, including selecting a TAM URI that is installed or updated, including selecting a TAM URI that is
consistent with the list of trusted TAMs provisioned on the device, consistent with the list of trusted TAMs provisioned on the device,
and beginning a TEEP exchange. If multiple TAM URIs are considered and beginning a TEEP exchange. If multiple TAM URIs are considered
trusted, only one needs to be contacted and they can be attempted in trusted, only one needs to be contacted and they can be attempted in
some order until one responds. some order until one responds.
Separate from the Untrusted Application's manifest, this framework Separate from the Untrusted Application's manifest, this framework
relies on the use of the manifest format in [I-D.ietf-suit-manifest] relies on the use of the manifest format in [I-D.ietf-suit-manifest]
for expressing how to install a TA, as well as any dependencies on for expressing how to install a Trusted Component, as well as any
other TEE components and versions. That is, dependencies from TAs on dependencies on other TEE components and versions. That is,
other TEE components can be expressed in a SUIT manifest, including dependencies from Trusted Components on other Trusted Components can
dependencies on any other TAs, or trusted OS code (if any), or be expressed in a SUIT manifest, including dependencies on any other
trusted firmware. Installation steps can also be expressed in a SUIT TAs, or trusted OS code (if any), or trusted firmware. Installation
manifest. steps can also be expressed in a SUIT manifest.
For example, TEEs compliant with GlobalPlatform may have a notion of For example, TEEs compliant with GlobalPlatform may have a notion of
a "security domain" (which is a grouping of one or more TAs installed a "security domain" (which is a grouping of one or more TAs installed
on a device, that can share information within such a group) that on a device, that can share information within such a group) that
must be created and into which one or more TAs can then be installed. must be created and into which one or more TAs can then be installed.
It is thus up to the SUIT manifest to express a dependency on having It is thus up to the SUIT manifest to express a dependency on having
such a security domain existing or being created first, as such a security domain existing or being created first, as
appropriate. appropriate.
Updating a TA may cause compatibility issues with any Untrusted Updating a Trusted Component may cause compatibility issues with any
Applications or other components that depend on the updated TA, just Untrusted Applications or other components that depend on the updated
like updating the OS or a shared library could impact an Untrusted Trusted Component, just like updating the OS or a shared library
Application. Thus, an implementation needs to take into account such could impact an Untrusted Application. Thus, an implementation needs
issues. to take into account such issues.
4.4. Untrusted Apps, Trusted Apps, and Personalization Data 4.4. Untrusted Apps, Trusted Apps, and Personalization Data
In TEEP, there is an explicit relationship and dependence between an In TEEP, there is an explicit relationship and dependence between an
Untrusted Application in an REE and one or more TAs in a TEE, as Untrusted Application in an REE and one or more TAs in a TEE, as
shown in Figure 2. For most purposes, an Untrusted Application that shown in Figure 2. For most purposes, an Untrusted Application that
uses one or more TAs in a TEE appears no different from any other uses one or more TAs in a TEE appears no different from any other
Untrusted Application in the REE. However, the way the Untrusted Untrusted Application in the REE. However, the way the Untrusted
Application and its corresponding TAs are packaged, delivered, and Application and its corresponding TAs are packaged, delivered, and
installed on the device can vary. The variations depend on whether installed on the device can vary. The variations depend on whether
the Untrusted Application and TA are bundled together or are provided the Untrusted Application and TA are bundled together or are provided
separately, and this has implications to the management of the TAs in separately, and this has implications to the management of the TAs in
a TEE. In addition to the Untrusted Application and TA(s), the TA(s) a TEE. In addition to the Untrusted Application and TA(s), the TA(s)
and/or TEE may require some additional data to personalize the TA to and/or TEE may also require additional data to personalize the TA to
the device or a user. This personalization data may depend on the the device or a user. Implementations must support encryption of
type of TEE, a particular TEE instance, the TA, and even the user of such Personalization Data to preserve the confidentiality of
the device; an example of personalization data might be a secret potentially sensitive data contained within it and support integrity
symmetric key used by the TA to communicate with some service. protection of the Personalization Data. Other than the requirement
Implementations must support encryption of personalization data to to support confidentiality and integrity protection, the TEEP
preserve the confidentiality of potentially sensitive data contained architecture places no limitations or requirements on the
within it and support integrity protection of the personalization Personalization Data.
data. Other than the requirement to support confidentiality and
integrity protection, the TEEP architecture places no limitations or
requirements on the personalization data.
There are three possible cases for bundling of an Untrusted There are three possible cases for bundling of an Untrusted
Application, TA(s), and personalization data: Application, TA(s), and Personalization Data:
1. The Untrusted Application, TA(s), and personalization data are 1. The Untrusted Application, TA(s), and Personalization Data are
all bundled together in a single package by a TA Signer and all bundled together in a single package by a Trusted Component
either provided to the TEEP Broker through the TAM, or provided Signer and either provided to the TEEP Broker through the TAM, or
separately (with encrypted personalization data), with key provided separately (with encrypted Personalization Data), with
material needed to decrypt and install the personalization data key material needed to decrypt and install the Personalization
and TA provided by a TAM. Data and TA provided by a TAM.
2. The Untrusted Application and the TA(s) are bundled together in a 2. The Untrusted Application and the TA(s) are bundled together in a
single package, which a TAM or a publicly accessible app store single package, which a TAM or a publicly accessible app store
maintains, and the personalization data is separately provided by maintains, and the Personalization Data is separately provided by
the TA Signer's TAM. the Trusted Component Signer's TAM.
3. All components are independent. The Untrusted Application is 3. All components are independent. The Untrusted Application is
installed through some independent or device-specific mechanism, installed through some independent or device-specific mechanism,
and the TAM provides the TA and personalization data from the TA and the TAM provides the TA and Personalization Data from the
Signer. Delivery of the TA and personalization data may be Trusted Component Signer. Delivery of the TA and Personalization
combined or separate. Data may be combined or separate.
The TEEP protocol treats each TA, any dependencies the TA has, and The TEEP protocol can treat each TA, any dependencies the TA has, and
personalization data as separate components with separate Personalization Data as separate Trusted Components with separate
installation steps that are expressed in SUIT manifests, and a SUIT installation steps that are expressed in SUIT manifests, and a SUIT
manifest might contain or reference multiple binaries (see manifest might contain or reference multiple binaries (see
[I-D.ietf-suit-manifest] for more details). The TEEP Agent is [I-D.ietf-suit-manifest] for more details). The TEEP Agent is
responsible for handling any installation steps that need to be responsible for handling any installation steps that need to be
performed inside the TEE, such as decryption of private TA binaries performed inside the TEE, such as decryption of private TA binaries
or personalization data. or Personalization Data.
In order to better understand these cases, it is helpful to review In order to better understand these cases, it is helpful to review
actual implementations of TEEs and their application delivery actual implementations of TEEs and their application delivery
mechanisms. mechanisms.
4.4.1. Example: Application Delivery Mechanisms in Intel SGX 4.4.1. Example: Application Delivery Mechanisms in Intel SGX
In Intel Software Guard Extensions (SGX), the Untrusted Application In Intel Software Guard Extensions (SGX), the Untrusted Application
and TA are typically bundled into the same package (Case 2). The TA and TA are typically bundled into the same package (Case 2). The TA
exists in the package as a shared library (.so or .dll). The exists in the package as a shared library (.so or .dll). The
Untrusted Application loads the TA into an SGX enclave when the Untrusted Application loads the TA into an SGX enclave when the
Untrusted Application needs the TA. This organization makes it easy Untrusted Application needs the TA. This organization makes it easy
to maintain compatibility between the Untrusted Application and the to maintain compatibility between the Untrusted Application and the
TA, since they are updated together. It is entirely possible to TA, since they are updated together. It is entirely possible to
create an Untrusted Application that loads an external TA into an SGX create an Untrusted Application that loads an external TA into an SGX
enclave, and use that TA (Case 3). In this case, the Untrusted enclave, and use that TA (Case 3). In this case, the Untrusted
Application would require a reference to an external file or download Application would require a reference to an external file or download
such a file dynamically, place the contents of the file into memory, such a file dynamically, place the contents of the file into memory,
and load that as a TA. Obviously, such file or downloaded content and load that as a TA. Obviously, such file or downloaded content
must be properly formatted and signed for it to be accepted by the must be properly formatted and signed for it to be accepted by the
SGX TEE. In SGX, for Case 2 and Case 3, the personalization data is SGX TEE. In SGX, for Case 2 and Case 3, the Personalization Data is
normally loaded into the SGX enclave (the TA) after the TA has normally loaded into the SGX enclave (the TA) after the TA has
started. Although Case 1 is possible with SGX, there are no started. Although Case 1 is possible with SGX, there are no
instances of this known to be in use at this time, since such a instances of this known to be in use at this time, since such a
construction would require a special installation program and SGX TA construction would require a special installation program and SGX TA
to receive the encrypted binary, decrypt it, separate it into the to receive the encrypted binary, decrypt it, separate it into the
three different elements, and then install all three. This three different elements, and then install all three. This
installation is complex because the Untrusted Application decrypted installation is complex because the Untrusted Application decrypted
inside the TEE must be passed out of the TEE to an installer in the inside the TEE must be passed out of the TEE to an installer in the
REE which would install the Untrusted Application; this assumes that REE which would install the Untrusted Application; this assumes that
the Untrusted Application package includes the TA code also, since the Untrusted Application package includes the TA code also, since
otherwise there is a significant problem in getting the SGX enclave otherwise there is a significant problem in getting the SGX enclave
code (the TA) from the TEE, through the installer, and into the code (the TA) from the TEE, through the installer, and into the
Untrusted Application in a trusted fashion. Finally, the Untrusted Application in a trusted fashion. Finally, the
personalization data would need to be sent out of the TEE (encrypted Personalization Data would need to be sent out of the TEE (encrypted
in an SGX enclave-to-enclave manner) to the REE's installation app, in an SGX enclave-to-enclave manner) to the REE's installation app,
which would pass this data to the installed Untrusted Application, which would pass this data to the installed Untrusted Application,
which would in turn send this data to the SGX enclave (TA). This which would in turn send this data to the SGX enclave (TA). This
complexity is due to the fact that each SGX enclave is separate and complexity is due to the fact that each SGX enclave is separate and
does not have direct communication to other SGX enclaves. does not have direct communication to other SGX enclaves.
4.4.2. Example: Application Delivery Mechanisms in Arm TrustZone 4.4.2. Example: Application Delivery Mechanisms in Arm TrustZone
In Arm TrustZone [TrustZone] for A-class devices, the Untrusted In Arm TrustZone [TrustZone] for A-class devices, the Untrusted
Application and TA may or may not be bundled together. This differs Application and TA may or may not be bundled together. This differs
skipping to change at page 17, line 15 skipping to change at page 17, line 15
well, though still more complex than Cases 2 and 3. well, though still more complex than Cases 2 and 3.
4.5. Entity Relations 4.5. Entity Relations
This architecture leverages asymmetric cryptography to authenticate a This architecture leverages asymmetric cryptography to authenticate a
device to a TAM. Additionally, a TEEP Agent in a device device to a TAM. Additionally, a TEEP Agent in a device
authenticates a TAM. The provisioning of Trust Anchors to a device authenticates a TAM. The provisioning of Trust Anchors to a device
may be different from one use case to the other. A Device may be different from one use case to the other. A Device
Administrator may want to have the capability to control what TAs are Administrator may want to have the capability to control what TAs are
allowed. A device manufacturer enables verification by one or more allowed. A device manufacturer enables verification by one or more
TAMs and by TA Signers; it may embed a list of default Trust Anchors TAMs and by Trusted Component Signers; it may embed a list of default
into the TEEP Agent and TEE for TAM trust verification and TA Trust Anchors into the TEEP Agent and TEE for TAM trust verification
signature verification. and TA signature verification.
(App Developers) (App Store) (TAM) (Device with TEE) (CAs) (App Developers) (App Store) (TAM) (Device with TEE) (CAs)
| | | | | | | | | |
| | | (Embedded TEE cert) <--| | | | (Embedded TEE cert) <--|
| | | | | | | | | |
| <--- Get an app cert -----------------------------------| | <--- Get an app cert -----------------------------------|
| | | | | | | | | |
| | | <-- Get a TAM cert ---------| | | | <-- Get a TAM cert ---------|
| | | | | | | | | |
1. Build two apps: | | | | 1. Build two apps: | | | |
skipping to change at page 17, line 46 skipping to change at page 17, line 46
Figure 3 shows an example where the same developer builds and signs Figure 3 shows an example where the same developer builds and signs
two applications: (a) an Untrusted Application; (b) a TA that two applications: (a) an Untrusted Application; (b) a TA that
provides some security functions to be run inside a TEE. This provides some security functions to be run inside a TEE. This
example assumes that the developer, the TEE, and the TAM have example assumes that the developer, the TEE, and the TAM have
previously been provisioned with certificates. previously been provisioned with certificates.
At step 1, the developer authors the two applications. At step 1, the developer authors the two applications.
At step 2, the developer uploads the Untrusted Application (2a) to an At step 2, the developer uploads the Untrusted Application (2a) to an
Application Store. In this example, the developer is also the TA Application Store. In this example, the developer is also the
Signer, and so generates a signed TA. The developer can then either Trusted Component Signer, and so generates a signed TA. The
bundle the signed TA with the Untrusted Application, or the developer developer can then either bundle the signed TA with the Untrusted
can provide the signed TA to a TAM that will be managing the TA in Application, or the developer can provide a signed Trusted Component
various devices. containing the TA to a TAM that will be managing the TA in various
devices.
At step 3, a user will go to an Application Store to download the At step 3, a user will go to an Application Store to download the
Untrusted Application (where the arrow indicates the direction of Untrusted Application (where the arrow indicates the direction of
data transfer). data transfer).
At step 4, since the Untrusted Application depends on the TA, At step 4, since the Untrusted Application depends on the TA,
installing the Untrusted Application will trigger TA installation by installing the Untrusted Application will trigger TA installation by
initiating communication with a TAM. The TEEP Agent will interact initiating communication with a TAM. The TEEP Agent will interact
with TAM via a TEEP Broker that faciliates communications between a with TAM via a TEEP Broker that faciliates communications between a
TAM and the TEEP Agent in TEE. TAM and the TEEP Agent in TEE.
Some TA installation implementations might ask for a user's consent. Some Trusted Component installation implementations might ask for a
In other implementations, a Device Administrator might choose what user's consent. In other implementations, a Device Administrator
Untrusted Applications and related TAs to be installed. A user might choose what Untrusted Applications and related Trusted
consent flow is out of scope of the TEEP architecture. Components to be installed. A user consent flow is out of scope of
the TEEP architecture.
The main components consist of a set of standard messages created by The main components consist of a set of standard messages created by
a TAM to deliver TA management commands to a device, and device a TAM to deliver Trusted Component management commands to a device,
attestation and response messages created by a TEE that responds to a and device attestation and response messages created by a TEE that
TAM's message. responds to a TAM's message.
It should be noted that network communication capability is generally It should be noted that network communication capability is generally
not available in TAs in today's TEE-powered devices. Consequently, not available in TAs in today's TEE-powered devices. Consequently,
Trusted Applications generally rely on broker in the REE to provide Trusted Applications generally rely on broker in the REE to provide
access to network functionality in the REE. A broker does not need access to network functionality in the REE. A broker does not need
to know the actual content of messages to facilitate such access. to know the actual content of messages to facilitate such access.
Similarly, since the TEEP Agent runs inside a TEE, the TEEP Agent Similarly, since the TEEP Agent runs inside a TEE, the TEEP Agent
generally relies on a TEEP Broker in the REE to provide network generally relies on a TEEP Broker in the REE to provide network
access, and relay TAM requests to the TEEP Agent and relay the access, and relay TAM requests to the TEEP Agent and relay the
responses back to the TAM. responses back to the TAM.
5. Keys and Certificate Types 5. Keys and Certificate Types
This architecture leverages the following credentials, which allow This architecture leverages the following credentials, which allow
delivering end-to-end security between a TAM and a TEEP Agent. delivering end-to-end security between a TAM and a TEEP Agent.
Figure 4 summarizes the relationships between various keys and where Figure 4 summarizes the relationships between various keys and where
they are stored. Each public/private key identifies a TA Signer, they are stored. Each public/private key identifies a Trusted
TAM, or TEE, and gets a certificate that chains up to some trust Component Signer, TAM, or TEE, and gets a certificate that chains up
anchor. A list of trusted certificates is then used to check a to some trust anchor. A list of trusted certificates is then used to
presented certificate against. check a presented certificate against.
Different CAs can be used for different types of certificates. TEEP Different CAs can be used for different types of certificates. TEEP
messages are always signed, where the signer key is the message messages are always signed, where the signer key is the message
originator's private key, such as that of a TAM or a TEE. In originator's private key, such as that of a TAM or a TEE. In
addition to the keys shown in Figure 4, there may be additional keys addition to the keys shown in Figure 4, there may be additional keys
used for attestation. Refer to the RATS Architecture used for attestation. Refer to the RATS Architecture
[I-D.ietf-rats-architecture] for more discussion. [I-D.ietf-rats-architecture] for more discussion.
Cardinality & Location of Cardinality & Location of
Location of Private Key Trust Anchor Location of Private Key Trust Anchor
Purpose Private Key Signs Store Purpose Private Key Signs Store
------------------ ----------- ------------- ------------- ------------------ ----------- ------------- -------------
Authenticating TEE 1 per TEE TEEP responses TAM Authenticating TEE 1 per TEE TEEP responses TAM
Authenticating TAM 1 per TAM TEEP requests TEEP Agent Authenticating TAM 1 per TAM TEEP requests TEEP Agent
Code Signing 1 per TA TA binary TEE Code Signing 1 per Trusted TA binary TEE
Component
Signer Signer
Figure 4: Signature Keys Figure 4: Signature Keys
Note that personalization data is not included in the table above. Note that Personalization Data is not included in the table above.
The use of personalization data is dependent on how TAs are used and The use of Personalization Data is dependent on how TAs are used and
what their security requirements are. what their security requirements are.
TEEP requests from a TAM to a TEEP Agent are signed with the TAM TEEP requests from a TAM to a TEEP Agent are signed with the TAM
private key (for authentication and integrity protection). private key (for authentication and integrity protection).
Personalization data and TA binaries can be encrypted with a key that Personalization Data and TA binaries can be encrypted with a key that
is established with a content encryption key established with the TEE is established with a content-encryption key established with the TEE
public key (to provide confidentiality). Conversely, TEEP responses public key (to provide confidentiality). Conversely, TEEP responses
from a TEEP Agent to a TAM can be signed with the TEE private key. from a TEEP Agent to a TAM can be signed with the TEE private key.
The TEE key pair and certificate are thus used for authenticating the The TEE key pair and certificate are thus used for authenticating the
TEE to a remote TAM, and for sending private data to the TEE. Often, TEE to a remote TAM, and for sending private data to the TEE. Often,
the key pair is burned into the TEE by the TEE manufacturer and the the key pair is burned into the TEE by the TEE manufacturer and the
key pair and its certificate are valid for the expected lifetime of key pair and its certificate are valid for the expected lifetime of
the TEE. A TAM provider is responsible for configuring the TAM's the TEE. A TAM provider is responsible for configuring the TAM's
Trust Anchor Store with the manufacturer certificates or CAs that are Trust Anchor Store with the manufacturer certificates or CAs that are
used to sign TEE keys. This is discussed further in Section 5.3 used to sign TEE keys. This is discussed further in Section 5.3
below. below.
The TAM key pair and certificate are used for authenticating a TAM to The TAM key pair and certificate are used for authenticating a TAM to
a remote TEE, and for sending private data to the TAM. A TAM a remote TEE, and for sending private data to the TAM. A TAM
provider is responsible for acquiring a certificate from a CA that is provider is responsible for acquiring a certificate from a CA that is
trusted by the TEEs it manages. This is discussed further in trusted by the TEEs it manages. This is discussed further in
Section 5.1 below. Section 5.1 below.
The TA Signer key pair and certificate are used to sign TAs that the The Trusted Component Signer key pair and certificate are used to
TEE will consider authorized to execute. TEEs must be configured sign Trusted Components that the TEE will consider authorized to
with the certificates or keys that it considers authorized to sign execute. TEEs must be configured with the certificates or keys that
TAs that it will execute. This is discussed further in Section 5.2 it considers authorized to sign TAs that it will execute. This is
below. discussed further in Section 5.2 below.
5.1. Trust Anchors in a TEEP Agent 5.1. Trust Anchors in a TEEP Agent
A TEEP Agent's Trust Anchor Store contains a list of Trust Anchors, A TEEP Agent's Trust Anchor Store contains a list of Trust Anchors,
which are CA certificates that sign various TAM certificates. The which are CA certificates that sign various TAM certificates. The
list is typically preloaded at manufacturing time, and can be updated list is typically preloaded at manufacturing time, and can be updated
using the TEEP protocol if the TEE has some form of "Trust Anchor using the TEEP protocol if the TEE has some form of "Trust Anchor
Manager TA" that has Trust Anchors in its configuration data. Thus, Manager TA" that has Trust Anchors in its configuration data. Thus,
Trust Anchors can be updated similar to updating the configuration Trust Anchors can be updated similar to updating the Personalization
data for any other TA. Data for any other TA.
When Trust Anchor update is carried out, it is imperative that any When Trust Anchor update is carried out, it is imperative that any
update must maintain integrity where only an authentic Trust Anchor update must maintain integrity where only an authentic Trust Anchor
list from a device manufacturer or a Device Administrator is list from a device manufacturer or a Device Administrator is
accepted. Details are out of scope of the architecture and can be accepted. Details are out of scope of the architecture and can be
addressed in a protocol document. addressed in a protocol document.
Before a TAM can begin operation in the marketplace to support a Before a TAM can begin operation in the marketplace to support a
device with a particular TEE, it must obtain a TAM certificate from a device with a particular TEE, it must obtain a TAM certificate from a
CA or the raw public key of a TAM that is listed in the Trust Anchor CA or the raw public key of a TAM that is listed in the Trust Anchor
skipping to change at page 20, line 35 skipping to change at page 20, line 35
5.2. Trust Anchors in a TEE 5.2. Trust Anchors in a TEE
A TEE determines whether TA binaries are allowed to execute by A TEE determines whether TA binaries are allowed to execute by
verifying whether their signature can be verified using verifying whether their signature can be verified using
certificate(s) or raw public key(s) in the TEE's Trust Anchor Store. certificate(s) or raw public key(s) in the TEE's Trust Anchor Store.
The list is typically preloaded at manufacturing time, and can be The list is typically preloaded at manufacturing time, and can be
updated using the TEEP protocol if the TEE has some form of "Trust updated using the TEEP protocol if the TEE has some form of "Trust
Anchor Manager TA" that has Trust Anchors in its configuration data. Anchor Manager TA" that has Trust Anchors in its configuration data.
Thus, Trust Anchors can be updated similar to updating the Thus, Trust Anchors can be updated similar to updating the
configuration data for any other TA, as discussed in Section 5.1. Personalization Data for any other TA, as discussed in Section 5.1.
5.3. Trust Anchors in a TAM 5.3. Trust Anchors in a TAM
The Trust Anchor Store in a TAM consists of a list of Trust Anchors, The Trust Anchor Store in a TAM consists of a list of Trust Anchors,
which are certificates that sign various device TEE certificates. A which are certificates that sign various device TEE certificates. A
TAM will accept a device for TA management if the TEE in the device TAM will accept a device for Trusted Component management if the TEE
uses a TEE certificate that is chained to a certificate or raw public in the device uses a TEE certificate that is chained to a certificate
key that the TAM trusts, is contained in an allow list, is not found or raw public key that the TAM trusts, is contained in an allow list,
on a block list, and/or fulfills any other policy criteria. is not found on a block list, and/or fulfills any other policy
criteria.
5.4. Scalability 5.4. Scalability
This architecture uses a PKI (including self-signed certificates). This architecture uses a PKI (including self-signed certificates).
Trust Anchors exist on the devices to enable the TEE to authenticate Trust Anchors exist on the devices to enable the TEE to authenticate
TAMs and TA Signers, and TAMs use Trust Anchors to authenticate TEEs. TAMs and Trusted Component Signers, and TAMs use Trust Anchors to
When a PKI is used, many intermediate CA certificates can chain to a authenticate TEEs. When a PKI is used, many intermediate CA
root certificate, each of which can issue many certificates. This certificates can chain to a root certificate, each of which can issue
makes the protocol highly scalable. New factories that produce TEEs many certificates. This makes the protocol highly scalable. New
can join the ecosystem. In this case, such a factory can get an factories that produce TEEs can join the ecosystem. In this case,
intermediate CA certificate from one of the existing roots without such a factory can get an intermediate CA certificate from one of the
requiring that TAMs are updated with information about the new device existing roots without requiring that TAMs are updated with
factory. Likewise, new TAMs can join the ecosystem, providing they information about the new device factory. Likewise, new TAMs can
are issued a TAM certificate that chains to an existing root whereby join the ecosystem, providing they are issued a TAM certificate that
existing TEEs will be allowed to be personalized by the TAM without chains to an existing root whereby existing TEEs will be allowed to
requiring changes to the TEE itself. This enables the ecosystem to be personalized by the TAM without requiring changes to the TEE
scale, and avoids the need for centralized databases of all TEEs itself. This enables the ecosystem to scale, and avoids the need for
produced or all TAMs that exist or all TA Signers that exist. centralized databases of all TEEs produced or all TAMs that exist or
all Trusted Component Signers that exist.
5.5. Message Security 5.5. Message Security
Messages created by a TAM are used to deliver TA management commands Messages created by a TAM are used to deliver Trusted Component
to a device, and device attestation and messages created by the management commands to a device, and device attestation and messages
device TEE to respond to TAM messages. created by the device TEE to respond to TAM messages.
These messages are signed end-to-end between a TEEP Agent and a TAM. These messages are signed end-to-end between a TEEP Agent and a TAM.
Confidentiality is provided by encrypting sensitive payloads (such as Confidentiality is provided by encrypting sensitive payloads (such as
personalization data and attestation evidence), rather than Personalization Data and attestation evidence), rather than
encrypting the messages themselves. Using encrypted payloads is encrypting the messages themselves. Using encrypted payloads is
important to ensure that only the targeted device TEE or TAM is able important to ensure that only the targeted device TEE or TAM is able
to decrypt and view the actual content. to decrypt and view the actual content.
6. TEEP Broker 6. TEEP Broker
A TEE and TAs often do not have the capability to directly A TEE and TAs often do not have the capability to directly
communicate outside of the hosting device. For example, communicate outside of the hosting device. For example,
GlobalPlatform [GPTEE] specifies one such architecture. This calls GlobalPlatform [GPTEE] specifies one such architecture. This calls
for a software module in the REE world to handle network for a software module in the REE world to handle network
communication with a TAM. communication with a TAM.
A TEEP Broker is an application component running in the REE of the A TEEP Broker is an application component running in the REE of the
device or an SDK that facilitates communication between a TAM and a device or an SDK that facilitates communication between a TAM and a
TEE. It also provides interfaces for Untrusted Applications to query TEE. It also provides interfaces for Untrusted Applications to query
and trigger TA installation that the application needs to use. and trigger installation of Trusted Components that the application
needs to use.
An Untrusted Application might communicate with a TEEP Broker at An Untrusted Application might communicate with a TEEP Broker at
runtime to trigger TA installation itself, or an Untrusted runtime to trigger Trusted Component installation itself, or an
Application might simply have a metadata file that describes the TAs Untrusted Application might simply have a metadata file that
it depends on and the associated TAM(s) for each TA, and an REE describes the Trusted Components it depends on and the associated
Application Installer can inspect this application metadata file and TAM(s) for each Trusted Component, and an REE Application Installer
invoke the TEEP Broker to trigger TA installation on behalf of the can inspect this application metadata file and invoke the TEEP Broker
Untrusted Application without requiring the Untrusted Application to to trigger Trusted Component installation on behalf of the Untrusted
run first. Application without requiring the Untrusted Application to run first.
6.1. Role of the TEEP Broker 6.1. Role of the TEEP Broker
A TEEP Broker abstracts the message exchanges with a TEE in a device. A TEEP Broker abstracts the message exchanges with a TEE in a device.
The input data is originated from a TAM or the first initialization The input data is originated from a TAM or the first initialization
call to trigger a TA installation. call to trigger a Trusted Component installation.
The Broker doesn't need to parse a message content received from a The Broker doesn't need to parse a message content received from a
TAM that should be processed by a TEE (see the ProcessTeepMessage API TAM that should be processed by a TEE (see the ProcessTeepMessage API
in Section 6.2.1). When a device has more than one TEE, one TEEP in Section 6.2.1). When a device has more than one TEE, one TEEP
Broker per TEE could be present in the REE. A TEEP Broker interacts Broker per TEE could be present in the REE. A TEEP Broker interacts
with a TEEP Agent inside a TEE. with a TEEP Agent inside a TEE.
A TAM message may indicate the target TEE where a TA should be A TAM message may indicate the target TEE where a Trusted Component
installed. A compliant TEEP protocol should include a target TEE should be installed. A compliant TEEP protocol should include a
identifier for a TEEP Broker when multiple TEEs are present. target TEE identifier for a TEEP Broker when multiple TEEs are
present.
The Broker relays the response messages generated from a TEEP Agent The Broker relays the response messages generated from a TEEP Agent
in a TEE to the TAM. in a TEE to the TAM.
The Broker only needs to return a (transport) error message if the The Broker only needs to return a (transport) error message if the
TEE is not reachable for some reason. Other errors are represented TEE is not reachable for some reason. Other errors are represented
as response messages returned from the TEE which will then be passed as response messages returned from the TEE which will then be passed
to the TAM. to the TAM.
6.2. TEEP Broker Implementation Consideration 6.2. TEEP Broker Implementation Consideration
As depicted in Figure 5, there are multiple ways in which a TEEP
Broker can be implemented, with more or fewer layers being inside the
TEE. For example, in model A, the model with the smallest TEE
footprint, only the TEEP implementation is inside the TEE, whereas
the TEEP/HTTP implementation is in the TEEP Broker outside the TEE.
Model: A B C ...
TEE TEE TEE
+----------------+ | | |
| TEEP | Agent | | | Agent
| implementation | | | |
+----------------+ v | |
| | |
+----------------+ ^ | |
| TEEP/HTTP | Broker | | |
| implementation | | | |
+----------------+ | v |
| | |
+----------------+ | ^ |
| HTTP | | | |
| implementation | | | |
+----------------+ | | v
| | |
+----------------+ | | ^
| TCP or QUIC | | | | Broker
| implementation | | | |
+----------------+ | | |
REE REE REE
Figure 5: TEEP Broker Models
In other models, additional layers are moved into the TEE, increasing
the TEE footprint, with the Broker either containing or calling the
topmost protocol layer outside of the TEE. An implementation is free
to choose any of these models.
TEEP Broker implementers should consider methods of distribution, TEEP Broker implementers should consider methods of distribution,
scope and concurrency on devices and runtime options. Several non- scope and concurrency on devices and runtime options.
exhaustive options are discussed below.
6.2.1. TEEP Broker APIs 6.2.1. TEEP Broker APIs
The following conceptual APIs exist from a TEEP Broker to a TEEP The following conceptual APIs exist from a TEEP Broker to a TEEP
Agent: Agent:
1. RequestTA: A notification from an REE application (e.g., an 1. RequestTA: A notification from an REE application (e.g., an
installer, or an Untrusted Application) that it depends on a installer, or an Untrusted Application) that it depends on a
given TA, which may or may not already be installed in the TEE. given Trusted Component, which may or may not already be
installed in the TEE.
2. ProcessTeepMessage: A message arriving from the network, to be 2. ProcessTeepMessage: A message arriving from the network, to be
delivered to the TEEP Agent for processing. delivered to the TEEP Agent for processing.
3. RequestPolicyCheck: A hint (e.g., based on a timer) that the TEEP 3. RequestPolicyCheck: A hint (e.g., based on a timer) that the TEEP
Agent may wish to contact the TAM for any changes, without the Agent may wish to contact the TAM for any changes, without the
device itself needing any particular change. device itself needing any particular change.
4. ProcessError: A notification that the TEEP Broker could not 4. ProcessError: A notification that the TEEP Broker could not
deliver an outbound TEEP message to a TAM. deliver an outbound TEEP message to a TAM.
skipping to change at page 23, line 35 skipping to change at page 24, line 42
Attestation is the process through which one entity (an Attester) Attestation is the process through which one entity (an Attester)
presents "evidence", in the form of a series of claims, to another presents "evidence", in the form of a series of claims, to another
entity (a Verifier), and provides sufficient proof that the claims entity (a Verifier), and provides sufficient proof that the claims
are true. Different Verifiers may require different degrees of are true. Different Verifiers may require different degrees of
confidence in attestation proofs and not all attestations are confidence in attestation proofs and not all attestations are
acceptable to every verifier. A third entity (a Relying Party) can acceptable to every verifier. A third entity (a Relying Party) can
then use "attestation results", in the form of another series of then use "attestation results", in the form of another series of
claims, from a Verifier to make authorization decisions. (See claims, from a Verifier to make authorization decisions. (See
[I-D.ietf-rats-architecture] for more discussion.) [I-D.ietf-rats-architecture] for more discussion.)
In TEEP, as depicted in Figure 5, the primary purpose of an In TEEP, as depicted in Figure 6, the primary purpose of an
attestation is to allow a device (the Attester) to prove to a TAM attestation is to allow a device (the Attester) to prove to a TAM
(the Relying Party) that a TEE in the device has particular (the Relying Party) that a TEE in the device has particular
properties, was built by a particular manufacturer, and/or is properties, was built by a particular manufacturer, and/or is
executing a particular TA. Other claims are possible; TEEP does not executing a particular TA. Other claims are possible; TEEP does not
limit the claims that may appear in evidence or attestation results, limit the claims that may appear in evidence or attestation results,
but defines a minimal set of attestation result claims required for but defines a minimal set of attestation result claims required for
TEEP to operate properly. Extensions to these claims are possible. TEEP to operate properly. Extensions to these claims are possible.
Other standards or groups may define the format and semantics of Other standards or groups may define the format and semantics of
extended claims. extended claims.
+----------------+ +----------------+
| Device | +----------+ | Device | +----------+
| +------------+ | Evidence | TAM | Evidence +----------+ | +------------+ | Evidence | TAM | Evidence +----------+
| | TEE |------------->| (Relying |-------------->| Verifier | | | TEE |------------->| (Relying |-------------->| Verifier |
| | (Attester) | | | Party) |<--------------| | | | (Attester) | | | Party) |<--------------| |
| +------------+ | +----------+ Attestation +----------+ | +------------+ | +----------+ Attestation +----------+
+----------------+ Result +----------------+ Result
Figure 5: TEEP Attestation Roles Figure 6: TEEP Attestation Roles
As of the writing of this specification, device and TEE attestations As of the writing of this specification, device and TEE attestations
have not been standardized across the market. Different devices, have not been standardized across the market. Different devices,
manufacturers, and TEEs support different attestation protocols. In manufacturers, and TEEs support different attestation protocols. In
order for TEEP to be inclusive, it is agnostic to the format of order for TEEP to be inclusive, it is agnostic to the format of
evidence, allowing proprietary or standardized formats to be used evidence, allowing proprietary or standardized formats to be used
between a TEE and a verifier (which may or may not be colocated in between a TEE and a verifier (which may or may not be colocated in
the TAM), as long as the format supports encryption of any the TAM), as long as the format supports encryption of any
information that is considered sensitive. information that is considered sensitive.
skipping to change at page 25, line 15 skipping to change at page 26, line 15
Some TAMs may require additional claims in order to properly Some TAMs may require additional claims in order to properly
authorize a device or TEE. The specific format for these additional authorize a device or TEE. The specific format for these additional
claims are outside the scope of this specification, but the TEEP claims are outside the scope of this specification, but the TEEP
protocol allows these additional claims to be included in the protocol allows these additional claims to be included in the
attestation messages. attestation messages.
For more discussion of the attestation and appraisal process, see the For more discussion of the attestation and appraisal process, see the
RATS Architecture [I-D.ietf-rats-architecture]. RATS Architecture [I-D.ietf-rats-architecture].
7.1. Information Required in TEEP Claims The following information is required for TEEP attestation:
- Device Identifying Information: TEEP attestations may need to - Device Identifying Information: Attestation information may need
uniquely identify a device to the TAM. Unique device to uniquely identify a device to the TAM. Unique device
identification allows the TAM to provide services to the device, identification allows the TAM to provide services to the device,
such as managing installed TAs, and providing subscriptions to such as managing installed TAs, and providing subscriptions to
services, and locating device-specific keying material to services, and locating device-specific keying material to
communicate with or authenticate the device. In some use cases it communicate with or authenticate the device. In some use cases it
may be sufficient to identify only the class of the device. The may be sufficient to identify only the class of the device. The
security and privacy requirements regarding device identification security and privacy requirements regarding device identification
will vary with the type of TA provisioned to the TEE. will vary with the type of TA provisioned to the TEE.
- TEE Identifying Information: The type of TEE that generated this - TEE Identifying Information: The type of TEE that generated this
attestation must be identified, including version identification attestation must be identified. This includes version
information such as the hardware, firmware, and software version identification information for hardware, firmware, and software
of the TEE, as applicable by the TEE type. TEE manufacturer version of the TEE, as applicable by the TEE type. TEE
information for the TEE is required in order to disambiguate the manufacturer information for the TEE is required in order to
same TEE type created by different manufacturers and address disambiguate the same TEE type created by different manufacturers
considerations around manufacturer provisioning, keying and and address considerations around manufacturer provisioning,
support for the TEE. keying and support for the TEE.
- Freshness Proof: A claim that includes freshness information must - Freshness Proof: A claim that includes freshness information must
be included, such as a nonce or timestamp. be included, such as a nonce or timestamp.
- Requested Components: A list of zero or more components (TAs or
other dependencies needed by a TEE) that are requested by some
depending app, but which are not currently installed in the TEE.
The claims also need to specify for each component, whether the TA
binary is needed, or whether the TA binary is already available
and only permission to install is needed.
8. Algorithm and Attestation Agility 8. Algorithm and Attestation Agility
RFC 7696 [RFC7696] outlines the requirements to migrate from one RFC 7696 [RFC7696] outlines the requirements to migrate from one
mandatory-to-implement cryptographic algorithm suite to another over mandatory-to-implement cryptographic algorithm suite to another over
time. This feature is also known as crypto agility. Protocol time. This feature is also known as crypto agility. Protocol
evolution is greatly simplified when crypto agility is considered evolution is greatly simplified when crypto agility is considered
during the design of the protocol. In the case of the TEEP protocol during the design of the protocol. In the case of the TEEP protocol
the diverse range of use cases, from trusted app updates for smart the diverse range of use cases, from trusted app updates for smart
phones and tablets to updates of code on higher-end IoT devices, phones and tablets to updates of code on higher-end IoT devices,
creates the need for different mandatory-to-implement algorithms creates the need for different mandatory-to-implement algorithms
already from the start. already from the start.
Crypto agility in TEEP concerns the use of symmetric as well as Crypto agility in TEEP concerns the use of symmetric as well as
asymmetric algorithms. In the context of TEEP, symmetric algorithms asymmetric algorithms. In the context of TEEP, symmetric algorithms
are used for encryption of TA binaries and personalization data are used for encryption and integrity protection of TA binaries and
whereas the asymmetric algorithms are mostly used for signing Personalization Data whereas the asymmetric algorithms are used for
messages. signing messages and managing symmetric keys.
In addition to the use of cryptographic algorithms in TEEP, there is In addition to the use of cryptographic algorithms in TEEP, there is
also the need to make use of different attestation technologies. A also the need to make use of different attestation technologies. A
device must provide techniques to inform a TAM about the attestation device must provide techniques to inform a TAM about the attestation
technology it supports. For many deployment cases it is more likely technology it supports. For many deployment cases it is more likely
for the TAM to support one or more attestation techniques whereas the for the TAM to support one or more attestation techniques whereas the
device may only support one. device may only support one.
9. Security Considerations 9. Security Considerations
9.1. Broker Trust Model 9.1. Broker Trust Model
The architecture enables the TAM to communicate, via a TEEP Broker, The architecture enables the TAM to communicate, via a TEEP Broker,
with the device's TEE to manage TAs. Since the TEEP Broker runs in a with the device's TEE to manage Trusted Components. Since the TEEP
potentially vulnerable REE, the TEEP Broker could, however, be (or be Broker runs in a potentially vulnerable REE, the TEEP Broker could,
infected by) malware. As such, all TAM messages are signed and however, be (or be infected by) malware. As such, all TAM messages
sensitive data is encrypted such that the TEEP Broker cannot modify are signed and sensitive data is encrypted such that the TEEP Broker
or capture sensitive data, but the TEEP Broker can still conduct DoS cannot modify or capture sensitive data, but the TEEP Broker can
attacks as discussed in Section 9.3. still conduct DoS attacks as discussed in Section 9.3.
A TEEP Agent in a TEE is responsible for protecting against potential A TEEP Agent in a TEE is responsible for protecting against potential
attacks from a compromised TEEP Broker or rogue malware in the REE. attacks from a compromised TEEP Broker or rogue malware in the REE.
A rogue TEEP Broker might send corrupted data to the TEEP Agent, or A rogue TEEP Broker might send corrupted data to the TEEP Agent, or
launch a DoS attack by sending a flood of TEEP protocol requests. launch a DoS attack by sending a flood of TEEP protocol requests.
The TEEP Agent validates the signature of each TEEP protocol request The TEEP Agent validates the signature of each TEEP protocol request
and checks the signing certificate against its Trust Anchors. To and checks the signing certificate against its Trust Anchors. To
mitigate DoS attacks, it might also add some protection scheme such mitigate DoS attacks, it might also add some protection scheme such
as a threshold on repeated requests or number of TAs that can be as a threshold on repeated requests or number of TAs that can be
installed. installed.
9.2. Data Protection 9.2. Data Protection
It is the responsibility of the TAM to protect data on its servers. It is the responsibility of the TAM to protect data on its servers.
Similarly, it is the responsibility of the TEE implementation to Similarly, it is the responsibility of the TEE implementation to
provides protection of data against integrity and confidentiality provide protection of data against integrity and confidentiality
attacks from outside the TEE. TEEs that provide isolation among TAs attacks from outside the TEE. TEEs that provide isolation among TAs
within the TEE are likewise responsible for protecting TA data within the TEE are likewise responsible for protecting TA data
against the REE and other TAs. For example, this can be used to against the REE and other TAs. For example, this can be used to
protect one user's or tenant's data from compromise by another user/ protect one user's or tenant's data from compromise by another user
tenant, even if the attacker has TAs. or tenant, even if the attacker has TAs.
The protocol between TEEP Agents and TAMs similarly is responsible The protocol between TEEP Agents and TAMs similarly is responsible
for securely providing integrity and confidentiality protection for securely providing integrity and confidentiality protection
against adversaries between them. Since the transport protocol under against adversaries between them. Since the transport protocol under
the TEEP protocol might be implemented outside a TEE, as discussed in the TEEP protocol might be implemented outside a TEE, as discussed in
Section 6, it cannot be relied upon for sufficient protection. The Section 6, it cannot be relied upon for sufficient protection. The
TEEP protocol provides integrity protection, but confidentiality must TEEP protocol provides integrity protection, but confidentiality must
be provided by payload security, i.e., using encrypted TA binaries be provided by payload encryption, i.e., using encrypted TA binaries
and encrypted attestation information. See [I-D.ietf-teep-protocol] and encrypted attestation information. See [I-D.ietf-teep-protocol]
for more discussion. for more discussion.
9.3. Compromised REE 9.3. Compromised REE
It is possible that the REE of a device is compromised. If the REE It is possible that the REE of a device is compromised. We have
is compromised, several DoS attacks may be launched. The compromised already seen examples of attacks on the public Internet of billions
REE may terminate the TEEP Broker such that TEEP transactions cannot of compromised devices being used to mount DDoS attacks. A
reach the TEE, or might drop or delay messages between a TAM and a compromised REE can be used for such an attack but it cannot tamper
TEEP Agent. However, while a DoS attack cannot be prevented, the REE with the TEE's code or data in doing so. A compromised REE can,
cannot access anything in the TEE if it is implemented correctly. however, launch DoS attacks against the TEE.
Some TEEs may have some watchdog scheme to observe REE state and
mitigate DoS attacks against it but most TEEs don't have such a The compromised REE may terminate the TEEP Broker such that TEEP
capability. transactions cannot reach the TEE, or might drop or delay messages
between a TAM and a TEEP Agent. However, while a DoS attack cannot
be prevented, the REE cannot access anything in the TEE if it is
implemented correctly. Some TEEs may have some watchdog scheme to
observe REE state and mitigate DoS attacks against it but most TEEs
don't have such a capability.
In some other scenarios, the compromised REE may ask a TEEP Broker to In some other scenarios, the compromised REE may ask a TEEP Broker to
make repeated requests to a TEEP Agent in a TEE to install or make repeated requests to a TEEP Agent in a TEE to install or
uninstall a TA. A TA installation or uninstallation request uninstall a Trusted Component. An installation or uninstallation
constructed by the TEEP Broker or REE will be rejected by the TEEP request constructed by the TEEP Broker or REE will be rejected by the
Agent because the request won't have the correct signature from a TAM TEEP Agent because the request won't have the correct signature from
to pass the request signature validation. a TAM to pass the request signature validation.
This can become a DoS attack by exhausting resources in a TEE with This can become a DoS attack by exhausting resources in a TEE with
repeated requests. In general, a DoS attack threat exists when the repeated requests. In general, a DoS attack threat exists when the
REE is compromised, and a DoS attack can happen to other resources. REE is compromised, and a DoS attack can happen to other resources.
The TEEP architecture doesn't change this. The TEEP architecture doesn't change this.
A compromised REE might also request initiating the full flow of A compromised REE might also request initiating the full flow of
installation of TAs that are not necessary. It may also repeat a installation of Trusted Components that are not necessary. It may
prior legitimate TA installation request. A TEEP Agent also repeat a prior legitimate Trusted Component installation
implementation is responsible for ensuring that it can recognize and request. A TEEP Agent implementation is responsible for ensuring
decline such repeated requests. It is also responsible for that it can recognize and decline such repeated requests. It is also
protecting the resource usage allocated for TA management. responsible for protecting the resource usage allocated for Trusted
Component management.
9.4. Compromised CA 9.4. CA Compromise or Expiry of CA Certificate
A root CA for TAM certificates might get compromised or its A root CA for TAM certificates might get compromised or its
certificate might expire, or a Trust Anchor other than a root CA certificate might expire, or a Trust Anchor other than a root CA
certificate may also expire or be compromised. TEEs are responsible certificate may also expire or be compromised. TEEs are responsible
for validating the entire TAM certificate chain, including the TAM for validating the entire TAM certificate chain, including the TAM
certificate and any intermediate certificates up to the root certificate and any intermediate certificates up to the root
certificate. Such validation includes checking for certificate certificate. Such validation includes checking for certificate
revocation. revocation.
If a TAM certificate chain validation fails, the TAM might be If a TAM certificate chain validation fails, the TAM might be
skipping to change at page 29, line 26 skipping to change at page 30, line 26
would occur the next time connectivity does exist. That is, to would occur the next time connectivity does exist. That is, to
recover, the TEEP Agent must be able to reach out to the TAM, for recover, the TEEP Agent must be able to reach out to the TAM, for
example whenever the RequestPolicyCheck API (Section 6.2.1) is example whenever the RequestPolicyCheck API (Section 6.2.1) is
invoked by a timer or other event. invoked by a timer or other event.
Furthermore the policy in the Verifier in an attestation process can Furthermore the policy in the Verifier in an attestation process can
be updated so that any evidence that includes the malicious TA would be updated so that any evidence that includes the malicious TA would
result in an attestation failure. There is, however, a time window result in an attestation failure. There is, however, a time window
during which a malicious TA might be able to operate successfully, during which a malicious TA might be able to operate successfully,
which is the validity time of the previous attestation result. For which is the validity time of the previous attestation result. For
example, if the Verifier in Figure 5 is updated to treat a previously example, if the Verifier in Figure 6 is updated to treat a previously
valid TA as no longer trustworthy, any attestation result it valid TA as no longer trustworthy, any attestation result it
previously generated saying that the TA is valid will continue to be previously generated saying that the TA is valid will continue to be
used until the attestation result expires. As such, the TAM's used until the attestation result expires. As such, the TAM's
Verifier should take into account the acceptable time window when Verifier should take into account the acceptable time window when
generating attestation results. See [I-D.ietf-rats-architecture] for generating attestation results. See [I-D.ietf-rats-architecture] for
further discussion. further discussion.
9.7. Certificate Expiry and Renewal 9.7. Certificate Expiry and Renewal
TEE device certificates are expected to be long lived, longer than TEE device certificates are expected to be long lived, longer than
skipping to change at page 30, line 8 skipping to change at page 31, line 8
it is imperative that OEMs or device providers plan for support of it is imperative that OEMs or device providers plan for support of
Trust Anchor update in their shipped devices. Trust Anchor update in their shipped devices.
For those cases where TEE devices are given certificates for which no For those cases where TEE devices are given certificates for which no
good expiration date can be assigned the recommendations in good expiration date can be assigned the recommendations in
Section 4.1.2.5 of [RFC5280] are applicable. Section 4.1.2.5 of [RFC5280] are applicable.
9.8. Keeping Secrets from the TAM 9.8. Keeping Secrets from the TAM
In some scenarios, it is desirable to protect the TA binary or In some scenarios, it is desirable to protect the TA binary or
configuration from being disclosed to the TAM that distributes them. Personalization Data from being disclosed to the TAM that distributes
In such a scenario, the files can be encrypted end-to-end between a them. In such a scenario, the files can be encrypted end-to-end
TA Signer and a TEE. However, there must be some means of between a Trusted Component Signer and a TEE. However, there must be
provisioning the decryption key into the TEE and/or some means of the some means of provisioning the decryption key into the TEE and/or
TA Signer securely learning a public key of the TEE that it can use some means of the Trusted Component Signer securely learning a public
to encrypt. One way to do this is for the TA Signer to run its own key of the TEE that it can use to encrypt. One way to do this is for
TAM so that it can distribute the decryption key via the TEEP the Trusted Component Signer to run its own TAM so that it can
protocol, and the key file can be a dependency in the manifest of the distribute the decryption key via the TEEP protocol, and the key file
encrypted TA. Thus, the TEEP Agent would look at the TA manifest, can be a dependency in the manifest of the encrypted TA. Thus, the
determine there is a dependency with a TAM URI of the TA Signer's TEEP Agent would look at the Trusted Component manifest, determine
TAM. The Agent would then install the dependency, and then continue there is a dependency with a TAM URI of the Trusted Component
with the TA installation steps, including decrypting the TA binary Signer's TAM. The Agent would then install the dependency, and then
with the relevant key. continue with the Trusted Component installation steps, including
decrypting the TA binary with the relevant key.
10. IANA Considerations 10. IANA Considerations
This document does not require actions by IANA. This document does not require actions by IANA.
11. Contributors 11. Contributors
- Andrew Atyeo, Intercede (andrew.atyeo@intercede.com) - Andrew Atyeo, Intercede (andrew.atyeo@intercede.com)
- Liu Dapeng, Alibaba Group (maxpassion@gmail.com) - Liu Dapeng, Alibaba Group (maxpassion@gmail.com)
skipping to change at page 30, line 49 skipping to change at page 31, line 50
13. Informative References 13. Informative References
[GPTEE] GlobalPlatform, "GlobalPlatform Device Technology: TEE [GPTEE] GlobalPlatform, "GlobalPlatform Device Technology: TEE
System Architecture, v1.1", GlobalPlatform GPD_SPE_009, System Architecture, v1.1", GlobalPlatform GPD_SPE_009,
January 2017, <https://globalplatform.org/specs-library/ January 2017, <https://globalplatform.org/specs-library/
tee-system-architecture-v1-1/>. tee-system-architecture-v1-1/>.
[I-D.ietf-rats-architecture] [I-D.ietf-rats-architecture]
Birkholz, H., Thaler, D., Richardson, M., Smith, N., and Birkholz, H., Thaler, D., Richardson, M., Smith, N., and
W. Pan, "Remote Attestation Procedures Architecture", W. Pan, "Remote Attestation Procedures Architecture",
draft-ietf-rats-architecture-05 (work in progress), July draft-ietf-rats-architecture-07 (work in progress),
2020. October 2020.
[I-D.ietf-suit-manifest] [I-D.ietf-suit-manifest]
Moran, B., Tschofenig, H., Birkholz, H., and K. Zandberg, Moran, B., Tschofenig, H., Birkholz, H., and K. Zandberg,
"A Concise Binary Object Representation (CBOR)-based "A Concise Binary Object Representation (CBOR)-based
Serialization Format for the Software Updates for Internet Serialization Format for the Software Updates for Internet
of Things (SUIT) Manifest", draft-ietf-suit-manifest-08 of Things (SUIT) Manifest", draft-ietf-suit-manifest-09
(work in progress), July 2020. (work in progress), July 2020.
[I-D.ietf-teep-otrp-over-http] [I-D.ietf-teep-otrp-over-http]
Thaler, D., "HTTP Transport for Trusted Execution Thaler, D., "HTTP Transport for Trusted Execution
Environment Provisioning: Agent-to- TAM Communication", Environment Provisioning: Agent-to- TAM Communication",
draft-ietf-teep-otrp-over-http-06 (work in progress), draft-ietf-teep-otrp-over-http-08 (work in progress),
April 2020. October 2020.
[I-D.ietf-teep-protocol] [I-D.ietf-teep-protocol]
Tschofenig, H., Pei, M., Wheeler, D., Thaler, D., and A. Tschofenig, H., Pei, M., Wheeler, D., Thaler, D., and A.
Tsukamoto, "Trusted Execution Environment Provisioning Tsukamoto, "Trusted Execution Environment Provisioning
(TEEP) Protocol", draft-ietf-teep-protocol-02 (work in (TEEP) Protocol", draft-ietf-teep-protocol-03 (work in
progress), April 2020. progress), July 2020.
[RFC4949] Shirey, R., "Internet Security Glossary, Version 2", [RFC4949] Shirey, R., "Internet Security Glossary, Version 2",
FYI 36, RFC 4949, DOI 10.17487/RFC4949, August 2007, FYI 36, RFC 4949, DOI 10.17487/RFC4949, August 2007,
<https://www.rfc-editor.org/info/rfc4949>. <https://www.rfc-editor.org/info/rfc4949>.
[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
Housley, R., and W. Polk, "Internet X.509 Public Key Housley, R., and W. Polk, "Internet X.509 Public Key
Infrastructure Certificate and Certificate Revocation List Infrastructure Certificate and Certificate Revocation List
(CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008,
<https://www.rfc-editor.org/info/rfc5280>. <https://www.rfc-editor.org/info/rfc5280>.
 End of changes. 81 change blocks. 
304 lines changed or deleted 371 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/