<?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.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lake-ra-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="RA-EDHOC">Remote attestation over EDHOC</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lake-ra-04"/>
    <author initials="Y." surname="Song" fullname="Yuxuan Song">
      <organization>Inria</organization>
      <address>
        <email>yuxuan.song@inria.fr</email>
      </address>
    </author>
    <author initials="G." surname="Selander" fullname="Göran Selander">
      <organization>Ericsson AB</organization>
      <address>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <date year="2026" month="March" day="02"/>
    <area>Security</area>
    <workgroup>Lightweight Authenticated Key Exchange</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 55?>

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

<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 target (e.g., device, system, group of devices) 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 evidence (a set of claims) concerning its identity and integrity, which must be appraised by the Verifier for its validity.
Then, the Verifier produces the attestation result, which is consequently used by the Relying Party for the purposes of reliably applying application-specific actions.</t>
      <!--Discuss the two RATS models and say that this specification supports both models.-->
<t>One type of interaction model defined in the RATS architecture is called the background-check model.
It resembles the procedure of how employers perform background checks to determine the prospective employee's trustworthiness, by contacting the respective organization that issues a report.
In this case, the employer acts as the Relying Party, the employee acts as the Attester and the organization acts as the Verifier.
The Attester conveys evidence directly to the Relying Party and the Relying Party forwards the evidence to the Verifier for appraisal.
Once the attestation result is computed by the Verifier, it is sent back to the Relying Party to decide what action to take based on the attestation result.
Another model is called passport model, where the Attester communicates directly with the Verifier.
The Attester presents the evidence to the Verifier and gets an attestation result from the Verifier.
Then the Attester conveys the attestation result to the Relying Party.
This specification employs both the RATS background-check model and the passport model.</t>
      <t>This document specifies the protocol between the Attester and the Relying Party.
The details of the protocol between the Relying Party and the Verifier in the background-check model, and the protocol between the Attester and the Verifier in the passport model are out of the scope.
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 target is out of scope of this specification.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The reader is assumed to be familiar with the terms and concepts defined in EDHOC <xref target="RFC9528"/> and RATS architecture <xref target="RFC9334"/>.</t>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <t>EDHOC provides the benefit of minimal message overhead and reduced round trips for lightweight authentication between an Initiator and a Responder.
However, authentication ensures only identity-level security, and additional integrity assurance may be required through remote attestation.
This specification describes how to perform remote attestation over the EDHOC protocol, following the RATS architecture.
More importantly, by integrating remote attestation with EDHOC, attestation can be run in parallel with authentication, improving the efficiency and maintaining lightweight properties.</t>
      <t>Remote attestation protocol elements are carried within EDHOC's External Authorization Data (EAD) fields.
EDHOC <xref target="RFC9528"/> supports one or more EAD items in each EAD field.</t>
      <t>The Attester can act as either the EDHOC Initiator or the EDHOC Responder, depending on the attesting target.
In the background-check model, the Attester (EDHOC Initiator/IoT device) exchanges evidence with the Relying Party (EDHOC Responder/Network service) during the EDHOC session.
In the passport model, the Attester (EDHOC Responder/Network servie) exhcnages the attestation result with the Relying Party (EDHOC Initiator/IoT device) during the EDHOC session.
Section <xref target="attestation-dimensions"/> 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.
See this document <xref target="I-D.ietf-iotops-7228bis"/> as a reference for classification of IoT devices.</t>
      <t>The remote attestation operation defined in this document preserves the properties of EDHOC:</t>
      <ol spacing="normal" type="1"><li>
          <t>The EDHOC protocol is not modified, the remote attestation elements are carried within EDHOC EAD fields.</t>
        </li>
        <li>
          <t>The attestation protocol is in parallel but does not interfere with the authentication flow.</t>
        </li>
        <li>
          <t>The privacy and security properties of EDHOC are not changed.</t>
        </li>
      </ol>
    </section>
    <section anchor="assumptions">
      <name>Assumptions</name>
      <t>In the background-check model, the Verifier is assumed to support verification of at least one evidence format provided by the Attester.
