| < draft-ietf-teep-architecture-06.txt | draft-ietf-teep-architecture-07.txt > | |||
|---|---|---|---|---|
| TEEP M. Pei | TEEP M. Pei | |||
| Internet-Draft Symantec | Internet-Draft Symantec | |||
| Intended status: Informational H. Tschofenig | Intended status: Informational H. Tschofenig | |||
| Expires: August 11, 2020 Arm Limited | Expires: September 8, 2020 Arm Limited | |||
| D. Thaler | D. Thaler | |||
| Microsoft | Microsoft | |||
| D. Wheeler | D. Wheeler | |||
| Intel | Intel | |||
| February 08, 2020 | March 07, 2020 | |||
| Trusted Execution Environment Provisioning (TEEP) Architecture | Trusted Execution Environment Provisioning (TEEP) Architecture | |||
| draft-ietf-teep-architecture-06 | draft-ietf-teep-architecture-07 | |||
| 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 only authorized code can execute within that environment, 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 August 11, 2020. | This Internet-Draft will expire on September 8, 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 2, line 36 ¶ | skipping to change at page 2, line 36 ¶ | |||
| 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 . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 3.3. Internet of Things . . . . . . . . . . . . . . . . . . . 7 | 3.3. Internet of Things . . . . . . . . . . . . . . . . . . . 7 | |||
| 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 . . . . . . . . . . . . . . . . 10 | 4.2. Multiple TEEs in a Device . . . . . . . . . . . . . . . . 10 | |||
| 4.3. Multiple TAMs and Relationship to TAs . . . . . . . . . . 12 | 4.3. Multiple TAMs and Relationship to TAs . . . . . . . . . . 12 | |||
| 4.4. Untrusted Apps, Trusted Apps, and Personalization Data . 13 | 4.4. Untrusted Apps, Trusted Apps, and Personalization Data . 14 | |||
| 4.4.1. Examples of Application Delivery Mechanisms in | 4.4.1. Examples of Application Delivery Mechanisms in | |||
| Existing TEEs . . . . . . . . . . . . . . . . . . . . 14 | Existing TEEs . . . . . . . . . . . . . . . . . . . . 15 | |||
| 4.5. Entity Relations . . . . . . . . . . . . . . . . . . . . 16 | 4.5. Entity Relations . . . . . . . . . . . . . . . . . . . . 16 | |||
| 5. Keys and Certificate Types . . . . . . . . . . . . . . . . . 17 | 5. Keys and Certificate Types . . . . . . . . . . . . . . . . . 17 | |||
| 5.1. Trust Anchors in a TEEP Agent . . . . . . . . . . . . . . 18 | 5.1. Trust Anchors in a TEEP Agent . . . . . . . . . . . . . . 19 | |||
| 5.2. Trust Anchors in a TEE . . . . . . . . . . . . . . . . . 19 | 5.2. Trust Anchors in a TEE . . . . . . . . . . . . . . . . . 19 | |||
| 5.3. Trust Anchors in a TAM . . . . . . . . . . . . . . . . . 19 | 5.3. Trust Anchors in a TAM . . . . . . . . . . . . . . . . . 19 | |||
| 5.4. Scalability . . . . . . . . . . . . . . . . . . . . . . . 19 | 5.4. Scalability . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 5.5. Message Security . . . . . . . . . . . . . . . . . . . . 20 | 5.5. Message Security . . . . . . . . . . . . . . . . . . . . 20 | |||
| 6. TEEP Broker . . . . . . . . . . . . . . . . . . . . . . . . . 20 | 6. TEEP Broker . . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 6.1. Role of the TEEP Broker . . . . . . . . . . . . . . . . . 20 | 6.1. Role of the TEEP Broker . . . . . . . . . . . . . . . . . 20 | |||
| 6.2. TEEP Broker Implementation Consideration . . . . . . . . 21 | 6.2. TEEP Broker Implementation Consideration . . . . . . . . 21 | |||
| 6.2.1. TEEP Broker APIs . . . . . . . . . . . . . . . . . . 21 | 6.2.1. TEEP Broker APIs . . . . . . . . . . . . . . . . . . 21 | |||
| 6.2.2. TEEP Broker Distribution . . . . . . . . . . . . . . 22 | 6.2.2. TEEP Broker Distribution . . . . . . . . . . . . . . 22 | |||
| 7. Attestation . . . . . . . . . . . . . . . . . . . . . . . . . 22 | 7. Attestation . . . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| skipping to change at page 3, line 15 ¶ | skipping to change at page 3, line 15 ¶ | |||
| 8. Algorithm and Attestation Agility . . . . . . . . . . . . . . 24 | 8. Algorithm and Attestation Agility . . . . . . . . . . . . . . 24 | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . . 25 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 25 | |||
| 9.1. Broker Trust Model . . . . . . . . . . . . . . . . . . . 25 | 9.1. Broker Trust Model . . . . . . . . . . . . . . . . . . . 25 | |||
| 9.2. Data Protection at TAM and TEE . . . . . . . . . . . . . 25 | 9.2. Data Protection at TAM and TEE . . . . . . . . . . . . . 25 | |||
| 9.3. Compromised REE . . . . . . . . . . . . . . . . . . . . . 25 | 9.3. Compromised REE . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 9.4. Compromised CA . . . . . . . . . . . . . . . . . . . . . 26 | 9.4. Compromised CA . . . . . . . . . . . . . . . . . . . . . 26 | |||
| 9.5. Compromised TAM . . . . . . . . . . . . . . . . . . . . . 26 | 9.5. Compromised TAM . . . . . . . . . . . . . . . . . . . . . 26 | |||
| 9.6. Malicious TA Removal . . . . . . . . . . . . . . . . . . 26 | 9.6. Malicious TA Removal . . . . . . . . . . . . . . . . . . 26 | |||
| 9.7. Certificate Renewal . . . . . . . . . . . . . . . . . . . 27 | 9.7. Certificate Renewal . . . . . . . . . . . . . . . . . . . 27 | |||
| 9.8. Keeping Secrets from the TAM . . . . . . . . . . . . . . 27 | 9.8. Keeping Secrets from the TAM . . . . . . . . . . . . . . 27 | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 28 | |||
| 11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 27 | 11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 28 | |||
| 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 27 | 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 28 | |||
| 13. Informative References . . . . . . . . . . . . . . . . . . . 28 | 13. Informative References . . . . . . . . . . . . . . . . . . . 28 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 28 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 29 | |||
| 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 19 ¶ | skipping to change at page 6, line 19 ¶ | |||
| 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. | |||
| - 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 the 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 | |||
| authoritative entity via a public key and associated data. The | authoritative entity via a public key and associated data. The | |||
| public key is used to verify digital signatures, and the | public key is used to verify digital signatures, and the | |||
| associated data is used to constrain the types of information for | associated data is used to constrain the types of information for | |||
| which the trust anchor is authoritative." The Trust Anchor may be | which the trust anchor is authoritative." The Trust Anchor may be | |||
| a certificate or it may be a raw public key along with additional | a certificate or it may be a raw public key along with additional | |||
| data if necessary such as its public key algorithm and parameters. | data if necessary such as its public key algorithm and parameters. | |||
| skipping to change at page 10, line 12 ¶ | skipping to change at page 10, line 12 ¶ | |||
| keys in their device's Trust Anchor list. Alternatively, a TAM | keys in their device's Trust Anchor list. 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. | |||
| - TEEP Broker: A TEEP Broker is an application component running in | - TEEP Broker: A TEEP Broker is an application component running in | |||
| a Rich Execution Environment (REE) that enables the message | a Rich Execution Environment (REE) that enables the message | |||
| protocol exchange between a TAM and a TEE in a device. A TEEP | protocol exchange between a TAM and a TEE in a device. A TEEP | |||
| Broker does not process messages on behalf of a TEE, but merely is | Broker does not process messages on behalf of a TEE, but merely is | |||
| responsible for relaying messages from the TAM to the TEE, and for | responsible for relaying messages from the TAM to the TEE, and for | |||
| returning the TEE's responses to the TAM. In devices with no REE, | returning the TEE's responses to the TAM. In devices with no REE | |||
| the TEEP Broker would be absent and instead the TEEP protocol | (e.g., a microcontroller where all code runs in an environment | |||
| transport would be implemented inside the TEE itself. | that meets the definition of a Trusted Execution Environment in | |||
| Section 2), the TEEP Broker would be absent and instead the TEEP | ||||
| protocol transport would be implemented inside the TEE itself. | ||||
| - TEEP Agent: The TEEP Agent is a processing module running inside a | - TEEP Agent: The TEEP Agent is a processing module running inside a | |||
| TEE that receives TAM requests (typically relayed via a TEEP | TEE that receives TAM requests (typically relayed via a TEEP | |||
| 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): Certificate-based credentials used | - Certification Authority (CA): Certificate-based credentials used | |||
| skipping to change at page 12, line 15 ¶ | skipping to change at page 12, line 17 ¶ | |||
| resource usage. | 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, | ||||
| whether that TA is installed (or minimally, is running) in a TEE with | ||||
| which the TEEP Agent is associated. | ||||
| Each TA is digitally signed, protecting its integrity, and linking | Each TA is digitally signed, protecting its integrity, and linking | |||
| the TA back to the signer. The signer is usually the TA software | the TA back to the signer. The signer is usually the TA software | |||
| author, but in some cases might be another party that the TA software | author, but in some cases might be another party that the TA software | |||
| author trusts, or a party to whom the code has been licensed (in | author trusts, or a party to whom the code has been licensed (in | |||
| which case the same code might be signed by multiple licensees and | which case the same code might be signed by multiple licensees and | |||
| distributed as if it were different TAs). | distributed as if it were different TAs). | |||
| A TA author or signer selects one or more TAMs through which to offer | A TA author or signer selects one or more TAMs through which to offer | |||
| their TA(s), and communicates the TA(s) to the TAM. In this | their TA(s), and communicates the TA(s) to the TAM. In this | |||
| document, we use the term "TA developer" to refer to the entity that | document, we use the term "TA developer" to refer to the entity that | |||
| skipping to change at page 18, line 22 ¶ | skipping to change at page 18, line 22 ¶ | |||
| Code Signing 1 per TA TA binary TEE | Code Signing 1 per TA TA binary TEE | |||
| developer | developer | |||
| Figure 4: Keys | Figure 4: 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. | |||
| The TEE key pair and certificate are used for authenticating the TEE | TEEP requests from a TAM to a TEEP Agent can be encrypted with the | |||
| to a remote TAM. Often, the key pair is burned into the TEE by the | TEE public key (to provide confidentiality), and are then signed with | |||
| TEE manufacturer and the key pair and its certificate are valid for | the TAM private key (for authentication and integrity protection). | |||
| the expected lifetime of the TEE. A TAM provider is responsible for | Conversely, TEEP responses from a TEEP Agent to a TAM can be | |||
| configuring the TAM's Trust Anchor Store with the manufacturer | encrypted with the TAM public key, and are then signed with the TEE | |||
| certificates or CAs that are used to sign TEE keys. This is | private key. | |||
| discussed further in Section 5.3 below. | ||||
| 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, | ||||
| 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 | ||||
| the TEE. A TAM provider is responsible for configuring the TAM's | ||||
| Trust Anchor Store with the manufacturer certificates or CAs that are | ||||
| used to sign TEE keys. This is discussed further in Section 5.3 | ||||
| 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. A TAM provider is responsible for acquiring a | a remote TEE, and for sending private data to the TAM. A TAM | |||
| certificate from a CA that is trusted by the TEEs it manages. This | provider is responsible for acquiring a certificate from a CA that is | |||
| is discussed further in Section 5.1 below. | trusted by the TEEs it manages. This is discussed further in | |||
| Section 5.1 below. | ||||
| The TA developer key pair and certificate are used to sign TAs that | The TA developer key pair and certificate are used to sign TAs that | |||
| the TEE will consider authorized to execute. TEEs must be configured | the TEE will consider authorized to execute. TEEs must be configured | |||
| with the certificates or keys that it considers authorized to sign | with the certificates or keys that it considers authorized to sign | |||
| TAs that it will execute. This is discussed further in Section 5.2 | TAs that it will execute. This is discussed further in Section 5.2 | |||
| below. | 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, | |||
| skipping to change at page 25, line 17 ¶ | skipping to change at page 25, line 21 ¶ | |||
| 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 TAs. Since the TEEP Broker runs in a | |||
| potentially vulnerable REE, the TEEP Broker could, however, be (or be | potentially vulnerable REE, the TEEP Broker could, however, be (or be | |||
| infected by) malware. As such, all TAM messages are signed and | infected by) malware. As such, all TAM messages are signed and | |||
| sensitive data is encrypted such that the TEEP Broker cannot modify | sensitive data is encrypted such that the TEEP Broker cannot modify | |||
| or capture sensitive data. | or capture sensitive data, but the TEEP Broker can 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. | |||
| skipping to change at page 25, line 39 ¶ | skipping to change at page 25, line 44 ¶ | |||
| 9.2. Data Protection at TAM and TEE | 9.2. Data Protection at TAM and TEE | |||
| The TEE implementation provides protection of data on the device. It | The TEE implementation provides protection of data on the device. It | |||
| is the responsibility of the TAM to protect data on its servers. | is the responsibility of the TAM to protect data on its servers. | |||
| 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. However, while a DoS attack cannot be prevented, the | reach the TEE, or might drop or delay messages between a TAM and a | |||
| REE cannot access anything in the TEE if it is implemented correctly. | 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 | 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 have such | |||
| 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. | |||
| skipping to change at page 27, line 7 ¶ | skipping to change at page 27, line 9 ¶ | |||
| 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. | |||
| 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. | result in an attestation failure. There is, however, a time window | |||
| during which a malicious TA might be able to operate successfully, | ||||
| which is the validity time of the previous attestation result. For | ||||
| example, if the Verifier in Figure 5 is updated to treat a previously | ||||
| valid TA as no longer trustworthy, any attestation result it | ||||
| previously generated saying that the TA is valid will continue to be | ||||
| used until the attestation result expires. As such, the TAM's | ||||
| Verifier should take into account the acceptable time window when | ||||
| generating attestation results. See [I-D.ietf-rats-architecture] for | ||||
| further discussion. | ||||
| 9.7. Certificate Renewal | 9.7. Certificate Renewal | |||
| TEE device certificates are expected to be long lived, longer than | TEE device certificates are expected to be long lived, longer than | |||
| the lifetime of a device. A TAM certificate usually has a moderate | the lifetime of a device. A TAM certificate usually has a moderate | |||
| lifetime of 2 to 5 years. A TAM should get renewed or rekeyed | lifetime of 2 to 5 years. A TAM should get renewed or rekeyed | |||
| certificates. The root CA certificates for a TAM, which are embedded | certificates. The root CA certificates for a TAM, which are embedded | |||
| into the Trust Anchor store in a device, should have long lifetimes | into the Trust Anchor store in a device, should have long lifetimes | |||
| that don't require device Trust Anchor update. On the other hand, it | that don't require device Trust Anchor update. On the other hand, it | |||
| is imperative that OEMs or device providers plan for support of Trust | is imperative that OEMs or device providers plan for support of Trust | |||
| skipping to change at page 28, line 27 ¶ | skipping to change at page 28, line 44 ¶ | |||
| [I-D.ietf-suit-manifest] | [I-D.ietf-suit-manifest] | |||
| Moran, B., Tschofenig, H., and H. Birkholz, "A Concise | Moran, B., Tschofenig, H., and H. Birkholz, "A Concise | |||
| Binary Object Representation (CBOR)-based Serialization | Binary Object Representation (CBOR)-based Serialization | |||
| Format for the Software Updates for Internet of Things | Format for the Software Updates for Internet of Things | |||
| (SUIT) Manifest", draft-ietf-suit-manifest-03 (work in | (SUIT) Manifest", draft-ietf-suit-manifest-03 (work in | |||
| progress), February 2020. | progress), February 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-03 (work in progress), | draft-ietf-teep-otrp-over-http-04 (work in progress), | |||
| November 2019. | February 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. 18 change blocks. | ||||
| 31 lines changed or deleted | 57 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/ | ||||