<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lake-ra-07" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="RA-EDHOC">Remote attestation over EDHOC</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lake-ra-07"/>
    <author initials="Y." surname="Song" fullname="Yuxuan Song">
      <organization>Inria</organization>
      <address>
        <email>yuxuan.song@inria.fr</email>
      </address>
    </author>
    <author initials="G." surname="Selander" fullname="Göran Selander">
      <organization>Ericsson AB</organization>
      <address>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <date year="2026" month="November" day="02"/>
    <area>Security</area>
    <workgroup>Lightweight Authenticated Key Exchange</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 60?>
<t>This document specifies methods to perform remote attestation as part of the lightweight authenticated key exchange protocol EDHOC (Ephemeral Diffie-Hellman Over COSE), based on the Remote ATtestation procedureS (RATS) architecture.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://lake-wg.github.io/ra/draft-ietf-lake-ra.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-lake-ra/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Lightweight Authenticated Key Exchange Working Group mailing list (<eref target="mailto:lake@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/lake/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/lake/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/lake-wg/ra"/>.</t>
    </note>
  </front>
  <middle>
    <?line 63?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The lightweight authenticated key exchange protocol Ephemeral Diffie-Hellman over COSE (EDHOC) <xref target="RFC9528"/>, developed for highly constrained networks, has formally proven security properties for protecting against network adversaries, but, like other authenticated key exchange protocols, lacks inherent mechanisms for validating endpoint security.</t>
      <!--Discuss remote attestation and mention some use cases.-->
<t>Remote attestation is a security process that verifies and confirms the integrity and trustworthiness of a remote target (e.g., device, system, group of devices) in the network.
This process helps establish a level of trust in the remote system, e.g., before allowing the device to join the network or get access to some sensitive information and resources.
The use cases that require remote attestation include secure boot and firmware management, cloud computing, network access control, etc.</t>
      <!--Summarize RATS architecture {{RFC9334}} and main roles.-->
<t>The Remote ATtestation procedureS (RATS) architecture <xref target="RFC9334"/> defines three main roles: the Attester, the Verifier and the Relying Party.
The Attester generates evidence (a set of claims) concerning its identity and integrity, which must be appraised by the Verifier for its validity.
The Verifier produces the attestation result, which is subsequently used by the Relying Party for the purposes of reliably applying application-specific actions.</t>
      <!--Discuss the two RATS models and say that this specification supports both models.-->
<t>One type of interaction model defined in the RATS architecture is called the Background-Check Model.
In this case, the Attester conveys evidence to the Relying Party and the Relying Party forwards the evidence to the Verifier for appraisal.
Once the attestation result is computed by the Verifier, it is sent back to the Relying Party to decide what action to take based on the attestation result.
Another model is called the Passport Model, where the Attester communicates directly with the Verifier.
The Attester presents the evidence to the Verifier and gets an attestation result from the Verifier.
Then the Attester conveys the attestation result to the Relying Party.
This specification employs both the RATS Background-Check Model and the Passport Model.</t>
      <t>This document embeds the protocol between the Attester and the Relying Party within the EDHOC protocol.
The details of the protocol between the Relying Party and the Verifier in the Background-Check Model, and the protocol between the Attester and the Verifier in the Passport Model are out of scope.
The establishment of a secure association and communication security with the Verifier may be provided by EDHOC/OSCORE, TLS, or other security protocols that support secure message exchange.</t>
      <!--Discuss EAT-->
<t>One way of conveying the attestation evidence or the attestation result is by means of an Entity Attestation Token (EAT) <xref target="RFC9711"/>.
It provides an attested claims set which can be used to determine a level of trustworthiness.
This specification relies on the EAT as the format for attestation evidence and the attestation result.</t>
      <!--Summarize EDHOC {{RFC9528}}. Mention EAD fields of EDHOC.-->
<t>In EDHOC, the two parties involved in the key exchange are referred to as the Initiator (I) and the Responder (R).
EDHOC provides mutual authentication between I and R, forward secrecy, identity protection, message integrity, and other security properties.
EDHOC supports the transport of External Authorization Data (EAD), through dedicated protocol fields containing so-called EAD items, see <xref section="3.8" sectionFormat="of" target="RFC9528"/>.
This specification defines new EAD items including EATs for performing remote attestation over EDHOC in the Background Check Model (BG, see <xref target="bg"/>) and in the Passport Model (PP, see <xref target="pp"/>).
The EAD items are included in the EDHOC message integrity verification and key derivation, and thus attestation data becomes part of the security protocol data verified and used in an EDHOC session.</t>
      <!--Discuss implementation aspects such as the internal attestation service running on the Attester.
Root of trust. Separation between secure and non-secure worlds.-->
<!--high-level intro of RoT -->
<t>For the generation of evidence, the Attester invokes an internal attestation service, including a specific trusted element known as the "root of trust".
Root of trust serves as the starting point for establishing and validating the trustworthiness appraisals of other components on the system.
The measurements signed by the attestation service are referred to as the Evidence.
This document defines attestation binders including EDHOC data in evidence, thus binding the measurements to the EDHOC session.
The signing is requested through an attestation API.
How the components are separated between the secure and non-secure worlds on a target is out of scope of this specification.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The reader is assumed to be familiar with the terms and concepts defined in EDHOC <xref target="RFC9528"/>, RATS architecture <xref target="RFC9334"/> and CBOR <xref target="RFC8949"/>.</t>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <t>EDHOC provides the benefit of minimal message overhead and reduced round trips for lightweight authentication between an Initiator and a Responder.
However, authentication ensures only identity-level security, and additional integrity assurance may be required through remote attestation.
This specification describes how to perform remote attestation over the EDHOC protocol, following the RATS architecture.
More importantly, by integrating remote attestation with EDHOC, attestation can be run in parallel with authentication, improving the efficiency and maintaining lightweight properties.</t>
      <t>This document supports all four LAKE authentication methods defined in <xref target="RFC9528"/>, as well as the PSK-based authentication method defined in <xref target="I-D.ietf-lake-edhoc-psk"/>.
Remote attestation protocol elements are carried within EDHOC's External Authorization Data (EAD) fields.
EDHOC <xref target="RFC9528"/> supports one or more EAD items in each EAD field.</t>
      <t>The Attester can act as either the EDHOC Initiator or the EDHOC Responder, depending on the attesting target.
In the Background-Check (BG) Model, the Attester provides the evidence to the Relying Party during the EDHOC session.
In the Passport (PP) Model, the Attester provides the attestation result to the Relying Party during the EDHOC session.
<xref target="attestation-dimensions"/> defines two independent dimensions for performing remote attestation over EDHOC:</t>
      <ol spacing="normal" type="1"><li>
          <t>Target: Defining the entity that is attested (EDHOC Initiator or EDHOC Responder), which could be a constrained device or not.</t>
        </li>
        <li>
          <t>Model: Defining the attestation model in use based on the RATS architecture (BG or PP model, see <xref target="bg"/> and <xref target="pp"/>).</t>
        </li>
      </ol>
      <t>This document focuses on cases that are suited for constrained IoT environments, see <xref target="I-D.ietf-iotops-7228bis"/> for a characterization of constrained nodes and networks.</t>
      <t>When transferred over CoAP <xref target="RFC7252"/>, the EDHOC protocol can be performed according to two possible message flows, namely the EDHOC forward message flow and the EDHOC reverse message flow (see <xref section="A.2.2" sectionFormat="of" target="RFC9528"/>).
In this specification, both flows are supported to perform remote attestation.</t>
    </section>
    <section anchor="assumptions">
      <name>Assumptions</name>
      <t>In the BG model, the Verifier is assumed to support verification of at least one evidence format provided by the Attester.
The Verifier is assumed to be provisioned with the Attester's attestation public key and the reference values required for evidence validation prior to the attestation procedure.
It is assumed that the Relying Party also has knowledge about the Attester and is trusted to select an evidence type according to the applicable deployment policy.
The Relying Party may narrow down the evidence type selection and send to the Attester only one format of the evidence type.</t>
      <t>In the PP model, the authentication credential of the Verifier is assumed to be stored at the Attester and the Relying Party.
Also, the Attester and the Relying Party consider the Verifier a trusted source of the issued attestation result that they obtain.
If timestamps are used to ensure freshness in the PP model, synchronized time between the Attester and Relying Party is assumed.
For detailed time considerations, refer to <xref section="A" sectionFormat="of" target="RFC9334"/>.
If a nonce is used to ensure freshness, the device that generates the nonce is assumed to be able to generate a random byte string that is not predictable.</t>
      <section anchor="reuse-of-edhoc">
        <name>Reuse of EDHOC</name>
        <t>This specification reuses several components of EDHOC.</t>
        <ul spacing="normal">
          <li>
            <t>EAD is the External Authorization Data message field of EDHOC messages, see <xref section="3.8" sectionFormat="of" target="RFC9528"/>.
This specification specifies four new EAD items in BG model, and four new EAD items in PP model. See <xref target="attestation-dimensions"/>.</t>
          </li>
          <li>
            <t>ID_CRED_I is used to identify the authentication credential of the Initiator in the authentication session.</t>
          </li>
          <li>
            <t>The EDHOC hash algorithm of the selected cipher suite is used to generate the attestation_binder_m3 (see <xref target="attestation-binder"/>) when Evidence is sent in EDHOC message_3.</t>
          </li>
          <li>
            <t>EDHOC_Exporter is used to generate the attestation_binder_m4 (see <xref target="attestation-binder"/>) when Evidence is sent in EDHOC message_4.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="attestation-dimensions">
      <name>EAD Items for Remote Attestation over EDHOC</name>
      <t>This section specifies the EAD items and related processing for remote attestation over EDHOC in the BG model (see <xref target="bg"/>) and the PP model (see <xref target="pp"/>).
The corresponding EAD items for the BG and PP models are independent.</t>
      <section anchor="bg">
        <name>Background-Check Model (BG)</name>
        <t>In the BG model, the Attester sends the evidence to the Relying Party.
Evidence contains a set of claims about the current status of the Attester, including configurations, health, or construction that have security relevance (see <xref section="8.1" sectionFormat="of" target="RFC9334"/>).
The Relying Party transfers the evidence to the Verifier and gets back the attestation result from the Verifier.</t>
        <t>An EDHOC session is established between the Attester and the Relying Party.
A negotiation of the evidence type is required before the Attester sends the evidence.
All three parties must agree on a selected evidence type.</t>
        <t>The Attester first sends a list of the proposed evidence types to the Relying Party.
The list is formatted as an Attestation proposal in an EDHOC EAD item.
The Relying Party relays the list to the Verifier and receives at least one supported evidence type from the Verifier in return.
If the Relying Party receives more than one evidence type, a single evidence type should be selected by the Relying Party based on its knowledge of the Attester.
The Relying Party then sends it back within the Attestation request to the Attester.</t>
        <t>A nonce, at least 8 bytes long <xref target="RFC9711"/>, is required to guarantee the freshness of the attestation procedure.
The nonce is generated by the Verifier and sent to the Relying Party.
The Relying Party includes the nonce in the same Attestation request sent to the Attester, together with the selected evidence type.</t>
        <t>Once the Attester receives the Attestation request, it can call its attestation service to generate the evidence, with the nonce value as one of the inputs.</t>
        <t>The EAD item Remote Attestation BG with ead_label TBD1 conveys a different ead_value depending on the EDHOC message where the EAD item is included, and depending on who takes the initative: the Attester or the Relying Party.
The four different ead_values are: Attestation_proposal (<xref target="attestation-proposal"/>), Attestation_request (<xref target="attestation-request"/>), Evidence (<xref target="evidence"/>), and trigger_bg (<xref target="trigger-bg"/>).</t>
        <t>The Background-Check Model can be started by the Attester by including the Attestation_proposal in message_1, followed by the Attestation_request in message_2, and the Evidence in message_3 (see <xref target="iot-attestation"/>).
Alternatively, the Relying Party can trigger the Attester by including the trigger_bg in message_1, followed by the Attestation_proposal in message_2, the Attestation_request in message_3, and the Evidence in message_4 (see <xref target="r_bg"/>).</t>
        <section anchor="trigger-bg">
          <name>trigger_bg</name>
          <t>The Relying Party can trigger the Attester to start a remote attestation in the Background-Check Model.
The EAD item Remote Attestation BG for the trigger is:</t>
          <ul spacing="normal">
            <li>
              <t>ead_label = TBD1</t>
            </li>
            <li>
              <t>ead_value = trigger_bg, which is the CBOR simple value ´true´ (trigger_bg = 0xF5).</t>
            </li>
          </ul>
          <t>The EAD value trigger_bg can only be carried in EDHOC message_1.
The Attester <bcp14>MUST</bcp14> respond with an EAD item Remote Attestation BG with ead_value Attestation_proposal in EDHOC message_2.</t>
        </section>
        <section anchor="attestation-proposal">
          <name>Attestation_proposal</name>
          <t>The Attester indicates to the Relying Party its proposal to do remote attestation, together with the Proposed_EvidenceType object that specifies which types of attestation claims the Attester supports.
