<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="info" consensus="false" docName="draft-shaw-rats-rear-00" indexInclude="true" ipr="trust200902" prepTime="2020-06-12T17:44:31" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="true" xml:lang="en">
  <!-- xml2rfc v2v3 conversion 2.40.0 -->
  <front>
    <title abbrev="REAR">Restful Attested Resources</title>
    <seriesInfo name="Internet-Draft" value="draft-shaw-rats-rear-00" stream="IETF"/>
    <author initials="A." surname="Shaw" fullname="Adrian Shaw">
      <organization showOnFrontPage="true">arm</organization>
      <address>
        <email>Adrian.Shaw@arm.com</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization showOnFrontPage="true">arm</organization>
      <address>
        <email>Hannes.Tschofenig@arm.com</email>
      </address>
    </author>
    <author initials="S." surname="Trofimov" fullname="Sergei Trofimov">
      <organization showOnFrontPage="true">arm</organization>
      <address>
        <email>Sergei.Trofimov@arm.com</email>
      </address>
    </author>
    <author initials="S." surname="Frost" fullname="Simon Frost">
      <organization showOnFrontPage="true">arm</organization>
      <address>
        <email>Simon.Frost@arm.com</email>
      </address>
    </author>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization showOnFrontPage="true">arm</organization>
      <address>
        <email>Thomas.Fossati@arm.com</email>
      </address>
    </author>
    <date month="06" year="2020" day="12"/>
    <area>Security</area>
    <workgroup>RATS</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract pn="section-abstract">
      <t pn="section-abstract-1">This memo describes a REST interface based on the RATS architecture that can be
used to retrieve attested system state, for example the reading of a security
critical sensor.  The objective is to present a common vocabulary of data
formats and basic protocol transactions that can be pieced together into a
cohesive interface that is capable of serving different attestation workflows.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t pn="section-boilerplate.1-1">
        This Internet-Draft is submitted in full conformance with the
        provisions of BCP 78 and BCP 79.
        </t>
        <t pn="section-boilerplate.1-2">
        Internet-Drafts are working documents of the Internet Engineering Task
        Force (IETF). Note that other groups may also distribute working
        documents as Internet-Drafts. The list of current Internet-Drafts is
        at <eref target="https://datatracker.ietf.org/drafts/current/" brackets="none"/>.
        </t>
        <t pn="section-boilerplate.1-3">
        Internet-Drafts are draft documents valid for a maximum of six months
        and may be updated, replaced, or obsoleted by other documents at any
        time. It is inappropriate to use Internet-Drafts as reference
        material or to cite them other than as "work in progress."
        </t>
        <t pn="section-boilerplate.1-4">
        This Internet-Draft will expire on 14 December 2020.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t pn="section-boilerplate.2-1">
            Copyright (c) 2020 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Simplified BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Simplified BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-use-cases">Use Cases</xref></t>
              </li>
              <li pn="section-toc.1-1.1.2.2">
                <t keepWithNext="true" pn="section-toc.1-1.1.2.2.1"><xref derivedContent="1.2" format="counter" sectionFormat="of" target="section-1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-document-organisation">Document Organisation</xref></t>
              </li>
              <li pn="section-toc.1-1.1.2.3">
                <t keepWithNext="true" pn="section-toc.1-1.1.2.3.1"><xref derivedContent="1.3" format="counter" sectionFormat="of" target="section-1.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-conventions-used-in-this-do">Conventions used in this document</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-abstract-mechanism">Abstract Mechanism</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-attester-interface">Attester Interface</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2.1.2">
                  <li pn="section-toc.1-1.2.2.1.2.1">
                    <t keepWithNext="true" pn="section-toc.1-1.2.2.1.2.1.1"><xref derivedContent="2.1.1" format="counter" sectionFormat="of" target="section-2.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-resource-validation">Resource Validation</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.2.2.2">
                <t keepWithNext="true" pn="section-toc.1-1.2.2.2.1"><xref derivedContent="2.2" format="counter" sectionFormat="of" target="section-2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-verifier-interface">Verifier Interface</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2.2.2">
                  <li pn="section-toc.1-1.2.2.2.2.1">
                    <t keepWithNext="true" pn="section-toc.1-1.2.2.2.2.1.1"><xref derivedContent="2.2.1" format="counter" sectionFormat="of" target="section-2.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-attestation-result-validati">Attestation Result Validation</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.2.2.3">
                <t keepWithNext="true" pn="section-toc.1-1.2.2.3.1"><xref derivedContent="2.3" format="counter" sectionFormat="of" target="section-2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-example-compositions">Example Compositions</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2.3.2">
                  <li pn="section-toc.1-1.2.2.3.2.1">
                    <t keepWithNext="true" pn="section-toc.1-1.2.2.3.2.1.1"><xref derivedContent="2.3.1" format="counter" sectionFormat="of" target="section-2.3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-background-check-with-nonce">Background Check with Nonce-based Freshness</xref></t>
                  </li>
                  <li pn="section-toc.1-1.2.2.3.2.2">
                    <t keepWithNext="true" pn="section-toc.1-1.2.2.3.2.2.1"><xref derivedContent="2.3.2" format="counter" sectionFormat="of" target="section-2.3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-background-check-with-times">Background Check with Timestamp-based Freshness</xref></t>
                  </li>
                  <li pn="section-toc.1-1.2.2.3.2.3">
                    <t keepWithNext="true" pn="section-toc.1-1.2.2.3.2.3.1"><xref derivedContent="2.3.3" format="counter" sectionFormat="of" target="section-2.3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-passport-with-timestamp-bas">Passport with Timestamp-based Freshness</xref></t>
                  </li>
                  <li pn="section-toc.1-1.2.2.3.2.4">
                    <t keepWithNext="true" pn="section-toc.1-1.2.2.3.2.4.1"><xref derivedContent="2.3.4" format="counter" sectionFormat="of" target="section-2.3.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-timestamp-based-uni-directi">Timestamp-based Uni-directional</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t keepWithNext="true" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-rest-instantiation">REST Instantiation</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t keepWithNext="true" pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-basic-data-formats">Basic Data Formats</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2.1.2">
                  <li pn="section-toc.1-1.3.2.1.2.1">
                    <t keepWithNext="true" pn="section-toc.1-1.3.2.1.2.1.1"><xref derivedContent="3.1.1" format="counter" sectionFormat="of" target="section-3.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-resource">Resource</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.1.2.2">
                    <t keepWithNext="true" pn="section-toc.1-1.3.2.1.2.2.1"><xref derivedContent="3.1.2" format="counter" sectionFormat="of" target="section-3.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-nonce">Nonce</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.1.2.3">
                    <t keepWithNext="true" pn="section-toc.1-1.3.2.1.2.3.1"><xref derivedContent="3.1.3" format="counter" sectionFormat="of" target="section-3.1.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-timestamp">Timestamp</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.1.2.4">
                    <t keepWithNext="true" pn="section-toc.1-1.3.2.1.2.4.1"><xref derivedContent="3.1.4" format="counter" sectionFormat="of" target="section-3.1.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-evidence">Evidence</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.1.2.5">
                    <t keepWithNext="true" pn="section-toc.1-1.3.2.1.2.5.1"><xref derivedContent="3.1.5" format="counter" sectionFormat="of" target="section-3.1.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-attestation-result">Attestation Result</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.3.2.2">
                <t keepWithNext="true" pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-request-and-response-payloa">Request and Response Payloads</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2.2.2">
                  <li pn="section-toc.1-1.3.2.2.2.1">
                    <t keepWithNext="true" pn="section-toc.1-1.3.2.2.2.1.1"><xref derivedContent="3.2.1" format="counter" sectionFormat="of" target="section-3.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requesting-an-attested-reso">Requesting an Attested Resource</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.2">
                    <t keepWithNext="true" pn="section-toc.1-1.3.2.2.2.2.1"><xref derivedContent="3.2.2" format="counter" sectionFormat="of" target="section-3.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-attested-resource">Attested Resource</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.3">
                    <t keepWithNext="true" pn="section-toc.1-1.3.2.2.2.3.1"><xref derivedContent="3.2.3" format="counter" sectionFormat="of" target="section-3.2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-request-for-attestation-res">Request for Attestation Result</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.4">
                    <t keepWithNext="true" pn="section-toc.1-1.3.2.2.2.4.1"><xref derivedContent="3.2.4" format="counter" sectionFormat="of" target="section-3.2.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-verifier-response">Verifier Response</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.3.2.3">
                <t keepWithNext="true" pn="section-toc.1-1.3.2.3.1"><xref derivedContent="3.3" format="counter" sectionFormat="of" target="section-3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-interaction-model">Interaction Model</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2.3.2">
                  <li pn="section-toc.1-1.3.2.3.2.1">
                    <t keepWithNext="true" pn="section-toc.1-1.3.2.3.2.1.1"><xref derivedContent="3.3.1" format="counter" sectionFormat="of" target="section-3.3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-channel-security-considerat">Channel Security Considerations</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.3.2.2">
                    <t keepWithNext="true" pn="section-toc.1-1.3.2.3.2.2.1"><xref derivedContent="3.3.2" format="counter" sectionFormat="of" target="section-3.3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-urls">URLs</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.3.2.3">
                    <t keepWithNext="true" pn="section-toc.1-1.3.2.3.2.3.1"><xref derivedContent="3.3.3" format="counter" sectionFormat="of" target="section-3.3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-methods">Methods</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.3.2.4">
                    <t keepWithNext="true" pn="section-toc.1-1.3.2.3.2.4.1"><xref derivedContent="3.3.4" format="counter" sectionFormat="of" target="section-3.3.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-multicast-support">Multicast Support</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.3.2.5">
                    <t keepWithNext="true" pn="section-toc.1-1.3.2.3.2.5.1"><xref derivedContent="3.3.5" format="counter" sectionFormat="of" target="section-3.3.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-examples">Examples</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.4">
            <t keepWithNext="true" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-discovery">Discovery</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t keepWithNext="true" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-resource-directory">Resource Directory</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.1.2">
                  <li pn="section-toc.1-1.4.2.1.2.1">
                    <t keepWithNext="true" pn="section-toc.1-1.4.2.1.2.1.1"><xref derivedContent="4.1.1" format="counter" sectionFormat="of" target="section-4.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-attested-resource-registrat">Attested Resource Registration</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.1.2.2">
                    <t keepWithNext="true" pn="section-toc.1-1.4.2.1.2.2.1"><xref derivedContent="4.1.2" format="counter" sectionFormat="of" target="section-4.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-verifier-resource-registrat">Verifier Resource Registration</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t keepWithNext="true" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t keepWithNext="true" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-privacy-considerations">Privacy Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t keepWithNext="true" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2">
              <li pn="section-toc.1-1.7.2.1">
                <t keepWithNext="true" pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-model-architecture-for-the-">Model Architecture for the Origin</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.8">
            <t keepWithNext="true" pn="section-toc.1-1.8.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-8"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t keepWithNext="true" pn="section-toc.1-1.9.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-9"/><xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.9.2">
              <li pn="section-toc.1-1.9.2.1">
                <t keepWithNext="true" pn="section-toc.1-1.9.2.1.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-9.1"/><xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.9.2.2">
                <t keepWithNext="true" pn="section-toc.1-1.9.2.2.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-9.2"/><xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.10">
            <t keepWithNext="true" pn="section-toc.1-1.10.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t pn="section-1-1">This memo describes a REST <xref target="Fielding" format="default" sectionFormat="of" derivedContent="Fielding"/> interface based on the RATS
architecture <xref target="I-D.ietf-rats-architecture" format="default" sectionFormat="of" derivedContent="I-D.ietf-rats-architecture"/> that can be used to retrieve
attested system state, for example the reading of a security critical sensor.</t>
      <t pn="section-1-2">We present a simple vocabulary of data formats and basic protocol transactions
that can be pieced together into a cohesive interface capable of serving
different attestation workflows.  At a minimum, we want to cater for the
"background check" and "passport" topological models, and for freshness of
attestation based on nonces as well as timestamps.</t>
      <t pn="section-1-3">The obvious advantage of sharing a uniform interface across different actors is
it creates an ecosystem in which variability is minimised and so is the need to
add complex and often fragile logics into the deployed components, e.g., data
format and protocol translation.  Besides, using the familiar REST toolbox
provides additional benefits in terms of developer friendliness as well as code
base and infrastructure reuse (e.g., web caching).</t>
      <section anchor="use-cases" numbered="true" toc="include" removeInRFC="false" pn="section-1.1">
        <name slugifiedName="name-use-cases">Use Cases</name>
        <t pn="section-1.1-1">The primary use case is that of a device that needs to provide application
state to third parties with strong authenticity.</t>
        <t pn="section-1.1-2">This is a common situation in critical infrastructure systems where an actuator
device needs some assurance that the sensing equipment is in pristine state
before acting on its signals.  Here, the sensor would expose its safety
critical samples via an attested resource whose authenticity can be verified by
the actuator.</t>
        <t pn="section-1.1-3">Another potential application is a fleet controller that needs to know the
current state of its dependent devices to inform its next actions (e.g.,
scheduling a firmware update campaign).  Here, the dependent devices uniformly
expose the same resource (e.g., the list of currently installed software
components) to the controller, which can decide, based on the information
provided, which devices need a certain security patch.</t>
        <t pn="section-1.1-4">Many more use cases exist.</t>
      </section>
      <section anchor="document-organisation" numbered="true" toc="include" removeInRFC="false" pn="section-1.2">
        <name slugifiedName="name-document-organisation">Document Organisation</name>
        <t pn="section-1.2-1">The remainder of this document describes:</t>
        <ul spacing="compact" bare="false" empty="false" pn="section-1.2-2">
          <li pn="section-1.2-2.1">An abstract protocol that allows a device to expose arbitrary attested
system state, which can be consumed by third parties (<xref target="sec-abstract-mech" format="default" sectionFormat="of" derivedContent="Section 2"/>);</li>
          <li pn="section-1.2-2.2">An instantiation of said abstract protocol as a set of uniform data formats
and interaction primitives based on the REST paradigm for both
HTTP <xref target="RFC7230" format="default" sectionFormat="of" derivedContent="RFC7230"/> and CoAP <xref target="RFC7252" format="default" sectionFormat="of" derivedContent="RFC7252"/> (<xref target="sec-rest-instantiation" format="default" sectionFormat="of" derivedContent="Section 3"/>);</li>
          <li pn="section-1.2-2.3">A way to advertise and discover said capability (<xref target="sec-discovery" format="default" sectionFormat="of" derivedContent="Section 4"/>).</li>
        </ul>
      </section>
      <section anchor="conventions-used-in-this-document" numbered="true" toc="include" removeInRFC="false" pn="section-1.3">
        <name slugifiedName="name-conventions-used-in-this-do">Conventions used in this document</name>
        <t pn="section-1.3-1">The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="sec-abstract-mech" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-abstract-mechanism">Abstract Mechanism</name>
      <t pn="section-2-1">The protocol principals are the three RATS actors: the attester (A), the
