<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="info" consensus="false" docName="draft-ietf-ace-aif-00" indexInclude="true" ipr="trust200902" prepTime="2020-07-29T23:02:41" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="4" tocInclude="true" xml:lang="en">
  <!-- xml2rfc v2v3 conversion 2.47.0 -->
  <front>
    <title abbrev="ACE AIF">An Authorization Information Format (AIF) for ACE</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ace-aif-00" stream="IETF"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization showOnFrontPage="true">Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <date month="07" year="2020" day="29"/>
    <area>Internet</area>
    <keyword>Internet-Draft</keyword>
    <abstract pn="section-abstract">
      <t pn="section-abstract-1">Constrained Devices as they are used in the "Internet of Things" need
security.
One important element of this security is that devices in the Internet
of Things need to be able to decide which operations requested of them
should be considered authorized, need to ascertain that the
authorization to request the operation does apply to the actual
requester,
<!-- an operation was actually requested by a requester authorized to
request the operation, -->
and need to ascertain that other devices they place
requests on are the ones they intended.</t>
      <t pn="section-abstract-2">To transfer detailed authorization information from an authorization manager
(such as an ACE-OAuth Authorization Server) to a device, a
representation format is needed.
This document provides a suggestion for such a format, the
Authorization Information Format (AIF).
AIF is defined both as a general structure that can be used for many
different applications and as a specific refinement that describes
REST resources and the permissions on them.</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 30 January 2021.
        </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-terminology">Terminology</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t 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-information-model">Information Model</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-rest-specific-model">REST-specific model</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.2">
                <t 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-limitations">Limitations</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.3">
                <t 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-extended-rest-specific-mode">Extended REST-specific model</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t 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-data-model">Data Model</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t 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-media-types">Media Types</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t 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>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2">
              <li pn="section-toc.1-1.5.2.1">
                <t pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-media-types-2">Media Types</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.2">
                <t pn="section-toc.1-1.5.2.2.1"><xref derivedContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-registries">Registries</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.3">
                <t pn="section-toc.1-1.5.2.3.1"><xref derivedContent="5.3" format="counter" sectionFormat="of" target="section-5.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-content-format">Content-Format</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.6">
            <t 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-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t 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-references">References</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 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-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.2">
                <t pn="section-toc.1-1.7.2.2.1"><xref derivedContent="7.2" format="counter" sectionFormat="of" target="section-7.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.8">
            <t pn="section-toc.1-1.8.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t pn="section-toc.1-1.9.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-address">Author's Address</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="introduction" toc="include" numbered="true" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t pn="section-1-1">(See Abstract.)</t>
      <section anchor="terminology" toc="include" numbered="true" removeInRFC="false" pn="section-1.1">
        <name slugifiedName="name-terminology">Terminology</name>
        <t pn="section-1.1-1">This memo uses terms from <xref target="RFC7252" format="default" sectionFormat="of" derivedContent="RFC7252"/> and <xref target="RFC4949" format="default" sectionFormat="of" derivedContent="RFC4949"/>.</t>
        <t pn="section-1.1-2">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.
These words may also appear in this document in
lower case as plain English words, absent their normative meanings.</t>
        <t pn="section-1.1-3">(Note that this document is itself informational, but it is discussing
normative statements that MUST be put into concrete terms in each
specification that makes use of this document.)</t>
        <t pn="section-1.1-4">The term "byte", abbreviated by "B", is used in its now customary
sense as a synonym for "octet".</t>
      </section>
    </section>
    <section anchor="information-model" toc="include" numbered="true" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-information-model">Information Model</name>
      <t pn="section-2-1">Authorizations are generally expressed through some data structures
that are cryptographically secured (or transmitted in a secure way).
This section discusses the information model underlying the payload of
that data (as opposed to the cryptographic armor around it).</t>
      <t pn="section-2-2">For the purposes of this strawman, the underlying access control model
will be that of an access matrix, which gives a set of permissions for
each possible combination of a subject and an object.
We do not concern the AIF format with the subject for which the
AIF object is issued, focusing the AIF object on a single row in the
access matrix (such a row traditionally is also called a capability list).
As a consequence, AIF MUST be used in a way that the subject of the
authorizations is unambiguously identified (e.g., as part of the armor
around it).</t>
      <t pn="section-2-3">The generic model of a such a capability list is a list of pairs of
object identifiers and the permissions the subject has on the
object(s) identified.</t>
      <figure anchor="genaif" align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-definition-of-generic-aif">Definition of Generic AIF</name>
        <artwork type="CDDL" name="" align="left" alt="" pn="section-2-4.1"><![CDATA[
AIF-Generic<Toid, Tperm> = [* [Toid, Tperm]]
]]></artwork>
      </figure>
      <t pn="section-2-5">In a specific data model, the object identifier (<tt>Toid</tt>) will often be
a text string, and the set of permissions (<tt>Tperm</tt>) will be represented
by a bitset in turn represented as a number (see <xref target="data-model" format="default" sectionFormat="of" derivedContent="Section 3"/>).</t>
      <figure anchor="specaif" align="left" suppress-title="false" pn="figure-2">
        <name slugifiedName="name-likely-shape-of-a-specific-">Likely shape of a specific AIF</name>
        <artwork type="CDDL" name="" align="left" alt="" pn="section-2-6.1"><![CDATA[
AIF-Specific = AIF-Generic<tstr, uint>
]]></artwork>
      </figure>
      <section anchor="rest-specific-model" toc="include" numbered="true" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-rest-specific-model">REST-specific model</name>
        <t pn="section-2.1-1">In the specific instantiation of the REST resources and the