The Proposed_EvidenceType is encoded in CBOR in the form of a sequence (see <xref target="RFC8742"/>).</t>
          <t>The EAD item Remote Attestation BG for an attestation proposal is:</t>
          <ul spacing="normal">
            <li>
              <t>ead_label = TBD1</t>
            </li>
            <li>
              <t>ead_value = Attestation_proposal, which is a CBOR byte string:</t>
            </li>
          </ul>
          <artwork><![CDATA[
Attestation_proposal = bstr .cborseq Proposed_EvidenceType

;This defines an array, the elements of which are
;to be used in the CBOR Sequence Proposed_EvidenceType:

Proposed_EvidenceType = [ + content-format ]

content-format = uint
]]></artwork>
          <t>where</t>
          <ul spacing="normal">
            <li>
              <t>Proposed_EvidenceType is a CBOR sequence of an array that carries all the supported evidence types by the Attester.</t>
            </li>
            <li>
              <t>There <bcp14>MUST</bcp14> be at least one item in the array.</t>
            </li>
            <li>
              <t>content-format is an indicator of the format type (e.g., application/eat+cwt with an appropriate eat_profile parameter set), from <xref target="IANA-CoAP-Content-Formats"/>.</t>
            </li>
          </ul>
        </section>
        <section anchor="attestation-request">
          <name>Attestation_request</name>
          <t>As a response to the attestation proposal, the Relying Party signals to the Attester the supported and requested evidence type.
In case none of the evidence types is supported, the Relying Party rejects the previous message with an error indicating support for another evidence type.</t>
          <t>The EAD item Remote Attestation BG for an attestation request is:</t>
          <ul spacing="normal">
            <li>
              <t>ead_label = TBD1</t>
            </li>
            <li>
              <t>ead_value = Attestation_request, which is a CBOR byte string:</t>
            </li>
          </ul>
          <artwork><![CDATA[
Attestation_request = bstr .cborseq Selected_EvidenceType

;This defines an array, the elements of which are
;to be used in the CBOR Sequence Selected_EvidenceType:

Selected_EvidenceType = [
  content-format: uint,
  nonce: bstr .size (8..64)
]
]]></artwork>
          <t>where</t>
          <ul spacing="normal">
            <li>
              <t>content-format is the evidence type selected by the Relying Party and supported by the Verifier.</t>
            </li>
            <li>
              <t>nonce is generated by the Verifier and forwarded by the Relying Party.</t>
            </li>
          </ul>
        </section>
        <section anchor="evidence">
          <name>Evidence</name>
          <t>The Attester calls its local attestation service to generate and return a serialized Entity Attestation Token (EAT) <xref target="RFC9711"/> as Evidence.</t>
          <t>The EAD item Remote Attestation BG is:</t>
          <ul spacing="normal">
            <li>
              <t>ead_label = TBD1</t>
            </li>
            <li>
              <t>ead_value is the serialization of a COSE_Sign1 structure protecting the EAT.
For remote attestation over EDHOC, the EAT <bcp14>MUST</bcp14> be formatted as a CBOR Web Token (CWT) <xref target="RFC8392"/> containing attestation-oriented claims.
The complete set of attestation claims for the EAT is specified in <xref target="RFC9711"/>.
An example is provided in <xref target="firmware"/>.</t>
            </li>
          </ul>
          <t>A minimal claims set is defined as the payload of COSE_Sign1 when the Attester operates under constrained message size requirements and/or limited computational resources:</t>
          <artwork><![CDATA[
minimal-claim-set = {
10 => bstr .size (8..64)  ;eat_nonce
256 => bstr .size (7..33)  ;ueid
273 => measurements-type  ;measurements
}

measurements-type = [+ measurements-format]
measurements-format = [
      content-format: uint,
      content: bytes
]
]]></artwork>
          <t>where</t>
          <ul spacing="normal">
            <li>
              <t>eat-nonce is the nonce generated by the Verifier (see <xref target="attestation-request"/>), which is included by the Attester within the Evidence.</t>
            </li>
            <li>
              <t>The "measurements" claim could be a CoSWID <xref target="RFC9393"/>, a CoRIM <xref target="I-D.ietf-rats-corim"/> or other claim formats, and <bcp14>MUST</bcp14> be identified by CoAP Content Format.
An example as CoSWID is shown in <xref target="firmware"/>.</t>
            </li>
          </ul>
          <section anchor="attestation-binder">
            <name>Attestation binder</name>
            <t>The signing of the Evidence <bcp14>MUST</bcp14> also take as input an attestation binder, see <xref target="security-considerations"/>.</t>
            <t>The Relying Party has to provide the Verifier with the Evidence together with the attestation binder, which is needed for verifying the EAT signature.</t>
            <t>When Evidence is sent in EDHOC message_3 in EAD_3, the attestation binder is computed using HKDF-Expand defined in <xref target="RFC5869"/>.</t>
            <artwork><![CDATA[
attestation_binder_m3 = HKDF-Expand(0, attest_info, hash_length)

attest_info = [ H_12, "attestation", ID_CRED_I ]

H_12 = H(H(message_1), message_2)
]]></artwork>
            <t>where</t>
            <ul spacing="normal">
              <li>
                <t>0 denotes an all-zero byte string of length hash_length used as the PRK input to HKDF-Expand.</t>
              </li>
              <li>
                <t>hash_length is the length in bytes of the output of the EDHOC hash algorithm of the selected cipher suite.</t>
              </li>
              <li>
                <t>attest_info is a CBOR array containing H_12, the text string "attestation" and ID_CRED_I.</t>
              </li>
              <li>
                <t>H() is the EDHOC hash algorithm of the selected cipher suite.</t>
              </li>
            </ul>
            <t>When Evidence is sent in EDHOC message_4, the attestation binder is derived using EDHOC_Exporter defined in <xref target="RFC9528"/>.</t>
            <artwork><![CDATA[
attestation_binder_m4 = EDHOC_Exporter (exporter_label, context, length)
]]></artwork>
            <t>where</t>
            <ul spacing="normal">
              <li>
                <t>exporter_label = 2</t>
              </li>
              <li>
                <t>context = "attestation"</t>
              </li>
              <li>
                <t>length is the length in bytes of the output of the EDHOC hash algorithm of the selected cipher suite.</t>
              </li>
            </ul>
            <t>The signature in COSE_Sign1 is computed over a Sig_structure containing protected header, externally supplied data (external_aad) and payload using a private attestation key.
The COSE Unprotected Header is empty.
The message to be signed is:</t>
            <artwork><![CDATA[
[ "Signature1", body_protected, external_aad, payload ]
]]></artwork>
            <t>where</t>
            <ul spacing="normal">
              <li>
                <t>body_protected is the same CBOR byte string as the protected header in COSE_Sign1</t>
              </li>
              <li>
                <t>external_aad is set to attestation_binder_m3 when Evidence is carried in EDHOC message_3, and to attestation_binder_m4 when Evidence is carried in EDHOC message_4</t>
              </li>
              <li>
                <t>payload is the same CBOR byte string as the payload in COSE_Sign1</t>
              </li>
            </ul>
          </section>
        </section>
      </section>
      <section anchor="pp">
        <name>Passport Model (PP)</name>
        <t>In the Passport Model, the Attester sends the evidence to the Verifier.
After the Attester receives the attestation result from the Verifier, the Attester sends the attestation result to the Relying Party.
An attestation result is a set of claims generated by the Verifier following the appraisal of Evidence, as defined in <xref target="RFC9334"/>.
It may contain a claim with a boolean value indicating compliance or non-compliance with the Verifier's appraisal policy, or multiple claims describing the appraisal results in different aspects.</t>
        <t>An EDHOC session is established between the Attester and the Relying Party.
The Attester and the Relying Party should decide from which Verifier the Attester obtains the attestation result before transferring it to the Relying Party.
The Attester first sends a list of the Verifier identities that it can get the attestation result from.
The Relying Party selects one trusted Verifier identity and sends it back within a Result request.</t>
        <t>Regarding the freshness in Passport Model, the Attester could either establish a real-time connection with the selected Verifier, or use a pre-stored attestation result from the selected Verifier.
If the attestation result is not obtained via a real-time connection, it <bcp14>MUST</bcp14> include a time stamp and/or expiry time to indicate its validity.
Time synchronization is out of scope of this specification.</t>
        <t>Once the Attester obtains the attestation result from the selected Verifier, it sends the attestation result to the Relying Party.</t>
        <t>The EAD item Remote Attestation PP with ead_label TBD2 conveys a different ead_value depending on the EDHOC message where the EAD item is included, and depending on who takes the initative: the Attester or the Relying Party.
The four different ead_values are: Result_proposal (<xref target="result-proposal"/>), Result_request (<xref target="result-request"/>), Result (<xref target="result"/>), and trigger_pp (<xref target="trigger-pp"/>).</t>
        <t>The Passport Model can be started by the Attester by including the Result_proposal in message_1, followed by the Result_request in message_2, and the Result in message_3 (see <xref target="i_pp"/>).
Alternatively, the Relying Party can trigger the Attester by including the trigger_pp in message_1, followed by the Result_proposal in message_2, the Result_request in message_3, and the Result in message_4 (see <xref target="network-attestation"/>).</t>
        <section anchor="trigger-pp">
          <name>trigger_pp</name>
          <t>The Relying Party can trigger the Attester to start a remote attestation in the Passport Model.
The EAD item Remote Attestation PP for the trigger is:</t>
          <ul spacing="normal">
            <li>
              <t>ead_label = TBD2</t>
            </li>
            <li>
              <t>ead_value = trigger_pp, which is the CBOR simple value ´true´ (trigger_pp = 0xF5).</t>
            </li>
          </ul>
          <t>The EAD value trigger_pp can only be carried in EDHOC message_1.
The Attester <bcp14>MUST</bcp14> respond with an EAD item Remote Attestation PP with ead_value Result_proposal in EDHOC message_2.</t>
        </section>
        <section anchor="result-proposal">
          <name>Result_proposal</name>
          <t>An attestation result proposal contains the identification of the credentials of the Verifiers to indicate Verifiers' identities.
The identification of credentials relies on COSE header parameters <xref target="IANA-COSE-Header-Parameters"/>, with a header label and credential value.</t>
          <t>The EAD item Remote Attestation PP for the attestation result proposal is:</t>
          <ul spacing="normal">
            <li>
              <t>ead_label = TBD2</t>
            </li>
            <li>
              <t>ead_value = Result_proposal, which is a CBOR byte string:</t>
            </li>
          </ul>
          <artwork><![CDATA[
Result_proposal = bstr .cbor Proposed_VerifierIdentity
Proposed_VerifierIdentity = [ + VerifierIdentity ]

VerifierIdentity = {
  label => any
}

label = int / tstr
]]></artwork>
          <t>where</t>
          <ul spacing="normal">
            <li>
              <t>Proposed_VerifierIdentity is defined as a list of one or more VerifierIdentity elements.</t>
            </li>
            <li>
              <t>label corresponds to a COSE header parameter as defined in <xref target="IANA-COSE-Header-Parameters"/>, such as kid (4) or x5t (34). Profiles using this specification <bcp14>MUST</bcp14> specify which label values are acceptable.</t>
            </li>
          </ul>
        </section>
        <section anchor="result-request">
          <name>Result_request</name>
          <t>As a response to the attestation result proposal, the Relying Party signals to the Attester the trusted Verifier.
In case none of the Verifiers can be trusted by the Relying Party, the session is aborted.</t>
          <t>The EAD item Remote Attestation PP for an attestation result request is:</t>
          <ul spacing="normal">
            <li>
              <t>ead_label = TBD2</t>
            </li>
            <li>
              <t>ead_value = Result_request, which is a CBOR byte string:</t>
            </li>
          </ul>
          <artwork><![CDATA[
Result_request = bstr .cbor Request_structure

Request_structure = {
  selected_verifier: VerifierIdentity,
  ? nonce: bstr .size (8..64)
}
]]></artwork>
          <t>The nonce is optional and depends on whether the Relying Party requires an attestation result based on a real-time interaction with the Verifier.
If the Relying Party can accept and evaluate a cached attestation result with a timestamp, the nonce does not need to be included in the result request.
Otherwise, the Relying Party generates a random nonce and sends it to the Attester.
The Attester must forward the nonce together with the evidence to the Verifier, which must include the nonce in the Attestation Result that it produces and provides to the Attester.</t>
        </section>
        <section anchor="result">
          <name>Result</name>
          <t>The attestation result is generated and signed by the Verifier as a serialized EAT <xref target="RFC9711"/>, and <bcp14>MUST</bcp14> be protected using a COSE_Sign1 structure.
The Relying Party can decide what action to take with regard to the Attester based on the information elements in attestation result.</t>
          <t>The EAD item Remote Attestation PP is:</t>
          <ul spacing="normal">
            <li>
              <t>ead_label = TBD2</t>
            </li>
            <li>
              <t>ead_value is the serialization of a COSE_Sign1 structure protecting the EAT.</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="attestation-combinations">
      <name>Instantiation of Remote Attestation over EDHOC</name>
      <t>In this section we show four different instantiations of remote attestation carried over EDHOC between Attester and Relying Party.
