<?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.21 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-coap-dtls-alpn-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.25.0 -->
  <front>
    <title abbrev="CoRE ALPN">ALPN ID Specification for CoAP over DTLS</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-coap-dtls-alpn-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="December" day="16"/>
    <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://core-wg.github.io/coap-dtls-alpn/draft-ietf-core-coap-dtls-alpn.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-core-coap-dtls-alpn/"/>.
      </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/core-wg/coap-dtls-alpn"/>.</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 "coap" 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 "coap" 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>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="21" month="October" 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-09"/>
        </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>
      <section anchor="since-draft-ietf-core-coap-dtls-alpn-00">
        <name>Since <eref target="https://datatracker.ietf.org/doc/draft-ietf-core-coap-dtls-alpn/00/">draft-ietf-core-coap-dtls-alpn-00</eref></name>
        <ul spacing="normal">
          <li>
            <t>Fix ALPN ID for CoAP over TLS</t>
          </li>
          <li>
            <t>Change intended status to Informational</t>
          </li>
        </ul>
      </section>
    </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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

-->

</rfc>
