<?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  (Ruby 3.1.2) -->
<?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-05" category="std" consensus="true" tocDepth="3" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.0 -->
  <front>
    <title>CoAP Transport Indication</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-transport-indication-05"/>
    <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="2024" month="March" day="19"/>
    <area>Internet</area>
    <workgroup>CoRE</workgroup>
    <keyword>CoRE, Web Linking, Proxy, URI, aliasing</keyword>
    <abstract>
      <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 these addresses.
This document provides terminology and provisions based on Web Linking <xref target="RFC8288"/>
to express alternative transports available to a device,
and to optimize exchanges using these.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Constrained RESTful Environments Working Group mailing list (core@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/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>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>The Constrained Application Protocol (CoAP) provides transports mechanisms
(UDP and DTLS since <xref target="RFC7252"/>, TCP, TLS and WebSockets since <xref target="RFC8323"/>),
with some additional being used in LwM2M <xref target="lwm2m"/>
and even more being explored (<xref target="I-D.bormann-t2trg-slipmux"/>, <xref target="I-D.amsuess-core-coap-over-gatt"/>).
These are mutually incompatible on the wire,
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 to indicate that a device is prepared to serve as a proxy;
this document solves both by introducing the "has-proxy" terminology to Web Linking <xref target="RFC8288"/> that expresses the former through the latter.
The additional "has-unique-proxy" term is introduced
to negate any per-request overhead that would otherwise be introduced in the course of this.</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"/>
and link format (<xref target="RFC6690"/>
(or, equivalently, web links as described in <xref target="RFC8288"/>).</t>
        <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 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>hosts:</dt>
          <dd>
            <t>The verb "to host" is used here in the sense of the link relation of the same name defined in <xref target="RFC6690"/>.</t>
            <t>For resources discovered via CoAP's discovery interface,
a hosting statement is typically provided by the defaults implied by <xref target="RFC6690"/>
where a link like <tt>&lt;/sensor/temp&gt;</tt> is implied to have the relation "hosts" and the anchor <tt>/</tt>,
such that a statement "coap://hostname hosts coap://hostname/sensor/temp" is implied in the link.</t>
            <t>The link relation has been occasionally used with different interpretations,
which ascribe more meaning to the term than it has in its definition.
In particular,</t>
            <ul spacing="normal">
              <li>the "hosts" relation can not be inferred merely by two URIs having
the same scheme, host and port (and vice versa), and</li>
              <li>the "hosts" relation on its own does not make any statement
about the physical devices that hold the resource's representation.</li>
            </ul>
            <t>[ TBD: The former could probably still be used without too many ill effects;
but things might also get weird when a dynamic resource created
with one transport from use with another transport unless explicitly cleared.</t>
            <t>Whether or not "to host" is used exclusively along the "hosts" relation or using the more generic same-start-of-URI sense
is the largest open issue in this document.
]</t>
            <t>For the purpose of this document, "hosting" is used in a transitive way:
If A hosts B and B hosts C, it is implied that A hosts C.</t>
            <t>[ TBD: It may make sense for many other relations to imply "hosts",
e.g. any relations that occur in a pub-sub context,
but that'd need further consideration. ]</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 (in the example, CoAP over UDP with an IPv6 address and the default port),
but otherwise no big deal is made of it.</t>
          <t>The transport indicated by a URI is not only influenced by the URI scheme,
but also by the authority component.
The transports and resolution mechanisms currently specified
make little use of this possibility,
mainly because the most prominent resolution mechanism (SVCB records) has not been avaialble when <xref target="RFC8323"/> was published
(see also <xref target="althist"/>),
end because it can not be expressed in IP literals (see <xref target="newlit"/>).</t>
          <t>When the resolution mechanism used for a registered name authority component yields multiple addresses,
all of those are possible ways to interact with the resource.
The resolution mechanism or other underlying transport can give guidance on how to find the best usable one.
With the currently specified transports and resolution mechanisms,
the most prominent example of making use of that information
is applying <xref target="RFC8305"/>'s Happy Eyeballs mechanism to establish a TCP connection
when a name resolves to both IPv4 and IPv6 addresses,</t>
          <section anchor="paths-in-uris-that-indicate-transport-addresses">
            <name>Paths in URIs that indicate transport addresses</name>
            <t>For the CoAP schemes (coap, coaps, coap+tcp, coaps+tcp, coap+ws, coaps+ws),
URIs indicating a transport are always given with an empty path
(which under their URI normalization rules is equivalent to a path containing a single slash).
For the coap and coap+tcp schemes, URIs with different host names
can indicate the same transport as long as the names resolve to the same addresses.
For the others, the given host name informs the name set in TLS's Server Name Indication (SNI)
and/or the host sent in the "Host" header of the underlying HTTP request.</t>
            <t>If an update to this document extends the list,
for new schemes it might be allowed to have paths, queries or fragment identifiers present in the URI indicating the transport address.
No guidance can be given here for these,
as no realistic example is known.
(Note that while the coap+ws scheme does use the well-known path <tt>/.well-known/coap</tt> internally,
that is used purely on the HTTP side, and not part of the CoAP URI, not even for indicating the transport address).
<cref anchor="svcbpathparam">It is conceivable that a path such as the <tt>/.well-known/coap</tt> of CoAP-over-WebSockets would be indicated in an SVCB discovery's parameters similar to dohpath. This does not immediately help with the question of whether a URI indicating a transport can have a path, though. --CA</cref></t>
          </section>
          <section anchor="existing-use">
            <name>Existing use</name>
            <t>A similar concept is used in <xref target="I-D.ietf-core-observe-multicast-notifications"/> (expressed as pieces of its <tt>tp_info</tt> parameter),
but not expressed with URIs yet.
As that document migrates towards using CRIs (<xref target="I-D.ietf-core-href"/>),
it is expected that its transport addresses coincide with the URIs (CRIs, equivalently) indicating a transport.</t>
            <t>URIs indicating a transport are especially useful when talking about proxies;
this use is aligned with the way they are expressed in the conventional environment variables <tt>http_proxy</tt> etc.
<xref target="noproxy"/>.
Furthermore, URIs processing is widespread in CoAP systems,
and when that changes (e.g. through the introduction of <xref target="I-D.ietf-core-href"/>),
URIs indicating a transport will still be efficient to encode.
And last but not least, it lines up well with the colloquial identity mentioned above.
(An alternative would be using a dedicated naming scheme, say, <tt>transport:coap:device.example.com:port</tt>,
but that would needlessly introduce implementation complexity).</t>
            <t>Note that this mechanism can only used with proxies that use CoAP's native address indication mechanisms.
Proxies that perform URI mapping
(as described in Section 5 of <xref target="RFC8075"/>, especially using URI templates)
are not supported in this document.</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="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>Enablement: Inform clients of the availability of other transports of servers.</li>
          <li>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.</li>
          <li>Optimization: Do not incur per-request overhead from switching transports. This may depend on the server's willingness to create aliased URIs.</li>
          <li>Proxy usability: All information provided must be usable by aware proxies to reduce the need for duplicate cache entries.</li>
          <li>Proxy announcement: Allow third parties to announce that they provide alternative transports to a host.</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 client updated,
such as placing a suitable Max-Age value on their resources
or having them observable.</t>
      </section>
    </section>
    <section anchor="indicating-alternative-transports">
      <name>Indicating alternative transports</name>
      <t>While CoAP can set the authority component of the requested URI in all requests (by means of Uri-Host and Uri-Port),
setting the scheme of a requested URI (by means of Proxy-Scheme) makes the request implicitly a proxy request.
However, this needs to be of only little practical concern:
Any device can serve as a proxy for itself (a "same-host proxy")
by accepting requests that carry the Proxy-Scheme option.
<xref section="5.7.2" sectionFormat="of" target="RFC7252"/> already mandates that a proxy recognize its own addresses.
A minimal same-host proxy supports only those and respond with 5.05 (Proxying Not Supported).
In many cases (precisely: on hosts that alias their resources across transports),
this is equivalent to ignoring the Proxy-Scheme option in that request.</t>
      <t>A server can advertise a recommended proxy
by serving a Web Link with the "has-proxy" relation to a URI indicating its transport address.
In particular (and that is a typical case),
it can indicate its own transport address on an alternative transport when implementing same-host proxy functionality.</t>
      <t>The semantics of a link from S to P with relations has-proxy ("S has-proxy P", <tt>&lt;P&gt;;rel=has-proxy;anchor="S"</tt>)
are that for any resource R hosted on S ("S hosts R"), the proxy with the transport address indicated by P can be used to obtain R.</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 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>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>
        <t>Unless the device makes resources discoverable at <tt>coap+tcp://[2001:db8::1]/.well-known/core</tt> or another discovery mechanism,
clients may not assume that <tt>coap+tcp://[2001:db8::1]/sensors/temp</tt> is a valid resource (let alone is equivalent to the other resource on the same path).
The server advertising itself like this may reject any request on CoAP-over-TCP unless it contains a Proxy-Scheme option.</t>
        <t>Clients that want to access the device using CoAP-over-TCP would send a request
by connecting to 2001:db8::1 TCP port 5683
and sending a GET with the options Proxy-Scheme: coap, no Uri-Host or -Port options (utilizing their default values),
and the Uri-Paths "sensors" and "temp".</t>
      </section>
      <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 can not 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 it trusts that they will not be intercepted on the path to the server.
Such applications need to extend their requirements to the source of the <tt>has-proxy</tt> statement;
a sufficient (but maybe needlessly strict) requirement is to only follow <tt>has-proxy</tt> statements
that are part of the same resource that advertises the link currently being followed.
Section <xref target="proxy-foreign-advertisement"/> adds further considerations.</t>
      </section>
      <section anchor="choice-of-transports">
        <name>Choice of transports</name>
        <t>It is up to the client whether to use an advertised proxy transport,
or (if multiple are provided) which to pick.</t>
        <t>Links to proxies 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 advertised transports as long as the document 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 describing document approaches expiry,
the client can use the 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 can not actually be dereferenced.</t>
          <t>The registered names available for that purpose depend on the locally defined host or service name registry.
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 to clients that discover a suitable proxy along with the URI,
and which 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 specification <xref target="rfc9176"/>,
protocol negotiation was anticipated to use multiple base values.
This approach was abandoned since then,
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 can not 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'd guide which available proxies to include.
For example, asking <tt>?if=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 in general is 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 is defined.</t>
      <t>If a proxy is unique,
it means that 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 whether 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 <tt>has-unique-proxy</tt> can be viewed as a description of the link target in terms of SCHC <xref target="I-D.ietf-lpwan-coap-static-context-hc"/>:
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 option;
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 don't 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> 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 <tt>has-unique-proxy</tt> statement,
it can utilize the information about the implied URI aliasing:
Requests to resources hosted by S can be answered with cached entries from P
(because by the rules of <tt>has-unique-proxy</tt> a request can be crafted that is sent to P for which a fresh response is available).
The inverse direction (serving resources whose URI "starts with" P from a cached request that was sent to S) is harder to serve because it additionaly requires a fresh statement
that "S hosts R" for the matching resource R.</t>
      </section>
      <section anchor="unique-security">
        <name>Using unique proxies securely</name>
        <t>The elision of the host name afforded by the <tt>unique-proxy</tt> relation
is only possible if the required security mechanisms verify the scheme and host of the server.</t>
        <t>This is given for OSCORE based mechanisms,
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 can not be completely elided in general.
While the use of the 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>
    <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 by using 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.
In particular, 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",
<coap+wss://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>
      <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 "TBDcore.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=TBDcore.proxy

Res:
Content-Format: application/link-format
Payload:
<>;rt=TBDcore.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 can not 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 server)
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="guidance-to-upcoming-transports">
      <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 TLS based transports).</t>
      <t>If the transport's identifiers are IP based and have identifiers typically resolved through DNS,
authors of new transports are encouraged to specify Service Binding records (<xref target="RFC9460"/>) for CoAP
(possibly taking inspiration from <xref target="althist"/>),
and if IP literals are relevant to the transport, to follow up on <xref target="newlit"/>.</t>
      <t>If the transport's native identifiers 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 host decide the resolution mechanism,
it may be helpful to register a subdomain of .arpa as described in <xref target="rfc3172"/>.
The guidence for users is to never attempt to resolve such a name,
and for the zone's implementation is 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 zone .alt <xref target="rfc9476"/> may be used instead.</t>
      <t>For example,
CoAP over GATT <xref target="I-D.amsuess-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 compoennts 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 transport 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 thusly announced proxy 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 in 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 protect 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="I-D.ietf-lake-edhoc"/> by which the client can verify that the proxy used by the client is recognized by the server.
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>It only conveys information about the URI of the proxy.
The mapping of any host name 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 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 asked 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 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 asked 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 asked to replace any occurrence of TBDcore.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>
  </middle>
  <back>
    <references>
      <name>References</name>
      <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>
      </references>
      <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="I-D.ietf-lake-edhoc">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="22" month="January" 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
   OSCORE security context.  By reusing COSE for cryptography, CBOR for
   encoding, and CoAP for transport, the additional code size can be
   kept very low.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-edhoc-23"/>
        </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="noproxy" target="https://about.gitlab.com/blog/2021/01/27/we-need-to-talk-no-proxy/">
          <front>
            <title>We need to talk: Can we standardize NO_PROXY?</title>
            <author initials="S." surname="Hu" fullname="Stan Hu">
              <organization/>
            </author>
            <date year="2021" month="January" day="27"/>
          </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="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="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.amsuess-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="23" month="October" year="2023"/>
            <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-amsuess-core-coap-over-gatt-05"/>
        </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="RFC8305">
          <front>
            <title>Happy Eyeballs Version 2: Better Connectivity Using Concurrency</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>Many communication protocols operating over the modern Internet use hostnames. These often resolve to multiple IP addresses, each of which may have different performance and connectivity characteristics. Since specific addresses or address families (IPv4 or IPv6) may be blocked, broken, or sub-optimal on a network, clients that attempt multiple connections in parallel have a chance of establishing a connection more quickly. This document specifies requirements for algorithms that reduce this user-visible delay and provides an example algorithm, referred to as "Happy Eyeballs". This document obsoletes the original algorithm description in RFC 6555.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8305"/>
          <seriesInfo name="DOI" value="10.17487/RFC8305"/>
        </reference>
        <reference anchor="I-D.ietf-core-observe-multicast-notifications">
          <front>
            <title>Observe Notifications as CoAP Multicast Responses</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>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="4" month="March" year="2024"/>
            <abstract>
              <t>   The Constrained Application Protocol (CoAP) allows clients to
   "observe" resources at a server, and receive notifications as unicast
   responses upon changes of the resource state.  In some use cases,
   such as based on publish-subscribe, it would be convenient for the
   server to send a single notification addressed to all the clients
   observing a same target resource.  This document updates RFC7252 and
   RFC7641, and defines how a server sends observe notifications as
   response messages over multicast, synchronizing all the observers of
   a same resource on a same shared Token value.  Besides, this document
   defines how Group OSCORE can be used to protect multicast
   notifications end-to-end between the server and the observer clients.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-observe-multicast-notifications-08"/>
        </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="9" month="January" year="2024"/>
            <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) instead of a sequence
   of characters.  This simplifies parsing, comparison, and reference
   resolution in environments with severe limitations on processing
   power, code size, and memory size.


   // (This "cref" paragraph will be removed by the RFC editor:) The
   // present revision –14 of this draft picks up comments from the
   // shepherd review and adds sections on CoAP integration and on cri
   // application-oriented literals for the Extended Diagnostic
   // Notation.  This revision still contains open issues and is
   // intended to serve as a snapshot while the processing of the
   // shepherd review is being completed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-href-14"/>
        </reference>
        <reference anchor="RFC8075">
          <front>
            <title>Guidelines for Mapping Implementations: HTTP to the Constrained Application Protocol (CoAP)</title>
            <author fullname="A. Castellani" initials="A." surname="Castellani"/>
            <author fullname="S. Loreto" initials="S." surname="Loreto"/>
            <author fullname="A. Rahman" initials="A." surname="Rahman"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="E. Dijk" initials="E." surname="Dijk"/>
            <date month="February" year="2017"/>
            <abstract>
              <t>This document provides reference information for implementing a cross-protocol network proxy that performs translation from the HTTP protocol to the Constrained Application Protocol (CoAP). This will enable an HTTP client to access resources on a CoAP server through the proxy. This document describes how an HTTP request is mapped to a CoAP request and how a CoAP response is mapped back to an HTTP response. This includes guidelines for status code, URI, and media type mappings, as well as additional interworking advice.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8075"/>
          <seriesInfo name="DOI" value="10.17487/RFC8075"/>
        </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="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="4" month="March" 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-10"/>
        </reference>
        <reference anchor="I-D.ietf-lpwan-coap-static-context-hc">
          <front>
            <title>Static Context Header Compression (SCHC) for the Constrained Application Protocol (CoAP)</title>
            <author fullname="Ana Minaburo" initials="A." surname="Minaburo">
              <organization>Acklio</organization>
            </author>
            <author fullname="Laurent Toutain" initials="L." surname="Toutain">
              <organization>Institut MINES TELECOM; IMT Atlantique</organization>
            </author>
            <author fullname="Ricardo Andreasen" initials="R." surname="Andreasen">
              <organization>Universidad de Buenos Aires</organization>
            </author>
            <date day="8" month="March" 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="Internet-Draft" value="draft-ietf-lpwan-coap-static-context-hc-19"/>
        </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="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="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="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="RFC2616">
          <front>
            <title>Hypertext Transfer Protocol -- HTTP/1.1</title>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="J. Gettys" initials="J." surname="Gettys"/>
            <author fullname="J. Mogul" initials="J." surname="Mogul"/>
            <author fullname="H. Frystyk" initials="H." surname="Frystyk"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <author fullname="P. Leach" initials="P." surname="Leach"/>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <date month="June" year="1999"/>
            <abstract>
              <t>HTTP has been in use by the World-Wide Web global information initiative since 1990. This specification defines the protocol referred to as "HTTP/1.1", and is an update to RFC 2068. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2616"/>
          <seriesInfo name="DOI" value="10.17487/RFC2616"/>
        </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="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.lenders-core-dnr">
          <front>
            <title>Discovery of Network-designated CoRE Resolvers</title>
            <author fullname="Martine Sophie Lenders" initials="M. S." surname="Lenders">
              <organization>TUD Dresden University of Technology</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Thomas C. Schmidt" initials="T. C." surname="Schmidt">
              <organization>HAW Hamburg</organization>
            </author>
            <author fullname="Matthias Wählisch" initials="M." surname="Wählisch">
              <organization>TUD Dresden University of Technology &amp; Barkhausen Institut</organization>
            </author>
            <date day="4" month="March" year="2024"/>
            <abstract>
              <t>   This document specifies solutions to discover DNS resolvers that
   support encrypted DNS resolution in constrained environments.  The
   discovery is based DNS SVCB records, Router Advertisements, or DHCP.
   In particular, the proposed specification allows a host to learn DNS
   over CoAP (DoC) servers, including configurations to use DoC over
   TLS/DTLS, OSCORE, and EDHOC when resolving names.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-lenders-core-dnr-00"/>
        </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>
    <section anchor="change-log">
      <name>Change log</name>
      <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>Add guidance section for new transports.</li>
            <li>Point out that registerd names already can fan out to different addresses.</li>
          </ul>
        </li>
        <li>Rephrase and simplify security considerations, especially by limiting unique proxying for TLS.</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>Remove proxy-schemes attribute from core.proxy because of its greatly reduced value.</li>
          </ul>
        </li>
        <li>Update "Related work" appendix to cover SVCB instead of SRV records</li>
        <li>Rename to "Transport Indication", using "protocol" only for other protocols, in established phrases, or when referring to CoAP as a general protocol.</li>
        <li>Add note linking CoAP-over-WS's .well-known/coap to dohpath</li>
        <li>Remove OSCORE vs. unique-proxy open point</li>
        <li>EDHOC EAD: Describe response option content</li>
        <li>Editorial updates</li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-03:</t>
      <ul spacing="normal">
        <li>Added appendices on alternative history and Literals beyond IP addresses.
