Draft: draft-ietf-rats-architecture

Commentary: This contains the non - disputed commits from . It is also rebased on origin / master , and there could be a conflict resolution fix which lost a word .
Paragraph (version A):
The Verifier appraises Evidence via appraisal policies and creates
the Attestation Results to support Relying Parties in their decision
process.  This document defines a flexible architecture consisting of
attestation roles and their interactions via conceptual messages.
Additionally, this document defines a universal set of terms that can
be mapped to various existing and emerging Remote Attestation
Procedures.  Common topological models and the data flows associated
with them, such as the "Passport Model" and the "Background-Check
Model" are illustrated.  The purpose is to define useful terminology
for attestation and enable readers to map their solution architecture
to the canonical attestation architecture provided here.  Having a
common terminology that provides well-understood meanings for common
themes such as roles, device composition, topological models, and
appraisal is vital for semantic interoperability across solutions and
platforms involving multiple vendors and providers.
Paragraph (version B):
The Verifier appraises Evidence via appraisal policies and creates
the Attestation Results to support Relying Parties in their decision
process.  This document defines a flexible architecture consisting of
attestation roles and their interactions via conceptual messages.
Additionally, this document defines a universal set of terms that can
be mapped to various existing and emerging Remote Attestation
Procedures.  Common topological patterns and the sequence of data
flows associated with them, such as the "Passport Model" and the
"Background-Check Model", are illustrated.  The purpose is to define
useful terminology for remote attestation and enable readers to map
their solution architecture to the canonical attestation architecture
provided here.  Having a common terminology that provides well-
understood meanings for common themes such as roles, device
composition, topological patterns, and appraisal procedures is vital
for semantic interoperability across solutions and platforms
involving multiple vendors and providers.
Paragraph (version A):
This section covers a number of representative use cases for remote
attestation, independent of specific solutions.  The purpose is to
provide motivation for various aspects of the architecture presented
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
that collectively cover all the functionality required in the
architecture.
Paragraph (version A):
Each use case includes a description followed by a summary of the
Attester and Relying Party roles.
Paragraph (version B):
This section covers a number of representative and generic use cases
for remote attestation, independent of specific solutions.  The
purpose is to provide motivation for various aspects of the
architecture presented in this document.  Many other use cases exist,
and this document does not intend to have a complete list, only to
illustrate a set of use cases that collectively cover all the
functionality required in the architecture.
Paragraph (version B):
Each use case includes a description followed by an additional
summary of the Attester and Relying Party roles derived from the use
case.
Paragraph (version A):
Typically, solutions start with a specific component (called a "root
of trust") that provides device identity and protected storage for
measurements.  The system components perform a series of measurements
that may be signed by the root of trust, considered as Evidence about
the hardware, firmware, BIOS, software, etc. that is present.
Paragraph (version A):
A device manufacturer wants to protect its intellectual property.
This is primarily the ML model it developed and runs in the devices
purchased by its customers.  The goals for the protection include
preventing attackers, potentially the customer themselves, from
seeing the details of the model.
Paragraph (version A):
This typically works by having some protected environment in the
device go through a remote attestation with some manufacturer service
that can assess its trustworthiness.  If remote attestation succeeds,
then the manufacturer service releases either the model, or a key to
decrypt a model the Attester already has in encrypted form, to the
requester.
Paragraph (version B):
Typically, solutions start with a specific component (called a root
of trust) that is intended to provide trustworthy device identity and
protected storage for measurements.  The system components perform a
series of measurements that may be signed via functions provided by a
root of trust, considered as Evidence about present system
components, such as hardware, firmware, BIOS, software, etc.
Paragraph (version B):
A device desiring access to a network.
Paragraph (version B):
Network equipment such as a router, switch, or access point,
responsible for admission of the device into the network.
Paragraph (version B):
A device manufacturer wants to protect its intellectual property.
The intellectual property's scope primarily encompasses the machine
learning (ML) model that is deployed in the devices purchased by its
customers.  The protection goals include preventing attackers,
potentially the customer themselves, from seeing the details of the
model.
Paragraph (version B):
This typically works by having some protected environment in the
device go through a remote attestation with some manufacturer service
that can assess its trustworthiness.  If remote attestation succeeds,
then the manufacturer service releases either the model, or a key to
decrypt a model already deployed on the Attester in encrypted form,
to the requester.
Paragraph (version B):
A device desiring to run an ML model.
Paragraph (version B):
A server or service holding ML models it desires to protect.
Paragraph (version A):
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
customers, payroll data about employees, future business plans, etc.
As part of the attestation procedure, an assessment is made against a
set of policies to evaluate the state of the system that is
requesting the confidential data.  Attestation is desired to prevent
leaking data to compromised devices.
Paragraph (version A):
In this use case, potentially harmful physical equipment (e.g., power
grid, traffic control, hazardous chemical processing, etc.) is
connected to a network.  The organization managing such
infrastructure needs to ensure that only authorized code and users
can control such processes, and that these processes are protected
from unauthorized manipulation or other threats.  When a protocol
operation can affect a component of a critical system, the device
attached to the critical equipment requires some assurances depending
on the security context, including that: the requesting device or
application has not been compromised, and the requesters and actors
act on applicable policies, As such, remote attestation can be used
to only accept commands from requesters that are within policy.
Paragraph (version A):
A "Trusted Application Manager (TAM)" server is responsible for
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
applications in the TEE, of a client device.  The TEE conducts a
remote attestation procedure with the TAM, which can then decide
whether the TEE is already in compliance with the TAM's latest
policy, or if the TAM needs to uninstall, update, or install approved
applications in the TEE to bring it back into compliance with the
TAM's policy.
Paragraph (version B):
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
customers, payroll data about employees, future business plans, etc.
As part of the attestation procedure, an assessment is made against a
set of policies to evaluate the state of the system that is
requesting the confidential data.  Attestation is desired to prevent
leaking data via compromised devices.
Paragraph (version B):
An entity desiring to retrieve confidential data.
Paragraph (version B):
An entity that holds confidential data for release to authorized
entities.
Paragraph (version B):
Potentially harmful physical equipment (e.g., power grid, traffic
control, hazardous chemical processing, etc.) is connected to a
network in support of critical infrastructure.  The organization
managing such infrastructure needs to ensure that only authorized
code and users can control corresponding critical processes, and that
these processes are protected from unauthorized manipulation or other
threats.  When a protocol operation can affect a critical system
component of the infrastructure, devices attached to that critical
component require some assurances depending on the security context,
including that: a requesting device or application has not been
compromised, and the requesters and actors act on applicable
policies.  As such, RATS can be used to only accept commands from
requesters that are within policy.
Paragraph (version B):
A device or application wishing to control physical equipment.
Paragraph (version B):
A device or application connected to potentially dangerous
physical equipment (hazardous chemical processing, traffic
control, power grid, etc.).
Paragraph (version B):
A Trusted Application Manager (TAM) server is responsible for
managing the applications running in a Trusted Execution Environment
(TEE) of a client device.  To achieve its purpose, the TAM needs to
assess the state of a TEE, or of applications in the TEE, of a client
device.  The TEE conducts Remote Attestation Procedures with the TAM,
which can then decide whether the TEE is already in compliance with
the TAM's latest policy.  If not, the TAM has to uninstall, update,
or install approved applications in the TEE to bring it back into
compliance with the TAM's policy.
Paragraph (version B):
A device with a TEE capable of running trusted applications that
can be updated.
Paragraph (version B):
A TAM.
Paragraph (version B):
The device that should be protected from being held hostage for a
long period of time.
Paragraph (version A):
In the Fast IDentity Online (FIDO) protocol WebAuthN, CTAP, the
device in the user's hand authenticates the human user, whether by
biometrics (such as fingerprints), or by PIN and password.  FIDO
authentication puts a large amount of trust in the device compared to
typical password authentication because it is the device that
verifies the biometric, PIN and password inputs from the user, not
the server.  For the Relying Party to know that the authentication is
trustworthy, the Relying Party needs to know that the Authenticator
part of the device is trustworthy.  The FIDO protocol employs remote
attestation for this.
Paragraph (version B):
In the Fast IDentity Online (FIDO) protocol WebAuthN, CTAP, the
device in the user's hand authenticates the human user, whether by
biometrics (such as fingerprints), or by PIN and password.  FIDO
authentication puts a large amount of trust in the device compared to
typical password authentication because it is the device that
verifies the biometric, PIN and password inputs from the user, not
the server.  For the Relying Party to know that the authentication is
trustworthy, the Relying Party needs to know that the Authenticator
part of the device is trustworthy.  The FIDO protocol employs Remote
Attestation Procedures for this.
Paragraph (version A):
Other biometric authentication protocols such as the Chinese IFAA
standard and WeChat Pay as well as Google Pay make use of attestation
in one form or another.
Paragraph (version B):
Other biometric authentication protocols such as the Chinese IFAA
standard and WeChat Pay as well as Google Pay make use of remote
attestation in one form or another.
Paragraph (version A):
The Verifier uses the Evidence, any Reference Values from Reference
Value Providers, and any Endorsements from Endorsers, by applying an
Appraisal Policy for Evidence to assess the trustworthiness of the
Attester, and generates Attestation Results for use by Relying
Parties.  The Appraisal Policy for Evidence might be obtained from an
Endorser along with the Endorsements, and/or might be obtained via
some other mechanism such as being configured in the Verifier by the
Verifier Owner.
Paragraph (version A):
The Relying Party uses Attestation Results by applying its own
appraisal policy to make application-specific decisions such as
authorization decisions.  The Appraisal Policy for Attestation
Results is configured in the Relying Party by the Relying Party
Owner, and/or is programmed into the Relying Party.
Paragraph (version A):
The Verifier, when appraising Evidence, or the Relying Party, when
appraising Attestation Results, checks the values of some Claims
against constraints specified in its appraisal policy.  Such
constraints might involve a comparison for equality against a
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
against values in other Claims, or any other test.
Paragraph (version A):
The actual data format and semantics of any Reference Values are
specific to Claims and implementations.
Paragraph (version B):
The text below summarizes the activities conducted by the roles
illustrated in dataflow.
Paragraph (version B):
A Verifier uses the Evidence, any Reference Values from Reference
Value Providers, and any Endorsements from Endorsers, by applying an
Appraisal Policy for Evidence to assess the trustworthiness of the
Attester.  This activity is called the appraisal of Evidence.
Paragraph (version B):
Subsequently, the Verifier generates Attestation Results for use by
Relying Parties.  The Appraisal Policy for Evidence might be obtained
from an Endorser along with the Endorsements, and/or might be
obtained via some other mechanism, such as being configured in the
Verifier by the Verifier Owner.
Paragraph (version B):
A Relying Party uses Attestation Results by applying its own
appraisal policy to make application-specific decisions, such as
authorization decisions.  The Appraisal Policy for Attestation
Results is configured in the Relying Party by the Relying Party
Owner, and/or are programmed into the Relying Party.  This activity
is called the appraisal of Attestation Results.
Paragraph (version B):
a check against values in other Claims.
Paragraph (version B):
The actual data format and semantics of any Reference Values are
specific to Claims and implementations.  This architecture document
does not define any general purpose format for Reference Values or
general means for comparison.
Paragraph (version A):
As shown in twotypes-env, an Attester consists of at least one
Attesting Environment and at least one Target Environment.  In some
implementations, the Attesting and Target Environments might be
combined.  Other implementations might have multiple Attesting and
Target Environments, such as in the examples described in more detail
in layered-attestation and compositedevice.  Other examples may
exist.  Besides, the examples discussed could be combined into even
more complex implementations.
Paragraph (version B):
As shown in twotypes-env, an Attester consists of at least one
Attesting Environment and at least one Target Environment.  In some
implementations, the Attesting and Target Environments might be
combined.  Other implementations might have multiple Attesting and
Target Environments, such as in the examples described in more detail
in layered-attestation and compositedevice.  Other examples may
exist.  All compositions of Attesting and Target Environments
discussed in this architecture can be combined into more complex
implementations.
Paragraph (version A):
Claims are collected from Target Environments.  That is, Attesting
Environments collect the values and the information to be represented
in Claims, by reading system registers and variables, calling into
subsystems, taking measurements on code, memory, or other security
related assets of the Target Environment.  Attesting Environments
then format the Claims appropriately, and typically use key material
and cryptographic functions, such as signing or cipher algorithms, to
create Evidence.  There is no limit to or requirement on the types of
hardware or software environments that can be used to implement an
Attesting Environment, for example: Trusted Execution Environments
(TEEs), embedded Secure Elements (eSEs), Trusted Platform Modules
(TPMs), or BIOS firmware.
Paragraph (version B):
Claims are collected from Target Environments.  That is, Attesting
Environments collect the values and the information to be represented
in Claims, by reading system registers and variables, calling into
subsystems, taking measurements on code, memory, or other security
related assets of the Target Environment.  Attesting Environments
then format the Claims appropriately, and typically use key material
and cryptographic functions, such as signing or cipher algorithms, to
generate Evidence.  There is no limit to or requirement on the types
of hardware or software environments that can be used to implement an
Attesting Environment, for example: Trusted Execution Environments
(TEEs), embedded Secure Elements (eSEs), Trusted Platform Modules
(TPMs), or BIOS firmware.
Paragraph (version A):
Each sub-entity has at least one Attesting Environment collecting the
Claims from at least one Target Environment, then this sub-entity
generates Evidence about its trustworthiness.  Therefore each sub-
entity can be called an Attester.  Among all the Attesters, there may
be only some which have the ability to communicate with the Verifier
while others do not.
Paragraph (version A):
For example, a carrier-grade router consists of a chassis and
multiple slots.  The trustworthiness of the router depends on all its
slots' trustworthiness.  Each slot has an Attesting Environment such
as a TEE collecting the Claims of its boot process, after which it
generates Evidence from the Claims.  Among these slots, only a main
slot can communicate with the Verifier while other slots cannot.  But
other slots can communicate with the main slot by the links between
them inside the router.  So the main slot collects the Evidence of
other slots, produces the final Evidence of the whole router and
conveys the final Evidence to the Verifier.  Therefore the router is
a Composite Device, each slot is an Attester, and the main slot is
the lead Attester.
Paragraph (version A):
Another example is a multi-chassis router composed of multiple single
carrier-grade routers.  The multi-chassis router provides higher
throughput by interconnecting multiple routers and can be logically
treated as one router for simpler management.  A multi-chassis router
provides a management point that connects to the Verifier.  Other
routers are only connected to the main router by the network cables,
and therefore they are managed and appraised via this main router's
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
Attester.
Paragraph (version A):
In the Composite Device, each Attester generates its own Evidence by
its Attesting Environment(s) collecting the Claims from its Target
Environment(s).  The lead Attester collects the Evidence from the
other Attesters and conveys it to a Verifier.  Collection of Evidence
from sub-entities may itself be a form of Claims collection that
results in Evidence asserted by the lead Attester.  The lead Attester
generates the Evidence about the layout of the Composite Device,
while sub-Attesters generate Evidence about their respective modules.
Paragraph (version A):
In this situation, the trust model described in trustmodel is also
suitable for this inside Verifier.
Paragraph (version A):
An entity can take on multiple RATS roles (e.g., Attester, Verifier,
Relying Party, etc.) at the same time.  Multiple entities can
cooperate to implement a single RATS role as well.  The combination
of roles and entities can be arbitrary.  For example, in the
Composite Device scenario, the entity inside the lead Attester can
also take on the role of a Verifier, and the outer entity of Verifier
can take on the role of a Relying Party.  After collecting the
Evidence of other Attesters, this inside Verifier uses Endorsements
and appraisal policies (obtained the same way as any other Verifier)
in the verification process to generate Attestation Results.  The
inside Verifier then conveys the Attestation Results of other
Attesters to the outside Verifier, whether in the same conveyance
protocol as the Evidence or not.
Paragraph (version B):
Each sub-entity has at least one Attesting Environment collecting the
Claims from at least one Target Environment, then this sub-entity
generates Evidence about its trustworthiness.  Therefore, each sub-
entity can be called an Attester.  Among all the Attesters, there may
be only some which have the ability to communicate with the Verifier
while others do not.
Paragraph (version B):
For example, a carrier-grade router consists of a chassis and
multiple slots.  The trustworthiness of the router depends on all its
slots' trustworthiness.  Each slot has an Attesting Environment, such
as a TEE, collecting the Claims of its boot process, after which it
generates Evidence from the Claims.  Among these slots, only a main
slot can communicate with the Verifier while other slots cannot.  But
other slots can communicate with the main slot by the links between
them inside the router.  So the main slot collects the Evidence of
other slots, produces the final Evidence of the whole router and
conveys the final Evidence to the Verifier.  Therefore the router is
a composite device, each slot is an Attester, and the main slot is
the lead Attester.
Paragraph (version B):
Another example is a multi-chassis router composed of multiple single
carrier-grade routers.  Multi-chassis router setups create redundancy
groups that provide higher throughput by interconnecting multiple
routers in these groups, which can be treated as one logical router
for simpler management.  A multi-chassis router setup provides a
management point that connects to the Verifier.  Typically one router
in the group is designated as the main router.  Other routers in the
multi-chassis setup are connected to the main router only via
physical network links and are therefore managed and appraised via
the main router's help.  In consequence, a multi-chassis router setup
is a composite device, each router is an Attester, and the main
router is the lead Attester.
Paragraph (version B):
In a composite device, each Attester generates its own Evidence by
its Attesting Environment(s) collecting the Claims from its Target
Environment(s).  The lead Attester collects Evidence from other
Attesters and conveys it to a Verifier.  Collection of Evidence from
sub-entities may itself be a form of Claims collection that results
in Evidence asserted by the lead Attester.  The lead Attester
generates Evidence about the layout of the whole composite device,
while sub-Attesters generate Evidence about their respective
(sub-)modules.
Paragraph (version B):
In this scenario, the trust model described in trustmodel can also be
applied to an inside Verifier.
Paragraph (version B):
An entity can take on multiple RATS roles (e.g., Attester, Verifier,
Relying Party, etc.) at the same time.  Multiple entities can
cooperate to implement a single RATS role as well.  In essence, the
combination of roles and entities can be arbitrary.  For example, in
the composite device scenario, the entity inside the lead Attester
can also take on the role of a Verifier, and the outer entity of
Verifier can take on the role of a Relying Party.  After collecting
the Evidence of other Attesters, this inside Verifier uses
Endorsements and appraisal policies (obtained the same way as by any
other Verifier) as part of the appraisal procedures that generate
Attestation Results.  The inside Verifier then conveys the
Attestation Results of other Attesters to the outside Verifier,
whether in the same conveyance protocol as part of the Evidence or
not.
Paragraph (version A):
dataflow shows a data-flow diagram for communication between an
Attester, a Verifier, and a Relying Party.  The Attester conveys its
Evidence to the Verifier for appraisal, and the Relying Party gets
the Attestation Result from the Verifier.  This section refines it by
describing two reference models, as well as one example composition
thereof.  The discussion that follows is for illustrative purposes
only and does not constrain the interactions between RATS roles to
the presented patterns.
Paragraph (version B):
dataflow shows a data-flow diagram for communication between an
Attester, a Verifier, and a Relying Party.  The Attester conveys its
Evidence to the Verifier for appraisal, and the Relying Party
receives the Attestation Result from the Verifier.  This section
refines the data-flow diagram by describing two reference models, as
well as one example composition thereof.  The discussion that follows
is for illustrative purposes only and does not constrain the
interactions between RATS roles to the presented patterns.
Paragraph (version A):
In these cases, interaction between these roles do not necessarily
use the Internet Protocol.  They can be using a loopback device or
other IP-based communication between separate environments, but they
do not have to.  Alternative channels to convey conceptual messages
include function calls, sockets, GPIO interfaces, local busses, or
hypervisor calls.  This type of conveyance is typically found in
Composite Devices.  Most importantly, these conveyance methods are
out-of-scope of RATS, but they are presumed to exist in order to
convey conceptual messages appropriately between roles.
Paragraph (version B):
In cases where roles are aggregated, interaction between these roles
do not necessarily use the Internet Protocol.  They can be using a
loopback device or other IP-based communication between separate
environments, but they do not have to.  Alternative channels to
convey conceptual messages include function calls, sockets, GPIO
interfaces, local busses, or hypervisor calls.  This type of
conveyance is typically found in composite devices.  Most
importantly, these conveyance methods are out-of-scope of RATS, but
they are presumed to exist in order to convey conceptual messages
appropriately between roles.
Paragraph (version A):
Such narrowing is often important since physical possession of a
device can also be used to conduct a number of attacks, and so a
device in a physically secure environment (such as one's own
premises) may be considered trusted whereas devices owned by others
would not be.  This often results in a desire to either have the
owner run their own Endorser that would only Endorse devices one
owns, or to use Attesters directly in the trust anchor store.  When
there are many Attesters owned, the use of an Endorser becomes more
scalable.
Paragraph (version B):
Such narrowing is often important since physical possession of a
device can also be used to conduct a number of attacks, and so a
device in a physically secure environment (such as one's own
premises) may be considered trusted whereas devices owned by others
would not be.  This often results in a desire to either have the
owner run their own Endorser that would only endorse devices one
owns, or to use Attesters directly in the trust anchor store.  When
there are many Attesters owned, the use of an Endorser enables better
scalability.
Paragraph (version A):
The manufacturer having arranged for an Attesting Environment to be
provisioned with key material with which to sign Evidence, the
Verifier is then provided with some way of verifying the signature on
the Evidence.  This may be in the form of an appropriate trust
anchor, or the Verifier may be provided with a database of public
keys (rather than certificates) or even carefully secured lists of
symmetric keys.
Paragraph (version A):
The nature of how the Verifier manages to validate the signatures
produced by the Attester is critical to the secure operation of an
Attestation system, but is not the subject of standardization within
this architecture.
Paragraph (version B):
The manufacturer having arranged for an Attesting Environment to be
provisioned with key material with which to sign Evidence, the
Verifier is then provided with some way of verifying the signature on
the Evidence.  This may be in the form of an appropriate trust
anchor, or the Verifier may be provided with a database of public
keys (rather than certificates) or even carefully curated and secured
lists of symmetric keys.
Paragraph (version B):
The nature of how the Verifier manages to validate the signatures
produced by the Attester is critical to the secure operation of a
remote attestation system, but is not the subject of standardization
within this architecture.
Paragraph (version A):
As discusssed in rpowner-trust, authentication or attestation in both
directions might be needed, in which case typically one side's
identity or Evidence must be considered safe to share with an
untrusted entity, in order to bootstrap the sequence.  See privacy-
considerations for more discussion.
Paragraph (version B):
As discussed in rpowner-trust, authentication or attestation in both
directions might be needed, in which case typically one side's
identity or Evidence must be considered safe to share with an
untrusted entity, in order to bootstrap the sequence.  See privacy-
considerations for more discussion.
Paragraph (version A):
However, while an appraisal policy that treats all devices from a
given manufacturer the same may be appropriate for some use cases, it
would be inappropriate to use such an appraisal policy as the sole
means of authorization for use cases that wish to constrain _which_
compliant devices are considered authorized for some purpose.  For
example, an enterprise using remote attestation for Network Endpoint
Assessment may not wish to let every healthy laptop from the same
manufacturer onto the network, but instead only want to let devices
that it legally owns onto the network.  Thus, an Endorsement may be
helpful information in authenticating information about a device, but
is not necessarily sufficient to authorize access to resources which
may need device-specific information such as a public key for the
device or component or user on the device.
Paragraph (version B):
However, while an appraisal policy that treats all devices from a
given manufacturer the same may be appropriate for some use cases, it
would be inappropriate to use such an appraisal policy as the sole
means of authorization for use cases that wish to constrain _which_
compliant devices are considered authorized for some purpose.  For
example, an enterprise using remote attestation for Network Endpoint
Assessment RFC5209 may not wish to let every healthy laptop from the
same manufacturer onto the network, but instead only want to let
devices that it legally owns onto the network.  Thus, an Endorsement
may be helpful information in authenticating information about a
device, but is not necessarily sufficient to authorize access to
resources which may need device-specific information such as a public
key for the device or component or user on the device.
Paragraph (version A):
Such protocols typically already have mechanisms for passing security
information for purposes of authentication and authorization.  Common
formats include JWTs RFC7519, CWTs RFC8392, and X.509 certificates.
Paragraph (version A):
Retrofitting already deployed protocols with remote attestation
requires adding RATS conceptual messages to the existing data flows.
This must be done in a way that doesn't degrade the security
properties of the system and should use the native extension
mechanisms provided by the underlying protocol.  For example, if the
TLS handshake is to be extended with remote attestation capabilities,
attestation Evidence may be embedded in an ad hoc X.509 certificate
extension (e.g., TCG-DICE), or into a new TLS Certificate Type (e.g.,
I-D.tschofenig-tls-cwt).
Paragraph (version A):
Especially for constrained nodes there is a desire to minimize the
amount of parsing code needed in a Relying Party, in order to both
minimize footprint and to minimize the attack surface area.  So while
it would be possible to embed a CWT inside a JWT, or a JWT inside an
X.509 extension, etc., there is a desire to encode the information
natively in the format that is natural for the Relying Party.
Paragraph (version B):
Typically, such protocols already have mechanisms for passing
security information for authentication and authorization purposes.
Common formats include JWTs RFC7519, CWTs RFC8392, and X.509
certificates.
Paragraph (version B):
Retrofitting already deployed protocols with remote attestation
requires adding RATS conceptual messages to the existing data flows.
This must be done in a way that does not degrade the security
properties of the systems involved and should use native extension
mechanisms provided by the underlying protocol.  For example, if a
TLS handshake is to be extended with remote attestation capabilities,
attestation Evidence may be embedded in an ad-hoc X.509 certificate
extension (e.g., TCG-DICE), or into a new TLS Certificate Type (e.g.,
I-D.tschofenig-tls-cwt).
Paragraph (version B):
Especially for constrained nodes there is a desire to minimize the
amount of parsing code needed in a Relying Party, in order to both
minimize footprint and to minimize the attack surface.  While it
would be possible to embed a CWT inside a JWT, or a JWT inside an
X.509 extension, etc., there is a desire to encode the information
natively in formats that are already supported by the Relying Party.
Paragraph (version A):
The following diagram illustrates that Evidence and Attestation
Results might each have multiple possible encoding formats, so that
they can be conveyed by various existing protocols.  It also
motivates why the Verifier might also be responsible for accepting
Evidence that encodes Claims in one format, while issuing Attestation
Results that encode Claims in a different format.
Paragraph (version A):
A Verifier or Relying Party may need to learn the point in time
(i.e., the "epoch") an Evidence or Attestation Result has been
produced.  This is essential in deciding whether the included Claims
and their values can be considered fresh, meaning they still reflect
the latest state of the Attester, and that any Attestation Result was
generated using the latest Appraisal Policy for Evidence.
Paragraph (version B):
The following diagram illustrates that Evidence and Attestation
Results might be expressed via multiple potential encoding formats,
so that they can be conveyed by various existing protocols.  It also
motivates why the Verifier might also be responsible for accepting
Evidence that encodes Claims in one format, while issuing Attestation
Results that encode Claims in a different format.
Paragraph (version B):
A Verifier or Relying Party might need to learn the point in time
(i.e., the "epoch") an Evidence or Attestation Result has been
produced.  This is essential in deciding whether the included Claims
and their values can be considered fresh, meaning they still reflect
the latest state of the Attester, and that any Attestation Result was
generated using the latest Appraisal Policy for Evidence.
Paragraph (version A):
The first approach is to rely on synchronized and trustworthy clocks,
and include a signed timestamp (see I-D.birkholz-rats-tuda) along
with the Claims in the Evidence or Attestation Result.  Timestamps
can also be added on a per-Claim basis to distinguish the time of
creation of Evidence or Attestation Result from the time that a
specific Claim was generated.  The clock's trustworthiness typically
requires additional Claims about the signer's time synchronization
mechanism.
Paragraph (version B):
The first approach is to rely on synchronized and trustworthy clocks,
and include a signed timestamp (see I-D.birkholz-rats-tuda) along
with the Claims in the Evidence or Attestation Result.  Timestamps
can also be added on a per-Claim basis to distinguish the time of
generation of Evidence or Attestation Result from the time that a
specific Claim was generated.  The clock's trustworthiness can
generally be established via Endorsements and typically requires
additional Claims about the signer's time synchronization mechanism.
Paragraph (version A):
The conveyance of Evidence and the resulting Attestation Results
reveal a great deal of information about the internal state of a
device as well as potentially any users of the device.  In many
cases, the whole point of the Attestation process is to provide
reliable information about the type of the device and the firmware/
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
aim attacks better.
Paragraph (version A):
Many claims in Attestation Evidence and Attestation Results are
potentially 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.
Paragraph (version A):
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.
Paragraph (version A):
Evidence and Attestation Results data structures are expected to
support integrity protection encoding (e.g., COSE, JOSE, X.509) and
optionally might support confidentiality protection (e.g., COSE,
JOSE).  Therefore, if confidentiality protection is omitted or
unavailable, the protocols that convey Evidence or Attestation
Results are responsible for detailing what kinds of information are
disclosed, and to whom they are exposed.
Paragraph (version A):
Furthermore, because Evidence might contain sensitive information,
Attesters are responsible for only sending such Evidence to trusted
Verifiers.  Some Attesters might want a stronger level of assurance
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
for the Verifier's own Attestation Result, and appraising it just as
a Relying Party would appraise an Attestation Result for any other
purpose.
Paragraph (version B):
The conveyance of Evidence and the resulting Attestation Results
reveal a great deal of information about the internal state of a
device as well as potentially any users of the device.  In many
cases, the whole point of attestation procedures is to provide
reliable information about the type of the device and the firmware/
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
aim attacks better.
Paragraph (version B):
Many Claims in Evidence and Attestation Results are potentially
Personally Identifying Information (PII) depending on the end-to-end
use case of the remote attestation procedure.  Remote attestation
that goes up to include containers and applications, e.g., a blood
pressure monitor, may further reveal details about specific systems
or users.
Paragraph (version B):
In some cases, an attacker may be able to make inferences about the
contents of Evidence from the resulting effects 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.
Paragraph (version B):
Evidence and Attestation Results are expected to be integrity
protected (i.e., either via signing or a secure channel) and
optionally might be confidentiality protected via encryption.  If
confidentiality protection via signing the conceptual messages is
omitted or unavailable, the protecting protocols that convey Evidence
or Attestation Results are responsible for detailing what kinds of
information are disclosed, and to whom they are exposed.
Paragraph (version B):
As Evidence might contain sensitive or confidential information,
Attesters are responsible for only sending such Evidence to trusted
Verifiers.  Some Attesters might want a stronger level of assurance
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
for the Verifier's own Attestation Result, and appraising it just as
a Relying Party would appraise an Attestation Result for any other
purpose.
Paragraph (version A):
Implementers need to pay close attention to the protection of the
Attester and the factory processes for provisioning the Attestation
key material.  If either of these are compromised, the remote
attestation becomes worthless because an attacker can forge Evidence
or manipulate the Attesting Environment.  For example, a Target
Environment should not be able to tamper with the Attesting
Environment that measures it, by isolating the two environments from
each other in some way.
Paragraph (version A):
Remote attestation applies to use cases with a range of security
requirements, so the protections discussed here range from low to
high security where low security may be only application or process
isolation by the device's operating system and high security involves
specialized hardware to defend against physical attacks on a chip.
Paragraph (version A):
It is assumed that an Attesting Environment is sufficiently isolated
from the Target Environment it collects Claims for and signs them
with an Attestation Key, so that the Target Environment cannot forge
Evidence about itself.  Such an isolated environment might be
provided by a process, a dedicated chip, a TEE, a virtual machine, or
another secure mode of operation.  The Attesting Environment must be
protected from unauthorized modification to ensure it behaves
correctly.  There must also be confidentiality so that the signing
key is not captured and used elsewhere to forge Evidence.
Paragraph (version A):
In many cases the user or owner of the device must not be able to
modify or exfiltrate keys from the Attesting Environment of the
Attester.  For example the owner or user of a mobile phone or FIDO
authenticator, having full control over the keys, might not be
trusted to use the keys to report Evidence about the environment that
protects the keys.  The point of remote attestation is for the
Relying Party to be able to trust the Attester even though they don't
trust the user or owner.
Paragraph (version A):
Some of the measures for a minimally protected system might include
process or application isolation by a high-level operating system,
and perhaps restricting access to root or system privilege.  For
extremely simple single-use devices that don't use a protected mode
operating system, like a Bluetooth speaker, the isolation might only
be the plastic housing for the device.
Paragraph (version A):
Measures for a moderately protected system could include a special
restricted operating environment like a Trusted Execution Environment
(TEE) might be used.  In this case, only security-oriented software
has access to the Attester and key material.
Paragraph (version B):
Implementers need to pay close attention to the protection of the
Attester and the manufacturing processes for provisioning attestation
key material.  If either of these are compromised, intended levels of
assurance for RATS are compromised because attackers can forge
Evidence or manipulate the Attesting Environment.  For example, a
Target Environment should not be able to tamper with the Attesting
Environment that measures it, by isolating the two environments from
each other in some way.
Paragraph (version B):
Remote attestation applies to use cases with a range of security
requirements, so the protections discussed here range from low to
high security where low security may be limited to application or
process isolation by the device's operating system, and high security
may involve specialized hardware to defend against physical attacks
on a chip.
Paragraph (version B):
It is assumed that an Attesting Environment is sufficiently isolated
from the Target Environment it collects Claims about and that it
signs the resulting Claims set with an attestation key, so that the
Target Environment cannot forge Evidence about itself.  Such an
isolated environment might be provided by a process, a dedicated
chip, a TEE, a virtual machine, or another secure mode of operation.
The Attesting Environment must be protected from unauthorized
modification to ensure it behaves correctly.  Confidentiality
protection of the Attesting Environment's signing key is vital so it
cannot be misused to forge Evidence.
Paragraph (version B):
In many cases the user or owner of a device that takes on the role of
Attester must not be able to modify or extract keys from its
Attesting Environments.  For example, the owner or user of a mobile
phone or FIDO authenticator might not be trusted to use the keys to
report Evidence about the environment that protects the keys.  An
essential value-add provided by RATS is for the Relying Party to be
able to trust the Attester even if the user or owner is not trusted.
Paragraph (version B):
Measures for a minimally protected system might include process or
application isolation provided by a high-level operating system, and
restricted access to root or system privileges.  In contrast, For
really simple single-use devices that don't use a protected mode
operating system, like a Bluetooth speaker, the only factual
isolation might be the sturdy housing of the device.
Paragraph (version B):
Measures for a moderately protected system could include a special
restricted operating environment, such as a TEE.  In this case, only
security-oriented software has access to the Attester and key
material.
Paragraph (version A):
Attestation key provisioning is the process that occurs in the
factory or elsewhere that establishes the signing key material on the
device and the verification key material off the device.  Sometimes
this is referred to as "personalization".
Paragraph (version A):
One way to provision a key is to first generate it external to the
device and then copy the key onto the device.  In this case,
confidentiality of the generator, as well as the path over which the
key is provisioned, is necessary.  The manufacturer needs to take
care to protect it with measures consistent with its value.  This can
be achieved in a number of ways.
Paragraph (version A):
Confidentiality can be achieved entirely with physical provisioning
facility security involving no encryption at all.  For low-security
use cases, this might be simply locking doors and limiting personnel
that can enter the facility.  For high-security use cases, this might
involve a special area of the facility accessible only to select
security-trained personnel.
Paragraph (version A):
Cryptography can also be used to support confidentiality, but keys
that are used to then provision attestation keys must somehow have
been provisioned securely beforehand (a recursive problem).
Paragraph (version A):
In many cases both some physical security and some cryptography will
be necessary and useful to establish confidentiality.
Paragraph (version A):
Another way to provision the key material is to generate it on the
device and export the verification key.  If public key cryptography
is being used, then only integrity is necessary.  Confidentiality is
not necessary.
Paragraph (version A):
In all cases, the Attestation Key provisioning process must ensure
that only attestation key material that is generated by a valid
Endorser is established in Attesters and then configured correctly.
For many use cases, this will involve physical security at the
facility, to prevent unauthorized devices from being manufactured
that may be counterfeit or incorrectly configured.
Paragraph (version B):
Attestation key provisioning is the process that occurs in the
factory or elsewhere to establish signing key material on the device
and the validation key material off the device.  Sometimes this is
procedure is referred to as personalization or customization.
Paragraph (version B):
One way to provision key material is to first generate it external to
the device and then copy the key onto the device.  In this case,
confidentiality protection of the generator, as well as for the path
over which the key is provisioned, is necessary.  The manufacturer
needs to take care to protect corresponding key material with
measures appropriate for its value.
Paragraph (version B):
Confidentiality protection can be realized via physical provisioning
facility security involving no encryption at all.  For low-security
use cases, this might be simply locking doors and limiting personnel
that can enter the facility.  For high-security use cases, this might
involve a special area of the facility accessible only to select
security-trained personnel.
Paragraph (version B):
Typically, cryptography is used to enable confidentiality protection.
This can result in recursive problems, as the key material used to
provision attestation keys must again somehow have been provisioned
securely beforehand (requiring an additional level of protection, and
so on).
Paragraph (version B):
In general, a combination of some physical security measures and some
cryptographic measures is used to establish confidentiality
protection.
Paragraph (version B):
Another way to provision key material is to generate it on the device
and export the validation key.  If public-key cryptography is being
used, then only integrity is necessary.  Confidentiality of public
keys is not necessary.
Paragraph (version B):
In all cases, attestation key provisioning must ensure that only
attestation key material that is generated by a valid Endorser is
established in Attesters.
Paragraph (version A):
The security protecting conveyed information may be applied at
different layers, whether by a conveyance protocol, or an information
encoding format.  This architecture expects attestation messages
(i.e., Evidence, Attestation Results, Endorsements, Reference Values,
and Policies) are end-to-end protected based on the role interaction
context.  For example, if an Attester produces Evidence that is
relayed through some other entity that doesn't implement the Attester
or the intended Verifier roles, then the relaying entity should not
expect to have access to the Evidence.
Paragraph (version B):
Security protections in RATS may be applied at different layers,
whether by a conveyance protocol, or an information encoding format.
This architecture expects conceptual messages (see messages) to be
end-to-end protected based on the role interaction context.  For
example, if an Attester produces Evidence that is relayed through
some other entity that doesn't implement the Attester or the intended
Verifier roles, then the relaying entity should not expect to have
access to the Evidence.
Paragraph (version B):
An attacker could be either external or belong to the distribution
group, for example, if one of the Attester entities have been
compromised.
Paragraph (version A):
Thomas Hardjono created older versions of the terminology section in
collaboration with Ned Smith.  Eric Voit provided the conceptual
separation between Attestation Provision Flows and Attestation
Evidence Flows.  Monty Wisemen created the content structure of the
first three architecture drafts.  Carsten Bormann provided many of
the motivational building blocks with respect to the Internet Threat
Model.
Paragraph (version B):
Thomas Hardjono created initial versions of the terminology section
in collaboration with Ned Smith.  Eric Voit provided the conceptual
separation between Attestation Provision Flows and Attestation
Evidence Flows.  Monty Wisemen created the content structure of the
first three architecture drafts.  Carsten Bormann provided many of
the motivational building blocks with respect to the Internet Threat
Model.
Paragraph (version A):
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
defined in terms of an absolute clock time such as Coordinated
Universal Time, or might be defined relative to some other timestamp
or timeticks counter.
Paragraph (version A):
Using the table above, a number of hypothetical examples of how a
solution might be built are illustrated below.  a solution might be
built.  This list is not intended to be complete, but is just
representative enough to highlight various timing considerations.
Paragraph (version A):
All times are relative to the local clocks, indicated by an "a"
(Attester), "v" (Verifier), or "r" (Relying Party) suffix.
Paragraph (version B):
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
defined in terms of an absolute clock time, such as the Coordinated
Universal Time timescale, or might be defined relative to some other
timestamp or timeticks counter, such as a clock resetting its epoch
each time it is powered on.
Paragraph (version B):
Using the table above, a number of hypothetical examples of how a
solution might be built are illustrated below.  This list is not
intended to be complete, but is just representative enough to
highlight various timing considerations.
Paragraph (version B):
All times are relative to the local clocks, indicated by an "_a"
(Attester), "_v" (Verifier), or "_r" (Relying Party) suffix.