<?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.35 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lake-ra-05" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="RA-EDHOC">Remote attestation over EDHOC</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lake-ra-05"/>
    <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="April" day="27"/>
    <area>Security</area>
    <workgroup>Lightweight Authenticated Key Exchange</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 60?>

<t>This document specifies how to perform remote attestation as part of the lightweight authenticated Diffie-Hellman 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 64?>

<section anchor="introduction">
      <name>Introduction</name>
      <!--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 IETF working group Remote ATtestation procedureS (RATS) has defined an architecture <xref target="RFC9334"/> for remote attestation.
The three main roles in the RATS architecture are 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.
Then, the Verifier produces the attestation result, which is consequently 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.
It resembles the procedure of how employers perform background checks to determine the prospective employee's trustworthiness, by contacting the respective organization that issues a report.
In this case, the employer acts as the Relying Party, the employee acts as the Attester and the organization acts as the Verifier.
The Attester conveys evidence directly 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 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 specifies the protocol between the Attester and the Relying Party.
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 the scope.
The establishment of the secure association may be provided by EDHOC, TLS, and the communication may be secured through protocols such as OSCORE, TLS or other security protocols that support secure message exchange with the Verifier.</t>
      <!--Discuss EAT-->
<t>One way of conveying attestation evidence or the attestation result is the 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>Ephemeral Diffie-Hellman over COSE (EDHOC) <xref target="RFC9528"/> is a lightweight authenticated key exchange protocol for highly constrained networks.
In EDHOC, the two parties involved in the key exchange are referred to as the Initiator (I) and the Responder (R).
EDHOC supports the transport of external authorization data, through the dedicated EAD fields.
This specification delivers EAT through EDHOC.
Specifically, EAT is transported as an EAD item.
This specification also defines new EAD items needed to perform remote attestation over EDHOC in <xref target="bg"/> and <xref target="pp"/>.</t>
      <!--Discuss implementation aspects such as the internal attestation service running on the Attester.
Root of trust. Separation between secure and non-secure worlds.-->
<t>For the generation of evidence, the Attester incorporates 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.
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 the 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>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 model, the Attester exchanges evidence with the Relying Party during the EDHOC session.
In the passport model, the Attester exchanges the attestation result with 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 (see <xref target="iot"/>, <xref target="net"/>) defining the entity that undergoes the attestation process (EDHOC Initiator or EDHOC Responder), which could be a constrained device or not.</t>
        </li>
        <li>
          <t>Model (see <xref target="bg"/>, <xref target="pp"/>) defining the attestation model in use based on the RATS architecture (background-check model or passport model).</t>
        </li>
      </ol>
      <t>This document specifies the cases that are suited for constrained IoT environments.
See this document <xref target="I-D.ietf-iotops-7228bis"/> as a reference for classification of IoT devices.</t>
      <t>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>
    </section>
    <section anchor="assumptions">
      <name>Assumptions</name>
      <t>In the background-check 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, so it can narrow down the evidence type selection and send to the Attester only one format of the evidence type.</t>
      <t>In the passport 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 passport 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 background-check model, and four new EAD items in passport 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>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>Remote Attestation in EDHOC</name>
      <t>This section specifies two independent dimensions that characterize the remote attestation process over EDHOC.</t>
      <ol spacing="normal" type="1"><li>
          <t>Target: Defines the entity that undergoes the attestation process.</t>
        </li>
        <li>
          <t>Model: Defines the attestation models based on RATS architecture.
This specification supports both the RATS background-check model (see <xref target="bg"/>) and the passport model (see <xref target="pp"/>).
The corresponding EAD items for background-check model and the passport model are independent of each other.</t>
        </li>
      </ol>
      <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 anchor="iot">
        <name>Target: Initiator Attestation (I)</name>
        <t>The Initiator acts as the Attester.</t>
      </section>
      <section anchor="net">
        <name>Target: Responder Attestation (R)</name>
        <t>The Responder acts as the Attester.</t>
      </section>
      <section anchor="bg">
        <name>Model: Background-check Model (BG)</name>
        <t>In the background-check 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, namely Attestation_proposal, Attestation_request, or Evidence, depending on the EDHOC message where the EAD item is included.
Specifically, if the EAD item Trigger Remote Attestation BG (see <xref target="trigger-bg"/>) is not included in EDHOC message_1, these three values are carried in EDHOC message_1, message_2, and message_3, respectively (see <xref target="iot-attestation"/>).
In contrast, if Trigger Remote Attestation BG is included in EDHOC message_1, the exchange is shifted by one message: Attestation_proposal is carried in message_2, Attestation_request in message_3, and Evidence in message_4 (see <xref target="r_bg"/>).</t>
        <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 an 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  ;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.