In each instantiation, one of the EDHOC peers are assumed to be constrained and/or access over a constrained network, and only have one network interface, over which the EDHOC protocol is executed.
The four examples illustrate the constrained node being EDHOC Initiator/Responder and RATS Attester/Relying Party.</t>
      <t>We use the format (Target, Model) to denote the instantiation.
In particular:</t>
      <ul spacing="normal">
        <li>
          <t>I means that the EDHOC Initiator is the Attester.</t>
        </li>
        <li>
          <t>R means that the EDHOC Responder is the Attester.</t>
        </li>
        <li>
          <t>BG denotes the Background-Check Model.</t>
        </li>
        <li>
          <t>PP denotes the Passport Model.</t>
        </li>
      </ul>
      <t>For example, (I, BG) represents the Initiator as an Attester performing attestation using the Background-Check Model.
The four possible instantiations are therefore: (I, BG), (R, PP), (R, BG), and (I, PP).
In the remainder of this section we provide examples of these instantiations, starting with two instances of constrained Initiator followed by two instances of constrained Responder.</t>
      <section anchor="iot-attestation">
        <name>(I, BG): EDHOC Initiator Attestation in the Background-check Model</name>
        <t>In this instantiation, the constrained EDHOC Initiator acts as the RATS Attester and the EDHOC Responder acts as the RATS Relying Party.
An overview of EDHOC Initiator attestation in the Background-Check Model is illustrated in <xref target="fig-iot-bg-fwd"/>.
The Attester and the Relying Party communicate by transporting messages within EDHOC External Authorization Data (EAD) fields.
An external entity plays the role of the RATS Verifier (V).
The EAD items specific to the Background-Check Model are defined in <xref target="bg"/>.</t>
        <t>The Attester starts the attestation by sending an Attestation proposal in EDHOC message_1.
The Relying Party generates EAD_2 with the received evidence type(s) and nonce from the Verifier, and sends an Attestation request to the Attester.
The Attester generates the Evidence with the nonce embedded and generates the EAT signature with the attestation binder as an input, then sends the Evidence to the Relying Party in EAD_3.
The Relying Party computes the attestation binder and forwards the Evidence together with the attestation binder to the Verifier.
The Verifier evaluates the Evidence and sends the Attestation result to the Relying Party.</t>
        <t>A common use case for (I, BG) is to attest an IoT device (EDHOC Initiator) to a network server (EDHOC Responder).
For example, a simple illustrative example is the performance of remote attestation to verify that the latest version of firmware is running on the IoT device before the network server allows it to join the network (see <xref target="firmware"/>).</t>
        <figure anchor="fig-iot-bg-fwd">
          <name>Overview of EDHOC Initiator attestation in the Background-Check Model. EDHOC is used between A and RP.</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="720" width="768" viewBox="0 0 768 720" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 64,104 L 64,704" fill="none" stroke="black"/>
                <path d="M 232,96 L 232,704" fill="none" stroke="black"/>
                <path d="M 272,32 L 272,96" fill="none" stroke="black"/>
                <path d="M 400,32 L 400,96" fill="none" stroke="black"/>
                <path d="M 480,96 L 480,704" fill="none" stroke="black"/>
                <path d="M 560,32 L 560,96" fill="none" stroke="black"/>
                <path d="M 672,64 L 672,96" fill="none" stroke="black"/>
                <path d="M 720,96 L 720,704" fill="none" stroke="black"/>
                <path d="M 760,64 L 760,96" fill="none" stroke="black"/>
                <path d="M 8,32 L 272,32" fill="none" stroke="black"/>
                <path d="M 400,32 L 560,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 272,64" fill="none" stroke="black"/>
                <path d="M 400,64 L 560,64" fill="none" stroke="black"/>
                <path d="M 672,64 L 760,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 272,96" fill="none" stroke="black"/>
                <path d="M 400,96 L 560,96" fill="none" stroke="black"/>
                <path d="M 672,96 L 760,96" fill="none" stroke="black"/>
                <path d="M 232,160 L 472,160" fill="none" stroke="black"/>
                <path d="M 480,224 L 712,224" fill="none" stroke="black"/>
                <path d="M 488,272 L 720,272" fill="none" stroke="black"/>
                <path d="M 240,304 L 480,304" fill="none" stroke="black"/>
                <path d="M 72,400 L 232,400" fill="none" stroke="black"/>
                <path d="M 64,448 L 224,448" fill="none" stroke="black"/>
                <path d="M 232,480 L 472,480" fill="none" stroke="black"/>
                <path d="M 480,576 L 712,576" fill="none" stroke="black"/>
                <path d="M 488,608 L 720,608" fill="none" stroke="black"/>
                <path d="M 480,624 L 504,624" fill="none" stroke="black"/>
                <path d="M 488,656 L 504,656" fill="none" stroke="black"/>
                <path d="M 240,686 L 472,686" fill="none" stroke="black"/>
                <path d="M 240,690 L 472,690" fill="none" stroke="black"/>
                <path d="M 504,624 C 512.83064,624 520,631.16936 520,640" fill="none" stroke="black"/>
                <path d="M 504,656 C 512.83064,656 520,648.83064 520,640" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="720,576 708,570.4 708,581.6" fill="black" transform="rotate(0,712,576)"/>
                <polygon class="arrowhead" points="720,224 708,218.4 708,229.6" fill="black" transform="rotate(0,712,224)"/>
                <polygon class="arrowhead" points="496,656 484,650.4 484,661.6" fill="black" transform="rotate(180,488,656)"/>
                <polygon class="arrowhead" points="496,608 484,602.4 484,613.6" fill="black" transform="rotate(180,488,608)"/>
                <polygon class="arrowhead" points="496,272 484,266.4 484,277.6" fill="black" transform="rotate(180,488,272)"/>
                <polygon class="arrowhead" points="480,688 468,682.4 468,693.6" fill="black" transform="rotate(0,472,688)"/>
                <polygon class="arrowhead" points="480,480 468,474.4 468,485.6" fill="black" transform="rotate(0,472,480)"/>
                <polygon class="arrowhead" points="480,160 468,154.4 468,165.6" fill="black" transform="rotate(0,472,160)"/>
                <polygon class="arrowhead" points="248,688 236,682.4 236,693.6" fill="black" transform="rotate(180,240,688)"/>
                <polygon class="arrowhead" points="248,304 236,298.4 236,309.6" fill="black" transform="rotate(180,240,304)"/>
                <polygon class="arrowhead" points="232,448 220,442.4 220,453.6" fill="black" transform="rotate(0,224,448)"/>
                <polygon class="arrowhead" points="80,400 68,394.4 68,405.6" fill="black" transform="rotate(180,72,400)"/>
                <g class="text">
                  <text x="72" y="52">Constrained</text>
                  <text x="144" y="52">EDHOC</text>
                  <text x="208" y="52">Initiator</text>
                  <text x="440" y="52">EDHOC</text>
                  <text x="504" y="52">Responder</text>
                  <text x="64" y="84">Attestation</text>
                  <text x="144" y="84">Service</text>
                  <text x="184" y="84">|</text>
                  <text x="228" y="84">Attester</text>
                  <text x="456" y="84">Relying</text>
                  <text x="512" y="84">Party</text>
                  <text x="716" y="84">Verifier</text>
                  <text x="312" y="148">EDHOC</text>
                  <text x="376" y="148">message_1</text>
                  <text x="264" y="180">EAD_1</text>
                  <text x="296" y="180">=</text>
                  <text x="388" y="180">Attestation_proposal</text>
                  <text x="248" y="196">{</text>
                  <text x="308" y="196">types(a,b,c)</text>
                  <text x="368" y="196">}</text>
                  <text x="512" y="212">Body:</text>
                  <text x="544" y="212">{</text>
                  <text x="604" y="212">types(a,b,c)</text>
                  <text x="664" y="212">}</text>
                  <text x="516" y="260">Body:{</text>
                  <text x="592" y="260">types(a,b),</text>
                  <text x="664" y="260">nonce</text>
                  <text x="696" y="260">}</text>
                  <text x="312" y="292">EDHOC</text>
                  <text x="376" y="292">message_2</text>
                  <text x="264" y="324">EAD_2</text>
                  <text x="296" y="324">=</text>
                  <text x="384" y="324">Attestation_request</text>
                  <text x="248" y="340">{</text>
                  <text x="296" y="340">types(a),</text>
                  <text x="360" y="340">nonce</text>
                  <text x="392" y="340">}</text>
                  <text x="108" y="372">type(a),</text>
                  <text x="172" y="372">nonce,</text>
                  <text x="120" y="388">attestation</text>
                  <text x="196" y="388">binder</text>
                  <text x="108" y="436">Evidence</text>
                  <text x="168" y="436">(EAT)</text>
                  <text x="312" y="468">EDHOC</text>
                  <text x="376" y="468">message_3</text>
                  <text x="264" y="500">EAD_3</text>
                  <text x="296" y="500">=</text>
                  <text x="340" y="500">Evidence</text>
                  <text x="248" y="516">{</text>
                  <text x="272" y="516">EAT</text>
                  <text x="296" y="516">}</text>
                  <text x="516" y="548">Body:{</text>
                  <text x="564" y="548">EAT,</text>
                  <text x="592" y="564">attestation</text>
                  <text x="668" y="564">binder</text>
                  <text x="704" y="564">}</text>
                  <text x="516" y="596">Body:{</text>
                  <text x="592" y="596">att-result:</text>
                  <text x="660" y="596">AR{}</text>
                  <text x="688" y="596">}</text>
                  <text x="556" y="644">verify</text>
                  <text x="604" y="644">AR{}</text>
                  <text x="336" y="676">application</text>
                  <text x="404" y="676">data</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
+--------------------------------+               +-------------------+
|  Constrained EDHOC Initiator   |               |  EDHOC Responder  |
+--------------------------------+               +-------------------+             +----------+
| Attestation Service | Attester |               |   Relying Party   |             | Verifier |
+--+------------------------+----+               +---------+---------+             +-----+----+
       |                    |                              |                             |
       |                    |                              |                             |
       |                    |       EDHOC message_1        |                             |
       |                    +----------------------------->|                             |
       |                    | EAD_1 = Attestation_proposal |                             |
       |                    | { types(a,b,c) }             |                             |
       |                    |                              | Body: { types(a,b,c) }      |
       |                    |                              +---------------------------->|
       |                    |                              |                             |
       |                    |                              | Body:{ types(a,b), nonce }  |
       |                    |                              |<----------------------------+
       |                    |       EDHOC message_2        |                             |
       |                    |<-----------------------------+                             |
       |                    | EAD_2 = Attestation_request  |                             |
       |                    | { types(a), nonce }          |                             |
       |                    |                              |                             |
       | type(a), nonce,    |                              |                             |
       | attestation binder |                              |                             |
       |<-------------------+                              |                             |
       |                    |                              |                             |
       | Evidence (EAT)     |                              |                             |
       +------------------->|                              |                             |
       |                    |       EDHOC message_3        |                             |
       |                    +----------------------------->|                             |
       |                    | EAD_3 = Evidence             |                             |
       |                    | { EAT }                      |                             |
       |                    |                              |                             |
       |                    |                              | Body:{ EAT,                 |
       |                    |                              |        attestation binder } |
       |                    |                              +---------------------------->|
       |                    |                              | Body:{ att-result: AR{} }   |
       |                    |                              |<----------------------------+
       |                    |                              +---.                         |
       |                    |                              |    | verify AR{}            |
       |                    |                              |<--'                         |
       |                    |       application data       |                             |
       |                    |<============================>|                             |
       |                    |                              |                             |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="network-attestation">
        <name>(R, PP): EDHOC Responder Attestation in the Passport Model</name>
        <t>In this instantiation, the constrained EDHOC Initiator acts as the RATS Relying Party and the EDHOC Responder acts as the RATS Attester.
An overview of the message flow is illustrated in <xref target="fig-net-pp-fwd"/>.
The EAD items specific to the Passport Model are defined in <xref target="pp"/>.</t>
        <t>The Relying Party asks the Attester to do a remote attestation by sending a trigger_pp (see <xref target="trigger-pp"/>) in EDHOC message_1.
The Attester replies to the Relying Party with a Result proposal in EAD_2.
Then the Relying Party selects a trusted Verifier identity and sends it as a Result request.
How the Attester negotiates with the selected Verifier to get the attestation result is out of scope of this specification.
A fourth EDHOC message is required to send the Result from the Attester to the Relying Party.</t>
        <t>One use case for (R, PP) is when a network server (EDHOC Responder) needs to attest itself to a client (e.g., an IoT device (EDHOC Initiator)).