relying party (RP) and the verifier (V).</t>
      <t pn="section-2-2">It is assumed that A either directly owns a resource, r, or has a direct trust
relationship with the resource owner.</t>
      <t pn="section-2-3">In the following, <tt>n</tt> and <tt>t</tt> are freshness indicators: <tt>n</tt> is an initiator
provided nonce, <tt>t</tt> is a timestamp sourced by the responder.  When using
timestamp based freshness, producers' and consumers' clocks MUST be
synchronised.</t>
      <section anchor="sec-attester-iface" numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-attester-interface">Attester Interface</name>
        <t pn="section-2.1-1">The interface to the Attester is illustrated in <xref target="fig-attester-iface" format="default" sectionFormat="of" derivedContent="Figure 1"/>.</t>
        <t pn="section-2.1-2">X is any entity interacting with the Attester, typically a Relying Party, which
wants to retrieve an attested resource.</t>
        <t pn="section-2.1-3">A function <tt>E(n_X, r, t_A)</tt> is used by A to compute an evidence report binding
the device status to the resource (<tt>r</tt>) together with the freshness indicators
<tt>n_X</tt> and <tt>t_A</tt>.   Typically, only one of <tt>n_X</tt> or <tt>t_A</tt> will be present.</t>
        <t pn="section-2.1-4"><tt>E()</tt> outputs an EAT token <xref target="I-D.ietf-rats-eat" format="default" sectionFormat="of" derivedContent="I-D.ietf-rats-eat"/>, <tt>E</tt>, carrying a <tt>nonce</tt>
claim that is used as described in the following.</t>
        <t pn="section-2.1-5">The binding between <tt>n_X</tt>, <tt>t_A</tt> and <tt>r</tt> is obtained by hashing their
concatenation, <tt>H(n_X || r || t_A)</tt>, and storing the result in the <tt>nonce</tt>
claim which is then cryptographically signed by the Attester as part of the
produced evidence, <tt>E</tt>.  The presence of any freshness indicator (i.e., <tt>n_X</tt>
or <tt>t_A</tt>) is optional.  For the purpose of computing <tt>E</tt>, a nil freshness
indicator is replaced by the zero-length string, "".  If <tt>t_A != nil</tt>, then its
value needs to be sent back to the requester as an additional explicit protocol
entity.</t>
        <t pn="section-2.1-6">Optionally, an attestation result <tt>R</tt> computed on evidence <tt>E</tt> MAY be returned
by an Attester that acts as a forwarder for a Verifier.</t>
        <figure anchor="fig-attester-iface" align="left" suppress-title="false" pn="figure-1">
          <name slugifiedName="name-attester-interface-2">Attester Interface</name>
          <artset pn="section-2.1-7.1">
            <artwork type="svg" align="center" name="" alt="" pn="section-2.1-7.1.1"><svg xmlns="http://www.w3.org/2000/svg" class="diagram" version="1.1" height="121" width="344" viewBox="0 0 344.0 121.0">
                <g transform="translate(8,16)">
                  <path d="M 8,48 L 320,48" fill="none" stroke="black"/>
                  <path d="M 16,80 L 328,80" fill="none" stroke="black"/>
                  <path d="M 8,32 L 8,48" fill="none" stroke="black"/>
                  <path d="M 8,48 L 8,96" fill="none" stroke="black"/>
                  <path d="M 328,32 L 328,80" fill="none" stroke="black"/>
                  <path d="M 328,80 L 328,96" fill="none" stroke="black"/>
                  <polygon points="24.000000,80.000000 12.000000,74.400002 12.000000,85.599998" transform="rotate(180.000000, 16.000000, 80.000000)" fill="black"/>
                  <polygon points="328.000000,48.000000 316.000000,42.400002 316.000000,53.599998" transform="rotate(0.000000, 320.000000, 48.000000)" fill="black"/>
                  <circle cx="8" cy="48" r="6" fill="white" stroke="black"/>
                  <circle cx="328" cy="80" r="6" fill="white" stroke="black"/>
                  <text text-anchor="middle" font-family="monospace" x="296" y="68" fill="black" font-size="1em">n</text>
                  <text text-anchor="middle" font-family="monospace" x="312" y="68" fill="black" font-size="1em">l</text>
                  <text text-anchor="middle" font-family="monospace" x="8" y="20" fill="black" font-size="1em">X</text>
                  <text text-anchor="middle" font-family="monospace" x="152" y="36" fill="black" font-size="1em">X</text>
                  <text text-anchor="middle" font-family="monospace" x="184" y="68" fill="black" font-size="1em">r</text>
                  <text text-anchor="middle" font-family="monospace" x="88" y="68" fill="black" font-size="1em">n</text>
                  <text text-anchor="middle" font-family="monospace" x="112" y="68" fill="black" font-size="1em">,</text>
                  <text text-anchor="middle" font-family="monospace" x="144" y="68" fill="black" font-size="1em">n</text>
                  <text text-anchor="middle" font-family="monospace" x="288" y="68" fill="black" font-size="1em">=</text>
                  <text text-anchor="middle" font-family="monospace" x="168" y="36" fill="black" font-size="1em">n</text>
                  <text text-anchor="middle" font-family="monospace" x="176" y="36" fill="black" font-size="1em">i</text>
                  <text text-anchor="middle" font-family="monospace" x="32" y="68" fill="black" font-size="1em">r</text>
                  <text text-anchor="middle" font-family="monospace" x="136" y="68" fill="black" font-size="1em">(</text>
                  <text text-anchor="middle" font-family="monospace" x="168" y="68" fill="black" font-size="1em">,</text>
                  <text text-anchor="middle" font-family="monospace" x="240" y="68" fill="black" font-size="1em">,</text>
                  <text text-anchor="middle" font-family="monospace" x="264" y="68" fill="black" font-size="1em">(</text>
                  <text text-anchor="middle" font-family="monospace" x="40" y="68" fill="black" font-size="1em">,</text>
                  <text text-anchor="middle" font-family="monospace" x="72" y="68" fill="black" font-size="1em">A</text>
                  <text text-anchor="middle" font-family="monospace" x="104" y="68" fill="black" font-size="1em">l</text>
                  <text text-anchor="middle" font-family="monospace" x="80" y="68" fill="black" font-size="1em">=</text>
                  <text text-anchor="middle" font-family="monospace" x="280" y="68" fill="black" font-size="1em">)</text>
                  <text text-anchor="middle" font-family="monospace" x="328" y="20" fill="black" font-size="1em">A</text>
                  <text text-anchor="middle" font-family="monospace" x="144" y="36" fill="black" font-size="1em">_</text>
                  <text text-anchor="middle" font-family="monospace" x="184" y="36" fill="black" font-size="1em">l</text>
                  <text text-anchor="middle" font-family="monospace" x="232" y="68" fill="black" font-size="1em">)</text>
                  <text text-anchor="middle" font-family="monospace" x="152" y="68" fill="black" font-size="1em">_</text>
                  <text text-anchor="middle" font-family="monospace" x="160" y="68" fill="black" font-size="1em">X</text>
                  <text text-anchor="middle" font-family="monospace" x="304" y="68" fill="black" font-size="1em">i</text>
                  <text text-anchor="middle" font-family="monospace" x="216" y="68" fill="black" font-size="1em">_</text>
                  <text text-anchor="middle" font-family="monospace" x="224" y="68" fill="black" font-size="1em">A</text>
                  <text text-anchor="middle" font-family="monospace" x="272" y="68" fill="black" font-size="1em">E</text>
                  <text text-anchor="middle" font-family="monospace" x="56" y="68" fill="black" font-size="1em">t</text>
                  <text text-anchor="middle" font-family="monospace" x="64" y="68" fill="black" font-size="1em">_</text>
                  <text text-anchor="middle" font-family="monospace" x="128" y="68" fill="black" font-size="1em">E</text>
                  <text text-anchor="middle" font-family="monospace" x="192" y="68" fill="black" font-size="1em">,</text>
                  <text text-anchor="middle" font-family="monospace" x="208" y="68" fill="black" font-size="1em">t</text>
                  <text text-anchor="middle" font-family="monospace" x="256" y="68" fill="black" font-size="1em">R</text>
                  <text text-anchor="middle" font-family="monospace" x="136" y="36" fill="black" font-size="1em">n</text>
                  <text text-anchor="middle" font-family="monospace" x="160" y="36" fill="black" font-size="1em">=</text>
                  <text text-anchor="middle" font-family="monospace" x="96" y="68" fill="black" font-size="1em">i</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center" name="" alt="" pn="section-2.1-7.1.2"><![CDATA[
 X                                       A
 |               n_X=nil                 |
 o-------------------------------------->|
 |  r, t_A=nil, E(n_X, r, t_A), R(E)=nil |
 |<--------------------------------------o
 |                                       |
]]></artwork>
          </artset>
        </figure>
        <section anchor="resource-validation" numbered="true" toc="include" removeInRFC="false" pn="section-2.1.1">
          <name slugifiedName="name-resource-validation">Resource Validation</name>
          <t pn="section-2.1.1-1">Given an Appraisal Policy for Evidence <tt>APE</tt> and an Appraisal Policy for
Attestation Result <tt>APR</tt>, X accepts <tt>r</tt> if and only if:</t>
          <ul spacing="compact" bare="false" empty="false" pn="section-2.1.1-2">
            <li pn="section-2.1.1-2.1">
              <tt>E | APE =&gt; true</tt></li>
            <li pn="section-2.1.1-2.2">
              <tt>E.nonce == H(n_X || r || t_A)</tt></li>
          </ul>
          <t pn="section-2.1.1-3">If <tt>R(E)!=nil</tt>, two further conditions MUST hold:</t>
          <ul spacing="compact" bare="false" empty="false" pn="section-2.1.1-4">
            <li pn="section-2.1.1-4.1">
              <tt>R(E) | APR =&gt; true</tt></li>
            <li pn="section-2.1.1-4.2">
              <tt>R.nonce == H("" || E || "")</tt></li>
          </ul>
          <t pn="section-2.1.1-5">Note that not all the appraisal operations are computed directly by X.  For
example, <tt>E | APE</tt> is typically delegated to a trusted Verifier.</t>
        </section>
      </section>
      <section anchor="sec-verifier-iface" numbered="true" toc="include" removeInRFC="false" pn="section-2.2">
        <name slugifiedName="name-verifier-interface">Verifier Interface</name>
        <t pn="section-2.2-1">The interface to the Verifier is illustrated in <xref target="fig-verifier-iface" format="default" sectionFormat="of" derivedContent="Figure 2"/>.</t>
        <t pn="section-2.2-2">Y is any entity interacting with the Verifier, e.g., a Relying Party or an
Attester, which supplies an evidence and receives an attestation result.</t>
        <t pn="section-2.2-3">The function <tt>R(n_Y, E, t_V)</tt> is used by V to compute the attestation result
over <tt>E</tt> using an implicit Appraisal Policy for Evidence <tt>APE</tt>.  The result is
cryptographically signed by V and bound to any available freshness indicator.</t>
        <t pn="section-2.2-4"><tt>R()</tt> outputs an EAT token <xref target="I-D.ietf-rats-eat" format="default" sectionFormat="of" derivedContent="I-D.ietf-rats-eat"/>, <tt>R</tt>, carrying at a minimum:</t>
        <ul spacing="compact" bare="false" empty="false" pn="section-2.2-5">
          <li pn="section-2.2-5.1">a <tt>result</tt> claim carrying a boolean value that reflects the validity of the
submitted evidence given the Appraisal Policy for Evidence used by the
Verifier;</li>
          <li pn="section-2.2-5.2">a <tt>nonce</tt> claim that is used as described in the following.</li>
        </ul>
        <t pn="section-2.2-6">The token MAY contain further information associated with the evidence
validation process.</t>
        <t pn="section-2.2-7">The binding between <tt>n_Y</tt>, <tt>t_V</tt> and <tt>E</tt> is obtained by hashing their
concatenation, <tt>H(n_Y || E || t_V)</tt>, and storing the result in the <tt>nonce</tt>
claim which is then cryptographically signed by the Verifier as part of the
produced attestation result, <tt>R</tt>.  The presence of any freshness indicator
(i.e., <tt>n_Y</tt> or <tt>t_V</tt>) is optional.  For the purpose of computing <tt>R</tt>, a nil
freshness indicator is replaced by the zero-length string, "".</t>
        <figure anchor="fig-verifier-iface" align="left" suppress-title="false" pn="figure-2">
          <name slugifiedName="name-verifier-interface-2">Verifier Interface</name>
          <artset pn="section-2.2-8.1">
            <artwork type="svg" align="center" name="" alt="" pn="section-2.2-8.1.1"><svg xmlns="http://www.w3.org/2000/svg" class="diagram" version="1.1" height="121" width="272" viewBox="0 0 272.0 121.0">
                <g transform="translate(8,16)">
                  <path d="M 8,48 L 248,48" fill="none" stroke="black"/>
                  <path d="M 16,80 L 256,80" fill="none" stroke="black"/>
                  <path d="M 8,32 L 8,48" fill="none" stroke="black"/>
                  <path d="M 8,48 L 8,96" fill="none" stroke="black"/>
                  <path d="M 256,32 L 256,80" fill="none" stroke="black"/>
                  <path d="M 256,80 L 256,96" fill="none" stroke="black"/>
                  <polygon points="24.000000,80.000000 12.000000,74.400002 12.000000,85.599998" transform="rotate(180.000000, 16.000000, 80.000000)" fill="black"/>
                  <polygon points="256.000000,48.000000 244.000000,42.400002 244.000000,53.599998" transform="rotate(0.000000, 248.000000, 48.000000)" fill="black"/>
                  <circle cx="8" cy="48" r="6" fill="white" stroke="black"/>
                  <circle cx="256" cy="80" r="6" fill="white" stroke="black"/>
                  <text text-anchor="middle" font-family="monospace" x="144" y="36" fill="black" font-size="1em">,</text>
                  <text text-anchor="middle" font-family="monospace" x="160" y="68" fill="black" font-size="1em">,</text>
                  <text text-anchor="middle" font-family="monospace" x="184" y="68" fill="black" font-size="1em">,</text>
                  <text text-anchor="middle" font-family="monospace" x="112" y="36" fill="black" font-size="1em">=</text>
                  <text text-anchor="middle" font-family="monospace" x="88" y="68" fill="black" font-size="1em">i</text>
                  <text text-anchor="middle" font-family="monospace" x="104" y="68" fill="black" font-size="1em">,</text>
                  <text text-anchor="middle" font-family="monospace" x="208" y="68" fill="black" font-size="1em">_</text>
                  <text text-anchor="middle" font-family="monospace" x="96" y="36" fill="black" font-size="1em">_</text>
                  <text text-anchor="middle" font-family="monospace" x="136" y="36" fill="black" font-size="1em">l</text>
                  <text text-anchor="middle" font-family="monospace" x="56" y="68" fill="black" font-size="1em">_</text>
                  <text text-anchor="middle" font-family="monospace" x="64" y="68" fill="black" font-size="1em">V</text>
                  <text text-anchor="middle" font-family="monospace" x="176" y="68" fill="black" font-size="1em">E</text>
                  <text text-anchor="middle" font-family="monospace" x="8" y="20" fill="black" font-size="1em">Y</text>
                  <text text-anchor="middle" font-family="monospace" x="88" y="36" fill="black" font-size="1em">n</text>
                  <text text-anchor="middle" font-family="monospace" x="144" y="68" fill="black" font-size="1em">_</text>
                  <text text-anchor="middle" font-family="monospace" x="160" y="36" fill="black" font-size="1em">E</text>
                  <text text-anchor="middle" font-family="monospace" x="96" y="68" fill="black" font-size="1em">l</text>
                  <text text-anchor="middle" font-family="monospace" x="216" y="68" fill="black" font-size="1em">V</text>
                  <text text-anchor="middle" font-family="monospace" x="128" y="68" fill="black" font-size="1em">(</text>
                  <text text-anchor="middle" font-family="monospace" x="136" y="68" fill="black" font-size="1em">n</text>
                  <text text-anchor="middle" font-family="monospace" x="256" y="20" fill="black" font-size="1em">V</text>
                  <text text-anchor="middle" font-family="monospace" x="104" y="36" fill="black" font-size="1em">Y</text>
                  <text text-anchor="middle" font-family="monospace" x="120" y="36" fill="black" font-size="1em">n</text>
                  <text text-anchor="middle" font-family="monospace" x="48" y="68" fill="black" font-size="1em">t</text>
                  <text text-anchor="middle" font-family="monospace" x="72" y="68" fill="black" font-size="1em">=</text>
                  <text text-anchor="middle" font-family="monospace" x="80" y="68" fill="black" font-size="1em">n</text>
                  <text text-anchor="middle" font-family="monospace" x="224" y="68" fill="black" font-size="1em">)</text>
                  <text text-anchor="middle" font-family="monospace" x="120" y="68" fill="black" font-size="1em">R</text>
                  <text text-anchor="middle" font-family="monospace" x="128" y="36" fill="black" font-size="1em">i</text>
                  <text text-anchor="middle" font-family="monospace" x="152" y="68" fill="black" font-size="1em">Y</text>
                  <text text-anchor="middle" font-family="monospace" x="200" y="68" fill="black" font-size="1em">t</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center" name="" alt="" pn="section-2.2-8.1.2"><![CDATA[
 Y                              V
 |         n_Y=nil, E           |
 o----------------------------->|
 |    t_V=nil, R(n_Y, E, t_V)   |
 |<-----------------------------o
 |                              |
]]></artwork>
          </artset>
        </figure>
        <section anchor="attestation-result-validation" numbered="true" toc="include" removeInRFC="false" pn="section-2.2.1">
          <name slugifiedName="name-attestation-result-validati">Attestation Result Validation</name>
          <t pn="section-2.2.1-1">Given an Appraisal Policy for Attestation Result <tt>APR</tt>, Y accepts <tt>R</tt> if and
