<?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.18 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-lenders-core-coap-dtls-svcb-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.0 -->
  <front>
    <title abbrev="CoRE ALPN">ALPN ID Specification for CoAP over DTLS</title>
    <seriesInfo name="Internet-Draft" value="draft-lenders-core-coap-dtls-svcb-01"/>
    <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="August" day="27"/>
    <area>Web and Internet Transport</area>
    <workgroup>Constrained RESTful Environments</workgroup>
    <keyword>CoRE</keyword>
    <keyword>CoAP</keyword>
    <keyword>SVCB</keyword>
    <keyword>DTLS</keyword>
    <keyword>ALPN</keyword>
    <abstract>
      <?line 65?>

<t>This document specifies an Application-Layer Protocol Negotiation (ALPN) ID for
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 70?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Application-Layer Protocol Negotiation (ALPN) enable communicating parties to agree on an application-layer protocol during a Transport Layer Security (TLS) handshake using an ALPN ID.
This ALPN ID can be discovered for services as part of Service Bindings (SVCB) via the DNS, using SVCB resource records with the "alpn" Service Parameter Keys.
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.
This document specifies an ALPN ID for CoAP services that are secured by transport security using DTLS.
An ALPN ID for CoAP service secured by TLS has already been specified in <xref target="RFC8323"/>.</t>
    </section>
    <section anchor="application-layer-protocol-negotiation-alpn-ids">
      <name>Application-Layer Protocol Negotiation (ALPN) IDs</name>
      <t>For CoAP over TLS an ALPN ID was defined as "coaps" 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 registered in <xref target="iana"/>.</t>
      <t>ALPN ID values have variable length.
Here, a short value ("co") is allocated for CoAP over DTLS, as this can avoid fragmentation of Client Hello and Server Hello messages in constrained networks with link-layer fragmentation, such as 6LoWPAN <xref target="RFC4944"/>.</t>
      <t>To discover CoAP services that secure their messages with TLS or DTLS, ALPN IDs "coaps" and "co" can be used respectively 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 ALPN (see <xref target="RFC7301"/>) and 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 the DTLS connection handshake.
This document does not change this behavior, and thus does not establish any rules like those in <xref section="8.2" sectionFormat="of" target="RFC8323"/>.</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="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>
      </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="28" month="June" 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-07"/>
        </reference>
        <reference anchor="RFC4944">
          <front>
            <title>Transmission of IPv6 Packets over IEEE 802.15.4 Networks</title>
            <author fullname="G. Montenegro" initials="G." surname="Montenegro"/>
            <author fullname="N. Kushalnagar" initials="N." surname="Kushalnagar"/>
            <author fullname="J. Hui" initials="J." surname="Hui"/>
            <author fullname="D. Culler" initials="D." surname="Culler"/>
            <date month="September" year="2007"/>
            <abstract>
              <t>This document describes the frame format for transmission of IPv6 packets and the method of forming IPv6 link-local addresses and statelessly autoconfigured addresses on IEEE 802.15.4 networks. Additional specifications include a simple header compression scheme using shared context and provisions for packet delivery in IEEE 802.15.4 meshes. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4944"/>
          <seriesInfo name="DOI" value="10.17487/RFC4944"/>
        </reference>
      </references>
    </references>
    <?line 113?>

<section anchor="change-log">
      <name>Change Log</name>
      <t>## Since <eref target="https://datatracker.ietf.org/doc/html/draft-lenders-core-coap-dtls-svcb-00">draft-lenders-core-coap-dtls-svcb-00</eref>
- Give rationale for short value
- Fix presentation to focus on ALPN ID rather than SVCB records</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We like to thank Rich Salz for the expert review on the "co" ALPN ID allocation.
We also like to thank Mohamed Boucadair and Ben Schwartz for their early review before WG adoption
of this draft.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
FhTdf0DNm3mYaANxmXsMRE/8F2so8j7UEQAA

-->

</rfc>
