<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<?rfc subcompact="no"?>
<?rfc iprnotified="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-transport-indication-11" category="std" consensus="true" submissionType="IETF" tocDepth="3" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title>CoAP Transport Indication</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-transport-indication-11"/>
    <author initials="C." surname="Amsüss" fullname="Christian Amsüss">
      <organization/>
      <address>
        <postal>
          <country>Austria</country>
        </postal>
        <email>christian@amsuess.com</email>
      </address>
    </author>
    <author fullname="Martine Sophie Lenders">
      <organization abbrev="TU Dresden">TUD Dresden University of Technology</organization>
      <address>
        <postal>
          <street>Helmholtzstr. 10</street>
          <city>Dresden</city>
          <code>D-01069</code>
          <country>Germany</country>
        </postal>
        <email>martine.lenders@tu-dresden.de</email>
      </address>
    </author>
    <date year="2026" month="November" day="02"/>
    <area>Internet</area>
    <workgroup>CoRE</workgroup>
    <keyword>CoRE, Web Linking, Proxy, URI, aliasing</keyword>
    <abstract>
      <?line 76?>

<t>The Constrained Application Protocol (CoAP, <xref target="RFC7252"/>) is available over different transports
(UDP, DTLS, TCP, TLS, WebSockets),
but lacks a way to unify the addresses of these transports.
This document provides terminology and provisions based on Web Linking <xref target="RFC8288"/>
and Service Bindings (SVCB, <xref target="RFC9460"/>)
to express alternative transports available to a device,
and to optimize exchanges using these.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://core-wg.github.io/transport-indication/"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-core-transport-indication/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        core Working Group mailing list (<eref target="mailto:core@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/core/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/core/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/core-wg/transport-indication"/>.</t>
    </note>
  </front>
  <middle>
    <?line 86?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Constrained Application Protocol (CoAP) provides multiple transport mechanisms:
UDP and DTLS since <xref target="RFC7252"/>, and TCP, TLS, and WebSockets since <xref target="RFC8323"/>.
Some additional transports are used in LwM2M <xref target="lwm2m"/>,
and even more are explored (<xref target="I-D.bormann-t2trg-slipmux"/>, <xref target="I-D.ietf-core-coap-over-gatt"/>).
These are mutually incompatible in their wire format,
but CoAP implementations commonly support several of them,
and proxies can translate between them.</t>
      <t>CoAP currently lacks a way to indicate which transports are available for a given resource,
and which endpoints are available for them.
This document introduces ways to discover transports
and how to use them.</t>
      <t>CoAP also lacks a unified scheme to label a resource in a transport-independent way.
This document does <em>not</em> attempt to introduce any new scheme here,
or raise a scheme to be the canonical one.
Instead, each host or application can pick a canonical address for its resources,
and advertise other transports in addition.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>Readers are expected to be familiar with the terms and concepts
described in CoAP <xref target="RFC7252"/>.
For web link based discovery,
terminology introduced for link format <xref target="RFC6690"/> is used
(or, equivalently, web links as described in <xref target="RFC8288"/>).
<xref target="RFC9176"/> provides definitions for CoRE Resource Discovery.
For DNS-based discovery,
<xref target="RFC9460"/> and <xref target="RFC9461"/> provide the relevant definitions.</t>
        <t>The phrase "the transport indicated by (a URI)" is used as described in <xref target="identifying"/>.</t>
        <t>A protocol that implements CoAP request-response semantics for a lower layer
is called a "(CoAP) transport".</t>
        <t>When the term "endpoint" is used in this document,
it is generalized from the <xref target="RFC7252"/> definition
to mean the transport and any multiplexing information particular to that transport.</t>
        <t><cref anchor="missing-terminology">TBD List with source: "origin", "link context" "anchor" <xref target="RFC6698"/>, "resolution service", "cross proxy" <xref target="RFC7252"/>, "unique proxy" (this document), "canonical URI", "URI aliasing", ... --ML</cref></t>
      </section>
      <section anchor="goals">
        <name>Goals</name>
        <t>This document introduces provisions for the seamless use of different transport mechanisms for CoAP.
Combined, these provide:</t>
        <ol spacing="normal" type="1"><li>
            <t>Enablement: Inform clients of the availability of other transports offered by servers.</t>
          </li>
          <li>
            <t>No Aliasing: Any URI aliasing must be opt-in by the server. Any defined mechanisms must allow applications to keep working on the canonical URIs given by the server.</t>
          </li>
          <li>
            <t>Optimization: Do not incur per-request overhead from switching transports. This may depend on the server's willingness to create aliased URIs.</t>
          </li>
          <li>
            <t>Proxy usability: All information provided must be usable by aware proxies to reduce the need for duplicate cache entries.</t>
          </li>
          <li>
            <t>Proxy announcement: Allow third parties to announce that they provide alternative transports to a host.</t>
          </li>
        </ol>
        <t>For all these functions, security policies must be described that allow the client to use them as securely as the original transport.</t>
        <t>This document will not concern itself with changes in transport availability over time,
neither in causing them ("Please take up your TCP interface, I'm going to send a firmware update")
nor in advertising their availability in advance.
Hosts whose transport's availability changes over time can utilize
any suitable mechanism to keep clients updated,
such as placing a suitable Max-Age value on their resources
or having them observable.</t>
      </section>
      <section anchor="endpoints-are-proxies">
        <name>Core principle: Transport endpoints are proxies</name>
        <t>CoAP does not need any special provisions to send the same request for a single resource through different transports:
A request to any globally addressable resource
can be sent to any endpoint
by phrasing it as a proxy request.</t>
        <t>Whether that endpoint is
trusted to,
capable of,
and willing to
relay that request,
and how to find suitable endpoints
to serve as a proxy for a request
is discussed in this document.</t>
        <t>When resource identifiers have different meanings depending on the host,
the applicability of this document is limited.
<cref anchor="applicabilitylimited">Possibly not limited a lot, but we have not looked into those cases in detail yet. --CA</cref>
Examples of such resources are those whose URIs include the loopback addresses or partially-qualified domain names.</t>
      </section>
      <section anchor="registered-names-and-transport-setup">
        <name>Registered names and transport setup</name>
        <t>The CoAP specification is intentionally open about the resolution services
by which indirect identifiers in the host portion of a CoAP URI are resolved,
giving DNS as one example without going into details (<xref section="6.1" sectionFormat="of" target="RFC7252"/>).</t>
        <t>This document does not change any of that,
but it does point out in <xref target="findendpoint"/> the breadth of information that such a service can provide
(e.g., providing multiple addresses, or metadata on services used on them),
and gives a concrete example of the information that modern DNS idioms deliver
(which it enables by performing a registration in <xref target="iana-underscored"/>).</t>
      </section>
      <section anchor="concepts">
        <name>Concepts</name>
        <dl>
          <dt>Same-host proxy:</dt>
          <dd>
            <t>A CoAP server that accepts forward proxy requests (i.e., requests carrying the Proxy-Scheme option)
exclusively for URIs that it is also the authoritative server for is defined as a "same-host proxy".</t>
          </dd>
          <dt/>
          <dd>
            <t>The distinction between a same-host proxy and any other proxy is only relevant on a practical, server-implementation and illustrative level;
this specification does not use the distinction in normative requirements,
and clients need not make the distinction at all.</t>
          </dd>
          <dt>Recommended proxy:</dt>
          <dd>
            <t>A proxy indicated by a server to be useful for accessing that server.</t>
          </dd>
        </dl>
        <t>When talking of proxy requests,
this document only talks of the Proxy-Scheme option.
Given that all URIs this is usable with can be expressed in decomposed CoAP URIs,
the need for using the Proxy-URI option should never arise.
The Proxy-URI option is still equivalent to the decomposed options,
and can be used if the server supports it.</t>
        <section anchor="identifying">
          <name>Using URIs to identify transport endpoints</name>
          <t>The URI <tt>coap://[2001:db8::1]</tt> identifies a particular resource, possibly a "welcome" text.
It is, colloquially, also used to identify the combination
of a CoAP transport and the transport specific details.</t>
          <t>For precision, this document uses the term
"the transport address indicated by (a URI)" to refer to the transport and its details that can be inferred by the scheme and origin of a URI;
URIs that have empty and absent paths, queries and fragment identifiers are used in places where a URI is used for the transport address indicated by it.
For many practical purposes, the distinction between a URI and the transport address indicated by it is irrelevant.</t>
          <t>Note that as such a URI may contain a registered name.