only if:</t>
          <ul spacing="compact" bare="false" empty="false" pn="section-2.2.1-2">
            <li pn="section-2.2.1-2.1">
              <tt>R(E) | APR =&gt; true</tt></li>
            <li pn="section-2.2.1-2.2">
              <tt>R.nonce == H(n_Y || E || t_V)</tt></li>
          </ul>
        </section>
      </section>
      <section anchor="example-compositions" numbered="true" toc="include" removeInRFC="false" pn="section-2.3">
        <name slugifiedName="name-example-compositions">Example Compositions</name>
        <section anchor="background-check-with-nonce-based-freshness" numbered="true" toc="include" removeInRFC="false" pn="section-2.3.1">
          <name slugifiedName="name-background-check-with-nonce">Background Check with Nonce-based Freshness</name>
          <figure anchor="fig-bg-check-nonce" align="left" suppress-title="false" pn="figure-3">
            <name slugifiedName="name-background-check-with-nonce-">Background Check with Nonce-based Freshness</name>
            <artset pn="section-2.3.1-1.1">
              <artwork type="svg" align="center" name="" alt="" pn="section-2.3.1-1.1.1"><svg xmlns="http://www.w3.org/2000/svg" class="diagram" version="1.1" height="185" width="520" viewBox="0 0 520.0 185.0">
                  <g transform="translate(8,16)">
                    <path d="M 16,48 L 256,48" fill="none" stroke="black"/>
                    <path d="M 8,80 L 248,80" fill="none" stroke="black"/>
                    <path d="M 256,112 L 496,112" fill="none" stroke="black"/>
                    <path d="M 264,144 L 504,144" fill="none" stroke="black"/>
                    <path d="M 8,32 L 8,80" fill="none" stroke="black"/>
                    <path d="M 8,80 L 8,160" fill="none" stroke="black"/>
                    <path d="M 256,32 L 256,48" fill="none" stroke="black"/>
                    <path d="M 256,48 L 256,112" fill="none" stroke="black"/>
                    <path d="M 256,112 L 256,160" fill="none" stroke="black"/>
                    <path d="M 504,32 L 504,144" fill="none" stroke="black"/>
                    <path d="M 504,144 L 504,160" fill="none" stroke="black"/>
                    <polygon points="24.000000,48.000000 12.000000,42.400002 12.000000,53.599998" transform="rotate(180.000000, 16.000000, 48.000000)" fill="black"/>
                    <polygon points="256.000000,80.000000 244.000000,74.400002 244.000000,85.599998" transform="rotate(0.000000, 248.000000, 80.000000)" fill="black"/>
                    <polygon points="272.000000,144.000000 260.000000,138.399994 260.000000,149.600006" transform="rotate(180.000000, 264.000000, 144.000000)" fill="black"/>
                    <polygon points="504.000000,112.000000 492.000000,106.400002 492.000000,117.599998" transform="rotate(0.000000, 496.000000, 112.000000)" fill="black"/>
                    <circle cx="8" cy="80" r="6" fill="white" stroke="black"/>
                    <circle cx="256" cy="48" r="6" fill="white" stroke="black"/>
                    <circle cx="256" cy="112" r="6" fill="white" stroke="black"/>
                    <circle cx="504" cy="144" r="6" fill="white" stroke="black"/>
                    <text text-anchor="middle" font-family="monospace" x="264" y="20" fill="black" font-size="1em">P</text>
                    <text text-anchor="middle" font-family="monospace" x="128" y="36" fill="black" font-size="1em">_</text>
                    <text text-anchor="middle" font-family="monospace" x="384" y="132" fill="black" font-size="1em">E</text>
                    <text text-anchor="middle" font-family="monospace" x="160" y="68" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="344" y="132" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="432" y="132" fill="black" font-size="1em">)</text>
                    <text text-anchor="middle" font-family="monospace" x="352" y="132" fill="black" font-size="1em">i</text>
                    <text text-anchor="middle" font-family="monospace" x="360" y="132" fill="black" font-size="1em">l</text>
                    <text text-anchor="middle" font-family="monospace" x="72" y="68" fill="black" font-size="1em">r</text>
                    <text text-anchor="middle" font-family="monospace" x="112" y="68" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="136" y="68" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="328" y="132" fill="black" font-size="1em">R</text>
                    <text text-anchor="middle" font-family="monospace" x="96" y="68" fill="black" font-size="1em">E</text>
                    <text text-anchor="middle" font-family="monospace" x="128" y="68" fill="black" font-size="1em">X</text>
                    <text text-anchor="middle" font-family="monospace" x="368" y="132" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="192" y="68" fill="black" font-size="1em">l</text>
                    <text text-anchor="middle" font-family="monospace" x="200" y="68" fill="black" font-size="1em">)</text>
                    <text text-anchor="middle" font-family="monospace" x="408" y="132" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="416" y="132" fill="black" font-size="1em">i</text>
                    <text text-anchor="middle" font-family="monospace" x="136" y="36" fill="black" font-size="1em">X</text>
                    <text text-anchor="middle" font-family="monospace" x="80" y="68" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="104" y="68" fill="black" font-size="1em">(</text>
                    <text text-anchor="middle" font-family="monospace" x="176" y="68" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="336" y="132" fill="black" font-size="1em">(</text>
                    <text text-anchor="middle" font-family="monospace" x="424" y="132" fill="black" font-size="1em">l</text>
                    <text text-anchor="middle" font-family="monospace" x="504" y="20" fill="black" font-size="1em">V</text>
                    <text text-anchor="middle" font-family="monospace" x="120" y="68" fill="black" font-size="1em">_</text>
                    <text text-anchor="middle" font-family="monospace" x="152" y="68" fill="black" font-size="1em">r</text>
                    <text text-anchor="middle" font-family="monospace" x="184" y="68" fill="black" font-size="1em">i</text>
                    <text text-anchor="middle" font-family="monospace" x="392" y="132" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="8" y="20" fill="black" font-size="1em">A</text>
                    <text text-anchor="middle" font-family="monospace" x="256" y="20" fill="black" font-size="1em">R</text>
                    <text text-anchor="middle" font-family="monospace" x="120" y="36" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="384" y="100" fill="black" font-size="1em">E</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center" name="" alt="" pn="section-2.3.1-1.1.2"><![CDATA[
 A                              RP                             V
 |             n_X              |                              |
 |<-----------------------------o                              |
 |       r, E(n_X, r, nil)      |                              |
 o----------------------------->|                              |
 |                              |               E              |
 |                              o----------------------------->|
 |                              |        R(nil, E, nil)        |
 |                              |<-----------------------------o
 |                              |                              |
]]></artwork>
            </artset>
          </figure>
          <t pn="section-2.3.1-2">RP accepts <tt>r</tt> if and only if:</t>
          <ul spacing="compact" bare="false" empty="false" pn="section-2.3.1-3">
            <li pn="section-2.3.1-3.1">
              <tt>E | APE =&gt; true</tt></li>
            <li pn="section-2.3.1-3.2">
              <tt>E.nonce == H(n_X || r || "")</tt></li>
            <li pn="section-2.3.1-3.3">
              <tt>R | APR =&gt; true</tt>, or equivalently <tt>R.result == true</tt></li>
            <li pn="section-2.3.1-3.4">
              <tt>R.nonce == H("" || E || "")</tt></li>
          </ul>
        </section>
        <section anchor="background-check-with-timestamp-based-freshness" numbered="true" toc="include" removeInRFC="false" pn="section-2.3.2">
          <name slugifiedName="name-background-check-with-times">Background Check with Timestamp-based Freshness</name>
          <figure anchor="fig-bg-check-timestamp" align="left" suppress-title="false" pn="figure-4">
            <name slugifiedName="name-background-check-with-timest">Background Check with Timestamp-based Freshness</name>
            <artset pn="section-2.3.2-1.1">
              <artwork type="svg" align="center" name="" alt="" pn="section-2.3.2-1.1.1"><svg xmlns="http://www.w3.org/2000/svg" class="diagram" version="1.1" height="185" width="520" viewBox="0 0 520.0 185.0">
                  <g transform="translate(8,16)">
                    <path d="M 16,48 L 256,48" fill="none" stroke="black"/>
                    <path d="M 8,80 L 248,80" fill="none" stroke="black"/>
                    <path d="M 256,112 L 496,112" fill="none" stroke="black"/>
                    <path d="M 264,144 L 504,144" fill="none" stroke="black"/>
                    <path d="M 8,32 L 8,80" fill="none" stroke="black"/>
                    <path d="M 8,80 L 8,160" fill="none" stroke="black"/>
                    <path d="M 256,32 L 256,48" fill="none" stroke="black"/>
                    <path d="M 256,48 L 256,112" fill="none" stroke="black"/>
                    <path d="M 256,112 L 256,160" fill="none" stroke="black"/>
                    <path d="M 504,32 L 504,144" fill="none" stroke="black"/>
                    <path d="M 504,144 L 504,160" fill="none" stroke="black"/>
                    <polygon points="24.000000,48.000000 12.000000,42.400002 12.000000,53.599998" transform="rotate(180.000000, 16.000000, 48.000000)" fill="black"/>
                    <polygon points="256.000000,80.000000 244.000000,74.400002 244.000000,85.599998" transform="rotate(0.000000, 248.000000, 80.000000)" fill="black"/>
                    <polygon points="272.000000,144.000000 260.000000,138.399994 260.000000,149.600006" transform="rotate(180.000000, 264.000000, 144.000000)" fill="black"/>
                    <polygon points="504.000000,112.000000 492.000000,106.400002 492.000000,117.599998" transform="rotate(0.000000, 496.000000, 112.000000)" fill="black"/>
                    <circle cx="8" cy="80" r="6" fill="white" stroke="black"/>
                    <circle cx="256" cy="48" r="6" fill="white" stroke="black"/>
                    <circle cx="256" cy="112" r="6" fill="white" stroke="black"/>
                    <circle cx="504" cy="144" r="6" fill="white" stroke="black"/>
                    <text text-anchor="middle" font-family="monospace" x="392" y="132" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="256" y="20" fill="black" font-size="1em">R</text>
                    <text text-anchor="middle" font-family="monospace" x="128" y="36" fill="black" font-size="1em">i</text>
                    <text text-anchor="middle" font-family="monospace" x="128" y="68" fill="black" font-size="1em">(</text>
                    <text text-anchor="middle" font-family="monospace" x="136" y="36" fill="black" font-size="1em">l</text>
                    <text text-anchor="middle" font-family="monospace" x="160" y="68" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="344" y="132" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="360" y="132" fill="black" font-size="1em">l</text>
                    <text text-anchor="middle" font-family="monospace" x="88" y="68" fill="black" font-size="1em">_</text>
                    <text text-anchor="middle" font-family="monospace" x="120" y="68" fill="black" font-size="1em">E</text>
                    <text text-anchor="middle" font-family="monospace" x="336" y="132" fill="black" font-size="1em">(</text>
                    <text text-anchor="middle" font-family="monospace" x="144" y="68" fill="black" font-size="1em">i</text>
                    <text text-anchor="middle" font-family="monospace" x="384" y="100" fill="black" font-size="1em">E</text>
                    <text text-anchor="middle" font-family="monospace" x="352" y="132" fill="black" font-size="1em">i</text>
                    <text text-anchor="middle" font-family="monospace" x="368" y="132" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="416" y="132" fill="black" font-size="1em">i</text>
                    <text text-anchor="middle" font-family="monospace" x="424" y="132" fill="black" font-size="1em">l</text>
                    <text text-anchor="middle" font-family="monospace" x="120" y="36" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="136" y="68" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="184" y="68" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="408" y="132" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="432" y="132" fill="black" font-size="1em">)</text>
                    <text text-anchor="middle" font-family="monospace" x="104" y="68" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="216" y="68" fill="black" font-size="1em">A</text>
                    <text text-anchor="middle" font-family="monospace" x="224" y="68" fill="black" font-size="1em">)</text>
                    <text text-anchor="middle" font-family="monospace" x="96" y="68" fill="black" font-size="1em">A</text>
                    <text text-anchor="middle" font-family="monospace" x="200" y="68" fill="black" font-size="1em">t</text>
                    <text text-anchor="middle" font-family="monospace" x="328" y="132" fill="black" font-size="1em">R</text>
                    <text text-anchor="middle" font-family="monospace" x="384" y="132" fill="black" font-size="1em">E</text>
                    <text text-anchor="middle" font-family="monospace" x="8" y="20" fill="black" font-size="1em">A</text>
                    <text text-anchor="middle" font-family="monospace" x="264" y="20" fill="black" font-size="1em">P</text>
                    <text text-anchor="middle" font-family="monospace" x="64" y="68" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="152" y="68" fill="black" font-size="1em">l</text>
                    <text text-anchor="middle" font-family="monospace" x="176" y="68" fill="black" font-size="1em">r</text>
                    <text text-anchor="middle" font-family="monospace" x="208" y="68" fill="black" font-size="1em">_</text>
                    <text text-anchor="middle" font-family="monospace" x="504" y="20" fill="black" font-size="1em">V</text>
                    <text text-anchor="middle" font-family="monospace" x="56" y="68" fill="black" font-size="1em">r</text>
                    <text text-anchor="middle" font-family="monospace" x="80" y="68" fill="black" font-size="1em">t</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center" name="" alt="" pn="section-2.3.2-1.1.2"><![CDATA[
 A                              RP                             V
 |             nil              |                              |
 |<-----------------------------o                              |
 |     r, t_A, E(nil, r, t_A)   |                              |
 o----------------------------->|                              |
 |                              |               E              |
 |                              o----------------------------->|
 |                              |        R(nil, E, nil)        |
 |                              |<-----------------------------o
 |                              |                              |
]]></artwork>
            </artset>
          </figure>
          <t pn="section-2.3.2-2">RP accepts r if and only if:</t>
          <ul spacing="compact" bare="false" empty="false" pn="section-2.3.2-3">
            <li pn="section-2.3.2-3.1">
              <tt>R | APR =&gt; true</tt>, or equivalently <tt>R.result == true</tt></li>
            <li pn="section-2.3.2-3.2">
              <tt>R.nonce == H("" || E || "")</tt></li>
            <li pn="section-2.3.2-3.3">
              <tt>E | APE =&gt; true</tt></li>
            <li pn="section-2.3.2-3.4">
              <tt>E.nonce == H("" || r || t_A)</tt></li>
          </ul>
        </section>
        <section anchor="passport-with-timestamp-based-freshness" numbered="true" toc="include" removeInRFC="false" pn="section-2.3.3">
          <name slugifiedName="name-passport-with-timestamp-bas">Passport with Timestamp-based Freshness</name>
          <t pn="section-2.3.3-1">The idea is that whenever the state of r changes, the Attester will