The Verifier is assumed to be provisioned with the Attester's attestation public key and the reference values required for evidence validation prior to the attestation procedure.
It is assumed that the Relying Party also has knowledge about the Attester, so it can narrow down the evidence type selection and send to the Attester only one format of the evidence type.</t>
      <t>In the passport model, the 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"/>.
If nonce is used to ensure freshness in the passport model, the IoT device is assumed to be able to generate a random byte string that is not predictable.</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.
Evidence contains a set of claims about the current status of the Attester, including configurations, health or construction that have security relevance (see <xref section="8.1" sectionFormat="of" target="RFC9334"/>).
The Relying Party transfers the evidence to the Verifier and gets back the attestation result from the Verifier.</t>
        <t>An EDHOC session is established between the Attester and the Relying Party.
A negotiation of the evidence type is required before the Attester sends the evidence.
All three parties must agree on a selected evidence type.</t>
        <t>The Attester first sends a list of the proposed evidence types to the Relying Party.
The list is formatted as an Attestation proposal in an EDHOC EAD item.
The Relying Party relays the list to the Verifier and receives at least one supported evidence type from the Verifier in return.
If the Relying Party receives more than one evidence type, a single evidence type should be selected by the Relying Party based on its knowledge of the Attester.
The Relying Party then sends it back within the Attestation request to the Attester.</t>
        <t>A nonce, at least 8-bytes long <xref target="RFC9711"/>), 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 distinct and fixed positions within the EDHOC message sequence.
Specifically, they are conveyed in EAD_1, EAD_2, and EAD_3 of EDHOC messaage_1, EDHOC message_2, and EDHOC message_3, respectively.
As their positions identify each item, separate labels are not required.</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 (EDHOC Responder/Relying Party) 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 TBD1 <bcp14>MUST</bcp14> be negative to indicate that the EAD item is critical.
If the receiver (EDHOC Initiator/Attester) 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 in COSE_Sign1 structure.</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"/>.
An example is provided in Section <xref target="firmware"/>.</t>
          <t>A minimal claims set is defined as the payload of COSE_Sign1 when the Attester operates under constrained message size requirements and/or limited computational resources:</t>
          <artwork><![CDATA[
{
/eat-nonce/          10: bstr .size 8
/ueid/               256: bstr .size (7..33)
/measurements/       273: measurements-type
}

measurements-type = [+ measurements-format]
measurements-format = [
      content-format: uint,
      content: bytes
]
]]></artwork>
          <t>where</t>
          <ul spacing="normal">
            <li>
              <t>The "measurements" claim can be a CoSWID <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>
            </li>
          </ul>
          <t>In the forward EDHOC message flow, Evidence is sent in EDHOC message_3.
The signature over the Evidence <bcp14>MUST</bcp14> include an attestation binder, which is defined as a cryptographic hash of the first two EDHOC messages.</t>
          <artwork><![CDATA[
attestation_binder = H(message_1, message_2)
]]></artwork>
          <t>where</t>
          <ul spacing="normal">
            <li>
              <t>H() is the EDHOC hash algorithm of the selected cipher suite.</t>
            </li>
          </ul>
          <t>The inclusion of the attestation binder is mandatory to cryptographically bind the attestation to the authentication, and to ensure that the attester is the authenticated peer.
The attestation binder prevents relay attacks whereby an attacker relays Evidence generated in a different session.</t>
          <t>The signature in COSE_Sign1 is computed over a Sig_structure containing protected header, externally supplied data (external_aad) and payload using a private attestation key.
The message to be signed is:</t>
          <artwork><![CDATA[
[ "Signature1", body_protected, external_aad, payload ]
]]></artwork>
          <t>where</t>
          <ul spacing="normal">
            <li>
              <t>body_protected is the same CBOR byte string as the protected header in COSE_Sign1</t>
            </li>
            <li>
              <t>external_aad = attestation_binder</t>
            </li>
            <li>
              <t>payolad is the same CBOR byte string as the payload in COSE_Sign1</t>
            </li>
          </ul>
          <t>In the reverse EDHOC message flow, Evidence is sent in EDHOC message_4.
