<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<?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-09" category="std" consensus="true" submissionType="IETF" tocDepth="3" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title>CoAP Transport Indication</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-transport-indication-09"/>
    <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="2025" month="July" day="07"/>
    <area>Internet</area>
    <workgroup>CoRE</workgroup>
    <keyword>CoRE, Web Linking, Proxy, URI, aliasing</keyword>
    <abstract>
      <?line 82?>

<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"/>
and Service Bindings (SVCB, <xref target="RFC9460"/>)
to express alternative transports available to a device,
and to optimize exchanges using these.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://core-wg.github.io/transport-indication/"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-core-transport-indication/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        core Working Group mailing list (<eref target="mailto:core@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/core/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/core/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/core-wg/transport-indication"/>.</t>
    </note>
  </front>
  <middle>
    <?line 92?>

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

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


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

Res: 2.05 Content
Observe: 0
Payload:
39.1°C
]]></artwork>
          </figure>
          <t>The discovery process yields two links:
The first describes the resource,
the second describes that an additional (TCP) endpoint is available for all resources on this host.</t>
          <t>Note that generating this discovery file needs to be dynamic based on its available addresses;
only if queried using a link-local source address, the server may also respond with a link-local address in the authority component of the proxy URI.</t>
        </section>
      </section>
    </section>
    <section anchor="operational-concerns-of-discovered-transport-endpoints">
      <name>Operational concerns of discovered transport endpoints</name>
      <section anchor="secctx-propagation">
        <name>Security context propagation</name>
        <t>Any security requirements posed by a server or client application on a CoAP request
MUST be applied independently of the transport that is used to perform the request.
If a transport 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 the sources used to obtain the endpoints
(i.e., the source of any <tt>has-proxy</tt> statement or the SVCB data);
a sufficient (but maybe needlessly strict) requirement for <tt>has-proxy</tt> statements is to only follow those
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 anchor="exception-narrowing-security-requirements">
          <name>Exception: Narrowing security requirements</name>
          <t>If a concrete application starts with a minimal set of security requirements,
has no means of discovering security properties of the endpoint
and can only discovery security properties of a transport,
it MAY describe how a first step of transport discovery narrows the security requirements.</t>
          <t>An example of this is <xref section="3.2" sectionFormat="of" target="I-D.ietf-core-dns-over-coap"/>
where the target name of the SVCB record is used to set the hostname component of a URI and thus set security requirements.</t>
          <t>Before making use of this option,
alternatives such as using TLSA records should be exhausted.</t>
        </section>
      </section>
      <section anchor="choice-of-endpoints">
        <name>Choice of endpoints</name>
        <t>It is up to the client whether to use an advertised endpoint,
or (if multiple are provided) which to pick.</t>
        <t>Information about endpoints may be annotated with additional metadata that may help guide such a choice;
defining such metadata is out of scope for this document.</t>
        <t>Clients MAY switch between endpoints as long as the source describing them is fresh;
they may even do so per request.
(For example, they may perform individual requests using CoAP-over-UDP,
but choose CoAP-over-TCP for requests with large expected responses).
When the information about endpoints is obtained through CoAP (e.g. as a <tt>has-proxy</tt> link),
the client can use the describing representation's ETag to efficiently renew its justification for using the alternative transport.</t>
      </section>
      <section anchor="selection-of-a-canonical-origin">
        <name>Selection of a canonical origin</name>
        <t>While a server is at liberty to provide the same resource independently on different transports (i.e. to create aliases),
it may make sense for it to pick a single scheme and authority under which it announces its resources.
Using only one address helps proxies keep their caches efficient,
and makes it easier for clients to avoid exploring the same server twice from different angles.</t>
        <t>When there is a predominant scheme and authority through which an existing service is discovered,
it makes sense to use these for the canonical addresses.</t>
        <t>Otherwise,
it is suggested to use the <tt>coap</tt> or <tt>coaps</tt> scheme
(given that these are the most basic and widespread ones),
and the most stable usable name the host has.</t>
        <section anchor="unreachable-canonical-origin-addresses">
          <name>Unreachable canonical origin addresses</name>
          <t>For devices that are not generally reachable at a stable address,
it may make sense to use a scheme and authority as the canonical address that can not actually be dereferenced.</t>
          <t>The registered names available for that purpose depend on the resolution mechanisms in use.
When the Domain Name System (DNS) is used,
such names would not be associated with any A or AAAA records
(but may still use, for example, TLSA records).</t>
          <t>Such URIs are <em>only</em> usable 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
and the "is-unique-proxy" SVCB parameter are 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:
As long as the <tt>has-unique-proxy</tt> statement is fresh and trusted,
requests for either of the origins can be served from the cache of the other origin.</t>
      </section>
      <section anchor="unique-security">
        <name>Using unique proxies securely</name>
        <t>The elision of the 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 anchor="self-description-as-a-unique-proxy">
        <name>Self-description as a unique proxy</name>
        <t>The level of assurance a client needs from a server
to elide the Uri-Host option in a request that was created from a URI with no IP address literal
has been a controversial topic.
[ Should we dig up old conversations, link to https://github.com/core-wg/wiki/wiki/CoAP-FAQ#q4,
or just let the weight of a WG consensus-document-to-be do its work? ]</t>
        <t>The <tt>has-unique-proxy</tt> relation provides an easy way for a server
to indicate that this is in fact allowed:
A server can publish a statement such as <tt>&lt;/&gt;;rel=has-unique-proxy</tt> in its <tt>/.well-known/core</tt> file.
A client that receives and understands it can thus elide the Uri-Host option in requests to the server
as per the definition of the relation.</t>
      </section>
    </section>
    <section anchor="thirdparty">
      <name>Third party proxy services</name>
      <t>A server that is aware of a suitable cross proxy may use the has-proxy relation to advertise that proxy.
If the transport used towards the proxy provides name indication (as CoAP over TLS or WebSockets does),
or 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 "CPA-core.proxy" can be used to describe such a proxy.</t>
        <figure anchor="fig-6lbr-proxy">
          <name>A CoAP client discovers that its border router can also serve as a proxy, and uses that to access a resource on an HTTP server.</name>
          <artwork><![CDATA[
Req: GET coap://[fe80::1]/.well-known/core?rt=CPA-core.proxy

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

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

Res: 2.05 Content
Content-Format: text/plain
Payload:
On Monday, October 25th 2021, there is no special message of the day.
]]></artwork>
        </figure>
        <t>The considerations of <xref target="proxy-foreign-advertisement"/> apply here.</t>
        <t>A generic advertised proxy is always a forward proxy,
and 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="service-binding-parameters-for-coap-transports">
      <name>Service Binding Parameters for CoAP transports</name>
      <t>Discovery mechanisms that exist in DNS <xref target="RFC9460"/>, DHCP, Router Advertisements <xref target="RFC9463"/> or other mechanisms
can provide details already that would otherwise only be discovered later through proxy links.
For when those details are provided in the shape of Service Binding Parameters,
this section describes their interpretation in the context of CoAP transport indication.</t>
      <t>This document is an SVCB mapping document as described in <xref target="RFC9460"/>.