"self-issue" an evidence for the changed resource using a locally sourced
timestamp (<tt>t_A</tt>) as the freshness indicator.</t>
          <figure anchor="fig-passport-timestamp" align="left" suppress-title="false" pn="figure-5">
            <name slugifiedName="name-passport-with-timestamp-base">Passport with Timestamp-based Freshness</name>
            <artset pn="section-2.3.3-2.1">
              <artwork type="svg" align="center" name="" alt="" pn="section-2.3.3-2.1.1"><svg xmlns="http://www.w3.org/2000/svg" class="diagram" version="1.1" height="313" width="536" viewBox="0 0 536.0 313.0">
                  <g transform="translate(8,16)">
                    <path d="M 0,32 L 24,32" fill="none" stroke="black"/>
                    <path d="M 0,64 L 16,64" fill="none" stroke="black"/>
                    <path d="M 24,64 L 48,64" fill="none" stroke="black"/>
                    <path d="M 32,96 L 48,96" fill="none" stroke="black"/>
                    <path d="M 24,144 L 512,144" fill="none" stroke="black"/>
                    <path d="M 32,176 L 520,176" fill="none" stroke="black"/>
                    <path d="M 32,240 L 272,240" fill="none" stroke="black"/>
                    <path d="M 24,288 L 264,288" fill="none" stroke="black"/>
                    <path d="M 0,32 L 0,64" fill="none" stroke="black"/>
                    <path d="M 24,32 L 24,64" fill="none" stroke="black"/>
                    <path d="M 24,64 L 24,144" fill="none" stroke="black"/>
                    <path d="M 24,144 L 24,288" fill="none" stroke="black"/>
                    <path d="M 48,64 L 48,96" fill="none" stroke="black"/>
                    <path d="M 272,224 L 272,240" fill="none" stroke="black"/>
                    <path d="M 272,240 L 272,288" fill="none" stroke="black"/>
                    <path d="M 520,128 L 520,176" fill="none" stroke="black"/>
                    <path d="M 520,176 L 520,192" fill="none" stroke="black"/>
                    <polygon points="16.000000,64.000000 4.000000,58.400002 4.000000,69.599998" transform="rotate(0.000000, 16.000000, 64.000000)" fill="black"/>
                    <polygon points="40.000000,96.000000 28.000000,90.400002 28.000000,101.599998" transform="rotate(180.000000, 32.000000, 96.000000)" fill="black"/>
                    <polygon points="40.000000,176.000000 28.000000,170.399994 28.000000,181.600006" transform="rotate(180.000000, 32.000000, 176.000000)" fill="black"/>
                    <polygon points="40.000000,240.000000 28.000000,234.399994 28.000000,245.600006" transform="rotate(180.000000, 32.000000, 240.000000)" fill="black"/>
                    <polygon points="272.000000,288.000000 260.000000,282.399994 260.000000,293.600006" transform="rotate(0.000000, 264.000000, 288.000000)" fill="black"/>
                    <polygon points="520.000000,144.000000 508.000000,138.399994 508.000000,149.600006" transform="rotate(0.000000, 512.000000, 144.000000)" fill="black"/>
                    <circle cx="24" cy="32" r="6" fill="white" stroke="black"/>
                    <circle cx="24" cy="64" r="6" fill="white" stroke="black"/>
                    <circle cx="24" cy="144" r="6" fill="white" stroke="black"/>
                    <circle cx="24" cy="288" r="6" fill="white" stroke="black"/>
                    <circle cx="272" cy="240" r="6" fill="white" stroke="black"/>
                    <circle cx="520" cy="176" r="6" fill="white" stroke="black"/>
                    <text text-anchor="middle" font-family="monospace" x="112" y="84" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="184" y="84" fill="black" font-size="1em">r</text>
                    <text text-anchor="middle" font-family="monospace" x="136" y="84" fill="black" font-size="1em">(</text>
                    <text text-anchor="middle" font-family="monospace" x="312" y="164" fill="black" font-size="1em">l</text>
                    <text text-anchor="middle" font-family="monospace" x="320" y="164" fill="black" font-size="1em">)</text>
                    <text text-anchor="middle" font-family="monospace" x="152" y="228" fill="black" font-size="1em">i</text>
                    <text text-anchor="middle" font-family="monospace" x="96" y="260" fill="black" font-size="1em">_</text>
                    <text text-anchor="middle" font-family="monospace" x="72" y="84" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="272" y="164" fill="black" font-size="1em">E</text>
                    <text text-anchor="middle" font-family="monospace" x="208" y="260" fill="black" font-size="1em">t</text>
                    <text text-anchor="middle" font-family="monospace" x="96" y="276" fill="black" font-size="1em">R</text>
                    <text text-anchor="middle" font-family="monospace" x="96" y="84" fill="black" font-size="1em">_</text>
                    <text text-anchor="middle" font-family="monospace" x="208" y="84" fill="black" font-size="1em">t</text>
                    <text text-anchor="middle" font-family="monospace" x="272" y="132" fill="black" font-size="1em">E</text>
                    <text text-anchor="middle" font-family="monospace" x="192" y="260" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="112" y="276" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="216" y="84" fill="black" font-size="1em">_</text>
                    <text text-anchor="middle" font-family="monospace" x="224" y="84" fill="black" font-size="1em">A</text>
                    <text text-anchor="middle" font-family="monospace" x="104" y="260" fill="black" font-size="1em">A</text>
                    <text text-anchor="middle" font-family="monospace" x="120" y="276" fill="black" font-size="1em">i</text>
                    <text text-anchor="middle" font-family="monospace" x="184" y="260" fill="black" font-size="1em">r</text>
                    <text text-anchor="middle" font-family="monospace" x="64" y="84" fill="black" font-size="1em">r</text>
                    <text text-anchor="middle" font-family="monospace" x="144" y="84" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="256" y="164" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="280" y="212" fill="black" font-size="1em">P</text>
                    <text text-anchor="middle" font-family="monospace" x="160" y="228" fill="black" font-size="1em">l</text>
                    <text text-anchor="middle" font-family="monospace" x="224" y="260" fill="black" font-size="1em">A</text>
                    <text text-anchor="middle" font-family="monospace" x="240" y="260" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="160" y="276" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="104" y="84" fill="black" font-size="1em">A</text>
                    <text text-anchor="middle" font-family="monospace" x="152" y="84" fill="black" font-size="1em">i</text>
                    <text text-anchor="middle" font-family="monospace" x="168" y="84" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="216" y="164" fill="black" font-size="1em">R</text>
                    <text text-anchor="middle" font-family="monospace" x="224" y="164" fill="black" font-size="1em">(</text>
                    <text text-anchor="middle" font-family="monospace" x="232" y="164" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="144" y="260" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="128" y="84" fill="black" font-size="1em">E</text>
                    <text text-anchor="middle" font-family="monospace" x="304" y="164" fill="black" font-size="1em">i</text>
                    <text text-anchor="middle" font-family="monospace" x="88" y="260" fill="black" font-size="1em">t</text>
                    <text text-anchor="middle" font-family="monospace" x="152" y="276" fill="black" font-size="1em">E</text>
                    <text text-anchor="middle" font-family="monospace" x="24" y="20" fill="black" font-size="1em">A</text>
                    <text text-anchor="middle" font-family="monospace" x="520" y="116" fill="black" font-size="1em">V</text>
                    <text text-anchor="middle" font-family="monospace" x="248" y="164" fill="black" font-size="1em">l</text>
                    <text text-anchor="middle" font-family="monospace" x="232" y="84" fill="black" font-size="1em">)</text>
                    <text text-anchor="middle" font-family="monospace" x="240" y="164" fill="black" font-size="1em">i</text>
                    <text text-anchor="middle" font-family="monospace" x="272" y="212" fill="black" font-size="1em">R</text>
                    <text text-anchor="middle" font-family="monospace" x="136" y="260" fill="black" font-size="1em">(</text>
                    <text text-anchor="middle" font-family="monospace" x="152" y="260" fill="black" font-size="1em">i</text>
                    <text text-anchor="middle" font-family="monospace" x="216" y="260" fill="black" font-size="1em">_</text>
                    <text text-anchor="middle" font-family="monospace" x="104" y="276" fill="black" font-size="1em">(</text>
                    <text text-anchor="middle" font-family="monospace" x="192" y="276" fill="black" font-size="1em">l</text>
                    <text text-anchor="middle" font-family="monospace" x="280" y="164" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="72" y="260" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="144" y="228" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="128" y="260" fill="black" font-size="1em">E</text>
                    <text text-anchor="middle" font-family="monospace" x="160" y="260" fill="black" font-size="1em">l</text>
                    <text text-anchor="middle" font-family="monospace" x="168" y="260" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="176" y="276" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="184" y="276" fill="black" font-size="1em">i</text>
                    <text text-anchor="middle" font-family="monospace" x="200" y="276" fill="black" font-size="1em">)</text>
                    <text text-anchor="middle" font-family="monospace" x="88" y="84" fill="black" font-size="1em">t</text>
                    <text text-anchor="middle" font-family="monospace" x="64" y="260" fill="black" font-size="1em">r</text>
                    <text text-anchor="middle" font-family="monospace" x="192" y="84" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="128" y="276" fill="black" font-size="1em">l</text>
                    <text text-anchor="middle" font-family="monospace" x="160" y="84" fill="black" font-size="1em">l</text>
                    <text text-anchor="middle" font-family="monospace" x="296" y="164" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="112" y="260" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="232" y="260" fill="black" font-size="1em">)</text>
                    <text text-anchor="middle" font-family="monospace" x="136" y="276" fill="black" font-size="1em">,</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center" name="" alt="" pn="section-2.3.3-2.1.2"><![CDATA[
   A
.--o
|  |
'->o--.
   |  | r, t_A, E(nil, r, t_A)
   |<-'
   |                                                             V
   |                              E                              |
   o------------------------------------------------------------>|
   |                       R(nil, E, nil)                        |
   |<------------------------------------------------------------o
   |                                                             |
   |                              RP
   |              nil             |
   |<-----------------------------o
   |    r, t_A, E(nil, r, t_A),   |
   |        R(nil, E, nil)        |
   o----------------------------->|
]]></artwork>
            </artset>
          </figure>
          <t pn="section-2.3.3-3">RP accepts r if and only if:</t>
          <ul spacing="compact" bare="false" empty="false" pn="section-2.3.3-4">
            <li pn="section-2.3.3-4.1">
              <tt>R | APR =&gt; true</tt></li>
            <li pn="section-2.3.3-4.2">
              <tt>R.nonce == H("" || E || "")</tt></li>
            <li pn="section-2.3.3-4.3">
              <tt>E.nonce == H("" || r || t_A)</tt></li>
          </ul>
        </section>
        <section anchor="sec-tud" numbered="true" toc="include" removeInRFC="false" pn="section-2.3.4">
          <name slugifiedName="name-timestamp-based-uni-directi">Timestamp-based Uni-directional</name>
          <t pn="section-2.3.4-1">If the transport allows it, timestamp-based uni-directional attestation
