draft-ietf-rats-architecture-04.txt | draft-ietf-rats-architecture-05.txt | |||
---|---|---|---|---|
RATS Working Group H. Birkholz | RATS Working Group H. Birkholz | |||
Internet-Draft Fraunhofer SIT | Internet-Draft Fraunhofer SIT | |||
Intended status: Informational D. Thaler | Intended status: Informational D. Thaler | |||
Expires: 22 November 2020 Microsoft | Expires: 11 January 2021 Microsoft | |||
M. Richardson | M. Richardson | |||
Sandelman Software Works | Sandelman Software Works | |||
N. Smith | N. Smith | |||
Intel | Intel | |||
W. Pan | W. Pan | |||
Huawei Technologies | Huawei Technologies | |||
21 May 2020 | 10 July 2020 | |||
Remote Attestation Procedures Architecture | Remote Attestation Procedures Architecture | |||
draft-ietf-rats-architecture-04 | draft-ietf-rats-architecture-05 | |||
Abstract | Abstract | |||
In network protocol exchanges, it is often the case that one entity | In network protocol exchanges, it is often the case that one entity | |||
(a Relying Party) requires evidence about a remote peer to assess the | (a Relying Party) requires evidence about a remote peer to assess the | |||
peer's trustworthiness, and a way to appraise such evidence. The | peer's trustworthiness, and a way to appraise such evidence. The | |||
evidence is typically a set of claims about its software and hardware | evidence is typically a set of claims about its software and hardware | |||
platform. This document describes an architecture for such remote | platform. This document describes an architecture for such remote | |||
attestation procedures (RATS). | attestation procedures (RATS). | |||
skipping to change at page 2, line 10 ¶ | skipping to change at page 2, line 10 ¶ | |||
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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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 22 November 2020. | This Internet-Draft will expire on 11 January 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
skipping to change at page 2, line 37 ¶ | skipping to change at page 2, line 37 ¶ | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3. Reference Use Cases . . . . . . . . . . . . . . . . . . . . . 5 | 3. Reference Use Cases . . . . . . . . . . . . . . . . . . . . . 5 | |||
3.1. Network Endpoint Assessment . . . . . . . . . . . . . . . 5 | 3.1. Network Endpoint Assessment . . . . . . . . . . . . . . . 5 | |||
3.2. Confidential Machine Learning (ML) Model Protection . . . 6 | 3.2. Confidential Machine Learning (ML) Model Protection . . . 6 | |||
3.3. Confidential Data Retrieval . . . . . . . . . . . . . . . 6 | 3.3. Confidential Data Retrieval . . . . . . . . . . . . . . . 6 | |||
3.4. Critical Infrastructure Control . . . . . . . . . . . . . 6 | 3.4. Critical Infrastructure Control . . . . . . . . . . . . . 6 | |||
3.5. Trusted Execution Environment (TEE) Provisioning . . . . 7 | 3.5. Trusted Execution Environment (TEE) Provisioning . . . . 7 | |||
3.6. Hardware Watchdog . . . . . . . . . . . . . . . . . . . . 7 | 3.6. Hardware Watchdog . . . . . . . . . . . . . . . . . . . . 7 | |||
4. Architectural Overview . . . . . . . . . . . . . . . . . . . 7 | 4. Architectural Overview . . . . . . . . . . . . . . . . . . . 8 | |||
4.1. Appraisal Policies . . . . . . . . . . . . . . . . . . . 9 | 4.1. Appraisal Policies . . . . . . . . . . . . . . . . . . . 9 | |||
4.2. Two Types of Environments of an Attester . . . . . . . . 9 | 4.2. Two Types of Environments of an Attester . . . . . . . . 9 | |||
4.3. Layered Attestation Environments . . . . . . . . . . . . 10 | 4.3. Layered Attestation Environments . . . . . . . . . . . . 10 | |||
4.4. Composite Device . . . . . . . . . . . . . . . . . . . . 12 | 4.4. Composite Device . . . . . . . . . . . . . . . . . . . . 12 | |||
5. Topological Models . . . . . . . . . . . . . . . . . . . . . 15 | 5. Topological Models . . . . . . . . . . . . . . . . . . . . . 15 | |||
5.1. Passport Model . . . . . . . . . . . . . . . . . . . . . 15 | 5.1. Passport Model . . . . . . . . . . . . . . . . . . . . . 15 | |||
5.2. Background-Check Model . . . . . . . . . . . . . . . . . 16 | 5.2. Background-Check Model . . . . . . . . . . . . . . . . . 16 | |||
5.3. Combinations . . . . . . . . . . . . . . . . . . . . . . 17 | 5.3. Combinations . . . . . . . . . . . . . . . . . . . . . . 17 | |||
6. Roles and Entities . . . . . . . . . . . . . . . . . . . . . 18 | 6. Roles and Entities . . . . . . . . . . . . . . . . . . . . . 18 | |||
7. Trust Model . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 7. Trust Model . . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
8. Conceptual Messages . . . . . . . . . . . . . . . . . . . . . 20 | 7.1. Relying Party . . . . . . . . . . . . . . . . . . . . . . 19 | |||
7.2. Attester . . . . . . . . . . . . . . . . . . . . . . . . 20 | ||||
7.3. Relying Party Owner . . . . . . . . . . . . . . . . . . . 20 | ||||
7.4. Verifier . . . . . . . . . . . . . . . . . . . . . . . . 20 | ||||
7.5. Endorser and Verifier Owner . . . . . . . . . . . . . . . 21 | ||||
8. Conceptual Messages . . . . . . . . . . . . . . . . . . . . . 21 | ||||
8.1. Evidence . . . . . . . . . . . . . . . . . . . . . . . . 21 | 8.1. Evidence . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
8.2. Endorsements . . . . . . . . . . . . . . . . . . . . . . 21 | 8.2. Endorsements . . . . . . . . . . . . . . . . . . . . . . 21 | |||
8.3. Attestation Results . . . . . . . . . . . . . . . . . . . 22 | 8.3. Attestation Results . . . . . . . . . . . . . . . . . . . 22 | |||
9. Claims Encoding Formats . . . . . . . . . . . . . . . . . . . 22 | 9. Claims Encoding Formats . . . . . . . . . . . . . . . . . . . 23 | |||
10. Freshness . . . . . . . . . . . . . . . . . . . . . . . . . . 24 | 10. Freshness . . . . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
11. Privacy Considerations . . . . . . . . . . . . . . . . . . . 25 | 11. Privacy Considerations . . . . . . . . . . . . . . . . . . . 27 | |||
12. Security Considerations . . . . . . . . . . . . . . . . . . . 26 | 12. Security Considerations . . . . . . . . . . . . . . . . . . . 27 | |||
13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 26 | 13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 28 | |||
14. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 26 | 14. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 28 | |||
15. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 27 | 15. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 29 | |||
16. Appendix A: Time Considerations . . . . . . . . . . . . . . . 27 | 16. Appendix A: Time Considerations . . . . . . . . . . . . . . . 29 | |||
16.1. Example 1: Timestamp-based Passport Model Example . . . 29 | 16.1. Example 1: Timestamp-based Passport Model Example . . . 30 | |||
16.2. Example 2: Nonce-based Passport Model Example . . . . . 30 | 16.2. Example 2: Nonce-based Passport Model Example . . . . . 32 | |||
16.3. Example 3: Timestamp-based Background-Check Model | 16.3. Example 3: Timestamp-based Background-Check Model | |||
Example . . . . . . . . . . . . . . . . . . . . . . . . 31 | Example . . . . . . . . . . . . . . . . . . . . . . . . 33 | |||
16.4. Example 4: Nonce-based Background-Check Model Example . 31 | 16.4. Example 4: Nonce-based Background-Check Model Example . 33 | |||
17. References . . . . . . . . . . . . . . . . . . . . . . . . . 32 | 17. References . . . . . . . . . . . . . . . . . . . . . . . . . 34 | |||
17.1. Normative References . . . . . . . . . . . . . . . . . . 32 | 17.1. Normative References . . . . . . . . . . . . . . . . . . 34 | |||
17.2. Informative References . . . . . . . . . . . . . . . . . 32 | 17.2. Informative References . . . . . . . . . . . . . . . . . 34 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 | |||
1. Introduction | 1. Introduction | |||
In Remote Attestation Procedures (RATS), one peer (the "Attester") | In Remote Attestation Procedures (RATS), one peer (the "Attester") | |||
produces believable information about itself - Evidence - to enable a | produces believable information about itself - Evidence - to enable a | |||
remote peer (the "Relying Party") to decide whether to consider that | remote peer (the "Relying Party") to decide whether to consider that | |||
Attester a trustworthy peer or not. RATS are facilitated by an | Attester a trustworthy peer or not. RATS are facilitated by an | |||
additional vital party, the Verifier. | additional vital party, the Verifier. | |||
The Verifier appraises Evidence via Appraisal Policies and creates | The Verifier appraises Evidence via Appraisal Policies and creates | |||
the Attestation Results to support Relying Parties in their decision | the Attestation Results to support Relying Parties in their decision | |||
process. | process. This documents defines a flexible architecture consisting | |||
of attestation roles and their interactions via conceptual messages. | ||||
This documents defines a flexible architecture with corresponding | Additionally, this document defines a universal set of terms that can | |||
roles and their interaction via conceptual messages. Additionally, | be mapped to various existing and emerging Remote Attestation | |||
this document defines a universal set of terms that can be mapped to | Procedures. Common topological models and the data flows associated | |||
various existing and emerging Remote Attestation Procedures. Common | with them, such as the "Passport Model" and the "Background-Check | |||
topological models and the data flows associated with them, such as | Model" are illustrated. The purpose is to define useful terminology | |||
the "Passport Model" and the "Background-Check Model" are | for attestation and enable readers to map their solution architecture | |||
illustrated. The purpose is to enable readers of this document to | to the canonical attestation architecture provided here. Having a | |||
map their current and emerging solutions to the architecture provided | common terminology that provides well-understood meanings for common | |||
and the corresponding terminology defined. | themes such as roles, device composition, topological models, and | |||
appraisal is vital for semantic interoperability across solutions and | ||||
A common terminology that provides a well-understood semantic meaning | platforms involving multiple vendors and providers. | |||
to the concepts, roles, and models in this document is vital to | ||||
create semantic interoperability between solutions and across | ||||
different platforms. | ||||
Amongst other things, this document is about trust and | Amongst other things, this document is about trust and | |||
trustworthiness. Trust is a decision being made. Trustworthiness is | trustworthiness. Trust is a choice one makes about another system. | |||
a quality that is assessed via evidence created. This is a subtle | Trustworthiness is a quality about the other system that can be used | |||
in making one's decision to trust it or not. This is subtle | ||||
difference and being familiar with the difference is crucial for | difference and being familiar with the difference is crucial for | |||
using this document. Additionally, the concepts of freshness and | using this document. Additionally, the concepts of freshness and | |||
trust relationships with respect to RATS are elaborated on to enable | trust relationships with respect to RATS are elaborated on to enable | |||
implementers in order to choose appropriate solutions to compose | implementers in order to choose appropriate solutions to compose | |||
their Remote Attestation Procedures. | their Remote Attestation Procedures. | |||
2. Terminology | 2. Terminology | |||
This document uses the following terms. | This document uses the following terms. | |||
Appraisal Policy for Evidence: A set of rules that direct how a | Appraisal Policy for Evidence: A set of rules that informs how a | |||
Verifier evaluates the validity of information about an Attester. | Verifier evaluates the validity of information about an Attester. | |||
Compare /security policy/ in [RFC4949] | Compare /security policy/ in [RFC4949] | |||
Appraisal Policy for Attestation Result: A set of rules that direct | Appraisal Policy for Attestation Results: A set of rules that direct | |||
how a Relying Party uses the Attestation Results regarding an | how a Relying Party uses the Attestation Results regarding an | |||
Attester generated by the Verifiers. Compare /security policy/ in | Attester generated by the Verifiers. Compare /security policy/ in | |||
[RFC4949] | [RFC4949] | |||
Attestation Result: The output generated by a Verifier, typically | Attestation Result: The output generated by a Verifier, typically | |||
including information about an Attester, where the Verifier | including information about an Attester, where the Verifier | |||
vouches for the validity of the results | vouches for the validity of the results | |||
Attester: An entity whose attributes must be appraised in order to | Attester: A role performed by an entity (typically a device) whose | |||
determine whether the entity is considered trustworthy, such as | Evidence must be appraised in order to infer the extent to which | |||
when deciding whether the entity is authorized to perform some | the Attester is considered trustworthy, such as when deciding | |||
operation | whether it is authorized to perform some operation | |||
Claim: A piece of asserted information, often in the form of a name/ | Claim: A piece of asserted information, often in the form of a name/ | |||
value pair. (Compare /claim/ in [RFC7519]) | value pair. (Compare /claim/ in [RFC7519]) | |||
Endorsement: A secure statement that some entity (typically a | Endorsement: A secure statement that some entity (typically a | |||
manufacturer) vouches for the integrity of an Attester's signing | manufacturer) vouches for the integrity of an Attester's signing | |||
capability | capability | |||
Endorser: An entity that creates Endorsements that can be used to | Endorser: An entity (typically a manufacturer) whose Endorsements | |||
help to appraise the trustworthiness of Attesters | help Verifiers appraise the authenticity of Evidence | |||
Evidence: A set of information about an Attester that is to be | Evidence: A set of information about an Attester that is to be | |||
appraised by a Verifier | appraised by a Verifier. Evidence may include configuration data, | |||
measurements, telemetry, or inferences. | ||||
Relying Party: An entity that depends on the validity of information | Relying Party: A role performed by an entity that depends on the | |||
about another entity, typically for purposes of authorization. | validity of information about an Attester, for purposes of | |||
Compare /relying party/ in [RFC4949] | reliably applying application specific actions. Compare /relying | |||
party/ in [RFC4949] | ||||
Relying Party Owner: An entity, such as an administrator, that is | Relying Party Owner: An entity (typically an administrator), that is | |||
authorized to configure Appraisal Policy for Attestation Results | authorized to configure Appraisal Policy for Attestation Results | |||
in a Relying Party. | in a Relying Party | |||
Verifier: An entity that appraises the validity of Evidence about an | Verifier: A role performed by an entity that appraises the validity | |||
Attester | of Evidence about an Attester and produces Attestation Results to | |||
be used by a Relying Party | ||||
Verifier Owner: An entity, such as an administrator, that is | Verifier Owner: An entity (typically an administrator), that is | |||
authorized to configure Appraisal Policy for Evidence in a | authorized to configure Appraisal Policy for Evidence in a | |||
Verifier | Verifier | |||
3. Reference Use Cases | 3. Reference Use Cases | |||
This section covers a number of representative use cases for remote | This section covers a number of representative use cases for remote | |||
attestation, independent of specific solutions. The purpose is to | attestation, independent of specific solutions. The purpose is to | |||
provide motivation for various aspects of the architecture presented | provide motivation for various aspects of the architecture presented | |||
in this draft. Many other use cases exist, and this document does | in this draft. Many other use cases exist, and this document does | |||
not intend to have a complete list, only to have a set of use cases | not intend to have a complete list, only to have a set of use cases | |||
that collectively cover all the functionality required in the | that collectively cover all the functionality required in the | |||
architecture. | architecture. | |||
Each use case includes a description, and a summary of what an | Each use case includes a description followed by a summary of the | |||
Attester and a Relying Party refer to in the use case. | Attester and a Relying Party roles. | |||
3.1. Network Endpoint Assessment | 3.1. Network Endpoint Assessment | |||
Network operators want a trustworthy report of identity and version | Network operators want a trustworthy report that includes identity | |||
of information of the hardware and software on the machines attached | and version of information of the hardware and software on the | |||
to their network, for purposes such as inventory, auditing, and/or | machines attached to their network, for purposes such as inventory, | |||
logging. The network operator may also want a policy by which full | audit, anomaly detection, record maintenance and/or trending reports | |||
(logging). The network operator may also want a policy by which full | ||||
access is only granted to devices that meet some definition of | access is only granted to devices that meet some definition of | |||
health, and so wants to get claims about such information and verify | hygiene, and so wants to get claims about such information and verify | |||
their validity. Remote attestation is desired to prevent vulnerable | their validity. Remote attestation is desired to prevent vulnerable | |||
or compromised devices from getting access to the network and | or compromised devices from getting access to the network and | |||
potentially harming others. | potentially harming others. | |||
Typically, solutions start with a specific component (called a "Root | Typically, solutions start with a specific component (called a "Root | |||
of Trust") that provides device identity and protected storage for | of Trust") that provides device identity and protected storage for | |||
measurements. These components perform a series of measurements, and | measurements. The system components perform a series of measurements | |||
express this with Evidence as to the hardware and firmware/software | that may be signed by the Root of Trust, considered as Evidence about | |||
that is running. | the hardware, firmware, BIOS, software, etc. that is running. | |||
Attester: A device desiring access to a network | Attester: A device desiring access to a network | |||
Relying Party: A network infrastructure device such as a router, | Relying Party: A network infrastructure device such as a router, | |||
switch, or access point | switch, or access point | |||
3.2. Confidential Machine Learning (ML) Model Protection | 3.2. Confidential Machine Learning (ML) Model Protection | |||
A device manufacturer wants to protect its intellectual property in | A device manufacturer wants to protect its intellectual property. | |||
terms of the ML model it developed and that runs in the devices that | This is primarily the ML model it developed and runs in the devices | |||
its customers purchased, and it wants to prevent attackers, | purchased by its customers. The goals for the protection include | |||
potentially including the customer themselves, from seeing the | preventing attackers, potentially the customer themselves, from | |||
details of the model. | seeing the details of the model. | |||
This typically works by having some protected environment in the | This typically works by having some protected environment in the | |||
device attest to some manufacturer service. If remote attestation | device go through a remote attestation with some manufacturer service | |||
succeeds, then the manufacturer service releases either the model, or | that can assess its trustworthiness. If remote attestation succeeds, | |||
a key to decrypt a model the Attester already has in encrypted form, | then the manufacturer service releases either the model, or a key to | |||
to the requester. | decrypt a model the Attester already has in encrypted form, to the | |||
requester. | ||||
Attester: A device desiring to run an ML model to do inferencing | Attester: A device desiring to run an ML model to do inferencing | |||
Relying Party: A server or service holding ML models it desires to | Relying Party: A server or service holding ML models it desires to | |||
protect | protect | |||
3.3. Confidential Data Retrieval | 3.3. Confidential Data Retrieval | |||
This is a generalization of the ML model use case above, where the | This is a generalization of the ML model use case above, where the | |||
data can be any highly confidential data, such as health data about | data can be any highly confidential data, such as health data about | |||
customers, payroll data about employees, future business plans, etc. | customers, payroll data about employees, future business plans, etc. | |||
Attestation is desired to prevent leaking data to compromised | An assessment of system state is made against a set of policies to | |||
devices. | evaluate the state of a system using attestations for the system | |||
requesting data. Attestation is desired to prevent leaking data to | ||||
compromised devices. | ||||
Attester: An entity desiring to retrieve confidential data | Attester: An entity desiring to retrieve confidential data | |||
Relying Party: An entity that holds confidential data for retrieval | Relying Party: An entity that holds confidential data for retrieval | |||
by other entities | by other entities | |||
3.4. Critical Infrastructure Control | 3.4. Critical Infrastructure Control | |||
In this use case, potentially dangerous physical equipment (e.g., | In this use case, potentially dangerous physical equipment (e.g., | |||
power grid, traffic control, hazardous chemical processing, etc.) is | power grid, traffic control, hazardous chemical processing, etc.) is | |||
skipping to change at page 7, line 14 ¶ | skipping to change at page 7, line 21 ¶ | |||
Relying Party: A device or application connected to potentially | Relying Party: A device or application connected to potentially | |||
dangerous physical equipment (hazardous chemical processing, | dangerous physical equipment (hazardous chemical processing, | |||
traffic control, power grid, etc.) | traffic control, power grid, etc.) | |||
3.5. Trusted Execution Environment (TEE) Provisioning | 3.5. Trusted Execution Environment (TEE) Provisioning | |||
A "Trusted Application Manager (TAM)" server is responsible for | A "Trusted Application Manager (TAM)" server is responsible for | |||
managing the applications running in the TEE of a client device. To | managing the applications running in the TEE of a client device. To | |||
do this, the TAM wants to assess the state of a TEE, or of | do this, the TAM wants to assess the state of a TEE, or of | |||
applications in the TEE, of a client device. The TEE attests to the | applications in the TEE, of a client device. The TEE conducts a | |||
TAM, which can then decide whether the TEE is already in compliance | remote attestation procedure with the TAM, which can then decide | |||
with the TAM's latest policy, or if the TAM needs to uninstall, | whether the TEE is already in compliance with the TAM's latest | |||
update, or install approved applications in the TEE to bring it back | policy, or if the TAM needs to uninstall, update, or install approved | |||
into compliance with the TAM's policy. | applications in the TEE to bring it back into compliance with the | |||
TAM's policy. | ||||
Attester: A device with a trusted execution environment capable of | Attester: A device with a trusted execution environment capable of | |||
running trusted applications that can be updated | running trusted applications that can be updated | |||
Relying Party: A Trusted Application Manager | Relying Party: A Trusted Application Manager | |||
3.6. Hardware Watchdog | 3.6. Hardware Watchdog | |||
One significant problem is malware that holds a device hostage and | One significant problem is malware that holds a device hostage and | |||
does not allow it to reboot to prevent updates to be applied. This | does not allow it to reboot to prevent updates from being applied. | |||
is a significant problem, because it allows a fleet of devices to be | This is a significant problem, because it allows a fleet of devices | |||
held hostage for ransom. | to be held hostage for ransom. | |||
A hardware watchdog can be implemented by forcing a reboot unless | In the case, the Relying Party is the watchdog timer in the TPM/ | |||
remote attestation to a server succeeds within a periodic interval, | secure enclave itself, as described in [TCGarch] section 43.3. The | |||
and having the reboot do remediation by bringing a device into | Attestation Results are returned to the device, and provided to the | |||
compliance, including installation of patches as needed. | enclave. | |||
If the watchdog does not receive regular, and fresh, Attestation | ||||
Results as to the systems' health, then it forces a reboot. | ||||
Attester: The device that is desired to keep from being held hostage | Attester: The device that is desired to keep from being held hostage | |||
for a long period of time | for a long period of time | |||
Relying Party: A remote server that will securely grant the Attester | Relying Party: A remote server that will securely grant the Attester | |||
permission to continue operating (i.e., not reboot) for a period | permission to continue operating (i.e., not reboot) for a period | |||
of time | of time | |||
4. Architectural Overview | 4. Architectural Overview | |||
skipping to change at page 8, line 16 ¶ | skipping to change at page 8, line 23 ¶ | |||
* Endorser * * Verifier * * Relying Party* | * Endorser * * Verifier * * Relying Party* | |||
************ * Owner * * Owner * | ************ * Owner * * Owner * | |||
| ************ **************** | | ************ **************** | |||
| | | | | | | | |||
Endorsements| | | | Endorsements| | | | |||
| |Appraisal | | | |Appraisal | | |||
| |Policy | | | |Policy | | |||
| |for | Appraisal | | |for | Appraisal | |||
| |Evidence | Policy for | | |Evidence | Policy for | |||
| | | Attestation | | | | Attestation | |||
| | | Result | | | | Results | |||
v v | | v v | | |||
.-----------------. | | .-----------------. | | |||
.----->| Verifier |------. | | .----->| Verifier |------. | | |||
| '-----------------' | | | | '-----------------' | | | |||
| | | | | | | | |||
| Attestation| | | | Attestation| | | |||
| Results | | | | Results | | | |||
| Evidence | | | | Evidence | | | |||
| | | | | | | | |||
| v v | | v v | |||
skipping to change at page 8, line 38 ¶ | skipping to change at page 8, line 45 ¶ | |||
| Attester | | Relying Party | | | Attester | | Relying Party | | |||
'----------' '-----------------' | '----------' '-----------------' | |||
Figure 1: Conceptual Data Flow | Figure 1: Conceptual Data Flow | |||
An Attester creates Evidence that is conveyed to a Verifier. | An Attester creates Evidence that is conveyed to a Verifier. | |||
The Verifier uses the Evidence, and any Endorsements from Endorsers, | The Verifier uses the Evidence, and any Endorsements from Endorsers, | |||
by applying an Evidence Appraisal Policy to assess the | by applying an Evidence Appraisal Policy to assess the | |||
trustworthiness of the Attester, and generates Attestation Results | trustworthiness of the Attester, and generates Attestation Results | |||
for use by Relying Parties. The Evidence Appraisal Policy might be | for use by Relying Parties. The Appraisal Policy for Evidence might | |||
obtained from an Endorser along with the Endorsements, or might be | be obtained from an Endorser along with the Endorsements, or might be | |||
obtained via some other mechanism such as being configured in the | obtained via some other mechanism such as being configured in the | |||
Verifier by an administrator. | Verifier by an administrator. | |||
The Relying Party uses Attestation Results by applying its own | The Relying Party uses Attestation Results by applying its own | |||
Appraisal Policy to make application-specific decisions such as | Appraisal Policy to make application-specific decisions such as | |||
authorization decisions. The Attestation Result Appraisal Policy | authorization decisions. The Appraisal Policy for Attestation | |||
might, for example, be configured in the Relying Party by an | Results might, for example, be configured in the Relying Party by an | |||
administrator. | administrator. | |||
4.1. Appraisal Policies | 4.1. Appraisal Policies | |||
The Verifier, when appraising Evidence, or the Relying Party, when | The Verifier, when appraising Evidence, or the Relying Party, when | |||
appraising Attestation Results, checks the values of some claims | appraising Attestation Results, checks the values of some claims | |||
against constraints specified in its Appraisal Policy. Such | against constraints specified in its Appraisal Policy. Such | |||
constraints might involve a comparison for equality against a | constraints might involve a comparison for equality against a | |||
reference value, or a check for being in a range bounded by reference | reference value, or a check for being in a range bounded by reference | |||
values, or membership in a set of reference values, or a check | values, or membership in a set of reference values, or a check | |||
skipping to change at page 9, line 44 ¶ | skipping to change at page 9, line 50 ¶ | |||
Claims are collected from Target Environments, as shown in Figure 2. | Claims are collected from Target Environments, as shown in Figure 2. | |||
That is, Attesting Environments collect the raw values and the | That is, Attesting Environments collect the raw values and the | |||
information to be represented in claims, such as by doing some | information to be represented in claims, such as by doing some | |||
measurement of a Target Environment's code, memory, and/or registers. | measurement of a Target Environment's code, memory, and/or registers. | |||
Attesting Environments then format the claims appropriately, and | Attesting Environments then format the claims appropriately, and | |||
typically use key material and cryptographic functions, such as | typically use key material and cryptographic functions, such as | |||
signing or cipher algorithms, to create Evidence. Places that | signing or cipher algorithms, to create Evidence. Places that | |||
Attesting Environments can exist include Trusted Execution | Attesting Environments can exist include Trusted Execution | |||
Environments (TEE), embedded Secure Elements (eSE), and BIOS | Environments (TEE), embedded Secure Elements (eSE), and BIOS | |||
firmware. An execution environment may not, by default, be capable | firmware. An execution environment may not, by default, be capable | |||
of claims collection for a given Target Environment. Attesting | of claims collection for a given Target Environment. Execution | |||
Environments are designed specifically with claims collection in | environments that are designed to be capable of claims collection are | |||
mind. | referred to in this document as Attesting Environments. | |||
.--------------------------------. | .--------------------------------. | |||
| | | | | | |||
| Verifier | | | Verifier | | |||
| | | | | | |||
'--------------------------------' | '--------------------------------' | |||
^ | ^ | |||
| | | | |||
.-------------------------|----------. | .-------------------------|----------. | |||
| | | | | | | | |||
skipping to change at page 10, line 37 ¶ | skipping to change at page 10, line 37 ¶ | |||
| | Environment | | | | | Environment | | | |||
| | | | | | | | | | |||
| '-------------' | | | '-------------' | | |||
| Attester | | | Attester | | |||
'------------------------------------' | '------------------------------------' | |||
Figure 2: Two Types of Environments | Figure 2: Two Types of Environments | |||
4.3. Layered Attestation Environments | 4.3. Layered Attestation Environments | |||
By definition, the Attester role takes on the duty to create | By definition, the Attester role creates Evidence. An Attester may | |||
Evidence. The fact that an Attester role is composed of environments | consist of one or more nested or staged environments, adding | |||
that can be nested or staged adds complexity to the architectural | complexity to the architectural structure. The unifying component is | |||
layout of how an Attester can be composed and therefore has to | the Root of Trust and the nested, staged, or chained attestation | |||
conduct the Claims collection in order to create believable | Evidence produced. The nested or chained structure includes Claims, | |||
attestation Evidence. | collected by the Attester to aid in the assurance or believability of | |||
the attestation Evidence. | ||||
Figure 3 depicts an example of a device that includes (A) a BIOS | Figure 3 depicts an example of a device that includes (A) a BIOS | |||
stored in read-only memory in this example, (B) an updatable | stored in read-only memory in this example, (B) an updatable | |||
bootloader, and (C) an operating system kernel. | bootloader, and (C) an operating system kernel. | |||
.----------. .----------. | .----------. .----------. | |||
| | | | | | | | | | |||
| Endorser |------------------->| Verifier | | | Endorser |------------------->| Verifier | | |||
| | Endorsements | | | | | Endorsements | | | |||
'----------' for A, B, and C '----------' | '----------' for A, B, and C '----------' | |||
skipping to change at page 12, line 17 ¶ | skipping to change at page 12, line 17 ¶ | |||
ensured having those Claims be either signed by Attesting Environment | ensured having those Claims be either signed by Attesting Environment | |||
A or stored in an untamperable manner by Attesting Environment A. | A or stored in an untamperable manner by Attesting Environment A. | |||
Continuing with this example, the bootloader's Attesting Environment | Continuing with this example, the bootloader's Attesting Environment | |||
B is now in charge of collecting Claims about Target Environment C, | B is now in charge of collecting Claims about Target Environment C, | |||
which in this example is the kernel to be booted. The final Evidence | which in this example is the kernel to be booted. The final Evidence | |||
thus contains two sets of Claims: one set about the bootloader as | thus contains two sets of Claims: one set about the bootloader as | |||
measured and signed by the BIOS, plus a set of Claims about the | measured and signed by the BIOS, plus a set of Claims about the | |||
kernel as measured and signed by the bootloader. | kernel as measured and signed by the bootloader. | |||
This example could be extended further by, say, making the kernel | This example could be extended further by making the kernel become | |||
become another Attesting Environment for an application as another | another Attesting Environment for an application as another Target | |||
Target Environment, resulting in a third set of Claims in the | Environment. This would result in a third set of Claims in the | |||
Evidence pertaining to that application. | Evidence pertaining to that application. | |||
The essence of this example is a cascade of staged environments. | The essence of this example is a cascade of staged environments. | |||
Each environment has the responsibility of measuring the next | Each environment has the responsibility of measuring the next | |||
environment before the next environment is started. In general, the | environment before the next environment is started. In general, the | |||
number of layers may vary by device or implementation, and an | number of layers may vary by device or implementation, and an | |||
Attesting Environment might even have multiple Target Environments | Attesting Environment might even have multiple Target Environments | |||
that it measures, rather than only one as shown in Figure 3. | that it measures, rather than only one as shown in Figure 3. | |||
4.4. Composite Device | 4.4. Composite Device | |||
skipping to change at page 13, line 21 ¶ | skipping to change at page 13, line 21 ¶ | |||
other slots can communicate with the main slot by the links between | other slots can communicate with the main slot by the links between | |||
them inside the router. So the main slot collects the Evidence of | them inside the router. So the main slot collects the Evidence of | |||
other slots, produces the final Evidence of the whole router and | other slots, produces the final Evidence of the whole router and | |||
conveys the final Evidence to the Verifier. Therefore the router is | conveys the final Evidence to the Verifier. Therefore the router is | |||
a Composite Device, each slot is an Attester, and the main slot is | a Composite Device, each slot is an Attester, and the main slot is | |||
the lead Attester. | the lead Attester. | |||
Another example is a multi-chassis router composed of multiple single | Another example is a multi-chassis router composed of multiple single | |||
carrier-grade routers. The multi-chassis router provides higher | carrier-grade routers. The multi-chassis router provides higher | |||
throughput by interconnecting multiple routers and can be logically | throughput by interconnecting multiple routers and can be logically | |||
treated as one router for simpler management. Among these routers, | treated as one router for simpler management. A multi-chassis router | |||
there is only one main router that connects to the Verifier. Other | provides a management point that connects to the Verifier. Other | |||
routers are only connected to the main router by the network cables, | routers are only connected to the main router by the network cables, | |||
and therefore they are managed and appraised via this main router's | and therefore they are managed and appraised via this main router's | |||
help. So, in this case, the multi-chassis router is the Composite | help. So, in this case, the multi-chassis router is the Composite | |||
Device, each router is an Attester and the main router is the lead | Device, each router is an Attester and the main router is the lead | |||
Attester. | Attester. | |||
Figure 4 depicts the conceptual data flow for a Composite Device. | Figure 4 depicts the conceptual data flow for a Composite Device. | |||
.-----------------------------. | .-----------------------------. | |||
| Verifier | | | Verifier | | |||
skipping to change at page 14, line 44 ¶ | skipping to change at page 14, line 44 ¶ | |||
Environment(s). The lead Attester collects the Evidence of all other | Environment(s). The lead Attester collects the Evidence of all other | |||
Attesters and then generates the Evidence of the whole Composite | Attesters and then generates the Evidence of the whole Composite | |||
Attester. | Attester. | |||
An entity can take on multiple RATS roles (e.g., Attester, Verifier, | An entity can take on multiple RATS roles (e.g., Attester, Verifier, | |||
Relying Party, etc.) at the same time. The combination of roles can | Relying Party, etc.) at the same time. The combination of roles can | |||
be arbitrary. For example, in this Composite Device scenario, the | be arbitrary. For example, in this Composite Device scenario, the | |||
entity inside the lead Attester can also take on the role of a | entity inside the lead Attester can also take on the role of a | |||
Verifier, and the outside entity of Verifier can take on the role of | Verifier, and the outside entity of Verifier can take on the role of | |||
a Relying Party. After collecting the Evidence of other Attesters, | a Relying Party. After collecting the Evidence of other Attesters, | |||
this inside Verifier verifies them using Endorsements and Appraisal | this inside Verifier uses Endorsements and Appraisal Policies | |||
Policies (obtained the same way as any other Verifier), to generate | (obtained the same way as any other Verifier) in the verification | |||
Attestation Results. The inside Verifier then conveys the | process to generate Attestation Results. The inside Verifier then | |||
Attestation Results of other Attesters, whether in the same | conveys the Attestation Results of other Attesters, whether in the | |||
conveyance protocol as the Evidence or not, to the outside Verifier. | same conveyance protocol as the Evidence or not, to the outside | |||
Verifier. | ||||
In this situation, the trust model described in Section 7 is also | In this situation, the trust model described in Section 7 is also | |||
suitable for this inside Verifier. | suitable for this inside Verifier. | |||
5. Topological Models | 5. Topological Models | |||
Figure 1 shows a basic model for communication between an Attester, a | Figure 1 shows a basic model for communication between an Attester, a | |||
Verifier, and a Relying Party. The Attester conveys its Evidence to | Verifier, and a Relying Party. The Attester conveys its Evidence to | |||
the Verifier for appraisal, and the Relying Party gets the | the Verifier for appraisal, and the Relying Party gets the | |||
Attestation Results from the Verifier. There are multiple other | Attestation Result from the Verifier. There are multiple other | |||
possible models. This section includes some reference models, but | possible models. This section includes some reference models. This | |||
this is not intended to be a restrictive list, and other variations | is not intended to be a restrictive list, and other variations may | |||
may exist. | exist. | |||
5.1. Passport Model | 5.1. Passport Model | |||
The passport model is so named because of its resemblance to how | ||||
nations issue passports to their citizens. The nature of the | ||||
Evidence that an individual needs to provide to its local authority | ||||
is specific to the country involved. The citizen retains control of | ||||
the resulting passport document and presents it to other entities | ||||
when it needs to assert a citizenship or identity claim, such as an | ||||
airport immigration desk. The passport is considered sufficient | ||||
because it vouches for the citizenship and identity claims, and it is | ||||
issued by a trusted authority. Thus, in this immigration desk | ||||
analogy, the passport issuing agency is a Verifier, the passport is | ||||
an Attestation Result, and the immigration desk is a Relying Party. | ||||
In this model, an Attester conveys Evidence to a Verifier, which | In this model, an Attester conveys Evidence to a Verifier, which | |||
compares the Evidence against its Appraisal Policy. The Verifier | compares the Evidence against its Appraisal Policy. The Verifier | |||
then gives back an Attestation Result. If the Attestation Result was | then gives back an Attestation Result. If the Attestation Result was | |||
a successful one, the Attester can then present the Attestation | a successful one, the Attester can then present the Attestation | |||
Result to a Relying Party, which then compares the Attestation Result | Result to a Relying Party, which then compares the Attestation Result | |||
against its own Appraisal Policy. | against its own Appraisal Policy. | |||
There are three ways in which the process may fail. First, the | There are three ways in which the process may fail. First, the | |||
Verifier may refuse to issue the Attestation Result due to some error | Verifier may refuse to issue the Attestation Result due to some error | |||
in processing, or some missing input to the Verifier. The second way | in processing, or some missing input to the Verifier. The second way | |||
in which the process may fail is when the resulting Result is | in which the process may fail is when the Attestation Result is | |||
examined by the Relying Party, and based upon the Appraisal Policy, | examined by the Relying Party, and based upon the Appraisal Policy, | |||
the result does not pass the policy. The third way is when the | the result does not pass the policy. The third way is when the | |||
Verifier is unreachable. | Verifier is unreachable. | |||
Since the resource access protocol between the Attester and Relying | Since the resource access protocol between the Attester and Relying | |||
Party includes an Attestation Result, in this model the details of | Party includes an Attestation Result, in this model the details of | |||
that protocol constrain the serialization format of the Attestation | that protocol constrain the serialization format of the Attestation | |||
Result. The format of the Evidence on the other hand is only | Result. The format of the Evidence on the other hand is only | |||
constrained by the Attester-Verifier remote attestation protocol. | constrained by the Attester-Verifier remote attestation protocol. | |||
skipping to change at page 16, line 4 ¶ | skipping to change at page 16, line 19 ¶ | |||
+-------------+ | +-------------+ | |||
^ | | ^ | | |||
Evidence| |Attestation | Evidence| |Attestation | |||
| | Result | | | Result | |||
| v | | v | |||
+----------+ +---------+ | +----------+ +---------+ | |||
| |------------->| |Compare Attestation | | |------------->| |Compare Attestation | |||
| Attester | Attestation | Relying | Result against | | Attester | Attestation | Relying | Result against | |||
| | Result | Party | Appraisal | | | Result | Party | Appraisal | |||
+----------+ +---------+ Policy | +----------+ +---------+ Policy | |||
Figure 5: Passport Model | ||||
The passport model is so named because of its resemblance to how | Figure 5: Passport Model | |||
nations issue passports to their citizens. The nature of the | ||||
Evidence that an individual needs to provide to its local authority | ||||
is specific to the country involved. The citizen retains control of | ||||
the resulting passport document and presents it to other entities | ||||
when it needs to assert a citizenship or identity claim, such as an | ||||
airport immigration desk. The passport is considered sufficient | ||||
because it vouches for the citizenship and identity claims, and it is | ||||
issued by a trusted authority. Thus, in this immigration desk | ||||
analogy, the passport issuing agency is a Verifier, the passport is | ||||
an Attestation Result, and the immigration desk is a Relying Party. | ||||
5.2. Background-Check Model | 5.2. Background-Check Model | |||
The background-check model is so named because of the resemblance of | ||||
how employers and volunteer organizations perform background checks. | ||||
When a prospective employee provides claims about education or | ||||
previous experience, the employer will contact the respective | ||||
institutions or former employers to validate the claim. Volunteer | ||||
organizations often perform police background checks on volunteers in | ||||
order to determine the volunteer's trustworthiness. Thus, in this | ||||
analogy, a prospective volunteer is an Attester, the organization is | ||||
the Relying Party, and a former employer or government agency that | ||||
issues a report is a Verifier. | ||||
In this model, an Attester conveys Evidence to a Relying Party, which | In this model, an Attester conveys Evidence to a Relying Party, which | |||
simply passes it on to a Verifier. The Verifier then compares the | simply passes it on to a Verifier. The Verifier then compares the | |||
Evidence against its Appraisal Policy, and returns an Attestation | Evidence against its Appraisal Policy, and returns an Attestation | |||
Result to the Relying Party. The Relying Party then compares the | Result to the Relying Party. The Relying Party then compares the | |||
Attestation Result against its own appraisal policy. | Attestation Result against its own appraisal policy. | |||
The resource access protocol between the Attester and Relying Party | The resource access protocol between the Attester and Relying Party | |||
includes Evidence rather than an Attestation Result, but that | includes Evidence rather than an Attestation Result, but that | |||
Evidence is not processed by the Relying Party. Since the Evidence | Evidence is not processed by the Relying Party. Since the Evidence | |||
is merely forwarded on to a trusted Verifier, any serialization | is merely forwarded on to a trusted Verifier, any serialization | |||
skipping to change at page 17, line 22 ¶ | skipping to change at page 17, line 29 ¶ | |||
| | Result | | | Result | |||
| v | | v | |||
+------------+ +-------------+ | +------------+ +-------------+ | |||
| |-------------->| | Compare Attestation | | |-------------->| | Compare Attestation | |||
| Attester | Evidence | Relying | Result against | | Attester | Evidence | Relying | Result against | |||
| | | Party | Appraisal Policy | | | | Party | Appraisal Policy | |||
+------------+ +-------------+ | +------------+ +-------------+ | |||
Figure 6: Background-Check Model | Figure 6: Background-Check Model | |||
The background-check model is so named because of the resemblance of | ||||
how employers and volunteer organizations perform background checks. | ||||
When a prospective employee provides claims about education or | ||||
previous experience, the employer will contact the respective | ||||
institutions or former employers to validate the claim. Volunteer | ||||
organizations often perform police background checks on volunteers in | ||||
order to determine the volunteer's trustworthiness. Thus, in this | ||||
analogy, a prospective volunteer is an Attester, the organization is | ||||
the Relying Party, and a former employer or government agency that | ||||
issues a report is a Verifier. | ||||
5.3. Combinations | 5.3. Combinations | |||
One variation of the background-check model is where the Relying | One variation of the background-check model is where the Relying | |||
Party and the Verifier on the same machine, and so there is no need | Party and the Verifier are on the same machine, performing both | |||
for a protocol between the two. | functions together. In this case, there is no need for a protocol | |||
between the two. | ||||
It is also worth pointing out that the choice of model is generally | It is also worth pointing out that the choice of model is generally | |||
up to the Relying Party, and the same device may need to create | up to the Relying Party. The same device may need to create Evidence | |||
Evidence for different Relying Parties and different use cases (e.g., | for different Relying Parties and/or different use cases. For | |||
a network infrastructure device to gain access to the network, and | instance, it would provide Evidence to a network infrastructure | |||
then a server holding confidential data to get access to that data). | device to gain access to the network, and to a server holding | |||
As such, both models may simultaneously be in use by the same device. | confidential data to gain access to that data. As such, both models | |||
may simultaneously be in use by the same device. | ||||
Figure 7 shows another example of a combination where Relying Party 1 | Figure 7 shows another example of a combination where Relying Party 1 | |||
uses the passport model, whereas Relying Party 2 uses an extension of | uses the passport model, whereas Relying Party 2 uses an extension of | |||
the background-check model. Specifically, in addition to the basic | the background-check model. Specifically, in addition to the basic | |||
functionality shown in Figure 6, Relying Party 2 actually provides | functionality shown in Figure 6, Relying Party 2 actually provides | |||
the Attestation Result back to the Attester, allowing the Attester to | the Attestation Result back to the Attester, allowing the Attester to | |||
use it with other Relying Parties. This is the model that the | use it with other Relying Parties. This is the model that the | |||
Trusted Application Manager plans to support in the TEEP architecture | Trusted Application Manager plans to support in the TEEP architecture | |||
[I-D.ietf-teep-architecture]. | [I-D.ietf-teep-architecture]. | |||
skipping to change at page 18, line 43 ¶ | skipping to change at page 18, line 34 ¶ | |||
| |-------------->| | Compare Attestation | | |-------------->| | Compare Attestation | |||
| Attester | Attestation | Relying | Result against | | Attester | Attestation | Relying | Result against | |||
| | Result | Party 1 | Appraisal Policy | | | Result | Party 1 | Appraisal Policy | |||
+----------+ +----------+ | +----------+ +----------+ | |||
Figure 7: Example Combination | Figure 7: Example Combination | |||
6. Roles and Entities | 6. Roles and Entities | |||
An entity in the RATS architecture includes at least one of the roles | An entity in the RATS architecture includes at least one of the roles | |||
defined in this document. As a result, the entity can participate as | defined in this document. An entity can aggregate more than one role | |||
a constituent of the RATS architecture. Additionally, an entity can | into itself. These collapsed roles combine the duties of multiple | |||
aggregate more than one role into itself. These collapsed roles | roles. | |||
combine the duties of multiple roles. In these cases, interaction | ||||
between these roles do not necessarily use the Internet Protocol. | In these cases, interaction between these roles do not necessarily | |||
They can be using a loopback device or other IP-based communication | use the Internet Protocol. They can be using a loopback device or | |||
between separate environments, but they do not have to. Alternative | other IP-based communication between separate environments, but they | |||
channels to convey conceptual messages include function calls, | do not have to. Alternative channels to convey conceptual messages | |||
sockets, GPIO interfaces, local busses, or hypervisor calls. This | include function calls, sockets, GPIO interfaces, local busses, or | |||
type of conveyance is typically found in Composite Devices. Most | hypervisor calls. This type of conveyance is typically found in | |||
importantly, these conveyance methods are out-of-scope of RATS, but | Composite Devices. Most importantly, these conveyance methods are | |||
they are presumed to exist in order to convey conceptual messages | out-of-scope of RATS, but they are presumed to exist in order to | |||
appropriately between roles. | convey conceptual messages appropriately between roles. | |||
For example, an entity that both connects to a wide-area network and | For example, an entity that both connects to a wide-area network and | |||
to a system bus is taking on both the Attester and Verifier roles. | to a system bus is taking on both the Attester and Verifier roles. | |||
As a system bus entity, a Verifier consumes Evidence from other | As a system bus entity, a Verifier consumes Evidence from other | |||
devices connected to the system bus that implement Attester roles. | devices connected to the system bus that implement Attester roles. | |||
As a wide-area network connected entity, it may implement an Attester | As a wide-area network connected entity, it may implement an Attester | |||
role. The entity, as a system bus Verifier, may choose to fully | role. The entity, as a system bus Verifier, may choose to fully | |||
isolate its role as a wide-area network Attester. | isolate its role as a wide-area network Attester. | |||
In essence, an entity that combines more than one role also creates | In essence, an entity that combines more than one role creates and | |||
and consumes the corresponding conceptual messages as defined in this | consumes the corresponding conceptual messages as defined in this | |||
document. | document. | |||
7. Trust Model | 7. Trust Model | |||
7.1. Relying Party | ||||
The scope of this document is scenarios for which a Relying Party | The scope of this document is scenarios for which a Relying Party | |||
trusts a Verifier that can appraise the trustworthiness of | trusts a Verifier that can appraise the trustworthiness of | |||
information about an Attester. Such trust might come by the Relying | information about an Attester. Such trust might come by the Relying | |||
Party trusting the Verifier (or its public key) directly, or might | Party trusting the Verifier (or its public key) directly, or might | |||
come by trusting an entity (e.g., a Certificate Authority) that is in | come by trusting an entity (e.g., a Certificate Authority) that is in | |||
the Verifier's certificate chain. The Relying Party might implicitly | the Verifier's certificate chain. | |||
trust a Verifier (such as in the Verifying Relying Party | ||||
combination). Or, for a stronger level of security, the Relying | The Relying Party might implicitly trust a Verifier, such as in a | |||
Party might require that the Verifier itself provide information | Verifier/Relying Party combination where the Verifier and Relying | |||
about itself that the Relying Party can use to assess the | Party roles are combined. Or, for a stronger level of security, the | |||
Relying Party might require that the Verifier first provide | ||||
information about itself that the Relying Party can use to assess the | ||||
trustworthiness of the Verifier before accepting its Attestation | trustworthiness of the Verifier before accepting its Attestation | |||
Results. | Results. | |||
The Endorser and Verifier Owner may need to trust the Verifier before | For example, one explicit way for a Relying Party "A" to establish | |||
giving the Endorsement and Appraisal Policy to it. Such trust can | such trust in a Verifier "B", would be for B to first act as an | |||
also be established directly or indirectly, implicitly or explicitly. | Attester where A acts as a combined Verifier/Relying Party. If A | |||
One explicit way to establish such trust may be the Verifier first | then accepts B as trustworthy, it can choose to accept B as a | |||
acts as an Attester and creates Evidence about itself to be consumed | Verifier for other Attesters. | |||
by the Endorser and/or Verifier Owner as the Relying Parties. If it | ||||
is accepted as trustworthy, then they can provide Endorsements and | Similarly, the Relying Party also needs to trust the Relying Party | |||
Appraisal Policies that enable it to act as a Verifier. | Owner for providing its Appraisal Policy for Attestation Results, and | |||
in some scenarios the Relying Party might even require that the | ||||
Relying Party Owner go through a remote attestation procedure with it | ||||
before the Relying Party will accept an updated policy. This can be | ||||
done similarly to how a Relying Party could establish trust in a | ||||
Verifier as discussed above. | ||||
7.2. Attester | ||||
In some scenarios, Evidence might contain sensitive information such | ||||
as Personally Identifiable Information. Thus, an Attester must trust | ||||
entities to which it conveys Evidence, to not reveal sensitive data | ||||
to unauthorized parties. The Verifier might share this information | ||||
with other authorized parties, according to rules that it controls. | ||||
In the background-check model, this Evidence may also be revealed to | ||||
Relying Party(s). | ||||
In some cases where Evidence contains sensitive information, an | ||||
Attester might even require that a Verifier first go through a remote | ||||
attestation procedure with it before the Attester will send the | ||||
sensitive Evidence. This can be done by having the Attester first | ||||
act as a Verifier/Relying Party, and the Verifier act as its own | ||||
Attester, as discussed above. | ||||
7.3. Relying Party Owner | ||||
The Relying Party Owner might also require that the Relying Party | ||||
first act as an Attester, providing Evidence that the Owner can | ||||
appraise, before the Owner would give the Relying Party an updated | ||||
policy that might contain sensitive information. In such a case, | ||||
mutual attestation might be needed, in which case typically one | ||||
side's Evidence must be considered safe to share with an untrusted | ||||
entity, in order to bootstrap the sequence. | ||||
7.4. Verifier | ||||
The Verifier trusts (or more specifically, the Verifier's security | The Verifier trusts (or more specifically, the Verifier's security | |||
policy is written in a way that configures the Verifier to trust) a | policy is written in a way that configures the Verifier to trust) a | |||
manufacturer, or the manufacturer's hardware, so as to be able to | manufacturer, or the manufacturer's hardware, so as to be able to | |||
appraise the trustworthiness of that manufacturer's devices. In | appraise the trustworthiness of that manufacturer's devices. In | |||
solutions with weaker security, a Verifier might be configured to | solutions with weaker security, a Verifier might be configured to | |||
implicitly trust firmware or even software (e.g., a hypervisor). | implicitly trust firmware or even software (e.g., a hypervisor). | |||
That is, it might appraise the trustworthiness of an application | That is, it might appraise the trustworthiness of an application | |||
component, or operating system component or service, under the | component, operating system component, or service under the | |||
assumption that information provided about it by the lower-layer | assumption that information provided about it by the lower-layer | |||
hypervisor or firmware is true. A stronger level of security comes | hypervisor or firmware is true. A stronger level of assurance of | |||
when information can be vouched for by hardware or by ROM code, | security comes when information can be vouched for by hardware or by | |||
especially if such hardware is physically resistant to hardware | ROM code, especially if such hardware is physically resistant to | |||
tampering. The component that is implicitly trusted is often | hardware tampering. The component that is implicitly trusted is | |||
referred to as a Root of Trust. | often referred to as a Root of Trust. | |||
A conveyance protocol that provides authentication and integrity | A conveyance protocol that provides authentication and integrity | |||
protection can be used to convey unprotected Evidence, assuming the | protection can be used to convey unprotected Evidence, assuming the | |||
following properties exists: | following properties exists: | |||
1. The key material used to authenticate and integrity protect the | 1. The key material used to authenticate and integrity protect the | |||
conveyance channel is trusted by the Verifier to speak for the | conveyance channel is trusted by the Verifier to speak for the | |||
Attesting Environment(s) that collected claims about the Target | Attesting Environment(s) that collected claims about the Target | |||
Environment(s). | Environment(s). | |||
2. All unprotected Evidence that is conveyed is supplied exclusively | 2. All unprotected Evidence that is conveyed is supplied exclusively | |||
by the Attesting Environment that has the key material that | by the Attesting Environment that has the key material that | |||
protects the conveyance channel | protects the conveyance channel | |||
3. The Root of Trust protects both the conveyance channel key | 3. The Root of Trust protects both the conveyance channel key | |||
material and the Attesting Environment with equivalent strength | material and the Attesting Environment with equivalent strength | |||
protections. | protections. | |||
In some scenarios, Evidence might contain sensitive information such | 7.5. Endorser and Verifier Owner | |||
as Personally Identifiable Information. Thus, an Attester must trust | ||||
entities to which it conveys Evidence, to not reveal sensitive data | In some scenarios, the Endorser and Verifier Owner may need to trust | |||
to unauthorized parties. The Verifier might share this information | the Verifier before giving the Endorsement and Appraisal Policy to | |||
with other authorized parties, according rules that it controls. In | it. This can be done similarly to how a Relying Party might | |||
the background-check model, this Evidence may also be revealed to | establish trust in a Verifier as discussed above, and in such a case, | |||
Relying Party(s). | mutual attestation might even be needed as discussed in Section 7.3. | |||
8. Conceptual Messages | 8. Conceptual Messages | |||
8.1. Evidence | 8.1. Evidence | |||
Evidence is a set of claims about the target environment that reveal | Evidence is a set of claims about the target environment that reveal | |||
operational status, health, configuration or construction that have | operational status, health, configuration or construction that have | |||
security relevance. Evidence is evaluated by a Verifier to establish | security relevance. Evidence is evaluated by a Verifier to establish | |||
its relevance, compliance, and timeliness. Claims need to be | its relevance, compliance, and timeliness. Claims need to be | |||
collected in a manner that is reliable. Evidence needs to be | collected in a manner that is reliable. Evidence needs to be | |||
securely associated with the target environment so that the Verifier | securely associated with the target environment so that the Verifier | |||
cannot be tricked into accepting claims originating from a different | cannot be tricked into accepting claims originating from a different | |||
environment (that may be more trustworthy). Evidence also must be | environment (that may be more trustworthy). Evidence also must be | |||
skipping to change at page 23, line 6 ¶ | skipping to change at page 23, line 36 ¶ | |||
+-------------+ +------------+ Evaluate | +-------------+ +------------+ Evaluate | |||
| |-------------->| | request | | |-------------->| | request | |||
| Attester | Access some | Relying | against | | Attester | Access some | Relying | against | |||
| | resource | Party | security | | | resource | Party | security | |||
+-------------+ +------------+ policy | +-------------+ +------------+ policy | |||
Figure 8: Typical Resource Access | Figure 8: Typical Resource Access | |||
In this diagram, the protocol between Attester and a Relying Party | In this diagram, the protocol between Attester and a Relying Party | |||
can be any new or existing protocol (e.g., HTTP(S), COAP(S), 802.1x, | can be any new or existing protocol (e.g., HTTP(S), COAP(S), ROLIE | |||
OPC UA, etc.), depending on the use case. Such protocols typically | [RFC8322], 802.1x, OPC UA, etc.), depending on the use case. Such | |||
already have mechanisms for passing security information for purposes | protocols typically already have mechanisms for passing security | |||
of authentication and authorization. Common formats include JWTs | information for purposes of authentication and authorization. Common | |||
[RFC7519], CWTs [RFC8392], and X.509 certificates. | formats include JWTs [RFC7519], CWTs [RFC8392], and X.509 | |||
certificates. | ||||
To enable remote attestation to be added to existing protocols, | To enable remote attestation to be added to existing protocols, | |||
enabling a higher level of assurance against malware for example, it | enabling a higher level of assurance against malware for example, it | |||
is important that information needed for appraising the Attester be | is important that information needed for appraising the Attester be | |||
usable with existing protocols that have constraints around what | usable with existing protocols that have constraints around what | |||
formats they can transport. For example, OPC UA [OPCUA] (probably | formats they can transport. For example, OPC UA [OPCUA] (probably | |||
the most common protocol in industrial IoT environments) is defined | the most common protocol in industrial IoT environments) is defined | |||
to carry X.509 certificates and so security information must be | to carry X.509 certificates and so security information must be | |||
embedded into an X.509 certificate to be passed in the protocol. | embedded into an X.509 certificate to be passed in the protocol. | |||
Thus, remote attestation related information could be natively | Thus, remote attestation related information could be natively | |||
skipping to change at page 24, line 27 ¶ | skipping to change at page 25, line 27 ¶ | |||
'--------------' '------------' `-------------------' | '--------------' '------------' `-------------------' | |||
.--------------. other ^ | other .-------------------. | .--------------. other ^ | other .-------------------. | |||
| Attester-E |------------' '----------->| Relying Party Z | | | Attester-E |------------' '----------->| Relying Party Z | | |||
'--------------' `-------------------' | '--------------' `-------------------' | |||
Figure 9: Multiple Attesters and Relying Parties with Different | Figure 9: Multiple Attesters and Relying Parties with Different | |||
Formats | Formats | |||
10. Freshness | 10. Freshness | |||
It is important to prevent replay attacks where an attacker replays | A remote entity (Verifier or Relying Party) may need to learn the | |||
old Evidence or an old Attestation Result that is no longer correct. | point in time (i.e., the "epoch") an Evidence or Attestation Result | |||
To do so, some mechanism of ensuring that the Evidence and | has been produced. This is essential in deciding whether the | |||
Attestation Result are fresh, meaning that there is some degree of | included Claims and their values can be considered fresh, meaning | |||
assurance that they still reflect the latest state of the Attester, | they still reflect the latest state of the Attester, and that any | |||
and that any Attestation Result was generated using the latest | Attestation Result was generated using the latest Appraisal Policy | |||
Appraisal Policy for Evidence. There is, however, always a race | for Evidence. | |||
condition possible in that the state of the Attester, and the | ||||
Appraisal Policy for Evidence, might change immediately after the | ||||
Evidence or Attestation Result was generated. The goal is merely to | ||||
narrow the time window to something the Verifier (for Evidence) or | ||||
Relying Party (for an Attestation Result) is willing to accept. | ||||
There are two common approaches to providing some assurance of | Freshness is assessed based on a policy defined by the consuming | |||
freshness. The first approach is that a nonce is generated by a | entity, Verifier or Relying Party, that compares the estimated epoch | |||
remote entity (e.g., the Verifier for Evidence, or the Relying Party | against an "expiry" threshold defined locally to that policy. There | |||
for an Attestation Result), and the nonce is then signed and included | is, however, always a race condition possible in that the state of | |||
along with the claims in the Evidence or Attestation Result, so that | the Attester, and the Appraisal Policy for Evidence, might change | |||
the remote entity knows that the claims were signed after the nonce | immediately after the Evidence or Attestation Result was generated. | |||
was generated. | The goal is merely to narrow their recentness to something the | |||
Verifier (for Evidence) or Relying Party (for Attestation Result) is | ||||
willing to accept. Freshness is a key component for enabling caching | ||||
and reuse of both Evidence and Attestation Results, which is | ||||
especially valuable in cases where their computation uses a | ||||
substantial part of the resource budget (e.g., energy in constrained | ||||
devices). | ||||
A second approach is to rely on synchronized clocks, and include a | There are two common approaches for determining the epoch of an | |||
signed timestamp (e.g., using [I-D.birkholz-rats-tuda]) along with | Evidence or Attestation Result. | |||
the claims in the Evidence or Attestation Result, so that the remote | ||||
entity knows that the claims were signed at that time, as long as it | ||||
has some assurance that the timestamp is correct. This typically | ||||
requires additional claims about the signer's time synchronization | ||||
mechanism in order to provide such assurance. | ||||
In either approach, it is important to note that the actual values in | The first approach is to rely on synchronized and trustworthy clocks, | |||
claims might have been generated long before the claims are signed. | and include a signed timestamp (see [I-D.birkholz-rats-tuda]) along | |||
If so, it is the signer's responsibility to ensure that the values | with the Claims in the Evidence or Attestation Result. Timestamps | |||
are still correct when they are signed. For example, values might | can be added on a per-Claim basis, to distinguish the time of | |||
have been generated at boot, and then used in claims as long as the | creation of Evidence or Attestation Result from the time that a | |||
signer can guarantee that they cannot have changed since boot. | specific Claim was generated. The clock's trustworthiness typically | |||
requires additional Claims about the signer's time synchronization | ||||
mechanism. | ||||
A second approach places the onus of timekeeping solely on the | ||||
appraising entity, i.e., the Verifier (for Evidence), or the Relying | ||||
Party (for Attestation Results), and might be suitable, for example, | ||||
in case the Attester does not have a reliable clock or time | ||||
synchronisation is otherwise impaired. In this approach, a non- | ||||
predictable nonce is sent by the appraising entity, and the nonce is | ||||
then signed and included along with the Claims in the Evidence or | ||||
Attestation Result. After checking that the sent and received nonces | ||||
are the same, the appraising entity knows that the Claims were signed | ||||
after the nonce was generated. This allows associating a "rough" | ||||
epoch to the Evidence or Attestation Result. In this case the epoch | ||||
is said to be rough because: | ||||
* The epoch applies to the entire claim set instead of a more | ||||
granular association, and | ||||
* The time between the creation of Claims and the collection of | ||||
Claims is indistinguishable. | ||||
Implicit and explicit timekeeping can be combined into hybrid | ||||
mechanisms. For example, if clocks exist and are considered | ||||
trustworthy but are not synchronized, a nonce-based exchange may be | ||||
used to determine the (relative) time offset between the involved | ||||
peers, followed by any number of timestamp based exchanges. In | ||||
another setup where all Roles (Attesters, Verifiers and Relying | ||||
Parties) share the same broadcast channel, the nonce-based approach | ||||
may be used to anchor all parties to the same (relative) timeline, | ||||
without requiring synchronized clocks, by having a central entity | ||||
emit nonces at regular intervals and have the "current" nonce | ||||
included in the produced Evidence or Attestation Result. | ||||
It is important to note that the actual values in Claims might have | ||||
been generated long before the Claims are signed. If so, it is the | ||||
signer's responsibility to ensure that the values are still correct | ||||
when they are signed. For example, values generated at boot time | ||||
might have been saved to secure storage until network connectivity is | ||||
established to the remote Verifier and a nonce is obtained. | ||||
A more detailed discussion with examples appears in Section 16. | A more detailed discussion with examples appears in Section 16. | |||
11. Privacy Considerations | 11. Privacy Considerations | |||
The conveyance of Evidence and the resulting Attestation Results | The conveyance of Evidence and the resulting Attestation Results | |||
reveal a great deal of information about the internal state of a | reveal a great deal of information about the internal state of a | |||
device. In many cases, the whole point of the Attestation process is | device as well as any users the device is associated with. In many | |||
to provide reliable information about the type of the device and the | cases, the whole point of the Attestation process is to provide | |||
firmware/software that the device is running. This information might | reliable information about the type of the device and the firmware/ | |||
be particularly interesting to many attackers. For example, knowing | software that the device is running. This information might be | |||
particularly interesting to many attackers. For example, knowing | ||||
that a device is running a weak version of firmware provides a way to | that a device is running a weak version of firmware provides a way to | |||
aim attacks better. | aim attacks better. | |||
Many claims in Attestation Evidence and Attestation Results are | ||||
potentially PII (Personally Identifying Information) depending on the | ||||
end-to-end use case of the attestation. Attestation that goes up to | ||||
include containers and applications may further reveal details about | ||||
a specific system or user. | ||||
In some cases, an attacker may be able to make inferences about | ||||
attestations from the results or timing of the processing. For | ||||
example, an attacker might be able to infer the value of specific | ||||
claims if it knew that only certain values were accepted by the | ||||
Relying Party. | ||||
Evidence and Attestation Results data structures are expected to | Evidence and Attestation Results data structures are expected to | |||
support integrity protection encoding (e.g., COSE, JOSE, X.509) and | support integrity protection encoding (e.g., COSE, JOSE, X.509) and | |||
optionally might support confidentiality protection (e.g., COSE, | optionally might support confidentiality protection (e.g., COSE, | |||
JOSE). Therefore, if confidentiality protection is omitted or | JOSE). Therefore, if confidentiality protection is omitted or | |||
unavailable, the protocols that convey Evidence or Attestation | unavailable, the protocols that convey Evidence or Attestation | |||
Results are responsible for detailing what kinds of information are | Results are responsible for detailing what kinds of information are | |||
disclosed, and to whom they are exposed. | disclosed, and to whom they are exposed. | |||
Furthermore, because Evidence might contain sensitive information, | Furthermore, because Evidence might contain sensitive information, | |||
Attesters are responsible for only sending such Evidence to trusted | Attesters are responsible for only sending such Evidence to trusted | |||
skipping to change at page 26, line 9 ¶ | skipping to change at page 27, line 50 ¶ | |||
of the trustworthiness of a Verifier before sending Evidence to it. | of the trustworthiness of a Verifier before sending Evidence to it. | |||
In such cases, an Attester can first act as a Relying Party and ask | In such cases, an Attester can first act as a Relying Party and ask | |||
for the Verifier's own Attestation Result, and appraising it just as | for the Verifier's own Attestation Result, and appraising it just as | |||
a Relying Party would appraise an Attestation Result for any other | a Relying Party would appraise an Attestation Result for any other | |||
purpose. | purpose. | |||
12. Security Considerations | 12. Security Considerations | |||
Any solution that conveys information used for security purposes, | Any solution that conveys information used for security purposes, | |||
whether such information is in the form of Evidence, Attestation | whether such information is in the form of Evidence, Attestation | |||
Results, Endorsements, or Appraisal Policy, needs to support end-to- | Results, Endorsements, or Appraisal Policy must support end-to-end | |||
end integrity protection and replay attack prevention, and often also | integrity protection and replay attack prevention, and often also | |||
needs to support additional security protections. For example, | needs to support additional security properties, including: | |||
additional means of authentication, confidentiality, integrity, | ||||
replay, denial of service and privacy protection are needed in many | * end-to-end encryption, | |||
use cases. Section 10 discusses ways in which freshness can be used | ||||
in this architecture to protect against replay attacks. | * denial of service protection, | |||
* authentication, | ||||
* auditing, | ||||
* fine grained access controls, and | ||||
* logging. | ||||
Section 10 discusses ways in which freshness can be used in this | ||||
architecture to protect against replay attacks. | ||||
To assess the security provided by a particular Appraisal Policy, it | To assess the security provided by a particular Appraisal Policy, it | |||
is important to understand the strength of the Root of Trust, e.g., | is important to understand the strength of the Root of Trust, e.g., | |||
whether it is mutable software, or firmware that is read-only after | whether it is mutable software, or firmware that is read-only after | |||
boot, or immutable hardware/ROM. | boot, or immutable hardware/ROM. | |||
It is also important that the Appraisal Policy was itself obtained | It is also important that the Appraisal Policy was itself obtained | |||
securely. As such, if Appraisal Policies for a Relying Party or for | securely. As such, if Appraisal Policies for a Relying Party or for | |||
a Verifier can be configured via a network protocol, the ability to | a Verifier can be configured via a network protocol, the ability to | |||
create Evidence about the integrity of the entity providing the | create Evidence about the integrity of the entity providing the | |||
skipping to change at page 26, line 46 ¶ | skipping to change at page 28, line 49 ¶ | |||
the Evidence. | the Evidence. | |||
13. IANA Considerations | 13. IANA Considerations | |||
This document does not require any actions by IANA. | This document does not require any actions by IANA. | |||
14. Acknowledgments | 14. Acknowledgments | |||
Special thanks go to Joerg Borchert, Nancy Cam-Winget, Jessica | Special thanks go to Joerg Borchert, Nancy Cam-Winget, Jessica | |||
Fitzgerald-McKay, Thomas Fossati, Diego Lopez, Laurence Lundblade, | Fitzgerald-McKay, Thomas Fossati, Diego Lopez, Laurence Lundblade, | |||
Wei Pan, Paul Rowe, Hannes Tschofenig, Frank Xia, and David Wooten. | Paul Rowe, Hannes Tschofenig, Frank Xia, and David Wooten. | |||
15. Contributors | 15. Contributors | |||
Thomas Hardjono created older versions of the terminology section in | Thomas Hardjono created older versions of the terminology section in | |||
collaboration with Ned Smith. Eric Voit provided the conceptual | collaboration with Ned Smith. Eric Voit provided the conceptual | |||
separation between Attestation Provision Flows and Attestation | separation between Attestation Provision Flows and Attestation | |||
Evidence Flows. Monty Wisemen created the content structure of the | Evidence Flows. Monty Wisemen created the content structure of the | |||
first three architecture drafts. Carsten Bormann provided many of | first three architecture drafts. Carsten Bormann provided many of | |||
the motivational building blocks with respect to the Internet Threat | the motivational building blocks with respect to the Internet Threat | |||
Model. | Model. | |||
16. Appendix A: Time Considerations | 16. Appendix A: Time Considerations | |||
The table below defines a number of relevant events, with an ID that | The table below defines a number of relevant events, with an ID that | |||
is used in subsequent diagrams. The times of said events might be | is used in subsequent diagrams. The times of said events might be | |||
defined in terms of an absolute clock time such as Coordinated | defined in terms of an absolute clock time such as Coordinated | |||
Universal Time, or might be defined relative to some other timestamp | Universal Time, or might be defined relative to some other timestamp | |||
or timeticks counter. | or timeticks counter. | |||
+----+------------+-----------------------------------------------+ | +====+==============+===============================================+ | |||
| ID | Event | Explanation of event | | | ID | Event | Explanation of event | | |||
+====+============+===============================================+ | +====+==============+===============================================+ | |||
| VG | Value | A value to appear in a claim was created | | | VG | Value | A value to appear in a Claim was | | |||
| | generation | | | | | generation | created. | | |||
+----+------------+-----------------------------------------------+ | +----+--------------+-----------------------------------------------+ | |||
| NS | Nonce sent | A random number not predictable to an | | | AA | Attester | An Attesting Environment starts to | | |||
| | | Attester is sent | | | | awareness | be aware of a new/changed Claim | | |||
+----+------------+-----------------------------------------------+ | | | | value. | | |||
| NR | Nonce | The nonce is relayed to an Attester by | | +----+--------------+-----------------------------------------------+ | |||
| | relayed | enother entity | | | HD | Handle | A centrally generated identifier for | | |||
+----+------------+-----------------------------------------------+ | | | distribution | time-bound recentness across a | | |||
| EG | Evidence | An Attester collects claims and generates | | | | | domain of devices is successfully | | |||
| | generation | Evidence | | | | | distributed to Attesters. | | |||
+----+------------+-----------------------------------------------+ | +----+--------------+-----------------------------------------------+ | |||
| ER | Evidence | A Relying Party relays Evidence to a Verifier | | | NS | Nonce sent | A nonce not predictable to an | | |||
| | relayed | | | | | | Attester (recentness & uniqueness) | | |||
+----+------------+-----------------------------------------------+ | | | | is sent to an Attester. | | |||
| RG | Result | A Verifier appraises Evidence and generates | | +----+--------------+-----------------------------------------------+ | |||
| | generation | an Attestation Result | | | NR | Nonce | A nonce is relayed to an Attester by | | |||
+----+------------+-----------------------------------------------+ | | | relayed | another entity. | | |||
| RR | Result | A Relying Party relays an Attestation Result | | +----+--------------+-----------------------------------------------+ | |||
| | relayed | to a Relying Party | | | EG | Evidence | An Attester creates Evidence from | | |||
+----+------------+-----------------------------------------------+ | | | generation | collected Claims. | | |||
| RA | Result | The Relying Party appraises Attestation | | +----+--------------+-----------------------------------------------+ | |||
| | appraised | Results | | | ER | Evidence | A Relying Party relays Evidence to a | | |||
+----+------------+-----------------------------------------------+ | | | relayed | Verifier. | | |||
| OP | Operation | The Relying Party performs some operation | | +----+--------------+-----------------------------------------------+ | |||
| | performed | requested by the Attester. For example, | | | RG | Result | A Verifier appraises Evidence and | | |||
| | | acting upon some message just received across | | | | generation | generates an Attestation Result. | | |||
| | | a session created earlier at time(RA). | | +----+--------------+-----------------------------------------------+ | |||
+----+------------+-----------------------------------------------+ | | RR | Result | A Relying Party relays an | | |||
| RX | Result | An Attestation Result should no longer be | | | | relayed | Attestation Result to a Relying | | |||
| | expiry | accepted, according to the Verifier that | | | | | Party. | | |||
| | | generated it | | +----+--------------+-----------------------------------------------+ | |||
+----+------------+-----------------------------------------------+ | | RA | Result | The Relying Party appraises | | |||
| | appraised | Attestation Results. | | ||||
+----+--------------+-----------------------------------------------+ | ||||
| OP | Operation | The Relying Party performs some | | ||||
| | performed | operation requested by the Attester. | | ||||
| | | For example, acting upon some | | ||||
| | | message just received across a | | ||||
| | | session created earlier at time(RA). | | ||||
+----+--------------+-----------------------------------------------+ | ||||
| RX | Result | An Attestation Result should no | | ||||
| | expiry | longer be accepted, according to the | | ||||
| | | Verifier that generated it. | | ||||
+----+--------------+-----------------------------------------------+ | ||||
Table 1 | Table 1 | |||
We now walk through a number of hypothetical examples of how a | Using the table above, a number of hypothetical examples of how a | |||
solution might be built. This list is not intended to be complete, | solution might be built are illustrated below. a solution might be | |||
but is just representative enough to highlight various timing | built. This list is not intended to be complete, but is just | |||
considerations. | representative enough to highlight various timing considerations. | |||
16.1. Example 1: Timestamp-based Passport Model Example | 16.1. Example 1: Timestamp-based Passport Model Example | |||
The following example illustrates a hypothetical Passport Model | The following example illustrates a hypothetical Passport Model | |||
solution that uses timestamps and requires roughly synchronized | solution that uses timestamps and requires roughly synchronized | |||
clocks between the Attester, Verifier, and Relying Party, which | clocks between the Attester, Verifier, and Relying Party, which | |||
depends on using a secure clock synchronization mechanism. | depends on using a secure clock synchronization mechanism. | |||
.----------. .----------. .---------------. | .----------. .----------. .---------------. | |||
| Attester | | Verifier | | Relying Party | | | Attester | | Verifier | | Relying Party | | |||
skipping to change at page 33, line 9 ¶ | skipping to change at page 35, line 9 ¶ | |||
[RFC8392] Jones, M., Wahlstroem, E., Erdtman, S., and H. Tschofenig, | [RFC8392] Jones, M., Wahlstroem, E., Erdtman, S., and H. Tschofenig, | |||
"CBOR Web Token (CWT)", RFC 8392, DOI 10.17487/RFC8392, | "CBOR Web Token (CWT)", RFC 8392, DOI 10.17487/RFC8392, | |||
May 2018, <https://www.rfc-editor.org/info/rfc8392>. | May 2018, <https://www.rfc-editor.org/info/rfc8392>. | |||
17.2. Informative References | 17.2. Informative References | |||
[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>. | |||
[RFC8322] Field, J., Banghart, S., and D. Waltermire, "Resource- | ||||
Oriented Lightweight Information Exchange (ROLIE)", | ||||
RFC 8322, DOI 10.17487/RFC8322, February 2018, | ||||
<https://www.rfc-editor.org/info/rfc8322>. | ||||
[OPCUA] OPC Foundation, "OPC Unified Architecture Specification, | [OPCUA] OPC Foundation, "OPC Unified Architecture Specification, | |||
Part 2: Security Model, Release 1.03", OPC 10000-2 , 25 | Part 2: Security Model, Release 1.03", OPC 10000-2 , 25 | |||
November 2015, <https://opcfoundation.org/developer-tools/ | November 2015, <https://opcfoundation.org/developer-tools/ | |||
specifications-unified-architecture/part-2-security- | specifications-unified-architecture/part-2-security- | |||
model/>. | model/>. | |||
[I-D.birkholz-rats-tuda] | [I-D.birkholz-rats-tuda] | |||
Fuchs, A., Birkholz, H., McDonald, I., and C. Bormann, | Fuchs, A., Birkholz, H., McDonald, I., and C. Bormann, | |||
"Time-Based Uni-Directional Attestation", Work in | "Time-Based Uni-Directional Attestation", Work in | |||
Progress, Internet-Draft, draft-birkholz-rats-tuda-02, 9 | Progress, Internet-Draft, draft-birkholz-rats-tuda-02, 9 | |||
March 2020, <http://www.ietf.org/internet-drafts/draft- | March 2020, <http://www.ietf.org/internet-drafts/draft- | |||
birkholz-rats-tuda-02.txt>. | birkholz-rats-tuda-02.txt>. | |||
[I-D.ietf-teep-architecture] | [I-D.ietf-teep-architecture] | |||
Pei, M., Tschofenig, H., Thaler, D., and D. Wheeler, | Pei, M., Tschofenig, H., Thaler, D., and D. Wheeler, | |||
"Trusted Execution Environment Provisioning (TEEP) | "Trusted Execution Environment Provisioning (TEEP) | |||
Architecture", Work in Progress, Internet-Draft, draft- | Architecture", Work in Progress, Internet-Draft, draft- | |||
ietf-teep-architecture-08, 4 April 2020, | ietf-teep-architecture-11, 2 July 2020, | |||
<http://www.ietf.org/internet-drafts/draft-ietf-teep- | <http://www.ietf.org/internet-drafts/draft-ietf-teep- | |||
architecture-08.txt>. | architecture-11.txt>. | |||
[TCGarch] Trusted Computing Group, "Trusted Platform Module Library | ||||
- Part 1: Architecture", 7 July 2020, | ||||
<https://trustedcomputinggroup.org/wp-content/uploads/ | ||||
TCG_TPM2_r1p62_Part1_Architecture_7july2020.pdf>. | ||||
Authors' Addresses | Authors' Addresses | |||
Henk Birkholz | Henk Birkholz | |||
Fraunhofer SIT | Fraunhofer SIT | |||
Rheinstrasse 75 | Rheinstrasse 75 | |||
64295 Darmstadt | 64295 Darmstadt | |||
Germany | Germany | |||
Email: henk.birkholz@sit.fraunhofer.de | Email: henk.birkholz@sit.fraunhofer.de | |||
End of changes. 70 change blocks. | ||||
281 lines changed or deleted | 423 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/ |