The signature over the Evidence <bcp14>MUST</bcp14> include an attestation binder, which is derived using EDHOC_Exporter defined in <xref target="RFC9528"/>.</t>
          <artwork><![CDATA[
attestation_binder = EDHOC_Exporter (exporter_label, context, length)
]]></artwork>
          <t>where</t>
          <ul spacing="normal">
            <li>
              <t>exporter_label = 2</t>
            </li>
            <li>
              <t>context = "attestation_binder"</t>
            </li>
            <li>
              <t>length = 32</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="pp">
        <name>Model: Passport Model (PP)</name>
        <t>In the passport model, the Attester sends the evidence to the Verifier.
After the Attester receives the attestation result from the Verifier, the Attester sends the attestation result to the Relying Party.
The attestation result may carry a boolean value indicating compliance or non-compliance with a Verifier's apprasal policy, or many carry a set of claims to indicate the results in different aspects (<xref section="8.4" sectionFormat="of" target="RFC9334"/>).</t>
        <t>An EDHOC session is established between the Attester (EDHOC Responder) and the Relying Party (EDHOC Initiator).
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 <bcp14>MUST</bcp14> include a time stamp and/or expiry time to indicate its validity.
Time synchronization is out of scope of this specification.</t>
        <t>Once the Attester obtains the attestation result from the selected Verifier, it sends the attestation result to the Relying Party.</t>
        <t>The ead_label for Result_proposal, Result_request and Result is the same (TBD2) because these EAD items appear in distinct and fixed positions within the EDHOC message sequence.