protocols, e.g., TUDA <xref target="I-D.birkholz-rats-tuda" format="default" sectionFormat="of" derivedContent="I-D.birkholz-rats-tuda"/>, can also be constructed from
the presented primitives.  For example, using CoAP Observe <xref target="RFC7641" format="default" sectionFormat="of" derivedContent="RFC7641"/> the
interaction pattern in <xref target="fig-timestamp-unidirectional" format="default" sectionFormat="of" derivedContent="Figure 6"/>, with an initial
trigger and subsequent automatic updates on resource status change, can be
naturally implemented.</t>
          <figure anchor="fig-timestamp-unidirectional" align="left" suppress-title="false" pn="figure-6">
            <name slugifiedName="name-timestamp-based-uni-directio">Timestamp-based Uni-directional</name>
            <artset pn="section-2.3.4-2.1">
              <artwork type="svg" align="center" name="" alt="" pn="section-2.3.4-2.1.1"><svg xmlns="http://www.w3.org/2000/svg" class="diagram" version="1.1" height="265" width="280" viewBox="0 0 280.0 265.0">
                  <g transform="translate(8,16)">
                    <path d="M 16,48 L 256,48" fill="none" stroke="black"/>
                    <path d="M 8,80 L 248,80" fill="none" stroke="black"/>
                    <path d="M 8,160 L 248,160" fill="none" stroke="black"/>
                    <path d="M 8,240 L 248,240" fill="none" stroke="black"/>
                    <path d="M 8,32 L 8,80" fill="none" stroke="black"/>
                    <path d="M 8,80 L 8,160" fill="none" stroke="black"/>
                    <path d="M 8,160 L 8,240" fill="none" stroke="black"/>
                    <path d="M 256,32 L 256,48" fill="none" stroke="black"/>
                    <path d="M 256,48 L 256,240" fill="none" stroke="black"/>
                    <polygon points="24.000000,48.000000 12.000000,42.400002 12.000000,53.599998" transform="rotate(180.000000, 16.000000, 48.000000)" fill="black"/>
                    <polygon points="256.000000,80.000000 244.000000,74.400002 244.000000,85.599998" transform="rotate(0.000000, 248.000000, 80.000000)" fill="black"/>
                    <polygon points="256.000000,160.000000 244.000000,154.399994 244.000000,165.600006" transform="rotate(0.000000, 248.000000, 160.000000)" fill="black"/>
                    <polygon points="256.000000,240.000000 244.000000,234.399994 244.000000,245.600006" transform="rotate(0.000000, 248.000000, 240.000000)" fill="black"/>
                    <circle cx="8" cy="80" r="6" fill="white" stroke="black"/>
                    <circle cx="8" cy="160" r="6" fill="white" stroke="black"/>
                    <circle cx="8" cy="240" r="6" fill="white" stroke="black"/>
                    <circle cx="256" cy="48" r="6" fill="white" stroke="black"/>
                    <text text-anchor="middle" font-family="monospace" x="88" y="68" fill="black" font-size="1em">A</text>
                    <text text-anchor="middle" font-family="monospace" x="120" y="68" fill="black" font-size="1em">(</text>
                    <text text-anchor="middle" font-family="monospace" x="128" y="68" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="112" y="116" fill="black" font-size="1em">[</text>
                    <text text-anchor="middle" font-family="monospace" x="88" y="228" fill="black" font-size="1em">A</text>
                    <text text-anchor="middle" font-family="monospace" x="128" y="36" fill="black" font-size="1em">i</text>
                    <text text-anchor="middle" font-family="monospace" x="48" y="68" fill="black" font-size="1em">1</text>
                    <text text-anchor="middle" font-family="monospace" x="120" y="148" fill="black" font-size="1em">(</text>
                    <text text-anchor="middle" font-family="monospace" x="128" y="228" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="224" y="228" fill="black" font-size="1em">A</text>
                    <text text-anchor="middle" font-family="monospace" x="232" y="228" fill="black" font-size="1em">)</text>
                    <text text-anchor="middle" font-family="monospace" x="136" y="36" fill="black" font-size="1em">l</text>
                    <text text-anchor="middle" font-family="monospace" x="224" y="68" fill="black" font-size="1em">A</text>
                    <text text-anchor="middle" font-family="monospace" x="120" y="116" fill="black" font-size="1em">.</text>
                    <text text-anchor="middle" font-family="monospace" x="192" y="228" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="120" y="36" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="192" y="68" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="144" y="196" fill="black" font-size="1em">]</text>
                    <text text-anchor="middle" font-family="monospace" x="48" y="228" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="144" y="68" fill="black" font-size="1em">l</text>
                    <text text-anchor="middle" font-family="monospace" x="32" y="148" fill="black" font-size="1em">r</text>
                    <text text-anchor="middle" font-family="monospace" x="72" y="148" fill="black" font-size="1em">t</text>
                    <text text-anchor="middle" font-family="monospace" x="176" y="148" fill="black" font-size="1em">_</text>
                    <text text-anchor="middle" font-family="monospace" x="120" y="196" fill="black" font-size="1em">.</text>
                    <text text-anchor="middle" font-family="monospace" x="112" y="228" fill="black" font-size="1em">E</text>
                    <text text-anchor="middle" font-family="monospace" x="80" y="228" fill="black" font-size="1em">_</text>
                    <text text-anchor="middle" font-family="monospace" x="8" y="20" fill="black" font-size="1em">A</text>
                    <text text-anchor="middle" font-family="monospace" x="88" y="148" fill="black" font-size="1em">A</text>
                    <text text-anchor="middle" font-family="monospace" x="112" y="148" fill="black" font-size="1em">E</text>
                    <text text-anchor="middle" font-family="monospace" x="224" y="148" fill="black" font-size="1em">A</text>
                    <text text-anchor="middle" font-family="monospace" x="112" y="196" fill="black" font-size="1em">[</text>
                    <text text-anchor="middle" font-family="monospace" x="40" y="228" fill="black" font-size="1em">_</text>
                    <text text-anchor="middle" font-family="monospace" x="96" y="68" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="208" y="68" fill="black" font-size="1em">t</text>
                    <text text-anchor="middle" font-family="monospace" x="168" y="228" fill="black" font-size="1em">r</text>
                    <text text-anchor="middle" font-family="monospace" x="256" y="20" fill="black" font-size="1em">R</text>
                    <text text-anchor="middle" font-family="monospace" x="168" y="68" fill="black" font-size="1em">r</text>
                    <text text-anchor="middle" font-family="monospace" x="48" y="148" fill="black" font-size="1em">i</text>
                    <text text-anchor="middle" font-family="monospace" x="120" y="228" fill="black" font-size="1em">(</text>
                    <text text-anchor="middle" font-family="monospace" x="216" y="228" fill="black" font-size="1em">_</text>
                    <text text-anchor="middle" font-family="monospace" x="56" y="68" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="112" y="68" fill="black" font-size="1em">E</text>
                    <text text-anchor="middle" font-family="monospace" x="136" y="68" fill="black" font-size="1em">i</text>
                    <text text-anchor="middle" font-family="monospace" x="144" y="116" fill="black" font-size="1em">]</text>
                    <text text-anchor="middle" font-family="monospace" x="80" y="148" fill="black" font-size="1em">_</text>
                    <text text-anchor="middle" font-family="monospace" x="56" y="228" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="72" y="228" fill="black" font-size="1em">t</text>
                    <text text-anchor="middle" font-family="monospace" x="152" y="68" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="56" y="148" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="128" y="148" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="136" y="148" fill="black" font-size="1em">i</text>
                    <text text-anchor="middle" font-family="monospace" x="168" y="148" fill="black" font-size="1em">r</text>
                    <text text-anchor="middle" font-family="monospace" x="264" y="20" fill="black" font-size="1em">P</text>
                    <text text-anchor="middle" font-family="monospace" x="32" y="68" fill="black" font-size="1em">r</text>
                    <text text-anchor="middle" font-family="monospace" x="40" y="148" fill="black" font-size="1em">_</text>
                    <text text-anchor="middle" font-family="monospace" x="232" y="148" fill="black" font-size="1em">)</text>
                    <text text-anchor="middle" font-family="monospace" x="152" y="228" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="176" y="228" fill="black" font-size="1em">_</text>
                    <text text-anchor="middle" font-family="monospace" x="208" y="228" fill="black" font-size="1em">t</text>
                    <text text-anchor="middle" font-family="monospace" x="72" y="68" fill="black" font-size="1em">t</text>
                    <text text-anchor="middle" font-family="monospace" x="176" y="68" fill="black" font-size="1em">_</text>
                    <text text-anchor="middle" font-family="monospace" x="232" y="68" fill="black" font-size="1em">)</text>
                    <text text-anchor="middle" font-family="monospace" x="136" y="116" fill="black" font-size="1em">.</text>
                    <text text-anchor="middle" font-family="monospace" x="136" y="196" fill="black" font-size="1em">.</text>
                    <text text-anchor="middle" font-family="monospace" x="136" y="228" fill="black" font-size="1em">i</text>
                    <text text-anchor="middle" font-family="monospace" x="80" y="68" fill="black" font-size="1em">_</text>
                    <text text-anchor="middle" font-family="monospace" x="184" y="68" fill="black" font-size="1em">1</text>
                    <text text-anchor="middle" font-family="monospace" x="128" y="116" fill="black" font-size="1em">.</text>
                    <text text-anchor="middle" font-family="monospace" x="208" y="148" fill="black" font-size="1em">t</text>
                    <text text-anchor="middle" font-family="monospace" x="184" y="228" fill="black" font-size="1em">n</text>
                    <text text-anchor="middle" font-family="monospace" x="144" y="148" fill="black" font-size="1em">l</text>
                    <text text-anchor="middle" font-family="monospace" x="152" y="148" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="184" y="148" fill="black" font-size="1em">i</text>
                    <text text-anchor="middle" font-family="monospace" x="192" y="148" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="128" y="196" fill="black" font-size="1em">.</text>
                    <text text-anchor="middle" font-family="monospace" x="96" y="228" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="40" y="68" fill="black" font-size="1em">_</text>
                    <text text-anchor="middle" font-family="monospace" x="216" y="68" fill="black" font-size="1em">_</text>
                    <text text-anchor="middle" font-family="monospace" x="96" y="148" fill="black" font-size="1em">,</text>
                    <text text-anchor="middle" font-family="monospace" x="216" y="148" fill="black" font-size="1em">_</text>
                    <text text-anchor="middle" font-family="monospace" x="32" y="228" fill="black" font-size="1em">r</text>
                    <text text-anchor="middle" font-family="monospace" x="144" y="228" fill="black" font-size="1em">l</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center" name="" alt="" pn="section-2.3.4-2.1.2"><![CDATA[
 A                              RP
 |             nil              |
 |<-----------------------------o
 |  r_1, t_A, E(nil, r_1, t_A)  |
 o----------------------------->|
 |                              |
 |            [...]             |
 |                              |
 |  r_i, t_A, E(nil, r_i, t_A)  |
 o----------------------------->|
 |                              |
 |            [...]             |
 |                              |
 |  r_n, t_A, E(nil, r_n, t_A)  |
 o----------------------------->|
]]></artwork>
            </artset>
          </figure>
        </section>
      </section>
    </section>
    <section anchor="sec-rest-instantiation" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-rest-instantiation">REST Instantiation</name>
      <t pn="section-3-1">Four new MIME types are defined for the requests and responses among the three
actors that have been identified in the abstract mechanism.  The MIME types are
composed of the basic data types defined in <xref target="sec-basic-data-formats" format="default" sectionFormat="of" derivedContent="Section 3.1"/>.</t>
      <section anchor="sec-basic-data-formats" numbered="true" toc="include" removeInRFC="false" pn="section-3.1">
        <name slugifiedName="name-basic-data-formats">Basic Data Formats</name>
        <ul spacing="compact" bare="false" empty="false" pn="section-3.1-1">
          <li pn="section-3.1-1.1">The resource to be attested;</li>
          <li pn="section-3.1-1.2">A caller provided nonce;</li>
          <li pn="section-3.1-1.3">A locally sourced timestamp;</li>
          <li pn="section-3.1-1.4">The evidence produced by the Attester, and</li>
          <li pn="section-3.1-1.5">The attestation result produced by the Verifier.</li>
        </ul>
        <t pn="section-3.1-2">These basic types are described by the following CDDL rules, which reuse the
eat-token definition from <xref target="I-D.ietf-rats-eat" format="default" sectionFormat="of" derivedContent="I-D.ietf-rats-eat"/>.</t>
        <section anchor="resource" numbered="true" toc="include" removeInRFC="false" pn="section-3.1.1">
          <name slugifiedName="name-resource">Resource</name>
          <t pn="section-3.1.1-1">An "ANY DEFINED BY"-like payload with type set to the original MIME type,
either Content-Type (HTTP) or Content-Format (CoAP), of the resource
representation.</t>
          <artwork type="cddl" name="" align="left" alt="" pn="section-3.1.1-2"><![CDATA[
resource-type = (
  typ tstr / uint,
  val any,
)
]]></artwork>
        </section>
        <section anchor="nonce" numbered="true" toc="include" removeInRFC="false" pn="section-3.1.2">
          <name slugifiedName="name-nonce">Nonce</name>
          <artwork type="cddl" name="" align="left" alt="" pn="section-3.1.2-1"><![CDATA[
nonce-type = bstr
]]></artwork>
        </section>
        <section anchor="timestamp" numbered="true" toc="include" removeInRFC="false" pn="section-3.1.3">
          <name slugifiedName="name-timestamp">Timestamp</name>
          <artwork name="" type="" align="left" alt="" pn="section-3.1.3-1"><![CDATA[
timestamp-type = tdate / time
]]></artwork>
        </section>
        <section anchor="evidence" numbered="true" toc="include" removeInRFC="false" pn="section-3.1.4">
          <name slugifiedName="name-evidence">Evidence</name>
          <t pn="section-3.1.4-1">An EAT token signed by the attester bound to the relying party request and the
attested resource state.</t>
          <artwork type="cddl" name="" align="left" alt="" pn="section-3.1.4-2"><![CDATA[
evidence-type = eat-token
]]></artwork>
        </section>
        <section anchor="attestation-result" numbered="true" toc="include" removeInRFC="false" pn="section-3.1.5">
          <name slugifiedName="name-attestation-result">Attestation Result</name>
          <t pn="section-3.1.5-1">An EAT token signed by the verifier and bound to an evidence.</t>
          <artwork type="cddl" name="" align="left" alt="" pn="section-3.1.5-2"><![CDATA[
attestation-result-type = eat-token
]]></artwork>
        </section>
      </section>
      <section anchor="request-and-response-payloads" numbered="true" toc="include" removeInRFC="false" pn="section-3.2">
        <name slugifiedName="name-request-and-response-payloa">Request and Response Payloads</name>
        <section anchor="requesting-an-attested-resource" numbered="true" toc="include" removeInRFC="false" pn="section-3.2.1">
          <name slugifiedName="name-requesting-an-attested-reso">Requesting an Attested Resource</name>
          <t pn="section-3.2.1-1">MIME type <tt>application/rats-attested-resource-request</tt></t>
          <t pn="section-3.2.1-2">CoAP Content-Format: TBD-rats-attested-resource-request-CT</t>
          <artwork type="cddl" name="" align="left" alt="" pn="section-3.2.1-3"><![CDATA[
nonce-key = 0 / "n_X"

attested-resource-request = {
    ? nonce-key => nonce-type,
}
]]></artwork>
          <t pn="section-3.2.1-4">This type is used in a POST request to an attested resource.</t>
        </section>
        <section anchor="attested-resource" numbered="true" toc="include" removeInRFC="false" pn="section-3.2.2">
          <name slugifiedName="name-attested-resource">Attested Resource</name>
          <t pn="section-3.2.2-1">MIME type <tt>application/rats-attested-resource</tt></t>
          <t pn="section-3.2.2-2">CoAP Content-Format: TBD-rats-attested-resource-CT</t>
          <artwork type="cddl" name="" align="left" alt="" pn="section-3.2.2-3"><![CDATA[
resource-key = 1 / "r"
t-A-key = 2 / "t_A"
evidence-key = 3 / "E"
attestation-result-key = 4 / "R"

attested-resource = {
    resource-key => resource-type,
    ? t-A-key => timestamp-type,
    evidence-key => evidence-type,
    ? attestation-result-key => attestation-result-type,
}
]]></artwork>
          <t pn="section-3.2.2-4">This type is used in a successful response to a request to an attested