For example, the client needs to send some sensitive data to the network server, which requires the network server to be attested first.</t>
        <figure anchor="fig-net-pp-fwd">
          <name>Overview of EDHOC Responder attestation in the Passport Model. EDHOC is used between RP and A. The dashed line illustrates a logical connection that does not need to occur in real time.</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="480" width="680" viewBox="0 0 680 480" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 128,96 L 128,464" fill="none" stroke="black"/>
                <path d="M 248,32 L 248,96" fill="none" stroke="black"/>
                <path d="M 320,32 L 320,96" fill="none" stroke="black"/>
                <path d="M 392,96 L 392,464" fill="none" stroke="black"/>
                <path d="M 464,32 L 464,96" fill="none" stroke="black"/>
                <path d="M 552,64 L 552,96" fill="none" stroke="black"/>
                <path d="M 616,96 L 616,464" fill="none" stroke="black"/>
                <path d="M 672,64 L 672,96" fill="none" stroke="black"/>
                <path d="M 8,32 L 248,32" fill="none" stroke="black"/>
                <path d="M 320,32 L 464,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 248,64" fill="none" stroke="black"/>
                <path d="M 320,64 L 464,64" fill="none" stroke="black"/>
                <path d="M 552,64 L 672,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 248,96" fill="none" stroke="black"/>
                <path d="M 320,96 L 464,96" fill="none" stroke="black"/>
                <path d="M 552,96 L 672,96" fill="none" stroke="black"/>
                <path d="M 128,144 L 384,144" fill="none" stroke="black"/>
                <path d="M 136,208 L 392,208" fill="none" stroke="black"/>
                <path d="M 128,288 L 384,288" fill="none" stroke="black"/>
                <path d="M 392,352 L 416,352" fill="none" stroke="black"/>
                <path d="M 440,352 L 456,352" fill="none" stroke="black"/>
                <path d="M 480,352 L 496,352" fill="none" stroke="black"/>
                <path d="M 520,352 L 536,352" fill="none" stroke="black"/>
                <path d="M 560,352 L 576,352" fill="none" stroke="black"/>
                <path d="M 592,352 L 608,352" fill="none" stroke="black"/>
                <path d="M 400,384 L 424,384" fill="none" stroke="black"/>
                <path d="M 448,384 L 464,384" fill="none" stroke="black"/>
                <path d="M 488,384 L 504,384" fill="none" stroke="black"/>
                <path d="M 528,384 L 544,384" fill="none" stroke="black"/>
                <path d="M 560,384 L 576,384" fill="none" stroke="black"/>
                <path d="M 600,384 L 616,384" fill="none" stroke="black"/>
                <path d="M 136,416 L 392,416" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="616,352 604,346.4 604,357.6" fill="black" transform="rotate(0,608,352)"/>
                <polygon class="arrowhead" points="408,384 396,378.4 396,389.6" fill="black" transform="rotate(180,400,384)"/>
                <polygon class="arrowhead" points="392,288 380,282.4 380,293.6" fill="black" transform="rotate(0,384,288)"/>
                <polygon class="arrowhead" points="392,144 380,138.4 380,149.6" fill="black" transform="rotate(0,384,144)"/>
                <polygon class="arrowhead" points="144,416 132,410.4 132,421.6" fill="black" transform="rotate(180,136,416)"/>
                <polygon class="arrowhead" points="144,208 132,202.4 132,213.6" fill="black" transform="rotate(180,136,208)"/>
                <g class="text">
                  <text x="64" y="52">Constrained</text>
                  <text x="136" y="52">EDHOC</text>
                  <text x="200" y="52">Initiator</text>
                  <text x="352" y="52">EDHOC</text>
                  <text x="416" y="52">Responder</text>
                  <text x="104" y="84">Relying</text>
                  <text x="160" y="84">Party</text>
                  <text x="396" y="84">Attester</text>
                  <text x="596" y="84">Verifier</text>
                  <text x="648" y="84">(2)</text>
                  <text x="216" y="132">EDHOC</text>
                  <text x="280" y="132">message_1</text>
                  <text x="176" y="164">EAD_1</text>
                  <text x="208" y="164">=</text>
                  <text x="260" y="164">trigger_pp</text>
                  <text x="216" y="196">EDHOC</text>
                  <text x="280" y="196">message_2</text>
                  <text x="176" y="228">EAD_2</text>
                  <text x="208" y="228">=</text>
                  <text x="280" y="228">Result_proposal</text>
                  <text x="160" y="244">{</text>
                  <text x="232" y="244">Verifier(1,2,3)</text>
                  <text x="304" y="244">}</text>
                  <text x="216" y="276">EDHOC</text>
                  <text x="280" y="276">message_3</text>
                  <text x="176" y="308">EAD_3</text>
                  <text x="208" y="308">=</text>
                  <text x="276" y="308">Result_request</text>
                  <text x="160" y="324">{</text>
                  <text x="220" y="324">Verifier(2),</text>
                  <text x="296" y="324">nonce</text>
                  <text x="328" y="324">}</text>
                  <text x="468" y="340">Evidence</text>
                  <text x="512" y="340">+</text>
                  <text x="544" y="340">nonce</text>
                  <text x="500" y="372">Result</text>
                  <text x="216" y="404">EDHOC</text>
                  <text x="280" y="404">message_4</text>
                  <text x="176" y="436">EAD_4</text>
                  <text x="208" y="436">=</text>
                  <text x="244" y="436">Result</text>
                  <text x="160" y="452">{</text>
                  <text x="184" y="452">EAT</text>
                  <text x="208" y="452">}</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
+-----------------------------+        +-----------------+
| Constrained EDHOC Initiator |        | EDHOC Responder |
+-----------------------------+        +-----------------+          +--------------+
|        Relying Party        |        |     Attester    |          | Verifier (2) |
+--------------+--------------+        +--------+--------+          +-------+------+
               |                                |                           |
               |        EDHOC message_1         |                           |
               +------------------------------->|                           |
               |   EAD_1 = trigger_pp           |                           |
               |                                |                           |
               |        EDHOC message_2         |                           |
               |<-------------------------------+                           |
               |   EAD_2 = Result_proposal      |                           |
               |   { Verifier(1,2,3) }          |                           |
               |                                |                           |
               |        EDHOC message_3         |                           |
               +------------------------------->|                           |
               |   EAD_3 = Result_request       |                           |
               |   { Verifier(2), nonce }       |                           |
               |                                |     Evidence + nonce      |
               |                                +---  ---  ---  ---  --- -->|
               |                                |          Result           |
               |                                |<---  ---  ---  --- ---  --+
               |        EDHOC message_4         |                           |
               |<-------------------------------+                           |
               |   EAD_4 = Result               |                           |
               |   { EAT }                      |                           |
               |                                |                           |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="r_bg">
        <name>(R, BG): EDHOC Responder Attestation in the Background-check Model</name>
        <t>In this instantiation, the constrained EDHOC Responder acts as the RATS Attester and the EDHOC Initiator acts as the RATS Relying Party.
An overview of the message flow is illustrated in <xref target="fig-r-bg"/>.
The EAD items specific to the Background-Check Model are defined in <xref target="bg"/>.</t>
        <t>The Relying Party initiates the procedure by sending trigger_bg in EAD_1 of message_1.
The Attester responds with an Attestation proposal in EAD_2 of message_2, indicating the evidence types it can provide.
The Relying Party forwards this proposal to the Verifier, which selects its supported evidence types and provides a nonce.
The Relying Party then sends an Attestation request in EAD_3 of message_3, which contains the nonce generated from the Verifier.
Upon receipt of the Attestation request, the Attester generates the Evidence with the nonce embedded and generates the EAT signature with the attestation binder as an input.
Evidence is carried in EAD_4 of message_4.
The Relying Party forwards the Evidence to the Verifier together with the attestation binder and receives an Attestation result.</t>
        <t>Note that this is a post-handshake attestation since EDHOC completes the authenticated key exchange after message_3.
Therefore, the attestation binder in this instantiation is derived using EDHOC_Exporter (see <xref target="attestation-binder"/>).</t>
        <figure anchor="fig-r-bg">
          <name>Overview of EDHOC Responder attestation in the Background-Check Model. EDHOC is used between A and RP.</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="784" width="768" viewBox="0 0 768 784" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,96" fill="none" stroke="black"/>
                <path d="M 56,104 L 56,768" fill="none" stroke="black"/>
                <path d="M 96,64 L 96,96" fill="none" stroke="black"/>
                <path d="M 208,32 L 208,96" fill="none" stroke="black"/>
                <path d="M 288,96 L 288,768" fill="none" stroke="black"/>
                <path d="M 368,32 L 368,96" fill="none" stroke="black"/>
                <path d="M 496,32 L 496,96" fill="none" stroke="black"/>
                <path d="M 536,96 L 536,768" fill="none" stroke="black"/>
                <path d="M 696,96 L 696,768" fill="none" stroke="black"/>
                <path d="M 760,32 L 760,96" fill="none" stroke="black"/>
                <path d="M 208,32 L 368,32" fill="none" stroke="black"/>
                <path d="M 496,32 L 760,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 96,64" fill="none" stroke="black"/>
                <path d="M 208,64 L 368,64" fill="none" stroke="black"/>
                <path d="M 496,64 L 760,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 96,96" fill="none" stroke="black"/>
                <path d="M 208,96 L 368,96" fill="none" stroke="black"/>
                <path d="M 496,96 L 760,96" fill="none" stroke="black"/>
                <path d="M 288,144 L 528,144" fill="none" stroke="black"/>
                <path d="M 296,224 L 536,224" fill="none" stroke="black"/>
                <path d="M 64,288 L 288,288" fill="none" stroke="black"/>
                <path d="M 56,336 L 280,336" fill="none" stroke="black"/>
                <path d="M 288,368 L 528,368" fill="none" stroke="black"/>
                <path d="M 544,448 L 688,448" fill="none" stroke="black"/>
                <path d="M 544,496 L 696,496" fill="none" stroke="black"/>
                <path d="M 296,528 L 536,528" fill="none" stroke="black"/>
                <path d="M 64,608 L 288,608" fill="none" stroke="black"/>
                <path d="M 56,656 L 280,656" fill="none" stroke="black"/>
                <path d="M 288,672 L 312,672" fill="none" stroke="black"/>
                <path d="M 296,704 L 312,704" fill="none" stroke="black"/>
                <path d="M 296,750 L 528,750" fill="none" stroke="black"/>
                <path d="M 296,754 L 528,754" fill="none" stroke="black"/>
                <path d="M 312,672 C 320.83064,672 328,679.16936 328,688" fill="none" stroke="black"/>
                <path d="M 312,704 C 320.83064,704 328,696.83064 328,688" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="696,448 684,442.4 684,453.6" fill="black" transform="rotate(0,688,448)"/>
                <polygon class="arrowhead" points="552,496 540,490.4 540,501.6" fill="black" transform="rotate(180,544,496)"/>
                <polygon class="arrowhead" points="536,752 524,746.4 524,757.6" fill="black" transform="rotate(0,528,752)"/>
                <polygon class="arrowhead" points="536,368 524,362.4 524,373.6" fill="black" transform="rotate(0,528,368)"/>
                <polygon class="arrowhead" points="536,144 524,138.4 524,149.6" fill="black" transform="rotate(0,528,144)"/>
                <polygon class="arrowhead" points="304,752 292,746.4 292,757.6" fill="black" transform="rotate(180,296,752)"/>
                <polygon class="arrowhead" points="304,704 292,698.4 292,709.6" fill="black" transform="rotate(180,296,704)"/>
                <polygon class="arrowhead" points="304,528 292,522.4 292,533.6" fill="black" transform="rotate(180,296,528)"/>
                <polygon class="arrowhead" points="304,224 292,218.4 292,229.6" fill="black" transform="rotate(180,296,224)"/>
                <polygon class="arrowhead" points="288,656 276,650.4 276,661.6" fill="black" transform="rotate(0,280,656)"/>
                <polygon class="arrowhead" points="288,336 276,330.4 276,341.6" fill="black" transform="rotate(0,280,336)"/>
                <polygon class="arrowhead" points="72,608 60,602.4 60,613.6" fill="black" transform="rotate(180,64,608)"/>
                <polygon class="arrowhead" points="72,288 60,282.4 60,293.6" fill="black" transform="rotate(180,64,288)"/>
                <g class="text">
                  <text x="248" y="52">EDHOC</text>
                  <text x="312" y="52">Initiator</text>
                  <text x="560" y="52">Constrained</text>
                  <text x="632" y="52">EDHOC</text>
                  <text x="696" y="52">Responder</text>
                  <text x="52" y="84">Verifier</text>
                  <text x="264" y="84">Relying</text>
                  <text x="320" y="84">Party</text>
                  <text x="540" y="84">Attester</text>
                  <text x="584" y="84">|</text>
                  <text x="640" y="84">Attestation</text>
                  <text x="720" y="84">Service</text>
                  <text x="360" y="132">EDHOC</text>
                  <text x="424" y="132">message_1</text>
                  <text x="320" y="164">EAD_1</text>
                  <text x="352" y="164">=</text>
                  <text x="404" y="164">trigger_bg</text>
                  <text x="360" y="212">EDHOC</text>
                  <text x="424" y="212">message_2</text>
                  <text x="320" y="244">EAD_2</text>
                  <text x="352" y="244">=</text>
                  <text x="444" y="244">Attestation_proposal</text>
                  <text x="304" y="260">{</text>
                  <text x="364" y="260">types(a,b,c)</text>
                  <text x="424" y="260">}</text>
                  <text x="88" y="276">Body:</text>
                  <text x="120" y="276">{</text>
                  <text x="180" y="276">types(a,b,c)</text>
                  <text x="240" y="276">}</text>
                  <text x="88" y="324">Body:</text>
                  <text x="120" y="324">{</text>
                  <text x="176" y="324">types(a,b),</text>
                  <text x="248" y="324">nonce</text>
                  <text x="280" y="324">}</text>
                  <text x="360" y="356">EDHOC</text>
                  <text x="424" y="356">message_3</text>
                  <text x="320" y="388">EAD_3</text>
                  <text x="352" y="388">=</text>
                  <text x="440" y="388">Attestation_request</text>
                  <text x="304" y="404">{</text>
                  <text x="352" y="404">types(a),</text>
                  <text x="416" y="404">nonce</text>
                  <text x="448" y="404">}</text>
                  <text x="584" y="420">types(a),</text>
                  <text x="652" y="420">nonce,</text>
                  <text x="592" y="436">attestation</text>
                  <text x="668" y="436">binder</text>
                  <text x="580" y="484">Evidence</text>
                  <text x="640" y="484">(EAT)</text>
                  <text x="360" y="516">EDHOC</text>
                  <text x="424" y="516">message_4</text>
                  <text x="320" y="548">EAD_4</text>
                  <text x="352" y="548">=</text>
                  <text x="396" y="548">Evidence</text>
                  <text x="304" y="564">{</text>
                  <text x="328" y="564">EAT</text>
                  <text x="352" y="564">}</text>
                  <text x="88" y="580">Body:</text>
                  <text x="120" y="580">{</text>
                  <text x="148" y="580">EAT,</text>
                  <text x="168" y="596">attestation</text>
                  <text x="244" y="596">binder</text>
                  <text x="280" y="596">}</text>
                  <text x="88" y="644">Body:</text>
                  <text x="120" y="644">{</text>
                  <text x="176" y="644">att-result:</text>
                  <text x="244" y="644">AR{}</text>
                  <text x="272" y="644">}</text>
                  <text x="364" y="692">verify</text>
                  <text x="404" y="692">AR</text>
                  <text x="428" y="692">{}</text>
                  <text x="392" y="740">application</text>
                  <text x="460" y="740">data</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
                         +-------------------+               +--------------------------------+
                         |  EDHOC Initiator  |               |  Constrained EDHOC Responder   |