As a non-normative overview, the mapping summary (following the template of <xref section="B" sectionFormat="of" target="RFC9460"/>)
is as follows:</t>
      <table>
        <thead>
          <tr>
            <th align="left"> </th>
            <th align="left"> </th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">
              <strong>Mapped schemes</strong></td>
            <td align="left">"coap", "coaps", "coap+tcp", "coaps+tcp", "coap+ws", "coaps+ws"</td>
          </tr>
          <tr>
            <td align="left">
              <strong>RR type</strong></td>
            <td align="left">SVCB (64)</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Name prefix</strong></td>
            <td align="left">
              <tt>_coap</tt> for the scheme's default port, else <tt>_$PORT._coap</tt></td>
          </tr>
          <tr>
            <td align="left">
              <strong>Automatically Mandatory Keys</strong></td>
            <td align="left">
              <tt>port</tt>, <tt>no-default-alpn</tt></td>
          </tr>
          <tr>
            <td align="left">
              <strong>SvcParam defaults</strong></td>
            <td align="left">
              <tt>alpn</tt>: according to scheme (or empty)</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Special behaviors</strong></td>
            <td align="left">Multiple mapped schemes; <tt>alpn</tt> default influenced by initial URI.</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Keys that records must include</strong></td>
            <td align="left">None</td>
          </tr>
        </tbody>
      </table>
      <t>[ The following paragraph is outdated, but its replacement will depend on the outcome of IETF122 discussions. ]</t>
      <t>The subsections in this section are arranged to describe a consistent sequential full picture.
The capabilities of this big picture are not exercised by any application known at the time of draft publication.
It is instead backed by many small-scope use cases
(such as bootstrapping issues of proxy-link based CoAP scheme unification, <xref target="I-D.lenders-core-dnr"/>, <xref target="I-D.amsuess-t2trg-onion-coap"/> and also applications outside CoAP such as <xref target="SUIB"/>)
and presents a unified solution framework.</t>
      <section anchor="svcb-discovery">
        <name>Discovering transport indication details from name resolution</name>
        <t>This document registers the <tt>_coap</tt> attrleaf label
in <xref target="iana-underscored"/>
using the pattern described as described in <xref section="10.4.5" sectionFormat="of" target="RFC9460"/>,
and thus enables the use of SVCB records.
This path is chosen over the creation of a new SVCB RR "COAP"
because it is considered unlikely that DNS implementations would update their code bases to apply SVCB behavior;
this assumption will be revisited before registration.</t>
        <t>These can be used during the resolution of URIs that use any CoAP scheme.
The presence of an SVCB record for a registered name
implies that any transport advertised in the record is suitable for proxying to
resources of any CoAP scheme and that registered name,
provided that a resource is available at that URI in the first place.
This does not create URI aliasing:
Any resource is still accessed at its original URI through the advertised proxy endpoints.</t>
        <t>It is possible through this to advertise transports without transport layer security
for URIs with the schemes "coaps", "coaps+tcp" and "coaps+ws".
Unless the application explicitly regards an object layer security mechanism as a sufficient replacement for transport layer security,
those transports can not be selected for operations on such URIs as per <xref target="secctx-propagation"/>.</t>
        <t>Some SVCB parameters have defaults; for "_coap", these are:</t>
        <ul spacing="normal">
          <li>
            <t>port: 5683</t>
          </li>
          <li>
            <t>ALPN: empty</t>
          </li>
        </ul>
        <t>As SVCB records were not specified for the existing CoAP transports originally,
generic CoAP clients are not required to use the SVCB lookup mechanism,
but MAY attempt it opportunistically in order to obtain a usable transport
(or to obtain it faster).
Applications built on CoAP MAY require clients to perform this kind of discovery.
Adding such a requirement is particularly useful if the application frequently advertises URIs with a scheme that defaults to a transport which its clients may not support,
or when the application makes use of functionality afforded by <xref target="RFC9460"/> such as apex domain redirection.
(Had the SVCB specification predated the first new CoAP transports,
that mechanism might have been used in the first place instead of additional schemes).</t>
        <t>[ The following paragraph may need to be revisited depending on the outcome of IETF122 discussions. ]</t>
        <t>The effects on a client of seeing SVCB parameters are similar