The remaining document was not brought in sync with those new parts.</li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-02:</t>
      <ul spacing="normal">
        <li>Added EAD appendix, adjusted security considerations to match.</li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-01:</t>
      <ul spacing="normal">
        <li>Simplify same-host proxy behavior by referring to existing RFC7252 mandate.</li>
        <li>proxy-links= lookup: Refer to prior art.</li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-00:</t>
      <ul spacing="normal">
        <li>Add section on canonical URIs that are not necessarily reachable.</li>
        <li>Clarify that the the "hosts" relation is followed transitively.</li>
        <li>Cross reference with compatible multicast-notifications concept.</li>
      </ul>
      <t>Since draft-amsuess-core-transport-indication-03:</t>
      <ul spacing="normal">
        <li>No changes (merely changing the name after WG adoption)</li>
      </ul>
      <t>Since -02 (mainly processing reviews from Marco and Klaus):</t>
      <ul spacing="normal">
        <li>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 resurce on the server)</li>
        <li>Security: Referencing traffic misdirection already in the first security block.</li>
        <li>Security: Add (incomplete) considerations for unique-proxy case.</li>
        <li>Narrow down "unique" proxy semantics to those properties used by the client, allowing unique proxies to be co-hosted with forward proxies.</li>
        <li>"Client picked proxies" clarified to merely illustrate how this is compatible with them.</li>
        <li>Use of "hosts" relation sharpened.</li>
        <li>Precision on how this does and does not consider changing transports.</li>
        <li>"Related work" section demoted to appendix.</li>
        <li>Add note on DTLS session resumption.</li>
        <li>Variable renaming.</li>
        <li>Various editorial fixes.</li>
      </ul>
      <t>Since -01:</t>
      <ul spacing="normal">
        <li>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]".</li>
        <li>State more clearly that valid cache entries for resources aliased through has-unique-proxy can be used.</li>
        <li>Added considerations for Multipath TCP.</li>
        <li>Added concrete suggestion and example for advertisement of general proxies.</li>
        <li>Added concrete suggestion for RD lookup extension that provides proxies.</li>
        <li>Minor editorial and example changes.</li>
      </ul>
      <t>Since -00:</t>
      <ul spacing="normal">
        <li>Added introduction</li>
        <li>Added examples</li>
        <li>Added SCHC analogy</li>
        <li>Expanded security considerations</li>
        <li>Added guidance on choice of transport, and canonical addresses</li>
        <li>Added subsection on interaction with a Resource Directory</li>
        <li>Added comparisons with related work, including rdlink and DNS-SD sketches</li>
        <li>Added IANA considerations</li>
        <li>Added section on open questions</li>
      </ul>
    </section>
    <section anchor="related-work-and-applicability-to-related-fields">
      <name>Related work and applicability to related fields</name>
      <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 specified 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 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,