+----------+             +-------------------+               +--------------------------------+
| Verifier |             |   Relying Party   |               | Attester | Attestation Service |
+----------+             +---------+---------+               +----+-------------------+-------+
      |                            |                              |                   |
      |                            |      EDHOC message_1         |                   |
      |                            +----------------------------->|                   |
      |                            | EAD_1 = trigger_bg           |                   |
      |                            |                              |                   |
      |                            |                              |                   |
      |                            |      EDHOC message_2         |                   |
      |                            |<-----------------------------+                   |
      |                            | EAD_2 = Attestation_proposal |                   |
      |                            | { types(a,b,c) }             |                   |
      | Body: { types(a,b,c) }     |                              |                   |
      |<---------------------------+                              |                   |
      |                            |                              |                   |
      | Body: { types(a,b), nonce }|                              |                   |
      +--------------------------->|                              |                   |
      |                            |      EDHOC message_3         |                   |
      |                            +----------------------------->|                   |
      |                            | EAD_3 = Attestation_request  |                   |
      |                            | { types(a), nonce }          |                   |
      |                            |                              | types(a), nonce,  |
      |                            |                              | attestation binder|
      |                            |                              |------------------>+
      |                            |                              |                   |
      |                            |                              | Evidence (EAT)    |
      |                            |                              |<------------------+
      |                            |      EDHOC message_4         |                   |
      |                            |<-----------------------------+                   |
      |                            | EAD_4 = Evidence             |                   |
      |                            | { EAT }                      |                   |
      | Body: { EAT,               |                              |                   |
      |        attestation binder }|                              |                   |
      |<---------------------------+                              |                   |
      |                            |                              |                   |
      | Body: { att-result: AR{} } |                              |                   |
      +--------------------------->|                              |                   |
      |                            +---.                          |                   |
      |                            |    | verify AR {}            |                   |
      |                            |<--'                          |                   |
      |                            |                              |                   |
      |                            |       application data       |                   |
      |                            |<============================>|                   |
      |                            |                              |                   |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="i_pp">
        <name>(I, PP): EDHOC Initiator Attestation in the Passport Model</name>
        <t>In this instantiation, the EDHOC Initiator acts as the RATS Attester and the constrained EDHOC Responder acts as the RATS Relying Party.
An overview of the message flow is illustrated in <xref target="fig-i-pp"/>.
The EAD items specific to the Passport Model are defined in <xref target="pp"/>.</t>
        <t>The Attester initiates the procedure by sending a Result proposal in EAD_1 of message_1, indicating the Verifier identities it can communicate with.
The Relying Party selects a Verifier and sends a Result request in EAD_2 of message_2, together with a nonce.
The Attester interacts with the selected Verifier to obtain an Attestation Result.
How the Attester negotiates with the selected Verifier to get the attestation result is out of scope of this specification.
The Attester then returns the Result in EAD_3 of message_3, after which the Relying Party can decide whether to continue with EDHOC message_4 or application data exchange.</t>
        <figure anchor="fig-i-pp">
          <name>Overview of EDHOC Initiator attestation in the Passport Model. EDHOC is used between A and RP.</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="664" viewBox="0 0 664 400" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,96" fill="none" stroke="black"/>
                <path d="M 72,96 L 72,384" fill="none" stroke="black"/>
                <path d="M 128,64 L 128,96" fill="none" stroke="black"/>
                <path d="M 192,32 L 192,96" fill="none" stroke="black"/>
                <path d="M 264,96 L 264,384" fill="none" stroke="black"/>
                <path d="M 336,32 L 336,96" fill="none" stroke="black"/>
                <path d="M 416,32 L 416,96" fill="none" stroke="black"/>
                <path d="M 536,96 L 536,384" fill="none" stroke="black"/>
                <path d="M 656,32 L 656,96" fill="none" stroke="black"/>
                <path d="M 192,32 L 336,32" fill="none" stroke="black"/>
                <path d="M 416,32 L 656,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 128,64" fill="none" stroke="black"/>
                <path d="M 192,64 L 336,64" fill="none" stroke="black"/>
                <path d="M 416,64 L 656,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 128,96" fill="none" stroke="black"/>
                <path d="M 192,96 L 336,96" fill="none" stroke="black"/>
                <path d="M 416,96 L 656,96" fill="none" stroke="black"/>
                <path d="M 264,144 L 528,144" fill="none" stroke="black"/>
                <path d="M 272,224 L 536,224" fill="none" stroke="black"/>
                <path d="M 80,288 L 96,288" fill="none" stroke="black"/>
                <path d="M 112,288 L 128,288" fill="none" stroke="black"/>
                <path d="M 144,288 L 160,288" fill="none" stroke="black"/>
                <path d="M 176,288 L 192,288" fill="none" stroke="black"/>
                <path d="M 208,288 L 224,288" fill="none" stroke="black"/>
                <path d="M 240,288 L 264,288" fill="none" stroke="black"/>
                <path d="M 72,320 L 96,320" fill="none" stroke="black"/>
                <path d="M 112,320 L 128,320" fill="none" stroke="black"/>
                <path d="M 144,320 L 160,320" fill="none" stroke="black"/>
                <path d="M 176,320 L 192,320" fill="none" stroke="black"/>
                <path d="M 208,320 L 224,320" fill="none" stroke="black"/>
                <path d="M 240,320 L 256,320" fill="none" stroke="black"/>
                <path d="M 264,336 L 528,336" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="536,336 524,330.4 524,341.6" fill="black" transform="rotate(0,528,336)"/>
                <polygon class="arrowhead" points="536,144 524,138.4 524,149.6" fill="black" transform="rotate(0,528,144)"/>
                <polygon class="arrowhead" points="280,224 268,218.4 268,229.6" fill="black" transform="rotate(180,272,224)"/>
                <polygon class="arrowhead" points="264,320 252,314.4 252,325.6" fill="black" transform="rotate(0,256,320)"/>
                <polygon class="arrowhead" points="88,288 76,282.4 76,293.6" fill="black" transform="rotate(180,80,288)"/>
                <g class="text">
                  <text x="224" y="52">EDHOC</text>
                  <text x="288" y="52">Initiator</text>
                  <text x="472" y="52">Constrained</text>
                  <text x="544" y="52">EDHOC</text>
                  <text x="608" y="52">Responder</text>
                  <text x="52" y="84">Verifier</text>
                  <text x="104" y="84">(2)</text>
                  <text x="260" y="84">Attester</text>
                  <text x="504" y="84">Relying</text>
                  <text x="560" y="84">Party</text>
                  <text x="352" y="132">EDHOC</text>
                  <text x="416" y="132">message_1</text>
                  <text x="312" y="164">EAD_1</text>
                  <text x="344" y="164">=</text>
                  <text x="416" y="164">Result_proposal</text>
                  <text x="296" y="180">{</text>
                  <text x="368" y="180">Verifier(1,2,3)</text>
                  <text x="440" y="180">}</text>
                  <text x="352" y="212">EDHOC</text>
                  <text x="416" y="212">message_2</text>
                  <text x="312" y="244">EAD_2</text>
                  <text x="344" y="244">=</text>
                  <text x="412" y="244">Result_request</text>
                  <text x="296" y="260">{</text>
                  <text x="356" y="260">Verifier(2),</text>
                  <text x="432" y="260">nonce</text>
                  <text x="464" y="260">}</text>
                  <text x="132" y="276">Evidence</text>
                  <text x="176" y="276">+</text>
                  <text x="208" y="276">nonce</text>
                  <text x="164" y="308">Result</text>
                  <text x="352" y="324">EDHOC</text>
                  <text x="416" y="324">message_3</text>
                  <text x="312" y="356">EAD_3</text>
                  <text x="344" y="356">=</text>
                  <text x="380" y="356">Result</text>
                  <text x="296" y="372">{</text>
                  <text x="320" y="372">EAT</text>
                  <text x="344" y="372">}</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
                       +-----------------+         +-----------------------------+
                       | EDHOC Initiator |         | Constrained EDHOC Responder |
+--------------+       +-----------------+         +-----------------------------+
| Verifier (2) |       |    Attester     |         |       Relying Party         |
+-------+------+       +--------+--------+         +--------------+--------------+
        |                       |                                 |
        |                       |        EDHOC message_1          |
        |                       +-------------------------------->|
        |                       |   EAD_1 = Result_proposal       |
        |                       |   { Verifier(1,2,3) }           |
        |                       |                                 |
        |                       |        EDHOC message_2          |
        |                       |<--------------------------------+
        |                       |   EAD_2 = Result_request        |
        |                       |   { Verifier(2), nonce }        |
        |   Evidence + nonce    |                                 |
        |<-- --- --- --- --- ---+                                 |
        |        Result         |                                 |
        +--- --- --- --- --- -->|        EDHOC message_3          |
        |                       +-------------------------------->|
        |                       |   EAD_3 = Result                |
        |                       |   { EAT }                       |
        |                       |                                 |
]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
    <section anchor="mutual-attestation">
      <name>Mutual Attestation in EDHOC</name>
      <t>In this section we demonstrate mutual attestation over EDHOC combining the cases  (I, BG), see <xref target="iot-attestation"/>, and (R, PP), see <xref target="network-attestation"/>, which is potentially the most relevant mutual attestation example for constrained IoT environments.
This demonstrates combined mutual authentication with mutual attestation at a reduced message overhead and number of round trips.</t>
      <section anchor="i-bg-r-pp">
        <name>(I, BG) - (R, PP)</name>
        <t>In this example, the mutual attestation is performed in EDHOC forward message flow, by one IoT device attestation in the Background-Check Model and another network service attestation in the Passport Model.
The process is illustrated in <xref target="fig-mutual-attestation-BP"/>.
How the Network service connects with the Verifier_1 and potential Verifier_2 is out of scope in this specification.</t>
        <t>The first remote attestation is initiated by the IoT device (A_1) in Background-Check Model.