Specifically, they are conveyed in EAD_2, EAD_3, and EAD_4 of EDHOC messaage_2, EDHOC message_3, and EDHOC message_4, respectively.
As their positions identify each item, separate labels are not required.</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 = TBD2</t>
            </li>
            <li>
              <t>ead_value = Result_proposal, which is a CBOR byte string:</t>
            </li>
          </ul>
          <artwork><![CDATA[
Result_proposal = bstr .cbor Proposed_VerifierIdentity
Proposed_VerifierIdentity = [ + VerifierIdentity ]

VerifierIdentity = {
  label => 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 = TBD2</t>
            </li>
            <li>
              <t>ead_value = Result_request, which is a CBOR byte string:</t>
            </li>
          </ul>
          <artwork><![CDATA[
Result_request = bstr .cbor Request_structure

Request_structure = {
<<<<<<< version04
  selected_verifier: VerfierIdentity,
  ? nonce: bstr .size (8..64)
=======
  selected_verifier: VerifierIdentity,
  ? nonce: bstr .size 8..64
>>>>>>> main
}
]]></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 = TBD2</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 (EDHOC Initiator/Relying Party) triggers the receiver (EDHOC Responder/Attester) 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 = TBD3</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>
      </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="388" y="276">Evidence</text>
                  <text x="432" y="276">+</text>
                  <text x="464" y="276">Nonce</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    |                           |
         +--------------------------->|     Evidence + Nonce      |
         |                            +---  ---  ---  ---  --- -->|
         |                            |<---  ---  ---  --- ---  --+
         |                            |         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 Verifier varies according to specific use cases and should be determined prior to the attestation; such policy definition is out of scope in this specification.</t>
      <t>The Verifier maintains an implicit trust relationship with the Relying Party, established through mechanisms such as web PKI with trusted Certificate Authority (CA) certificates, enabling the Relying Party to trust the attestation result that is generated by the Verifier.</t>
      <section anchor="processing-in-the-background-check-model">
        <name>Processing in the Background-check Model</name>
        <t>The Verifier is connected with the Relying Party and is responsible for evaluating evidence forwarded by the Relying Party.
After the Relying Party receives EDHOC message_1 from the Attester, it extracts and transmits the Attestation proposal to the Verifier.
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 and the attestation binder (hash of the first two EDHOC messages) to the Verifier for evaluation.</t>
        <t>The evidence evaluation process <bcp14>SHOULD</bcp14> include the signature verification, nonce validation, and comparison of measurement values against trusted reference values.
An example evaluation procedure for evidence formatted as an Entity Attestation Token (EAT) 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.
The Verifier reconstructs the Sig_Structure, with the attestation binder carried in the external_add field.</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 receives result_request from the Relying Party and performs real-time attestation with the Verifier, the Verifier then generates the attestation result formatted as an Entity Attestation Token (EAT).
The token uses the "Software Measurement Results (measres)" claim as defined in <xref target="RFC9711"/>, and incorporates the nonce generated by the Relying Party as an input parameter.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This specification 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>
      <t>The privacy considerations of remote attestation refer to <xref section="11" sectionFormat="of" target="RFC9334"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="edhoc-external-authorization-data-registry">
        <name>EDHOC External Authorization Data Registry</name>
        <t>IANA is requested to register the following entry in the "EDHOC External Authorization Data" registry under the group name "Ephemeral Diffie-Hellman Over Cose (EDHOC)".</t>
        <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 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 = TBD3 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="224" width="536" viewBox="0 0 536 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,208" fill="none" stroke="black"/>
                <path d="M 104,32 L 104,208" fill="none" stroke="black"/>
                <path d="M 168,32 L 168,208" fill="none" stroke="black"/>
                <path d="M 368,32 L 368,208" fill="none" stroke="black"/>
                <path d="M 528,32 L 528,208" 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"/>
                <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="188" y="132">PP</text>
                  <text x="224" y="132">model</text>
                  <text x="208" y="148">related</text>
                  <text x="288" y="148">information</text>
                  <text x="408" y="148">Section</text>
                  <text x="472" y="148">5.2.2.1</text>
                  <text x="32" y="180">TBD</text>
                  <text x="132" y="180">TBD3</text>
                  <text x="208" y="180">trigger</text>
                  <text x="252" y="180">to</text>
                  <text x="288" y="180">start</text>
                  <text x="224" y="196">attestation</text>
                  <text x="284" y="196">in</text>
                  <text x="308" y="196">PP</text>
                  <text x="408" y="196">Section</text>
                  <text x="472" y="196">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  | PP model               |                   |
|           |       | related information    | Section 5.2.2.1   |
+-----------+-------+------------------------+-------------------+
| TBD       | TBD3  | 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="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="RFC9668">
          <front>
            <title>Using Ephemeral Diffie-Hellman Over COSE (EDHOC) with the Constrained Application Protocol (CoAP) and Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="M. Tiloca" initials="M." surname="Tiloca"/>
            <author fullname="R. Höglund" initials="R." surname="Höglund"/>
            <author fullname="S. Hristozov" initials="S." surname="Hristozov"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <date month="November" year="2024"/>
            <abstract>
              <t>The lightweight authenticated key exchange protocol Ephemeral Diffie-Hellman Over COSE (EDHOC) can be run over the Constrained Application Protocol (CoAP) and used by two peers to establish a Security Context for the security protocol Object Security for Constrained RESTful Environments (OSCORE). This document details this use of the EDHOC protocol by specifying a number of additional and optional mechanisms, including an optimization approach for combining the execution of EDHOC with the first OSCORE transaction. This combination reduces the number of round trips required to set up an OSCORE Security Context and to complete an OSCORE transaction using that Security Context.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9668"/>
          <seriesInfo name="DOI" value="10.17487/RFC9668"/>
        </reference>
        <reference anchor="I-D.ietf-iotops-7228bis">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Mehmet Ersue" initials="M." surname="Ersue">
         </author>
            <author fullname="Ari Keränen" initials="A." surname="Keränen">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Carles Gomez" initials="C." surname="Gomez">
              <organization>Universitat Politecnica de Catalunya</organization>
            </author>
            <date day="4" month="November" year="2025"/>
            <abstract>
              <t>   The Internet Protocol Suite is increasingly used on small devices
   with severe constraints on power, memory, and processing resources,
   creating constrained-node networks.  This document provides a number
   of basic terms that have been useful in research and standardization
   work for constrained-node networks.

   This document obsoletes RFC 7228.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-iotops-7228bis-03"/>
        </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="20" month="October" 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-06"/>
        </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 721?>

<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 Evidence is in COSE_Sign1 structure, where the payload of COSE_Sign1 contains the following claims:</t>
      <artwork><![CDATA[
{
/eat-nonce/                 10: h'a29f62a4c6cdaae5',
/ueid/                      256: 'aaabbcc',
/measurements/              273: [
  /CoAP Content-Format ID/        [ 258,
  /evidence in CoSWID/              {
                                      0: 'tagID'             /tag-id/
                                      12: 0                  /tag-version/
                                      1: "DotBot firmware"   /software-name/
                                      2: {                   /entity/
                                          31: "Attester"     /entity-name/
                                          33: 1              /role, must be "tag-creator" which is 1/
                                          },
                                      3: {                   /evidence/
                                          17: [              /file/
                                               {
                                                24: "partition0-nrf52840dk.bin",   /fs-name/
                                                7: [                               /hash of file/
                                                    1,                             /alg SHA-256/
                                                    h'06294f6806b9c685eea795048579cfd02a0c025bc8b5abca42a19ea0ec23e81a'
                                                    ]                              /hash value/
                                                }
                                               ]
                                          }
                                    }
                                  ]
                                 ]
}
]]></artwork>
      <t>The infomation above serves as the payload of the COSE object.
The Sig_structure to compute the signature of COSE_Sign1 is:</t>
      <artwork><![CDATA[
Sig_structure = [
    "Signature1",
    h'a10127',      /ED25519 algorithm, same as the protected header in COSE_Sign1/
    h'7b4c94f32a0e6db86d915a444f76525fc32912b2e07dd481a96f627ee98a110c',      /hash of the first two EDHOC messages/
    h'A30A48A29F62A4C6CDAAE519010047616161626263631901118182190102A50045746
    16749440C00016F446F74426F74206669726D7761726502A2181F684174746573746572
    18210103A11181A218187819706172746974696F6E302D6E72663532383430646B2E626
    96E078201582006294F6806B9C685EEA795048579CFD02A0C025BC8B5ABCA42A19EA0EC
    23E81A',                                                                   /same as the payload in COSE_Sign1/
]
]]></artwork>
      <t>The complete resulting COSE object is:</t>
      <artwork><![CDATA[
18([
    /*protected header*/
    h'a10127',

    /*unprotected header*/
    {},

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

    /*signature*/
    h'd4100901f4c3e51312c3110c6ddc8dcf7f68d8f5d3791c19133f2f0ac158c1f5ee6ed
    afe9d7c3d6eb3d2d197f82e733d375fdda9fb258b304961dfc38558950d'
])
]]></artwork>
      <t>which has the following base16 encoding:</t>
      <artwork><![CDATA[
D28443A10127A05890A30A48A29F62A4C6CDAAE51901004761616162626363190111818
2190102A5004574616749440C00016F446F74426F74206669726D7761726502A2181F68
417474657374657218210103A11181A218187819706172746974696F6E302D6E7266353
2383430646B2E62696E078201582006294F6806B9C685EEA795048579CFD02A0C025BC8
B5ABCA42A19EA0EC23E81A5840D4100901F4C3E51312C3110C6DDC8DCF7F68D8F5D3791
C19133F2F0AC158C1F5EE6EDAFE9D7C3D6EB3D2D197F82E733D375FDDA9FB258B304961
DFC38558950D
]]></artwork>
      <t>The Relying Party (co-located with the gateway) then treats the Evidence as opaque and sends it together with the hash value of the first two EDHOC messages to the Verifier.
Once the Verifier sends back the Attestation Result, the Relying Party can be assured on the version of the firmware that the device is running.</t>
    </section>
    <section anchor="post-handshake-attestation-over-oscore">
      <name>Post-handshake Attestation over OSCORE</name>
      <t>Beyond the intra-handshake attestation defined in this document, remote attestation after an EDHOC session can be performed via post-handshake attestation over Object Security for Constrained RESTful Environments (OSCORE) <xref target="RFC8613"/>.
OSCORE provides application-layer protection for the Constrained Application Protocol (CoAP) using CBOR Object Signing and Encryption (COSE).
As specified in <xref target="RFC9668"/>, EDHOC can run over CoAP to establish a Security Context for OSCORE.</t>
      <t>Post-handshake attestation decouples attestation process from the initial handshake, enabling continuous attestation throughout the session lifetime and guaranteeing the runtime integrity.</t>
      <section anchor="mapping-attestation-to-oscore">
        <name>Mapping Attestation to OSCORE</name>
        <t>This section outlines how remote attestation is performed in the background-check model over OSCORE.</t>
        <t>EDITOR NOTE: put a figure</t>
        <section anchor="flight-1">
          <name>Flight 1</name>
          <t>The CoAP client (Attester) initiates attestation with a CoAP request:</t>
          <ul spacing="normal">
            <li>
              <t>The request method is POST.</t>
            </li>
            <li>
              <t>The Uri-path is set to ".well-known/attest".</t>
            </li>
            <li>
              <t>The payload is the Attestation_proposal CBOR sequence, where Attestation_proposal is constructed as defined in <xref target="attestation-proposal"/>.</t>
            </li>
          </ul>
        </section>
        <section anchor="flight-2">
          <name>Flight 2</name>
          <t>The CoAP server (Relying Party) receives the request and processes it as described in <xref target="bg"/> then prepares Attestation_request as defined in <xref target="attestation-request"/>.
The CoAP server maps the message to a CoAP response:</t>
          <ul spacing="normal">
            <li>
              <t>The response code is 2.04 Changed.</t>
            </li>
            <li>
              <t>The payload is the Attestation_request CBOR sequence, as defined in <xref target="attestation-request"/>.</t>
            </li>
          </ul>
        </section>
        <section anchor="flight-3">
          <name>Flight 3</name>
          <t>The CoAP client (Attester) receives the response and processes it as described in <xref target="bg"/> then generates the evidence.
The CoAP client maps the message to a CoAP request:</t>
          <ul spacing="normal">
            <li>
              <t>The request method is POST.</t>
            </li>
            <li>
              <t>The Uri-path is set to ".well-known/attest".</t>
            </li>
            <li>
              <t>The payload is the Evidence CBOR sequence, as defined in <xref target="evidence"/>.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="differences-between-intra-handshake-and-post-handshake-attestation">
        <name>Differences between Intra-handshake and Post-handshake Attestation</name>
        <t>Intra-handshake attestation embeds evidence exchange into the authentication handshake, cryptographically tying identity to device state and blocking unauthenticated and untrusted devices from completing the handshake.
Post-handshake attestation separates attestation from the authentication handshake, providing modularity that allows attestation mechanisms to be integrated independently of the handshake protocol.
This section compares the two different types of remote attestation methods in terms of performance and security properties.</t>
        <section anchor="performance-properties">
          <name>Performance properties</name>
          <t>Intra-handshake attestation provides round-trip efficiency as attestation occurs within the handshake, requiring no additional round trips.
The intra-handshake attestation defined in this document does not modify the EDHOC protocol itself, though other intra-handshake designs may require changes.
Post-handshake has higher modularity which the attestation is integrated independently but it requires additional round trips.</t>
        </section>
        <section anchor="security-properties">
          <name>Security properties</name>
          <t>Remote attestation provides security properties including evidence integrity, freshness guarantees, and replay protection.
Besides, intra-handshake attestation is cryptographically bound to the authentication process, and the trust is established before the session begins.
Post-handshake attestation gurantees the runtime integrity which can obtain dynamic mesurements during device execution, and can be repeatedly performed throughout the session which has the continuous assurance.</t>
        </section>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The author would like to thank Thomas Fossati, Malisa Vucinic, Ionut Mihalcea, Muhammad Usama Sardar, Michael Richardson, Geovane Fedrecheski and John Mattsson 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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
D4/7Uf+4PxxOBpPdMIIpRv0JsM0DEXNn4UQcx4fRMD4Q42E8iAEGk6OBOBwO
4eP9SRyHx5MxSPHj4e7e8UE/Bnp0tL9/BEuKgZn+6lHW5OXYKPzNQle1wWtm
+wcYq53H6p7hFlw9AwloD3YIcXG0C0PuPgubXmy4+PRMTHqx4eLSM7EIZuTg
0TMx6MWGi0OMPfsgOp5JFLnYOx2eE4qcIoqcHpydnR6dnV4cwghnRxf7Z4gi
LzZOCUkuBhe7o1OYxWn/AsY9OD8bXZwfnx2eDmH2r4dngzNY3MXR4BzQAz7c
vzg7Gx1fvAb0eM3oAbt2caoQ5GwFBXNul4vyLiY7WQmf0iq2zQkmFaoV7uVg
ZZAvwv9amjmIdFPZlG1muqtaPnuMQXqyMt+xLcqw0MhsxzD60Mju5LhXn5VF
GsnCEtVqfdOyca2hZWPVVtfauirNrtLKe5mXVXcG6y5neLezOQdKF3l3ffru
6hzbvhb3uTQpJVlVhMZXpt3MsFo711h6jGzhhC2gTmkEucY6c+U2CdHcXrWM
yTNlpqVTZ9CIdGoUZL06v76ZLNPg3LwTc4vXJ606Rwd9tszwU5WMXpoulG4a
3nMCfSW9AqpupTnYyPC56Itot9DMsS2TbeiqdDVnIM18aV8M06P0E/xwC5kx
5jCNGgHLaEY6ODhCE5SsEwwgwxuKcw5CH11SVo3KAQ9CK6WoEh+53Cavk1Dh
sh28sYjyJQgKTgakTFzVGWFcGDUNdCdGfjhaqJJsiXkhVm4dJ6ar5BS1/2ky
EZw/BgCZLsMihCkLlZEJy6SXgIViiktSaVNfBT/ARmEzE40BDjUSW+4cGDal
2sqz/K6l2KtVXxcHbymTa5wVznQ6e3sD+/vju5vzkwBzvMKAPVnqcvILqoQc
9BUhoy1T99QoS8u2LjZbNlPp+NZplQJxUqcaqMj6OVCvnIyaeMmyjprHe6UX
YTVjkzhlX22a90vzQJu6vRYsGznodaw/IXOJ41KcDtsr/UkMZaDTYzmJz3Jz
+dMbeg7UBhbUpAthy7mSXWcwVgZMKGuKEVeoq0liCr8fmzduMq9YFALTVktv
csWqmes8hl5zmvNwUVp+OiqeLbeSqhAIay/5UUCJ0AC8QW93LziFIzYlb9ej
W6Sm6+zQurO3wD58BFkdiMuZPwnkdv6nssD1msOuBOPf9kRoOeIRGFsZNkSu
MIGIEzxKnf321uWtAL52Js3lwtu5sZiP0YFZFx74GBHuIPGUqc51IiN+YBBv
4kP5tAgXMyzXg5ltdL70HT90EzqJFeQ7pamOQf6inMJlZqVI0sva2aou5Cbm
IdVQRd/1FHoruVKJh7NBGjU3al8Xc3UqZZ/HyzQkrkiCkrzR2ezPKJnCqY/M
dWReCLtJ2Z8sRa96sgvJ93sO2+FCDRLFUXSMJRpUHCLbkmTHyMv5/QLTrKGZ
ZE9hXT9DMnmknYJq4utDfGm0rV8/hkBaBGKeVxXJIhCTSRLBKYw4jdkUxLBg
k76W2QJHR2abI9wzOKtxTEZqYAl8tzv2rPKNnyNf1tWjYFdVQQd5M4ISwNhJ
j1I1pfxyVXt3MFgsiGMlVVhSd8jzoSmbCIma6QyIIxL2GplYa3Xd5uTha0Ge
8bLiOivyyrhW8KjdvG7uNL7yhLvoHfQgh3TXWnVutFjVqX2vtRBWciiGrPJQ
S8GYnirQiQsNVm0f8v8GXRnzEr0ESbKOjvZnc1Uh54pzozqUEiLHYppkni0z
Z4NlrGhVfsFSbiTK1lxVJojvs3CeRMh1tLc3XhJSS1IoPgKYjaosrMoAvARu
Oyy2FilbpF/b5mFKzqjzhcwPUXcbRcifUhFPaSIYMJUtgeCDXvjN5iRMS7Gp
A3Q4yCi4oyCDNPkgr9UOsw/A0vI5DHaRl1hUqwNCNAA1DP60jED6jDrB2zyD
Gf6QzMI0EiG8X87C+Rz4309lOAfFIizisIDHMOsQROEr/LuIS4TAdyK/DTMR
XIgYhIOZKD8kBJX/yGcZjFNVZWkoULr2F/wRcu2RiRAxitxc8IcCVNxzj4Di
ECuZmi/DG+qghTcYXQXfnS8R8YMLrLZAwS6gmQEazuc0NGli7+BIXoPmPA+2
pogaQTgtBNeH+DHvBWimOR7u7h1sy6P4fwEa3Tdp4uEAAA==

-->

</rfc>
