<?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.17 (Ruby 3.3.1) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-lenders-core-coap-dtls-svcb-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.0 -->
  <front>
    <title abbrev="CoRE SVCB">Service Binding and Parameter Specification for CoAP over (D)TLS</title>
    <seriesInfo name="Internet-Draft" value="draft-lenders-core-coap-dtls-svcb-00"/>
    <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>
    <author initials="C." surname="Amsüss" fullname="Christian Amsüss">
      <organization/>
      <address>
        <email>christian@amsuess.com</email>
      </address>
    </author>
    <author fullname="Thomas C. Schmidt">
      <organization>HAW Hamburg</organization>
      <address>
        <postal>
          <street>Berliner Tor 7</street>
          <city>Hamburg</city>
          <code>D-20099</code>
          <country>Germany</country>
        </postal>
        <email>t.schmidt@haw-hamburg.de</email>
      </address>
    </author>
    <author initials="M." surname="Wählisch" fullname="Matthias Wählisch">
      <organization abbrev="TU Dresden &amp; Barkhausen Institut">TUD Dresden University of Technology &amp; Barkhausen Institut</organization>
      <address>
        <postal>
          <street>Helmholtzstr. 10</street>
          <city>Dresden</city>
          <code>D-01069</code>
          <country>Germany</country>
        </postal>
        <email>m.waehlisch@tu-dresden.de</email>
      </address>
    </author>
    <date year="2024" month="June" day="21"/>
    <area>Web and Internet Transport</area>
    <workgroup>Constrained RESTful Environments</workgroup>
    <keyword>CoRE</keyword>
    <keyword>CoAP</keyword>
    <keyword>SVCB</keyword>
    <keyword>DTLS</keyword>
    <abstract>
      <?line 64?>

<t>This document specifies the usage of Service Parameters as used in SVCB ("Service Binding") DNS resource
records for the discovery of transport-layer-secured CoAP services.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://anr-bmbf-pivot.github.io/draft-lenders-core-coap-dtls-svcb/draft-lenders-core-coap-dtls-svcb.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-lenders-core-coap-dtls-svcb/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Constrained RESTful Environments 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/anr-bmbf-pivot/draft-lenders-core-coap-dtls-svcb"/>.</t>
    </note>
  </front>
  <middle>
    <?line 69?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="RFC9460"/> specifies the "SVCB" ("Service Binding") DNS resource records for looking up
communication endpoints of a service. Service Parameters (SvcParams) are used to
carry that information.
This document specifies which information from SvcParams can be used with CoAP services that are
secured by transport security, namely TLS and DTLS.
As an example, this information can be obtained as part of the discovery of DNS over CoAP (DoC) servers (see
<xref target="I-D.ietf-core-dns-over-coap"/>) that deploy TLS or DTLS to secure their messages.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>SvcParams denotes the field in either DNS SVCB/HTTPS records as defined in <xref target="RFC9460"/>, or DHCP and RA
messages as defined in <xref target="RFC9463"/>.</t>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="application-layer-protocol-negotiation-alpn-ids">
      <name>Application-Layer Protocol Negotiation (ALPN) IDs</name>
      <t><xref target="RFC9460"/> defines the "alpn" key, which is used to identify the service binding to a protocol suite
using its Application-Layer Protocol Negotiation (ALPN) ID <xref target="RFC7301"/>.
For CoAP over TLS an ALPN ID was defined in <xref target="RFC8323"/>.
As it is not advisable to re-use the same ALPN ID for a different transport layer, an ALPN for
CoAP over DTLS is also registered in <xref target="iana"/>.
To discover CoAP services that secure their messages with TLS or DTLS, these ALPN IDs can be used in
the same manner as for any other service secured with transport layer security, as
described in <xref target="RFC9460"/>.
Other authentication mechanisms are currently out of scope.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Any security considerations on SVCB resource records (see <xref target="RFC9460"/>), also apply to this document.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="tls-alpn-for-coap">
        <name>TLS ALPN for CoAP</name>
        <t>The following entry has been added to the
"TLS Application-Layer Protocol Negotiation (ALPN) Protocol IDs" registry,
which is part of the "Transport Layer Security (TLS) Extensions" group.</t>
        <ul spacing="normal">
          <li>
            <t>Protocol: CoAP (over DTLS)</t>
          </li>
          <li>
            <t>Identification sequence: 0x63 0x6f ("co")</t>
          </li>
          <li>
            <t>Reference: <xref target="RFC7252"/> and [this document]</t>
          </li>
        </ul>
        <t>Note that <xref target="RFC7252"/> does not define the use of the ALPN TLS extension during connection the DTLS handshake.
This document does not change that, and thus does not establish any rules like those in <xref section="8.2" sectionFormat="of" target="RFC8323"/>.</t>
      </section>
    </section>
  </middle>
  <back>
    <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="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="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="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="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <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.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>Huawei Technologies</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="4" month="March" year="2024"/>
            <abstract>
              <t>   This document defines a protocol for sending DNS messages over the
   Constrained Application Protocol (CoAP).  These CoAP messages are
   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-06"/>
        </reference>
      </references>
    </references>
    <?line 138?>

<section anchor="change-log">
      <name>Change Log</name>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