By doing so, the attestation binder cryptographically binds the attestation to the authentication and ensures that the attester is the authenticated peer.
The attestation binder prevents relay attacks whereby an attacker relays Evidence generated in a different session.</t>
            <t>The Relying Party has to provide the Verifier with the Evidence together with the attestation binder.
Otherwise, the Verifier would lack the information for verifying the signed EAT.</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>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 anchor="trigger-bg">
          <name>Trigger Remote Attestation BG</name>
          <t>The EAD item Trigger Remote Attestation BG is used when the Relying Party triggers the Attester to start a remote attestation in the background-check model.
This EAD item can only be carried in EDHOC message_1.
The Attester <bcp14>MUST</bcp14> reply with an EAD item Remote Attestation BG, with the ead_value Attestation_proposal in <xref target="attestation-proposal"/>.
The ead_value <bcp14>MUST</bcp14> not be present, as the ead_label serves as the trigger.</t>
          <t>The EAD item Trigger Remote Attestation BG is:</t>
          <ul spacing="normal">
            <li>
              <t>ead_label = TBD3</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="pp">
        <name>Model: 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.
The attestation result may carry a boolean value indicating compliance or non-compliance with a Verifier's appraisal policy, or may carry a set of claims to indicate the results in different aspects (<xref section="8.4" sectionFormat="of" target="RFC9334"/>).</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, namely Result_proposal, Result_request, or Result, depending on the EDHOC message where the EAD item is included.
Specifically, if the EAD item Trigger Remote Attestation PP (see <xref target="trigger-pp"/>) is not included in EDHOC message_1, these three values are carried in EDHOC message_1, message_2, and message_3, respectively (see <xref target="i_pp"/>).
In contrast, if Trigger Remote Attestation PP is included in EDHOC message_1, the exchange is shifted by one message: Result_proposal is carried in message_2, Result_request in message_3, and Result in message_4 (see <xref target="network-attestation"/>).</t>
        <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>
          </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 an EAT.</t>
            </li>
          </ul>
        </section>
        <section anchor="trigger-pp">
          <name>Trigger Remote Attestation PP</name>
          <t>The EAD item Trigger Remote Attestation PP is used when the Relying Party triggers the Attester to start a remote attestation in the passport model.
This EAD item can only be carried in the EDHOC message_1.
The Attester <bcp14>MUST</bcp14> reply with an EAD item Remote Attestation PP, with the ead_value Result_proposal in <xref target="result-proposal"/>.
The ead_value <bcp14>MUST</bcp14> not be present, as the ead_label serves as the trigger.</t>
          <t>The EAD item Trigger Remote Attestation PP is:</t>
          <ul spacing="normal">
            <li>
              <t>ead_label = TBD4</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="attestation-combinations">
      <name>Instantiation of Remote Attestation Protocol</name>
      <t>We use the format (Target, Model) to denote instantiations.
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 signs the EAT with the attestation binder as an input, then sends the Evidence to the Relying Party in EAD_3.
The Relying Party verifies the attestation binder and then sends 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 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 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 signs the EAT 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 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 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 background-check model and another network service attestation in 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 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 EDHOC message_1 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 EDHOC message_3, 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 general security and privacy considerations about EAD fields apply to this specification too.</t>
      <t>EAD_1 is not resistant to either active attackers or passive attackers, because neither the Initiator nor the Responder has been authenticated.</t>
      <t>Although EAD_2 is encrypted, the Initiator has not been authenticated, rendering EAD_2 vulnerable against active attackers.</t>
      <t>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 <bcp14>MAY</bcp14> risk to be used by attackers for malicious purposes.
Data in EAD_3 and EAD_4 are protected between the Initiator and the Responder in EDHOC.</t>
      <t>The risks discussed above are lower in the case of mutual attestation 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>The privacy considerations of remote attestation refer to <xref section="11" sectionFormat="of" target="RFC9334"/>.</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="272" width="776" viewBox="0 0 776 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,256" fill="none" stroke="black"/>
                <path d="M 264,32 L 264,256" fill="none" stroke="black"/>
                <path d="M 328,32 L 328,256" fill="none" stroke="black"/>
                <path d="M 528,32 L 528,256" fill="none" stroke="black"/>
                <path d="M 768,32 L 768,256" fill="none" stroke="black"/>
                <path d="M 8,32 L 768,32" fill="none" stroke="black"/>
                <path d="M 8,62 L 768,62" fill="none" stroke="black"/>
                <path d="M 8,66 L 768,66" fill="none" stroke="black"/>
                <path d="M 8,112 L 768,112" fill="none" stroke="black"/>
                <path d="M 8,160 L 768,160" fill="none" stroke="black"/>
                <path d="M 8,208 L 768,208" fill="none" stroke="black"/>
                <path d="M 8,256 L 768,256" 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="348" y="84">BG</text>
                  <text x="384" y="84">model</text>
                  <text x="368" y="100">related</text>
                  <text x="448" y="100">information</text>
                  <text x="568" y="100">Section</text>
                  <text x="628" y="100">5.3.1,</text>
                  <text x="684" y="100">5.3.2,</text>
                  <text x="736" y="100">5.3.3</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="348" y="132">PP</text>
                  <text x="384" y="132">model</text>
                  <text x="368" y="148">related</text>
                  <text x="448" y="148">information</text>
                  <text x="568" y="148">Section</text>
                  <text x="628" y="148">5.4.1,</text>
                  <text x="684" y="148">5.4.2,</text>
                  <text x="736" y="148">5.4.3</text>
                  <text x="48" y="180">Trigger</text>
                  <text x="108" y="180">Remote</text>
                  <text x="184" y="180">Attestation</text>
                  <text x="244" y="180">BG</text>
                  <text x="292" y="180">TBD3</text>
                  <text x="368" y="180">trigger</text>
                  <text x="412" y="180">to</text>
                  <text x="448" y="180">start</text>
                  <text x="384" y="196">attestation</text>
                  <text x="444" y="196">in</text>
                  <text x="468" y="196">BG</text>
                  <text x="568" y="196">Section</text>
                  <text x="624" y="196">5.3.4</text>
                  <text x="48" y="228">Trigger</text>
                  <text x="108" y="228">Remote</text>
                  <text x="184" y="228">Attestation</text>
                  <text x="244" y="228">PP</text>
                  <text x="292" y="228">TBD4</text>
                  <text x="368" y="228">trigger</text>
                  <text x="412" y="228">to</text>
                  <text x="448" y="228">start</text>
                  <text x="384" y="244">attestation</text>
                  <text x="444" y="244">in</text>
                  <text x="468" y="244">PP</text>
                  <text x="568" y="244">Section</text>
                  <text x="624" y="244">5.4.4</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+-------------------------------+-------+------------------------+-----------------------------+
| Name                          | Label | Description            | Reference                   |
+===============================+=======+========================+=============================+
| Remote Attestation BG         | TBD1  | BG model               |                             |
|                               |       | related information    | Section 5.3.1, 5.3.2, 5.3.3 |
+-------------------------------+-------+------------------------+-----------------------------+
| Remote Attestation PP         | TBD2  | PP model               |                             |
|                               |       | related information    | Section 5.4.1, 5.4.2, 5.4.3 |
+-------------------------------+-------+------------------------+-----------------------------+
| Trigger Remote Attestation BG | TBD3  | trigger to start       |                             |
|                               |       | attestation in BG      | Section 5.3.4               |
+-------------------------------+-------+------------------------+-----------------------------+
| Trigger Remote Attestation PP | TBD4  | trigger to start       |                             |
|                               |       | attestation in PP      | Section 5.4.4               |
+-------------------------------+-------+------------------------+-----------------------------+
]]></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="23" month="April" 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-07"/>
        </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>Linaro</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="2" month="March" 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-10"/>
        </reference>
        <reference anchor="I-D.ietf-lake-edhoc-psk">
          <front>
            <title>EDHOC Authenticated with Pre-Shared Keys (PSK)</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="2" month="March" year="2026"/>
            <abstract>
              <t>   This document specifies a Pre-Shared Key (PSK) authentication method
   for the Ephemeral Diffie-Hellman Over COSE (EDHOC) key exchange
   protocol.  The PSK method enhances computational efficiency while
   providing mutual authentication, ephemeral key exchange, identity
   protection, and quantum resistance.  It is particularly 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 EDHOC session
   (resumption PSK).  This document details the PSK method flow, key
   derivation changes, message formatting, processing, and security
   considerations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-edhoc-psk-07"/>
        </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="2" month="March" 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-07"/>
        </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 846?>

<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 or 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',      /hash of the first two EDHOC messages/
    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 hash value of the first two EDHOC messages 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 author 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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
Ej7+9GPeCdARd9TfHexvi235fwHVzeBBSQUBAA==

-->

</rfc>