As with any CoAP URI, resolution services apply.
Therefore, it may indicate multiple transport endpoints.</t>
          <t>[ TBD: Do we want to extend this to HTTP proxies? Probably just not, and if so, only to those that can just take coap://... for a URI. ]</t>
        </section>
      </section>
    </section>
    <section anchor="findendpoint">
      <name>Finding suitable endpoints for a URI</name>
      <t>When a CoAP request is created by a client,
a typical starting point is the URI of the target resource of the request.
To send the request,
a suitable endpoint needs to be discovered.
This section lists how one or more such endpoints can be discovered.</t>
      <t>In some situations,
a client decides to use a forward proxy to access the resource:
either because it is explicitly configured to do so (<xref target="actualproxies"/>),
or because it has discovered a recommended proxy (<xref target="hasproxy"/>)
In that case, it
finds the endpoint of the configured proxy (using <xref target="processing-scheme-authority"/>, if not given explicitly).
The proxy then decides on an endpoint to which to forward the request on its own,
(again using the tools described in this section).
Otherwise, it uses the information of scheme and authority,
often through a resolution service (<xref target="processing-scheme-authority"/>).</t>
      <t>No matter how the endpoint (and thus transport) was discovered and whether a proxy is involved,
it does not alter the URI of the resource being requested.
The Proxy-Scheme, Uri-Host, and Uri-Port options are set as needed
to ensure that the request keeps targeting the requested resource.
This happens, respectively,</t>
      <ul spacing="normal">
        <li>
          <t>If the URI scheme associated with the selected transport differs from the scheme of the request URI
(or a proxy is used),</t>
        </li>
        <li>
          <t>If the hostname is not the default one for the transport
(e.g., if it is not an IP literal in the UDP or TCP cases, or a proxy is used;
DNS CNAME entries or SVCB target do not alter the hostname of the URI), or</t>
        </li>
        <li>
          <t>If a different port than the default one is used (as possible through SVCB record information).</t>
        </li>
      </ul>
      <t>Outside proxy cases,
<xref section="6.4" sectionFormat="of" target="RFC7252"/> only talks of setting the Uri-Host to preserve the URI, and not of setting Proxy-Scheme or Uri-Port.
That is because at the time of writing of <xref target="RFC7252"/>, no mechanisms were available to select a different transport or port.</t>
      <t>Note that there is no meaningful difference in a client's behavior between
when it is configured with a proxy,
has discovered a proxy through links,
or has discovered a completely different transport:
this is the essence of "transport endpoints are proxies", see <xref target="endpoints-are-proxies"/>.</t>
      <t><cref anchor="moveme">The following two paragraphs may need a new home eventually to keep this section to the point. --CA</cref></t>
      <t>For servers that follow the common pattern of exposing the same resources on all transports (and thus having multiple aliased URIs for the same resource)
and that do not act as proxies for other systems,
the presence of the Proxy-Scheme option introduced by using alternative transports has little practical consequence:
such servers become same-host proxies,
and can ignore the Proxy-Scheme option as long as they recognize the Uri-Host value
(which they are already required to process).</t>
      <t>While a server is at liberty to create aliases,
clients cannot infer from the presence of a transport for a host
that URIs created from addressing that transport exist.
For example, if <tt>coap://h.example.net/sensors/temp</tt> is a known resource,
and CoAP over TCP on <tt>[2001:db8::1]</tt> is indicated as a transport endpoint,
there is no reason for the client to assume that <tt>coap+tcp://[2001:db8::1]/sensors/temp</tt> exists,
let alone is the same resource:
Clients that access the known resource by establishing a TCP connection
need to send the options Proxy-Scheme value "coap", the Uri-Host value "h.example.net",
and the Uri-Path values "sensors" and "temp".</t>
      <section anchor="processing-scheme-authority">
        <name>Processing scheme and authority</name>
        <t>To discover endpoints for a given URI,
the scheme and the authority component of the URI
are typical starting points for resolution services.</t>
        <t>The outcome of any resolution service is a list of transport candidates.
It may be partially sorted, and may arrive piece by piece.</t>
        <t>In addition to the list of transport candidates,
a resolution service may also provide general metadata of the endpoint
(e.g., necessary or sufficient requirements on the endpoint's credentials,
such as those present in TLSA records).</t>
        <t>Conceptually, each entry contains:</t>
        <ul spacing="normal">
          <li>
            <t>Which CoAP transport is used, e.g., CoAP over TCP; typically expressed as a TLS Application Layer Protocol Negotiation (ALPN) ID.</t>
          </li>
          <li>
            <t>The transport's address details (e.g., an IP address and port number).</t>
          </li>
          <li>
            <t>Any additional metadata that facilitates communication (e.g., public keys for <xref target="RFC9849"/>).</t>
          </li>
        </ul>
        <t>While it is generally preferable for the lookup result to be complete, the resolution service might manage only partial information.
From that partial information,
further resolution may be performed,
or the information may already suffice to send a request based on other known proxy information.</t>
        <t>Resolution services may have more structure in that list,
may provide multiple choices in a single result,
or may branch out in multiple layers.
At a conceptual level, those are reduced to an expanded list of individual candidates.</t>
        <section anchor="transport-unaware-resolution">
          <name>Transport-unaware resolution</name>
          <t>The IP based transports specified so far (CoAP over UDP, DTLS, TCP, TLS, and WebSockets)
all indicate the transport in their scheme,
and either use their default port or indicate the port explicitly.
The only remaining details of multiplexing information required are the IP version(s) and IP address(es) of the server.</t>
          <t>If the host component of the URI is a literal,
that information is already available.</t>
          <t>If the host component of the URI is a registered name,
a name resolution service is used for a simple name lookup:
When DNS is used as a resolution service,
AAAA (or A) records of the name are looked up.
The /etc/hosts file and nsswitch "hosts" database can provide that same information.</t>
          <t>Additional metadata provided by this resolution service
are the zone identifier (implied in DNS by using the zone the DNS response was obtained through)
or additional records (such as the aforementioned TLSA records).</t>
          <t>Simple resolution services do not indicate which transports are available on the address.
Servers reached that way can resort to <xref target="hasproxy"/> to indicate alternative transports while exchanging initial data through the original transport,
or to store information in link-format- / web-link-based information systems (such as a Resource Directory <xref target="RFC9176"/>).</t>
        </section>
        <section anchor="transport-aware-resolution-mechanisms">
          <name>Transport-aware resolution mechanisms</name>
          <t>Advanced resolution services
provide information about which transports are available in addition to those of the previous section.</t>
          <t>For the DNS resolution mechanism, SVCB lookups described in <xref target="svcb-discovery"/>
provide that information.</t>
          <t>It is recommended
that future transports are designed to utilize transport-aware resolution mechanisms; see <xref target="upcomingtransports"/> for details.</t>
        </section>
      </section>
      <section anchor="hasproxy">
        <name>Explicit proxy indication</name>
        <t>A server can advertise a recommended proxy
by publishing a Web Link with the "has-proxy" relation, defined in this document, to a URI indicating its transport address.
In particular (and that is a typical case),
it can indicate its own network address on an alternative transport when implementing same-host proxy functionality.</t>
        <t>The semantics of a link from S to P with relation "has-proxy" ("S has-proxy P", <tt>&lt;P&gt;;rel=has-proxy;anchor="S"</tt>)
are that for any resource that has the same origin as S, the transport address indicated by P can be used to obtain that resource.</t>
        <section anchor="example">
          <name>Example</name>
          <t>A constrained device at the address 2001:db8::1 that supports CoAP over TCP in addition to CoAP over UDP can self-describe like this:</t>
          <figure anchor="fig-has-proxy">
            <name>Discovery and follow-up request through a "has-proxy" relation</name>
            <artwork><![CDATA[
Req: to [ff02::fd]:5683 on UDP
Code: GET
Uri-Path: /.well-known/core
Uri-Query: if=tag:example.com,sensor

Res: from [2001:db8::1]:5683
Content-Format: application/link-format
Payload:
</sensors/temp>;if="tag:example.com,sensor",
<coap+tcp://[2001:db8::1]>;rel=has-proxy;anchor="/"


Req: to [2001:db8::1]:5683 on TCP
Code: GET
Proxy-Scheme: coap
Uri-Path: /sensors/temp
Observe: 0

Res: 2.05 Content
Observe: 0
Payload:
39.1°C
]]></artwork>
          </figure>
          <t>The discovery process yields two links:
The first describes the resource,
the second describes that an additional (TCP) endpoint is available for all resources on this host.</t>
          <t>Note that generating this discovery file needs to be dynamic based on its available addresses;
only if queried using a link-local source address, the server may also respond with a link-local address in the authority component of the proxy URI.</t>
        </section>
      </section>
    </section>
    <section anchor="operational-concerns-of-discovered-transport-endpoints">
      <name>Operational concerns of discovered transport endpoints</name>
      <section anchor="secctx-propagation">
        <name>Security context propagation</name>
        <t>Any security requirements posed by a server or client application on a CoAP request
MUST be applied independently of the transport that is used to perform the request.
If a transport cannot be used to satisfy the requirements,
it is ineligible for use with the request (from a client's point of view),
and unauthorized (from a server's point of view).</t>
        <t>If the requirements contain transport layer security,
the proxy needs to present the credentials required of the server to the client,
and those of the client to the server;
this is only practical when the proxy is a same-host proxy.</t>
        <t>Some applications have requirements
exceeding the requirements of a secure connection,
e.g., (explicitly or implicitly) requiring that
name resolution happen through a secure process
and packets are only routed into networks where the application trusts that they will not be intercepted on the path to the server.
Such applications need to extend their requirements to the sources used to obtain the endpoints
(i.e., the source of any "has-proxy" statement or the SVCB data);
a sufficient (but maybe needlessly strict) requirement for "has-proxy" statements is to only follow those
that are part of the same resource that advertises the link currently being followed.
<xref target="proxy-foreign-advertisement"/> adds further considerations.</t>
        <section anchor="exception-narrowing-security-requirements">
          <name>Exception: Narrowing security requirements</name>
          <t>If a concrete application starts with a minimal set of security requirements,
has no means of discovering security properties of the endpoint,
and can only discovers security properties of a transport,
it MAY describe how a first step of transport discovery narrows the security requirements.</t>
          <t>An example of this is <xref section="3.2" sectionFormat="of" target="RFC9953"/>
where the target name of the SVCB record is used to set the hostname component of a URI and thus set security requirements.</t>
          <t>Before making use of this mechanism,
alternatives such as using TLSA records should be exhausted.</t>
        </section>
      </section>
      <section anchor="choice-of-endpoints">
        <name>Choice of endpoints</name>
        <t>It is up to the client whether to use an advertised endpoint,
or (if multiple are provided) which to pick.</t>
        <t>Information about endpoints may be annotated with additional metadata that may help guide such a choice;
defining such metadata is out of scope for this document.</t>
        <t>Clients MAY switch between endpoints as long as the source describing them is fresh;
they may even do so per request.
(For example, they may perform individual requests using CoAP over UDP,
but choose CoAP over TCP for requests with large expected responses).
When the information about endpoints is obtained through CoAP (e.g., as a "has-proxy" link),
the client can use the describing representation's ETag to efficiently renew its justification for using the alternative transport.</t>
      </section>
      <section anchor="selection-of-a-canonical-origin">
        <name>Selection of a canonical origin</name>
        <t>While a server is at liberty to provide the same resource independently on different transports (i.e. to create aliases),
it may make sense for it to pick a single scheme and authority under which it announces its resources.
Using only one address helps proxies keep their caches efficient,
and makes it easier for clients to avoid exploring the same server twice from different angles.</t>
        <t>When there is a predominant scheme and authority through which an existing service is discovered,
it makes sense to use these for the canonical addresses.</t>
        <t>Otherwise,
it is suggested to use the <tt>coap</tt> or <tt>coaps</tt> scheme
(given that these are the most basic and widespread ones),
and the most stable usable name the host has.</t>
        <section anchor="unreachable-canonical-origin-addresses">
          <name>Unreachable canonical origin addresses</name>
          <t>For devices that are not generally reachable at a stable address,
it may make sense to use a scheme and authority as the canonical address that cannot actually be dereferenced.</t>
          <t>The registered names available for that purpose depend on the resolution mechanisms in use.
When the Domain Name System (DNS) is used,
such names would not be associated with any A or AAAA records
(but may still use, for example, TLSA records).</t>
          <t>Such URIs are <em>only</em> usable by clients that discover a suitable proxy along with the URI,
and that can place sufficient trust in that proxy.</t>
        </section>
      </section>
      <section anchor="advertisement-through-a-resource-directory">
        <name>Advertisement through a Resource Directory</name>
        <t>In the Resource Directory (RD) specification <xref target="RFC9176"/>,
protocol negotiation was anticipated to use multiple base values.
This approach has since been abandoned,
as it would incur heavy URI aliasing.</t>
        <t>Instead, devices can submit their "has-proxy" links to the Resource Directory like all their other metadata.</t>
        <t>A client performing resource lookup can ask the RD to provide available (same-host-)proxies in a follow-up request
by asking for <tt>?anchor=&lt;the-discovered-host&gt;&amp;rel=has-proxy</tt>.
<!-- We don't say that the RD cannot do that, right? -->
The RD may also volunteer that information during resource lookups even though the "has-proxy" link itself does not match the search criteria.</t>
        <t>[</t>
        <t>It may be useful to define RD parameters for use with lookup here, which would guide which available proxies to include.
For example, asking <tt>?rt=tag:example.com,sensor&amp;proxy-links=tcp</tt> could give as a result:</t>
        <t><tt>&lt;coap://[2001:db8::1]/s&gt;;rt=tag:example.com,sensor,&lt;coap+tcp://[2001:db8::1]/&gt;;rel=has-proxy;anchor="coap://[2001:db8::1]/"</tt></t>
        <t>This is similar to the extension suggested in <xref section="5" sectionFormat="of" target="I-D.amsuess-core-resource-directory-extensions"/>.</t>
        <t>]</t>
      </section>
    </section>
    <section anchor="elision-of-proxy-scheme-and-uri-host">
      <name>Elision of Proxy-Scheme and Uri-Host</name>
      <t>A CoAP server may publish and accept multiple URIs for the same resource,
for example when it accepts requests on different IP addresses that do not carry a Uri-Host option,
or when it accepts requests both with and without the Uri-Host option carrying a registered name.
Likewise, the server may serve the same resources on different transports.
This makes for efficient requests (with no Proxy-Scheme or Uri-Host option),
but is generally discouraged <xref target="aliases"/>.</t>
      <t>To make efficient requests possible without creating URI aliases that propagate,
the "has-unique-proxy" specialization of the "has-proxy" relation
and the "is-unique-proxy" SVCB parameter are defined.</t>
      <t>A proxy is unique,
if requests arriving at the proxy are treated the same
no matter whether the scheme, authority, and port of the link context are set in the Proxy-Scheme, Uri-Host, and Uri-Port options, respectively,
or all of them are absent.</t>
      <t>[ The following two paragraphs are both true but follow different approaches to explaining the observable and implementable behavior;
   it may later be decided to focus on one or the other in this document. ]</t>
      <t>While this creates URI aliasing in the requests as they are sent over the network,
applications that discover a proxy this way should not "think" in terms of these URIs,
but retain the originally discovered URIs (which, because "cool URIs don't change" <xref target="cooluris"/>, should be long-term usable).
They use the proxy for as long as they have fresh knowledge of the "has-(unique-)proxy" statement.</t>
      <t>In a way, advertising "has-unique-proxy" can be viewed as a description of the link target in terms of SCHC <xref target="RFC8824"/>:
In requests to that target, the link source's scheme and host are implicitly present.</t>
      <t>While applications retain knowledge of the originally requested URI
(even if it is not expressed in full on the wire),
the original URI is not accessible to caches both within the host and on the network
(for the latter, see <xref target="actualproxies"/>).
Thus, cached responses to the canonical and any aliased URI are mutually interchangeable
as long as both the response and the proxy statement are fresh.</t>
      <t>A client MAY use a unique proxy like a proxy and still send the Proxy-Scheme and Uri-Host options;
such a client needs to recognize both relation types, as relations of the "has-unique-proxy" type
are a specialization of "has-proxy" and typically do not carry the latter (redundant) annotation.
[ To be evaluated -- on one hand, supporting it this way means that the server needs to identify all of its addresses and reject others.
   Then again, is a server that (like many now do) fully ignore any set Uri-Host correct at all? ]</t>
      <t>Example:</t>
      <figure anchor="fig-has-unique-proxy">
        <name>Follow-up request through a "has-unique-proxy" relation. Compared to the last example, 5 bytes of scheme indication are saved during the follow-up request.</name>
        <artwork><![CDATA[
Req: to [ff02::fd]:5683 on UDP
Code: GET
Uri-Path: /.well-known/core
Uri-Query: if=tag:example.com,sensor

Res: from [2001:db8::1]:5683
Content-Format: application/link-format
Payload:
</sensors/>;if="tag:example.com,collection",
<coaps+ws://[2001:db8::1]>;rel=has-unique-proxy;anchor="/"


Req: to [2001:db8::1] via WebSockets over HTTPS
Code: GET
Uri-Path: /sensors/

Res: 2.05 Content
Content-Format: application/link-format
Payload:
</sensors/temperature>;if="tag:example.com,sensor"
]]></artwork>
      </figure>
      <t>It is noteworthy that when the URI reference <tt>/sensors/temperature</tt> is resolved,
the base URI is <tt>coap://device0815.example.com</tt> <cref anchor="device0815"><tt>device0815</tt> does not show up in <xref target="fig-has-unique-proxy"/>. Also should Uri-Query be for <tt>[...],sensor</tt> but the response be <tt>[...],collection</tt>? -- ML</cref> and not its coaps+ws counterpart --
as the request is still for that URI, which both the client and the server are aware of.
However, this detail is of little practical importance:
A simplistic client that uses <tt>coaps+ws://device0815.proxy.rd.example.com</tt> as a base URI will still arrive at an identical follow-up request with no ill effect,
as long as it only uses the wrongly assembled URI for dereferencing resources,
the security context is the same,
the state is kept no longer than the "has-unique-proxy" statement is fresh,
and it does not (for example) pass the URI on to other devices.</t>
      <section anchor="impact-on-caches">
        <name>Impact on caches</name>
        <t>[ This section is written with the "there is implied URI aliasing" mindset;
it should be possible to write it with the "compression" mindset as well
(but there is no point in having both around in the document at this time).</t>
        <t>It is also slightly duplicating, but also more detailed than,
the brief note on the topic in <xref target="actualproxies"/>
]</t>
        <t>When a node that performs caching learns of a "has-unique-proxy" statement,
it can utilize the information about the implied URI aliasing:
As long as the "has-unique-proxy" statement is fresh and trusted,
requests for either of the origins can be served from the cache of the other origin.</t>
      </section>
      <section anchor="unique-security">
        <name>Using unique proxies securely</name>
        <t>The elision of the hostname afforded by the "has-unique-proxy" relation
is only possible if the required security mechanisms verify the scheme and host of the server.</t>
        <t>This is given for mechanisms based on Object Security for Constrained RESTful Environments (OSCORE) <xref target="RFC8613"/>,
where "unprotected message fields (including Uri-Host [...]) MUST NOT lead to an OSCORE message becoming verified".</t>
        <t>With TLS-based security mechanisms,
name and scheme cannot be completely elided in general.
While the use of the Server Name Indication (SNI) HostName field sets the default Uri-Host already,
the scheme still needs to be sent in a Proxy-Scheme option
to satisfy the requirement of <xref target="secctx-propagation"/>.</t>
        <t>[
It may be possible to relax this requirement
if the host publishes a <em>trustworthy</em> statement about serving the same content on all schemes;
however, no urgent need for this optimization is currently known that warrants the extra scrutiny.
]</t>
      </section>
      <section anchor="self-description-as-a-unique-proxy">
        <name>Self-description as a unique proxy</name>
        <t>The level of assurance a client needs from a server
to elide the Uri-Host option in a request that was created from a URI with no IP address literal
has been a controversial topic.
[ Should we dig up old conversations, link to https://github.com/core-wg/wiki/wiki/CoAP-FAQ#q4,
or just let the weight of a WG consensus-document-to-be do its work? ]</t>
        <t>The "has-unique-proxy" relation provides an easy way for a server
to indicate that this is in fact allowed:
A server can publish a statement such as <tt>&lt;/&gt;;rel=has-unique-proxy</tt> in its <tt>/.well-known/core</tt> resource.
A client that receives and understands it can thus elide the Uri-Host option in requests to the server
as per the definition of the relation.</t>
      </section>
    </section>
    <section anchor="thirdparty">
      <name>Third-party proxy services</name>
      <t>A server that is aware of a suitable cross proxy may use the "has-proxy" relation to advertise that proxy.
If the transport used towards the proxy provides name indication (as CoAP over TLS or WebSockets does),
or uses a large number of addresses or ports,
it can even advertise a (more efficient) "has-unique-proxy" relation.
This is particularly interesting when the advertisements are made available across transports,
for example in a Resource Directory.</t>
      <t>How the server can discover and trust such a proxy
is out of scope for this document,
but generally involves the same kind of links.
For instance, a server may obtain a link to a third-party proxy from an administrator as part of its configuration.</t>
      <t>The proxy may advertise itself without the origin server's involvement;
in that case, the client needs to take additional care (see <xref target="proxy-foreign-advertisement"/>).</t>
      <figure anchor="fig-external-proxy">
        <name>HTTP based discovery and CoAP over WS request to a CoAP resource through a "has-unique-proxy" relation</name>
        <artwork><![CDATA[
Req: GET http://rd.example.com/rd-lookup?if=tag:example.com,sensor

Res:
Content-Format: application/link-format
Payload:
<coap://device0815.example.com/sensors/>;if="tag:example.com,collection",
<coaps+ws://device0815.proxy.rd.example.com>;rel=has-unique-proxy;anchor="coap://device0815.example.com/"


Req: to device0815.proxy.rd.example.com on WebSocket
Host (indicated during upgrade): device0815.proxy.rd.example.com
Code: GET
Uri-Path: /sensors/

Res: 2.05 Content
Content-Format: application/link-format
Payload:
</sensors/temperature>;if="tag:example.com,sensor"
]]></artwork>
      </figure>
      <t><cref anchor="sensor-collection">Should Uri-Query be for <tt>[...],sensor</tt> but the response be <tt>[...],collection</tt>? -- ML</cref></t>
      <section anchor="generic-advertisements">
        <name>Generic proxy advertisements</name>
        <t>A third-party proxy may advertise its availability to act as a proxy for arbitrary CoAP requests.
This use is not directly related to the transport indication in other parts of this document,
but sufficiently similar to warrant being described in the same document.</t>
        <t>The resource type "CPA-core.proxy" can be used to describe such a proxy.</t>
        <figure anchor="fig-6lbr-proxy">
          <name>A CoAP client discovers that its border router can also serve as a proxy, and uses that to access a resource on an HTTP server.</name>
          <artwork><![CDATA[
Req: GET coap://[fe80::1]/.well-known/core?rt=CPA-core.proxy

Res:
Content-Format: application/link-format
Payload:
<>;rt=CPA-core.proxy

Req: to [fe80::1] via CoAP
Code: GET
Proxy-Scheme: http
Uri-Host: example.com
Uri-Path: /motd
Accept: text/plain

Res: 2.05 Content
Content-Format: text/plain
Payload:
On Monday, October 25th 2021, there is no special message of the day.
]]></artwork>
        </figure>
        <t>The considerations of <xref target="proxy-foreign-advertisement"/> apply here.</t>
        <t>A generic advertised proxy is always a forward proxy,
and cannot be advertised as a "unique" proxy as it would lack information about where to forward.</t>
        <t>A proxy may be limited in the URIs it can service,
for technical reasons (e.g., when none of the URI's transports are supported by the proxy)
or for policy reasons (only accessing servers inside an organizational structure).
Future documents (or versions of this document) may add target attributes
that allow specifying the capabilities of a proxy.
[
An earlier version of this document contained a proxy-schemes attribute.
This was discontinued because it could already not express whether a proxy could access IPv4 or IPv6 peers,
and because the use of schemes is becoming less useful given the new recommendation of incorporating details from registered name resolution into the transport selection.
]</t>
        <t>The use of a generic proxy can be limited to a set of devices that have permission to use it.
Clients can be allowed by their network address if they can be verified,
or by using explicit client authentication using the methods of <xref target="I-D.tiloca-core-oscore-capable-proxies"/>.</t>
      </section>
    </section>
    <section anchor="actualproxies">
      <name>Client picked proxies</name>
      <t>This section is purely informative,
and serves to illustrate that the mechanisms introduced in this document do not hinder the continued use of existing proxies.</t>
      <t>When a resource is accessed through an "actual" proxy (i.e., a host between the client and the server, which itself may have a same-host proxy in addition to that),
the proxy's choice of the upstream server is originally (i.e., without the mechanisms of this document)
either configured (as in a "chain" of proxies)
or determined by the request URI (where a proxy picks CoAP over TCP and resolves the given name for a request aimed at a coap+tcp URI).</t>
      <t>A proxy that has learned,
by active solicitation of the information or by consulting links in its cache,
that the requested URI is available through a (possibly same-host) proxy,
may use that information
in choosing the upstream transport,
to correct the URI associated with a cached response,
and to use responses obtained through one transport to satisfy requests on another.</t>
      <t>For example, if a host at coap://h1.example.com has advertised <tt>&lt;/res&gt;,&lt;coap+tcp://h1.example.com&gt;;rel=has-proxy;anchor="/"</tt>,
then a proxy that has an active CoAP over TCP connection to h1.example.com
can forward an incoming request for coap://h1.example.com/res through that CoAP over TCP connection
with a suitable Proxy-Scheme and Uri-Host on that connection.</t>
      <t>If the host had marked the proxy point as <tt>&lt;coap+tcp://h1.example.com&gt;;rel=has-unique-proxy</tt> instead,
then the proxy could elide the Proxy-Scheme and Uri-Host options,
and would (from the original CoAP caching rules) also be allowed
to use any fresh cache representation of coap+tcp://h1.example.com/res
to satisfy requests for coap://h1.example.com/res.</t>
      <t>A client that uses a forward proxy
and learns of a different proxy advertised to access a particular resource
will not change its behavior if its original proxy is part of its configuration.
If the forward proxy was only used out of necessity
(e.g., to access a resource whose indicated transport not supported by the client)
it can be practical for the client to use the advertised proxy instead.</t>
    </section>
    <section anchor="service-binding-parameters-for-coap-transports">
      <name>Service Binding Parameters for CoAP transports</name>
      <t>Discovery mechanisms that exist in DNS <xref target="RFC9460"/>, DHCP, Router Advertisements <xref target="RFC9463"/>, or other mechanisms
can already provide details that would otherwise only be discovered later through proxy links.
When those details are provided as Service Binding Parameters,
this section describes their interpretation in the context of CoAP transport indication.</t>
      <t>This document is an SVCB mapping document as described in <xref target="RFC9460"/>.
As a non-normative overview, the mapping summary (following the template of <xref section="B" sectionFormat="of" target="RFC9460"/>)
is as follows:</t>
      <table anchor="tab-mapping">
        <name>CoAP SVCB Mapping Summary</name>
        <thead>
          <tr>
            <th align="left"> </th>
            <th align="left"> </th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">
              <strong>Mapped schemes</strong></td>
            <td align="left">"coap", "coaps", "coap+tcp", "coaps+tcp", "coap+ws", "coaps+ws"</td>
          </tr>
          <tr>
            <td align="left">
              <strong>RR type</strong></td>
            <td align="left">SVCB (64)</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Name prefix</strong></td>
            <td align="left">
              <tt>_coap</tt> for the default port of the scheme, else <tt>_$PORT._coap</tt></td>
          </tr>
          <tr>
            <td align="left">
              <strong>Automatically Mandatory Keys</strong></td>
            <td align="left">
              <tt>port</tt>, <tt>no-default-alpn</tt></td>
          </tr>
          <tr>
            <td align="left">
              <strong>SvcParam defaults</strong></td>
            <td align="left">
              <tt>alpn</tt>: according to scheme (or empty)</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Special behaviors</strong></td>
            <td align="left">Multiple mapped schemes; <tt>alpn</tt> default influenced by initial URI.</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Keys that records must include</strong></td>
            <td align="left">None</td>
          </tr>
        </tbody>
      </table>
      <t>[ The following paragraph is outdated, but its replacement will depend on the outcome of IETF122 discussions. ]</t>
      <t>The subsections in this section are arranged to describe a sequential, consistent picture.
The capabilities of this big picture are not exercised by any application known at the time of draft publication.
It is instead backed by many small-scope use cases
(such as bootstrapping issues of proxy-link based CoAP scheme unification, <xref target="I-D.amsuess-t2trg-onion-coap"/> and also applications outside CoAP such as <xref target="SUIB"/>)
and presents a unified solution framework.</t>
      <section anchor="svcb-discovery">
        <name>Discovering transport indication details from name resolution</name>
        <t>This document registers the <tt>_coap</tt> attrleaf label
in <xref target="iana-underscored"/>
using the pattern described in <xref section="10.4.5" sectionFormat="of" target="RFC9460"/>.
The label enables the use of SVCB records.
This path is chosen over the creation of a new SVCB-based RR type "COAP"
because it is considered unlikely that DNS implementations would update their code bases to apply SVCB behavior;
this assumption will be revisited before registration.</t>
        <t>The <tt>_coap</tt> label can be used during the resolution of URIs that use any CoAP scheme.
The presence of an SVCB record for a registered name
implies that any transport advertised in the record is suitable for proxying to
resources of any CoAP scheme and that registered name,
provided that a resource is available at that URI in the first place.
This does not create URI aliasing:
Any resource is still accessed at its original URI through the advertised proxy endpoints.</t>
        <t>It is possible through this to advertise transports without transport layer security
for URIs with the schemes "coaps", "coaps+tcp", and "coaps+ws".
Unless the application explicitly regards an object layer security mechanism as a sufficient replacement for transport layer security,
those transports cannot be selected for operations on such URIs as per <xref target="secctx-propagation"/>.</t>
        <t>Some SVCB parameters have defaults; for <tt>_coap</tt>, these are:</t>
        <ul spacing="normal">
          <li>
            <t><tt>port</tt>: 5683</t>
          </li>
          <li>
            <t><tt>alpn</tt>: empty</t>
          </li>
        </ul>
        <t>As SVCB records were not specified for the existing CoAP transports originally,
generic CoAP clients are not required to use the SVCB lookup mechanism,
but MAY attempt it opportunistically in order to obtain a usable transport
(or to obtain it faster).
Applications built on CoAP MAY require clients to perform this kind of discovery.
Adding such a requirement is particularly useful if the application frequently advertises URIs with a scheme that defaults to a transport which its clients may not support,
or when the application makes use of functionality afforded by <xref target="RFC9460"/> such as apex domain redirection.
(Had the SVCB specification predated the first new CoAP transports,
that mechanism might have been used in the first place instead of additional schemes).</t>
        <t>[ The following paragraph may need to be revisited depending on the outcome of IETF122 discussions. ]</t>
        <t>The effects on a client of seeing SVCB parameters are similar
to those of seeing a "has-proxy" link from the origin to the URI built using <xref target="svcblit"/>.
The precise implications of any DNSSEC-backed applicable credentials expressed in SVCB parameters
are subject to ongoing discussion (especially with regard to whether they apply to the proxy or the origin server).</t>
      </section>
      <section anchor="svcparams">
        <name>Service Parameters</name>
        <t>Several parameters are relevant in the context of CoAP,
independently of whether they are used with SVCB records or Service Binding Parameters transported outside SVCB records,
and independently of whether they apply to the <tt>_coap</tt> service or another service that can be used on top of CoAP (such as <tt>_dns</tt>):</t>
        <ul spacing="normal">
          <li>
            <t><tt>port</tt>: The CoAP service using the transport described in this parameter is reachable on this port
(described in <xref target="RFC9460"/>). It is automatically mandatory.  </t>
            <t>
This document does not limit which ports can be used with CoAP.</t>
          </li>
          <li>
            <t><tt>alpn</tt>: The ALPN "coap" has been defined for CoAP over TLS <xref target="RFC8323"/>, and "co" for CoAP-over-DTLS in <xref target="RFC9952"/>.  </t>
            <t>
If an ALPN service parameter is found, this indicates that the ALPN(s) and thus the CoAP transport that can be used on this address / port.
For example, "co" indicates that DTLS (and thus UDP) is used.  </t>
            <t>
ALPN IDs are defined in this document and in <xref target="RFC9952"/> for the CoAP transports that had no such identifier when they were specified.  </t>
            <t>
The default value of <tt>alpn</tt> when processing a URI (as in <xref target="processing-scheme-authority"/>) is the ALPN corresponding to the used scheme.
The default value when not processing a URI (e.g., when processing service parameters from DNR <xref target="RFC9463"/>) is empty.</t>
          </li>
          <li>
            <t><tt>no-default-alpn</tt>, <tt>mandatory</tt>, <tt>ipv4hint</tt>, <tt>ipv6hint</tt>:
Used as described in <xref section="7" sectionFormat="of" target="RFC9460"/>.</t>
          </li>
          <li>
            <t><tt>is-unique-proxy</tt>: This is a new parameter defined in this document,
and equivalent to the "has-unique-proxy" link format parameter in its semantics.  </t>
            <t>
Its value is empty.</t>
          </li>
          <li>
            <t>Applications may extend the supported parameters.
In particular, <xref target="RFC9953"/> has already introduced the <tt>docpath</tt> parameter
which indicates a path at which DNS-over-CoAP is available at the given address.</t>
          </li>
        </ul>
        <t>The following parameters are under consideration for inclusion in this list,
but it is unsure whether they are suitable.
Those parameters would describe the origin server
and not the individual (proxy) transport through which it can be reached.</t>
        <ul spacing="normal">
          <li>
            <t><tt>cred</tt>: This is a new parameter defined in this document, and describes Concise Binary Object Representation (CBOR) Object Signing and Encryption (COSE) credentials that can authenticate the server, e.g., when used with Ephemeral Diffie-Hellman Over COSE (EDHOC).  </t>
            <t>
The <tt>cred</tt> parameter's value is a CBOR sequence of COSE Header maps as defined in <xref target="RFC9052"/>.
If the parameter is present, it indicates that
the server can be authenticated by any credential expressed in the sequence.
This is similar to the TLSA records specified in <xref target="RFC6698"/>.  </t>
            <t>
A COSE Header map can express many properties, not all of which are sufficient to authenticate a peer on any given security mechanism.
Without excluding applications that may process other entries,
a practical criterion for whether a header map is suitable for EDHOC is that the header map could also be used in EDHOC as <tt>ID_CRED_R</tt>
if the credential is sent by value.  </t>
            <t>
For example, a header map with a <tt>kccs</tt> entry can be used to indicate a public key including a Key ID (<tt>kid</tt>),
and that public key does not need to be sent during the EDHOC exchange.
Alternatively, a header map with an <tt>x5t</tt> entry identifies the end entity certificate the server presents by a thumbprint (hash).  </t>
            <t>
It is up to the application to define requirements for the provenance of the <tt>cred</tt> parameter,
whether it needs to be provided through a secure mechanism,
or whether the server is strictly required to present that credential.  </t>
            <t>
This is unlike TLSA, which needs to be transported through DNSSEC,
because a <tt>cred</tt> parameter may be sent using other means than DNS
(for example in DHCPv6 responses or Router Advertisements).</t>
          </li>
          <li>
            <t><tt>edhoc-app-prof</tt> and <tt>edhocpath</tt>: The parameters describe how EDHOC can be used on the server;
they are specified in <xref target="I-D.ietf-lake-app-profiles"/>.</t>
          </li>
          <li>
            <t><tt>oauth-hints</tt>: This is a new parameter defined in this document,
describing how Authentication and Authorization for Constrained Enviroments (ACE) using the OAuth 2.0 framework (ACE-OAuth) <xref target="RFC9200"/> can be used with this service.  </t>
            <t>
Its value is a CBOR map containing AS Request Creation Hints as described in <xref section="5.3" sectionFormat="of" target="RFC9200"/>.
While an empty map can be useful (hinting that the client should use its configured ACE-OAuth setup),
typical useful keys are
1 (AS, indicating the URI of the Authorization Server),
5 (audience, indicating the name under which the service is known to the Authorization Server),
and 9 (scope, when discovering a particular service rather than just getting transport information for a host).
That data has the same shape as the server might use when responding to an attempt at an unencrypted connection.
This can not only speed up the discovery of the right AS,
but can also protect that information (e.g., when DNSSEC is used),
and avoid the need for an unprotected first request.  </t>
            <t>
It is up to the application to define requirements for the use of such data.
For example,
it may require that the audience matches the requested hostname,
or may require that the scope matches the kind of service being discovered.  </t>
            <t>
When expressed in text format, e.g., in DNS zone files,
the CBOR diagnostic notation <xref target="I-D.ietf-cbor-edn-literals"/> can be used.</t>
          </li>
        </ul>
        <section anchor="examples-of-using-name-resolution-discovery-and-parameters">
          <name>Examples of using name resolution discovery and parameters</name>
          <section anchor="generic-client-discovering-transport-options">
            <name>Generic client discovering transport options</name>
            <t>A generic client is directed to obtain <tt>coap://dev1.example.com/log</tt>.
The hostname is resolved using the system's resolution mechanisms,
resulting in DNS queries<cref anchor="multiple-questions">, see <xref target="RFC9619"/> -- ML</cref> for these records:</t>
            <artwork><![CDATA[
_coap.dev1.example.com IN SVCB
dev1.example.com       IN AAAA
]]></artwork>
            <t>The following records are returned:</t>
            <artwork><![CDATA[
_coap.dev1.example.com IN SVCB 1 . alpn=COAP,CO
_coap.dev1.example.com IN SVCB 1 . alpn=co,coap port=5684
_coap.dev1.example.com IN SVCB 1 . alpn=CO port=61616
dev1.example.com       IN AAAA 2001:db8:1::1
]]></artwork>
            <t>In addition to the single option it had with just the IP address,
it may now also choose to establish a TCP connection on the default port,
to use port 61616 for UDP (which results in more compact frames on a 6LoWPAN link),
or to use either of the TLS based options.</t>
          </section>
          <section anchor="application-mandating-svcb">
            <name>Application mandating SVCB</name>
            <t>An example policy of an application is to mandate client support for SVCB records,
and to require that a security mechanism must be used where credentials are backed either by DNSSEC or by the Web PKI.</t>
            <t>A server operator is running in a legacy network that only provides an IPv4 address behind NAT with a dynamic public address,
but has PCP <xref target="RFC6887"/> available.
After running PCP to open a UDP port,
it learns that 192.0.2.4:5678 will be available for some time.</t>
            <t>It therefore updates its DNS record like this, and sets an accompanying record:</t>
            <artwork><![CDATA[
_coap.host.example.net 600 IN SVCB 1 publicudp.host.example.net       \
                       port=5678                                      \
                       cred={14:{... /KCCS with its public key/}}
publicudp.host.example.net 600 IN A 192.0.2.4
]]></artwork>
            <t>When a client starts using <tt>coap://host.example.net/interactive</tt>,
it looks up that record and verifies it using DNSSEC.
It then proceeds to send EDHOC requests over CoAP to 192.0.2.4 port 5678,
setting the Uri-Host option to "host.example.net".</t>
            <t>The client could also have initiated an EDHOC session if no cred parameter had been present,
but then,
it would have required that the server present some credential that could be verified through the Web PKI,
for example an x5chain containing a Let's Encrypt certificate.</t>
          </section>
        </section>
      </section>
      <section anchor="svcb2uri">
        <name>Producing requests for a discovered service</name>
        <t>If a discovery process of a service does not produce a URI but any combination of an address, hostname, or Service Binding Parameters,
those can be converted to a CoAP URI,
for which transport hints are already encoded in the parameters the URI is constructed from.
An example of this is DNS server discovery <xref target="RFC9953"/>.</t>
        <t>While it is up to the service to define the service's semantics,
this section applies to any service
whose use with CoAP is defined by a normative reference to this section:</t>
        <ul spacing="normal">
          <li>
            <t>The client tries the available services with their ALPNs and CoAP transports
according to its capabilities
and the priorities and mandatory parameters
as defined for Service Bindings.</t>
          </li>
          <li>
            <t>The service either defines a well-known path,
or it defines a Service Binding Parameter that describes the service's path on the described endpoint,
or it defines both (and the well-known path is the default in absence of the defined parameter).  </t>
            <t>
The value is a CBOR sequence <xref target="RFC8742"/> of text strings,
which represent Uri-Path options in a CoAP request,
or (equivalently) the path of a Constrained Resource Identifier (CRI) reference
<xref target="I-D.ietf-core-href"/>.  </t>
            <t>
A parameter value that is not a well-formed CBOR sequence
or in which any item is not a text string,
is considered malformed.  </t>
            <t>
When expressed in text format, e.g., in DNS zone files,
the CBOR diagnostic notation <xref target="I-D.ietf-cbor-edn-literals"/> can be used.  </t>
            <t>
To access the service,
a client sets the text string values
of the used Service Binding parameter
as Uri-Path options in the request.  </t>
            <t>
If the resource is unavailable,
the client may continue with options that have a larger SvcPriority value associated
(if such a property exists in the discovery method).  </t>
            <t>
An example of such an option is <tt>docpath</tt>
as defined in <xref target="RFC9953"/>.
(As that document precedes this one,
it repeats the same rules explicitly rather than reusing these rules).</t>
          </li>
          <li>
            <t>A Service Binding is accompanied by a hostname:
For example,
this is the hostname of the Encrypted DNS Resolver or the Special-Use Domain Name
in the case of <xref target="RFC9462"/> lookups,
or the authentication-domain-name in the case of <xref target="RFC9463"/> DHCP options or Router Advertisements.  </t>
            <t>
Unless its value is identical to the default value for Uri-Host
(which is the case on transports with SNI),
that name is added in the Uri-Host option.</t>
          </li>
          <li>
            <t>If the <tt>port</tt> Service Binding Parameter is set,
the Uri-Port option is set to the port that is set in the port prefix of the query
(or the default port of the CoAP transport used),
unless that is its default value anyway.</t>
          </li>
          <li>
            <t>No Proxy-Scheme option is set.</t>
          </li>
        </ul>
        <t>By following the rules of <xref section="6.5" sectionFormat="of" target="RFC7252"/>
or the equivalent rules for the respective CoAP transport,
<!-- I'd rather not need that, see https://github.com/core-wg/corrclar/issues/38 -->
the service can be translated into a URI.
This implies URI aliasing between the composed URIs of all transports
if any of the transports use different schemes.</t>
        <t>The rules for setting Uri-Host and Uri-Port result in the authority component of the URI
being equal to the Binding Authority defined in <xref target="RFC9461"/>.</t>
        <t>Note that since different security policies may apply to service discovery
and other application components that dereference URIs,
any connections established while using the service
and cache entries created by it
need to be treated carefully,
for example by using separate connection and cache pools.</t>
      </section>
      <section anchor="svcblit">
        <name>Expressing Service Parameters as literals</name>
        <t>A method for expressing Service Parameters in URIs that do not use registered names
is described in <xref target="newlit"/>.</t>
        <t>Among other things,
that mechanism allows encoding the full information obtained during service discovery in a URI
instead of just the one choice taken.
It is also required if different CoAP transports are using the same scheme
(as is recommended in <xref target="upcomingtransports"/>)
with IP address literals in URIs,
for which, unlike for resolved names, no service parameters are available.</t>
      </section>
    </section>
    <section anchor="upcomingtransports">
      <name>Guidance to upcoming transports</name>
      <t>When new transports are defined for CoAP,
it is recommended to use the "coap" scheme
(or "coaps" for (D)TLS-based transports).</t>
      <t>If the identifiers of the transport are IP-based and are typically resolved through DNS,
authors of new transports are encouraged to specify how they are expressed in Service Binding records (<xref target="RFC9460"/>),
e.g., using an <tt>alpn</tt> parameter (which does not necessarily indicate the use of a (D)TLS-based transport),
and if IP literals are relevant to the transport, to follow up on <xref target="newlit"/>.</t>
      <t>If the native identifiers of the transport are compatible with the structure of the authority component of a URI,
those identifiers can be used as an authority as-is.
To help the client decide on the resolution mechanism,
it may be helpful to register a subdomain of .arpa as described in <xref target="RFC3172"/>.
The guidance for users is to never attempt to resolve such a name,
and for the implementation of the zone to return NXDOMAIN unconditionally.</t>
      <t>If the transport's native identifiers are incompatible with that structure
(e.g., because they contain colons),
the document may define some transformation.</t>
      <t>If a transport's native identifiers are only local,
the .alt special-use TLD <xref target="RFC9476"/> may be used instead.</t>
      <t>For example,
CoAP over GATT <xref target="I-D.ietf-core-coap-over-gatt"/>
removes the colons from Bluetooth Low Energy MAC addresses like 00:11:22:33:44:55
and combines them into authority components such as <tt>001122334455.ble.arpa</tt>.
Slipmux <xref target="I-D.bormann-t2trg-slipmux"/>
might use the locally significant device name <tt>/dev/ttyUSB0</tt>
as <tt>coap://ttyUSB0.dev.alt/</tt>.</t>
      <t>URIs created from such names may not indicate the protocol uniquely:
Additional transports specified later may also provide CoAP services for the same name.
In the sense of <xref target="identifying"/>,
both transports would be identified by that URI.
That is not an issue as long as the protocols underneath the CoAP transport
provide a means of advertising the precise protocol used.
For example,
a hypothetical CoAP transport for BLE that is not GATT based
can be selected for the same scheme and authority based on data in the BLE advertisement.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security considerations</name>
      <section anchor="security-context-propagation">
        <name>Security context propagation</name>
        <t>Clients need to strictly enforce the rules of <xref target="secctx-propagation"/>.
Failure to do so,
in particular using a proxy announced in this way based on a certificate that attests the proxy's name,
would allow attackers to circumvent the client's security expectation.</t>
        <t>When security is terminated at proxies (as is the case with DTLS and TLS),
a third-party proxy can usually not satisfy this requirement;
these transports are limited to same-host proxies.</t>
      </section>
      <section anchor="proxy-foreign-advertisement">
        <name>Traffic misdirection</name>
        <t>Accepting arbitrary proxies,
even with security context propagation performed properly,
would allow attackers to redirect traffic through systems under their control.
Not only does that impact availability,
it also allows an attacker to observe traffic patterns.</t>
        <t>This affects both OSCORE and (D)TLS,
as neither protects the participants' network addresses.</t>
        <t>Other than the security context propagation rules,
there are no hard and general rules about when an advertised proxy is a suitable candidate.
Aspects for consideration are:</t>
        <ul spacing="normal">
          <li>
            <t>When no direct connection is possible
(e.g., because the resource to be accessed is served as coap+tcp and TCP is not implemented in the client,
or because the resource's host is available on IPv6 while the client has no default IPv6 route),
using a proxy is necessary if complete service disruption is to be avoided.  </t>
            <t>
While an adversary can cause such a situation (e.g., by manipulating routing or DNS entries),
such an adversary is usually already in a position to observe traffic patterns.</t>
          </li>
          <li>
            <t>A proxy advertised by the device hosting the resource to be accessed is less risky to use than one advertised by a third party.  </t>
            <t>
The <tt>/.well-known/core</tt> resource is regarded as a source of authoritative information on the endpoint's CoAP related metadata,
and can be queried early in the discovery process,
or queried for verification (with filtering applied) after discovery through an RD.
Other resources may be less trustworthy as they may be controlled by entities not trusted with the endpoint's traffic.</t>
          </li>
        </ul>
        <!-- Note that these aspects' applicability is mutually exclusive:
When the advertisement was obtained from the target host,
that needs to be reachable. -->

<t><xref target="ead"/> describes an extension to <xref target="RFC9528"/> by which the client can verify that the server recognizes the proxy in use.
This is similar to querying <tt>/.well-known/core</tt> for any proxies advertised there,
but happens earlier in the connection establishment,
and leaves the decision whether the proxy is legitimate to the server.</t>
        <t>This only conveys information about the URI of the proxy.
The mapping of any hostname inside it to an IP address,
or of an IP address to a routing decision,
is left to the security mechanisms of the respective layers.</t>
      </section>
      <section anchor="protecting-the-proxy">
        <name>Protecting the proxy</name>
        <t>A widely published statement about a host's availability as a proxy can cause many clients to attempt to use it.</t>
        <t>This is mitigated in well-behaved clients by observing the rate limits of <xref target="RFC7252"/>,
and by ceasing attempts to reach a proxy for the Max-Age of received errors.</t>
        <t>Operators can further limit ill effects
by ensuring that their client systems do not needlessly use proxies advertised in an unsecured way,
and by providing their own proxies when their clients need them<!-- in a sense, avoid having starving clients that grab any straw at connectivity -->.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA considerations</name>
      <section anchor="link-relation-types">
        <name>Link Relation Types</name>
        <t>IANA is requested to add two entries into the Link Relation Type Registry last updated in <xref target="RFC8288"/>:</t>
        <table anchor="tab-iana">
          <name>New Link Relation types</name>
          <thead>
            <tr>
              <th align="left">Relation Name</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">has-proxy</td>
              <td align="left">The link target can be used as a proxy to reach URIs inside the origin of the link context.</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">has-unique-proxy</td>
              <td align="left">Like has-proxy, and using this proxy implies scheme and host of the target.</td>
              <td align="left">RFCthis</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="resource-types">
        <name>Resource Types</name>
        <t>IANA is requested to add an entry into the "Resource Type (rt=) Link Target Attribute Values" registry under the Constrained RESTful Environments (CoRE) Parameters:</t>
        <t>[ The RFC Editor is requested to replace any occurrence of CPA-core.proxy with the actually registered attribute value. ]</t>
        <t>Attribute Value: core.proxy</t>
        <t>Description: Forward proxying services</t>
        <t>Reference: [ this document ]</t>
      </section>
      <section anchor="tls-application-layer-protocol-negotiation-alpn-protocol-ids">
        <name>TLS Application-Layer Protocol Negotiation (ALPN) Protocol IDs</name>
        <t>IANA is requested to add the following entries to the TLS Application-Layer Protocol Negotiation (ALPN) Protocol IDs
registry (<xref target="RFC7301"/>).</t>
        <t>The identification sequences are suggestions to be approved by the designated experts.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Protocol</th>
              <th align="left">Identification sequence</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">CoAP (over UDP)</td>
              <td align="left">0x43 0x4f ("CO")</td>
              <td align="left">
                <xref target="RFC7252"/>, RFCthis</td>
            </tr>
            <tr>
              <td align="left">CoAP (over TCP)</td>
              <td align="left">0x43 0x4f 0x41 0x50 ("COAP")</td>
              <td align="left">
                <xref target="RFC8323"/>, RFCthis</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="service-parameter-key-svcparamkey">
        <name>Service Parameter Key (SvcParamKey)</name>
        <t>IANA is NOT YET requested to add the following entries to the SVCB Service Parameters
registry (<xref target="RFC9460"/>). The definition of this parameter can be found in <xref target="svcparams"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Number</th>
              <th align="left">Name</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">to be assigned</td>
              <td align="left">cred</td>
              <td align="left">COSE credentials identifying the server</td>
            </tr>
            <tr>
              <td align="left">to be assigned</td>
              <td align="left">oauth-hints</td>
              <td align="left">Describes how to obtain a token at an ACE Authorization Server</td>
            </tr>
          </tbody>
        </table>
        <t>All entries have in common that their Reference is this document, <xref target="svcparams"/>},
and that their change controller is IETF.</t>
      </section>
      <section anchor="iana-underscored">
        <name>Underscored and Globally Scoped DNS Node Names</name>
        <t>IANA is NOT YET requested to add the following entry to the Underscored and Globally Scoped DNS Node Names registry
(in the DNS Parameters group)
established in <xref target="RFC8552"/>
thereby enabling its use with SVCB records:</t>
        <ul spacing="normal">
          <li>
            <t>SVCB, <tt>_coap</tt>, <xref target="svcb-discovery"/> of this document</t>
          </li>
        </ul>
        <t>The request for registration is deliberately not expressed at this point
because it is yet to be revisited whether the creation of a "COAP" RR type
similar to the "HTTPS" RR type would be preferable.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC8288">
          <front>
            <title>Web Linking</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="October" year="2017"/>
            <abstract>
              <t>This specification defines a model for the relationships between resources on the Web ("links") and the type of those relationships ("link relation types").</t>
              <t>It also defines the serialisation of such links in HTTP headers with the Link header field.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8288"/>
          <seriesInfo name="DOI" value="10.17487/RFC8288"/>
        </reference>
        <reference anchor="RFC8323">
          <front>
            <title>CoAP (Constrained Application Protocol) over TCP, TLS, and WebSockets</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="S. Lemay" initials="S." surname="Lemay"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="B. Silverajan" initials="B." surname="Silverajan"/>
            <author fullname="B. Raymor" initials="B." role="editor" surname="Raymor"/>
            <date month="February" year="2018"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP), although inspired by HTTP, was designed to use UDP instead of TCP. The message layer of CoAP over UDP includes support for reliable delivery, simple congestion control, and flow control.</t>
              <t>Some environments benefit from the availability of CoAP carried over reliable transports such as TCP or Transport Layer Security (TLS). This document outlines the changes required to use CoAP over TCP, TLS, and WebSockets transports. It also formally updates RFC 7641 for use with these transports and RFC 7959 to enable the use of larger messages over a reliable transport.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8323"/>
          <seriesInfo name="DOI" value="10.17487/RFC8323"/>
        </reference>
        <reference anchor="RFC6690">
          <front>
            <title>Constrained RESTful Environments (CoRE) Link Format</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <date month="August" year="2012"/>
            <abstract>
              <t>This specification defines Web Linking using a link format for use by constrained web servers to describe hosted resources, their attributes, and other relationships between links. Based on the HTTP Link Header field defined in RFC 5988, the Constrained RESTful Environments (CoRE) Link Format is carried as a payload and is assigned an Internet media type. "RESTful" refers to the Representational State Transfer (REST) architecture. A well-known URI is defined as a default entry point for requesting the links hosted by a server. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6690"/>
          <seriesInfo name="DOI" value="10.17487/RFC6690"/>
        </reference>
        <reference anchor="RFC9176">
          <front>
            <title>Constrained RESTful Environments (CoRE) Resource Directory</title>
            <author fullname="C. Amsüss" initials="C." role="editor" surname="Amsüss"/>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="M. Koster" initials="M." surname="Koster"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>In many Internet of Things (IoT) applications, direct discovery of resources is not practical due to sleeping nodes 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 an RD supports for web servers to discover the RD and to register, maintain, look up, and remove information on resources. Furthermore, new target attributes useful in conjunction with an RD are defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9176"/>
          <seriesInfo name="DOI" value="10.17487/RFC9176"/>
        </reference>
        <reference anchor="RFC9460">
          <front>
            <title>Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)</title>
            <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
            <author fullname="M. Bishop" initials="M." surname="Bishop"/>
            <author fullname="E. Nygren" initials="E." surname="Nygren"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document specifies the "SVCB" ("Service Binding") and "HTTPS" DNS resource record (RR) types to facilitate the lookup of information needed to make connections to network services, such as for HTTP origins. SVCB records allow a service to be provided from multiple alternative endpoints, each with associated parameters (such as transport protocol configuration), and are extensible to support future uses (such as keys for encrypting the TLS ClientHello). They also enable aliasing of apex domains, which is not possible with CNAME. The HTTPS RR is a variation of SVCB for use with HTTP (see RFC 9110, "HTTP Semantics"). By providing more information to the client before it attempts to establish a connection, these records offer potential benefits to both performance and privacy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9460"/>
          <seriesInfo name="DOI" value="10.17487/RFC9460"/>
        </reference>
        <reference anchor="RFC9461">
          <front>
            <title>Service Binding Mapping for DNS Servers</title>
            <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>The SVCB DNS resource record type expresses a bound collection of endpoint metadata, for use when establishing a connection to a named service. DNS itself can be such a service, when the server is identified by a domain name. This document provides the SVCB mapping for named DNS servers, allowing them to indicate support for encrypted transport protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9461"/>
          <seriesInfo name="DOI" value="10.17487/RFC9461"/>
        </reference>
        <reference anchor="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC8742">
          <front>
            <title>Concise Binary Object Representation (CBOR) Sequences</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the Concise Binary Object Representation (CBOR) Sequence format and associated media type "application/cbor-seq". A CBOR Sequence consists of any number of encoded CBOR data items, simply concatenated in sequence.</t>
              <t>Structured syntax suffixes for media types allow other media types to build on them and make it explicit that they are built on an existing media type as their foundation. This specification defines and registers "+cbor-seq" as a structured syntax suffix for CBOR Sequences.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8742"/>
          <seriesInfo name="DOI" value="10.17487/RFC8742"/>
        </reference>
        <reference anchor="RFC7301">
          <front>
            <title>Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension</title>
            <author fullname="S. Friedl" initials="S." surname="Friedl"/>
            <author fullname="A. Popov" initials="A." surname="Popov"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="E. Stephan" initials="E." surname="Stephan"/>
            <date month="July" year="2014"/>
            <abstract>
              <t>This document describes a Transport Layer Security (TLS) extension for application-layer protocol negotiation within the TLS handshake. For instances in which multiple application protocols are supported on the same TCP or UDP port, this extension allows the application layer to negotiate which protocol will be used within the TLS connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7301"/>
          <seriesInfo name="DOI" value="10.17487/RFC7301"/>
        </reference>
        <reference anchor="RFC8552">
          <front>
            <title>Scoped Interpretation of DNS Resource Records through "Underscored" Naming of Attribute Leaves</title>
            <author fullname="D. Crocker" initials="D." surname="Crocker"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>Formally, any DNS Resource Record (RR) may occur under any domain name. However, some services use an operational convention for defining specific interpretations of an RRset by locating the records in a DNS branch under the parent domain to which the RRset actually applies. The top of this subordinate branch is defined by a naming convention that uses a reserved node name, which begins with the underscore character (e.g., "_name"). The underscored naming construct defines a semantic scope for DNS record types that are associated with the parent domain above the underscored branch. This specification explores the nature of this DNS usage and defines the "Underscored and Globally Scoped DNS Node Names" registry with IANA. The purpose of this registry is to avoid collisions resulting from the use of the same underscored name for different services.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="222"/>
          <seriesInfo name="RFC" value="8552"/>
          <seriesInfo name="DOI" value="10.17487/RFC8552"/>
        </reference>
        <reference anchor="I-D.ietf-core-href">
          <front>
            <title>Constrained Resource Identifiers</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="21" month="November" year="2025"/>
            <abstract>
              <t>   The Constrained Resource Identifier (CRI) is a complement to the
   Uniform Resource Identifier (URI) that represents the URI components
   in Concise Binary Object Representation (CBOR) rather than as a
   sequence of characters.  This approach simplifies parsing,
   comparison, and reference resolution in environments with severe
   limitations on processing power, code size, and memory size.

   This RFC updates RFC 7595 by adding a column on the "URI Schemes"
   registry.


   // (This "cref" paragraph will be removed by the RFC editor:) After
   // approval of -28 and nit fixes in -29, the present revision -30
   // contains two more small fixes for nits that were uncovered in the
   // RPC intake process.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-href-30"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="aliases" target="https://www.w3.org/TR/webarch/#uri-aliases">
          <front>
            <title>Architecture of the World Wide Web, Section 2.3.1 URI aliases</title>
            <author>
              <organization>W3C</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="cooluris" target="https://www.w3.org/Provider/Style/URI">
          <front>
            <title>Cool URIs don't change</title>
            <author initials="T." surname="BL" fullname="Tim BL">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="lwm2m" target="https://omaspecworks.org/white-paper-lightweight-m2m-1-1/">
          <front>
            <title>White Paper – Lightweight M2M 1.1</title>
            <author>
              <organization>OMA SpecWorks</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC9528">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios, and a main use case is to establish an Object Security for Constrained RESTful Environments (OSCORE) security context. By reusing CBOR Object Signing and Encryption (COSE) for cryptography, Concise Binary Object Representation (CBOR) for encoding, and Constrained Application Protocol (CoAP) for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9528"/>
          <seriesInfo name="DOI" value="10.17487/RFC9528"/>
        </reference>
        <reference anchor="w3address" target="http://info.cern.ch/hypertext/WWW/Addressing/BNF.html#43">
          <front>
            <title>W3 address syntax: BNF</title>
            <author initials="T." surname="BL" fullname="Tim BL">
              <organization/>
            </author>
            <date year="1992" month="June" day="29"/>
          </front>
        </reference>
        <reference anchor="evossl" target="https://www.digicert.com/blog/evolution-of-ssl">
          <front>
            <title>The Evolution of SSL and TLS</title>
            <author initials="E." surname="Baier" fullname="Elizabeth Baier">
              <organization/>
            </author>
            <date year="2015" month="February" day="02"/>
          </front>
        </reference>
        <reference anchor="SUIB" target="https://manysecured.net/wp-content/uploads/2022/09/ManySecured-SUIB-White-Paper.pdf">
          <front>
            <title>Router and IoT Vulnerabilities: Insecure by Design</title>
            <author>
              <organization/>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="I-D.bormann-t2trg-slipmux">
          <front>
            <title>Slipmux: Using an UART interface for diagnostics, configuration, and packet transfer</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universitaet Bremen TZI</organization>
            </author>
            <author fullname="Tobias Kaupat" initials="T." surname="Kaupat">
              <organization>Lobaro UG</organization>
            </author>
            <date day="4" month="November" year="2019"/>
            <abstract>
              <t>   Many research and maker platforms for Internet of Things
   experimentation offer a serial interface.  This is often used for
   programming, diagnostic output, as well as a crude command interface
   ("AT interface").  Alternatively, it is often used with SLIP
   (RFC1055) to transfer IP packets only.

   The present report describes how to use a single serial interface for
   diagnostics, configuration commands and state readback, as well as
   packet transfer.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-t2trg-slipmux-03"/>
        </reference>
        <reference anchor="I-D.ietf-core-coap-over-gatt">
          <front>
            <title>CoAP over GATT (Bluetooth Low Energy Generic Attributes)</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <date day="22" month="April" year="2026"/>
            <abstract>
              <t>   Interaction from computers and cell phones to constrained devices is
   limited by the different network technologies used, and by the
   available APIs.  This document describes a transport for the
   Constrained Application Protocol (CoAP) that uses Bluetooth GATT
   (Generic Attribute Profile) and its use cases.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-coap-over-gatt-00"/>
        </reference>
        <reference anchor="RFC9849">
          <front>
            <title>TLS Encrypted Client Hello</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="K. Oku" initials="K." surname="Oku"/>
            <author fullname="N. Sullivan" initials="N." surname="Sullivan"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="March" year="2026"/>
            <abstract>
              <t>This document describes a mechanism in Transport Layer Security (TLS) for encrypting a message under a server public key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9849"/>
          <seriesInfo name="DOI" value="10.17487/RFC9849"/>
        </reference>
        <reference anchor="RFC9953">
          <front>
            <title>DNS over CoAP (DoC)</title>
            <author fullname="M. S. Lenders" initials="M. S." surname="Lenders"/>
            <author fullname="C. Amsüss" initials="C." surname="Amsüss"/>
            <author fullname="C. Gündoğan" initials="C." surname="Gündoğan"/>
            <author fullname="T. C. Schmidt" initials="T. C." surname="Schmidt"/>
            <author fullname="M. Wählisch" initials="M." surname="Wählisch"/>
            <date month="March" year="2026"/>
            <abstract>
              <t>This document defines a protocol for exchanging DNS queries (OPCODE 0) over the Constrained Application Protocol (CoAP). These CoAP messages can be protected by (D)TLS-Secured CoAP or Object Security for Constrained RESTful Environments (OSCORE) to provide encrypted DNS message exchange for constrained devices in the Internet of Things (IoT).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9953"/>
          <seriesInfo name="DOI" value="10.17487/RFC9953"/>
        </reference>
        <reference anchor="I-D.amsuess-core-resource-directory-extensions">
          <front>
            <title>CoRE Resource Directory Extensions</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <date day="6" month="November" year="2024"/>
            <abstract>
              <t>   A collection of extensions to the Resource Directory [rfc9176] that
   can stand on their own, and have no clear future in specification
   yet.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Discussion of this document takes place on the Constrained RESTful
   Environments Working Group mailing list (core@ietf.org), which is
   archived at https://mailarchive.ietf.org/arch/browse/core/.

   Source for this draft and an issue tracker can be found at
   https://gitlab.com/chrysn/resource-directory-extensions.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-amsuess-core-resource-directory-extensions-11"/>
        </reference>
        <reference anchor="RFC8824">
          <front>
            <title>Static Context Header Compression (SCHC) for the Constrained Application Protocol (CoAP)</title>
            <author fullname="A. Minaburo" initials="A." surname="Minaburo"/>
            <author fullname="L. Toutain" initials="L." surname="Toutain"/>
            <author fullname="R. Andreasen" initials="R." surname="Andreasen"/>
            <date month="June" year="2021"/>
            <abstract>
              <t>This document defines how to compress Constrained Application Protocol (CoAP) headers using the Static Context Header Compression and fragmentation (SCHC) framework. SCHC defines a header compression mechanism adapted for Constrained Devices. SCHC uses a static description of the header to reduce the header's redundancy and size. While RFC 8724 describes the SCHC compression and fragmentation framework, and its application for IPv6/UDP headers, this document applies SCHC to CoAP headers. The CoAP header structure differs from IPv6 and UDP, since CoAP uses a flexible header with a variable number of options, themselves of variable length. The CoAP message format is asymmetric: the request messages have a header format different from the format in the response messages. This specification gives guidance on applying SCHC to flexible headers and how to leverage the asymmetry for more efficient compression Rules.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8824"/>
          <seriesInfo name="DOI" value="10.17487/RFC8824"/>
        </reference>
        <reference anchor="I-D.tiloca-core-oscore-capable-proxies">
          <front>
            <title>OSCORE-capable Proxies</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <date day="10" month="July" year="2023"/>
            <abstract>
              <t>   Object Security for Constrained RESTful Environments (OSCORE) can be
   used to protect CoAP messages end-to-end between two endpoints at the
   application layer, also in the presence of intermediaries such as
   proxies.  This document defines how to use OSCORE for protecting CoAP
   messages also between an origin application endpoint and an
   intermediary, or between two intermediaries.  Also, it defines how to
   secure a CoAP message by applying multiple, nested OSCORE
   protections, e.g., both end-to-end between origin application
   endpoints, as well as between an application endpoint and an
   intermediary or between two intermediaries.  Thus, this document
   updates RFC 8613.  The same approach can be seamlessly used with
   Group OSCORE, for protecting CoAP messages when group communication
   with intermediaries is used.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tiloca-core-oscore-capable-proxies-07"/>
        </reference>
        <reference anchor="RFC9463">
          <front>
            <title>DHCP and Router Advertisement Options for the Discovery of Network-designated Resolvers (DNR)</title>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="T. Reddy.K" initials="T." role="editor" surname="Reddy.K"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <author fullname="N. Cook" initials="N." surname="Cook"/>
            <author fullname="T. Jensen" initials="T." surname="Jensen"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document specifies new DHCP and IPv6 Router Advertisement options to discover encrypted DNS resolvers (e.g., DNS over HTTPS, DNS over TLS, and DNS over QUIC). Particularly, it allows a host to learn an Authentication Domain Name together with a list of IP addresses and a set of service parameters to reach such encrypted DNS resolvers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9463"/>
          <seriesInfo name="DOI" value="10.17487/RFC9463"/>
        </reference>
        <reference anchor="I-D.amsuess-t2trg-onion-coap">
          <front>
            <title>Using onion routing with CoAP</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   The CoAP protocol was designed with direct connections and proxies in
   mind.  This document defines mechanisms by which chains of proxies
   can be set up.  In combination, they enable the operation of hidden
   services and of clients similar to how Tor (onion routing) enables it
   for TCP-based protocols.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-amsuess-t2trg-onion-coap-04"/>
        </reference>
        <reference anchor="RFC9952">
          <front>
            <title>Application-Layer Protocol Negotiation (ALPN) ID for CoAP over DTLS</title>
            <author fullname="M. S. Lenders" initials="M. S." surname="Lenders"/>
            <author fullname="C. Amsüss" initials="C." surname="Amsüss"/>
            <author fullname="T. C. Schmidt" initials="T. C." surname="Schmidt"/>
            <author fullname="M. Wählisch" initials="M." surname="Wählisch"/>
            <date month="March" year="2026"/>
            <abstract>
              <t>This document specifies an Application-Layer Protocol Negotiation (ALPN) ID for Constrained Application Protocol (CoAP) services that are secured by DTLS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9952"/>
          <seriesInfo name="DOI" value="10.17487/RFC9952"/>
        </reference>
        <reference anchor="RFC6698">
          <front>
            <title>The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Schlyter" initials="J." surname="Schlyter"/>
            <date month="August" year="2012"/>
            <abstract>
              <t>Encrypted communication on the Internet often uses Transport Layer Security (TLS), which depends on third parties to certify the keys used. This document improves on that situation by enabling the administrators of domain names to specify the keys used in that domain's TLS servers. This requires matching improvements in TLS client software, but no change in TLS server software. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6698"/>
          <seriesInfo name="DOI" value="10.17487/RFC6698"/>
        </reference>
        <reference anchor="I-D.ietf-lake-app-profiles">
          <front>
            <title>Coordinating the Use of Application Profiles for the Lightweight Authenticated Key Exchange (LAKE) Protocol</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <date day="26" month="October" year="2026"/>
            <abstract>
              <t>   The Lightweight Authenticated Key Exchange (LAKE) protocol requires
   certain parameters to be agreed out-of-band, in order to ensure its
   successful completion.  To this end, application profiles specify the
   intended use of LAKE to allow for the relevant processing and
   verifications to be made.  In order to ensure the applicability of
   such parameters and information beyond transport- or setup-specific
   scenarios, this document defines a canonical, CBOR-based
   representation that can be used to describe, distribute, and store
   LAKE application profiles.  Furthermore, in order to facilitate
   interoperability between LAKE implementations and support LAKE
   extensibility for additional integrations, this document defines a
   number of means to coordinate the use of LAKE application profiles.
   Finally, this document defines a set of well-known LAKE application
   profiles.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-app-profiles-07"/>
        </reference>
        <reference anchor="RFC9200">
          <front>
            <title>Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a framework for authentication and authorization in Internet of Things (IoT) environments called ACE-OAuth. The framework is based on a set of building blocks including OAuth 2.0 and the Constrained Application Protocol (CoAP), thus transforming a well-known and widely used authorization solution into a form suitable for IoT devices. Existing specifications are used where possible, but extensions are added and profiles are defined to better serve the IoT use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9200"/>
          <seriesInfo name="DOI" value="10.17487/RFC9200"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-edn-literals">
          <front>
            <title>Concise Diagnostic Notation (CDN)</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="31" month="October" year="2026"/>
            <abstract>
              <t>   This document formalizes and consolidates the definition of the
   Concise Diagnostic Notation (CDN) of the Concise Binary Object
   Representation (CBOR), addressing implementer experience.

   Replacing CDN's previous informal descriptions, it updates RFC 8949,
   obsoleting its Section 8, and RFC 8610, obsoleting its Appendix G.

   It also specifies registry-based extension points and uses them to
   support text representations such as of epoch-based dates/times and
   of IP addresses and prefixes.


   // (This cref will be removed by the RFC editor:) This revision -29
   // attempts to implement various change requests not covered in -28
   // that have been discussed in the 2026-08-19 and 2026-09-30 WG
   // interim meetings, but does not attempt to reflect the outcome of
   // those discussions.  The text also does not have WG input yet on
   // any renaming decisions (CDN name, b1/t1 name).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-29"/>
        </reference>
        <reference anchor="RFC9619">
          <front>
            <title>In the DNS, QDCOUNT Is (Usually) One</title>
            <author fullname="R. Bellis" initials="R." surname="Bellis"/>
            <author fullname="J. Abley" initials="J." surname="Abley"/>
            <date month="July" year="2024"/>
            <abstract>
              <t>This document updates RFC 1035 by constraining the allowed value of the QDCOUNT parameter in DNS messages with OPCODE = 0 (QUERY) to a maximum of one, and it specifies the required behavior when values that are not allowed are encountered.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9619"/>
          <seriesInfo name="DOI" value="10.17487/RFC9619"/>
        </reference>
        <reference anchor="RFC6887">
          <front>
            <title>Port Control Protocol (PCP)</title>
            <author fullname="D. Wing" initials="D." role="editor" surname="Wing"/>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair"/>
            <author fullname="R. Penno" initials="R." surname="Penno"/>
            <author fullname="P. Selkirk" initials="P." surname="Selkirk"/>
            <date month="April" year="2013"/>
            <abstract>
              <t>The Port Control Protocol allows an IPv6 or IPv4 host to control how incoming IPv6 or IPv4 packets are translated and forwarded by a Network Address Translator (NAT) or simple firewall, and also allows a host to optimize its outgoing NAT keepalive messages.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6887"/>
          <seriesInfo name="DOI" value="10.17487/RFC6887"/>
        </reference>
        <reference anchor="RFC9462">
          <front>
            <title>Discovery of Designated Resolvers</title>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="E. Kinnear" initials="E." surname="Kinnear"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <author fullname="P. McManus" initials="P." surname="McManus"/>
            <author fullname="T. Jensen" initials="T." surname="Jensen"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document defines Discovery of Designated Resolvers (DDR), a set of mechanisms for DNS clients to use DNS records to discover a resolver's encrypted DNS configuration. An Encrypted DNS Resolver discovered in this manner is referred to as a "Designated Resolver". These mechanisms can be used to move from unencrypted DNS to encrypted DNS when only the IP address of a resolver is known. These mechanisms are designed to be limited to cases where Unencrypted DNS Resolvers and their Designated Resolvers are operated by the same entity or cooperating entities. It can also be used to discover support for encrypted DNS protocols when the name of an Encrypted DNS Resolver is known.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9462"/>
          <seriesInfo name="DOI" value="10.17487/RFC9462"/>
        </reference>
        <reference anchor="RFC3172">
          <front>
            <title>Management Guidelines &amp; Operational Requirements for the Address and Routing Parameter Area Domain ("arpa")</title>
            <author fullname="G. Huston" initials="G." role="editor" surname="Huston"/>
            <date month="September" year="2001"/>
            <abstract>
              <t>This memo describes the management and operational requirements for the address and routing parameter area ("arpa") domain. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="52"/>
          <seriesInfo name="RFC" value="3172"/>
          <seriesInfo name="DOI" value="10.17487/RFC3172"/>
        </reference>
        <reference anchor="RFC9476">
          <front>
            <title>The .alt Special-Use Top-Level Domain</title>
            <author fullname="W. Kumari" initials="W." surname="Kumari"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>This document reserves a Top-Level Domain (TLD) label "alt" to be used in non-DNS contexts. It also provides advice and guidance to developers creating alternative namespaces.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9476"/>
          <seriesInfo name="DOI" value="10.17487/RFC9476"/>
        </reference>
        <reference anchor="I-D.ietf-core-corr-clar">
          <front>
            <title>Constrained Application Protocol (CoAP): Corrections and Clarifications</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="19" month="March" year="2026"/>
            <abstract>
              <t>   RFC 7252 defines the Constrained Application Protocol (CoAP), along
   with a number of additional specifications, including RFC 7641, RFC
   7959, RFC 8132, and RFC 8323.  RFC 6690 defines the link format that
   is used in CoAP self-description documents.

   Some parts of the specification may be unclear or even contain errors
   that may lead to misinterpretations that may impair interoperability
   between different implementations.  The present document provides
   corrections, additions, and clarifications to the RFCs cited; this
   document thus updates these RFCs.  In addition, other clarifications
   related to the use of CoAP in other specifications, including RFC
   7390 and RFC 8075, are also provided.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-corr-clar-04"/>
        </reference>
        <reference anchor="RFC7838">
          <front>
            <title>HTTP Alternative Services</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="P. McManus" initials="P." surname="McManus"/>
            <author fullname="J. Reschke" initials="J." surname="Reschke"/>
            <date month="April" year="2016"/>
            <abstract>
              <t>This document specifies "Alternative Services" for HTTP, which allow an origin's resources to be authoritatively available at a separate network location, possibly accessed with a different protocol configuration.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7838"/>
          <seriesInfo name="DOI" value="10.17487/RFC7838"/>
        </reference>
        <reference anchor="I-D.amsuess-t2trg-rdlink">
          <front>
            <title>rdlink: Robust distributed links to constrained devices</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <date day="23" month="September" year="2019"/>
            <abstract>
              <t>   Thing to thing communication in Constrained RESTful Environments
   (CoRE) relies on URIs to link to servers.  Next to hierarchical
   configuration and short-lived IP addresses, this document introduces
   a naming scheme for devices based on cryptographic identifiers.  A
   special purpose domain is reserved for expressing those identifiers,
   and mechanisms for constrained devices to announce their names and to
   look them up are described.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-amsuess-t2trg-rdlink-01"/>
        </reference>
        <reference anchor="I-D.ietf-core-coral">
          <front>
            <title>The Constrained RESTful Application Language (CoRAL)</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>ARM</organization>
            </author>
            <date day="4" month="March" year="2024"/>
            <abstract>
              <t>   The Constrained RESTful Application Language (CoRAL) defines a data
   model and interaction model as well as a compact serialization
   formats for the description of typed connections between resources on
   the Web ("links"), possible operations on such resources ("forms"),
   and simple resource metadata.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-coral-06"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC5952">
          <front>
            <title>A Recommendation for IPv6 Address Text Representation</title>
            <author fullname="S. Kawamura" initials="S." surname="Kawamura"/>
            <author fullname="M. Kawashima" initials="M." surname="Kawashima"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>As IPv6 deployment increases, there will be a dramatic increase in the need to use IPv6 addresses in text. While the IPv6 address architecture in Section 2.2 of RFC 4291 describes a flexible model for text representation of an IPv6 address, this flexibility has been causing problems for operators, system engineers, and users. This document defines a canonical textual representation format. It does not define a format for internal storage, such as within an application or database. It is expected that the canonical format will be followed by humans and systems when representing IPv6 addresses as text, but all implementations must accept and be able to handle any legitimate RFC 4291 format. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5952"/>
          <seriesInfo name="DOI" value="10.17487/RFC5952"/>
        </reference>
        <reference anchor="RFC1123">
          <front>
            <title>Requirements for Internet Hosts - Application and Support</title>
            <author fullname="R. Braden" initials="R." role="editor" surname="Braden"/>
            <date month="October" year="1989"/>
            <abstract>
              <t>This RFC is an official specification for the Internet community. It incorporates by reference, amends, corrects, and supplements the primary protocol standards documents relating to hosts. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="3"/>
          <seriesInfo name="RFC" value="1123"/>
          <seriesInfo name="DOI" value="10.17487/RFC1123"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <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>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="I-D.silverajan-core-coap-protocol-negotiation">
          <front>
            <title>CoAP Protocol Negotiation</title>
            <author fullname="Bill Silverajan" initials="B." surname="Silverajan">
              <organization>TUT</organization>
            </author>
            <author fullname="Mert Ocak" initials="M." surname="Ocak">
              <organization>Ericsson</organization>
            </author>
            <date day="2" month="July" year="2018"/>
            <abstract>
              <t>   CoAP has been standardised as an application-level REST-based
   protocol.  When multiple transport protocols exist for exchanging
   CoAP resource representations, this document introduces a way forward
   for CoAP endpoints as well as intermediaries to agree upon alternate
   transport and protocol configurations as well as URIs for CoAP
   messaging.  Several mechanisms are proposed: Extending the CoRE
   Resource Directory with new parameter types, introducing a new CoAP
   Option with which clients can interact directly with servers without
   needing the Resource Directory, and finally a new CoRE Link Attribute
   allowing exposing alternate locations on a per-resource basis.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-silverajan-core-coap-protocol-negotiation-09"/>
        </reference>
      </references>
    </references>
    <?line 1263?>

<section anchor="change-log">
      <name>Change log</name>
      <t><cref anchor="remove-changelog">This section is to be removed before publication.</cref></t>
      <t>Since draft-ietf-core-transport-indication-10:</t>
      <ul spacing="normal">
        <li>
          <t>Use 'recommended proxy' as a defined term consistently.</t>
        </li>
        <li>
          <t>Editorial updates.</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-09:</t>
      <ul spacing="normal">
        <li>
          <t>edhoc-info replaced with app-profiles' edhoc-app-prof.</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-08:</t>
      <ul spacing="normal">
        <li>
          <t>Explicitly become an SVCB mapping document for the CoAP schemes.</t>
        </li>
        <li>
          <t>Remove coaptransport parameter; instead, request ALPNs for remaining protocols.</t>
        </li>
        <li>
          <t>Point out issue about some metadata pertaining to transport choices and some metadata pertaining to the server itself.</t>
        </li>
        <li>
          <t>Acknowledge that there is structure (e.g., in SVCB lookups) that is conceptually flattened.</t>
        </li>
        <li>
          <t>Sulkily accept DNS-over-CoAP reaching into target names as an exception in security requirements.</t>
        </li>
        <li>
          <t>Editorial updates.</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-07:</t>
      <ul spacing="normal">
        <li>
          <t>Update sections 1 and 2:
          </t>
          <ul spacing="normal">
            <li>
              <t>Work more explicitly with 7252's resolution services.</t>
            </li>
            <li>
              <t>List (coarsely) the information received from resolution services.</t>
            </li>
            <li>
              <t>Homogenize treatment of proxy URIs and other resolution service outcomes.</t>
            </li>
            <li>
              <t>Point out parallels to /etc/hosts.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Phrase possible differences w/rt hop-to-hop vs. end-to-end encryption more carefully.</t>
        </li>
        <li>
          <t>SVCB: Rename edhoc-cred to cred.</t>
        </li>
        <li>
          <t>Rework literals following discussion around onion-coap.</t>
        </li>
        <li>
          <t>Point out the fates of appendices.</t>
        </li>
        <li>
          <t>Editorial fixes.</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-06:</t>
      <ul spacing="normal">
        <li>
          <t>Split introduction into terminology (with new definitions), goals and concepts.</t>
        </li>
        <li>
          <t>Add principle of operation into abstract, elevating SVCB and has-proxy to equally ranked sources of endpoint information.</t>
        </li>
        <li>
          <t>Restructure document to split overview and operations from the concrete methods of obtaining endpoints.</t>
        </li>
        <li>
          <t>Add is-unique-proxy SVCB parameter equivalent to has-unique-proxy relation.</t>
        </li>
        <li>
          <t>Remove <tt>_coaps</tt> service, describing <tt>_coap</tt> as applying to all CoAP transports.</t>
        </li>
        <li>
          <t>Add SVCB to abstract.</t>
        </li>
        <li>
          <t>Remove distracting text on URIs identifying transports/endpoints.</t>
        </li>
        <li>
          <t>Editorial changes.</t>
        </li>
        <li>
          <t>IANA considerations: Set change controller to IETF.</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-05:</t>
      <ul spacing="normal">
        <li>
          <t>Semantics for where a has-proxy applies were changed from "wherever there is a <tt>hosts</tt> relation" to "across the same origin".  </t>
          <t>
The <tt>hosts</tt> relation has received complaints about its complexity,
and there were no strong voices in either direction during or after IETF119 when the question has been asked;
going for the easier version.</t>
        </li>
        <li>
          <t>Use of SVCB is added as a section. Underscore prefixes are registered for CoAP, enabling the use of SVCB DNS records for applications that opt in to it (rather than processing it as an alternative history).  </t>
          <t>
While the alternative history section was appreciated during IETF119,
the authors found it highly impractical to provide SVCB ground work without having the actual registrations
(it would have worked only because DNS discovery acts on a separate <tt>_dns</tt> prefix anyway),
and chose the consistent approach of allowing SVCB lookups.</t>
        </li>
        <li>
          <t>Material from the DNS and DNR for CoAP documents was moved in (and overhauled in the process):  </t>
          <ul spacing="normal">
            <li>
              <t>Constructing CoAP requests from Service Parameters that did not result from a hostname lookup is described.</t>
            </li>
            <li>
              <t>The coaptransport SVCB parameter is defined.</t>
            </li>
            <li>
              <t>SVCB hints for ACE/OAuth are defined.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Section on how a host can tell that Uri-Host is optional was moved from Open Questions into a section.  </t>
          <t>
This had been around for ages,
and gathering some more experience with the matter,
looks like the obvious approach.</t>
        </li>
        <li>
          <t>Editorial:  </t>
          <ul spacing="normal">
            <li>
              <t>Style for unallocated registrations changed from TBD to CPA</t>
            </li>
            <li>
              <t>References updated</t>
            </li>
            <li>
              <t>Tooling updates</t>
            </li>
            <li>
              <t>Minor fixes</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-04:</t>
      <ul spacing="normal">
        <li>
          <t>Not just the scheme, but also the authority value influences the transport selection.
          </t>
          <ul spacing="normal">
            <li>
              <t>Add guidance section for new transports.</t>
            </li>
            <li>
              <t>Point out that registered names already can fan out to different addresses.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Rephrase and simplify security considerations, especially by limiting unique proxying for TLS.</t>
        </li>
        <li>
          <t>Add recommendation to new scheme authors to use "coap"/"coaps" and let the resolution process guide the selection.
          </t>
          <ul spacing="normal">
            <li>
              <t>Remove proxy-schemes attribute from core.proxy because of its greatly reduced value.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Update "Related work" appendix to cover SVCB instead of SRV records</t>
        </li>
        <li>
          <t>Rename to "Transport Indication", using "protocol" only for other protocols, in established phrases, or when referring to CoAP as a general protocol.</t>
        </li>
        <li>
          <t>Add note linking CoAP over WS's .well-known/coap to dohpath</t>
        </li>
        <li>
          <t>Remove OSCORE vs. unique-proxy open point</t>
        </li>
        <li>
          <t>EDHOC EAD: Describe response option content</t>
        </li>
        <li>
          <t>Editorial updates</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-03:</t>
      <ul spacing="normal">
        <li>
          <t>Added appendices on alternative history and Literals beyond IP addresses.
The remaining document was not brought in sync with those new parts.</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-02:</t>
      <ul spacing="normal">
        <li>
          <t>Added EAD appendix, adjusted security considerations to match.</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-01:</t>
      <ul spacing="normal">
        <li>
          <t>Simplify same-host proxy behavior by referring to existing RFC7252 mandate.</t>
        </li>
        <li>
          <t>proxy-links= lookup: Refer to prior art.</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-00:</t>
      <ul spacing="normal">
        <li>
          <t>Add section on canonical URIs that are not necessarily reachable.</t>
        </li>
        <li>
          <t>Clarify that the the "hosts" relation is followed transitively.</t>
        </li>
        <li>
          <t>Cross reference with compatible multicast-notifications concept.</t>
        </li>
      </ul>
      <t>Since draft-amsuess-core-transport-indication-03:</t>
      <ul spacing="normal">
        <li>
          <t>No changes (merely changing the name after WG adoption)</t>
        </li>
      </ul>
      <t>Since -02 (mainly processing reviews from Marco and Klaus):</t>
      <ul spacing="normal">
        <li>
          <t>Acknowledge that 'coap://hostname/' is not the proxy but a URI that (in a particular phrasing) is used to stand in for the proxy's address (while it regularly identifies a resource on the server)</t>
        </li>
        <li>
          <t>Security: Referencing traffic misdirection already in the first security block.</t>
        </li>
        <li>
          <t>Security: Add (incomplete) considerations for unique-proxy case.</t>
        </li>
        <li>
          <t>Narrow down "unique" proxy semantics to those properties used by the client, allowing unique proxies to be co-hosted with forward proxies.</t>
        </li>
        <li>
          <t>"Client picked proxies" clarified to merely illustrate how this is compatible with them.</t>
        </li>
        <li>
          <t>Use of "hosts" relation sharpened.</t>
        </li>
        <li>
          <t>Precision on how this does and does not consider changing transports.</t>
        </li>
        <li>
          <t>"Related work" section demoted to appendix.</t>
        </li>
        <li>
          <t>Add note on DTLS session resumption.</t>
        </li>
        <li>
          <t>Variable renaming.</t>
        </li>
        <li>
          <t>Various editorial fixes.</t>
        </li>
      </ul>
      <t>Since -01:</t>
      <ul spacing="normal">
        <li>
          <t>Removed suggestion for generally trusted proxies;
now stating that with (D)TLS,
"a third party proxy can usually not satisfy [the security context propagation requirement]".</t>
        </li>
        <li>
          <t>State more clearly that valid cache entries for resources aliased through has-unique-proxy can be used.</t>
        </li>
        <li>
          <t>Added considerations for Multipath TCP.</t>
        </li>
        <li>
          <t>Added concrete suggestion and example for advertisement of general proxies.</t>
        </li>
        <li>
          <t>Added concrete suggestion for RD lookup extension that provides proxies.</t>
        </li>
        <li>
          <t>Minor editorial and example changes.</t>
        </li>
      </ul>
      <t>Since -00:</t>
      <ul spacing="normal">
        <li>
          <t>Added introduction</t>
        </li>
        <li>
          <t>Added examples</t>
        </li>
        <li>
          <t>Added SCHC analogy</t>
        </li>
        <li>
          <t>Expanded security considerations</t>
        </li>
        <li>
          <t>Added guidance on choice of transport, and canonical addresses</t>
        </li>
        <li>
          <t>Added subsection on interaction with a Resource Directory</t>
        </li>
        <li>
          <t>Added comparisons with related work, including rdlink and DNS-SD sketches</t>
        </li>
        <li>
          <t>Added IANA considerations</t>
        </li>
        <li>
          <t>Added section on open questions</t>
        </li>
      </ul>
    </section>
    <section anchor="related-work-and-applicability-to-related-fields">
      <name>Related work and applicability to related fields</name>
      <t><cref anchor="remove-relatedwork">This section is to be removed before submission to the IESG, with at least the MP-TCP section worked into corr-clar <xref target="I-D.ietf-core-corr-clar"/>.</cref></t>
      <section anchor="on-http">
        <name>On HTTP</name>
        <t>The mechanisms introduced here are similar to the Alt-Svc header of <xref target="RFC7838"/>
in that they do not create different application-visible addresses,
but provide dispatch through lower transport implementations.</t>
        <t>In HTTP, different versions of the protocol (i.e., different transports)
are distinguished using a protocol identifier equivalent to an ALPN.
This works well because all relevant transports use transport layer security and thus can use ALPNs.
In contrast, the currently specified CoAP transports predate ALPNs,
and specify per-transport schemes, which enable the use of URIs that indicate transports.</t>
        <t>To accommodate the message size constraints typical of CoRE environments,
and accounting for the differences between HTTP headers and CoAP options,
information is delivered once at discovery time.</t>
        <t>Using the "has-proxy" and "has-unique-proxy" relations with HTTP URIs as the context is NOT RECOMMENDED;
the HTTP provisions of the Alt-Svc header and ALPN are preferred.</t>
      </section>
      <section anchor="using-dns">
        <name>Using DNS</name>
        <t>DNS Service Binding resource records (SVCB RRs)
described in <xref target="RFC9460"/> can carry many of the details otherwise negotiated using the proxy relations.
In HTTP, they can be used in a way similar to Alt-Svc headers.</t>
        <t>SVCB records were not specified when CoAP was specified for TCP.</t>
        <t>If at any point SVCB records for CoAP are defined,
name resolution produces a set of transport details that can be used immediately
without the need for a "has-proxy" link.
Explicit "has-proxy" links would still be relevant for third-party-advertised proxies.</t>
      </section>
      <section anchor="using-names-outside-regular-dns">
        <name>Using names outside regular DNS</name>
        <t>Names that are resolved through different mechanisms than DNS,
or names which are defined within the scope of DNS but have no universally valid answers to A/AAAA requests,
can be advertised using the relation types defined here and CoAP discovery.</t>
        <t>In <xref target="fig-rdlink"/>, a server using a cryptographic name as described in <xref target="I-D.amsuess-t2trg-rdlink"/> is discovered and used.</t>
        <figure anchor="fig-rdlink">
          <name>Obtaining a sensor value from a local device with a global name</name>
          <artwork><![CDATA[
Req: to [ff02::fd]:5683 on UDP
Code: GET
Uri-Path: /.well-known/core
Uri-Query: rel=has-proxy
Uri-Query: anchor=coap://nbswy3dpo5xxe3denbswy3dpo5xxe3de.ab.rdlink.arpa

Res: from [2001:db8::1]:5683
Content-Format: application/link-format
Payload:
<coap+tcp://[2001:db8::1]>;rel=has-unique-proxy;
  anchor="coap://nbswy3dpo5xxe3denbswy3dpo5xxe3de.ab.rdlink.arpa"


Req: to [2001:db8::1]:5683 on TCP
Code: GET
OSCORE: ...
Uri-Path: /sensors/temp
Observe: 0

Res: 2.05 Content
OSCORE: ...
Observe: 0
Payload:
39.1°C
]]></artwork>
        </figure>
      </section>
      <section anchor="multipath-tcp">
        <name>Multipath TCP</name>
        <t>When CoAP over TCP is used over Multipath TCP
and no Uri-Host option is sent,
the implicit assumption is that there is aliasing between URIs containing any of the endpoints' addresses.</t>
        <t>As these are negotiated within MPTCP,
this works independently of this document's mechanisms.
As long as all the server's addresses are equally reachable,
there is no need to advertise multiple addresses that can later be discovered through MPTCP anyway.
When advertisements are long-lived and there is no single more stable address,
several available addresses can be advertised (independently of whether MPTCP is involved or not).
If a client uses an address that is merely a proxy address (and not a unique proxy address),
but during MPTCP finds out that the network location being accessed is actually an MPTCP alternative address of the used one,
the client MAY forgo sending of the Proxy-Scheme and Uri-Host option.</t>
        <t>[ This follows from multiple addresses being valid for that TCP connection;
at some point we may want to say something about what that means for the default value of the Uri-Host option --
maybe something like "has the default value of any of the associated addresses, but the server may only enable MPTCP if there is implicit aliasing between all of them" (similar to OSCORE's statement)?  ]</t>
        <t>[ TBD: Do we need a section analogous to this that deals with (D)TLS session resumption in absence of SNI? ]</t>
      </section>
    </section>
    <section anchor="open-questions-further-ideas">
      <name>Open Questions / further ideas</name>
      <t><cref anchor="remove-openquestions">This section is to be either converted into concrete guidance, or removed before submission to the IESG.</cref></t>
      <ul spacing="normal">
        <li>
          <t>Advertising under a stable name:  </t>
          <t>
If a host wants to advertise its hostname rather than its IP address during multicast, how does it best do that?  </t>
          <t>
Options, when answering from 2001:db8::1 to a request to ff02::fd are:  </t>
          <artwork><![CDATA[
<coap://myhostname/foo>,...,
<coap://[2001:db8::1]>;rel=has-unique-proxy;anchor="coap://myhostname"
]]></artwork>
          <t>
which is verbose but formally clear, and  </t>
          <artwork><![CDATA[
</foo>,...,
<coap://[2001:db8::1]>;rel=has-unique-proxy;anchor="coap://myhostname"
]]></artwork>
          <t>
which is compatible with unaware clients,
but its correctness with respect to canonical URIs needs to be argued by the client, in this sequence  </t>
          <ul spacing="normal">
            <li>
              <t>understanding the has-unique-proxy line,</t>
            </li>
            <li>
              <t>understanding that the request that went to 2001:db8::1 was really a Proxy-Scheme/Uri-Host-elided version of a request to coap://myhostname, and then</t>
            </li>
            <li>
              <t>processing any relative reference with this new base in mind.</t>
            </li>
          </ul>
          <t>
(Not that it would need to happen in software in that sequence,
but that is the sequence needed to understand how the <tt>/foo</tt> here is really <tt>coap://myhostname/foo</tt>).  </t>
          <t>
If the he Constrained RESTful Application Language (CoRAL) <xref target="I-D.ietf-core-coral"/> is used during discovery, a base directive or reverse relation to has-unique-proxy would make this easier.</t>
        </li>
      </ul>
    </section>
    <section anchor="ead">
      <name>EDHOC EAD for verifying legitimate proxies</name>
      <t><cref anchor="remove-edhocead">This section is to be moved into another document, possibly <tt>groupcomm-proxy</tt>.</cref></t>
      <t>This document sketches an extension to <xref target="RFC9528"/> that informs the server of the public address the client is using,
allowing it to detect undesired reverse proxies.</t>
      <t>[ This section is immature, and written up as a discussion starting point. Further research into prior art is still necessary. ]</t>
      <t>The External Authorization Data (EAD) item with name "Proxy CRI", label 24-CPA, is defined for use with messages 1, 2 and 3.</t>
      <t>A client can set this label in non-critical form, followed by a CRI (<xref target="I-D.ietf-core-href"/>) that is CBOR-encoded in a byte string as a CBOR sequence.
The transport address indicated by the URI is the proxy the client chose from information advertised about the server.</t>
      <t>If a server cannot determine its set of legitimate proxies,
it ignores the EAD item (as does any EDHOC implementation that is unaware of it).</t>
      <t>If it recognizes the CRI as belonging to a legitimate proxy,
it places the empty label in its non-critical form in the next message to confirm the proxy choice.
Otherwise, it places the label in its critical form, either empty or containing a recommended CRI.
The client may then decide to discontinue using the proxy,
or to use more extensive padding options to sidestep the attack.
Both the client and the server may alert their administrators of a possible traffic misdirection.</t>
      <t>[ While using an EDHOC EAD is suitable for connection setup,
   such a mechanism may also be useful at a later time,
   e.g., to re-check a server's address after a name change;
   establishing an equivalent CoAP option is being considered,
   also in light of the discussion around https://github.com/core-wg/corrclar/pull/40 and https://github.com/core-wg/groupcomm-proxy/issues/3.
   ]</t>
    </section>
    <section anchor="newlit">
      <name>Literals beyond IP addresses</name>
      <t>[
This section is placed here preliminarily:
After initial review in CoRE, this may be better moved into a separate document aiming for a wider IETF audience.
]</t>
      <section anchor="motivation-for-new-literal-ish-names">
        <name>Motivation for new literal-ish names</name>
        <t>IP literals were part of URIs from the start <xref target="w3address"/>.
Initially, they were equivalent to hostnames in their expressiveness,
save for their inherent difference that the former can be used without a shared resolver,
and the latter can be switched to a different network address.</t>
        <t>This equivalence got lost gradually:
Certificates for TLS (its precursor SSL has been available since 1995 <xref target="evossl"/>)
<!-- TBD cite - https://en.wikipedia.org/wiki/HTTPS or  ? -->
have only been available practically to hostnames.
The Host header established in HTTP 1.1 <xref section="14.23" sectionFormat="of" target="RFC9110"/>
introduced name based virtual hosting in 1999.
DNS-Based Authentication of Named Entries (DANE) <xref target="RFC6698"/>, which provides TLS public keys augmenting (or even replacing) the public key infrastructure,
is only available for hostnames resolved through DNSSEC.
SVCB records <xref target="RFC9460"/> introduced in 2023
allow starting newer HTTP transports without going through HTTP/1.1 first,
enable load balancing, fail-over,
and allow for Encrypted Client Hello --
again, only for hostnames resolved through DNS.</t>
        <t>This document proposes an expression for the host component of a URI
that fills that gap.
Note that no attempt is yet made to register <tt>service.arpa</tt> in the .ARPA Zone Management <cref anchor="dnssd">Since this document was started, RFC9665 was published with a different use of "service.arpa"; this document will be updated in a later revision to use a different proposed identifier.</cref>;
that name is used only for the purpose of discussion.</t>
        <t><cref anchor="prelim">The structure and even more the syntax used here is highly preliminary.
They serve to illustrate that the desired properties can be obtained,
and do not claim to be optimal.
As one of many aspects, they are missing considerations for normalization
and for internationalization.</cref></t>
      </section>
      <section anchor="structure-of-servicearpa">
        <name>Structure of <tt>service.arpa</tt></name>
        <t>Names under service.arpa are structured into
an ordered list of key-value component pairs,
and the common suffix <tt>service.arpa</tt>.</t>
        <t>These pairs represent the very items also produced by <xref target="processing-scheme-authority"/>.
In the current version, they can <em>not</em> express multiple entries with different structures.
They can express different entries, but any repeated items (e.g., different ALPNs and IP addresses)
only yield their Cartisian product
(i.e., no "TCP on this or that address, TLS on another").</t>
        <t>Keeping with the style of DNS (least significant component first),
pairs are expressed with their data as the first label, followed by the key in a separate label.
Data items ending with a "-" character are concatenated with their previous label to avoid overflowing the 63-octet limit of DNS
(even though those do not wind up in DNS serialization).</t>
        <t>For example, "world.hello-.label.8080.port" contains,
in that order,
information about port 8080 and the label "helloworld".</t>
        <t>Initial component types are:</t>
        <ul spacing="normal">
          <li>
            <t><tt>6</tt>: The value encodes an IPv6 address
in <xref target="RFC5952"/> format, with the colon character (":") replaced with a dash ("-").  </t>
            <t>
It indicates an address of a host providing the service.  </t>
            <t>
If any address information is present,
a client SHOULD use that information to access the service.</t>
          </li>
          <li>
            <t><tt>4</tt>: The value encodes an IPv4 address
in dotted decimal format <xref target="RFC1123"/>, with the dot character (".") replaced with a dash ("-").  </t>
            <t>
It indicates an address of a host providing the service.</t>
          </li>
          <li>
            <t><tt>tlsa</tt>: The data of a DNS TLSA record <xref target="RFC6698"/> encoded in base32 <xref target="RFC4648"/>.  </t>
            <t>
Depending on the usage, this describes TLS credentials through which the service can be authenticated.  </t>
            <t>
If present,
a client MUST establish a secure connection,
and MUST fail the connection if the TLSA record's requirements are not met.</t>
          </li>
          <li>
            <t><tt>cred</tt>, <tt>edhoc-app-prof</tt>, <tt>edhocpath</tt>, <tt>oauth-hints</tt>: SvcParams in base32 encoding of their wire format.</t>
          </li>
          <li>
            <t><tt>alpn</tt>: The ALPN(s) in hexadecimal encoding, separated by dashes.</t>
          </li>
        </ul>
        <t>Due to the rules of <xref target="RFC3986"/>,
all components are case insensitive and canonically lowercase.</t>
        <t>Note that while using the IPvFuture mechanism of <xref target="RFC3986"/> would avoid compatibility issues around the 63 character limit
and some of the character restrictions,
it would not resolve the larger limitation of case insensitivity.</t>
      </section>
      <section anchor="processing-servicearpa">
        <name>Processing <tt>service.arpa</tt></name>
        <t>A client accessing a resource under a service.arpa name
does not consult DNS,
but obtains information equivalent to the results of a DNS query from parsing the name.</t>
        <t>DNS resolvers should refuse to resolve service.arpa names.
(They would have all the information needed to produce sensible results,
but operational aspects would need a lot of consideration;
future versions of this document may revise this).</t>
      </section>
      <section anchor="examples">
        <name>Examples</name>
        <t>TBD: For SvcParams, the examples are inconsistent with the base32 recommendation;
they serve to explore the possible alternatives.</t>
        <ul spacing="normal">
          <li>
            <t>http://683263.alpn.2001-db8--1.6.service.arpa/ -- The server is reachable on 2001:db8::1 using HTTP/2 (h2c is 683263 in hex)</t>
          </li>
          <li>
            <t>https://amaqckrkfivcukrkfivcukrkfivcukrkfivcukrkfivcukrkfivcukrk.tlsa.service.arpa/ -- No address information is provided, the client needs to resort to other discovery mechanisms.
Any server is eligible to serve the resource if it can present a (possibly self-signed) certificate whose public key SHA256 matches the encoded value.</t>
          </li>
          <li>
            <t>coap://434f4150.alpn.2001-db8--1.6.rai3ouj4a.ueekcandaeasabbblaqlxq2jmbjg5jgtf2kazljkenaurxocc6i2ckx3zowjgy-.cred.service.arpa/ -- The server is reachable using CoAP over TCP with any security mechanism at 2001:db8::1, and the service is identifiable by the use of a KCCS credential describing an X25519 public key (which is currently only usable with EDHOC).</t>
          </li>
          <li>
            <t>coap://rai3ouj4a.ueekcandaeasabbblaqlxq2jmbjg5jgtf2kazljkenaurxocc6i2ckx3zowjgy-.cred.service.arpa/ -- The same server without any discoverability hints; it is up to the client to discover (possibly short-lived) connection opportunities to the server identified by that key.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>This document builds heavily on concepts
explored by Bill Silverajan and Mert Ocak in <xref target="I-D.silverajan-core-coap-protocol-negotiation"/>,
together with the work by Ines Robles and Klaus Hartke inside T2TRG.</t>
      <t>[ TBD: reviewers
Marco
Klaus
]</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
jsGX6dX7R60O3gwVKRFFxQYfILcDbqxZ9/iHqDu1gQH7anm9qhFusgea5aYv
qiympo9aYxjzZtS5Qi0rjE/mZeb6t3fFxIB0Em+boo3qgl1ws9PYw8Vy0rTq
EOYZZI67VSy6/dO1yUrWup0TbHpSPcQlhIdbMX5+XN6N0qGxE4vD0Wh6tvWq
Cpqm57Mno6ADoUoiEAO6Jp1aOAQyvHvs8V31blhDnzVTPr2pJkNYJzRcZle0
IflDMgjY5XCKM+r9wLtwy3YPLWRSp4w7Ig+TQ0XezoaL7G1uAygWgjGFoVUo
tYZo8zX/oLXmGOpxuMcxEhZf9Vja9wRzw1f7c5W/gLuPT0BhBq/yNV6KpQ0h
5US/GdIXfbW9jg4wLLXl2UlWkczmbSNQlCBLOQJw41OPL0DVMxbtRHM2P2pz
gzss4UejB2oL00hIqjO9XMm2pumXwJG7h3OuLXQ8ZEeYRNZSDeRgovbiCIFe
r0i2aRdCuSv1noadAN8cwkxdDHyXQw0NydGPl4UZBuiej8ANAmmaUzVl53rK
3nkmfd2JwiEv1fHVp5+Au+JpukeZUTF2fIuVCMalNwdr9UY5bqgufJ63bTfl
GJCmnCciNCgbDBg/xW4XUY/C5iZb5davQspGKdRIPMU4sNi3Q9NNwtRMGLQu
c7b48mmEIxTxhYuOaobASHA8MY23YpCFQai0mpqeC2uGUmvdhloYobZItxie
vafIEk8dcZtl7jNAK6f8BjToQJfB0VNrufHvUzBaaYBeOlNzx/o+MYJQDbjb
9tctx3TT1gNPEcDKdyIqZuctONPur9ewvW4iqU4zRBi9L0G/YnMTw388z2qR
C6KN2gyTBB2IVUtSZFpk87Iiliol64vk7+S6qof5tBwKu0ITy6u4qyWFYlkI
dpPlcXWli7ni9aEwsVNuFZ8SQZD6qib5PUp2iuLnvrGVoxmLsZyLan7F8WQj
o3F8ZU6Mc+ff+1GzZ0+VwrTbQumKs8xNAptf/k1ppIe0DXDYv+peazSRiyiz
nb8cp8qESVri8eFTmHWp4sSqNYqWjrqvlZ69oihssvUF/wdfY48CukPH2VbP
g4PK7RrR8eMveRYI61GK0ZlvEAIwOHn9xb+fVAP8JUXvvnn0+MnD3/Akvujx
IfzfZ142tFA9HI8P+dXPukUUuXZfUVIJDtqRKiaBjT8JRCPWEgPpIUnOSYce
ZDah7hlMndHBlIvx4yFqA4Uy0/am96FNgm1bmW9XiN0ptkccC0jBg3W1ZFZI
fubxi+rn8+NX2pCnsi5PMfcTRj+FyogP0kgO33GUVqO6KUnyRI23pDqOkQ1e
tHJ6na8M1gAHoeh9tnMDxJ/jhGC2K9tNADMzjKhWxIckiBqakz3yoteaBJJy
DXxr7Lt8/oezkWPv4Bx3xVH9dVnK+c3SRT7PJhsrrKKRSX/DQLRCdWsafb7O
saAofXV8qT6gNhYVl832DCpG1ODnsCvEp3/y5GsEOmlcbJQcz9Bm1SHhL1GY
raiIAfeE9VkTfDkN8PApmJmjo9HD8aPHXz8xDEzcMaXBpB+iwRgmgbPFyBiG
3HArIW79TRATaxHMQSZiZqK6Cdp/5SYIjUhMUEdWPYwwjenjgwN3gHlO1tMd
P+T//pTcgRUUKQHv90X/3Xkf3D/ffDh8OP4wGo3S/T+cnFzwwuH7By97HzuY
3z1YeavjMPcsWaRaTE8A9+9jbaK6qHuvfYJYcz3KFa9tVb1lIyaALWkRpKCP
CmP5przZR7KiEnQX/5IIhtkFC6U5FHSjJEUVxs7SByd3kDRqmt5sc+3ANb3u
8HsSt9UGYCHqQhlvxpGiVs40+NIwhSDGXEpqleWsARK7lLHSkFwiHAclTQ3H
ZX2r0KmzoaJABO94F9GRehnhOtTiyAhcJKIiZpCBgb9/RNVt3tvK0hc5tn2V
oKmPikj7nHMKobsSoUYse4fqV+OOkYRHIP8+SkPI7fbL0vOUL7Ag0IoD9ZKA
IV7EkhoHg1sbcHsWZR8Ea/TTKV4FDImpx9RYVshKW4iaC3GwjtwpM9NuCoXT
aEIBrONqGuKhLmCgnp3gBal+Woi+Rnc0fUQpJWsdZsnnMowjvei4A5ZKNlfA
fXrfJV46VRHcnZjBK6WxQyVc/GJtYTTPoSEHCoSFkoXAmEujCbenRLU7QxQe
ZcfCRLgRUikIragphdcErhJX5JLGKHIuUAzYYgssYmSswMxgIfxbll7zBnrq
I+qz7V3TjPQFdH5FG/M1GK8IRBaUJBJPqGjdT+7cigog8g3Gw5JRzsksKw1y
hH6W3QcRDemevn5nXJocDZh47lMRgo46DTY9IW1xZ45CUuxfP8RMMd4HXTQM
KcLUDSyRZsVrqRJnqJXGpomnS5HX2gupRuxtzCcLr5vR7x0tpeItz0L6ee/k
zVk/bEq444cPwenD2u4b+NJSDkFE83sqARplF3ge0etEyLd/eZn/0tr3bWAx
uJMmX+kmg1zsCDa8zBZ80//3OLspsthLHZzbiZzNUL2vNJbu5aRZGc7HLKTZ
u5ve51fh0O3aCS62oBCM9sa3qsSoswkOfXsZGTotWvXOokTvHLgIhAgOjvm7
yTmLB8mBuCJiDC0XM0dos6ImmgS+tGFOXakdcgnwWYmFOt+hNM+rCdnmWPB4
+MkDjlTuHVsnJYFmIDosn5KQIMJYDdvA4cqz1kXPqLA0wuC6GF2dWwCgkZ9y
OPx4a8GYDoBM4kJFvmrY8XYESVVY6yMPsiGeWzAON/AbjkXU1l+bUWfDn5qo
dyG+nkC/skYK3ARQgdJGGqeJvOBYlQ9yDxkDORTuwN03QnQA5g1sr9yVM6Dl
Fbhz4QPWgZpcFHEMKJm5JlC4rJIrb9xwyi5kO0X+WJ7STFo7MybIccjE5iut
oJwWhoV9QueQdm719HT6G8m3hu4zmJJ8rlYOfs5FbLrGGB3a4Ct+olytg3+y
mOhaceT8IJzgeBpBuN5mDA551e2y5ceN7ak3aVwiyeeBVl1zA4+5pgT2wNdH
mDxPFGAd8C18lUZQQ8+nzjsMuGng2f2pHrOQvqQugRjq+gTLKsKUJiCU9rnQ
aP/BE2oo6C06EdL0SKYLI/IWsoqVb1IKLaJGTBE1B/b6lp4xbG5j18ZgVRWM
Mq06xJyMQQ5F3oLYVaYwmyL1rAKnse+cxWEe3TqhmWrUgFyM5YRjwbAQ4UTp
Fj62K7cxEA8fH5I+f1UpfQr3yXRjty7vxIaRM7LIkJrmfahgp1AOpx59PMgG
rfI5NHiVtlPspGhorAlhMwr0FAsP0FRzm0mpJpSNZhtZaYGxYLFNXD5cW6Ih
3yT1boldOiPDaXLUuG3uw3ThMauqWnCMLH3OZgeFxbaxuplxDwtulxDLGHBi
xSedXz91C1ilUF0kVDXMxBE3wk2KrWRemd8KQDo5XlaWC8beS/NtODpxKDTs
kVkXEOz2FJGdKOuHYAq2Fp5tUtyLDrZuoVI0voSHBhlArdiQ4gLmuBczt/O6
yEmGJsf9paXNctZwsF5InnQa1itm5Ag3wYJA0hXbHNE24c6DHWi6nlurSy6A
Zp3YtnfAGMnHDeG75F76w7qYZuLk6Yj8e324t2OcEjjCzHVnCrrAXe1M7d/e
lakI7ldnCi6SGiW6wd5pPzC/hwehbfNhvFyMpRfZN72XmMMs895H4xQJuNVm
SwDSQM/O5b6Uuqtz1ynKptJBHEACkKBqmGpi671xe0q/x7ZS1jPK0htiIAby
dzS55jP2fPkHqFF2EnhjIeKFEbXBuRHbw2Fs0NLP6oLqeKYB9WKsX7snVXp6
wxaHvWd7LoLsd7nFBsyPRzRvSEjeOdqyEAzh+fx6kE3aWvtLPkXKTqeX3KFm
Mg7tcADIP8njFIRHx3X9HhZYS1pRu3nvdHAfxU/157aECgJH4GrpxKuyj0re
rqVcB8Y3yupVtgPVgCv94PDrI60VmetZlO69dSOZijInkmfJhtOTaIuqP8PZ
WlxAtW3iclWdP/Iy6XLMmKWv/vPp65fHZ69Ajkww784lPItNWD1bo/vNrpWk
ln/l9tJlbVg7pWNxLHkbDUzC/y5AmwojmHlFOLMS7+I0AI7ChP1IIo5fMDZK
hSAH3IKfMMoWrXJsDnEwly9OzW/A7t6uu/LUsbZEXlGoR/jh+PIydseJYg4E
GAOJ57BiYIfW+bJSNjB+YYaTfwdGcFthfOcFgo/KvJ5v0pfHJ47InMT7wcH4
8HB8dDR+8GD88OH40SO2LChkyrddivW4fTyawIJ/cHB4eHT04MHDh48ejVD8
4668GiUXi2K1XL/XF7nGeS5LqXBv+Et4i4DVwPegSSVa2jlXydO5IZFGvs0V
5rD323bz08V3B1fIba/5BPkM06a4HPswgoQsiahngmtmrwV2kThbaRN2hqkv
NmMqEpQiNCecA06LGWmsnbcS2/gqm077ZG46fKYYsFL9TO3gB0IZG6NIt9fg
7mnM3raj8AlxITKedReLKpmOoNND1F6wYQhQmWciFGPDQ+ug4Twwlo6q8ULb
UL4Vl6CFOaPQULSps/Rms0I7jN3ejk+Hs/Ldi+dREI02P2mRxHrzuLLcjhXE
atb2pzWoIZyQOBH4hIgbVviSQo8uRywrZWid/l2uyDcxOkq1sw0VmaPlOMm7
juTuQuHvwVpaMxksmLlNhTVqHjQlutn6ZZbVuvR8jtjhwl4366BRM+JN5WYQ
N4ETkeX5reSmUMHCrzBxXJM6mBQ1SMp3DOZUtXW/Cd4QmBqwEiotyVaz71Cj
EMUhZ7lao7sUO9ViGCTLqQIJ1w7+F22EdJtWm1pHNdyslAphrWdNETWaQfaD
PC7pRhntCEdj8kjms4RVvqwzBH+ny6KxylewSz9FKpwIezMtjTF4y13Bqnqn
zce2OsC51deyZC7dhz/QLbtzUbQsF9+PhqvWI0Ny5BxLKoTbvCxG6NqyliIL
js8X4yU8NznZG8wtwt4QY+Po4Qwfkgbo8mgh4GiU0yqT4liSVNJ1CReVbUFq
rVdKDkTQao3mvWCbFyvsvHO/S99Ky/M6RCFZSH5iOumokSI2apj0JpNcsfSg
kPNoLMwl5wJ3MEG7/iVwfTGlROYxRXSUFc+X3mjdPjsulaCvvB/tmBgw4rVl
tTgSdSb3UwoIgb6yjWlUnnRoTs5VXJpBFuJ9fG4l1rnrQXCk6TREtUhVyQTE
t9a8SsxWxGqUlcXY6EfE9c3RuEhM4aDEU9ig0a99srzjXK8tCCcvjABHy20I
6JbWhm6DcoDfQazSpmjXEXqSyXqK1XrBgB0cHWHBawohS5SEhqth9nB7gluy
lAllX/hCVWPIqE+cAwyGb9EZCuJGDBeca8+jcsdaU1SzLpq3m+DJZtwWOL61
CEs6RRtLu32q1xB7ylifLQ5LqnTrM1OeYun64AdvJ80h3m8098aBRXAUM1Sz
ilMVbc3Avylxbm+2MyCSxZfdqT+eMSV44BjYIyk6K7Bawwpq8mkfRE4b5bsd
9/CbU0yGsOQI7C/Kq04x49B5zHqqy/ciORc8xVTiUYjvK+0Eg//oZkR2BKwC
hXZDRJF1UsZy474V4XNLiKIJfbipaKiBuR8rgWGn2w/TUmogyvgChB4dN5fE
tnxFhdVojyhEnHz4ADsb/JCQPqZSqRaMT9njXMb76OgJ/ApmIEDDFdECF1gf
wRhpYv23fT+mgqrfQo8jV+dF0X/CAu3Ys4xvNqUasYSihFcAGbIXNsbsHur+
VexaJJWrHISMVP0l9MXpzX2hi8mwBTjcbbEkW8r30lK9R5qVoCCbZgfLv2I5
xDsWKno8pMrvJkQNAXTLRPpFKwB1j7GsaoGuuOgdhfRVzOm7DBIa+qwNg95u
BWl9vyxHQQQ5YhKds5YOFj71wziGrT9F1ipt4zfdatvH2b77ndYnrudJkOJU
mOdIWlz4QQnfbdOACVfMJY3ByXXivMKIttzgeiPS2SQsrhoZf2J+W+JGWPWx
couTHvJkMbOy0JPEPI2X2fvhMffLkP5sINjquqL5ei3oSY4HzdY1bSTmKwgN
hpuE5EmjRWl8dNBWkyS5mHES68ZDjLKKOWd2nYKiZPw/V25N0RGwN2OvTaYC
nkGADrmF1tnbo9WDAT+KhBepPXJHB1J0IC1rEb9H/7BVw7eY19k1w4BACN6m
joT5Ha49iB0CgKVnx6+OdzlZL7D0+432f7vcrLCpL/1Y7HuuGiC+Kvif28rS
HdaPYPsW8BcRnG24IziDOl3u58nRExBwRGpq1xHJJvEwpqeuy+N/+H/4SM3+
MH2lkcG436CY4E5nLOC7sUYl8dYtyx1CWH5QzoHrs+Wc053EaB7REL4/IQcq
dUOIOrPDb15gdMjGpn1beFcV2tFP04h3NJTl0Y92zkI0BKW+ROY/5bt8ld92
1hbZ9UCNfqSdYzCez20a1HFcxak7phddm+7V7Td9ftQlT/ex9vtI/0hAlZ5S
5m2Co/UFrW5PKmx0G/JaY6MtgrdPn08LRV37IQuJGWdXJ9yvVGq7ow5FwRLh
bgtMnabpMetYIgW7RGXUea1x6vsduV0/RqRGoMR2Oa8GuxTJ9h2n8DIxGYj0
SkW33qHohy+Ife1cI0Sv8nmFOFgy8RC31w/fnZ1+8vzf+DINlQShaPzf81Rb
4T0WEl8/ODjk1nuXLuUjlqkiurSPznwuxSpq0q+oRNc5ARjLJCmE4ZOa4CF/
DwOAA3G2+wmxxBC+5DT6//AZc/5Q3Jh4XP6eHrx/+AD/3yzd65287uFHXgva
+etcDU5lfDX8v0P4f48O6D7H5+FOSpMT7rSTvIkKufeU+Rf+6IcFxpbN/+X5
5W9caILPb2eNoxV0ea6RsrZEXU8jPiMRrzPtx05EW0I39ZFW6hU3AkVCX1UU
Ksle5hmBoD8l9APN9RaL9RfRWtMdZGs1uJVgquTxhBnflq/EiuDrQ1xc2Zvt
d9/YlRT7G5+a80AJSMfi11Zv81LKKY9Pnu8sG8VdcoxmkSyp4OIxRrDUNg5s
noRNXzRph+kjWh8x6bxRxf0BzJsjIYsEb9K3PTDLksb6YVFdk/y8wLpDRpy9
QrrVV5Qi+HBvi4/2H9rBRu/1G5+v2zrZE/8Gv3dgiTm4AKt+4kEjwdJ5RGAl
8pnIAsWfIFJPgDpbVGcUxsIPBoGbkmnnHLPvx61uONoIMHT/8ByzjANfwKZB
u3wRdcXiMLEQiMFe69DmbhhZFtH4eW8tJuRlCaVEvEmHVaSHHeUu7OuQSlkR
IEdQC3jasI6KWjfxRlpUcyxN5FTbkHcXfPbrzg+l+t41ctLxL1kjcKVRxD6d
XDD0CHmphyHZZ8HsYSBhHh4e0Boh9PG+Bz5weJ+tQwVKYCzeEWxj8vUrsTuw
CESqnX7b8w+e0vOZCwHdXrVYtJeOYye4n8aUCb/xSU/oSc8DLpXaneV3d06I
mMcMevYVyBKcewqfhryTif9n1s7FdjBXE/A+XkqRiyXN8I7n1DwGnV5JsHHf
ehydhsQwwq8FMrgD7cEMBuIag09eEaQ098LCBx9PME6yyKfzEGOqhTtYAQ17
hv52TK1N3zJssCMwf8FG42yBHnCJoVc4+evF20K6/K3aDmsVuRpcHYijY1OZ
06iZhJIoLcLsUxZ38AXm/xH772ve/0yObezzhzSdR2MqdRumP2Mugdtwh+1D
+xMNoLiEWW3bkVz7Ajuf7MFmqWHSpZTAx3csCCAt8+680Y/VsprnGBNjDN5S
ICVsvzORsEEGt++j9KR2v7DpcO+CYluQcNnP2wlV0vHOvKkzqqEV3mdFlVG9
zD4WJFWrYVsN4X/Sd80I45j4J3PaGOcVV9cqYHAkSmEMJ4lCVXysJ0L+Mql5
97xhZg9D+AT95zhDs5qsrMBuHx8n0ptUg4kSnbuTTPLOxpkV73/ztnnMqg02
Q2uUbrJXcTdT1rICAb6RsDPisILR2PQH6bwi2BLBI+gA0aiOpyh7YSCFgPiN
M1pwE9eoBidYk4FYJysmZmfZfH+slv6ruHFZiVW8jrlcY81+G/KEh0NvQpAg
YviW2haGN1lgsrboMb5GjYkZ192QrTm2WYxLnN+ywwrY4YvtUP1thRRCw3uT
x2xhNEZ0OvAkNNYgoGHIrRJ3LLoAAhsfjcfNuHvStOCP6CbECSsI08gqtjvu
R+8e9h1refpwR0BrDDZuu8P4hCGJ8flb9usj3q9ahKdEYNQhMGwbLcYj1kx+
tMilHv1YGhfUUot1RWLiyhajR2Ws2aSutIKHajAoetQLWaXOVZQNNClI6b2M
qxxJCzLdDeb83lN62QrskHeQucpRWSEe5R1rQlAXWiVnOXgB22IigLI9RNB8
+DTQXytBRCB2zRo4N0ikxETFRoKeNa7v60itJ+38YJUSnBMT4hdnpUvZQq6Q
RQuyGA41GNYODUk3D0XkUvC6xQlXrRjojpWJ6Z6vvHGkoUWrEMPAXJaCmYnV
iX2XM6Vw0PZPzBq95dOEmB3f2l7mVis8FI0q/jDWsM5vFhTtM4a6NoCc6EXn
LNZJAWgXAYkchxhV5BU0VDYVlTHj1YRlYVuP/ACcQUeXYjTchlZnhmOtLeG6
D+PNmTDR/03u+8xQdAbDplzWwCrKm0q0R14ipIu0jcpLHAreFKlajTw4tDTG
yWUbH9aTqipxzDfZeuGKfXlNkY85Tb+SGOJ6Ejj6Q3k0PnUHNp4x8cVU2Pmp
UIJ+G2qtlJvfo+NH9LzLm64V3BHioWKXL6CvOQaAbwxu/T5TVzk89ogFlfF6
YFxAOltiYAU8Pqk3t2IPzJ6tBE4XZo3e4jXyO/yrcr9o4YqeSqOTs9J4MSfo
bM2FSBERH3SOKHJJFrZYgphoRhFssdMlJfHxKiYaEKYHOMDX74pq3dheoZc0
TTDmyWk3QiixRmhrxRSY0R6PZfLld6d4cE7Oj+l6C3E0mqPgRaoqkiViHtNn
L8E4qdnu+W1q5OGYS6DaUJCgLcCoPh5xPzH6WQrVtANWE2N1fdNntElR8Rq0
WMUMTkmMY+cfezNvu+9KoNylVBrCHtZkS4TCCIcOwulbsa1LjhSlImabCCXk
lDPI6MBVf73hDB3NMhkpIdKNY798caFGRad9NuGlby3fIYJSspZccLCvVQac
bdYWuGbdK4UBzprW3EdTKjbLHS3IeSe5PIAKSulxOUdPg5IBzFkshJ3mMfXe
CHQDhW1PTez3ZMdTCJiVYihkuXjzR1VhNOkkYdBsuLQ9cWYbrqf1BD11l3ss
zmfWC9L8aPJQfdiKl7MZpNrlguIytVh+JB5JRyucS++ka1VWLSe7TJrSC/18
Af5ejDHIVgy5vMHa2mAmCnoN3aLIdiXSGQ5PfSXEHc+PT8cWCzUKSa0tpGQb
/7rr7f624/uAju8x2yfmDZEG3KHmcce9UO/rOt9U8HcADLAjyYE6DWqY13Cb
Mc7lmpA0ZJI0m3KikhK1qHBJtr/V8zpy7wDTZltuAAP7C6Nq7ji0TKTUkvT9
LU88ZNvZREKnb7g1jb3exFvM2uVIokRZnHCDhW5uzTeiYMcswdkWwvtlSL3/
m0Z6oHNjshN3T1aCezzhhk/aDEv68fganIDvgXucLLIYl0MhT7Lce8FyL9Qr
1/qcgklw6Q7kBYTiRFp6V39B1GyTrGmHMBDLVFk4qfPm2szus5v7VaV+Vbq3
zKnnPf0dUVWyD/DzD7Bl+Ij19Wmwv+A62M6LjbeYMVyc34oZ9TKrJxWdjj8s
QFZyN4ytSNp9R0qED92/r/jKgAsinSl9uOCSPUYJBsA2iTB4vrVSYGy4dElw
/L0ExVYkz96tMrSASpRmQ45z2DUgizhj+2x30ckZmzUhruw2qtkhGynKQoSR
dvKuwX55O4ruiNtyj0twEL/Z755OtnycnERoN97iVVbXYAROEXnS41/0ZAKN
VSa11jiBn5tnLGqPPAgWutPUkg0kyB6dbI0++17OBZsJPYbqY9/It7l900sn
dGAKXiLZeMVisSbbLZfyOkYg7agfW46CG7l1ypqbrF5pTPW8VpiZ2Mat9YUj
xnprECeT63Z/FOLoKO7QpHhZad5JBGukD+EnhLNXpil0GZYrjcT8EeaAkL81
6nV4qH6Itm9+R8BNBewbSWmE/DdtCVHPWCUtoEmZc3TNkSUQcWOGg6IJVax4
mvYiYOtnqgD+9MvnceEh+vynX3u0vxG1JgHOBQNUaSBgKBXdmmotfuVIHBXK
u9LNrRhXxI6iKm/HoeE2tFh0c3lyHv2S43FuQqmJhlRqk5MToUJh8zljSHf8
3XfDO7w5Vf/QQT9vuFaDaf3crdjvCBvBD8eiYbYtDpym9zFW+1AubeyDi5Mf
T+CmGQZeOdeTUTbrDoPArjOXA9UlF1djTjKUjwoYWfSoWUB2g9C5NuVILdPO
VaUyFxpG6JQEKJhXbmZBHNRFQ606ue1VOJkDx2JfTwl6xTGDi+HFadq8zYnV
1u61CxhnYwwDJAvUKFExN+mlARdARehiQhLxL0DGLcB2D8lK+QKv/PWOj78w
iwmzCCpG0cN4GM+eX/wwkDkkZkZxOl+eD7FgwQJRHOkh9x4ZLYYojXeVO8pX
BMO4dy99XaaYxeV8s0O0uiYtVgHSSf8eL9rhxbuJcv0bqcvXTx48+fgxKQL6
YKM4TOnZ6fxPhy/CdDT1b9G9xaBk62lfNCs0XU1aoNHle1J2mr6OiIoVX27g
HihBy8bBiBkxtFeM8pH/pSthp85tUzZl1+xauQoNvt71XooD99LCSjDbuE4N
gW4DA/9i4eq2Y+KPuzpuhqZWLMq55VJD9Y8UKYdtwt3rGfDWMsu2FFd26RCk
9yDfg9EfWhQPhsTQxSrYedZuA9z718dog30dCkCd0k2Y3gqxKdqKFzYdmN9z
3F1/y4Wlj4PfSuFOLdjAi8wdFpAHibdaM1u8tWh32TmlX8E9ILvUMdoJ3xBW
CIZUpAArmD8RzfA0a31dBFOc/mTVmr7zILU3227GpEaMiDYajPY8lTgqKVkB
v7x5fvL65cvnr06fn1INHl9AhyDauJ3TR/0EsOtWViv+ohb+7PQnZfNMEoy4
brMZiGA2WgOKWLx5Axt/Rw28NLtk6HldS0tvY7DjjtYUmbgtyMllmGDuia/j
DBZvWz6pJC08OpccAizLdNInfndSmJ/p30rRD1p29Mvjvq5kMlCVOtNbcmYw
uqMFp12UdpB0SciFLZOzHm2kP21ithrOFcslWAME40msW/CNp6Xfam85ShTC
sfWV1jNz3+NrRwjBB8TKQYedMj2r3/zJ+NVDO3RxongLMYjKfOgt/o0gQZ06
0aYhVHjBNw/tghRdg6+vPY2IsR5mEDcsl6a8ozwXnC2qMUPLlQ1MmOFbqeo8
3idSbg35D7TW2b1r2IN1hIK2QbC2UyHh2triHv3wYVbMh2yFUEdDxZOoOqB8
f0VtU5EFkDztbSaJ7d70ekummjcGV8aI0zn+r0gB/Cb/6xhf9JfZ7OBoPJ5N
fx1jS2PKvp6eJyfVNB+nPzy/TJTbb5xuFQPRd/+KxUJjnINvbAf5L8AUvKnq
b8SBL6+b282D6ap69P59/gAUXefvUXY94jcgmgLENDdjjhT8Ygzp40MeLIyS
YnnD70nqjr0NsI/3GLI4Ts6zzaLKpuPkd1qmCUOJ7vf7Z/oCXuQ+o5QFjb/3
j71AL0nCVG+9AM42yAw32xzmHKej0cjPPFZ9VHWzj/UwyWuudhynBzI9R6OD
R6nMRXQH90ubggdPR4f/87+f8C5AcH/Yhwrvf30d2IP5yUqAx8ksIoHQ6kmx
yeeElKR9ep+rACJPSqrRXU9PLpHlbjv4Qfxz7lu3xews3a6Y1YNb61L+Vf1m
32RLEutdBjXmnHAEyUHlGLTgflTrTOyN0gPcKyERMi/PYcBCxMs22VY/2QiQ
eb9x4gxLl43/gXjcLIQUglCS3jYQisYWtaaaQmFGdxC6x2vDBncfUxrMinGd
exmhcpfeyGj6mCs8IlDkAn4Y9XBBOIMAIuChSJcCcuQbLta2crlGOgS7Los2
um0hu3dnb14eJAaBynesNiri6+uPmCZGyrfWDddSWmWeAO0kqmT8DRru04aJ
WZR90u/77EhIbp6HAMJ+2oTMGWtcrpinvCNuSybC89XEVhmSlTrfLmugw/Ec
rMQS6go+sac6yLc5M6hL1SJ+HzEqKnlfTDBJtS4WcJZQ7I7twuNm7chqH94w
bhfxLMkEXcnWzm1OJbu3Qh3VoL1VIYqJZkDq+zOZLOYuMYu720iWINkdETAc
JnD/69zdlTLDPe06tHUXd8IDMazzDVOhbrfuRDBkSoyJUyI7bRa2eJA8Xeki
DQwxCtlL95yhyWIZyTq0MrP/bUpVObgW32HGqsK5o1NsWXWJv2DET8m4hagQ
00guPrcjhthhhb54dfYtVwF1E/n7VhsJFlrmoxEY2gjNXu784q6IhACHAie7
xBQk+KWBIkoqflH0guv5Hc0Nl3xlKmSYzVb6PTPMAfdhE4tFTMUaHsOjevAL
V8Qrp9xyKwMKEVNQuMB2Hw0RIOJ6fIvPfC1eoNJXoC1J/iSeLaf6pThY4MzI
pSYWmHBVpCmp5jT9nZgcy42lPWZV9fsBaPaB+/pL7JiOERPu2NPHhUa5DUY2
rjH6j+eCLCiUUxSQpeCdH+L/ohF1o/zrMrsl9jgueNV+XgxvqzEoWOIKSgSQ
Sqkpix5n73xBflbP19sJDiXzMZpwQnxwvQlmjtQD2Ao3gzlFRMrbP84UdSDr
T4F2CfD4XXJLQD5WEZFI31eJOMwX1CxSAlFcZ+H21dbUDlRRlzQy3xa7VB86
agAQevxhghnZjKi9Dyg8gvvsvaqUUFixYmqEcP0/paqrWXvLhHH8W51LXTTV
yCyBpbQO78N3CvOntIrpFe66q1SlsczS1c7jctX37ON31Ib6vkIvsnK+xigS
1ogev+jvjHxmC3awSDGLnDAHD505mivJ773LWcDhOnlncQcSlydxmUlPG8FH
Eh+WYRsCGQeBYhwXgqbfPtxDMgknrgkTDp/9uuuzu6S34uUo8Mj4kFDmJRh2
mHWqccI4nDQkV3YAgy9oXP2TjBau8V7UKVBjq1GPIndEeRGIlN+SkczSMM2p
ox9un4ZoXHUBQoxCrSD36sUSZnJdy1G5rQsswECaSy7eCVh56plDtSdo9YzS
70WFYm+ErKaG4x57wFUgGEkx/p1R+ivHyp+/J8Nv0anKO8Wykz1Y8D63ImDo
O+qsHomD9OTNWW8Ahvx1vkiPHg5Pzo8Hvq2HkEnydRIabdLDQXpE7/aAGk05
8hBiCqe+5HTHAumSyiG2OyaJiUszCAgF4rmBEVBN7q5+DKGmBTsaDF1nFTgd
mzbXfgPZViMKpuJwNKGy6hoHNikt/VhCGNDtC0aXku6NCECCaxG4QIw85GwW
4jATpHSjaBvVH+TS8Z6Ccdtnjvlu5yW8Pw8IDyotG9KrSUZ5o52gY5JOnSdV
aoQW6/NwirbL3oJzTqhq9L8Ued8dETOHUe2X9EWmHqm2svguW6ur6IMSY8ga
S2eDbVbUSzfPnNYbMQsYxmapI7l7XPSgzhYSq5BHxHxdIdzgy+ZOmDMxagrR
UiNTJmol+GFjbSI6MWHfXk4wpiR7EL6HXfXQX9KeEuixTrFGlPlgmWJtlHxX
tRHFjnZjcX5CtshrrW3NprBPGF8qhMFZqPXZBftgEfSzoxG35lO0fTptxB15
DnWnRQWqnFuuF50SXYZGuNS2jh1+TDvQdVyHRqnIIUjnyVvb+Q78wtAe5pmV
nPIzuliRgTJml6ZyCRF8AXYgQ6sUejYNDzbHgqhFNd6/VYf0JUz7q/Visf/w
gCt27v59R0kZQT+Vb7FT9ClwHmhUYTjGFUu6SkNqLMkeWYF+L5BlEWFgY2mU
x93FFoJ8wlfHNNSAxa0QXIEHSTylTusGIL0p06xYao4qI9Yfrr6w1q6jRIge
XlZgeIQ+vWi/SfHXEJs+Mkd74kmfKdeBEX3Lvhm6npQd6OvbBzIlmPM945fC
Lu2UaqHrO5VGYohpp5UisMu/y0sOB2E0XgIABc7UDUf8Q/Yt2MxEylhHOQ/N
c2QE7CEtz/1ItPIcZVHriAQauGJyI5Eyl2HokByqFWPvA+OYV9jzriFmnSkF
b8bJSaD1bBSfjKUTlAmdrGuMnV5cvHCFMKFVFiEzDp8+fQQzm78DQbFAInii
+kE0+gQWJh3ars7L0W3xtlhhimdU1fN9/Guf6qZRiqbfEpEYJTekSCN6mpWH
cIcEWxmWsBRgkfxfp1qdkoaHo0PXcePw4eiI+nFTEu/w8IBy9JblJ2nB1Kfv
ipqKS5RiD+4HL/x0hNnD4Xf0k043c7grpoWwaTnjfPZOj1891z7kjx8/fYLZ
EnYMDRWDkx56IoLcWs/xtOATkVueaD+5FJrwf86ihJ+jfYBJbqnWI5YumsG4
MWXYy7t44qm7YZToi1KcbnZgCo4Ojh6wuRrMSDigMPc02Z0OMri9uWpKn4e/
2sclIZzgIJE4Fcb3Yd4XGQENwVaD4VONsKS46YH4KqGDj+DvfszhO4ysZXPQ
xIMAC//0S2+Z+ojuqho19fmgVwFbyXUnWwzuzI43A+NYmauw8jRQ9ZWBg0xo
B5bZNI+I16+0Bz1xW6shMzp+c36c/u/I0PgyK8GaoUH+8m/Tsmmmvz5LopY8
EmNdBHKx1brGt8FxBuU0QheKbzBOGVwVE+1QVhhXFZQdNax//PgRfRjI2bQB
qwkfgTz0/Fv0nnVvLHlYx5mlWp0JGNirIhyIu7esydTBSugdWFH96v7JBdqX
N56An0BleHzIhCJdsAFz7T1Pl3rgUoQWdN9mpPfiLoS0Wg7BaSJdnTMHNBVB
rYyKZDEIHJORPwtQguKjoqGxzBb8tGPqpIUTSTgC4XYU7YSGNUUUnTniYH/U
/nAhrpc9cUY94SQsjyVR8gPOb1/4NgXxDtTcNscn/VcMf9IrWdMnWE9Tcyu5
RcEcXSCYhhzBDgdmlRV1ExSbELM06xlW18UDYG4k9HbxmjQ07cMLuTEKsdop
JTrLpmvsTxnCQlLhMrQCJFb7HgykwScHt/gKFukrPf4hqaC4Tdr8rpOPTgVr
Ir6FXhx+JlcPrHMod0rDCaT3EF6FcEFoOukNuX5CJ3yDsDuxOE4yCiZnCrpo
E8FvlVhHg93EJAao6Q/rUIpah0L0FBzpocf2hzwn2gvXymKzMPTBHmPuPHd+
WFyS5f1BwgsWNw5xzTSJjEIyHQwTJ18r9szxS9Zs3oikH4LqJep1mjXJG4k8
6g17aOSjoYBWf81V6HBlaelOGcQKBQ4mJdjPQ1OK+AhR2cxct67HD4YV3KwV
0kWehmSPBAoqtrnWr8jRvsUW1VgdWWrz1MLOXL/TjyHtgb22mI5uUHcNR/xy
Tw6eHIxQdfbUrSRUFi8cHbEYpMUxAIoy4KVpsBnxvXp0b3pMj1AbbMWHNWO8
h1JMXz2+GrsOmxzx0E7cj3XfcCc8tg4ePUUOIOsMabuGukW4tdjrjXv9LpkL
bAUw5Pdg1STEGZByUcazslxIxD5pUknzJeXGRVoiHJv1OHa9Iy9+fP3Ti1Ol
QY7oD2g/bHWepNzN1cNPTNHDeIqmVUt10ODsLyV4kLUycYeHTHBmMzat2mi+
Rv9Pzhe8R7toMnkVOpF0Ee5ZEArHYgNGNqtvLYy28YMj+frh44dPpHvpKWW6
KTJRSt4XjBZxEwMzMModTx+mFlmgBO50m3O9FIXG+2y2c1Ff/nRxGex/7XXv
aXu1iJd+iQam7NfAps7evJuG+1E3gMbKpZbU4Q/mEt/lapBexYRE9gn12IQ/
HOkZzLyy1jVuQq1XGIcUQFDdwlNl5/CzqI8SrxtqiL2mj9ffgFDRfaY3GZjg
JJGKm4eCxqdrIx12PSSopc/TJ4+J8mzhZAS/74RTJwimKTjB7zHw1KwGzH+u
0XGWb7fDHByS79dkcYR4T+fxkkJgeaxpM2W1xqCHRldYPrtDQzI6MeYjCcuE
7+ucG2kI1NUyPlzrTm2JWHRSU1a6m7l0nfcviBed+Yw1BdU1oCw2zaJEw4MC
MLXErzet0JRPoqIdxAEQVhDNBrYoY+kWxys4MYdXNeFEExs2x0JgP9hacJOY
hFkkOOYAhv8NzQly8zR51LCpO07YSntk7ziOBcX/+AGGRJhYaYTIKrguiEYq
L6ckMgitkW4ILiWHoC1SwJHt+yyZ8XaKseze68DoFLkX7Of0tc2gFIskBF1A
vWwHksHiWk5ivaKM4sFktpzauIybkMrOaUCOKHU9LJjqoDJMCIFBkvH+/uMn
D44ePxjhIR9hLnU4vX4yHB6OHo/8/O+nGGEJcVxOITKkCiWvz8Ly2SOH+yjd
uzma4K/5MSI4+vp8DNJky+yvk7f121nxbrL+Df87Qn2yPchX1d0qmUIf04GP
T1s+G3ddTTta8nauwXFAnmGL442bBHDe5hyrrnT+b3zDZspGTMhQZl8iS/cs
D4gkaENmqexHzW64+bwLt1z8eHz06DEXD2t2QnSjFMTDhEou9+GDh7OHh48O
di1pnRUPqvVfHmajdZ6/xWYgGZjX2fX19SL76+L9X4/+srz+y/zRX+bt7Oht
9rfFX96CIbuu31eTyePiaPL2/YO/Vbd/mW+GIyLJ+uIdwlsiRjKyhVE6igPX
yLL1O2oQZRGKies7PONyP7HfrXHfH05OvL73REywFv/56NGjw6d+fkNb4lCw
QV4PWBMGoKAsQ99P9f+S6aTGUDynFrmFWdP9qRVSpOSfCc/keqWiWba55n3w
Lm4D3mANM+ER+94gqVZo3q9L7hfR4e7bbtQFM0jpdleCTGZLN9R1vS4WcNhu
8uxdQRNszGOJiCy653cYtLkoUDtkf8m4ZvAlpoxeT7K3DsPd2E9cMzmtCBqW
gSAZDYy2mjMG0kQpha7hcWfYGO5Ndb2QClaqqU5/BBf3rTUxuDy6fPPDKODO
OCmBLL1Ui53QNZhG+L8BAw1G6HlAAQA=

-->

</rfc>