resource endpoint.</t>
          <t pn="section-3.2.2-5">Note that an attestation result is only present when the Passport model is
used.</t>
          <t pn="section-3.2.2-6">Note also that the fact that the inner resource representation is embedded
within the <tt>application/rats-attested-resource</tt> envelope suppresses the ability
to do content negotiation on it, i.e., the inner representation format is
unilaterally chosen by the origin.</t>
        </section>
        <section anchor="request-for-attestation-result" numbered="true" toc="include" removeInRFC="false" pn="section-3.2.3">
          <name slugifiedName="name-request-for-attestation-res">Request for Attestation Result</name>
          <t pn="section-3.2.3-1">MIME type <tt>application/rats-attestation-result-request</tt></t>
          <t pn="section-3.2.3-2">CoAP Content-Format: TBD-rats-attestation-result-request-CT</t>
          <artwork type="cddl" name="" align="left" alt="" pn="section-3.2.3-3"><![CDATA[
n-Y-key = 5 / "n_Y"

attestation-result-request = {
    ? n-Y-key => nonce-type,
    evidence-key => evidence-type,
}
]]></artwork>
          <t pn="section-3.2.3-4">This type is used in a POST request to a verifier endpoint.</t>
        </section>
        <section anchor="verifier-response" numbered="true" toc="include" removeInRFC="false" pn="section-3.2.4">
          <name slugifiedName="name-verifier-response">Verifier Response</name>
          <t pn="section-3.2.4-1">MIME type <tt>application/rats-attestation-result-response</tt></t>
          <t pn="section-3.2.4-2">CoAP Content-Format: TBD-rats-attestation-result-response-CT</t>
          <artwork type="cddl" name="" align="left" alt="" pn="section-3.2.4-3"><![CDATA[
t-V-key = 6 / "n_Y"

attestation-result-response = {
    ? t-V-key => timestamp-type,
    attestation-result-key => attestation-result-type,
}
]]></artwork>
          <t pn="section-3.2.4-4">This type is used in a successful response to a POST request to a verifier
endpoint.</t>
        </section>
      </section>
      <section anchor="interaction-model" numbered="true" toc="include" removeInRFC="false" pn="section-3.3">
        <name slugifiedName="name-interaction-model">Interaction Model</name>
        <t pn="section-3.3-1">(For now) we only describe a synchronous, RPC-like transaction model, including
the slight variant with a one-off trigger presented in <xref target="sec-tud" format="default" sectionFormat="of" derivedContent="Section 2.3.4"/>.</t>
        <t pn="section-3.3-2">This might be not suited for devices that sit behind a NAT/firewall box, or
those that have to go through extended sleep cycles in order to save energy.
For this kind of devices, we assume in-network support in the form of
store-and-forward nodes (e.g., LwM2M queue mode, specialised border routers,
etc.).</t>
        <section anchor="channel-security-considerations" numbered="true" toc="include" removeInRFC="false" pn="section-3.3.1">
          <name slugifiedName="name-channel-security-considerat">Channel Security Considerations</name>
          <t pn="section-3.3.1-1">Unless the channel can be considered free from passive and active attackers at
all times, all transactions are to be carried over a secure transport (i.e.,
HTTPS or COAPS).</t>
        </section>
        <section anchor="urls" numbered="true" toc="include" removeInRFC="false" pn="section-3.3.2">
          <name slugifiedName="name-urls">URLs</name>
          <t pn="section-3.3.2-1">In the spirit of <xref target="RFC7320" format="default" sectionFormat="of" derivedContent="RFC7320"/>, no specific URL format is mandated.  An
application is free to specify the URL scheme of its liking for the exposed
attested resources.</t>
          <t pn="section-3.3.2-2">When an origin exposes the same underlying state both as nonce- and
timestamp-based resources, these are identified by two separate URIs.</t>
          <t pn="section-3.3.2-3">The verifier function is exposed via an URI that accepts evidence in form of
<tt>application/rats-attestation-result-request</tt> typed requests and returns
attestation results in form of <tt>application/rats-attestation-result-response</tt>
typed responses.</t>
        </section>
        <section anchor="methods" numbered="true" toc="include" removeInRFC="false" pn="section-3.3.3">
          <name slugifiedName="name-methods">Methods</name>
          <t pn="section-3.3.3-1">As per usual REST conventions, the guiding principles are:</t>
          <ul spacing="compact" bare="false" empty="false" pn="section-3.3.3-2">
            <li pn="section-3.3.3-2.1">POST is used for all requests involving a payload;</li>
            <li pn="section-3.3.3-2.2">GET is used for requests without a payload.</li>
          </ul>
          <t pn="section-3.3.3-3">The only example of the latter is when retrieving an "Attested Resource" using
the timestamp-based freshness model.  Any other request uses POST.</t>
          <section anchor="response-codes-and-caching" numbered="true" toc="exclude" removeInRFC="false" pn="section-3.3.3.1">
            <name slugifiedName="name-response-codes-and-caching">Response Codes and Caching</name>
            <t pn="section-3.3.3.1-1">The possible status codes are:</t>
            <ul spacing="compact" bare="false" empty="false" pn="section-3.3.3.1-2">
              <li pn="section-3.3.3.1-2.1">
                <t pn="section-3.3.3.1-2.1.1">HTTP
                </t>
                <ul spacing="compact" bare="false" empty="false" pn="section-3.3.3.1-2.1.2">
                  <li pn="section-3.3.3.1-2.1.2.1">200 (OK) for successful GET.  This response is cacheable; origins can use
Cache-Control (max-age) and ETag headers in order to instruct on-path
caches.</li>
                  <li pn="section-3.3.3.1-2.1.2.2">201 (Created) for a successful POST.  This response is not cacheable.</li>
                </ul>
              </li>
              <li pn="section-3.3.3.1-2.2">
                <t pn="section-3.3.3.1-2.2.1">CoAP
                </t>
                <ul spacing="compact" bare="false" empty="false" pn="section-3.3.3.1-2.2.2">
                  <li pn="section-3.3.3.1-2.2.2.1">2.05 (Content) for successful GET.  This response is cacheable; origins can
use Max-Age and ETag Options to instruct on-path caches;</li>
                  <li pn="section-3.3.3.1-2.2.2.2">2.01 (Created) for successful POST.  This response is not cacheable.</li>
                </ul>
              </li>
            </ul>
            <t pn="section-3.3.3.1-3">Otherwise, a suitable error response (i.e., HTTP 4xx/5xx, CoAP 4.nn/5.nn) is
returned.</t>
          </section>
        </section>
        <section anchor="multicast-support" numbered="true" toc="include" removeInRFC="false" pn="section-3.3.4">
          <name slugifiedName="name-multicast-support">Multicast Support</name>
          <t pn="section-3.3.4-1">TODO (This is a CoAP only feature.)</t>
        </section>
        <section anchor="examples" numbered="true" toc="include" removeInRFC="false" pn="section-3.3.5">
          <name slugifiedName="name-examples">Examples</name>
          <t pn="section-3.3.5-1">A few examples are given to illustrate the different interaction models using
both CoAP and HTTP transports.</t>
          <section anchor="sec-example-bg-check-nonce" numbered="true" toc="exclude" removeInRFC="false" pn="section-3.3.5.1">
            <name slugifiedName="name-background-check-with-nonce-b">Background Check with Nonce Based Freshness</name>
            <ul spacing="compact" bare="false" empty="false" pn="section-3.3.5.1-1">
              <li pn="section-3.3.5.1-1.1">RP - Attester (CoAP)</li>
            </ul>
            <artwork name="" type="" align="left" alt="" pn="section-3.3.5.1-2"><![CDATA[
  >> Request:
   POST coap://device.example/my-attested-resource
   Content-Format: TBD-application/rats-attested-resource-request-CT
   Accept: application/rats-attested-resource
   Payload:
   {
       "n_X": "bm9uY2Uh"
   }

  << Response:
   2.01 Created
   ETag: "xyzzy"
   Content-format: TBD-application/rats-attested-resource-CT
   Payload:
   {
       "r" : {
           "typ": "text/plain",
           "val": "foobar"
       },
       "E": "eyJhbGciO...RfrKmTWk"
   }
]]></artwork>
            <ul spacing="compact" bare="false" empty="false" pn="section-3.3.5.1-3">
              <li pn="section-3.3.5.1-3.1">RP - Verifier (HTTP)</li>
            </ul>
            <artwork name="" type="" align="left" alt="" pn="section-3.3.5.1-4"><![CDATA[
  >> Request:
   POST /my-verify
   Host: verifier.example
   Content-Type: application/rats-attestation-result-request
   Accept: application/rats-attestation-result-response

   {
       "E": "eyJhbGciO...RfrKmTWk"
   }

  << Response:
   HTTP/1.1 201 Created
   ETag: "abccb"
   Content-format: application/rats-attestation-result-response
   Payload:
   {
       "R": "eyJhbGciO...8j5EDGYc"
   }
]]></artwork>
          </section>
          <section anchor="background-check-with-timestamp-based-freshness-1" numbered="true" toc="exclude" removeInRFC="false" pn="section-3.3.5.2">
            <name slugifiedName="name-background-check-with-timesta">Background Check with Timestamp Based Freshness</name>
            <ul spacing="compact" bare="false" empty="false" pn="section-3.3.5.2-1">
              <li pn="section-3.3.5.2-1.1">RP - Attester (CoAP) with POST</li>
            </ul>
            <artwork name="" type="" align="left" alt="" pn="section-3.3.5.2-2"><![CDATA[
  >> Request:
   POST coap://device.example/my-attested-resource
   Content-Format: TBD-application/rats-attested-resource-request-CT
   Accept: TBD-application/rats-attested-resource-CT
   Payload:
   { }

  << Response:
   2.01 Created
   ETag: "xyzzy"
   Content-format: TBD-application/rats-attested-resource-CT
   Payload:
   {
       "r" : {
           "typ": "text/plain",
           "val": "foobar"
       },
       "t_A": "2020-04-01T21:02:31Z",
       "E": "eyJhbGciO...z0ikw9Aa"
   }
]]></artwork>
            <ul spacing="compact" bare="false" empty="false" pn="section-3.3.5.2-3">
              <li pn="section-3.3.5.2-3.1">RP - Attester (CoAP) with GET</li>
            </ul>
            <artwork name="" type="" align="left" alt="" pn="section-3.3.5.2-4"><![CDATA[
  >> Request:
   GET coap://device.example/my-attested-resource
   Accept: TBD-application/rats-attested-resource-CT

  << Response:
   2.05 Content
   ETag: "xyzzy"
   Max-Age: 3600
   Content-format: TBD-application/rats-attested-resource-CT
   Payload:
   {
       "r" : {
           "typ": "text/plain",
           "val": "foobar"
       },
       "t_A": "2020-04-01T21:02:31Z",
       "E": "eyJhbGciO...z0ikw9Aa"
   }
]]></artwork>
            <ul spacing="compact" bare="false" empty="false" pn="section-3.3.5.2-5">
              <li pn="section-3.3.5.2-5.1">RP - Verifier (HTTP) is the same as <xref target="sec-example-bg-check-nonce" format="default" sectionFormat="of" derivedContent="Section 3.3.5.1"/>.</li>
            </ul>
          </section>
          <section anchor="passport-model" numbered="true" toc="exclude" removeInRFC="false" pn="section-3.3.5.3">
            <name slugifiedName="name-passport-model">Passport Model</name>
            <ul spacing="compact" bare="false" empty="false" pn="section-3.3.5.3-1">
              <li pn="section-3.3.5.3-1.1">Attester - Verifier (CoAP)</li>
            </ul>
            <artwork name="" type="" align="left" alt="" pn="section-3.3.5.3-2"><![CDATA[
  >> Request:
   POST coap://verifier.example/my-verify
   Content-Format: application/rats-attestation-result-request
   Accept: application/rats-attestation-result-response
   Payload:
   {
       "E": "eyJhbGciO...RfrKmTWk"
   }

  << Response:
   2.01 Created
   ETag: "jkllk"
   Content-format: application/rats-attestation-result-response
   Payload:
   {
       "R": "eyJhbGciO...Z0IKW9aA"
   }
]]></artwork>
            <ul spacing="compact" bare="false" empty="false" pn="section-3.3.5.3-3">
              <li pn="section-3.3.5.3-3.1">Relying Party - Attester (CoAP) with POST</li>
            </ul>
            <artwork name="" type="" align="left" alt="" pn="section-3.3.5.3-4"><![CDATA[
  >> Request:
   POST coap://device.example/my-attested-resource
   Content-Format: TBD-application/rats-attested-resource-request-CT
   Accept: TBD-application/rats-attested-resource-CT
   Payload:
   { }

  << Response:
   2.01 Created
   ETag: "qwerty"
   Content-format: TBD-application/rats-attested-resource-CT
   Payload:
   {
        "r": {
            "type": "text/plain",
            "val": "foobar"
        },
        "t_A": "2020-04-01T21:02:31Z",
        "E": "eyJhbGciO...RfrKmTWk",
        "R": "eyJhbGciO...Z0IKW9aA"
    }
]]></artwork>
            <ul spacing="compact" bare="false" empty="false" pn="section-3.3.5.3-5">
              <li pn="section-3.3.5.3-5.1">Relying Party - Attester (CoAP) with GET</li>
            </ul>
            <artwork name="" type="" align="left" alt="" pn="section-3.3.5.3-6"><![CDATA[
  >> Request:
   GET coap://device.example/my-attested-resource
   Accept: TBD-application/rats-attested-resource-CT

  << Response:
   2.05 Content
   ETag: "qwerty"
   Max-Age: 3600
   Content-format: TBD-application/rats-attested-resource-CT
   Payload:
   {
        "r": {
            "type": "text/plain",
            "val": "foobar"
        },
        "t_A": "2020-04-01T21:02:31Z",
        "E": "eyJhbGciO...RfrKmTWk",
        "R": "eyJhbGciO...Z0IKW9aA"
    }
]]></artwork>
          </section>
        </section>
      </section>
    </section>
    <section anchor="sec-discovery" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-discovery">Discovery</name>
      <section anchor="resource-directory" numbered="true" toc="include" removeInRFC="false" pn="section-4.1">
        <name slugifiedName="name-resource-directory">Resource Directory</name>
        <t pn="section-4.1-1">The following describes the new link format attribute values needed for
registering attested resources as well as verification endpoints to a Resource
Directory <xref target="I-D.ietf-core-resource-directory" format="default" sectionFormat="of" derivedContent="I-D.ietf-core-resource-directory"/>.</t>
        <t pn="section-4.1-2">The same attribute values can be used by RD clients to discover attestation
related resources.</t>
        <section anchor="attested-resource-registration" numbered="true" toc="include" removeInRFC="false" pn="section-4.1.1">
          <name slugifiedName="name-attested-resource-registrat">Attested Resource Registration</name>
          <t pn="section-4.1.1-1">An attested resource is registered with:</t>
          <ul spacing="compact" bare="false" empty="false" pn="section-4.1.1-2">
            <li pn="section-4.1.1-2.1">an interface description (if=) with value <tt>rats.if.timestamp</tt> or