In parallel, the IoT device (A_1) requests the network service (A_2) to perform a remote attestation in the Passport Model.
EAD_2 carries the EAD items Attestation request and Result proposal.
EAD_3 carries the EAD items Evidence and Result request.
EAD_4 carries the EAD item Result for the Passport Model.</t>
        <figure anchor="fig-mutual-attestation-BP">
          <name>Overview of mutual attestation of (I, BG) - (R, PP). EDHOC is used between A and RP. The dashed line illustrates a logical connection that does not need to occur in real time.</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="608" width="952" viewBox="0 0 952 608" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 128,96 L 128,592" fill="none" stroke="black"/>
                <path d="M 248,32 L 248,96" fill="none" stroke="black"/>
                <path d="M 360,32 L 360,96" fill="none" stroke="black"/>
                <path d="M 432,96 L 432,592" fill="none" stroke="black"/>
                <path d="M 504,32 L 504,96" fill="none" stroke="black"/>
                <path d="M 616,64 L 616,96" fill="none" stroke="black"/>
                <path d="M 672,96 L 672,592" fill="none" stroke="black"/>
                <path d="M 720,64 L 720,96" fill="none" stroke="black"/>
                <path d="M 840,64 L 840,96" fill="none" stroke="black"/>
                <path d="M 896,96 L 896,592" fill="none" stroke="black"/>
                <path d="M 944,64 L 944,96" fill="none" stroke="black"/>
                <path d="M 8,32 L 248,32" fill="none" stroke="black"/>
                <path d="M 360,32 L 504,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 248,64" fill="none" stroke="black"/>
                <path d="M 360,64 L 504,64" fill="none" stroke="black"/>
                <path d="M 616,64 L 720,64" fill="none" stroke="black"/>
                <path d="M 840,64 L 944,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 248,96" fill="none" stroke="black"/>
                <path d="M 360,96 L 504,96" fill="none" stroke="black"/>
                <path d="M 616,96 L 720,96" fill="none" stroke="black"/>
                <path d="M 840,96 L 944,96" fill="none" stroke="black"/>
                <path d="M 128,160 L 424,160" fill="none" stroke="black"/>
                <path d="M 432,224 L 664,224" fill="none" stroke="black"/>
                <path d="M 440,240 L 672,240" fill="none" stroke="black"/>
                <path d="M 136,304 L 432,304" fill="none" stroke="black"/>
                <path d="M 128,384 L 424,384" fill="none" stroke="black"/>
                <path d="M 432,432 L 664,432" fill="none" stroke="black"/>
                <path d="M 432,448 L 456,448" fill="none" stroke="black"/>
                <path d="M 472,448 L 488,448" fill="none" stroke="black"/>
                <path d="M 504,448 L 520,448" fill="none" stroke="black"/>
                <path d="M 536,448 L 552,448" fill="none" stroke="black"/>
                <path d="M 568,448 L 584,448" fill="none" stroke="black"/>
                <path d="M 600,448 L 616,448" fill="none" stroke="black"/>
                <path d="M 640,448 L 672,448" fill="none" stroke="black"/>
                <path d="M 688,448 L 704,448" fill="none" stroke="black"/>
                <path d="M 728,448 L 744,448" fill="none" stroke="black"/>
                <path d="M 768,448 L 784,448" fill="none" stroke="black"/>
                <path d="M 800,448 L 816,448" fill="none" stroke="black"/>
                <path d="M 832,448 L 848,448" fill="none" stroke="black"/>
                <path d="M 864,448 L 888,448" fill="none" stroke="black"/>
                <path d="M 440,496 L 672,496" fill="none" stroke="black"/>
                <path d="M 440,528 L 464,528" fill="none" stroke="black"/>
                <path d="M 488,528 L 504,528" fill="none" stroke="black"/>
                <path d="M 528,528 L 544,528" fill="none" stroke="black"/>
                <path d="M 568,528 L 584,528" fill="none" stroke="black"/>
                <path d="M 608,528 L 624,528" fill="none" stroke="black"/>
                <path d="M 648,528 L 672,528" fill="none" stroke="black"/>
                <path d="M 688,528 L 704,528" fill="none" stroke="black"/>
                <path d="M 728,528 L 744,528" fill="none" stroke="black"/>
                <path d="M 768,528 L 784,528" fill="none" stroke="black"/>
                <path d="M 800,528 L 816,528" fill="none" stroke="black"/>
                <path d="M 840,528 L 856,528" fill="none" stroke="black"/>
                <path d="M 872,528 L 896,528" fill="none" stroke="black"/>
                <path d="M 136,576 L 432,576" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="896,448 884,442.4 884,453.6" fill="black" transform="rotate(0,888,448)"/>
                <polygon class="arrowhead" points="672,432 660,426.4 660,437.6" fill="black" transform="rotate(0,664,432)"/>
                <polygon class="arrowhead" points="672,224 660,218.4 660,229.6" fill="black" transform="rotate(0,664,224)"/>
                <polygon class="arrowhead" points="448,528 436,522.4 436,533.6" fill="black" transform="rotate(180,440,528)"/>
                <polygon class="arrowhead" points="448,496 436,490.4 436,501.6" fill="black" transform="rotate(180,440,496)"/>
                <polygon class="arrowhead" points="448,240 436,234.4 436,245.6" fill="black" transform="rotate(180,440,240)"/>
                <polygon class="arrowhead" points="432,384 420,378.4 420,389.6" fill="black" transform="rotate(0,424,384)"/>
                <polygon class="arrowhead" points="432,160 420,154.4 420,165.6" fill="black" transform="rotate(0,424,160)"/>
                <polygon class="arrowhead" points="144,576 132,570.4 132,581.6" fill="black" transform="rotate(180,136,576)"/>
                <polygon class="arrowhead" points="144,304 132,298.4 132,309.6" fill="black" transform="rotate(180,136,304)"/>
                <g class="text">
                  <text x="64" y="52">Constrained</text>
                  <text x="136" y="52">EDHOC</text>
                  <text x="200" y="52">Initiator</text>
                  <text x="392" y="52">EDHOC</text>
                  <text x="456" y="52">Responder</text>
                  <text x="116" y="84">A_1/RP_2</text>
                  <text x="428" y="84">RP_1/A_2</text>
                  <text x="668" y="84">Verifier_1</text>
                  <text x="892" y="84">Verifier_2</text>
                  <text x="168" y="132">EAD_1</text>
                  <text x="200" y="132">=</text>
                  <text x="256" y="132">Attestation</text>
                  <text x="344" y="132">proposal,</text>
                  <text x="252" y="148">trigger_PP</text>
                  <text x="504" y="212">Attestation</text>
                  <text x="588" y="212">proposal</text>
                  <text x="524" y="260">EvidenceType(s),</text>
                  <text x="620" y="260">NonceI</text>
                  <text x="168" y="276">EAD_2</text>
                  <text x="200" y="276">=</text>
                  <text x="256" y="276">Attestation</text>
                  <text x="340" y="276">request,</text>
                  <text x="236" y="292">Result</text>
                  <text x="300" y="292">proposal</text>
                  <text x="168" y="356">EAD_3</text>
                  <text x="200" y="356">=</text>
                  <text x="248" y="356">EvidenceI</text>
                  <text x="236" y="372">Result</text>
                  <text x="296" y="372">request</text>
                  <text x="364" y="372">(nonceR)</text>
                  <text x="476" y="420">EvidenceI,</text>
                  <text x="568" y="420">attestation</text>
                  <text x="644" y="420">binder</text>
                  <text x="744" y="436">EvidenceR</text>
                  <text x="792" y="436">+</text>
                  <text x="828" y="436">nonceR</text>
                  <text x="512" y="484">Attestation</text>
                  <text x="588" y="484">result</text>
                  <text x="740" y="548">Result</text>
                  <text x="804" y="548">(nonceR)</text>
                  <text x="168" y="564">EAD_4</text>
                  <text x="200" y="564">=</text>
                  <text x="236" y="564">Result</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
+-----------------------------+             +-----------------+
| Constrained EDHOC Initiator |             | EDHOC Responder |
+-----------------------------+             +-----------------+             +------------+              +------------+
|         A_1/RP_2            |             |    RP_1/A_2     |             | Verifier_1 |              | Verifier_2 |
+--------------+--------------+             +--------+--------+             +------+-----+              +------+-----+
               |                                     |                             |                           |
               |  EAD_1 = Attestation proposal,      |                             |                           |
               |          trigger_PP                 |                             |                           |
               +------------------------------------>|                             |                           |
               |                                     |                             |                           |
               |                                     |                             |                           |
               |                                     |   Attestation proposal      |                           |
               |                                     +---------------------------->|                           |
               |                                     |<----------------------------+                           |
               |                                     |   EvidenceType(s), NonceI   |                           |
               |  EAD_2 = Attestation request,       |                             |                           |
               |          Result proposal            |                             |                           |
               |<------------------------------------+                             |                           |
               |                                     |                             |                           |
               |                                     |                             |                           |
               |  EAD_3 = EvidenceI                  |                             |                           |
               |          Result request (nonceR)    |                             |                           |
               +------------------------------------>|                             |                           |
               |                                     |                             |                           |
               |                                     |EvidenceI, attestation binder|                           |
               |                                     +---------------------------->|    EvidenceR + nonceR     |
               |                                     +--- --- --- --- --- ---  ----+ ---  ---  --- --- --- --->|
               |                                     |                             |                           |
               |                                     |    Attestation result       |                           |
               |                                     |<----------------------------+                           |
               |                                     |                             |                           |
               |                                     |<---  ---  ---  ---  ---  ---+ ---  ---  --- ---  --- ---+
               |                                     |                             |     Result (nonceR)       |
               |  EAD_4 = Result                     |                             |                           |
               |<------------------------------------+                             |                           |
               |                                     |                             |                           |
]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
    <section anchor="verifier">
      <name>Verifier</name>
      <t>The Verifier maintains an explicit trust relationship with the Attester, whereby the Verifier is provisioned with the Attester's attestation public key prior to the remote attestation process.
This explicit relationship may be established through various means, such as manufacturer provisioning, trusted certification authorities, or direct configuration.
Reference values used for comparison against received evidence should also be provided to the Verifier before the attestation.
The evaluation policy employed by the Verifier varies according to specific use cases and should be determined prior to the attestation; such policy definition is out of scope in this specification.</t>
      <t>The Verifier maintains an implicit trust relationship with the Relying Party, established through mechanisms such as web PKI with trusted Certificate Authority (CA) certificates, enabling the Relying Party to trust the attestation result that is generated by the Verifier.</t>
      <section anchor="processing-in-the-background-check-model">
        <name>Processing in the Background-Check Model</name>
        <t>The Verifier is connected with the Relying Party and is responsible for evaluating evidence forwarded by the Relying Party.
After the Relying Party receives the EDHOC message carrying the Attestation_proposal (message_1 in (I, BG) or message_2 in (R, BG)) from the Attester, it extracts and transmits the Attestation proposal to the Verifier.
If the Verifier does not support any evidence type for evaluation, it returns an empty list.
Otherwise, alongside the selected evidence type, the Verifier generates a random nonce and sends both elements to the Relying Party.</t>
        <t>When the Relying Party receives the EDHOC message carrying the Evidence (message_3 in (I, BG) or message_4 in (R, BG)), it forwards the evidence and the attestation binder (see <xref target="attestation-binder"/>) to the Verifier for evaluation.</t>
        <t>The evidence evaluation process <bcp14>MUST</bcp14> include the signature verification, nonce validation, and comparison of measurement values against trusted reference values.
An example evaluation procedure for evidence formatted as an Entity Attestation Token (EAT) protected by a COSE_Sign1 structure is as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>Decode the COSE_Sign1 structure and extract constituent components: headers, payload, signature.</t>
          </li>
          <li>
            <t>Verify the signature using the Attester's attestation public key.
The Verifier reconstructs the Sig_Structure, with the attestation binder as the external_aad.</t>
          </li>
          <li>
            <t>Verify that the nonce exists in the Verifier's local nonce list. If the nonce is found, validation passes and the nonce is removed from the list to prevent replay attacks.</t>
          </li>
          <li>
            <t>Compare the received evidence measurement values against the reference value.
The attestation result is returned to the Relying Party, with result generation conforming to the attestation token format defined in <xref target="RFC9711"/>.</t>
          </li>
        </ol>
      </section>
      <section anchor="processing-in-the-passport-model">
        <name>Processing in the Passport Model</name>
        <t>When the Attester utilizes a cached attestation result previously generated by the Verifier, real-time re-evaluation by the Verifier is not required but the attestation result is supposed to be still fresh and valid.
If the Attester receives result_request from the Relying Party and performs real-time attestation with the Verifier, the Verifier then generates the attestation result formatted as an Entity Attestation Token (EAT).
The token uses the "Software Measurement Results (measres)" claim as defined in <xref target="RFC9711"/>, and incorporates the nonce generated by the Relying Party as an input parameter.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This specification builds on EDHOC <xref target="RFC9528"/> and uses EDHOC EAD fields.
The remote attestation operation defined in this document preserves the properties of EDHOC:</t>
      <ol spacing="normal" type="1"><li>
          <t>The EDHOC protocol is not modified, the remote attestation elements are carried within EDHOC EAD fields.</t>
        </li>
        <li>
          <t>The attestation protocol is performed in parallel but does not interfere with the authentication flow.</t>
        </li>
        <li>
          <t>The privacy and security properties of EDHOC are not changed.</t>
        </li>
      </ol>
      <t>The general security and privacy considerations about EAD fields apply to this specification.
The privacy protection provided to EAD depends on the selected EDHOC authentication method and the message in which the EAD is conveyed.</t>
      <t>EAD_1 is not resistant to either active attackers or passive attackers, because neither the Initiator nor the Responder has been authenticated.
Although EAD_2 is encrypted, the Initiator has not been authenticated, rendering EAD_2 vulnerable against active attackers.
When included in EAD_1 or EAD_2, the EAD items defined in this document could reveal sensitive information about the Attester, due to their very specific purpose and conveyed information.
The leaking of the data in EAD_1 and/or EAD_2 may be used by attackers for malicious purposes.</t>
      <t>For the four EDHOC authentication methods defined in <xref target="RFC9528"/>, EAD_3 and EAD_4 are protected against both passive and active attackers.