permissions on them, for the object identifiers (<tt>Toid</tt>), we simply
use the URI of a resource on a CoAP server.  More specifically, the
parts of the URI that identify the server ("authority" in
<xref target="RFC3986" format="default" sectionFormat="of" derivedContent="RFC3986"/>) are considered the realm of the authentication mechanism
(which are handled in the cryptographic armor); we therefore focus on
the "path-absolute" and "query" parts of the URI (URI "local-part" in
this specification, as expressed by the Uri-Path and Uri-Query options
in CoAP).  As a consequence, AIF MUST be used in a way that it is
unambiguous who is the target (enforcement point) of these
authorizations.</t>
        <t pn="section-2.1-2">For the permissions (<tt>Tperm</tt>), we simplify the model permissions to
giving the subset of the CoAP methods permitted.  This model is
summarized in <xref target="im-example" format="default" sectionFormat="of" derivedContent="Table 1"/>.</t>
        <table anchor="im-example" align="center" pn="table-1">
          <name slugifiedName="name-an-authorization-instance-i">An authorization instance in the AIF Information Model</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">local-part</th>
              <th align="left" colspan="1" rowspan="1">Permission Set</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">/s/light</td>
              <td align="left" colspan="1" rowspan="1">GET</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">/a/led</td>
              <td align="left" colspan="1" rowspan="1">PUT, GET</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">/dtls</td>
              <td align="left" colspan="1" rowspan="1">POST</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="limitations" toc="include" numbered="true" removeInRFC="false" pn="section-2.2">
        <name slugifiedName="name-limitations">Limitations</name>
        <t pn="section-2.2-1">This simple information model only allows granting permissions for
statically identifiable objects, e.g. URIs for the REST-specific
instantiation.  One might be tempted to extend the model towards URI
templates <xref target="RFC6570" format="default" sectionFormat="of" derivedContent="RFC6570"/>, however, that requires some considerations of
the ease and unambiguity of matching a given URI against a set of
templates in an AIF object.</t>
        <t pn="section-2.2-2">This simple information model also doesn't allow further
conditionalizing access based on state outside the identification of
objects (e.g., "opening a door is allowed if that isn't locked").</t>
        <t pn="section-2.2-3">Finally, the model does not provide any special access for a set of
resources that are specific to a subject, e.g. that the subject
created itself by previous operations (PUT, POST) or that were
specifically created for the subject by others.</t>
      </section>
      <section anchor="extended-rest-specific-model" toc="include" numbered="true" removeInRFC="false" pn="section-2.3">
        <name slugifiedName="name-extended-rest-specific-mode">Extended REST-specific model</name>
        <t pn="section-2.3-1">The extended REST-specific model addresses the need to provide defined
access to dynamic resources that were created by the subject itself,
specifically, a resource that is made known to the subject by
providing Location-* options in a CoAP result or using the Location
header field in HTTP <xref target="RFC7231" format="default" sectionFormat="of" derivedContent="RFC7231"/> (the Location-indicating mechanisms).
(The concept is somewhat comparable to "ACL inheritance" in NFSv4
<xref target="rfc5661" format="default" sectionFormat="of" derivedContent="rfc5661"/>, except that it does not use a containment relationship
but the fact that the dynamic resource was created from a resource to
which the subject had access.)</t>
        <table anchor="im-example-dynamic" align="center" pn="table-2">
          <name slugifiedName="name-an-authorization-instance-in">An authorization instance in the AIF Information Model</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">local-part</th>
              <th align="left" colspan="1" rowspan="1">Permission Set</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">/a/make-coffee</td>
              <td align="left" colspan="1" rowspan="1">POST, Dynamic-GET, Dynamic-DELETE</td>
            </tr>
          </tbody>
        </table>
        <t pn="section-2.3-3">For a method X, the presence of a Dynamic-X permission means that the subject
holds permission to exercise the method X on resources that have been
returned by a Location-indicating mechanism to a request that the
subject made to the resource listed (<tt>/a/make-coffee</tt> in the example,
which might return the location of a resource that allows GET to find
out about the status and DELETE to cancel the coffee-making
operation).</t>
        <t pn="section-2.3-4">Since the use of the extension defined in this section can be detected
by the mentioning of the Dynamic-X permissions, there is no need for
another explicit switch between the basic and the extended model; the
extended model is always presumed once a Dynamic-X permission is present.</t>
      </section>
    </section>
    <section anchor="data-model" toc="include" numbered="true" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-data-model">Data Model</name>
      <t pn="section-3-1">Different data model specializations can be defined for the generic
information model given above.</t>
      <t pn="section-3-2">In this section, we will give the data model for basic REST
authorization.
As discussed, the object identifier is specialized as a text string
giving a relative URI (local-part as absolute path on the server
serving as enforcement point).
The permission set is specialized to a single number by the following steps:</t>
      <ul spacing="normal" bare="false" empty="false" pn="section-3-3">
        <li pn="section-3-3.1">The entries in the table that specify the same local-part are merged
into a single entry that specifies the union of the permission sets.</li>
        <li pn="section-3-3.2">The (non-dynamic) methods in the permission sets are converted into
their CoAP method numbers, minus 1.</li>
        <li pn="section-3-3.3">Dynamic-X permissions are converted into what the number would have
been for X, plus a Dynamic-Offset chosen as 32 (e.g., 35 for Dynamic-DELETE).</li>
        <li pn="section-3-3.4">The set of numbers is converted into a single number by taking each
number to the power of two and computing the inclusive OR of the
binary representations of all the power values.</li>
      </ul>
      <t pn="section-3-4">This data model could be interchanged in the JSON