<tt>rats.if.nonce</tt> depending on the supported freshness model, which determines
the access method (i.e., POST+nonce vs GET);</li>
            <li pn="section-4.1.1-2.2">a content format (ct=) with value
"TBD-application/rats-attested-resource-CT";</li>
            <li pn="section-4.1.1-2.3">an inner content format (ict=) that reflects the <tt>type</tt> field of the
returned <tt>resource</tt>;</li>
            <li pn="section-4.1.1-2.4">a resource type (rt=) that reflects the nature of the inner resource.</li>
          </ul>
          <t pn="section-4.1.1-3">If a resource has both a "plain" and an "attested" variant, then the link value
corresponding to the "attested" resource can be associated to its "plain" twin
by means of the link relationship <tt>attested-variant</tt>.</t>
          <t pn="section-4.1.1-4">TBD: Should we have rats.if.timestamp variants for GET and POST?  Alternative
includes: 1) let the client probe and server return 405/4.05 if the requested
variant is not supported; 2) add another attribute that explicitly states which
request methods are supported.</t>
          <section anchor="examples-1" numbered="true" toc="exclude" removeInRFC="false" pn="section-4.1.1.1">
            <name slugifiedName="name-examples-2">Examples</name>
            <t pn="section-4.1.1.1-1">The following example shows a registrant endpoint with the name "node1"
registering an attested heart rate sensor resource to an RD.</t>
            <t pn="section-4.1.1.1-2">The location /rd is an example RD location discovered in a previous
.well-known/core query.</t>
            <artwork name="" type="" align="left" alt="" pn="section-4.1.1.1-3"><![CDATA[
  >> Request:
    POST /rd?ep=node1 HTTP/1.1
    Host: rd.example
    Content-Type: application/link-format

    </sensors/attested-heartrate>;
      if="rats.if.timestamp";
      rt="heart-rate-zoladz";
      ct=TBD-application/rats-attested-resource-CT;
      ict=0

  << Response:
    HTTP/1.1 201 Created
    Location: /rd/4520
]]></artwork>
            <t pn="section-4.1.1.1-4">The following example shows a registrant endpoint with the name "node1"
registering a temperature sensor resource along with its attested twin to an
RD.</t>
            <t pn="section-4.1.1.1-5">The <tt>attested-variant</tt> link relation establishes the semantics of the link
between /sensors/temp and /sensors/attested-temp: the latter being an attested
version of the former.  Note, in particular, that the resource type (rt=) of
the linked resource is inherited by the attested twin.  Missing an explicit
inner content format (ict=) the content type of the inner resource
representation can be assumed to be that of the linked resource.  The interface
description (if=) <tt>rats.if.nonce</tt> says that the access to the attested resource
happens by supplying a nonce through a POST.</t>
            <artwork name="" type="" align="left" alt="" pn="section-4.1.1.1-6"><![CDATA[
  >> Request:
    POST /rd?ep=node1 HTTP/1.1
    Host: rd.example
    Content-Type: application/link-format

    </sensors/temp>;
      ct=41;
      rt="temperature-c";
      if="sensor",
    </sensors/attested-temp>;
      anchor="/sensors/temp";
      rel="attested-variant";
      if="rats.if.nonce";
      ct=TBD-application/rats-attested-resource-CT;
      ict=41

  << Response:
    HTTP/1.1 201 Created
    Location: /rd/4521
]]></artwork>
          </section>
        </section>
        <section anchor="verifier-resource-registration" numbered="true" toc="include" removeInRFC="false" pn="section-4.1.2">
          <name slugifiedName="name-verifier-resource-registrat">Verifier Resource Registration</name>
          <t pn="section-4.1.2-1">A Verifier resource is registered with:</t>
          <ul spacing="compact" bare="false" empty="false" pn="section-4.1.2-2">
            <li pn="section-4.1.2-2.1">An <tt>rt</tt> with value <tt>rats.verifier</tt>;</li>
            <li pn="section-4.1.2-2.2">A <tt>ct</tt> with value <tt>TBD-application/rats-attestation-result-response-CT</tt></li>
          </ul>
          <section anchor="examples-2" numbered="true" toc="exclude" removeInRFC="false" pn="section-4.1.2.1">
            <name slugifiedName="name-examples-3">Examples</name>
            <artwork name="" type="" align="left" alt="" pn="section-4.1.2.1-1"><![CDATA[
  >> Request:
    POST /rd?ep=node1 HTTP/1.1
    Host: rd.example
    Content-Type: application/link-format

    </my-verifier>;
      ct=application/rats-attestation-result-response;
      rt="rats.verifier"

  << Response:
    HTTP/1.1 201 Created
    Location: /rd/4522
]]></artwork>
          </section>
        </section>
      </section>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t pn="section-5-1">TODO</t>
    </section>
    <section anchor="privacy-considerations" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-privacy-considerations">Privacy Considerations</name>
      <t pn="section-6-1">TODO</t>
    </section>
    <section anchor="security-considerations" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <section anchor="model-architecture-for-the-origin" numbered="true" toc="include" removeInRFC="false" pn="section-7.1">
        <name slugifiedName="name-model-architecture-for-the-">Model Architecture for the Origin</name>
        <t pn="section-7.1-1">The model architecture for the origin of the attested resource is illustrated
in <xref target="fig-model-sec-arch" format="default" sectionFormat="of" derivedContent="Figure 7"/>.  The REST client (an user agent of a relying party
or verifier) interfaces directly with a REST front-end (a CoAP or HTTP server
stack) running in the Rich Execution Environment (REE), for example a Linux
operating system.  The REST front-end is paired with a back-end Trusted
Application (TA) running in the Trusted Execution Environment (TEE).  The TA
has exclusive control over some "resource" (e.g., a sensor that feeds back into
some kind of critical infrastructure control system) and can talk to the
attestation service hosted inside the TEE to request EAT tokens.</t>
        <t pn="section-7.1-2">In this model, it is critical that the attestation service can only be used by
the intended TA or, failing that, that the identity of the calling TA can be
securely proved to the relying party or verifier.  An example of the latter is
the Client ID claim used in PSA attestation <xref target="I-D.tschofenig-rats-psa-token" format="default" sectionFormat="of" derivedContent="I-D.tschofenig-rats-psa-token"/>.</t>
        <figure anchor="fig-model-sec-arch" align="left" suppress-title="false" pn="figure-7">
          <name slugifiedName="name-model-security-architecture">Model Security Architecture</name>
          <artset pn="section-7.1-3.1">
            <artwork type="svg" align="center" name="" alt="" pn="section-7.1-3.1.1"><svg xmlns="http://www.w3.org/2000/svg" class="diagram" version="1.1" height="233" width="480" viewBox="0 0 480.0 233.0">
                <g transform="translate(8,16)">
                  <path d="M 96,16 L 240,16" fill="none" stroke="black"/>
                  <path d="M 240,16 L 464,16" fill="none" stroke="black"/>
                  <path d="M 0,48 L 72,48" fill="none" stroke="black"/>
                  <path d="M 120,48 L 216,48" fill="none" stroke="black"/>
                  <path d="M 264,48 L 352,48" fill="none" stroke="black"/>
                  <path d="M 392,48 L 432,48" fill="none" stroke="black"/>
                  <path d="M 80,64 L 112,64" fill="none" stroke="black"/>
                  <path d="M 224,64 L 256,64" fill="none" stroke="black"/>
                  <path d="M 352,64 L 368,64" fill="none" stroke="black"/>
                  <path d="M 392,80 L 432,80" fill="none" stroke="black"/>
                  <path d="M 0,96 L 72,96" fill="none" stroke="black"/>
                  <path d="M 120,96 L 216,96" fill="none" stroke="black"/>
                  <path d="M 264,96 L 312,96" fill="none" stroke="black"/>
                  <path d="M 312,96 L 352,96" fill="none" stroke="black"/>
                  <path d="M 264,144 L 376,144" fill="none" stroke="black"/>
                  <path d="M 264,192 L 376,192" fill="none" stroke="black"/>
                  <path d="M 96,208 L 240,208" fill="none" stroke="black"/>
                  <path d="M 240,208 L 464,208" fill="none" stroke="black"/>
                  <path d="M 0,48 L 0,96" fill="none" stroke="black"/>
                  <path d="M 72,48 L 72,96" fill="none" stroke="black"/>
                  <path d="M 96,16 L 96,48" fill="none" stroke="black"/>
                  <path d="M 96,80 L 96,208" fill="none" stroke="black"/>
                  <path d="M 120,48 L 120,96" fill="none" stroke="black"/>
                  <path d="M 216,48 L 216,96" fill="none" stroke="black"/>
                  <path d="M 240,16 L 240,48" fill="none" stroke="black"/>
                  <path d="M 240,80 L 240,208" fill="none" stroke="black"/>
                  <path d="M 264,48 L 264,96" fill="none" stroke="black"/>
                  <path d="M 264,144 L 264,192" fill="none" stroke="black"/>
                  <path d="M 312,96 L 312,128" fill="none" stroke="black"/>
                  <path d="M 352,48 L 352,64" fill="none" stroke="black"/>
                  <path d="M 352,64 L 352,96" fill="none" stroke="black"/>
                  <path d="M 376,144 L 376,192" fill="none" stroke="black"/>
                  <path d="M 464,16 L 464,208" fill="none" stroke="black"/>
                  <path d="M 96,48 L 96,56" fill="none" stroke="black"/>
                  <path d="M 96,72 L 96,80" fill="none" stroke="black"/>
                  <path d="M 240,48 L 240,56" fill="none" stroke="black"/>
                  <path d="M 240,72 L 240,80" fill="none" stroke="black"/>
                  <polygon points="88.000000,64.000000 76.000000,58.400002 76.000000,69.599998" transform="rotate(180.000000, 80.000000, 64.000000)" fill="black"/>
                  <polygon points="120.000000,64.000000 108.000000,58.400002 108.000000,69.599998" transform="rotate(0.000000, 112.000000, 64.000000)" fill="black"/>
                  <polygon points="232.000000,64.000000 220.000000,58.400002 220.000000,69.599998" transform="rotate(180.000000, 224.000000, 64.000000)" fill="black"/>
                  <polygon points="264.000000,64.000000 252.000000,58.400002 252.000000,69.599998" transform="rotate(0.000000, 256.000000, 64.000000)" fill="black"/>
                  <path d="M 312,128 L 312,136" fill="none" stroke="black"/>
                  <polygon points="328.000000,128.000000 316.000000,122.400002 316.000000,133.600006" transform="rotate(90.000000, 312.000000, 128.000000)" fill="black"/>
                  <polygon points="376.000000,64.000000 364.000000,58.400002 364.000000,69.599998" transform="rotate(0.000000, 368.000000, 64.000000)" fill="black"/>
                  <path d="M 392,48 A 16,16 0 0,0 376,64" fill="none" stroke="black"/>
                  <path d="M 432,48 A 16,16 0 0,1 448,64" fill="none" stroke="black"/>
                  <path d="M 376,64 A 16,16 0 0,0 392,80" fill="none" stroke="black"/>
                  <path d="M 448,64 A 16,16 0 0,1 432,80" fill="none" stroke="black"/>
                  <text text-anchor="middle" font-family="monospace" x="288" y="180" fill="black" font-size="1em">e</text>
                  <text text-anchor="middle" font-family="monospace" x="312" y="180" fill="black" font-size="1em">i</text>
                  <text text-anchor="middle" font-family="monospace" x="424" y="68" fill="black" font-size="1em">r</text>
                  <text text-anchor="middle" font-family="monospace" x="176" y="84" fill="black" font-size="1em">-</text>
                  <text text-anchor="middle" font-family="monospace" x="192" y="84" fill="black" font-size="1em">n</text>
                  <text text-anchor="middle" font-family="monospace" x="360" y="164" fill="black" font-size="1em">n</text>
                  <text text-anchor="middle" font-family="monospace" x="264" y="36" fill="black" font-size="1em">E</text>
                  <text text-anchor="middle" font-family="monospace" x="256" y="36" fill="black" font-size="1em">T</text>
                  <text text-anchor="middle" font-family="monospace" x="384" y="68" fill="black" font-size="1em">r</text>
                  <text text-anchor="middle" font-family="monospace" x="16" y="84" fill="black" font-size="1em">c</text>
                  <text text-anchor="middle" font-family="monospace" x="24" y="68" fill="black" font-size="1em">E</text>
                  <text text-anchor="middle" font-family="monospace" x="40" y="68" fill="black" font-size="1em">T</text>
                  <text text-anchor="middle" font-family="monospace" x="40" y="84" fill="black" font-size="1em">e</text>
                  <text text-anchor="middle" font-family="monospace" x="280" y="180" fill="black" font-size="1em">s</text>
                  <text text-anchor="middle" font-family="monospace" x="320" y="180" fill="black" font-size="1em">c</text>
                  <text text-anchor="middle" font-family="monospace" x="408" y="68" fill="black" font-size="1em">o</text>
                  <text text-anchor="middle" font-family="monospace" x="112" y="36" fill="black" font-size="1em">R</text>
                  <text text-anchor="middle" font-family="monospace" x="120" y="36" fill="black" font-size="1em">E</text>
                  <text text-anchor="middle" font-family="monospace" x="280" y="68" fill="black" font-size="1em">b</text>
                  <text text-anchor="middle" font-family="monospace" x="328" y="68" fill="black" font-size="1em">n</text>
                  <text text-anchor="middle" font-family="monospace" x="272" y="36" fill="black" font-size="1em">E</text>
                  <text text-anchor="middle" font-family="monospace" x="304" y="180" fill="black" font-size="1em">v</text>
                  <text text-anchor="middle" font-family="monospace" x="352" y="164" fill="black" font-size="1em">o</text>
                  <text text-anchor="middle" font-family="monospace" x="288" y="68" fill="black" font-size="1em">a</text>
                  <text text-anchor="middle" font-family="monospace" x="304" y="68" fill="black" font-size="1em">k</text>
                  <text text-anchor="middle" font-family="monospace" x="440" y="68" fill="black" font-size="1em">e</text>
                  <text text-anchor="middle" font-family="monospace" x="24" y="84" fill="black" font-size="1em">l</text>
                  <text text-anchor="middle" font-family="monospace" x="304" y="164" fill="black" font-size="1em">e</text>
                  <text text-anchor="middle" font-family="monospace" x="144" y="68" fill="black" font-size="1em">E</text>
                  <text text-anchor="middle" font-family="monospace" x="160" y="68" fill="black" font-size="1em">T</text>
                  <text text-anchor="middle" font-family="monospace" x="296" y="68" fill="black" font-size="1em">c</text>
                  <text text-anchor="middle" font-family="monospace" x="136" y="84" fill="black" font-size="1em">f</text>
                  <text text-anchor="middle" font-family="monospace" x="280" y="84" fill="black" font-size="1em">T</text>
                  <text text-anchor="middle" font-family="monospace" x="280" y="164" fill="black" font-size="1em">a</text>
                  <text text-anchor="middle" font-family="monospace" x="128" y="36" fill="black" font-size="1em">E</text>
                  <text text-anchor="middle" font-family="monospace" x="152" y="68" fill="black" font-size="1em">S</text>
                  <text text-anchor="middle" font-family="monospace" x="48" y="84" fill="black" font-size="1em">n</text>
                  <text text-anchor="middle" font-family="monospace" x="152" y="84" fill="black" font-size="1em">o</text>
                  <text text-anchor="middle" font-family="monospace" x="288" y="84" fill="black" font-size="1em">A</text>
                  <text text-anchor="middle" font-family="monospace" x="296" y="164" fill="black" font-size="1em">t</text>
                  <text text-anchor="middle" font-family="monospace" x="312" y="164" fill="black" font-size="1em">s</text>
                  <text text-anchor="middle" font-family="monospace" x="32" y="68" fill="black" font-size="1em">S</text>
                  <text text-anchor="middle" font-family="monospace" x="432" y="68" fill="black" font-size="1em">c</text>
                  <text text-anchor="middle" font-family="monospace" x="144" y="84" fill="black" font-size="1em">r</text>
                  <text text-anchor="middle" font-family="monospace" x="200" y="84" fill="black" font-size="1em">d</text>
                  <text text-anchor="middle" font-family="monospace" x="312" y="68" fill="black" font-size="1em">-</text>
                  <text text-anchor="middle" font-family="monospace" x="168" y="84" fill="black" font-size="1em">t</text>
                  <text text-anchor="middle" font-family="monospace" x="328" y="164" fill="black" font-size="1em">a</text>
                  <text text-anchor="middle" font-family="monospace" x="136" y="68" fill="black" font-size="1em">R</text>
                  <text text-anchor="middle" font-family="monospace" x="320" y="68" fill="black" font-size="1em">e</text>
                  <text text-anchor="middle" font-family="monospace" x="160" y="84" fill="black" font-size="1em">n</text>
                  <text text-anchor="middle" font-family="monospace" x="344" y="164" fill="black" font-size="1em">i</text>
                  <text text-anchor="middle" font-family="monospace" x="288" y="164" fill="black" font-size="1em">t</text>
                  <text text-anchor="middle" font-family="monospace" x="32" y="84" fill="black" font-size="1em">i</text>
                  <text text-anchor="middle" font-family="monospace" x="56" y="84" fill="black" font-size="1em">t</text>
                  <text text-anchor="middle" font-family="monospace" x="184" y="84" fill="black" font-size="1em">e</text>
                  <text text-anchor="middle" font-family="monospace" x="320" y="164" fill="black" font-size="1em">t</text>
                  <text text-anchor="middle" font-family="monospace" x="16" y="68" fill="black" font-size="1em">R</text>
                  <text text-anchor="middle" font-family="monospace" x="336" y="68" fill="black" font-size="1em">d</text>
                  <text text-anchor="middle" font-family="monospace" x="392" y="68" fill="black" font-size="1em">e</text>
                  <text text-anchor="middle" font-family="monospace" x="400" y="68" fill="black" font-size="1em">s</text>
                  <text text-anchor="middle" font-family="monospace" x="296" y="180" fill="black" font-size="1em">r</text>
                  <text text-anchor="middle" font-family="monospace" x="416" y="68" fill="black" font-size="1em">u</text>
                  <text text-anchor="middle" font-family="monospace" x="336" y="164" fill="black" font-size="1em">t</text>
                  <text text-anchor="middle" font-family="monospace" x="328" y="180" fill="black" font-size="1em">e</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center" name="" alt="" pn="section-7.1-3.1.2"><![CDATA[
            .-----------------.---------------------------.
            | REE             | TEE                       |