For the PSK-based authentication method defined in <xref target="I-D.ietf-lake-edhoc-psk"/>, EAD_3 is protected against passive attackers and EAD_4 provides protection against both passive and active attackers.</t>
      <t>Attestation evidence may contain Personally Identifiable Information (PII) or other sensitive or confidential information about the Attester.
Such information <bcp14>MUST</bcp14> only be conveyed in EAD fields that provide protection against both passive and active attackers.
Therefore, when using the authentication methods defined in <xref target="RFC9528"/>, attestation evidence containing such information <bcp14>MUST NOT</bcp14> be sent before message_3.
When using the PSK-based authentication method defined in <xref target="I-D.ietf-lake-edhoc-psk"/>, attestation evidence containing such information <bcp14>MUST NOT</bcp14> be sent before message_4.</t>
      <t>The risks discussed above are reduced where the Responder is the Attester.
For the mutual attestation at the EDHOC Responder, only the Attestation_proposal/Result_proposal in EAD_2 is not protected against active attackers.
Both the Attestation_request/Result_request in EAD_3 and the Evidence/Result in EAD_4 are protected.</t>
      <t>For privacy considerations of remote attestation, refer to <xref section="11" sectionFormat="of" target="RFC9334"/>.</t>
      <t>The combination of authenticated key exchange with remote attestation is an area in development in the IETF.
Two distinct approaches have emerged:
(1) intra-handshake attestation, where attestation is performed during the authenticated key exchange.
(2) post-handshake attestation, where attestation occurs after authentication is complete.
Here are some examples of differences between the two approaches:
Intra-handshake attestation enables early endpoint verification prior to the authentication session being established, which allows early abort and prevents sessions with unattested peers.
Post-handshake attestation enables the use of an exported authenticator available after authentication completion, which is a more clean interface between authentication and attestation.</t>
      <t>This specification allows both approaches. The EDHOC Exporter is available after message_3 has been constructed, after which post-handshake attestation is possible.
The attestation binder is intended to cryptographically bind the attestation to the authentication process and to ensure that the attester is the one which is participating in the EDHOC authentication, and, in particular, to prevent relay attacks whereby an attacker relays Evidence generated in a different session.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="edhoc-external-authorization-data-registry">
        <name>EDHOC External Authorization Data Registry</name>
        <t>IANA is requested to register the following entry in the "EDHOC External Authorization Data" registry under the group name "Ephemeral Diffie-Hellman Over COSE (EDHOC)".</t>
        <figure anchor="fig-ead-labels">
          <name>EAD labels.</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="176" width="696" viewBox="0 0 696 176" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,160" fill="none" stroke="black"/>
                <path d="M 264,32 L 264,160" fill="none" stroke="black"/>
                <path d="M 328,32 L 328,160" fill="none" stroke="black"/>
                <path d="M 528,32 L 528,160" fill="none" stroke="black"/>
                <path d="M 688,32 L 688,160" fill="none" stroke="black"/>
                <path d="M 8,32 L 688,32" fill="none" stroke="black"/>
                <path d="M 8,62 L 688,62" fill="none" stroke="black"/>
                <path d="M 8,66 L 688,66" fill="none" stroke="black"/>
                <path d="M 8,112 L 688,112" fill="none" stroke="black"/>
                <path d="M 8,160 L 688,160" fill="none" stroke="black"/>
                <g class="text">
                  <text x="36" y="52">Name</text>
                  <text x="296" y="52">Label</text>
                  <text x="384" y="52">Description</text>
                  <text x="576" y="52">Reference</text>
                  <text x="44" y="84">Remote</text>
                  <text x="120" y="84">Attestation</text>
                  <text x="180" y="84">BG</text>
                  <text x="292" y="84">TBD1</text>
                  <text x="380" y="84">Background</text>
                  <text x="448" y="84">Check</text>
                  <text x="496" y="84">Model</text>
                  <text x="564" y="84">[[This</text>
                  <text x="636" y="84">document]]</text>
                  <text x="368" y="100">related</text>
                  <text x="448" y="100">information</text>
                  <text x="44" y="132">Remote</text>
                  <text x="120" y="132">Attestation</text>
                  <text x="180" y="132">PP</text>
                  <text x="292" y="132">TBD2</text>
                  <text x="372" y="132">Passport</text>
                  <text x="432" y="132">Model</text>
                  <text x="564" y="132">[[This</text>
                  <text x="636" y="132">document]]</text>
                  <text x="368" y="148">related</text>
                  <text x="448" y="148">information</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+-------------------------------+-------+------------------------+-------------------+
