<?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.24 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-coap-dtls-alpn-02" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.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-02"/>
    <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="2025" month="March" day="03"/>
    <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 Constrained Application Protocol (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) enables communicating parties to agree on an application-layer protocol during a Transport Layer Security (TLS) handshake using an ALPN ID <xref target="RFC7301"/>.
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 <xref target="RFC9460"/>.
As an example, this information can be obtained as part of the discovery of DNS over CoAP (DoC) servers (see <xref section="3.2" sectionFormat="of" target="I-D.ietf-core-dns-over-coap"/>) that deploy TLS or Datagram Transport Layer Security (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 services 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-coap-alpn"/>.</t>
      <t>ALPN ID values have variable length.
For CoAP over DTLS, a short value ("co") is allocated, 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>
      <t><cref anchor="replace-xxxx">RFC Ed.: throughout this section, please replace
RFC-XXXX with the RFC number of this specification and remove this
note.</cref></t>
      <t>This document has the following actions for IANA.</t>
      <section anchor="iana-coap-alpn">
        <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" registry 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 [RFC-XXXX]</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="14" month="February" year="2025"/>
            <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-12"/>
        </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 121?>

<section anchor="change-log">
      <name>Change Log</name>
      <section anchor="since-draft-ietf-core-coap-dtls-alpn-01">
        <name>Since <eref target="https://datatracker.ietf.org/doc/draft-ietf-core-coap-dtls-alpn/01/">draft-ietf-core-coap-dtls-alpn-01</eref></name>
        <ul spacing="normal">
          <li>
            <t>Address review by Esko Dijk</t>
          </li>
          <li>
            <t>Address review by Marco Tiloca</t>
          </li>
        </ul>
      </section>
      <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 and Esko Dijk, Thomas Fossati, and Marco Tiloca for their feedback and comments.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
ynD3e/huwwHqRv8G5QVII/oTAAA=

-->

</rfc>