.--------.  |  .-----------.  |  .----------.   .------.  |
| REST   |<--->| REST      |<--->| back-end +->|resource| |
| client |  |  | front-end |  |  | TA       |   '------'  |
'--------'  |  '-----------'  |  '-----+----'             |
            |                 |        |                  |
            |                 |        v                  |
            |                 |  .-------------.          |
            |                 |  | attestation |          |
            |                 |  | service     |          |
            |                 |  '-------------'          |
            '-----------------'---------------------------'
]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t pn="section-8-1">TBD</t>
    </section>
  </middle>
  <back>
    <references pn="section-9">
      <name slugifiedName="name-references">References</name>
      <references pn="section-9.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="I-D.ietf-core-resource-directory" target="http://www.ietf.org/internet-drafts/draft-ietf-core-resource-directory-24.txt" quoteTitle="true" derivedAnchor="I-D.ietf-core-resource-directory">
          <front>
            <title>CoRE Resource Directory</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-core-resource-directory-24"/>
            <author initials="Z" surname="Shelby" fullname="Zach Shelby">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M" surname="Koster" fullname="Michael Koster">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C" surname="Bormann" fullname="Carsten Bormann">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P" surname="Stok" fullname="Peter van der Stok">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C" surname="Amsuess" fullname="Christian Amsuess">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="March" day="9" year="2020"/>
            <abstract>
              <t>In many IoT applications, direct discovery of resources is not practical due to sleeping nodes, disperse networks, or networks where multicast traffic is inefficient.  These problems can be solved by employing an entity called a Resource Directory (RD), which contains information about resources held on other servers, allowing lookups to be performed for those resources.  The input to an RD is composed of links and the output is composed of links constructed from the information stored in the RD.  This document specifies the web interfaces that a Resource Directory supports for web servers to discover the RD and to register, maintain, lookup and remove information on resources.  Furthermore, new target attributes useful in conjunction with an RD are defined.</t>
            </abstract>
          </front>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.ietf-rats-architecture" target="http://www.ietf.org/internet-drafts/draft-ietf-rats-architecture-04.txt" quoteTitle="true" derivedAnchor="I-D.ietf-rats-architecture">
          <front>
            <title>Remote Attestation Procedures Architecture</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-rats-architecture-04"/>
            <author initials="H" surname="Birkholz" fullname="Henk Birkholz">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D" surname="Thaler" fullname="Dave Thaler">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M" surname="Richardson" fullname="Michael Richardson">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="N" surname="Smith" fullname="Ned Smith">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="W" surname="Pan" fullname="Wei Pan">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="May" day="21" year="2020"/>
            <abstract>
              <t>In network protocol exchanges, it is often the case that one entity (a Relying Party) requires evidence about a remote peer to assess the peer's trustworthiness, and a way to appraise such evidence.  The evidence is typically a set of claims about its software and hardware platform.  This document describes an architecture for such remote attestation procedures (RATS).</t>
            </abstract>
          </front>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.ietf-rats-eat" target="http://www.ietf.org/internet-drafts/draft-ietf-rats-eat-03.txt" quoteTitle="true" derivedAnchor="I-D.ietf-rats-eat">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-03"/>
            <author initials="G" surname="Mandyam" fullname="Giridhar Mandyam">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L" surname="Lundblade" fullname="Laurence Lundblade">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M" surname="Ballesteros" fullname="Miguel Ballesteros">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J" surname="O'Donoghue" fullname="Jeremy O'Donoghue">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="February" day="20" year="2020"/>
            <abstract>
              <t>An Entity Attestation Token (EAT) provides a signed (attested) set of claims that describe state and characteristics of an entity, typically a device like a phone or an IoT device.  These claims are used by a relying party to determine how much it wishes to trust the entity.  An EAT is either a CWT or JWT with some attestation-oriented claims. To a large degree, all this document does is extend CWT and JWT.  Contributing  TBD</t>
            </abstract>
          </front>
          <format type="PDF" target="http://www.ietf.org/internet-drafts/draft-ietf-rats-eat-03.pdf"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <seriesInfo name="BCP" value="14"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1997" month="March"/>
            <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>
        </reference>
        <reference anchor="RFC7230" target="https://www.rfc-editor.org/info/rfc7230" quoteTitle="true" derivedAnchor="RFC7230">
          <front>
            <title>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</title>
            <seriesInfo name="RFC" value="7230"/>
            <seriesInfo name="DOI" value="10.17487/RFC7230"/>
            <author initials="R." surname="Fielding" fullname="R. Fielding" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Reschke" fullname="J. Reschke" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2014" month="June"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems.  This document provides an overview of HTTP architecture and its associated terminology, defines the "http" and "https" Uniform Resource Identifier (URI) schemes, defines the HTTP/1.1 message syntax and parsing requirements, and describes related security concerns for implementations.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC7252" target="https://www.rfc-editor.org/info/rfc7252" quoteTitle="true" derivedAnchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <seriesInfo name="RFC" value="7252"/>
            <seriesInfo name="DOI" value="10.17487/RFC7252"/>
            <author initials="Z." surname="Shelby" fullname="Z. Shelby">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Hartke" fullname="K. Hartke">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2014" month="June"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks.  The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s.  The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types.  CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC7320" target="https://www.rfc-editor.org/info/rfc7320" quoteTitle="true" derivedAnchor="RFC7320">
          <front>
            <title>URI Design and Ownership</title>
            <seriesInfo name="BCP" value="190"/>
            <seriesInfo name="RFC" value="7320"/>
            <seriesInfo name="DOI" value="10.17487/RFC7320"/>
            <author initials="M." surname="Nottingham" fullname="M. Nottingham">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2014" month="July"/>
            <abstract>
              <t>Section 1.1.1 of RFC 3986 defines URI syntax as "a federated and extensible naming system wherein each scheme's specification may further restrict the syntax and semantics of identifiers using that scheme."  In other words, the structure of a URI is defined by its scheme.  While it is common for schemes to further delegate their substructure to the URI's owner, publishing independent standards that mandate particular forms of URI substructure is inappropriate, because that essentially usurps ownership.  This document further describes this problematic practice and provides some acceptable alternatives for use in standards.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC7641" target="https://www.rfc-editor.org/info/rfc7641" quoteTitle="true" derivedAnchor="RFC7641">
          <front>
            <title>Observing Resources in the Constrained Application Protocol (CoAP)</title>
            <seriesInfo name="RFC" value="7641"/>
            <seriesInfo name="DOI" value="10.17487/RFC7641"/>
            <author initials="K." surname="Hartke" fullname="K. Hartke">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2015" month="September"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a RESTful application protocol for constrained nodes and networks.  The state of a resource on a CoAP server can change over time.  This document specifies a simple protocol extension for CoAP that enables CoAP clients to "observe" resources, i.e., to retrieve a representation of a resource and keep this representation updated by the server over a period of time.  The protocol follows a best-effort approach for sending new representations to clients and provides eventual consistency between the state observed by each client and the actual resource state at the server.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <seriesInfo name="BCP" value="14"/>
            <seriesInfo name="RFC" value="8174"/>
            <seriesInfo name="DOI" value="10.17487/RFC8174"/>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="May"/>
            <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>
        </reference>
      </references>
      <references pn="section-9.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="Fielding" target="http://www.ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation.pdf" quoteTitle="true" derivedAnchor="Fielding">
          <front>
            <title>Architectural Styles and the Design of Network-based Software Architectures</title>
            <seriesInfo name="Ph.D." value="Dissertation, University of California, Irvine"/>
            <author initials="R." surname="Fielding" fullname="Roy Thomas Fielding">
              <organization showOnFrontPage="true">University of California, Irvine</organization>
            </author>
            <date year="2000"/>
          </front>
        </reference>
        <reference anchor="I-D.birkholz-rats-tuda" target="http://www.ietf.org/internet-drafts/draft-birkholz-rats-tuda-02.txt" quoteTitle="true" derivedAnchor="I-D.birkholz-rats-tuda">
          <front>
            <title>Time-Based Uni-Directional Attestation</title>
            <seriesInfo name="Internet-Draft" value="draft-birkholz-rats-tuda-02"/>
            <author initials="A" surname="Fuchs" fullname="Andreas Fuchs">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="H" surname="Birkholz" fullname="Henk Birkholz">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="I" surname="McDonald" fullname="Ira McDonald">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C" surname="Bormann" fullname="Carsten Bormann">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="March" day="9" year="2020"/>
            <abstract>
              <t>This documents defines the method and bindings used to conduct Time- based Uni-Directional Attestation (TUDA) between two RATS (Remote ATtestation procedureS) Principals over the Internet.  TUDA does not require a challenge-response handshake and thereby does not rely on the conveyance of a nonce to prove freshness of remote attestation Evidence.  Conversely, TUDA enables the creation of Secure Audit Logs that can constitute Evidence about current and past operational states of an Attester.  As a prerequisite for TUDA, every RATS Principal requires access to a trusted and synchronized time-source. Per default, in TUDA this is a Time Stamp Authority (TSA) issuing signed Time Stamp Tokens (TST).</t>
            </abstract>
          </front>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.tschofenig-rats-psa-token" target="http://www.ietf.org/internet-drafts/draft-tschofenig-rats-psa-token-05.txt" quoteTitle="true" derivedAnchor="I-D.tschofenig-rats-psa-token">
          <front>
            <title>Arm's Platform Security Architecture (PSA) Attestation Token</title>
            <seriesInfo name="Internet-Draft" value="draft-tschofenig-rats-psa-token-05"/>
            <author initials="H" surname="Tschofenig" fullname="Hannes Tschofenig">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S" surname="Frost" fullname="Simon Frost">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M" surname="Brossard" fullname="Mathias Brossard">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A" surname="Shaw" fullname="Adrian Shaw">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T" surname="Fossati" fullname="Thomas Fossati">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="March" day="6" year="2020"/>
            <abstract>
              <t>The Platform Security Architecture (PSA) is a family of hardware and firmware security specifications, as well as open-source reference implementations, to help device makers and chip manufacturers build best-practice security into products.  Devices that are PSA compliant are able to produce attestation tokens as described in this memo, which are the basis for a number of different protocols, including secure provisioning and network access control.  This document specifies the PSA attestation token structure and semantics.  At its core, the CWT (COSE Web Token) format is used and populated with a set of claims in a way similar to EAT (Entity Attestation Token).  This specification describes what claims are used by PSA compliant systems.</t>
            </abstract>
          </front>
          <refcontent>Work in Progress</refcontent>
        </reference>
      </references>
    </references>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author initials="A." surname="Shaw" fullname="Adrian Shaw">
        <organization showOnFrontPage="true">arm</organization>
        <address>
          <email>Adrian.Shaw@arm.com</email>
        </address>
      </author>
      <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
        <organization showOnFrontPage="true">arm</organization>
        <address>
          <email>Hannes.Tschofenig@arm.com</email>
        </address>
      </author>
      <author initials="S." surname="Trofimov" fullname="Sergei Trofimov">
        <organization showOnFrontPage="true">arm</organization>
        <address>
          <email>Sergei.Trofimov@arm.com</email>
        </address>
      </author>
      <author initials="S." surname="Frost" fullname="Simon Frost">
        <organization showOnFrontPage="true">arm</organization>
        <address>
          <email>Simon.Frost@arm.com</email>
        </address>
      </author>
      <author initials="T." surname="Fossati" fullname="Thomas Fossati">
        <organization showOnFrontPage="true">arm</organization>
        <address>
          <email>Thomas.Fossati@arm.com</email>
        </address>
      </author>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