| Name                          | Label | Description            | Reference         |
+===============================+=======+========================+===================+
| Remote Attestation BG         | TBD1  | Background Check Model | [[This document]] |
|                               |       | related information    |                   |
+-------------------------------+-------+------------------------+-------------------+
| Remote Attestation PP         | TBD2  | Passport Model         | [[This document]] |
|                               |       | related information    |                   |
+-------------------------------+-------+------------------------+-------------------+
]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9711">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
            <author fullname="G. Mandyam" initials="G." surname="Mandyam"/>
            <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>An Entity Attestation Token (EAT) provides an attested claims set that describes the state and characteristics of an entity, a device such as a smartphone, an Internet of Things (IoT) device, network equipment, or such. This claims set is used by a relying party, server, or service to determine the type and degree of trust placed in the entity.</t>
              <t>An EAT is either a CBOR Web Token (CWT) or a JSON Web Token (JWT) with attestation-oriented claims.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9711"/>
          <seriesInfo name="DOI" value="10.17487/RFC9711"/>
        </reference>
        <reference anchor="RFC9528">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios, and a main use case is to establish an Object Security for Constrained RESTful Environments (OSCORE) security context. By reusing CBOR Object Signing and Encryption (COSE) for cryptography, Concise Binary Object Representation (CBOR) for encoding, and Constrained Application Protocol (CoAP) for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9528"/>
          <seriesInfo name="DOI" value="10.17487/RFC9528"/>
        </reference>
        <reference anchor="RFC8742">
          <front>
            <title>Concise Binary Object Representation (CBOR) Sequences</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the Concise Binary Object Representation (CBOR) Sequence format and associated media type "application/cbor-seq". A CBOR Sequence consists of any number of encoded CBOR data items, simply concatenated in sequence.</t>
              <t>Structured syntax suffixes for media types allow other media types to build on them and make it explicit that they are built on an existing media type as their foundation. This specification defines and registers "+cbor-seq" as a structured syntax suffix for CBOR Sequences.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8742"/>
          <seriesInfo name="DOI" value="10.17487/RFC8742"/>
        </reference>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC5869">
          <front>
            <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <date month="May" year="2010"/>
            <abstract>
              <t>This document specifies a simple Hashed Message Authentication Code (HMAC)-based key derivation function (HKDF), which can be used as a building block in various protocols and applications. The key derivation function (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of cryptographic hash functions. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5869"/>
          <seriesInfo name="DOI" value="10.17487/RFC5869"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9393">
          <front>
            <title>Concise Software Identification Tags</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="J. Fitzgerald-McKay" initials="J." surname="Fitzgerald-McKay"/>
            <author fullname="C. Schmidt" initials="C." surname="Schmidt"/>
            <author fullname="D. Waltermire" initials="D." surname="Waltermire"/>
            <date month="June" year="2023"/>
            <abstract>
              <t>ISO/IEC 19770-2:2015 Software Identification (SWID) tags provide an extensible XML-based structure to identify and describe individual software components, patches, and installation bundles. SWID tag representations can be too large for devices with network and storage constraints. This document defines a concise representation of SWID tags: Concise SWID (CoSWID) tags. CoSWID supports a set of semantics and features that are similar to those for SWID tags, as well as new semantics that allow CoSWIDs to describe additional types of information, all in a more memory-efficient format.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9393"/>
          <seriesInfo name="DOI" value="10.17487/RFC9393"/>
        </reference>
        <reference anchor="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="RFC9668">
          <front>
            <title>Using Ephemeral Diffie-Hellman Over COSE (EDHOC) with the Constrained Application Protocol (CoAP) and Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="M. Tiloca" initials="M." surname="Tiloca"/>
            <author fullname="R. Höglund" initials="R." surname="Höglund"/>
            <author fullname="S. Hristozov" initials="S." surname="Hristozov"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <date month="November" year="2024"/>
            <abstract>
              <t>The lightweight authenticated key exchange protocol Ephemeral Diffie-Hellman Over COSE (EDHOC) can be run over the Constrained Application Protocol (CoAP) and used by two peers to establish a Security Context for the security protocol Object Security for Constrained RESTful Environments (OSCORE). This document details this use of the EDHOC protocol by specifying a number of additional and optional mechanisms, including an optimization approach for combining the execution of EDHOC with the first OSCORE transaction. This combination reduces the number of round trips required to set up an OSCORE Security Context and to complete an OSCORE transaction using that Security Context.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9668"/>
          <seriesInfo name="DOI" value="10.17487/RFC9668"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="I-D.ietf-iotops-7228bis">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Mehmet Ersue" initials="M." surname="Ersue">
         </author>
            <author fullname="Ari Keränen" initials="A." surname="Keränen">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Carles Gomez" initials="C." surname="Gomez">
              <organization>Universitat Politecnica de Catalunya</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   The Internet Protocol Suite is increasingly used on small devices
   with severe constraints on power, memory, and processing resources,
   creating constrained-node networks.  This document provides a number
   of basic terms that have been useful in research and standardization
   work for constrained-node networks.

   This document obsoletes RFC 7228.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-iotops-7228bis-10"/>
        </reference>
        <reference anchor="I-D.ietf-rats-corim">
          <front>
            <title>Concise Reference Integrity Manifest</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>NVIDIA</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>arm</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Independent</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="1" month="November" year="2026"/>
            <abstract>
              <t>   Remote Attestation Procedures (RATS) enable Relying Parties to assess
   the trustworthiness of a remote Attester and therefore to decide
   whether or not to engage in secure interactions with it.  Evidence
   about trustworthiness can be rather complex and it is deemed
   unrealistic that every Relying Party is capable of the appraisal of
   Evidence.  Therefore that burden is typically offloaded to a
   Verifier.  In order to conduct Evidence appraisal, a Verifier
   requires not only fresh Evidence from an Attester, but also trusted
   Endorsements and Reference Values from Endorsers and Reference Value
   Providers, such as manufacturers, distributors, or device owners.
   This document specifies the information elements for representing
   Endorsements and Reference Values in CBOR format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-corim-12"/>
        </reference>
        <reference anchor="I-D.ietf-lake-edhoc-psk">
          <front>
            <title>LAKE Authenticated with Pre-Shared Keys (PSKs)</title>
            <author fullname="Elsa Lopez-Perez" initials="" surname="Lopez-Perez">
              <organization>Inria</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Rafael Marin-Lopez" initials="R." surname="Marin-Lopez">
              <organization>University of Murcia</organization>
            </author>
            <author fullname="Francisco Lopez-Gomez" initials="F." surname="Lopez-Gomez">
              <organization>University of Murcia</organization>
            </author>
            <date day="5" month="October" year="2026"/>
            <abstract>
              <t>   This document specifies a Pre-Shared Key (PSK) authentication method
   for the Lightweight Authenticated Key Exchange (LAKE) protocol.  The
   PSK method provides mutual authentication, ephemeral key exchange,
   identity protection, and quantum resistance while incurring lower
   computational costs than the public-key authentication methods
   specified for LAKE.  It is suited for systems where nodes share a PSK
   provided out-of-band (external PSK) and enables efficient session
   resumption with less computational overhead when the PSK is provided
   from a previous LAKE session (resumption PSK).  This document details
   the PSK message flow, key derivation changes, message formatting,
   processing, and security considerations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-edhoc-psk-10"/>
        </reference>
        <reference anchor="IANA.CWT.Claims" target="https://www.iana.org/assignments/cwt">
          <front>
            <title>CBOR Web Token (CWT) Claims</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA-CoAP-Content-Formats" target="https://www.iana.org/assignments/core-parameters">
          <front>
            <title>CoAP Content-Formats</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.ietf-lake-authz">
          <front>
            <title>Lightweight Authorization using Ephemeral Diffie-Hellman Over COSE (ELA)</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Mališa Vučinić" initials="M." surname="Vučinić">
              <organization>INRIA</organization>
            </author>
            <author fullname="Geovane Fedrecheski" initials="G." surname="Fedrecheski">
              <organization>INRIA</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   Ephemeral Diffie-Hellman Over COSE (EDHOC) is a lightweight
   authenticated key exchange protocol intended for use in constrained
   scenarios.  This document specifies Lightweight Authorization using
   EDHOC (ELA).  The procedure allows authorizing enrollment of new
   devices using the extension point defined in EDHOC.  ELA is
   applicable to zero-touch onboarding of new devices to a constrained
   network leveraging trust anchors installed at manufacture time.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-authz-08"/>
        </reference>
        <reference anchor="IANA-COSE-Header-Parameters" target="https://www.iana.org/cose/header-parameters">
          <front>
            <title>COSE Header Parameters</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 857?>

<section anchor="firmware">
      <name>Example: Device Onboarding: Firmware Version Check</name>
      <t>The goal in this device onboarding example is to verify that the firmware running on the device is the latest version, and is neither tampered with nor compromised.
The objective of onboarding is both authentication and integrity verification.
If either one is compromised, the objective fails.
In particular, if the attestation private key is leaked, the device firmware can no longer be trusted, so the value of valid authentication is significantly reduced.</t>
      <t>In this example, a device acts as the Attester, currently in an untrusted state.
The Attester needs to generate the evidence to attest itself.
A gateway that can communicate with the Attester and can control its access to the network acts as the Relying Party.
The gateway will finally decide whether the device can join the network or not depending on the attestation result.
The attestation result is produced by the Verifier, which is a web server that can be seen as the manufacturer of the device.
Therefore it can appraise the evidence that is sent by the Attester.
The remote attestation session starts with the Attester sending EAD_1 in EDHOC message 1.</t>
      <t>An example of the EAD_1 in EDHOC message_1 could be:</t>
      <artwork><![CDATA[
[60,61,258]
]]></artwork>
      <t>If the Verifier and the Relying Party can support at least one evidence type that is proposed by the Attester, the Relying Party will include in the EAD_2 field the same evidence type, alongside a nonce for message freshness.</t>
      <artwork><![CDATA[
(258, h'a29f62a4c6cdaae5')
]]></artwork>
      <t>The Evidence in EAD_3 field is an Entity Attestation Token (EAT) <xref target="RFC9711"/>, with the measurements claim formatted in CoSWID <xref target="RFC9393"/>.
The Evidence is protected by a COSE_Sign1 structure, where the payload of COSE_Sign1 contains the following claims:</t>
      <artwork><![CDATA[
{
/eat-nonce/                 10: h'a29f62a4c6cdaae5',
/ueid/                      256: 'aaabbcc',
/measurements/              273: [
  /CoAP Content-Format ID/        [ 258,
  /evidence in CoSWID/              {
                                      0: 'tagID'             /tag-id/
                                      12: 0                  /tag-version/
                                      1: "DotBot firmware"   /software-name/
                                      2: {                   /entity/
                                          31: "Attester"     /entity-name/
                                          33: 1              /role, must be "tag-creator" which is 1/
                                          },
                                      3: {                   /evidence/
                                          17: [              /file/
                                               {
                                                24: "partition0-nrf52840dk.bin",   /fs-name/
                                                7: [                               /hash of file/
                                                    1,                             /alg SHA-256/
                                                    h'06294f6806b9c685eea795048579cfd02a0c025bc8b5abca42a19ea0ec23e81a'
                                                    ]                              /hash value/
                                                }
                                               ]
                                          }
                                    }
                                  ]
                                 ]
}
]]></artwork>
      <t>The Sig_structure to compute the signature of COSE_Sign1 is:</t>
      <artwork><![CDATA[
Sig_structure = [
    "Signature1",
    h'a10127',      /ED25519 algorithm, same as the protected header in COSE_Sign1/
    h'7b4c94f32a0e6db86d915a444f76525fc32912b2e07dd481a96f627ee98a110c',      /attestation_binder_m3/
    h'A30A48A29F62A4C6CDAAE519010047616161626263631901118182190102A50045746
    16749440C00016F446F74426F74206669726D7761726502A2181F684174746573746572
    18210103A11181A218187819706172746974696F6E302D6E72663532383430646B2E626
    96E078201582006294F6806B9C685EEA795048579CFD02A0C025BC8B5ABCA42A19EA0EC
    23E81A',                                                                   /same as the payload in COSE_Sign1/
]
]]></artwork>
      <t>The complete resulting COSE object is:</t>
      <artwork><![CDATA[
18([
    /*protected header*/
    h'a10127',

    /*unprotected header*/
    {},

    /*payload*/
    h'A30A48A29F62A4C6CDAAE519010047616161626263631901118182190102A50045746
    16749440C00016F446F74426F74206669726D7761726502A2181F684174746573746572
    18210103A11181A218187819706172746974696F6E302D6E72663532383430646B2E626
    96E078201582006294F6806B9C685EEA795048579CFD02A0C025BC8B5ABCA42A19EA0EC
    23E81A',

    /*signature*/
    h'd4100901f4c3e51312c3110c6ddc8dcf7f68d8f5d3791c19133f2f0ac158c1f5ee6ed
    afe9d7c3d6eb3d2d197f82e733d375fdda9fb258b304961dfc38558950d'
])
]]></artwork>
      <t>which has the following base16 encoding:</t>
      <artwork><![CDATA[
D28443A10127A05890A30A48A29F62A4C6CDAAE51901004761616162626363190111818
2190102A5004574616749440C00016F446F74426F74206669726D7761726502A2181F68
417474657374657218210103A11181A218187819706172746974696F6E302D6E7266353
2383430646B2E62696E078201582006294F6806B9C685EEA795048579CFD02A0C025BC8
B5ABCA42A19EA0EC23E81A5840D4100901F4C3E51312C3110C6DDC8DCF7F68D8F5D3791
C19133F2F0AC158C1F5EE6EDAFE9D7C3D6EB3D2D197F82E733D375FDDA9FB258B304961
DFC38558950D
]]></artwork>
      <t>The Relying Party (co-located with the gateway) then treats the Evidence as opaque and sends it together with the attestation_binder_m3 to the Verifier.
Once the Verifier sends back the Attestation Result, the Relying Party can be assured of the version of the firmware that the device is running.</t>
    </section>
    <section anchor="re-attestation">
      <name>Re-attestation</name>
      <t>The trust relationship established during the initial EDHOC exchange may become outdated over time due to changes in Attester state.
To maintain a valid trust relationship, a peer may require updated assurance periodically.
This section presents two re-attestation approaches: re-attestation during EDHOC resumption and re-attestation using OSCORE.</t>
      <section anchor="intra-handshake-re-attestation-using-edhoc-resumption-with-psk">
        <name>Intra-handshake Re-attestation using EDHOC Resumption with PSK</name>
        <t>Remote attestation can be applied during EDHOC session resumption using EDHOC-PSK, as defined in <xref section="6" sectionFormat="of" target="I-D.ietf-lake-edhoc-psk"/>.
This enables re-attestation without public key based authentication.</t>
      </section>
      <section anchor="post-handshake-re-attestation-using-oscore">
        <name>Post-handshake Re-attestation using OSCORE</name>
        <t>Post-handshake attestation can be performed after an EDHOC session using Object Security for Constrained RESTful Environments (OSCORE) <xref target="RFC8613"/>.
In such a case, EDHOC is specifically used to establish an OSCORE Security Context (see Appendix A.1 of <xref target="RFC9668"/>).
OSCORE provides application-layer protection for RESTful message exchanges, for example the Constrained Application Protocol (CoAP), which can be used to carry attestation information.</t>
        <t>Post-handshake attestation decouples the attestation process from the initial handshake, enabling re-attestation throughout the session lifetime and guaranteeing the runtime integrity.</t>
        <section anchor="flight-1">
          <name>Flight 1</name>
          <t>The CoAP client (Attester) initiates attestation with a CoAP request where:</t>
          <ul spacing="normal">
            <li>
              <t>The request method is POST.</t>
            </li>
            <li>
              <t>The Uri-path is "./well-known/attest".</t>
            </li>
            <li>
              <t>The payload is the Attestation_proposal CBOR sequence, where Attestation_proposal is constructed as defined in <xref target="attestation-proposal"/>.</t>
            </li>
          </ul>
        </section>
        <section anchor="flight-2">
          <name>Flight 2</name>
          <t>The CoAP server (Relying Party) receives the request, processes it as described in <xref target="bg"/>, and then prepares Attestation_request as defined in <xref target="attestation-request"/>.
The CoAP server replies with a CoAP response where:</t>
          <ul spacing="normal">
            <li>
              <t>The response code is 2.04 Changed.</t>
            </li>
            <li>
              <t>The payload is the Attestation_request CBOR sequence, as defined in <xref target="attestation-request"/>.</t>
            </li>
          </ul>
        </section>
        <section anchor="flight-3">
          <name>Flight 3</name>
          <t>The CoAP client (Attester) receives the response, processes it as described in <xref target="bg"/>, and then generates the evidence.
The CoAP client sends a CoAP request where:</t>
          <ul spacing="normal">
            <li>
              <t>The request method is POST.</t>
            </li>
            <li>
              <t>The Uri-path is "./well-known/attest".</t>
            </li>
            <li>
              <t>The payload is the Evidence CBOR sequence, as defined in <xref target="evidence"/>.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="differences-between-intra-handshake-and-post-handshake-attestation">
        <name>Differences between Intra-handshake and Post-handshake Attestation</name>
        <t>Intra-handshake attestation embeds evidence exchange into the authentication handshake, cryptographically tying identity to device state and blocking unauthenticated and untrusted devices from completing the handshake.
Post-handshake attestation separates attestation from the authentication handshake, providing modularity that allows attestation mechanisms to be integrated independently of the handshake protocol.
This section compares the two different types of remote attestation methods in terms of performance and security properties.</t>
        <section anchor="performance-properties">
          <name>Performance properties</name>
          <t>Intra-handshake attestation provides round-trip efficiency as attestation occurs within the handshake, requiring no additional round trips.
The intra-handshake attestation defined in this document does not modify the EDHOC protocol itself, though other intra-handshake designs may require changes.
Post-handshake has higher modularity which allows the attestation process to be integrated independently, but it requires additional round trips.</t>
        </section>
        <section anchor="security-properties">
          <name>Security properties</name>
          <t>Remote attestation provides security properties including evidence integrity, freshness guarantees, and replay protection.
Besides, intra-handshake attestation is cryptographically bound to the authentication process, and trust is established before the session begins.
Post-handshake attestation guarantees the runtime integrity which can obtain dynamic measurements during device execution, and can be repeatedly performed throughout the session which has the continuous assurance.</t>
        </section>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank Thomas Fossati, Malisa Vucinic, Ionut Mihalcea, Muhammad Usama Sardar, Michael Richardson, Geovane Fedrecheski, John Mattsson and Marco Tiloca for the provided ideas and feedback.</t>
      <t>Work on this document has in part been supported by the Horizon Europe Framework Programme project OpenSwarm (grant agreement No. 101093046).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
RxFsvP756nqjxX8HP72hf1+e/q+fzy9PT/DfV6+GP/6o//FElrh69ebnH0+q
f1VfHr95/fr0pxP+GJ4G1qMnG6+Hf91gjbTx5uL6/M1Pwx83WMGZg40Mg0EZ
Se0AngEyLiyewIIY5cmItc/L44v//N/dASjRf4KloNftHn76JH856O5j5ACc
E6n/shRdEPoV+H7/BARchGRxwloDlsw8KUOMr4EYFhOceejWdJ48+fZX5Mxv
R8GfR9G8O/hOPsAOWw8Vz6yHxLP6k9rHzETPI08zmpvWc4fTNr3Dv1q/K74b
D//8z1O029rdg3/+7omKw+Yc9cYAX1HAuMRySMbhLJkmwDxtQKPdp6N8kZiD
yBtee83uaq0RRTp++eaSH+JeCS3xKNoYjr5NxB3+5thJSMgI9PQ4oWkCy3ky
Aw2s1ktcxjEYL2NtGGKBv2kRL/NkzpZAQ+jZXFVgzldmHNYVVgYcz35YS8BR
dz7HncucbFyQQ2WayXVHrbgsqWEc01wNp2aYFEYAjK5IKB9FhgMrXVS3XJqs
Ip5BRTBBRbV0b4FMn7obicamGQStjSa0/BpDpbD6w5ISYnyqhWsB94dXHU9z
JE/S3DafSz8DbAEUJ1SjYB5OubjN5hY2iQIhKRNj6HcCS8C9Dk0qM9Mcasve
rW3IKMsXFcU4W+TBj8MfTt3xVZs1htxbEg965U5ABXKZu7j6oc1xGG89djUN
G3E0KTwReW23SVOC158ozHM032RwgNj8TbHaepcWunYEjF5VrIF1Dv3RGQ66
aWoHIgRDT3tXHaVaqkAMLqFRiWwRCVkZlbhV0ywzH+vZhtsBc8FLuhXNotGn
ZVOF/TyRCrDWt1S4wjLjLIWyPCIYw7SVkubaDueO3Q8W/xrNrRmLWtbwhw9G
Je04meGGA6z8Zhwd3Fi0nJB5ZFrpQg9yh45wNIOg2wmu5TYoGxpq7rH3SRGR
pKjCCJue0XVGdksFuaNsMY0pnG5tzMldF/gwzXCMg6DXYeY6NJiEy2BmShsr
9lZmbTUC4cDaLy74K9OtI0VSuW2uthjDPwqOZRibN2QALpJS7jWafTkHX0Ok
t0me8V62aqth1x4IoGhIEE1CjJMLPWU5alRtXmax3HlT25gdHq9fKBqKHrw0
vnmbFLfhaW4jcgA1Vl3vK0UsBQSVVxSBGUnczjg6koEcjqZV0GsM6wT0CREb
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

-->

</rfc>
