draft-ietf-teep-architecture-07.txt | draft-ietf-teep-architecture-08.txt | |||
---|---|---|---|---|
TEEP M. Pei | TEEP M. Pei | |||
Internet-Draft Symantec | Internet-Draft Symantec | |||
Intended status: Informational H. Tschofenig | Intended status: Informational H. Tschofenig | |||
Expires: September 8, 2020 Arm Limited | Expires: October 6, 2020 Arm Limited | |||
D. Thaler | D. Thaler | |||
Microsoft | Microsoft | |||
D. Wheeler | D. Wheeler | |||
Intel | Intel | |||
March 07, 2020 | April 04, 2020 | |||
Trusted Execution Environment Provisioning (TEEP) Architecture | Trusted Execution Environment Provisioning (TEEP) Architecture | |||
draft-ietf-teep-architecture-07 | draft-ietf-teep-architecture-08 | |||
Abstract | Abstract | |||
A Trusted Execution Environment (TEE) is an environment that enforces | A Trusted Execution Environment (TEE) is an environment that enforces | |||
that only authorized code can execute within that environment, 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. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
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 September 8, 2020. | This Internet-Draft will expire on October 6, 2020. | |||
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 3, line 39 ¶ | skipping to change at page 3, line 39 ¶ | |||
complexity of features and applications on devices, and the | complexity of features and applications on devices, and the | |||
unintended interactions among those features and applications. The | unintended interactions among those features and applications. The | |||
danger of attacks on a system increases as the sensitivity of the | danger of attacks on a system increases as the sensitivity of the | |||
applications or data on the device increases. As an example, | applications or data on the device increases. As an example, | |||
exposure of emails from a mail client is likely to be of concern to | exposure of emails from a mail client is likely to be of concern to | |||
its owner, but a compromise of a banking application raises even | its owner, but a compromise of a banking application raises even | |||
greater concerns. | greater concerns. | |||
The Trusted Execution Environment (TEE) concept is designed to | The Trusted Execution Environment (TEE) concept is designed to | |||
execute applications in a protected environment that enforces that | execute applications in a protected environment that enforces that | |||
only authorized code can execute within that environment, 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 any | any data used by such code cannot be read or tampered with by any | |||
code outside that environment, including by a commodity operating | code outside that environment, including by a commodity operating | |||
system (if present). | system (if present). | |||
This separation reduces the possibility of a successful attack on | This separation reduces the possibility of a successful attack on | |||
application components and the data contained inside the TEE. | application components and the data contained inside the TEE. | |||
Typically, application components are chosen to execute inside a TEE | Typically, application components are chosen to execute inside a TEE | |||
because those application components perform security sensitive | because those application components perform security sensitive | |||
operations or operate on sensitive data. An application component | operations or operate on sensitive data. An application component | |||
running inside a TEE is referred to as a Trusted Application (TA), | running inside a TEE is referred to as a Trusted Application (TA), | |||
skipping to change at page 14, line 21 ¶ | skipping to change at page 14, line 21 ¶ | |||
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 require some additional data to personalize the TA to | |||
the TA developer or the device or a user. This personalization data | the TA developer or the device or a user. This personalization data | |||
is dependent on the TEE, the TA, and the TA developer; an example of | is dependent on the TEE, the TA, and the TA developer; an example of | |||
personalization data might be a secret symmetric key used by the TA | personalization data might be a secret symmetric key used by the TA | |||
to communicate with the TA developer. The personalization data must | to communicate with the TA developer. Implementations must support | |||
be encrypted to preserve the confidentiality of potentially sensitive | encryption of personalization data to preserve the confidentiality of | |||
data contained within it. Other than this requirement to support | potentially sensitive data contained within it. Other than this | |||
confidentiality, the TEEP architecture places no limitations or | requirement to support confidentiality, the TEEP architecture places | |||
requirements on the personalization data. | 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 developer and | all bundled together in a single package by a TA developer and | |||
provided to the TEEP Broker through the TAM. | provided to the TEEP Broker through the 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 | |||
skipping to change at page 25, line 48 ¶ | skipping to change at page 25, line 48 ¶ | |||
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. If the REE | |||
is compromised, several DoS attacks may be launched. The compromised | is compromised, several DoS attacks may be launched. The compromised | |||
REE may terminate the TEEP Broker such that TEEP transactions cannot | REE may terminate the TEEP Broker such that TEEP transactions cannot | |||
reach the TEE, or might drop or delay messages between a TAM and a | 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 | TEEP Agent. However, while a DoS attack cannot be prevented, the REE | |||
cannot access anything in the TEE if it is implemented correctly. | cannot access anything in the TEE if it is implemented correctly. | |||
Some TEEs may have some watchdog scheme to observe REE state and | Some TEEs may have some watchdog scheme to observe REE state and | |||
mitigate DoS attacks against it but most TEEs don't have have such | mitigate DoS attacks against it but most TEEs don't have such a | |||
capability. | 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 TA. A TA installation or uninstallation request | |||
constructed by the TEEP Broker or REE will be rejected by the TEEP | constructed by the TEEP Broker or REE will be rejected by the TEEP | |||
Agent because the request won't have the correct signature from a TAM | Agent because the request won't have the correct signature from a TAM | |||
to pass the request signature validation. | 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 | |||
skipping to change at page 27, line 5 ¶ | skipping to change at page 27, line 5 ¶ | |||
apps in the first place. The TEEP architecture allows a TEEP Agent | apps in the first place. The TEEP architecture allows a TEEP Agent | |||
to decide which TAMs it trusts via Trust Anchors, and delegates the | to decide which TAMs it trusts via Trust Anchors, and delegates the | |||
TA authenticity check to the TAMs it trusts. | TA authenticity check to the TAMs it trusts. | |||
It may happen that a TA was previously considered trustworthy but is | It may happen that a TA was previously considered trustworthy but is | |||
later found to be buggy or compromised. In this case, the TAM can | later found to be buggy or compromised. In this case, the TAM can | |||
initiate the removal of the TA by notifying devices to remove the TA | initiate the removal of the TA by notifying devices to remove the TA | |||
(and potentially the REE or device owner to remove any Untrusted | (and potentially the REE or device owner to remove any Untrusted | |||
Application that depend on the TA). If the TAM does not currently | Application that depend on the TA). If the TAM does not currently | |||
have a connection to the TEEP Agent on a device, such a notification | have a connection to the TEEP Agent on a device, such a notification | |||
would occur the next time connectivity does exist. | 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 | ||||
example whenever the RequestPolicyCheck API (Section 6.2.1) is | ||||
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 5 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 | |||
skipping to change at page 28, line 30 ¶ | skipping to change at page 28, line 30 ¶ | |||
feedback. | feedback. | |||
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., and N. Smith, | Birkholz, H., Thaler, D., Richardson, M., Smith, N., and | |||
"Remote Attestation Procedures Architecture", draft-ietf- | W. Pan, "Remote Attestation Procedures Architecture", | |||
rats-architecture-01 (work in progress), February 2020. | draft-ietf-rats-architecture-02 (work in progress), March | |||
2020. | ||||
[I-D.ietf-suit-manifest] | [I-D.ietf-suit-manifest] | |||
Moran, B., Tschofenig, H., and H. Birkholz, "A Concise | Moran, B., Tschofenig, H., Birkholz, H., and K. Zandberg, | |||
Binary Object Representation (CBOR)-based Serialization | "A Concise Binary Object Representation (CBOR)-based | |||
Format for the Software Updates for Internet of Things | Serialization Format for the Software Updates for Internet | |||
(SUIT) Manifest", draft-ietf-suit-manifest-03 (work in | of Things (SUIT) Manifest", draft-ietf-suit-manifest-04 | |||
progress), February 2020. | (work in progress), March 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-04 (work in progress), | draft-ietf-teep-otrp-over-http-05 (work in progress), | |||
February 2020. | March 2020. | |||
[RFC6024] Reddy, R. and C. Wallace, "Trust Anchor Management | [RFC6024] Reddy, R. and C. Wallace, "Trust Anchor Management | |||
Requirements", RFC 6024, DOI 10.17487/RFC6024, October | Requirements", RFC 6024, DOI 10.17487/RFC6024, October | |||
2010, <https://www.rfc-editor.org/info/rfc6024>. | 2010, <https://www.rfc-editor.org/info/rfc6024>. | |||
[RFC7696] Housley, R., "Guidelines for Cryptographic Algorithm | [RFC7696] Housley, R., "Guidelines for Cryptographic Algorithm | |||
Agility and Selecting Mandatory-to-Implement Algorithms", | Agility and Selecting Mandatory-to-Implement Algorithms", | |||
BCP 201, RFC 7696, DOI 10.17487/RFC7696, November 2015, | BCP 201, RFC 7696, DOI 10.17487/RFC7696, November 2015, | |||
<https://www.rfc-editor.org/info/rfc7696>. | <https://www.rfc-editor.org/info/rfc7696>. | |||
End of changes. 12 change blocks. | ||||
23 lines changed or deleted | 27 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |