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

<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 56?>

<section anchor="introduction">
      <name>Introduction</name>
      <!--Discuss remote attestation and mention some use cases.-->
<t>Remote attestation is a security process which verifies and confirms the integrity and trustworthiness of a remote device or system in the network.
This process helps establish a level of trust in the remote system before allowing the device to e.g. 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 the evidence 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.
This communication may be secured through protocols such as EDHOC, TLS or other security protocols that support the secure transmission to and from 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 attesation 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 device is out of scope of this specification.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The reader is assumed to be familiar with the terms and concepts defined in EDHOC <xref target="RFC9528"/> and RATS architecture <xref target="RFC9334"/>.</t>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <t>This specification describes how to perform remote attestation over the EDHOC protocol, following the RATS architecture.
EDHOC provides the benefit of minimal message overhead and reduced round trips for a lightweight authentication.
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>In <xref target="attestation-dimensions"/>, this document defines three 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 (IoT device or network service).</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>
        <li>
          <t>Message Flow (see <xref target="fwd_flow"/>, <xref target="rev_flow"/>) defining the EDHOC message flow in use (forward message flow or reverse message flow).</t>
        </li>
      </ol>
      <t>This document specifies the cases that are suited for constrained IoT environments.</t>
    </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 credential identity of the Verifier is assumed to be stored at the Attester and the Relying Party, which means the Verifier is trusted by the Attester and the Relying Party to obtain the attestation result.
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"/>.</t>
    </section>
    <section anchor="attestation-dimensions">
      <name>Remote Attestation in EDHOC</name>
      <t>This section specifies three 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>
        <li>
          <t>EDHOC message flow: The EDHOC protocol defines 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 can be used to perform remote attestation.</t>
        </li>
      </ol>
      <section anchor="iot">
        <name>Target: IoT Device Attestation (IoT)</name>
        <t>The IoT device acts as the Attester.</t>
      </section>
      <section anchor="net">
        <name>Target: Network Service Attestation (Net)</name>
        <t>The network service acts as the Attester.</t>
        <t>This attestation pattern applies when constrained devices need to establish trust with a network gateway.
For example, before transmitting sensitive data to a network gateway, a constrained device requires attestation of the network gateway.</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.
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"/>), guarantees the freshness of the attestation session.
The nonce is generated by the Verifier and sent to the Relying Party.
The Relying Party puts the nonce and the selected evidence type together in a tuple to generate an Attestation request.</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_label for Attestation_proposal, Attestation_request and Evidence is the same (TBD1) because these EAD items appear in a fixed sequential order.</t>
        <section anchor="attestation-proposal">
          <name>Attestation_proposal</name>
          <t>To propose a list of provided evidence types in background-check model, the Attester transports the Proposed_EvidenceType object.
It signals to the Relying Party the proposal to do remote attestation, as well as which types of the attestation claims the Attester supports.
The Proposed_EvidenceType is encoded in CBOR in the form of a sequence.</t>
          <t>The EAD item 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 .cbor Proposed_EvidenceType

Proposed_EvidenceType = [ + content-format ]

content-format = uint
]]></artwork>
          <t>where</t>
          <ul spacing="normal">
            <li>
              <t>Proposed_EvidenceType is an array that contains 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>
          <t>The sign of ead_label TBD1 <bcp14>MUST</bcp14> be negative to indicate that the EAD item is critical.
If the receiver cannot recognize the critical EAD item, or cannot process the information in the critical EAD item, then the receiver <bcp14>MUST</bcp14> abort the EDHOC session, as defined in <xref section="3.8" sectionFormat="of" target="RFC9528"/>.</t>
        </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 first message_1 with an error indicating support for another evidence type.</t>
          <t>The EAD item 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 .cbor 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 selected evidence type 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>
          <t>The sign of ead_label TBD2 <bcp14>MUST</bcp14> be negative to indicate that the EAD item is critical.
If the receiver cannot recognize the critical EAD item, or cannot process the information in the critical EAD item, then the receiver <bcp14>MUST</bcp14> abort the EDHOC session, as defined in <xref section="3.8" sectionFormat="of" target="RFC9528"/>.</t>
        </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.
The Evidence is sent in EAD_3 within EDHOC message_3.</t>
          <t>The EAD item is:</t>
          <ul spacing="normal">
            <li>
              <t>ead_label = TBD1</t>
            </li>
            <li>
              <t>ead_value is a serialized EAT.</t>
            </li>
          </ul>
          <t>For remote attestation over EDHOC, The EAT <bcp14>MUST</bcp14> be formatted as a CBOR Web Token (CWT) containing attestation-oriented claims.
The complete set of attestation claims for the EAT is specified in <xref target="RFC9711"/>.</t>
          <t>A minimal claims set <bcp14>MAY</bcp14> be implemented when the Attester operates under constrained message size requirements and/or limited computational resources.</t>
          <artwork><![CDATA[
{
/eat-nonce/          10: bstr .size 8
/ueid/               256: bstr .size (7..33)
/measurements/       273: measurements-type
}
]]></artwork>
          <t>The measurements claim <bcp14>MAY</bcp14> be formatted according to <xref target="RFC9393"/>.
When CoSWID <xref target="RFC9393"/> is used, the claim <bcp14>MUST</bcp14> be an evidence CoSWID rather than a payload CoSWID.
Formats other than CoSWID are permitted and <bcp14>MUST</bcp14> be identified by CoAP Content Format.</t>
          <artwork><![CDATA[
measurements-type = [+ measurements-format]

measurements-format = [
      content-format: uint,
      content: bytes
]
]]></artwork>
        </section>
        <section anchor="trigger-bg">
          <name>trigger_bg</name>
          <t>The EAD item trigger_bg is used when the sender triggers the receiver to start a remote attestation in the background-check model.
The receiver <bcp14>MUST</bcp14> reply with an EAD item corresponding to the background-check model, eithr an attestation_proposal in <xref target="attestation-proposal"/> or an evidence in <xref target="evidence"/>.
The ead_value <bcp14>MUST</bcp14> not be present, as the ead_label serves as the trigger.</t>
          <t>The EAD item is:</t>
          <ul spacing="normal">
            <li>
              <t>ead_label = TBD2</t>
            </li>
            <li>
              <t>ead_value = null</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.</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 and transfers it to the Relying Party.
The Attester first sends a list of the Verifier identities that it can get the attestation result.
The Relying Party selects one trusted Verifier identity and sends it back as 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 should 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_label for Result_proposal, Result_request and Result is the same (TBD3) because these EAD items appear in a fixed sequential order.</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' indentities.
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 for the attestation result proposal is:</t>
          <ul spacing="normal">
            <li>
              <t>ead_label = TBD3</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 => values
}
]]></artwork>
          <t>where</t>
          <ul spacing="normal">
            <li>
              <t>Proposed_VerifierIdentity is defined as a list of one or more VerifierIdentity elements.</t>
            </li>
            <li>
              <t>Each VerifierIdentity within the list is a map defined in <xref target="IANA-COSE-Header-Parameters"/> that:
              </t>
              <ul spacing="normal">
                <li>
                  <t>label = int / tstr</t>
                </li>
                <li>
                  <t>values = any</t>
                </li>
              </ul>
            </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.
Relying Party generates a nonce to ensure the freshness of the attestation result from the Verifier.</t>
          <t>The EAD item for an attestation result request is:</t>
          <ul spacing="normal">
            <li>
              <t>ead_label = TBD3</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: VerfierIdentity,
  ? nonce: bstr .size 8..64
}
]]></artwork>
        </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"/>.
The Relying Party can decide what action to take with regards to the Attester based on the information elements in attetation result.</t>
          <t>The EAD item is:</t>
          <ul spacing="normal">
            <li>
              <t>ead_label = TBD3</t>
            </li>
            <li>
              <t>ead_value is a serialized EAT.</t>
            </li>
          </ul>
        </section>
        <section anchor="trigger-pp">
          <name>trigger_pp</name>
          <t>The EAD item trigger_pp is used when the sender triggers the receiver to start a remote attestation in the passport model.
The receiver <bcp14>MUST</bcp14> reply with an EAD item correspondign to the passport model, either a result proposal in <xref target="result-proposal"/> or a result in <xref target="result"/>.
The ead_value <bcp14>MUST</bcp14> not be present, as the ead_label serves as the trigger.</t>
          <t>The EAD item is:</t>
          <ul spacing="normal">
            <li>
              <t>ead_label = TBD4</t>
            </li>
            <li>
              <t>ead_value = null</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="fwd_flow">
        <name>EDHOC forward Message Flow (Fwd)</name>
        <t>In forward message flow, EDHOC may run with the Initiator as a CoAP/HTTP client.
Remote attestation over EDHOC starts with a POST requests to the Uri-Path: "/.well-known/lake-ra".</t>
      </section>
      <section anchor="rev_flow">
        <name>EDHOC reverse Message Flow (Rev)</name>
        <t>In the reverse message flow, the CoAP/HTTP client is the Responder and the server is the Initiator.
A new EDHOC session begins with an empty POST request to the server's resource for EDHOC.</t>
      </section>
    </section>
    <section anchor="attestation-combinations">
      <name>Instantiation of Remote Attestation Protocol</name>
      <t>We use the format (Target, Model, Message Flow) to denote instantiations.
For example, (IoT, BG, Fwd) represents IoT device attestation using the background-check model with forward EDHOC message flow.</t>
      <t>There are 8 possible instantiations combining IoT/Net, BG/PP, and Fwd/Rev configurations.
Considering practical feasibility, IoT device attestation in the passport model and Network Service attestation in the background model are less viable.
These instantiations require IoT devices to maintain multiple network connections and perform complex computations, which exceed the capabilities of typical low-power, resource-constrained IoT devices.</t>
      <t>In this document, only the most relevant instantiations for constrained IoT environments are specified.</t>
      <section anchor="iot-attesation">
        <name>(IoT, BG, Fwd): IoT Device Attestation</name>
        <t>A common use case for (IoT, BG, Fwd) is to attest an IoT device to a network server.
For example, a simple illustratice case is doing 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>
        <t>An overview of doing IoT device attestation in background-check model and EDHOC forward message flow is established in <xref target="fig-iot-bg-fwd"/>.
EDHOC Initiator plays the role of the RATS Attester (A).
EDHOC Responder plays the role of the RATS Relying Party (RP).
The Attester and the Relying Party communicate by transporting messages within EDHOC's External Authorization Data (EAD) fields.
An external entity, out of scope of this specification, 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 and nonce from the Verifier, and sends it to the Attester.
The Attester sends the Evidence to the Relying Party in EAD_3.
The Verifier evaluates the Evidence and sends the Attestation result to the Relying Party.</t>
        <figure anchor="fig-iot-bg-fwd">
          <name>Overview of IoT device attestation in background-check model and EDHOC forward message flow. 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="528" width="616" viewBox="0 0 616 528" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,128" fill="none" stroke="black"/>
                <path d="M 80,128 L 80,496" fill="none" stroke="black"/>
                <path d="M 152,32 L 152,128" fill="none" stroke="black"/>
                <path d="M 272,32 L 272,128" fill="none" stroke="black"/>
                <path d="M 344,128 L 344,496" fill="none" stroke="black"/>
                <path d="M 416,32 L 416,128" fill="none" stroke="black"/>
                <path d="M 520,96 L 520,128" fill="none" stroke="black"/>
                <path d="M 568,128 L 568,496" fill="none" stroke="black"/>
                <path d="M 608,96 L 608,128" fill="none" stroke="black"/>
                <path d="M 8,32 L 152,32" fill="none" stroke="black"/>
                <path d="M 272,32 L 416,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 152,64" fill="none" stroke="black"/>
                <path d="M 272,64 L 416,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 152,96" fill="none" stroke="black"/>
                <path d="M 272,96 L 416,96" fill="none" stroke="black"/>
                <path d="M 520,96 L 608,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 152,128" fill="none" stroke="black"/>
                <path d="M 272,128 L 416,128" fill="none" stroke="black"/>
                <path d="M 520,128 L 608,128" fill="none" stroke="black"/>
                <path d="M 80,176 L 336,176" fill="none" stroke="black"/>
                <path d="M 344,224 L 560,224" fill="none" stroke="black"/>
                <path d="M 352,240 L 568,240" fill="none" stroke="black"/>
                <path d="M 88,304 L 344,304" fill="none" stroke="black"/>
                <path d="M 80,352 L 336,352" fill="none" stroke="black"/>
                <path d="M 344,384 L 560,384" fill="none" stroke="black"/>
                <path d="M 352,400 L 568,400" fill="none" stroke="black"/>
                <path d="M 96,480 L 328,480" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="568,384 556,378.4 556,389.6" fill="black" transform="rotate(0,560,384)"/>
                <polygon class="arrowhead" points="568,224 556,218.4 556,229.6" fill="black" transform="rotate(0,560,224)"/>
                <polygon class="arrowhead" points="360,400 348,394.4 348,405.6" fill="black" transform="rotate(180,352,400)"/>
                <polygon class="arrowhead" points="360,240 348,234.4 348,245.6" fill="black" transform="rotate(180,352,240)"/>
                <polygon class="arrowhead" points="344,352 332,346.4 332,357.6" fill="black" transform="rotate(0,336,352)"/>
                <polygon class="arrowhead" points="344,176 332,170.4 332,181.6" fill="black" transform="rotate(0,336,176)"/>
                <polygon class="arrowhead" points="336,480 324,474.4 324,485.6" fill="black" transform="rotate(0,328,480)"/>
                <polygon class="arrowhead" points="104,480 92,474.4 92,485.6" fill="black" transform="rotate(180,96,480)"/>
                <polygon class="arrowhead" points="96,304 84,298.4 84,309.6" fill="black" transform="rotate(180,88,304)"/>
                <g class="text">
                  <text x="48" y="52">IoT</text>
                  <text x="92" y="52">device</text>
                  <text x="312" y="52">Network</text>
                  <text x="376" y="52">service</text>
                  <text x="40" y="84">EDHOC</text>
                  <text x="104" y="84">Initiator</text>
                  <text x="304" y="84">EDHOC</text>
                  <text x="368" y="84">Responder</text>
                  <text x="84" y="116">Attester</text>
                  <text x="320" y="116">Relying</text>
                  <text x="376" y="116">Party</text>
                  <text x="564" y="116">Verifier</text>
                  <text x="120" y="164">EAD_1</text>
                  <text x="152" y="164">=</text>
                  <text x="208" y="164">Attestation</text>
                  <text x="292" y="164">proposal</text>
                  <text x="408" y="212">Attestation</text>
                  <text x="492" y="212">proposal</text>
                  <text x="428" y="260">EvidenceType(s),</text>
                  <text x="520" y="260">Nonce</text>
                  <text x="120" y="292">EAD_2</text>
                  <text x="152" y="292">=</text>
                  <text x="208" y="292">Attestation</text>
                  <text x="288" y="292">request</text>
                  <text x="120" y="340">EAD_3</text>
                  <text x="152" y="340">=</text>
                  <text x="196" y="340">Evidence</text>
                  <text x="452" y="372">Evidence</text>
                  <text x="424" y="420">Attestation</text>
                  <text x="500" y="420">result</text>
                  <text x="176" y="500">EDHOC</text>
                  <text x="232" y="500">session</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
+-----------------+              +-----------------+
|   IoT device    |              | Network service |
+-----------------+              +-----------------+
| EDHOC Initiator |              | EDHOC Responder |
+-----------------+              +-----------------+            +----------+
|     Attester    |              |  Relying Party  |            | Verifier |
+--------+--------+              +--------+--------+            +-----+----+
         |                                |                           |
         |  EAD_1 = Attestation proposal  |                           |
         +------------------------------->|                           |
         |                                |                           |
         |                                |  Attestation proposal     |
         |                                +-------------------------->|
         |                                |<--------------------------+
         |                                |  EvidenceType(s), Nonce   |
         |                                |                           |
         |  EAD_2 = Attestation request   |                           |
         |<-------------------------------+                           |
         |                                |                           |
         |  EAD_3 = Evidence              |                           |
         +------------------------------->|                           |
         |                                |         Evidence          |
         |                                +-------------------------->|
         |                                |<--------------------------+
         |                                |    Attestation result     |
         |                                |                           |
         |                                |                           |
         |                                |                           |
         | <----------------------------> |                           |
         |         EDHOC session          |                           |

]]></artwork>
          </artset>
        </figure>
        <t>This specification also supports a simplified attestation model for scenarios where a pre-existing relationship exists between the Attester and the Verifier.
In such cases, when the Verifier possesses prior knowledge of the evidence format (CBOR) and its expected profile of the EAT claims set (e.g., CoSWID), the evidence types negotiation <bcp14>MAY</bcp14> be omitted.
Under these circumstances, the attestation process is simplified as:</t>
        <figure anchor="fig-iot-bg-fwd-s">
          <name>Simplified IoT device attestation in background-check model with EDHOC forward message flow. Pre-existing relationship between A and V.</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="528" width="616" viewBox="0 0 616 528" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,128" fill="none" stroke="black"/>
                <path d="M 80,128 L 80,496" fill="none" stroke="black"/>
                <path d="M 152,32 L 152,128" fill="none" stroke="black"/>
                <path d="M 272,32 L 272,128" fill="none" stroke="black"/>
                <path d="M 344,128 L 344,496" fill="none" stroke="black"/>
                <path d="M 416,32 L 416,128" fill="none" stroke="black"/>
                <path d="M 520,96 L 520,128" fill="none" stroke="black"/>
                <path d="M 568,128 L 568,496" fill="none" stroke="black"/>
                <path d="M 608,96 L 608,128" fill="none" stroke="black"/>
                <path d="M 8,32 L 152,32" fill="none" stroke="black"/>
                <path d="M 272,32 L 416,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 152,64" fill="none" stroke="black"/>
                <path d="M 272,64 L 416,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 152,96" fill="none" stroke="black"/>
                <path d="M 272,96 L 416,96" fill="none" stroke="black"/>
                <path d="M 520,96 L 608,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 152,128" fill="none" stroke="black"/>
                <path d="M 272,128 L 416,128" fill="none" stroke="black"/>
                <path d="M 520,128 L 608,128" fill="none" stroke="black"/>
                <path d="M 80,176 L 336,176" fill="none" stroke="black"/>
                <path d="M 344,224 L 560,224" fill="none" stroke="black"/>
                <path d="M 352,240 L 568,240" fill="none" stroke="black"/>
                <path d="M 88,304 L 344,304" fill="none" stroke="black"/>
                <path d="M 80,352 L 336,352" fill="none" stroke="black"/>
                <path d="M 344,384 L 560,384" fill="none" stroke="black"/>
                <path d="M 352,400 L 568,400" fill="none" stroke="black"/>
                <path d="M 96,480 L 328,480" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="568,384 556,378.4 556,389.6" fill="black" transform="rotate(0,560,384)"/>
                <polygon class="arrowhead" points="568,224 556,218.4 556,229.6" fill="black" transform="rotate(0,560,224)"/>
                <polygon class="arrowhead" points="360,400 348,394.4 348,405.6" fill="black" transform="rotate(180,352,400)"/>
                <polygon class="arrowhead" points="360,240 348,234.4 348,245.6" fill="black" transform="rotate(180,352,240)"/>
                <polygon class="arrowhead" points="344,352 332,346.4 332,357.6" fill="black" transform="rotate(0,336,352)"/>
                <polygon class="arrowhead" points="344,176 332,170.4 332,181.6" fill="black" transform="rotate(0,336,176)"/>
                <polygon class="arrowhead" points="336,480 324,474.4 324,485.6" fill="black" transform="rotate(0,328,480)"/>
                <polygon class="arrowhead" points="104,480 92,474.4 92,485.6" fill="black" transform="rotate(180,96,480)"/>
                <polygon class="arrowhead" points="96,304 84,298.4 84,309.6" fill="black" transform="rotate(180,88,304)"/>
                <g class="text">
                  <text x="48" y="52">IoT</text>
                  <text x="92" y="52">device</text>
                  <text x="312" y="52">Network</text>
                  <text x="376" y="52">service</text>
                  <text x="40" y="84">EDHOC</text>
                  <text x="104" y="84">Initiator</text>
                  <text x="304" y="84">EDHOC</text>
                  <text x="368" y="84">Responder</text>
                  <text x="84" y="116">Attester</text>
                  <text x="320" y="116">Relying</text>
                  <text x="376" y="116">Party</text>
                  <text x="564" y="116">Verifier</text>
                  <text x="424" y="260">EvidenceType,</text>
                  <text x="504" y="260">Nonce</text>
                  <text x="120" y="292">EAD_2</text>
                  <text x="152" y="292">=</text>
                  <text x="208" y="292">Attestation</text>
                  <text x="288" y="292">request</text>
                  <text x="120" y="340">EAD_3</text>
                  <text x="152" y="340">=</text>
                  <text x="196" y="340">Evidence</text>
                  <text x="452" y="372">Evidence</text>
                  <text x="424" y="420">Attestation</text>
                  <text x="500" y="420">result</text>
                  <text x="176" y="500">EDHOC</text>
                  <text x="232" y="500">session</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
+-----------------+              +-----------------+
|   IoT device    |              | Network service |
+-----------------+              +-----------------+
| EDHOC Initiator |              | EDHOC Responder |
+-----------------+              +-----------------+            +----------+
|     Attester    |              |  Relying Party  |            | Verifier |
+--------+--------+              +--------+--------+            +-----+----+
         |                                |                           |
         |                                |                           |
         +------------------------------->|                           |
         |                                |                           |
         |                                |                           |
         |                                +-------------------------->|
         |                                |<--------------------------+
         |                                |   EvidenceType, Nonce     |
         |                                |                           |
         |  EAD_2 = Attestation request   |                           |
         |<-------------------------------+                           |
         |                                |                           |
         |  EAD_3 = Evidence              |                           |
         +------------------------------->|                           |
         |                                |         Evidence          |
         |                                +-------------------------->|
         |                                |<--------------------------+
         |                                |    Attestation result     |
         |                                |                           |
         |                                |                           |
         |                                |                           |
         | <----------------------------> |                           |
         |         EDHOC session          |                           |

]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="network-attestation">
        <name>(Net, PP, Fwd): Network Service Attestation</name>
        <t>One use case for (Net, PP, Fwd) is when a network server needs to attest itself to a client (e.g., an IoT device).
For example, the client needs to send some sensitive data to the network server, which requires the network server to be attested first.
In (Net, PP, Fwd), the network server acts as an Attester and the client acts as a Relying Party.</t>
        <t>An overview of the message flow is illustrated in <xref target="fig-net-pp-fwd"/>.
EDHOC Initiator plays the role of the RATS Relying Party.
EDHOC Responder plays the role of the RATS Attester.
An external entity, out of scope of this specification, plays the role of the RATS Verifier.
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>
        <figure anchor="fig-net-pp-fwd">
          <name>Overview of network service attestation in passport model and EDHOC forward message flow. 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="448" width="584" viewBox="0 0 584 448" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,128" fill="none" stroke="black"/>
                <path d="M 80,128 L 80,432" fill="none" stroke="black"/>
                <path d="M 152,32 L 152,128" fill="none" stroke="black"/>
                <path d="M 240,32 L 240,128" fill="none" stroke="black"/>
                <path d="M 312,128 L 312,432" fill="none" stroke="black"/>
                <path d="M 384,32 L 384,128" fill="none" stroke="black"/>
                <path d="M 488,96 L 488,128" fill="none" stroke="black"/>
                <path d="M 536,128 L 536,432" fill="none" stroke="black"/>
                <path d="M 576,96 L 576,128" fill="none" stroke="black"/>
                <path d="M 8,32 L 152,32" fill="none" stroke="black"/>
                <path d="M 240,32 L 384,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 152,64" fill="none" stroke="black"/>
                <path d="M 240,64 L 384,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 152,96" fill="none" stroke="black"/>
                <path d="M 240,96 L 384,96" fill="none" stroke="black"/>
                <path d="M 488,96 L 576,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 152,128" fill="none" stroke="black"/>
                <path d="M 240,128 L 384,128" fill="none" stroke="black"/>
                <path d="M 488,128 L 576,128" fill="none" stroke="black"/>
                <path d="M 80,176 L 304,176" fill="none" stroke="black"/>
                <path d="M 88,224 L 312,224" fill="none" stroke="black"/>
                <path d="M 80,272 L 304,272" fill="none" stroke="black"/>
                <path d="M 312,288 L 336,288" fill="none" stroke="black"/>
                <path d="M 360,288 L 376,288" fill="none" stroke="black"/>
                <path d="M 400,288 L 416,288" fill="none" stroke="black"/>
                <path d="M 440,288 L 456,288" fill="none" stroke="black"/>
                <path d="M 480,288 L 496,288" fill="none" stroke="black"/>
                <path d="M 512,288 L 528,288" fill="none" stroke="black"/>
                <path d="M 320,304 L 344,304" fill="none" stroke="black"/>
                <path d="M 368,304 L 384,304" fill="none" stroke="black"/>
                <path d="M 408,304 L 424,304" fill="none" stroke="black"/>
                <path d="M 448,304 L 464,304" fill="none" stroke="black"/>
                <path d="M 480,304 L 496,304" fill="none" stroke="black"/>
                <path d="M 520,304 L 536,304" fill="none" stroke="black"/>
                <path d="M 88,352 L 312,352" fill="none" stroke="black"/>
                <path d="M 96,416 L 296,416" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="536,288 524,282.4 524,293.6" fill="black" transform="rotate(0,528,288)"/>
                <polygon class="arrowhead" points="328,304 316,298.4 316,309.6" fill="black" transform="rotate(180,320,304)"/>
                <polygon class="arrowhead" points="312,272 300,266.4 300,277.6" fill="black" transform="rotate(0,304,272)"/>
                <polygon class="arrowhead" points="312,176 300,170.4 300,181.6" fill="black" transform="rotate(0,304,176)"/>
                <polygon class="arrowhead" points="304,416 292,410.4 292,421.6" fill="black" transform="rotate(0,296,416)"/>
                <polygon class="arrowhead" points="104,416 92,410.4 92,421.6" fill="black" transform="rotate(180,96,416)"/>
                <polygon class="arrowhead" points="96,352 84,346.4 84,357.6" fill="black" transform="rotate(180,88,352)"/>
                <polygon class="arrowhead" points="96,224 84,218.4 84,229.6" fill="black" transform="rotate(180,88,224)"/>
                <g class="text">
                  <text x="48" y="52">IoT</text>
                  <text x="92" y="52">device</text>
                  <text x="280" y="52">Network</text>
                  <text x="344" y="52">service</text>
                  <text x="40" y="84">EDHOC</text>
                  <text x="104" y="84">Initiator</text>
                  <text x="272" y="84">EDHOC</text>
                  <text x="336" y="84">Responder</text>
                  <text x="56" y="116">Relying</text>
                  <text x="112" y="116">Party</text>
                  <text x="316" y="116">Attester</text>
                  <text x="532" y="116">Verifier</text>
                  <text x="120" y="164">EAD_1</text>
                  <text x="152" y="164">=</text>
                  <text x="204" y="164">trigger_PP</text>
                  <text x="120" y="212">EAD_2</text>
                  <text x="152" y="212">=</text>
                  <text x="188" y="212">Result</text>
                  <text x="252" y="212">proposal</text>
                  <text x="120" y="260">EAD_3</text>
                  <text x="152" y="260">=</text>
                  <text x="188" y="260">Result</text>
                  <text x="248" y="260">request</text>
                  <text x="416" y="276">(request)</text>
                  <text x="412" y="324">Result</text>
                  <text x="120" y="340">EAD_4</text>
                  <text x="152" y="340">=</text>
                  <text x="188" y="340">Result</text>
                  <text x="160" y="436">EDHOC</text>
                  <text x="216" y="436">session</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
+-----------------+          +-----------------+
|   IoT device    |          | Network service |
+-----------------+          +-----------------+
| EDHOC Initiator |          | EDHOC Responder |
+-----------------+          +-----------------+            +----------+
|  Relying Party  |          |     Attester    |            | Verifier |
+--------+--------+          +--------+--------+            +-----+----+
         |                            |                           |
         |  EAD_1 = trigger_PP        |                           |
         +--------------------------->|                           |
         |                            |                           |
         |  EAD_2 = Result proposal   |                           |
         |<---------------------------+                           |
         |                            |                           |
         |  EAD_3 = Result request    |                           |
         +--------------------------->|        (request)          |
         |                            +---  ---  ---  ---  --- -->|
         |                            |<---  ---  ---  --- ---  --+
         |                            |         Result            |
         |  EAD_4 = Result            |                           |
         |<---------------------------+                           |
         |                            |                           |
         |                            |                           |
         |                            |                           |
         | <------------------------> |                           |
         |       EDHOC session        |                           |
]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
    <section anchor="mutual-attestation">
      <name>Mutual Attestation in EDHOC</name>
      <t>Mutual attestation over EDHOC combines the cases where one of the EDHOC parties uses the IoT device attestation and the other uses the Network service attestation.
Performing mutual attestation to a single EDHOC message flow acheives a lightweight use with reduced message overhead.
Note that the message flow for the two parties in mutual attestation needs to be the same.</t>
      <t>In this specification, we list the most relevant mutual attestation example for constrained IoT environments.</t>
      <section anchor="iot-bg-fwd-net-pp-fwd">
        <name>(IoT, BG, Fwd) - (Net, PP, Fwd)</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 (IoT, BG, Fwd) - (Net, PP, Fwd). 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="752" width="864" viewBox="0 0 864 752" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,128" fill="none" stroke="black"/>
                <path d="M 80,128 L 80,720" fill="none" stroke="black"/>
                <path d="M 152,32 L 152,128" fill="none" stroke="black"/>
                <path d="M 280,32 L 280,128" fill="none" stroke="black"/>
                <path d="M 352,128 L 352,720" fill="none" stroke="black"/>
                <path d="M 424,32 L 424,128" fill="none" stroke="black"/>
                <path d="M 528,96 L 528,128" fill="none" stroke="black"/>
                <path d="M 584,128 L 584,720" fill="none" stroke="black"/>
                <path d="M 632,96 L 632,128" fill="none" stroke="black"/>
                <path d="M 752,96 L 752,128" fill="none" stroke="black"/>
                <path d="M 808,128 L 808,720" fill="none" stroke="black"/>
                <path d="M 856,96 L 856,128" fill="none" stroke="black"/>
                <path d="M 8,32 L 152,32" fill="none" stroke="black"/>
                <path d="M 280,32 L 424,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 152,64" fill="none" stroke="black"/>
                <path d="M 280,64 L 424,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 152,96" fill="none" stroke="black"/>
                <path d="M 280,96 L 424,96" fill="none" stroke="black"/>
                <path d="M 528,96 L 632,96" fill="none" stroke="black"/>
                <path d="M 752,96 L 856,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 152,128" fill="none" stroke="black"/>
                <path d="M 280,128 L 424,128" fill="none" stroke="black"/>
                <path d="M 528,128 L 632,128" fill="none" stroke="black"/>
                <path d="M 752,128 L 856,128" fill="none" stroke="black"/>
                <path d="M 80,192 L 344,192" fill="none" stroke="black"/>
                <path d="M 352,256 L 576,256" fill="none" stroke="black"/>
                <path d="M 360,272 L 584,272" fill="none" stroke="black"/>
                <path d="M 88,336 L 352,336" fill="none" stroke="black"/>
                <path d="M 80,416 L 344,416" fill="none" stroke="black"/>
                <path d="M 352,464 L 576,464" fill="none" stroke="black"/>
                <path d="M 352,480 L 376,480" fill="none" stroke="black"/>
                <path d="M 392,480 L 408,480" fill="none" stroke="black"/>
                <path d="M 424,480 L 440,480" fill="none" stroke="black"/>
                <path d="M 456,480 L 472,480" fill="none" stroke="black"/>
                <path d="M 488,480 L 504,480" fill="none" stroke="black"/>
                <path d="M 520,480 L 536,480" fill="none" stroke="black"/>
                <path d="M 560,480 L 584,480" fill="none" stroke="black"/>
                <path d="M 600,480 L 616,480" fill="none" stroke="black"/>
                <path d="M 640,480 L 656,480" fill="none" stroke="black"/>
                <path d="M 680,480 L 696,480" fill="none" stroke="black"/>
                <path d="M 712,480 L 728,480" fill="none" stroke="black"/>
                <path d="M 744,480 L 760,480" fill="none" stroke="black"/>
                <path d="M 776,480 L 800,480" fill="none" stroke="black"/>
                <path d="M 360,544 L 584,544" fill="none" stroke="black"/>
                <path d="M 360,576 L 384,576" fill="none" stroke="black"/>
                <path d="M 408,576 L 424,576" fill="none" stroke="black"/>
                <path d="M 448,576 L 464,576" fill="none" stroke="black"/>
                <path d="M 488,576 L 504,576" fill="none" stroke="black"/>
                <path d="M 528,576 L 544,576" fill="none" stroke="black"/>
                <path d="M 568,576 L 584,576" fill="none" stroke="black"/>
                <path d="M 600,576 L 616,576" fill="none" stroke="black"/>
                <path d="M 640,576 L 656,576" fill="none" stroke="black"/>
                <path d="M 680,576 L 696,576" fill="none" stroke="black"/>
                <path d="M 712,576 L 728,576" fill="none" stroke="black"/>
                <path d="M 752,576 L 768,576" fill="none" stroke="black"/>
                <path d="M 784,576 L 808,576" fill="none" stroke="black"/>
                <path d="M 88,624 L 352,624" fill="none" stroke="black"/>
                <path d="M 96,704 L 336,704" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="808,480 796,474.4 796,485.6" fill="black" transform="rotate(0,800,480)"/>
                <polygon class="arrowhead" points="584,464 572,458.4 572,469.6" fill="black" transform="rotate(0,576,464)"/>
                <polygon class="arrowhead" points="584,256 572,250.4 572,261.6" fill="black" transform="rotate(0,576,256)"/>
                <polygon class="arrowhead" points="368,576 356,570.4 356,581.6" fill="black" transform="rotate(180,360,576)"/>
                <polygon class="arrowhead" points="368,544 356,538.4 356,549.6" fill="black" transform="rotate(180,360,544)"/>
                <polygon class="arrowhead" points="368,272 356,266.4 356,277.6" fill="black" transform="rotate(180,360,272)"/>
                <polygon class="arrowhead" points="352,416 340,410.4 340,421.6" fill="black" transform="rotate(0,344,416)"/>
                <polygon class="arrowhead" points="352,192 340,186.4 340,197.6" fill="black" transform="rotate(0,344,192)"/>
                <polygon class="arrowhead" points="344,704 332,698.4 332,709.6" fill="black" transform="rotate(0,336,704)"/>
                <polygon class="arrowhead" points="104,704 92,698.4 92,709.6" fill="black" transform="rotate(180,96,704)"/>
                <polygon class="arrowhead" points="96,624 84,618.4 84,629.6" fill="black" transform="rotate(180,88,624)"/>
                <polygon class="arrowhead" points="96,336 84,330.4 84,341.6" fill="black" transform="rotate(180,88,336)"/>
                <g class="text">
                  <text x="48" y="52">IoT</text>
                  <text x="92" y="52">device</text>
                  <text x="320" y="52">Network</text>
                  <text x="384" y="52">service</text>
                  <text x="40" y="84">EDHOC</text>
                  <text x="104" y="84">Initiator</text>
                  <text x="312" y="84">EDHOC</text>
                  <text x="376" y="84">Responder</text>
                  <text x="76" y="116">A_1/RP_2</text>
                  <text x="348" y="116">RP_1/A_2</text>
                  <text x="580" y="116">Verifier_1</text>
                  <text x="804" y="116">Verifier_2</text>
                  <text x="120" y="164">EAD_1</text>
                  <text x="152" y="164">=</text>
                  <text x="208" y="164">Attestation</text>
                  <text x="296" y="164">proposal,</text>
                  <text x="204" y="180">trigger_PP</text>
                  <text x="424" y="244">Attestation</text>
                  <text x="508" y="244">proposal</text>
                  <text x="444" y="292">EvidenceType(s),</text>
                  <text x="536" y="292">Nonce</text>
                  <text x="120" y="308">EAD_2</text>
                  <text x="152" y="308">=</text>
                  <text x="208" y="308">Attestation</text>
                  <text x="292" y="308">request,</text>
                  <text x="188" y="324">Result</text>
                  <text x="252" y="324">proposal</text>
                  <text x="120" y="388">EAD_3</text>
                  <text x="152" y="388">=</text>
                  <text x="200" y="388">Evidence,</text>
                  <text x="188" y="404">Result</text>
                  <text x="248" y="404">request</text>
                  <text x="460" y="452">Evidence</text>
                  <text x="696" y="468">(Request)</text>
                  <text x="432" y="532">Attestation</text>
                  <text x="508" y="532">result</text>
                  <text x="460" y="596">Result</text>
                  <text x="120" y="612">EAD_4</text>
                  <text x="152" y="612">=</text>
                  <text x="188" y="612">Result</text>
                  <text x="184" y="724">EDHOC</text>
                  <text x="240" y="724">session</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
+-----------------+               +-----------------+
|   IoT device    |               | Network service |
+-----------------+               +-----------------+
| 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), Nonce   |                           |
         |  EAD_2 = Attestation request,   |                            |                           |
         |          Result proposal        |                            |                           |
         |<--------------------------------+                            |                           |
         |                                 |                            |                           |
         |                                 |                            |                           |
         |  EAD_3 = Evidence,              |                            |                           |
         |          Result request         |                            |                           |
         +-------------------------------->|                            |                           |
         |                                 |                            |                           |
         |                                 |         Evidence           |                           |
         |                                 +--------------------------->|         (Request)         |
         |                                 +--- --- --- --- --- ---  ---+ ---  ---  --- --- --- --->|
         |                                 |                            |                           |
         |                                 |                            |                           |
         |                                 |    Attestation result      |                           |
         |                                 |<---------------------------+                           |
         |                                 |                            |                           |
         |                                 |<---  ---  ---  ---  ---  --+ ---  ---  --- ---  --- ---+
         |                                 |          Result            |                           |
         |  EAD_4 = Result                 |                            |                           |
         |<--------------------------------+                            |                           |
         |                                 |                            |                           |
         |                                 |                            |                           |
         |                                 |                            |                           |
         |                                 |                            |                           |
         | <-----------------------------> |                            |                           |
         |          EDHOC session          |                            |                           |

]]></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 attesation.
The evaluation policy employed by the Verifer 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.
The Verifier must support at least one evidence type for evaluation, otherwise it returns an empty list.
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 obtains EDHOC message_3, it forwards the evidence to the Verifier for evaluation.</t>
        <t>The evidence evaluation process should include the verification of the signature, nonce validation, and measurement value comparison.
An example evaluation procedure for evidence formatted as an Entity Attestation Token (EAT) within 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.</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.
If the Attester performs real-time attestation with the Verifier after receiving a result_request from the Relying Party, the Verifier 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 is performed over EDHOC <xref target="RFC9528"/> by using EDHOC's EAD fields.
The privacy considerations of EADs in EDHOC apply to this specification.</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 the active attackers.</t>
      <t>The ead items in EAD_1 and EAD_2 <bcp14>MAY</bcp14> be very specific and potentially reveal sensitive information about the device.
The leaking of the data in EAD_1 and/or EAD_2 <bcp14>MAY</bcp14> risk to be used by the attackers for malicious purposes.
Data in EAD_3 and EAD_4 are protected between the Initiator and the Responder in EDHOC.</t>
      <t>Mutual attestation carries a lower risk for EAD items when 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 to active attackers.
Both the Attestation_request/Result_request in EAD_3 and the Evidence/Result in EAD_4 are protected.</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>
        <ul spacing="normal">
          <li>
            <t>The ead_label = TBD1 corresponds to the ead_value Attestation_proposal in <xref target="attestation-proposal"/>, Attestation_request in <xref target="attestation-request"/> and Evidence in <xref target="evidence"/>.</t>
          </li>
          <li>
            <t>The ead_label = TBD2 corresponds to the EAT item trigger_bg as specified in <xref target="trigger-bg"/>.</t>
          </li>
          <li>
            <t>The ead_label = TBD3 corresponds to the ead_value Result_proposal in <xref target="result-proposal"/>, Result_request in <xref target="result-request"/> and the Result in <xref target="result"/>.</t>
          </li>
          <li>
            <t>The ead_label = TBD4 corresponds to the EAT item trigger_pp as specified in <xref target="trigger-pp"/>.</t>
          </li>
        </ul>
        <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="536" viewBox="0 0 536 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 104,32 L 104,256" fill="none" stroke="black"/>
                <path d="M 168,32 L 168,256" fill="none" stroke="black"/>
                <path d="M 368,32 L 368,256" fill="none" stroke="black"/>
                <path d="M 528,32 L 528,256" fill="none" stroke="black"/>
                <path d="M 8,32 L 528,32" fill="none" stroke="black"/>
                <path d="M 8,62 L 528,62" fill="none" stroke="black"/>
                <path d="M 8,66 L 528,66" fill="none" stroke="black"/>
                <path d="M 8,112 L 528,112" fill="none" stroke="black"/>
                <path d="M 8,160 L 528,160" fill="none" stroke="black"/>
                <path d="M 8,208 L 528,208" fill="none" stroke="black"/>
                <path d="M 8,256 L 528,256" fill="none" stroke="black"/>
                <g class="text">
                  <text x="36" y="52">Name</text>
                  <text x="136" y="52">Label</text>
                  <text x="224" y="52">Description</text>
                  <text x="416" y="52">Reference</text>
                  <text x="32" y="84">TBD</text>
                  <text x="132" y="84">TBD1</text>
                  <text x="188" y="84">BG</text>
                  <text x="224" y="84">model</text>
                  <text x="208" y="100">related</text>
                  <text x="288" y="100">information</text>
                  <text x="408" y="100">Section</text>
                  <text x="472" y="100">5.2.1.1</text>
                  <text x="32" y="132">TBD</text>
                  <text x="132" y="132">TBD2</text>
                  <text x="208" y="132">trigger</text>
                  <text x="252" y="132">to</text>
                  <text x="288" y="132">start</text>
                  <text x="224" y="148">attestation</text>
                  <text x="284" y="148">in</text>
                  <text x="308" y="148">BG</text>
                  <text x="408" y="148">Section</text>
                  <text x="472" y="148">5.2.1.1</text>
                  <text x="32" y="180">TBD</text>
                  <text x="132" y="180">TBD3</text>
                  <text x="188" y="180">PP</text>
                  <text x="224" y="180">model</text>
                  <text x="208" y="196">related</text>
                  <text x="288" y="196">information</text>
                  <text x="408" y="196">Section</text>
                  <text x="472" y="196">5.2.2.1</text>
                  <text x="32" y="228">TBD</text>
                  <text x="132" y="228">TBD4</text>
                  <text x="208" y="228">trigger</text>
                  <text x="252" y="228">to</text>
                  <text x="288" y="228">start</text>
                  <text x="224" y="244">attestation</text>
                  <text x="284" y="244">in</text>
                  <text x="308" y="244">PP</text>
                  <text x="408" y="244">Section</text>
                  <text x="472" y="244">5.2.2.1</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+-----------+-------+------------------------+-------------------+
| Name      | Label | Description            | Reference         |
+===========+=======+========================+===================+
| TBD       | TBD1  | BG model               |                   |
|           |       | related information    | Section 5.2.1.1   |
+-----------+-------+------------------------+-------------------+
| TBD       | TBD2  | trigger to start       |                   |
|           |       | attestation in BG      | Section 5.2.1.1   |
+-----------+-------+------------------------+-------------------+
| TBD       | TBD3  | PP model               |                   |
|           |       | related information    | Section 5.2.2.1   |
+-----------+-------+------------------------+-------------------+
| TBD       | TBD4  | trigger to start       |                   |
|           |       | attestation in PP      | Section 5.2.2.1   |
+-----------+-------+------------------------+-------------------+
]]></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="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="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="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="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="7" month="July" year="2025"/>
            <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-05"/>
        </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 705?>

<section anchor="example-remote-attestation-flow">
      <name>Example: Remote Attestation Flow</name>
      <figure anchor="_figure-iot-example">
        <name>Example of remote attestation.</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="992" width="576" viewBox="0 0 576 992" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,112" fill="none" stroke="black"/>
              <path d="M 32,112 L 32,976" fill="none" stroke="black"/>
              <path d="M 136,72 L 136,104" fill="none" stroke="black"/>
              <path d="M 168,112 L 168,976" fill="none" stroke="black"/>
              <path d="M 224,32 L 224,112" fill="none" stroke="black"/>
              <path d="M 288,48 L 288,112" fill="none" stroke="black"/>
              <path d="M 368,112 L 368,976" fill="none" stroke="black"/>
              <path d="M 440,352 L 440,360" fill="none" stroke="black"/>
              <path d="M 448,48 L 448,112" fill="none" stroke="black"/>
              <path d="M 480,80 L 480,112" fill="none" stroke="black"/>
              <path d="M 528,112 L 528,976" fill="none" stroke="black"/>
              <path d="M 568,80 L 568,112" fill="none" stroke="black"/>
              <path d="M 8,32 L 224,32" fill="none" stroke="black"/>
              <path d="M 288,48 L 448,48" fill="none" stroke="black"/>
              <path d="M 8,64 L 224,64" fill="none" stroke="black"/>
              <path d="M 288,80 L 448,80" fill="none" stroke="black"/>
              <path d="M 480,80 L 568,80" fill="none" stroke="black"/>
              <path d="M 8,112 L 224,112" fill="none" stroke="black"/>
              <path d="M 288,112 L 448,112" fill="none" stroke="black"/>
              <path d="M 480,112 L 568,112" fill="none" stroke="black"/>
              <path d="M 168,240 L 360,240" fill="none" stroke="black"/>
              <path d="M 368,288 L 520,288" fill="none" stroke="black"/>
              <path d="M 376,400 L 528,400" fill="none" stroke="black"/>
              <path d="M 176,480 L 368,480" fill="none" stroke="black"/>
              <path d="M 40,560 L 168,560" fill="none" stroke="black"/>
              <path d="M 32,624 L 160,624" fill="none" stroke="black"/>
              <path d="M 168,704 L 360,704" fill="none" stroke="black"/>
              <path d="M 368,800 L 520,800" fill="none" stroke="black"/>
              <path d="M 376,864 L 528,864" fill="none" stroke="black"/>
              <path d="M 368,880 L 392,880" fill="none" stroke="black"/>
              <path d="M 376,912 L 392,912" fill="none" stroke="black"/>
              <path d="M 176,960 L 360,960" fill="none" stroke="black"/>
              <path d="M 392,880 C 400.83064,880 408,887.16936 408,896" fill="none" stroke="black"/>
              <path d="M 392,912 C 400.83064,912 408,904.83064 408,896" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="528,800 516,794.4 516,805.6" fill="black" transform="rotate(0,520,800)"/>
              <polygon class="arrowhead" points="528,288 516,282.4 516,293.6" fill="black" transform="rotate(0,520,288)"/>
              <polygon class="arrowhead" points="384,912 372,906.4 372,917.6" fill="black" transform="rotate(180,376,912)"/>
              <polygon class="arrowhead" points="384,864 372,858.4 372,869.6" fill="black" transform="rotate(180,376,864)"/>
              <polygon class="arrowhead" points="384,400 372,394.4 372,405.6" fill="black" transform="rotate(180,376,400)"/>
              <polygon class="arrowhead" points="368,960 356,954.4 356,965.6" fill="black" transform="rotate(0,360,960)"/>
              <polygon class="arrowhead" points="368,704 356,698.4 356,709.6" fill="black" transform="rotate(0,360,704)"/>
              <polygon class="arrowhead" points="368,240 356,234.4 356,245.6" fill="black" transform="rotate(0,360,240)"/>
              <polygon class="arrowhead" points="184,960 172,954.4 172,965.6" fill="black" transform="rotate(180,176,960)"/>
              <polygon class="arrowhead" points="184,480 172,474.4 172,485.6" fill="black" transform="rotate(180,176,480)"/>
              <polygon class="arrowhead" points="168,624 156,618.4 156,629.6" fill="black" transform="rotate(0,160,624)"/>
              <polygon class="arrowhead" points="48,560 36,554.4 36,565.6" fill="black" transform="rotate(180,40,560)"/>
              <g class="text">
                <text x="72" y="52">EDHOC</text>
                <text x="136" y="52">Initiator</text>
                <text x="328" y="68">EDHOC</text>
                <text x="392" y="68">Responder</text>
                <text x="64" y="84">Attestation</text>
                <text x="180" y="84">Attester</text>
                <text x="48" y="100">Service</text>
                <text x="336" y="100">Relying</text>
                <text x="392" y="100">Party</text>
                <text x="524" y="100">Verifier</text>
                <text x="192" y="164">EDHOC</text>
                <text x="256" y="164">message_1</text>
                <text x="208" y="180">{...}</text>
                <text x="212" y="196">EAD_1(</text>
                <text x="252" y="212">types(a,b,c)</text>
                <text x="192" y="228">)</text>
                <text x="428" y="276">types(a,b,c)</text>
                <text x="400" y="340">Body:</text>
                <text x="432" y="340">{</text>
                <text x="416" y="356">nonce</text>
                <text x="200" y="372">EDHOC</text>
                <text x="264" y="372">message_2</text>
                <text x="436" y="372">types(a,b)</text>
                <text x="208" y="388">{...}</text>
                <text x="384" y="388">}</text>
                <text x="212" y="404">EAD_2(</text>
                <text x="228" y="420">nonce,</text>
                <text x="232" y="436">type(a)</text>
                <text x="192" y="452">)</text>
                <text x="260" y="468">Auth_CRED(Sig/MAC)</text>
                <text x="84" y="500">Body:{</text>
                <text x="92" y="516">nonce,</text>
                <text x="96" y="532">type(a)</text>
                <text x="64" y="548">}</text>
                <text x="68" y="580">Body:{</text>
                <text x="92" y="596">Evidence</text>
                <text x="48" y="612">}</text>
                <text x="200" y="644">EDHOC</text>
                <text x="264" y="644">message_3</text>
                <text x="208" y="660">{...}</text>
                <text x="240" y="676">Evidence(EAT)</text>
                <text x="260" y="692">Auth_CRED(sig/MAC)</text>
                <text x="400" y="772">Body:</text>
                <text x="432" y="772">{</text>
                <text x="452" y="788">EAT}</text>
                <text x="400" y="820">Body:</text>
                <text x="432" y="820">{</text>
                <text x="432" y="836">att-result:</text>
                <text x="500" y="836">AR{}</text>
                <text x="384" y="852">}</text>
                <text x="444" y="900">verify</text>
                <text x="492" y="900">AR{}</text>
                <text x="248" y="948">application</text>
                <text x="316" y="948">data</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
.--------------------------.
|     EDHOC Initiator      |       .-------------------.
+--------------------------+       |  EDHOC Responder  |
| Attestation   | Attester |       +-------------------+   .----------.
| Service       |          |       |  Relying Party    |   | Verifier |
'--+----------------+------'       '---------+---------'   '-----+----'
   |                |                        |                   |
   |                |                        |                   |
   |                |EDHOC message_1         |                   |
   |                |  {...}                 |                   |
   |                |  EAD_1(                |                   |
   |                |    types(a,b,c)        |                   |
   |                |  )                     |                   |
   |                +----------------------->|                   |
   |                |                        |                   |
   |                |                        | types(a,b,c)      |
   |                |                        +------------------>|
   |                |                        |                   |
   |                |                        |                   |
   |                |                        | Body: {           |
   |                |                        |   nonce,          |
   |                | EDHOC message_2        |   types(a,b)      |
   |                |  {...}                 | }                 |
   |                |  EAD_2(                |<------------------+
   |                |    nonce,              |                   |
   |                |    type(a)             |                   |
   |                |  )                     |                   |
   |                |  Auth_CRED(Sig/MAC)    |                   |
   |                |<-----------------------+                   |
   |   Body:{       |                        |                   |
   |    nonce,      |                        |                   |
   |    type(a)     |                        |                   |
   |   }            |                        |                   |
   |<---------------+                        |                   |
   | Body:{         |                        |                   |
   |   Evidence     |                        |                   |
   | }              |                        |                   |
   +--------------->|                        |                   |
   |                | EDHOC message_3        |                   |
   |                |  {...}                 |                   |
   |                |  Evidence(EAT)         |                   |
   |                |  Auth_CRED(sig/MAC)    |                   |
   |                +----------------------->|                   |
   |                |                        |                   |
   |                |                        |                   |
   |                |                        |                   |
   |                |                        | Body: {           |
   |                |                        |        EAT}       |
   |                |                        +------------------>|
   |                |                        | Body: {           |
   |                |                        |  att-result: AR{} |
   |                |                        | }                 |
   |                |                        |<------------------+
   |                |                        +---.               |
   |                |                        |    | verify AR{}  |
   |                |                        |<--'               |
   |                |                        |                   |
   |                |    application data    |                   |
   |                |<---------------------->|                   |
   |                |                        |                   |
]]></artwork>
        </artset>
      </figure>
    </section>
    <section anchor="remote-attestation-in-parallel-with-enrollment-authorization">
      <name>Remote attestation in parallel with enrollment authorization</name>
      <t>This section discusses the possibility of doing remote attestation in parallel with the enrollment authorization procedure defined in <xref target="I-D.ietf-lake-authz"/>.
In this case, the message count is much decreased.</t>
      <t>The detailed procedure is TBD.</t>
    </section>
    <section anchor="firmware">
      <name>Example: Firmware Version</name>
      <t>The goal in this example is to verify that the firmware running on the device is the latest version, and is neither tampered or compromised.
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 components of the Evidence should at least be:</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 infomation above serves as the payload of the COSE object.
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 to the Verifier.
Once the Verifier sends back the Attestation Result, the Relying Party can be assured on the version of the firmware that the device is running.</t>
    </section>
    <section anchor="open-discussion-continuous-attestation-over-edhoc">
      <name>Open discussion: Continuous Attestation over EDHOC</name>
      <t>Subsequent remote attestation is possible over PSK-based EDHOC for continuous assurance.</t>
      <t>The detailed procedure is TBD.</t>
    </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 and Geovane Fedrecheski 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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
+6TlIVM5gQ11iOdT/j8KFvvcyM0AAA==

-->

</rfc>