<xref target="RFC8259" format="default" sectionFormat="of" derivedContent="RFC8259"/> representation given in <xref target="dm-json" format="default" sectionFormat="of" derivedContent="Figure 3"/>.</t>
      <figure anchor="dm-json" align="left" suppress-title="false" pn="figure-3">
        <name slugifiedName="name-an-authorization-instance-e">An authorization instance encoded in JSON (46 bytes)</name>
        <artwork name="" type="" align="left" alt="" pn="section-3-5.1"><![CDATA[
[["/s/light", 1], ["/a/led", 5], ["/dtls", 2]]
]]></artwork>
      </figure>
      <t pn="section-3-6">In CDDL <xref target="RFC8610" format="default" sectionFormat="of" derivedContent="RFC8610"/>, a straightforward specification of the data model
(including both the methods from <xref target="RFC7252" format="default" sectionFormat="of" derivedContent="RFC7252"/> and the new ones from
<xref target="RFC8132" format="default" sectionFormat="of" derivedContent="RFC8132"/>, identified by the method code minus 1) is:</t>
      <figure anchor="aif-cddl" align="left" suppress-title="false" pn="figure-4">
        <name slugifiedName="name-aif-in-cddl">AIF in CDDL</name>
        <artwork type="CDDL" name="" align="left" alt="" pn="section-3-7.1"><![CDATA[
AIF-REST = AIF-Generic<path, permissions>
path = tstr   ; URI relative to enforcement point
permissions = uint .bits methods
methods = &(
  GET: 0
  POST: 1
  PUT: 2
  DELETE: 3
  FETCH: 4
  PATCH: 5
  iPATCH: 6
  Dynamic-GET: 32; 0 .plus Dynamic-Offset
  Dynamic-POST: 33; 1 .plus Dynamic-Offset
  Dynamic-PUT: 34; 2 .plus Dynamic-Offset
  Dynamic-DELETE: 35; 3 .plus Dynamic-Offset
  Dynamic-FETCH: 36; 4 .plus Dynamic-Offset
  Dynamic-PATCH: 37; 5 .plus Dynamic-Offset
  Dynamic-iPATCH: 38; 6 .plus Dynamic-Offset
)
]]></artwork>
      </figure>
      <t pn="section-3-8">A representation of this information in CBOR
<xref target="RFC7049" format="default" sectionFormat="of" derivedContent="RFC7049"/> is given in <xref target="dm-cbor" format="default" sectionFormat="of" derivedContent="Figure 5"/>; again, several
optimizations/improvements are possible.</t>
      <figure anchor="dm-cbor" align="left" suppress-title="false" pn="figure-5">
        <name slugifiedName="name-an-authorization-instance-en">An authorization instance encoded in CBOR (29 bytes)</name>
        <artwork name="" type="" align="left" alt="" pn="section-3-9.1"><![CDATA[
83                        # array(3)
   82                     # array(2)
      68                  # text(8)
         2f732f6c69676874 # "/s/light"
      01                  # unsigned(1)
   82                     # array(2)
      66                  # text(6)
         2f612f6c6564     # "/a/led"
      05                  # unsigned(5)
   82                     # array(2)
      65                  # text(5)
         2f64746c73       # "/dtls"
      02                  # unsigned(2)
]]></artwork>
      </figure>
      <t pn="section-3-10">Note that choosing 32 as Dynamic-Offset means that all future CoAP
methods that can be registered can be represented both as themselves
and in the Dynamic-X variant, but only the dynamic forms of methods 1
to 21 are typically usable in a JSON form <xref target="RFC7493" format="default" sectionFormat="of" derivedContent="RFC7493"/>.</t>
    </section>
    <section anchor="media-types" toc="include" numbered="true" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-media-types">Media Types</name>
      <t pn="section-4-1">This specification defines media types for the generic information
model, expressed in JSON (<tt>application/aif+json</tt>) or in CBOR (<tt>application/aif+cbor</tt>).  These media types have
parameters for specifying <tt>Toid</tt> and <tt>Tperm</tt>; default values are the
values "local-uri" for <tt>Toid</tt> and "REST-method-set" for <tt>Tperm</tt>.</t>
      <t pn="section-4-2">[Insert lots of boilerplate here]</t>
      <t pn="section-4-3">A specification that wants to use Generic AIF with different <tt>Toid</tt>
and/or <tt>Tperm</tt> is expected to request these as media type parameters
(<xref target="registries" format="default" sectionFormat="of" derivedContent="Section 5.2"/>) and register a corresponding Content-Format (<xref target="content-format" format="default" sectionFormat="of" derivedContent="Section 5.3"/>).</t>
    </section>
    <section anchor="iana-considerations" toc="include" numbered="true" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section anchor="media-types-1" toc="include" numbered="true" removeInRFC="false" pn="section-5.1">
        <name slugifiedName="name-media-types-2">Media Types</name>
        <t pn="section-5.1-1">See <xref target="media-types" format="default" sectionFormat="of" derivedContent="Section 4"/>.</t>
      </section>
      <section anchor="registries" toc="include" numbered="true" removeInRFC="false" pn="section-5.2">
        <name slugifiedName="name-registries">Registries</name>
        <t pn="section-5.2-1">IANA is requested to create a registry for AIF with two sub-registries for <tt>Toid</tt> and <tt>Tperm</tt>,
populated with:</t>
        <table align="center" pn="table-3">
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Subregistry</th>
              <th align="left" colspan="1" rowspan="1">name</th>
              <th align="left" colspan="1" rowspan="1">Description/Specification</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">Toid</td>
              <td align="left" colspan="1" rowspan="1">local-part</td>
              <td align="left" colspan="1" rowspan="1">local-part of URI as specified in [RFCthis]</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Tperm</td>
              <td align="left" colspan="1" rowspan="1">REST-method-set</td>
              <td align="left" colspan="1" rowspan="1">set of REST methods represented as specified in [RFCthis]</td>
            </tr>
          </tbody>
        </table>
        <t pn="section-5.2-3">The registration policy is Specification required <xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/>.