but could have been (see <xref target="althist"/>).</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 <tt>has-proxy</tt> link.
Explicit <tt>has-proxy</tt> 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 forego sending of the Proxy-Scheme and Uri-Path 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 analog 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>
      <ul spacing="normal">
        <li>
          <t>Self-uniqueness:  </t>
          <t>
A host that wants to indicate that it doesn't care about Uri-Host
can probably publish something like <tt>&lt;/&gt;;rel=has-unique-proxy</tt> to do so.  </t>
          <t>
This'd help applications justify when they can elide the Uri-Host,
even when no different transports are involved.</t>
        </li>
        <li>
          <t>Advertising under a stable name:  </t>
          <t>
If a host wants to advertise its host name 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>understanding the has-unique-proxy line,</li>
            <li>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</li>
            <li>processing any relative reference with this new base in mind.</li>
          </ul>
          <t>
(Not that it'd need to happen in software in that sequence,
but that's the sequence needed to understand how the <tt>/foo</tt> here is really <tt>coap://myhostname/foo</tt>).  </t>
          <t>
If 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>This document sketches an extension to <xref target="I-D.ietf-lake-edhoc"/> 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 TBD24, is defined for use with messages 1, 2 and 3.</t>
      <t>A client can set this label in uncritical 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 indicated by the URI is the proxy the client chose from information advertised about the server.</t>
      <t>If a server can not determine its set of legitimate proxies,
it ignores the option (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>
    </section>
    <section anchor="althist">
      <name>Alternative History: What if SVCB had been around before CoAP over TCP?</name>
      <t>This appendix explores a hypothetical scenario in which Service Binding (SVCB, <xref target="RFC9460"/>) was around and supported before the controversial decision to establish the "coap+tcp" scheme.
It serves to provide a fresh perspective of what parts are logically necessary,
and to ease the exploration of how it may be used in the future.</t>
      <section anchor="hypothetical-retrospecification">
        <name>Hypothetical retrospecification</name>
        <t>CoAP is specified for several transports:
CoAP over UDP, over DTLS, over TCP, over TLS and over (secure or insecure) WebSockets.
URIs of all these are expressed using the "coap" or "coaps" scheme,
depending on whether a (D)TLS connection is to be used.
[ It is currently unclear whether the two schemes should also be unified; the rest of the text is left intentionally vague on that distinction. ]</t>
        <t>Any server providing CoAP services
announces not only its address
but also its SVCB Service Parameters,
including at least one of <tt>alpn</tt> and <tt>coaptransfer</tt>.</t>
        <t>For example, a host serving "coap://sensor.example.com" and "coaps://sensor.example.com"
might have these records:</t>
        <t><tt>
_coap.sensor.example.com IN SVCB 1 . alpn=coap,co coaptransfer=tcp,udp port=61616
sensor.example.com IN AAAA 2001:db8::1
</tt></t>
        <t>A client connecting to the server loops up the name's service parameters using its system's discovery mechanisms.</t>
        <t>For example, if DNS is used, it obtains SVCB records for _coap.sensor.example.com,
and receives the corresponding AAAA record either immediately from an SVCB aware resolver
or through a second query.
It learns that the service is available through CoAP-over-DTLS (ALPN "co"), CoAP-over-TLS (ALPN "coap"),
or through unencrypted TCP or UDP, and that port 61616 needs to be used in all cases.</t>
        <t>If the server and the client do not have a transport in common,
or if one of them supports only IPv4 and the other only IPv6,
no exchange is possible;
the client may resort to using a proxy.</t>
      </section>
      <section anchor="shortcomings">
        <name>Shortcomings</name>
        <t>While the mechanism above would have unified the CoAP transports under a pair of schemes,
it would have rendered the use of IP literals impossible:
The URI <tt>coap://[2001:db8::1]</tt> would be ambiguous as to whether CoAP-over-UDP or CoAP-over-TCP should be used.
<xref target="newlit"/> provides a solution for this issue.</t>
      </section>
    </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 host names 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 practically been available to host names.
The Host header introduced in HTTP 1.1 <xref section="14.23" sectionFormat="of" target="RFC2616"/>
introduced name based virtual hosting in 1999.
DANE <xref target="RFC6698"/>, which provides TLS public keys augmenting the or outside of the public key infrastructure,
is only available for host names resolved through DNSSEC.
SVCB records <xref target="RFC9460"/> introduced in 2023
allow starting newer HTTP transports without going through HTTP/1.1 first,
enables load balancing, fail-over,
and enable Encrypted Client Hello --
again, only for host names 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;
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 serves 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 optional custom prefix,
an ordered list of key-value component pairs,
and the common suffix <tt>service.arpa</tt>.</t>
        <t>The custom prefix can contain user defined components.
The intended use is labelling, and to differentiate services provided by a single host.
Any data is allowed within the structure of a URI (ABNF reg-name) and DNS name rules (63 bytes per segment).
(While not ever carried by DNS,
this upholds the constraints of DNS for names.
That decision may be revised later,
but is upheld while demonstrating that the desired properties can be obtained).</t>
        <t>Component pairs consist of a registered component type
(no precise registry is proposed at this early point)
followed by encoded data.
The component type "--" is special in that it concatenates the values to its left and to its right,
creating component values that may exceed 63 bytes in length.</t>
        <t>Initial component types are:</t>
        <ul spacing="normal">
          <li>
            <t>"6": 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>"4": 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>"tlsa": 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>"s": Service Parameters <xref target="RFC9460"/>).
SvcbParams in base32 encoding of their wire format.  </t>
            <t>
TBD: There is likely a transformation of the parameters' presentation format that is compatible with the requirements of the authority component,
but this will require some more work on the syntax.  </t>
            <t>
If present,
a client SHOULD use these hints to establish a connection.  </t>
            <t>
TBD: Encoding only the SvcParams and not priorities and targets appears to be the right thing to do for the immediate record,
but does not enable load balancing and failover.
Further work is required to explore how those can be expressed,
and how data pertaining to the target can be expressed,
possibly in a nested structure.</t>
          </li>
        </ul>
      </section>
      <section anchor="syntax-of-servicearpa">
        <name>Syntax of <tt>service.arpa</tt></name>
        <sourcecode type="abnf"><![CDATA[
name = [ custom ".-." ] *(component) "service.arpa"

custom = reg-name
component = 1*63nodot "." comptype "."
comptype = nodotnodash /  2*63nodot

; unreserved/subdelims without dot
nodot  = nodotnodash / "-"
; unreserved/subdelims without dot or dash
nodotnodash = ALPHA / DIGIT / "_" / "~" / sub-delims

; reg-name and sub-delims as in RFC3986
]]></sourcecode>
        <t>Due to <xref target="RFC3986"/>'s rules,
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>http://s.alpn_h2c.6.2001-db8--1.service.arpa/ -- The server is reachable on 2001:db8::1 using HTTP/2</li>
          <li>https://mail.-.tlsa.amaqckrkfivcukrkfivcukrkfivcukrkfivcukrkfivcukrkfivcukrk.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.
The "mail.-." part is provided to the server as part of the Host header,
and can be used for name based virtual hosting.</li>
          <li>coap://s.coaptransfer_tcp_coapsecurity_edhoc.6.2001-db8--1.service.arpa/ -- The server is reachable using CoAP over TCP with EDHOC security at 2001:db8::1. (The SVCB parameters are experimental values from <xref target="I-D.lenders-core-dnr"/>).</li>
        </ul>
      </section>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>This document heavily builds on concepts
explored by Bill Silverajan and Mert Ocak in <xref target="I-D.silverajan-core-coap-protocol-negotiation"/>,
and together with Ines Robles and Klaus Hartke inside T2TRG.</t>
      <t>[ TBD: reviewers
Marco
Klaus
]</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA91963IbWZLe/3qKGihiRWoB8Cap1VT39FKkuqVw67Iie7Xr
ntlmASgQNSpUYaoKpDBcTfgd/CJ+AP+y38RP4vzyci4AKHXPrh1hz0TMiECh
zi1PXr/MHAwGSVd0ZX6cntYnb9OLJqvaRd106ctqUoyzrqirZFKPq2xOj0ya
bNoNirybDsZ1kw86e3pQuKcH+4+StsuqyS9ZWVf0o65Z5kmxaPhfbXe4v//1
/mFCDx+nbTdJFsVxktK/mmJMn9xf5e19+rurx9Efk3zRzeiTI/zdruZNPm39
Ay1NIf5kXM8XWfhC+mCeVx09Qh/gJ8uRf6aq8QjNsaq7YlrkE/0sa/LsmHai
y5sq75KbK+zSu+fJhxv5Rz99n4/SH4vqQ1Fd9dO3Tf1x1U9/eveyn2ZlkbX0
aZItu1ndHCeDtKho9NNhejJv/+d/bzEJ2dXTWVO0XZFVwTfjell1zeo4PVli
azL6KJ9nRXmcju3pf8jm7TJv2yGtg94+XZalvO9V1nRFlafn9WJW5OmPeTXJ
G7y0bmgBFz+dpWdN3k7yKv2pKq7pq6JbpfU0vcjHs6ou66sVPZuNRk1+jcft
aTmlPKcNe5GX81lddn+hD4bpwT4mTC85Dh4d1xOaytlg/2D/8dfhgn7Im3lW
rfyC5jLdYSnz/IduOZjIa4aTPKlqeryjaR4nRTX1f6Syw3mLfxKJCA2fNONZ
0eXjbtnkWFI3y9P3dVNO0vfFJMdp9dNz+proND0cHg0PcFj2Jn6RHVfK/+Ed
e390KmNkzRVWP+u6RXu8t3dzczO8ORrSM3sX7/Zu8lFGo+/dWzbFwL9xXNcl
fRJP85Q+xMhtOqmr+x2daVZd5VvGlwO9KObpsx+/NAeivmtaZLN33q3KfI9e
T78ob+aH82js99ig9G22yJv0f/2X/0rUezXrbnL8b/rq8FV6MDy4ayPevDpJ
zxf5mHb0Q7t1OvU8a+mBGzzAk7rBaIMFRhuUfqQBzWpwMDjYo7e8HJwNmaWU
2Yd8kE9mdPXp45ujbAI6iHeu9/4o1c+JDVRd9vE4ffb6+95v3TuaK8hpOKab
PaRTm61ohl3+sdt7//793omMQNd3j14+nHXz8t7DI37JJOvorQdff3042H88
OARpV/UCF39tnnla5fmEeBeNW36gM6f7fZOnzBqzZlL8JU9fv/nl7bs3//wv
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
vshEeWDpfbYQWvm/v+/G9oH/59/ftPbZDdzMPKYFW2k7snBIWD4lU4/43Iyb
wT9D1hTNO9kRW4CJA5Mq2DYXWxROez64ZklqIJhSLBAzfgUrF3T9ZXTINjrD
tszaGd0eWypmrC4QWZituy+7tmazsLKPw2gTUGjgGlSrIFhkm7JmmYms4B/Z
ERr7558EHnebFV+Mts//lh1yAyu9+ZeSPMe5wrVMZHYuwv01vvCBceJnr1/u
QiHY0xH4fa2YYaL8vmANecYOJFOUgqv54uLiralYxHxIz6T1LxcTXn29JiFJ
bhOPU02YeE8/ASfyfjYoHWotjEAKZX0TGLk4PFo8DdVAY6BfTpvsSqxuUyQa
9r6GC2Dx5Oltq1QeJq9rz1FUN9INhjk+ld1p4fwFx6cFZ5g/6QbGBGiZHyoy
14bJzuvanMJEq2Xu6IkugPkN2aYzwUN6TTngHwt9Xu4N/Ud7+OWlsFK2mcGK
ss7p+2QbwFpRBzufBtRiti9ZekCtsnMzJbTP33BUgF1VX9geuhc//2t7PR5h
evS+bE7K9vonbB4UrfgM6dJxpEbcDLwq9jso0W9bIU0R05PAQhAHERcyG+Km
dsBUqFIWxc4zQzTO88g70EBbzAsokkQ6k3qG8YepOoDVmC7m83xS0Oto82Z5
ufAyiklZ3Ug3ajFm62SUrckkJlBZKa4nvOzDdDA4PVGe+/xjIZ4iOrQkOXET
VA9raL5pyMWDVOoRq+YDFsLjrO0GgvKQO9ySerHj9QMoGkUO45+Vtza97Ba/
gDdc+v1R3Y9pwP2Q18+8bZXTTT5RyeDuLl1LsrVYysDJavG1U/xi5/Y2nvKM
tFlWacS29C5n8aC22+QM7UVRjYFycEfB09nBELELefeOoyAG9CX5krPgN+fT
dFmKtmZWozhTNMSksRpWx+DyLa4q2yi+txmrsCvzqnsNTW58dQ2mxFGVvLou
mrrijbwmUw63g44GoeRf2Eq9TPNuPExIk5NYPJyT34ulCweDSh36aixhfUzo
BnFHGjXzXvl2RQrdXG08WRh23EKiO2yCh1GgMPIJitkgPneSn9vYGxifzj2U
T4k2C5W5ZAjUE1LBThAjINpNjfLKnP5i50NJ6hTt8oIZod9eb9gpeycVYC47
Cjof0bUnZntSRQFjxy2EOhGVM64BPxNcteqfazMyFy/dGo7ZQhXH2VCZOqL6
x/jyUi5MENKC/Q5XU+lDdvlaPJO16DL/SPOGWu6lAhOVV/TAPthw8s5QC3Hy
4yA/9UPrItdsyVhVHSZvw18v8gZ6AfOvOema8FfurIddDFH0SEkACur+V48Q
AI7ui/oBUvh/EXVtd4Ew4+NUt4HRf+TPSsyBdFYDQXKTKWmwNiAP058su3Tl
38HJIV7HPy1bJhiRaMU0beu++m5qNT6Exmkb+dkO9p/6G4bDoRo7NG1xEhEz
/qEm0ylZiwi6Y2xD5IJKflKJsjm7FlXF34KyCO1S/AxnNkxO2e2QT/qKo9CQ
wHGSHAzT5xUYAYYHSI/PycImKrE1Fs1WKz7biPvRZ+K4gXvicJiSInOiyL3j
9KRaeXwYDm+ODRqxc2tA56Q2uLxgyI9bqCRYDP+IlbEwgMln9iHP6drWjXjc
qrVIKLMMUaPikZLkaJi+EcgGv4xJg8VyBV/g1oAy+35buh/jWWQTtira4ZqU
mK/NREa73zJ/ot9UOECatbiYFTU34WnSlB4OxbPGliNvOG0gMaTAkPMBHdtI
tTLhCLlhG9juHnREZgqRt2+ylP3DLo3hxSGiK6DhJ49s9Kyq6iUpBUIVJ7zt
dEUQ1oSDTN5tDxlDyV2s6S74DJs/0O7ViwXrXShyupRYXIugIe0+KG1Rw3+e
t26dnl2YJ5SnlSu9MlpI1Nk5VBB+EXvRReGrm+KqgCAMRXV8/1iGgARYJWo4
/pGXU3WuqgArqlCcR3eDo8EFXExVXvAtKRDHcf7VebrTewuhkwuHIHmzqonW
YFj7qF768v48vao1stSCmLJ0WjRzPl2xa3q7AHVKxF3i8ToE2aLRnOQJ2BTD
5AX702+EX9kS7rfxD2yZbjHM1ZYkWIu/5AmHfpZFxxQXOQr4GupJyBwn/cQU
buLUY7V17cevso+Dk6ucVJFyaeCcIgiDAukgsS3ZOdFA8dOhoKe8FrCV2uCE
guUjKBxaAmzRO7x9xun0vst95K0jevAx/NGKQ37M8H5qisELC6/hj7fi0KRR
nBGjhhZ7euNXR68KXf67HNlow9lIVEQiSVkcT8CR3sA1r25g3PFWMRVg1JBQ
6oV0YXmj7eNEWC0HBGV/YpSQAUBwAXa2YAd2E3Achj1gwW6bVBI2zerugMbt
rRP3w6+Gh5isg3LQpkOfRIynmoi2ryacLn1cX1WA2VlwMnBSnJCJUBVzWuXa
bH1IQcS2OAzF1UY0oDrPo+H+o3SHZ4wlkbqUnptOsQtAjQSaxoAlpzvihCcO
cywOQLd4Zurr9Exb1dRtiNHb1WjQho+IdHwi0LvBIaLeZF3g8zix0AlO0kN0
Mt4ugPYhMHgncGp4Vq6jAbi8yhuivVy0kTn3mvm51YTiTQqiKDvi9xdnQWaw
BN5BscwiV5Wd6GbIgnEj22+62BhO72X9eu3wTbxk4HAaS2hzOkuaZiv3U7BD
EO/nWK1GMXyU0O0KsfDz4K+3PdLgv3n7+6f06Lfu46eCd/i2d967FP2U94DV
QA4+aqD5HZON4FLP5c1MRu96u+Jhk0E8LOrzsZy3UUwNkNQRvIzpO4FjPReT
AtQyDqClygMyZY/64iBKJpN3N8hHe0RuOdAXRgzYbTkdmMgWFAmonZTOv+I/
ybv8z8f4wc/T6f7h8fF08sfjR4+fHGEnfjp7SzorUh9+eH6RMHPNkLiy5rFp
cv7uH5c5UiKK6bdddnUcmE19QYoAedYey9lGsT8ejwYiwVt1g+9ZwToO1cs9
EMVANK/kbbYq62xynBgUphUszFMauLd95F4/+cZ8t+uBx7sIZq+XJH5vNqaL
7aFdD7Yn5A/HbHOEOxZONXkjTpzjdF/35BD8Tjcg/Nat9ejr4cH/+G+nemS3
x+m9aXE18NTP+PZv7585bBKu+xRG882AlBuTYGbtZ8HFsat1/1NolzKIwdyA
RYh6mkKYhwLOUBsO2F1ECG0nFZ4mEhKcqtd24uxyPt6yBkPS+6g/6ofBaOj0
HCiLREX0a38Zv6RhyNphCCbJTwIUkagoX0GR/ZtIMFlQJyHsbdS0cTMuGeqp
2BS/iU5j6ydm5GF5UHmztl3O9RTuHiekp0vh6SS3iolnaTtl3jFwJd8UbC5+
4B83MwlBAXguBchtex8qt6qKOE7CM2/yP5EioUxVjbUqcOKCQykgp+gs6oJZ
b1VLklPdFPGyqI8AOk58Tup2jEYRn4xq6zoXyFoLmIk2H3JV/Ip5OfMh3Bz8
WkiTbrbn+oqaSDevOpzoXhWlI2c11P1gR9R2bxpY9J2VbiggFpY3ltGSnidH
LNi9HsPsRHycm2WmyBgQ8yK7yjSBgeytcfdxEHxINxs6prPoQohmKoAQjt7r
YdP01X4IMcoMKmWpYpv66qfzC47NLAz452DW5coumpeUUaiCjsC8UYGKPeSY
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
tPxvD4RnogLfAAA=

-->

</rfc>