to those of seeing a "has-proxy" link from the origin to the URI built using {#svcblit}.
The precise implications of any DNSSec-backed applicable credentials expressed in SVCB parameters
are subject to ongoing discussion (especially with regard to whether they apply to the proxy or the origin server).</t>
      </section>
      <section anchor="svcparams">
        <name>Service Parameters</name>
        <t>Several parameters are relevant in the context of CoAP,
independently of whether they are used with SVCB records or Service Binding Parameters transported outside SVCB records,
and independently of whether they apply to the <tt>_coap</tt> service or another service that can be used on top of CoAP (such as <tt>_dns</tt>):</t>
        <ul spacing="normal">
          <li>
            <t><tt>port</tt>: The CoAP service using the transport described in this parameter is reachable on this port
(described in <xref target="RFC9460"/>). It is automatically mandatory.  </t>
            <t>
This document does not limit which ports can be used with CoAP.</t>
          </li>
          <li>
            <t><tt>alpn</tt>: The ALPN "coap" has been defined for CoAP-over-TLS <xref target="RFC8323"/>, and "co" for CoAP-over-DTLS in <xref target="I-D.ietf-core-coap-dtls-alpn"/>.  </t>
            <t>
If an ALPN service parameter is found, this indicates that the ALPN(s) and thus the CoAP transport that can be used on this address / port.
For example, "co" indicates that DTLS (and thus UDP) is used.  </t>
            <t>
ALPN IDs are defined in this document and in <xref target="I-D.ietf-core-coap-dtls-alpn"/> for the CoAP transports that had no such identifier when they were specified.  </t>
            <t>
The default value of <tt>alpn</tt> when processing a URI (as in <xref target="processing-scheme-authority"/>) is the ALPN corresponding to the used scheme.
The default value when not processing a URI (e.g. when processing service parameters from DNR <xref target="RFC9463"/>) is empty.</t>
          </li>
          <li>
            <t><tt>no-default-alpn</tt>, <tt>mandatory</tt>, <tt>ipv4hint</tt>, <tt>ipv6hint</tt>:
Used as described in <xref section="7" sectionFormat="of" target="RFC9460"/>.</t>
          </li>
          <li>
            <t><tt>is-unique-proxy</tt>: This is a new parameter defined in this document,
and equivalent to the <tt>has-unique-proxy</tt> in its semantics.  </t>
            <t>
Its value is empty.</t>
          </li>
          <li>
            <t>Applications may extend the supported parameters.
In particular, <xref target="I-D.ietf-core-dns-over-coap"/> has already introduced the <tt>docpath</tt> parameter
which indicates a path at which DNS-over-CoAP is available at the given address.</t>
          </li>
        </ul>
        <t>The following parameters are under consideration for inclusion in this list,
but it is unsure whether they are suitable.
Those parameters would describe the origin server
and not the individual (proxy) transport through which it can be reached.</t>
        <ul spacing="normal">
          <li>
            <t><tt>cred</tt>: This is a new parameter defined in this document, and describes COSE credentials that can authenticate the server, e.g. when used with EDHOC.  </t>
            <t>
The <tt>cred</tt> parameter's value is a CBOR sequence of COSE Header maps as defined in <xref target="RFC9052"/>.
If the parameter is present, it indicates that
the server can be authenticated by any credential expressed in the sequence.
This is similar to the TLSA records specified in <xref target="RFC6698"/>.  </t>
            <t>
A COSE Header map can express many properties, not all of which are sufficient to authenticate a peer on any given security mechanism.
Without excluding applications that may process other entries,
a practical criterion for whether a header map is suitable for EDHOC is that the header map could also be used in EDHOC as <tt>ID_CRED_R</tt>
if the credential is sent by value.  </t>
            <t>
For example, a header map with a <tt>kccs</tt> entry can be used to indicate a public key including a Key ID (<tt>kid</tt>),
and that public key does not need to be sent during the EDHOC exchange.
Alternatively, a header map with an <tt>x5t</tt> identifies the end entity certificate the server presents by a thumbprint (hash).  </t>
            <t>
It is up to the application to define requirements for the provenance of the <tt>cred</tt> parameter,
whether it needs to be provided through secure mechanism,
or whether the server is strictly required to present that credential.  </t>
            <t>
This is unlike TLSA, which needs to be transported through DNSSEC,
because a <tt>cred</tt> parameter may be sent using other means than DNS
(for example in DHCPv6 responses or Router Advertisements).</t>
          </li>
          <li>
            <t><tt>edhoc-info</tt>: This is a new parameter defined in this document, describing how EDHOC can be used on the server.  </t>
            <t>
The value of the parameter is a CBOR array following the <tt>APP_PROF_SEQ</tt> structure defined in <xref target="I-D.tiloca-lake-app-profiles"/>.  </t>
            <t>
It is optional to provide and optional to process, but can help speed up the establishment of a security context.</t>
          </li>
          <li>
            <t><tt>oauth-hints</tt>: This is a new parameter defined in this document,
describing how ACE-OAuth <xref target="RFC9200"/> can be used with this service.  </t>
            <t>
Its value is a CBOR map containing AS Request Creation Hints as described in <xref section="5.3" sectionFormat="of" target="RFC9200"/>.
While an empty map can be useful (hinting that the client should use its configured ACE-OAuth setup),
typical useful keys are
1 (AS, indicating the URI of the Authorization Server),
5 (audience, indicating the name under which the service is known to the Authorization Server),
and 9 (scope, when discovering a particular service rather than just getting transport information for a host).
That data is using the same shape the server might use when responding to an attempt at an unencrypted connection,
and can not only speed up the discovery of the right AS,
but can also protect that information (e.g. when DNSSEC is used),
and avoids the need for an unprotected first request.  </t>
            <t>
It is up to the application to define requirements for the use of such data.
For example,
it may require that the audience matches the requested host name,
or may require that the scope matches the kind of service being discovered.  </t>
            <t>
When expressed in text format, e.g. in DNS zone files,
the CBOR diagnostic notation <xref target="I-D.ietf-cbor-edn-literals"/> can be used.</t>
          </li>
        </ul>
        <section anchor="examples-of-using-name-resolution-discovery-and-parameters">
          <name>Examples of using name resolution discovery and parameters</name>
          <section anchor="generic-client-discovering-transport-options">
            <name>Generic client discovering transport options</name>
            <t>A generic client is directed to obtain <tt>coap://dev1.example.com/log</tt>
requests the name to be resolved using the system's resolution mechanisms,
resulting in a DNS query for these records:</t>
            <artwork><![CDATA[
_coap.dev1.example.com IN SVCB
dev1.example.com       IN AAAA
]]></artwork>
            <t>The following records are returned:</t>
            <artwork><![CDATA[
_coap.dev1.example.com IN SVCB 1 . alpn=COAP,CO
_coap.dev1.example.com IN SVCB 1 . alpn=co,coap port=5684
_coap.dev1.example.com IN SVCB 1 . alpn=CO port=61616
dev1.example.com       IN AAAA 2001:db8:1::1
]]></artwork>
            <t>Exceeding the single option it had with just the IP address,
it may now also choose to establish a TCP connection on the default port,
to use port 61616 for UDP (which results in more compact frames on a 6LoWPAN link),
or to use either of the TLS based options.</t>
          </section>
          <section anchor="application-mandating-svcb">
            <name>Application mandating SVCB</name>
            <t>An example application's policy is to mandate client support for SVCB records,
and to require that a security mechanism must be used where credentials are backed either by DNSSEC or by the Web PKI.</t>
            <t>A server operator is running in a legacy network that only provides an IPv4 address behind NAT with a dynamic public address,
but has PCP <xref target="RFC7291"/> available.
After running PCP to open a UDP port,
it learns that 1.2.3.4:5678 will be available for some time.</t>
            <t>It therefore updates its DNS record like this:</t>
            <artwork><![CDATA[
_coap.host.example.net 600 IN SVCB 1 publicudp.host.example.net       \
                       port=5678                                      \
                       cred={14:{... /KCCS with its public key/}}
]]></artwork>
            <t>When a client starts using <tt>coap://host.example.net/interactive</tt>,
it looks up that record and verifies it using DNSSEC.
It then proceeds to send EDHOC requests over CoAP to 1.2.3.4 port 5678,
setting the Uri-Host option to "host.example.net".</t>
            <t>The client could also have initiated an EDHOC session if no cred parameter had been present,
but then,
it would have required that the server present some credential that could be verified through the Web PKI,
for example an x5chain containing a Let's Encrypt certificate.</t>
          </section>
        </section>
      </section>
      <section anchor="svcb2uri">
        <name>Producing requests for a discovered service</name>
        <t>If a service's discovery process does not produce a URI but an address, host name and/or Service Binding Parameters,
those can be converted to a CoAP URI,
for which transport hints are already encoded in the parameters the URI is constructed from.
An example of this is DNS server discovery <xref target="I-D.ietf-core-coap-dtls-alpn"/>.</t>
        <t>While it is up to the service to define the service's semantics,
this section applies to any service
whose use with CoAP is defined by a normative referencing this section:</t>
        <ul spacing="normal">
          <li>
            <t>The client tries the available services with their ALPNs and CoAP transports
according to its capabilities
and the priorities and mandatory parameters
as defined for Service Bindings.</t>
          </li>
          <li>
            <t>The service either defines a well-known path,
or it defines a Service Binding Parameter that describes the service's path on the described endpoint,
or it defines both (and the well-known path is the default in absence of the defined parameter).  </t>
            <t>
The value is a CBOR sequence <xref target="RFC8742"/> of text strings,
which represent Uri-Path options in a CoAP request,
or (equivalently) the path of a CRI reference
<xref target="I-D.ietf-core-href"/>.  </t>
            <t>
A parameter value that is not a well-formed CBOR sequence,
or any item is not a text string,
is considerd malformed.  </t>
            <t>
When expressed in text format, e.g. in DNS zone files,
the CBOR diagnostic notation <xref target="I-D.ietf-cbor-edn-literals"/> can be used.  </t>
            <t>
To access the service,
a client sets the text string values
of the used Service Binding parameter
as Uri-Path options in the request.  </t>
            <t>
If the resource is unavailable,
the client may continue with options that have a larger SvcPriority value associated
(if such a property exists in the discovery method).  </t>
            <t>
An example of such an option is <tt>docpath</tt>
as defined in <xref target="I-D.ietf-core-dns-over-coap"/>.
(As that document precedes this one,
it repeats the same rules explicitly rather than reusing these rules).</t>
          </li>
          <li>
            <t>A Service Binding is accompanied by a hostname:
For example,
this is the hostname of the Encrypted DNS Resolver or the Special-Use Domain Name
in the case of <xref target="RFC9462"/> lookups,
or the authentication-domain-name in case of <xref target="RFC9463"/> DHCP options or Router Advertisements.  </t>
            <t>
Unless its value is identical to the default value for Uri-Host
(which is the case on transports with Server Name Indication (SNI)),
the that name is added in the Uri-Host option.</t>
          </li>
          <li>
            <t>If the <tt>port</tt> Service Binding Parameter is set,
the Uri-Port option is set to the port that set in the port prefix of the query
(or the used CoAP transport's default port),
unless that is its default value anyway.</t>
          </li>
          <li>
            <t>No Proxy-Scheme option is set.</t>
          </li>
        </ul>
        <t>By following the rules of <xref section="6.5" sectionFormat="of" target="RFC7252"/>
or the equivalent rules for the respective CoAP transport,
<!-- I'd rather not need that, see https://github.com/core-wg/corrclar/issues/38 -->
the service can be translated into a URI.
This implies URI aliasing between the composed URIs of all transports
if any of the transports use different schemes.</t>
        <t>The rules for setting Uri-Host and Uri-Port result in the authority component of the URI
being equal to the Binding Authority defined in <xref target="RFC9461"/>.</t>
        <t>Note that since different security policies may apply to service discovery
and other application components that dereference URIs,
any connections established while using the service
and cache entries created by it
need to be treated carefully,
for example by using separate connection and cache pools.</t>
      </section>
      <section anchor="svcblit">
        <name>Expressing Service Parameters as literals</name>
        <t>A method for expressing Service Parameters in URIs that do not use registered names
is described in <xref target="newlit"/>.</t>
        <t>Among other things,
that mechanism allows encoding the full information obtained during service discovery in a URI
instead of just the one choice taken.
It is also required if different CoAP transports are using the same scheme
(as is recommended in <xref target="upcomingtransports"/>)
with IP address literals in URIs,
for which unlike for resolved names no service parameters are available.</t>
      </section>
    </section>
    <section anchor="upcomingtransports">
      <name>Guidance to upcoming transports</name>
      <t>When new transports are defined for CoAP,
it is recommended to use the "coap" scheme
(or "coaps" for 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 how they are expressed in Service Binding records (<xref target="RFC9460"/>),
e.g., using an <tt>alpn</tt> parameter (which does not necessarily indicate the use of a TLS based transport),
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 components such as <tt>001122334455.ble.arpa</tt>.
Slipmux <xref target="I-D.bormann-t2trg-slipmux"/>
might use the locally significant device name <tt>/dev/ttyUSB0</tt>
as <tt>coap://ttyUSB0.dev.alt/</tt>.</t>
      <t>URIs created from such names may not indicate the protocol uniquely:
Additional transports specified later may also provide CoAP services for the same name.
In the sense of <xref target="identifying"/>,
both 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 URIs inside the origin of the link context.</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">has-unique-proxy</td>
              <td align="left">Like has-proxy, and using this proxy implies scheme and host of the target.</td>
              <td align="left">RFCthis</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="resource-types">
        <name>Resource Types</name>
        <t>IANA is 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 CPA-core.proxy with the actually registered attribute value. ]</t>
        <t>Attribute Value: core.proxy</t>
        <t>Description: Forward proxying services</t>
        <t>Reference: [ this document ]</t>
      </section>
      <section anchor="tls-application-layer-protocol-negotiation-alpn-protocol-ids">
        <name>TLS Application-Layer Protocol Negotiation (ALPN) Protocol IDs</name>
        <t>IANA is requested to add the following entries to the TLS Application-Layer Protocol Negotiation (ALPN) Protocol IDs
registry (<xref target="RFC7301"/>).</t>
        <t>The identification sequences are suggestions to be approvded by the reviewers</t>
        <table>
          <thead>
            <tr>
              <th align="left">Protocol</th>
              <th align="left">Identification sequence</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">CoAP (over UDP)</td>
              <td align="left">0x43 0x4f ("CO")</td>
              <td align="left">
                <xref target="RFC7252"/></td>
            </tr>
            <tr>
              <td align="left">CoAP (over TCP)</td>
              <td align="left">0x43 0x4f 0x41 0x50 ("COAP")</td>
              <td align="left">
                <xref target="RFC8323"/></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="service-parameter-key-svcparamkey">
        <name>Service Parameter Key (SvcParamKey)</name>
        <t>IANA is NOT YET requested to add the following entries to the SVCB Service Parameters
registry (<xref target="RFC9460"/>). The definition of this parameter can be found in <xref target="upcomingtransports"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Number</th>
              <th align="left">Name</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">to be assigned</td>
              <td align="left">cred</td>
              <td align="left">COSE credentials identifying the server</td>
            </tr>
            <tr>
              <td align="left">to be assigned</td>
              <td align="left">edhoc-info</td>
              <td align="left">EDHOC profile information</td>
            </tr>
            <tr>
              <td align="left">to be assigned</td>
              <td align="left">oauth-hints</td>
              <td align="left">Describes how to obtain a token at an ACE Authorization Server</td>
            </tr>
          </tbody>
        </table>
        <t>All entries have in common that their Reference is this this document, <xref target="svcparams"/>},
and that their change controller is IETF.</t>
      </section>
      <section anchor="iana-underscored">
        <name>Underscored and Globally Scoped DNS Node Names</name>
        <t>IANA is NOT YET requested to add the following entry to the Underscored and Globally Scoped DNS Node Names registry
(in the DNS Parameters group)
established in <xref target="RFC8552"/>
and thus enables its use with SVCB records:</t>
        <ul spacing="normal">
          <li>
            <t>SVCB, <tt>_coap</tt>, <xref target="svcb-discovery"/> of this document</t>
          </li>
        </ul>
        <t>The request for registration is deliberately not expressed at this point
because it is yet to be revisited whether the creation of a "COAP" RR
similar to the "HTTPS" RR would be preferable.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC8288">
          <front>
            <title>Web Linking</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="October" year="2017"/>
            <abstract>
              <t>This specification defines a model for the relationships between resources on the Web ("links") and the type of those relationships ("link relation types").</t>
              <t>It also defines the serialisation of such links in HTTP headers with the Link header field.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8288"/>
          <seriesInfo name="DOI" value="10.17487/RFC8288"/>
        </reference>
        <reference anchor="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="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="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC8742">
          <front>
            <title>Concise Binary Object Representation (CBOR) Sequences</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the Concise Binary Object Representation (CBOR) Sequence format and associated media type "application/cbor-seq". A CBOR Sequence consists of any number of encoded CBOR data items, simply concatenated in sequence.</t>
              <t>Structured syntax suffixes for media types allow other media types to build on them and make it explicit that they are built on an existing media type as their foundation. This specification defines and registers "+cbor-seq" as a structured syntax suffix for CBOR Sequences.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8742"/>
          <seriesInfo name="DOI" value="10.17487/RFC8742"/>
        </reference>
        <reference anchor="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="7" month="July" year="2025"/>
            <abstract>
              <t>   The Constrained Resource Identifier (CRI) is a complement to the
   Uniform Resource Identifier (URI) that represents the URI components
   in Concise Binary Object Representation (CBOR) rather than as a
   sequence of characters.  This approach simplifies parsing,
   comparison, and reference resolution in environments with severe
   limitations on processing power, code size, and memory size.

   This RFC updates RFC 7595 to add a note on how the "URI Schemes"
   registry of RFC 7595 cooperates with the "CRI Scheme Numbers"
   registry created by the present RFC.


   // (This "cref" paragraph will be removed by the RFC editor:) The
   // present revision –23 attempts to address the AD review comments;
   // it is submitted right before the I-D deadline in order to serve as
   // discussion input to IETF 123 even though not all discussions have
   // completed.  In particular, the updated handling of zone
   // identifiers requires some additional scrutiny.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-href-23"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="aliases" target="https://www.w3.org/TR/webarch/#uri-aliases">
          <front>
            <title>Architecture of the World Wide Web, Section 2.3.1 URI aliases</title>
            <author>
              <organization>W3C</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="cooluris" target="https://www.w3.org/Provider/Style/URI">
          <front>
            <title>Cool URIs don't change</title>
            <author initials="T." surname="BL" fullname="Tim BL">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="lwm2m" target="https://omaspecworks.org/white-paper-lightweight-m2m-1-1/">
          <front>
            <title>White Paper – Lightweight M2M 1.1</title>
            <author>
              <organization>OMA SpecWorks</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="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="SUIB" target="https://manysecured.net/wp-content/uploads/2022/09/ManySecured-SUIB-White-Paper.pdf">
          <front>
            <title>Router and IoT Vulnerabilities: Insecure by Design</title>
            <author>
              <organization/>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="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="25" month="September" year="2024"/>
            <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-07"/>
        </reference>
        <reference anchor="I-D.ietf-tls-esni">
          <front>
            <title>TLS Encrypted Client Hello</title>
            <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
              <organization>Independent</organization>
            </author>
            <author fullname="Kazuho Oku" initials="K." surname="Oku">
              <organization>Fastly</organization>
            </author>
            <author fullname="Nick Sullivan" initials="N." surname="Sullivan">
              <organization>Cryptography Consulting LLC</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Cloudflare</organization>
            </author>
            <date day="14" month="June" year="2025"/>
            <abstract>
              <t>   This document describes a mechanism in Transport Layer Security (TLS)
   for encrypting a ClientHello message under a server public key.

Discussion Venues

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

   Source for this draft and an issue tracker can be found at
   https://github.com/tlswg/draft-ietf-tls-esni
   (https://github.com/tlswg/draft-ietf-tls-esni).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-esni-25"/>
        </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.ietf-core-dns-over-coap">
          <front>
            <title>DNS over CoAP (DoC)</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="Cenk Gündoğan" initials="C." surname="Gündoğan">
              <organization>NeuralAgent GmbH</organization>
            </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="7" month="July" year="2025"/>
            <abstract>
              <t>   This document defines a protocol for exchanging DNS messages over the
   Constrained Application Protocol (CoAP).  These CoAP messages can be
   protected by DTLS-Secured CoAP (CoAPS) or Object Security for
   Constrained RESTful Environments (OSCORE) to provide encrypted DNS
   message exchange for constrained devices in the Internet of Things
   (IoT).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-dns-over-coap-16"/>
        </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="6" month="November" year="2024"/>
            <abstract>
              <t>   A collection of extensions to the Resource Directory [rfc9176] that
   can stand on their own, and have no clear future in specification
   yet.

Discussion Venues

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-amsuess-core-resource-directory-extensions-11"/>
        </reference>
        <reference anchor="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="RFC9463">
          <front>
            <title>DHCP and Router Advertisement Options for the Discovery of Network-designated Resolvers (DNR)</title>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="T. Reddy.K" initials="T." role="editor" surname="Reddy.K"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <author fullname="N. Cook" initials="N." surname="Cook"/>
            <author fullname="T. Jensen" initials="T." surname="Jensen"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document specifies new DHCP and IPv6 Router Advertisement options to discover encrypted DNS resolvers (e.g., DNS over HTTPS, DNS over TLS, and DNS over QUIC). Particularly, it allows a host to learn an Authentication Domain Name together with a list of IP addresses and a set of service parameters to reach such encrypted DNS resolvers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9463"/>
          <seriesInfo name="DOI" value="10.17487/RFC9463"/>
        </reference>
        <reference anchor="I-D.lenders-core-dnr">
          <front>
            <title>Discovery of Network-designated OSCORE-based Resolvers: Problem Statement</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="7" month="July" year="2025"/>
            <abstract>
              <t>   This document states problems when designing DNS SVCB records to
   discover endpoints that communicate over Object Security for
   Constrained RESTful Environments (OSCORE) [RFC8613].  As a
   consequence of learning about OSCORE, this discovery will allow a
   host to learn both CoAP servers and DNS over CoAP resolvers that use
   OSCORE to encrypt messages and Ephemeral Diffie-Hellman Over COSE
   (EDHOC) [RFC9528] for key exchange.  Challenges arise because SVCB
   records are not meant to be used to exchange security contexts, which
   is required in OSCORE scenarios.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-lenders-core-dnr-06"/>
        </reference>
        <reference anchor="I-D.amsuess-t2trg-onion-coap">
          <front>
            <title>Using onion routing with CoAP</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <date day="17" month="November" year="2024"/>
            <abstract>
              <t>   The CoAP protocol was designed with direct connections and proxies in
   mind.  This document defines mechanisms by which chains of proxies
   can be set up.  In combination, they enable the operation of hidden
   services and of clients similar to how Tor (The Onion Router) enables
   it for TCP-based protocols.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-amsuess-t2trg-onion-coap-03"/>
        </reference>
        <reference anchor="I-D.ietf-core-coap-dtls-alpn">
          <front>
            <title>ALPN ID Specification for CoAP over DTLS</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="1" month="April" year="2025"/>
            <abstract>
              <t>   This document specifies an Application-Layer Protocol Negotiation
   (ALPN) ID for transport-layer-secured Constrained Application
   Protocol (CoAP) services.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-coap-dtls-alpn-04"/>
        </reference>
        <reference anchor="RFC6698">
          <front>
            <title>The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Schlyter" initials="J." surname="Schlyter"/>
            <date month="August" year="2012"/>
            <abstract>
              <t>Encrypted communication on the Internet often uses Transport Layer Security (TLS), which depends on third parties to certify the keys used. This document improves on that situation by enabling the administrators of domain names to specify the keys used in that domain's TLS servers. This requires matching improvements in TLS client software, but no change in TLS server software. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6698"/>
          <seriesInfo name="DOI" value="10.17487/RFC6698"/>
        </reference>
        <reference anchor="I-D.tiloca-lake-app-profiles">
          <front>
            <title>Coordinating the Use of Application Profiles for Ephemeral Diffie-Hellman Over COSE (EDHOC)</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="21" month="October" year="2024"/>
            <abstract>
              <t>   The lightweight authenticated key exchange protocol Ephemeral Diffie-
   Hellman Over COSE (EDHOC) requires certain parameters to be agreed
   out-of-band, in order to ensure its successful completion.  To this
   end, application profiles specify the intended use of EDHOC to allow
   for the relevant processing and verifications to be made.  This
   document defines a number of means to coordinate the use and
   discovery of EDHOC application profiles.  Also, it defines a
   canonical, CBOR-based representation that can be used to describe,
   distribute, and store EDHOC application profiles.  Finally, this
   document defines a set of well-known EDHOC application profiles.

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

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

   It also specifies and uses registry-based extension points, using one
   to support text representations of epoch-based dates/times and of IP
   addresses and prefixes.


   // (This cref will be removed by the RFC editor:) The present -18
   // corrects a few omissions from -17; it is not intended to make
   // technical changes from -17.  It is intended for use as an input
   // document for the CBOR WG meeting at IETF 123.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-18"/>
        </reference>
        <reference anchor="RFC7291">
          <front>
            <title>DHCP Options for the Port Control Protocol (PCP)</title>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair"/>
            <author fullname="R. Penno" initials="R." surname="Penno"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <date month="July" year="2014"/>
            <abstract>
              <t>This document specifies DHCP (IPv4 and IPv6) options to configure hosts with Port Control Protocol (PCP) server IP addresses. The use of DHCPv4 or DHCPv6 depends on the PCP deployment scenarios. The set of deployment scenarios to which DHCPv4 or DHCPv6 can be applied is outside the scope of this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7291"/>
          <seriesInfo name="DOI" value="10.17487/RFC7291"/>
        </reference>
        <reference anchor="RFC9462">
          <front>
            <title>Discovery of Designated Resolvers</title>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="E. Kinnear" initials="E." surname="Kinnear"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <author fullname="P. McManus" initials="P." surname="McManus"/>
            <author fullname="T. Jensen" initials="T." surname="Jensen"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document defines Discovery of Designated Resolvers (DDR), a set of mechanisms for DNS clients to use DNS records to discover a resolver's encrypted DNS configuration. An Encrypted DNS Resolver discovered in this manner is referred to as a "Designated Resolver". These mechanisms can be used to move from unencrypted DNS to encrypted DNS when only the IP address of a resolver is known. These mechanisms are designed to be limited to cases where Unencrypted DNS Resolvers and their Designated Resolvers are operated by the same entity or cooperating entities. It can also be used to discover support for encrypted DNS protocols when the name of an Encrypted DNS Resolver is known.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9462"/>
          <seriesInfo name="DOI" value="10.17487/RFC9462"/>
        </reference>
        <reference anchor="RFC9461">
          <front>
            <title>Service Binding Mapping for DNS Servers</title>
            <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>The SVCB DNS resource record type expresses a bound collection of endpoint metadata, for use when establishing a connection to a named service. DNS itself can be such a service, when the server is identified by a domain name. This document provides the SVCB mapping for named DNS servers, allowing them to indicate support for encrypted transport protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9461"/>
          <seriesInfo name="DOI" value="10.17487/RFC9461"/>
        </reference>
        <reference anchor="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="RFC7301">
          <front>
            <title>Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension</title>
            <author fullname="S. Friedl" initials="S." surname="Friedl"/>
            <author fullname="A. Popov" initials="A." surname="Popov"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="E. Stephan" initials="E." surname="Stephan"/>
            <date month="July" year="2014"/>
            <abstract>
              <t>This document describes a Transport Layer Security (TLS) extension for application-layer protocol negotiation within the TLS handshake. For instances in which multiple application protocols are supported on the same TCP or UDP port, this extension allows the application layer to negotiate which protocol will be used within the TLS connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7301"/>
          <seriesInfo name="DOI" value="10.17487/RFC7301"/>
        </reference>
        <reference anchor="RFC8552">
          <front>
            <title>Scoped Interpretation of DNS Resource Records through "Underscored" Naming of Attribute Leaves</title>
            <author fullname="D. Crocker" initials="D." surname="Crocker"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>Formally, any DNS Resource Record (RR) may occur under any domain name. However, some services use an operational convention for defining specific interpretations of an RRset by locating the records in a DNS branch under the parent domain to which the RRset actually applies. The top of this subordinate branch is defined by a naming convention that uses a reserved node name, which begins with the underscore character (e.g., "_name"). The underscored naming construct defines a semantic scope for DNS record types that are associated with the parent domain above the underscored branch. This specification explores the nature of this DNS usage and defines the "Underscored and Globally Scoped DNS Node Names" registry with IANA. The purpose of this registry is to avoid collisions resulting from the use of the same underscored name for different services.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="222"/>
          <seriesInfo name="RFC" value="8552"/>
          <seriesInfo name="DOI" value="10.17487/RFC8552"/>
        </reference>
        <reference anchor="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="RFC5952">
          <front>
            <title>A Recommendation for IPv6 Address Text Representation</title>
            <author fullname="S. Kawamura" initials="S." surname="Kawamura"/>
            <author fullname="M. Kawashima" initials="M." surname="Kawashima"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>As IPv6 deployment increases, there will be a dramatic increase in the need to use IPv6 addresses in text. While the IPv6 address architecture in Section 2.2 of RFC 4291 describes a flexible model for text representation of an IPv6 address, this flexibility has been causing problems for operators, system engineers, and users. This document defines a canonical textual representation format. It does not define a format for internal storage, such as within an application or database. It is expected that the canonical format will be followed by humans and systems when representing IPv6 addresses as text, but all implementations must accept and be able to handle any legitimate RFC 4291 format. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5952"/>
          <seriesInfo name="DOI" value="10.17487/RFC5952"/>
        </reference>
        <reference anchor="RFC1123">
          <front>
            <title>Requirements for Internet Hosts - Application and Support</title>
            <author fullname="R. Braden" initials="R." role="editor" surname="Braden"/>
            <date month="October" year="1989"/>
            <abstract>
              <t>This RFC is an official specification for the Internet community. It incorporates by reference, amends, corrects, and supplements the primary protocol standards documents relating to hosts. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="3"/>
          <seriesInfo name="RFC" value="1123"/>
          <seriesInfo name="DOI" value="10.17487/RFC1123"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="I-D.silverajan-core-coap-protocol-negotiation">
          <front>
            <title>CoAP Protocol Negotiation</title>
            <author fullname="Bill Silverajan" initials="B." surname="Silverajan">
              <organization>TUT</organization>
            </author>
            <author fullname="Mert Ocak" initials="M." surname="Ocak">
              <organization>Ericsson</organization>
            </author>
            <date day="2" month="July" year="2018"/>
            <abstract>
              <t>   CoAP has been standardised as an application-level REST-based
   protocol.  When multiple transport protocols exist for exchanging
   CoAP resource representations, this document introduces a way forward
   for CoAP endpoints as well as intermediaries to agree upon alternate
   transport and protocol configurations as well as URIs for CoAP
   messaging.  Several mechanisms are proposed: Extending the CoRE
   Resource Directory with new parameter types, introducing a new CoAP
   Option with which clients can interact directly with servers without
   needing the Resource Directory, and finally a new CoRE Link Attribute
   allowing exposing alternate locations on a per-resource basis.

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

<section anchor="change-log">
      <name>Change log</name>
      <t><cref anchor="remove-changelog">This section is to be removed before publication.</cref></t>
      <t>Since draft-ietf-core-transport-indication-08:</t>
      <ul spacing="normal">
        <li>
          <t>Explicitly become an SVCB mapping document for the CoAP schemes.</t>
        </li>
        <li>
          <t>Remove coaptransport parameter; instead, request ALPNs for remaining protocols.</t>
        </li>
        <li>
          <t>Point out issue about some metadata pertaining to transport choices and some metadata pertaining to the server itself.</t>
        </li>
        <li>
          <t>Acknowledge that there is structure (eg. in SVCB lookups) that is conceptually flattened.</t>
        </li>
        <li>
          <t>Sulkily accept DNS-over-CoAP reaching into target names as an exception in security requirements.</t>
        </li>
        <li>
          <t>Editorial updates.</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-07:</t>
      <ul spacing="normal">
        <li>
          <t>Update sections 1 and 2:
          </t>
          <ul spacing="normal">
            <li>
              <t>Work more explicitly with 7252's resolution services.</t>
            </li>
            <li>
              <t>List (coarsely) the information received from resolution services.</t>
            </li>
            <li>
              <t>Homogenize treatment of proxy URIs and other resolution service outcomes.</t>
            </li>
            <li>
              <t>Point out parallels to /etc/hosts.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Phrase possible differences w/rt hop-to-hop vs. end-to-end encryption more carefully.</t>
        </li>
        <li>
          <t>SVCB: Rename edhoc-cred to cred.</t>
        </li>
        <li>
          <t>Rework literals following discussion around onion-coap.</t>
        </li>
        <li>
          <t>Point out the fates of appendices.</t>
        </li>
        <li>
          <t>Editorial fixes.</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-06:</t>
      <ul spacing="normal">
        <li>
          <t>Split introduction into terminology (with new definitions), goals and concepts.</t>
        </li>
        <li>
          <t>Add principle of operation into abstract, elevating SVCB and has-proxy to equally ranked sources of endpoint information.</t>
        </li>
        <li>
          <t>Restructure document to split overview and operations from the concrete methods of obtaining endpoints.</t>
        </li>
        <li>
          <t>Add is-unique-proxy SVCB parameter equivalent to has-unique-proxy relation.</t>
        </li>
        <li>
          <t>Remove <tt>_coaps</tt> service, describing <tt>_coap</tt> as applying to all CoAP transports.</t>
        </li>
        <li>
          <t>Add SVCB to abstract.</t>
        </li>
        <li>
          <t>Remove distracting text on URIs identifying transports/endpoints.</t>
        </li>
        <li>
          <t>Editorial changes.</t>
        </li>
        <li>
          <t>IANA considerations: Set change controller to IETF.</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-05:</t>
      <ul spacing="normal">
        <li>
          <t>Semantics for where a has-proxy applies were changed from "wherever there is a <tt>hosts</tt> relation" to "across the same origin".  </t>
          <t>
The <tt>hosts</tt> relation has received complaints about its complexity,
and there were no strong voices in either direction during or after IETF119 when the question has been asked;
going for the easier version.</t>
        </li>
        <li>
          <t>Use of SVCB is added as a section. Underscore prefixes are registered for CoAP, enabling the use of SVCB DNS records for applications that opt in to it (rather than processing it as an alternative history).  </t>
          <t>
While the alternative history section was appreciated during IETF119,
the authors found it highly impractical to provide SVCB ground work without having the actual registrations
(it would have worked only because DNS discovery acts on a separate <tt>_dns</tt> prefix anyway),
and chose the consistent approach of allowing SVCB lookups.</t>
        </li>
        <li>
          <t>Material from the DNS and DNR for CoAP documents was moved in (and overhauled in the process):  </t>
          <ul spacing="normal">
            <li>
              <t>Constructing CoAP requests from Service Parameters that did not result from a host name lookup is described.</t>
            </li>
            <li>
              <t>The coaptransport SVCB parameter is defined.</t>
            </li>
            <li>
              <t>SVCB hints for ACE/OAuth are defined.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Section on how a host can tell that Uri-Host is optional was moved from Open Questions into a section.  </t>
          <t>
This had been around for ages,
and gathering some more experience with the matter,
looks like the obvious approach.</t>
        </li>
        <li>
          <t>Editorial:  </t>
          <ul spacing="normal">
            <li>
              <t>Style for unallocated registrations changed from TBD to CPA</t>
            </li>
            <li>
              <t>References updated</t>
            </li>
            <li>
              <t>Tooling updates</t>
            </li>
            <li>
              <t>Minor fixes</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-04:</t>
      <ul spacing="normal">
        <li>
          <t>Not just the scheme, but also the authority value influences the transport selection.
          </t>
          <ul spacing="normal">
            <li>
              <t>Add guidance section for new transports.</t>
            </li>
            <li>
              <t>Point out that registerd names already can fan out to different addresses.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Rephrase and simplify security considerations, especially by limiting unique proxying for TLS.</t>
        </li>
        <li>
          <t>Add recommendation to new scheme authors to use "coap"/"coaps" and let the resolution process guide the selection.
          </t>
          <ul spacing="normal">
            <li>
              <t>Remove proxy-schemes attribute from core.proxy because of its greatly reduced value.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Update "Related work" appendix to cover SVCB instead of SRV records</t>
        </li>
        <li>
          <t>Rename to "Transport Indication", using "protocol" only for other protocols, in established phrases, or when referring to CoAP as a general protocol.</t>
        </li>
        <li>
          <t>Add note linking CoAP-over-WS's .well-known/coap to dohpath</t>
        </li>
        <li>
          <t>Remove OSCORE vs. unique-proxy open point</t>
        </li>
        <li>
          <t>EDHOC EAD: Describe response option content</t>
        </li>
        <li>
          <t>Editorial updates</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-03:</t>
      <ul spacing="normal">
        <li>
          <t>Added appendices on alternative history and Literals beyond IP addresses.
The remaining document was not brought in sync with those new parts.</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-02:</t>
      <ul spacing="normal">
        <li>
          <t>Added EAD appendix, adjusted security considerations to match.</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-01:</t>
      <ul spacing="normal">
        <li>
          <t>Simplify same-host proxy behavior by referring to existing RFC7252 mandate.</t>
        </li>
        <li>
          <t>proxy-links= lookup: Refer to prior art.</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-00:</t>
      <ul spacing="normal">
        <li>
          <t>Add section on canonical URIs that are not necessarily reachable.</t>
        </li>
        <li>
          <t>Clarify that the the "hosts" relation is followed transitively.</t>
        </li>
        <li>
          <t>Cross reference with compatible multicast-notifications concept.</t>
        </li>
      </ul>
      <t>Since draft-amsuess-core-transport-indication-03:</t>
      <ul spacing="normal">
        <li>
          <t>No changes (merely changing the name after WG adoption)</t>
        </li>
      </ul>
      <t>Since -02 (mainly processing reviews from Marco and Klaus):</t>
      <ul spacing="normal">
        <li>
          <t>Acknowledge that 'coap://hostname/' is not the proxy but a URI that (in a particular phrasing) is used to stand in for the proxy's address (while it regularly identifies a resurce on the server)</t>
        </li>
        <li>
          <t>Security: Referencing traffic misdirection already in the first security block.</t>
        </li>
        <li>
          <t>Security: Add (incomplete) considerations for unique-proxy case.</t>
        </li>
        <li>
          <t>Narrow down "unique" proxy semantics to those properties used by the client, allowing unique proxies to be co-hosted with forward proxies.</t>
        </li>
        <li>
          <t>"Client picked proxies" clarified to merely illustrate how this is compatible with them.</t>
        </li>
        <li>
          <t>Use of "hosts" relation sharpened.</t>
        </li>
        <li>
          <t>Precision on how this does and does not consider changing transports.</t>
        </li>
        <li>
          <t>"Related work" section demoted to appendix.</t>
        </li>
        <li>
          <t>Add note on DTLS session resumption.</t>
        </li>
        <li>
          <t>Variable renaming.</t>
        </li>
        <li>
          <t>Various editorial fixes.</t>
        </li>
      </ul>
      <t>Since -01:</t>
      <ul spacing="normal">
        <li>
          <t>Removed suggestion for generally trusted proxies;
now stating that with (D)TLS,
"a third party proxy can usually not satisfy [the security context propagation requirement]".</t>
        </li>
        <li>
          <t>State more clearly that valid cache entries for resources aliased through has-unique-proxy can be used.</t>
        </li>
        <li>
          <t>Added considerations for Multipath TCP.</t>
        </li>
        <li>
          <t>Added concrete suggestion and example for advertisement of general proxies.</t>
        </li>
        <li>
          <t>Added concrete suggestion for RD lookup extension that provides proxies.</t>
        </li>
        <li>
          <t>Minor editorial and example changes.</t>
        </li>
      </ul>
      <t>Since -00:</t>
      <ul spacing="normal">
        <li>
          <t>Added introduction</t>
        </li>
        <li>
          <t>Added examples</t>
        </li>
        <li>
          <t>Added SCHC analogy</t>
        </li>
        <li>
          <t>Expanded security considerations</t>
        </li>
        <li>
          <t>Added guidance on choice of transport, and canonical addresses</t>
        </li>
        <li>
          <t>Added subsection on interaction with a Resource Directory</t>
        </li>
        <li>
          <t>Added comparisons with related work, including rdlink and DNS-SD sketches</t>
        </li>
        <li>
          <t>Added IANA considerations</t>
        </li>
        <li>
          <t>Added section on open questions</t>
        </li>
      </ul>
    </section>
    <section anchor="related-work-and-applicability-to-related-fields">
      <name>Related work and applicability to related fields</name>
      <t><cref anchor="remove-relatedwork">This section is to be removed before submission to the IESG, with at least the MP-TCP section worked into corr-clar.</cref></t>
      <section anchor="on-http">
        <name>On HTTP</name>
        <t>The mechanisms introduced here are similar to the Alt-Svc header of <xref target="RFC7838"/>
in that they do not create different application-visible addresses,
but provide dispatch through lower transport implementations.</t>
        <t>In HTTP, different versions of the protocol (i.e., different transports)
are distinguished using a protocol identifier equivalent to an ALPN.
This works well because all relevant transports use transport layer security and thus can use ALPNs.
In contrast, the currently specified CoAP transports predate ALPNs,
and 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.</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>
      <t><cref anchor="remove-openquestions">This section is to be either converted into concrete guidance, or removed before submission to the IESG.</cref></t>
      <ul spacing="normal">
        <li>
          <t>Advertising under a stable name:  </t>
          <t>
If a host wants to advertise its 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>
              <t>understanding the has-unique-proxy line,</t>
            </li>
            <li>
              <t>understanding that the request that went to 2001:db8::1 was really a Proxy-Scheme/Uri-Host-elided version of a request to coap://myhostname, and then</t>
            </li>
            <li>
              <t>processing any relative reference with this new base in mind.</t>
            </li>
          </ul>
          <t>
(Not that it'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><cref anchor="remove-edhocead">This section is to be moved into another document, possibly <tt>groupcomm-proxy</tt>.</cref></t>
      <t>This document sketches an extension to <xref target="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 24-CPA, 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>
      <t>[ While using an EDHOC EAD is suitable for connection setup,
   such a mechanism may also be useful at a later time,
   e.g. to re-check a server's address after a name change;
   establishing an equivalent CoAP option is being considered,
   also oin light of the discussion around https://github.com/core-wg/corrclar/pull/40 and https://github.com/core-wg/groupcomm-proxy/issues/3.
   ]</t>
    </section>
    <section anchor="newlit">
      <name>Literals beyond IP addresses</name>
      <t>[
This section is placed here preliminarily:
After initial review in CoRE, this may be better moved into a separate document aiming for a wider IETF audience.
]</t>
      <section anchor="motivation-for-new-literal-ish-names">
        <name>Motivation for new literal-ish names</name>
        <t>IP literals were part of URIs from the start <xref target="w3address"/>.
Initially, they were equivalent to 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 ordered list of key-value component pairs,
and the common suffix <tt>service.arpa</tt>.</t>
        <t>These pairs represent the very items also produced by <xref target="processing-scheme-authority"/>.
In the current version, they can <em>not</em> express multiple entries with different structures.
They can express different entries, but any repeated items (e.g. different ALPNs and IP addresses)
only produce their product
(i.e., no "TCP on this or that address, TLS on another").</t>
        <t>Keeping with the style of DNS (least significant component first),
pairs are expressed with their data a first label, followed by the key in a separate label.
Data items ending with a "-" character are concatenated with their previous label to avoid overflowing the 63-octet limit of DNS
(even though those do not wind up in DNS serialization).</t>
        <t>For example, "world.hello-.label.8080.port" contains,
in that order,
information about port 8080 and the label "helloworld".</t>
        <t>Initial component types are:</t>
        <ul spacing="normal">
          <li>
            <t>"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>"cred", "edhoc-info", "oauth-info": SvcbParams in base32 encoding of their wire format.</t>
          </li>
          <li>
            <t>"alpn": The ALPN(s) in hexadecimal encoding, separated by dashes.</t>
          </li>
        </ul>
        <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>
            <t>http://683263.alpn.2001-db8--1.6.service.arpa/ -- The server is reachable on 2001:db8::1 using HTTP/2 (h2c is 683263 in hex)</t>
          </li>
          <li>
            <t>https://amaqckrkfivcukrkfivcukrkfivcukrkfivcukrkfivcukrkfivcukrk.tlsa.service.arpa/ -- No address information is provided, the client needs to resort to other discovery mechanisms.
Any server is eligible to serve the resource if it can present a (possibly self-signed) certificate whose public key SHA256 matches the encoded value.</t>
          </li>
          <li>
            <t>coap://434f4150.alpn.2001-db8--1.6.rai3ouj4a.ueekcandaeasabbblaqlxq2jmbjg5jgtf2kazljkenaurxocc6i2ckx3zowjgy-.cred.service.arpa/ -- The server is reachable using CoAP over TCP with any security mechanism at 2001:db8::1, and the service is identifiable by the use of a KCCS credential describing an X25519 public key (which is currently only usable with EDHOC).</t>
          </li>
          <li>
            <t>coap://rai3ouj4a.ueekcandaeasabbblaqlxq2jmbjg5jgtf2kazljkenaurxocc6i2ckx3zowjgyr-.cred.service.arpa/ -- The same server without any discoverability hints; it is up to the client to discover a (possibly short-lived) connection opportunities to the server identified by that key.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>This document 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:
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
R6+ZqGAfbo2zL8EuOdJbKNzm/WQ8cIDgT5+S6JDF5wt5NuxJrrhE5BKWyRo6
sfM9UxTliHpS/FcASf/MtD6lb2NE7XpF76F9459L+w4QRJeEo5V6pgLfqXQr
VCWXwe1XBhert8t72kPHs/Br5BGAQ60Dl8nKXXyotEcPltKrHqfMxYxx+fkt
4LAgFyGgdXQAWjXbOUGkG4Ls556LgEC0mx/CAcR9xKwRT7BzqCF+srxbBrQ6
U1OyBTtPaSqRNEvrw/2KgQUOXJkxeEhdG4+8hs8vB5KNvEv+1guZKZsZhFAG
mhHpXQY/XZA3ef27i98/pUu/c79+ylZRVX/Xu+xd76tszjScoH6U4uMyyec4
/1jkCB/0y343ebor6XoRJb+5rgiSO1WcmsXWIREUuMU7aRIUC0lhksVO7S2B
h6/KylLp3mAS1GZ00qVmJWMZspgN7KDS9ALqwEWnyX/l/8hU/euIb/jjbHZ4
PBrNpr+OHj56fMIrTXYYuUJcofvTs6vEHPBRejC8zReLAcxflHrjb/+yzrly
t5h912bzkfnwdCL64qnDKh7J2kZxC7yPfS6GaQ1+hJAYheDqA94UA5EeyUW2
4VK7UfK7KN7x+6f04t7uN/f6ye/uCprctWG4Nt3PzdZweXpo1oPpCaMcI2SE
wxkLh5q8BoCUrjrUOTkeHj5MdQLCv7pvPXkyPPrv/+1Ml+zjKL03K+YDv/tR
6fjd/XOTvbB/JPY6gNel8E6XOvO32tG6r8AKJ78tzJduinzBacrbSiLdI1w3
K+qmdRogTrlqcITEYTmNLsmQfQnslz2axP0QBNotmFos4qAwxKEit30WQFxP
zWwUTfARsAajlPWGbEhybp0vV0Qlgg6w9jSBvV/MUpq7mi03De1iEgaLClEc
ER96Uz9EvLhYh9hzLqUQ3O0FyW9Fj2SpGFXAkILXq1zgahI9Znx4I2UYLvWw
I4EAFXdpmHYUrn6AYF5lc9NytGST9sMg+CXrO4Yg231RyEUgQAAj6FfTkmnU
MqzJqrpYhuTl28srXg1cBUXnysoWG/tq/xGmt0y4qjMfJhKH7NNkcTQKpmwg
kxsaTqPInRgZJhEMEsMLEvu2+dhZdIraztCehJt9Rsnl7d8X+a0CGMkTlsXk
yh67wxVgxHd4byyaW8PS+A+CM+9WwhIUvDHc/raYFqLHPvrl/dDIvbRIngOS
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

-->

</rfc>