The designated expert will engage with the submitter to ascertain the
requirements of this document are addressed.</t>
      </section>
      <section anchor="content-format" toc="include" numbered="true" removeInRFC="false" pn="section-5.3">
        <name slugifiedName="name-content-format">Content-Format</name>
        <t pn="section-5.3-1">IANA is requested to register Content-Format numbers in the CoRE
Parameters Registry <xref target="IANA.core-parameters" format="default" sectionFormat="of" derivedContent="IANA.core-parameters"/>, as follows:</t>
      </section>
    </section>
    <section anchor="security-considerations" toc="include" numbered="true" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t pn="section-6-1">(TBD.  Some issues are already discussed in the security
considerations of <xref target="RFC7252" format="default" sectionFormat="of" derivedContent="RFC7252"/> and in <xref target="RFC8576" format="default" sectionFormat="of" derivedContent="RFC8576"/>.)</t>
    </section>
  </middle>
  <back>
    <references pn="section-7">
      <name slugifiedName="name-references">References</name>
      <references pn="section-7.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <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="RFC4949" target="https://www.rfc-editor.org/info/rfc4949" quoteTitle="true" derivedAnchor="RFC4949">
          <front>
            <title>Internet Security Glossary, Version 2</title>
            <seriesInfo name="FYI" value="36"/>
            <seriesInfo name="RFC" value="4949"/>
            <seriesInfo name="DOI" value="10.17487/RFC4949"/>
            <author initials="R." surname="Shirey" fullname="R. Shirey">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2007" month="August"/>
            <abstract>
              <t>This Glossary provides definitions, abbreviations, and explanations of terminology for information system security. The 334 pages of entries offer recommendations to improve the comprehensibility of written material that is generated in the Internet Standards Process (RFC 2026). The recommendations follow the principles that such writing should (a) use the same term or definition whenever the same concept is mentioned; (b) use terms in their plainest, dictionary sense; (c) use terms that are already well-established in open publications; and (d) avoid terms that either favor a particular vendor or favor a particular technology or mechanism over other, competing techniques that already exist or could be developed.  This memo provides information for the Internet community.</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="RFC8126" target="https://www.rfc-editor.org/info/rfc8126" quoteTitle="true" derivedAnchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <seriesInfo name="BCP" value="26"/>
            <seriesInfo name="RFC" value="8126"/>
            <seriesInfo name="DOI" value="10.17487/RFC8126"/>
            <author initials="M." surname="Cotton" fullname="M. Cotton">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Narten" fullname="T. Narten">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="June"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters.  To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper.  For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed.  This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</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>
        <reference anchor="RFC8610" target="https://www.rfc-editor.org/info/rfc8610" quoteTitle="true" derivedAnchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <seriesInfo name="RFC" value="8610"/>
            <seriesInfo name="DOI" value="10.17487/RFC8610"/>
            <author initials="H." surname="Birkholz" fullname="H. Birkholz">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Vigano" fullname="C. Vigano">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2019" month="June"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049).  Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
        </reference>
      </references>
      <references pn="section-7.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="I-D.ietf-ace-dtls-authorize" target="http://www.ietf.org/internet-drafts/draft-ietf-ace-dtls-authorize-12.txt" quoteTitle="true" derivedAnchor="I-D.ietf-ace-dtls-authorize">
          <front>
            <title>Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-ace-dtls-authorize-12"/>
            <author initials="S" surname="Gerdes" fullname="Stefanie Gerdes">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="O" surname="Bergmann" fullname="Olaf Bergmann">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C" surname="Bormann" fullname="Carsten Bormann">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="G" surname="Selander" fullname="Goeran Selander">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L" surname="Seitz" fullname="Ludwig Seitz">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="July" day="6" year="2020"/>
            <abstract>
              <t>This specification defines a profile of the ACE framework that allows constrained servers to delegate client authentication and authorization.  The protocol relies on DTLS version 1.2 for communication security between entities in a constrained network using either raw public keys or pre-shared keys.  A resource- constrained server can use this protocol to delegate management of authorization information to a trusted host with less severe limitations regarding processing power and memory.</t>
            </abstract>
          </front>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.ietf-ace-oscore-profile" target="http://www.ietf.org/internet-drafts/draft-ietf-ace-oscore-profile-11.txt" quoteTitle="true" derivedAnchor="I-D.ietf-ace-oscore-profile">
          <front>
            <title>OSCORE profile of the Authentication and Authorization for Constrained Environments Framework</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-ace-oscore-profile-11"/>
            <author initials="F" surname="Palombini" fullname="Francesca Palombini">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L" surname="Seitz" fullname="Ludwig Seitz">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="G" surname="Selander" fullname="Goeran Selander">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M" surname="Gunnarsson" fullname="Martin Gunnarsson">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="June" day="18" year="2020"/>
            <abstract>
              <t>This memo specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework.  It utilizes Object Security for Constrained RESTful Environments (OSCORE) to provide communication security, server authentication, and proof-of-possession for a key owned by the client and bound to an OAuth 2.0 access token.</t>
            </abstract>
          </front>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="IANA.core-parameters" target="http://www.iana.org/assignments/core-parameters" quoteTitle="true" derivedAnchor="IANA.core-parameters">
          <front>
            <title>Constrained RESTful Environments (CoRE) Parameters</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC3986" target="https://www.rfc-editor.org/info/rfc3986" quoteTitle="true" derivedAnchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <seriesInfo name="STD" value="66"/>
            <seriesInfo name="RFC" value="3986"/>
            <seriesInfo name="DOI" value="10.17487/RFC3986"/>
            <author initials="T." surname="Berners-Lee" fullname="T. Berners-Lee">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Fielding" fullname="R. Fielding">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Masinter" fullname="L. Masinter">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2005" month="January"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource.  This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet.  The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier.  This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="rfc5661" target="https://www.rfc-editor.org/info/rfc5661" quoteTitle="true" derivedAnchor="rfc5661">
          <front>
            <title>Network File System (NFS) Version 4 Minor Version 1 Protocol</title>
            <seriesInfo name="RFC" value="5661"/>
            <seriesInfo name="DOI" value="10.17487/RFC5661"/>
            <author initials="S." surname="Shepler" fullname="S. Shepler" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Eisler" fullname="M. Eisler" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Noveck" fullname="D. Noveck" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2010" month="January"/>
            <abstract>
              <t>This document describes the Network File System (NFS) version 4 minor version 1, including features retained from the base protocol (NFS version 4 minor version 0, which is specified in RFC 3530) and protocol extensions made subsequently.  Major extensions introduced in NFS version 4 minor version 1 include Sessions, Directory Delegations, and parallel NFS (pNFS).  NFS version 4 minor version 1 has no dependencies on NFS version 4 minor version 0, and it is considered a separate protocol.  Thus, this document neither updates nor obsoletes RFC 3530.  NFS minor version 1 is deemed superior to NFS minor version 0 with no loss of functionality, and its use is preferred over version 0.  Both NFS minor versions 0 and 1 can be used simultaneously on the same network, between the same client and server.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC6570" target="https://www.rfc-editor.org/info/rfc6570" quoteTitle="true" derivedAnchor="RFC6570">
          <front>
            <title>URI Template</title>
            <seriesInfo name="RFC" value="6570"/>
            <seriesInfo name="DOI" value="10.17487/RFC6570"/>
            <author initials="J." surname="Gregorio" fullname="J. Gregorio">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Fielding" fullname="R. Fielding">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Hadley" fullname="M. Hadley">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Nottingham" fullname="M. Nottingham">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Orchard" fullname="D. Orchard">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2012" month="March"/>
            <abstract>
              <t>A URI Template is a compact sequence of characters for describing a range of Uniform Resource Identifiers through variable expansion. This specification defines the URI Template syntax and the process for expanding a URI Template into a URI reference, along with guidelines for the use of URI Templates on the Internet.   [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC7049" target="https://www.rfc-editor.org/info/rfc7049" quoteTitle="true" derivedAnchor="RFC7049">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <seriesInfo name="RFC" value="7049"/>
            <seriesInfo name="DOI" value="10.17487/RFC7049"/>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Hoffman" fullname="P. Hoffman">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2013" month="October"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation.  These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC7231" target="https://www.rfc-editor.org/info/rfc7231" quoteTitle="true" derivedAnchor="RFC7231">
          <front>
            <title>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</title>
            <seriesInfo name="RFC" value="7231"/>
            <seriesInfo name="DOI" value="10.17487/RFC7231"/>
            <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 defines the semantics of HTTP/1.1 messages, as expressed by request methods, request header fields, response status codes, and response header fields, along with the payload of messages (metadata and body content) and mechanisms for content negotiation.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC7493" target="https://www.rfc-editor.org/info/rfc7493" quoteTitle="true" derivedAnchor="RFC7493">
          <front>
            <title>The I-JSON Message Format</title>
            <seriesInfo name="RFC" value="7493"/>
            <seriesInfo name="DOI" value="10.17487/RFC7493"/>
            <author initials="T." surname="Bray" fullname="T. Bray" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2015" month="March"/>
            <abstract>
              <t>I-JSON (short for "Internet JSON") is a restricted profile of JSON designed to maximize interoperability and increase confidence that software can process it successfully with predictable results.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8132" target="https://www.rfc-editor.org/info/rfc8132" quoteTitle="true" derivedAnchor="RFC8132">
          <front>
            <title>PATCH and FETCH Methods for the Constrained Application Protocol (CoAP)</title>
            <seriesInfo name="RFC" value="8132"/>
            <seriesInfo name="DOI" value="10.17487/RFC8132"/>
            <author initials="P." surname="van der Stok" fullname="P. van der Stok">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Sehgal" fullname="A. Sehgal">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="April"/>
            <abstract>
              <t>The methods defined in RFC 7252 for the Constrained Application Protocol (CoAP) only allow access to a complete resource, not to parts of a resource.  In case of resources with larger or complex data, or in situations where resource continuity is required, replacing or requesting the whole resource is undesirable.  Several applications using CoAP need to access parts of the resources.</t>
              <t>This specification defines the new CoAP methods, FETCH, PATCH, and iPATCH, which are used to access and update parts of a resource.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8259" target="https://www.rfc-editor.org/info/rfc8259" quoteTitle="true" derivedAnchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <seriesInfo name="STD" value="90"/>
            <seriesInfo name="RFC" value="8259"/>
            <seriesInfo name="DOI" value="10.17487/RFC8259"/>
            <author initials="T." surname="Bray" fullname="T. Bray" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="December"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format.  It was derived from the ECMAScript Programming Language Standard.  JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8576" target="https://www.rfc-editor.org/info/rfc8576" quoteTitle="true" derivedAnchor="RFC8576">
          <front>
            <title>Internet of Things (IoT) Security: State of the Art and Challenges</title>
            <seriesInfo name="RFC" value="8576"/>
            <seriesInfo name="DOI" value="10.17487/RFC8576"/>
            <author initials="O." surname="Garcia-Morchon" fullname="O. Garcia-Morchon">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Kumar" fullname="S. Kumar">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Sethi" fullname="M. Sethi">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2019" month="April"/>
            <abstract>
              <t>The Internet of Things (IoT) concept refers to the usage of standard Internet protocols to allow for human-to-thing and thing-to-thing communication.  The security needs for IoT systems are well recognized, and many standardization steps to provide security have been taken -- for example, the specification of the Constrained Application Protocol (CoAP) secured with Datagram Transport Layer Security (DTLS).  However, security challenges still exist, not only because there are some use cases that lack a suitable solution, but also because many IoT devices and systems have been designed and deployed with very limited security capabilities.  In this document, we first discuss the various stages in the lifecycle of a thing. Next, we document the security threats to a thing and the challenges that one might face to protect against these threats.  Lastly, we discuss the next steps needed to facilitate the deployment of secure IoT systems.  This document can be used by implementers and authors of IoT specifications as a reference for details about security considerations while documenting their specific security challenges, threat models, and mitigations.</t>
              <t>This document is a product of the IRTF Thing-to-Thing Research Group (T2TRG).</t>
            </abstract>
          </front>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgements" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t pn="section-appendix.a-1">Jim Schaad and Francesca Palombini provided comments that shaped the
direction of this document.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-address">Author's Address</name>
      <author initials="C." surname="Bormann" fullname="Carsten Bormann">
        <organization showOnFrontPage="true">Universität Bremen TZI</organization>
        <address>
          <postal>
            <street>Postfach 330440</street>
            <city>Bremen</city>
            <code>D-28359</code>
            <country>Germany</country>
          </postal>
          <phone>+49-421-218-63921</phone>
          <email>cabo@tzi.org</email>
        </address>
      </author>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAObjIV8AA6Va63IbOXb+j6fAcqoScpYtS6RE3daTlSV5xlu2pZXkmk0c
Vwx2g2Sv+8I0ukVzZM2z5EeeJHmxfOcA6AtFj3cq+mGzu4GDg3P5zgUIgkCU
cZnoE3mWybOqXORF/Isq4zyTr7JZXqT290v+Jftnr14OJF7Ls/NLoabTQt+f
0G+JDyLKw0ylIBUValYGsS5ngQp1oOJZsLsrIlXi22h3tBvsHgajYyFMqbLo
P1SSZ/hQFpUWIl4W/NOUo93d492RUIVWJ+Cl1EWmS/GdXM1P5Hl+cyl/zotP
cTaXPxZ5tRSfVs2o4IIYEKEqT2SMXQixjE+ElGUensi1NvZnpJfl4kTu48nk
RVnomfFfzTptHoVisRAB+gvc/xKkMeJ8R74g4WRZ/d4K4VwVptTZk695gQ28
y+J7XZi4/N//LuWLQqcYePdvr+pBBuxocH+dm3KmwoUcj3f393fr72Fcrk/c
xOZlHmHdi2B0ND44br2tsrLA6B81MbKuPywXLPc/7h8H+6O9YLR3FEzGx6O9
eoBOVZycyFBN8z+Xv8Q74FyIzNrEvSZ53Lw8PxwdjDAmV0v7fLQ3mkDqKlNh
nhn3brK3izFRlEDB3qpqCkejg+MT+XeT005eBRc7teFEZWIC5YyS7IqfQ705
LjdhXuhgWeSzmEyZntXSjSQe94/H4ClwazCXY3C9VGW4cC8ODsG20SFzLYIg
kGoKLaiwFOIc7/AzznQkL/R9HGojlZHlQq8l7FNWBh/ijF7InjdCmc/k3QIG
anoy0zoSIF4V0NuOuMq0jNMljE5lpdQJaZHHl4vYSD9OxrQEvC5yS7oVal+o
F2D6MGk51eA60fQz0mEcablaxLCefKkLdmQjC/2flYZhRnY9nQqzyKskorm0
d0wq8LGWejSsqSsTarDMbIAtTBaqgxgY48gzo/WqMspJYstlsqYx9A1yrVQi
PDfFUPzpDyTzrDVrBRnbcZjX8D2F0OvHosUpaIut6w9lEPwggDVf20qO4UUt
Z9brMiHzceSMBDukaSab+TExNJFFOtoR4g7bKlRmZkwHlJOWEO124haezoo8
pc12R8A91VwXom8qKI12nxG4BlcEzBvofKsLIMiAN+M4H0oFhpeFNjAnt47F
7diaCHF6RyYGpK7Y5uAy99A4VpKmms+xVTdLWhYcgSEr+x8LDzsC/9KKkZ6x
x0whXd6MnOsMGkkI3SroleWJaSG2OXVeREszSkXxDLIkHslu4tCZLymRaZkl
DHwWh7AEWoZ347zFhEU8BXDfXN7e4bPJq4I9FlNJf7CKNDaGyeXsUumO9fg0
BkQhCMHDijwCixgjnrf+hOjfai3PHDLsDKB4opblST5fEw3/J6ygU53mtDEY
DMYZq/eHh4Dw6fGRWXp4+APwZ/94//jxkQwJHH6Cba3yIjKy9+bd7V1vaP+X
b6/4983lX9+9urm8oN+3P529fl3/EG7E7U9X715fNL+amedXb95cvr2wk/FW
dl6J3puzf8UX4qt3dX336urt2eueBZ622bArMNyQCxQwOXJMZYQXPsPhi/Pr
//mvvX23w9HeHnboHo72DvfxsFrozK6WZ/Bx+0iuJaB0rQqiAu+HhSzjUiVm
SLoHXq0yCYfVZM0wdierVAEYEpPLZm6X6zgTSb6Cg4YKk0AJPo5Bl9k8ic3C
UhkS7Ftb0nEh62gHTaqMsBYqEv23eak9CHZWAEiXRieztrOrZCinFT7y9yg2
YQXry+ZNKIVDIDciCg7xWduQ7pKmZZA0kDkkITszAtcaWYHwTuDgl6am6hOs
DSZXxxPPHVvrwpKQvem61KRpzuFi5YC19wLvYlNHNOwGMlhJsFzmqSrWiGKZ
FR5ccJ3l2Tpln+3lYanL3g45T4MLb5CRJB0Pcm7UgRLD9uTAAWagPxOGEQfl
ArndfIH8LNUS+aNqoMMI3i7NDIv1ssznhVoi2DEFDqGY3wdnDMtpXJZ2R8p9
RHRZDxwc4o0NU1Y3Ft47eJ3SRmQFsC+SNSWdDCRqneSKAqnlhRnsQzT5cpkb
G2hoXIc/cJyCK4WNwezjEjyIl8QmEawKmmiaVADMrwCH7BTt5VUIRDNkFkCq
xLInVjFcZeoMEyQovthx2EURfx66bGAOk2P92SSljYfYsSDLkuDDxJRKhHk6
jTMrBaKJwDD9O+RlkRjv+GlH/AwF5bCVkm0VCQqzTKHAxaBVjDBA7zwBMhvL
EAcXjLS02IuMqSj1mMF2jZd3a0jOisQHcFjAPm1qJDrblS6M8gAIMoqtNyac
WTFSkLUQcBHAqGmcUNYFLCClnJGEKCGiDCCj4ErLe8f0/qHIjOp0qN6aTa26
2ZFhv0JtMI3nVV4ZYiOCW8J/yVL1znyH4W2pCk/A2oro2Ap5MLsKTMlapdMK
b3VjH7xR+4sUreKCbEt4Ofvli+3Bsb2jhfLB0s3um0GLfzD266+/yvOLi9ek
yeBHy+Gf7vIYWrwjqj/I5/L99/J969WHDzRLPJzI77AllImSa9HnvQuK6bG3
OUeMFNB7JIBph392OhaEdZIne5P9j7Tkx4Fk/8hnVJRNoRwA4eeSXAxmNKwF
sMUpQIAePQWov86ykNZzOjol2C/ZDCuYfuu7hcqsSqfEikH28PBAPAfM8+Pj
YFN0t35nz2VbkiUYHcoK0eCHWmgkhJbUXsefNIHfQi21swpPy4mOU6Kgfmth
I3j6x0JmafihqHWpWIlrIKCv2xMssSXBGrK3b9WPqRUEfMKKKIyStaAARsPf
3byyW/HLWNc/z8+uoSpKgXckwkzRsEoObvNV8iTjeSVC7Kdu5bXTNpGQ/Z5z
1XJN2Y54ePgXJCnj46MJFGRjTFMa0bxCqyStvRRziaYLw6kOF8gVTCr6Ft5o
Pt5ESVMlbgkJg1PaPhUiekb7YejDbgVXlShVFwFSkzypELdtggZgKsDvk232
6Z9ekkMUAX3kLdl40s4XGG2aWDu1EnlXxMG1oowdS9DDX2kVhDTGMJTvLPsB
pP67EZITINGCQMB/bqtcbFwVc3hQX1PUDW0+v8xh7gO3NbOJp+3Auc1bG3Py
2rZ42YG4XCAa+gADsHPuT09sY6nGkkgueRLlENi4zeyZFvZjqhSJEdef2O7D
Q5wG+rPCqprz+S+yUYT8Iq/rxVHB4QW+PzPPkni+KKXE9x8v72Trj7+rZ2Q5
/Civ390NW4P4O7VFpP9+dXvXmU840bDkoeJss/S0/h1qb6CkyieZHEHI6xhy
sArYUu+wuLelTpzfwzXzlZEwe3gLZL6ZeVAa7DI4jw/czrCYgdycgiSZuKnh
pANoooNS0BQ1WlKWLaVFOl2WNisD8GuH95a9Ml8pqiFAW9C4BAmxkRYGJgeH
u4+PQ4myQwMshtaYqTMQw3VsburhwUV6zgg1cnRKlbGQt3mKy7CulPpOnMZx
Lpax16q5IvbrvKzFB7lR1kp/dr4lbU5uqOmS/XNppS5nVUHYIsCpT4TiX1qp
5FSRw4IC1yIyr0rakE2EnS5CD/4uBTA+a+nlS53Z/UQ5FMPpFZVacImZ831m
Ba7wSUc9znnjrEZqxzV3iSiDdF0JbHptIUslnk3Sey2hJvTUtUAdsLgv4rIX
ZzibaZpAScWFj6vZgIBLKoYImVodsz77HDkWoKiwVFBFatGOONLT8obpEycQ
5e4SwdXlZ9svkv9gGO54l3ZWu326VFHEQG7R1Pe5vCRdL8YnyNQfXMMmuX3S
kSFtrN6LCwl+K1ZMQ9GNtK3Q7DQN+8aSnzIq010J1EhDWJbIWl7n1qKC7314
sQGDgRdEq6QkgTcFgJ8gFhorFBLpQ8Ko+9Pd3bXz1sPReO/xUfbb44MYNk8/
QaeOzgZW2Cexcr2yZMbJl1fckspTALbvpfbOzl9jGWgxZpDkjsjbl7f3+5Qp
FLPwYDLZI4jQn5mSj3a1QVM2w7GSWo4c2gqdWPNaxEtB3QHid6bCsrHSTQ1x
P7Q2M24gtkSfi7qWaiXtkfMbqv07kchFi2402vLnAhB1FYIwn82Qv9ogM5QX
lr8A0ah5uLh8fXl3+STuBH4z/+/485IBwIZl+TcLHzbZDl3S61n5Wyu+cPvG
PEWARZ744G7HcXDQRRi7/NMvRMi44SoLda8RV3QGHKKs37emf9PqLC41XWrX
R/caY89xPlPrluo3KhE/dhXx0cvKyXjoLMAGPMsTf0/ysFW/d73VhWTKKLAs
QCISgH6pprmzSQoHlc3tnW6pHUWqSmwmy7wE4ItaWjVsEsTfxllopVi3oxyI
sah9f9j36XwXxrWDI13ihS2wrCYy+kzSdKS2KdoMbQrNLe/c4iClFiqzPX7k
u0kcwjfNKkYQxkLlCipkegiBlIy7xKBGW8bXU1ZT952Nc0hvDVtglXIADfXX
bDA2zlIpgF9Q3brZH8Pruu3dFLY+BtaNhFpCVoA+5Li2gHiaD9gsA0q91zuu
tmsEznkyV7Y0zEJPszYRt4KhqNNNwblL4ptm0dfqb1930AZ8PdwqvX0Crhwm
3rsipgVWNMWVPnRmt3BVpaveBP3HFFDOPKkeuEfc1gLX6V2WbK5gu0muUndG
N8vJP4g4XHBpToT4XnIozsB7cyRX2khBDmWDowucKtVt0KUEJdWocyIhbV+3
XpYIrtsUYhfJq6xVcHe3gZTCctPPgDYOYQd1yeJ425jjq1kIznZEETmk63a3
Kh4nB7hTGmfw/z1aa6vDbSEoVx5nnTRXfMJIgIm1CDLZrIDey4SwpSZ8NZuR
esJFbshejRyPfI45PuA53Tgz8BJwZZtjmvS7wdE2/TJk2Ua69O8d9i75nICk
vsoZESghqEqfiADYwDiZ6tWNb/ZhY0hpi7XsHsFxZU5nGA3Ze5UA/X0S3/K1
0B/E8qkKRYx50zL4y+3VW6QbfIiNBGfjoM96OBegUerG2M6SeP++50vM3lDu
fRhKvOCaEo8H9pFKSDyNWh05R+bbERuRN48sn8Sj7O9PJJ0umIHr1lFriw+9
oiihLIm7+Ir4gUap7ur2JbyxN4IRfRY4J418mthE5q1HajYDXtmTWvpOcuPD
flq+1XWtQwubPG3Dm/sANnTC8mu15rjf1W3LERwN2+7wg2CEei6pYYcE6pTR
rIY2yi82MarTMHvOPT65Qx1Fv0fh9/pc/lMfhoZofSLpMgglYieSbmygRjmR
I/ywjnEix/j98vLu/Cd7w+X6jH8eEPC43xMa3eRwmDI6lbtyh32y65GtkXbJ
8fhU7n1zKPE03j+Vo2+NrJk+OJXjbw12uxpPTuX+N1mwWx0fnsqDb431chkf
ncrJ9sEDNgh2D7rURAZd+wcdeltbJ7M/23RQf6TTDs40/sXVjWs3Hu7SETBh
V9eZw2lePD6e2gbBEFB3T+dkgkqm1KcEz+KU6ip3hkiI7A9wHAgcjbdl9/T3
HYYXat0fD+jiz9HoNweNBu520ORo2yAK6/2jQX2DSI5mh+PRbBJOjieHk6PD
fYxpwMgN293bRqpCkjhHdtPf+318Tb7K16TD12SP+TqY7LsxHhM9Vwe/ydXB
7+NqKzHm6qDL1f7h/iQ8HNdjHDR7pras12JqNGijN9nN70JvskXZHx230Ls5
6EZMzrkQR0hWm47RLq8o1s0qvt1B+USNXe2rHoWeU01D3fT6TXNi4i+M0MGB
0cm9Nnx3x8XBJgm5V0WsstKernODsV02k5tx8PUM7AmA72jPXl5YL13fpjKc
u3HjgcMXzaN4EjdR9I2OYiXv1ktw0jnGvnvSVHdJOUE3zSlpzmaC3sYA4Y6u
mj58HUY/ti6+PAPc/JH4+cg9qFpZT8aQ0j8OuElNNyPaXHD6RV0NCISSJL7l
Y7NV0qs9hOH46Trop7QZRV0Ym7H4G1DCPbojhqqIe0ysRaHHLSor+QAG4gcw
XUj039+/ypC2U0fQnl1M8zjRBfc7+WrHB4LQLdcbVoovSfClmvbBoD1ebi4N
WV7Ibp41CxO2QtBcVm5cVrN3GhpxyUZQov/wYA2WUn4+EMIOvQlzX6eA7pbU
WIUcz3O6FVYG/k7Uw0Po3lil2yO/V2dvz2hoq2v89J4EmVjb9jodwVs+SmSO
A1Ywm+pNzahoD+bl4vbtP6riuZfEhRdPWtubvV6YlPqaaho0e9/UshPrUCzz
ZZVwX4pmnlCv6baa1mS/8JXYNmh9kRd8U4jbfs9uO3r+1h+1pIiHhtZGX6v7
BsbF7fXaUa2PvUfEpYD8YRt12lZNfcOU8cZVG5wOenTZOPL9ylpfbCfXScbu
d5nDg/lOQlcO7oQhYjBy92lJx0Qg0gT5LHEy6KK0BbzO5mquO1ct+NSq2Lzz
aG82xoVLGDavCrGn+44yHe53jVpsdqe3mlftIRseURdpmTtmu7kU1w0s3Xir
QVZEdHfs3d56AFcQxlXmlKOTK7gbs992KHeL7+7FBTDylo5u+KqJxTaVwCOi
ddPS8Dz6K7niyTnPRuXBOVvgrhFDWQN7sXCqwk8AtJB64sgx5lbsT/ijyG2l
o6PnvSynCPyXOJW3KAWplYsFXhYUtU2o5LVK+GpO7Jv8XKS2LpHxPQB7Ih9B
02EnDa0vhVkGZ0k1mwl7B5cbmMnPdBvuRG65XNU9u/ZXlNjJOODzZdstlAhY
2gdhT06iOOxxQvw1Ep2ct3snwc75P2nzi0rQMAAA

-->

</rfc>
