<?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-rfc2629 version 1.5.26 (Ruby 2.6.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dekok-radext-radiusv11-04" category="std" consensus="true" submissionType="IETF" updates="66137360" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.13.0 -->
  <front>
    <title abbrev="RADIUSv11">RADIUS Version 1.1</title>
    <seriesInfo name="Internet-Draft" value="draft-dekok-radext-radiusv11-04"/>
    <author initials="A." surname="DeKok" fullname="Alan DeKok">
      <organization>FreeRADIUS</organization>
      <address>
        <email>aland@freeradius.org</email>
      </address>
    </author>
    <date year="2023" month="April" day="13"/>
    <area>Internet</area>
    <workgroup>RADEXT Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document defines Application-Layer Protocol Negotiation Extensions for use with RADIUS/TLS and RADIUS/DTLS.  These extensions permit the negotiation of an additional application protocol for RADIUS over (D)TLS.  No changes are made to RADIUS/UDP or RADIUS/TCP.  The extensions allow the negotiation of a transport profile where the RADIUS shared secret is no longer used, and all MD5-based packet signing and attribute obfuscation methods are removed.  When this extension is used, the previous Authenticator field is repurposed to contain an explicit request / response identifier, called a Token.  The Token also allows more than 256 packets to be outstanding on one connection.</t>
      <t>This extension can be seen as a transport profile for RADIUS, as it is not an entirely new protocol.  It uses the existing RADIUS packet layout and attribute format without change.  As such, it can carry all present and future RADIUS attributes.  Implementation of this extension requires only minor changes to the protocol encoder and decoder functionality.  The protocol defined by this extension is named "RADIUS version 1.1", or "RADIUSv11".</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-dekok-radext-radiusv11/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        RADEXT Working Group mailing list (<eref target="mailto:radext@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/radext/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/freeradius/radiusv11.git"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>The RADIUS protocol <xref target="RFC2865"/> uses MD5 <xref target="RFC1321"/> to sign packets, and to obfuscate certain attributes.  Decades of cryptographic research has shown that MD5 is insecure, and MD5 should no longer be used.  In addition, the dependency on MD5 makes it impossible to use RADIUS in a FIPS-140 compliant system, as FIPS-140 forbids systems from relying on insecure cryptographic methods for security.  There are many prior discussions of MD5 insecurities which we will not repeat here.  These discussions are most notably in <xref target="RFC6151"/>, and in Section 3 of <xref target="RFC6421"/>, among others.</t>
      <t>While additional transport protocols were defined for RADIUS in TCP (<xref target="RFC6613"/>), TLS (<xref target="RFC6614"/>), and DTLS (<xref target="RFC7360"/>), those transports still relied on MD5.  That is, the shared secret was used along with MD5, even when the RADIUS packets were being transported in (D)TLS.  At the time, the consensus of the RADEXT working group was that this continued use of MD5 was acceptable.  TLS was seen as a simple "wrapper" around normal RADIUS, while using a fixed shared secret.  The intention at the time was to allow the use of (D)TLS while making essentially no changes to the basic RADIUS encoding, decoding, signing, and packet validation.</t>
      <t>The ensuing years has shown that it is important for RADIUS to remove its dependency on MD5.  The continued use of MD5 is no longer acceptable in a security-conscious environment.  The use of MD5 in <xref target="RFC6614"/> and <xref target="RFC7360"/> adds no security or privacy over that provided by TLS.  It is time to remove the use of MD5 from RADIUS.</t>
      <t>This document defines an Application-Layer Protocol Negotiation (ALPN) <xref target="RFC7301"/> extension for RADIUS which removes the dependency on MD5.  Systems which implement this transport profile are therefore capable of being FIPS-140 compliant.  This extension can best be understood as a transport profile for RADIUS, rather than a whole-sale revision of the RADIUS protocol.  To support this claim, a preliminary implementation of this extension was done in an Open Source RADIUS server.  Formatted as a source code patch, the changes comprised approximately 1,000 lines of text, of which there are less than 600 lines of new code.  This effort shows that the changes to RADIUS are minimal, and are well understood.</t>
      <t>The changes from traditional TLS-based transports for RADIUS are as follows:</t>
      <ul spacing="normal">
        <li>ALPN is used for negotiation of this extension,</li>
        <li>TLS 1.3 or later is required,</li>
        <li>all uses of the RADIUS shared secret have been removed,</li>
        <li>The now-unused Request and Response Authenticator fields have been repurposed to carry an opaque Token which identifies requests and responses,</li>
        <li>The Identifier field is no longer used, and has been replaced by the Token field,</li>
        <li>The Message-Authenticator attribute (<xref target="RFC3579"/> Section 3.2) is not sent in any packet, and if received is ignored,</li>
        <li>Attributes such as User-Password, Tunnel-Password, and MS-MPPE keys are sent encoded as "text" (<xref target="RFC8044"/> Section 3.4) or "octets" (<xref target="RFC8044"/> Section 3.5), without the previous MD5-based obfuscation.  This obfuscation is no longer necessary, as the data is secured and kept private through the use of TLS.</li>
        <li>Future RADIUS specifications are forbidden from defining new cryptographic primitives.</li>
      </ul>
      <t>The following items are left unchanged from traditional TLS-based transports for RADIUS:</t>
      <ul spacing="normal">
        <li>the RADIUS packet header is the same size, and the Code and Length fields (<xref target="RFC2865"/> Section 3) have the same meaning as before,</li>
        <li>All attributes which do not use MD5-based obfuscation methods are encoded using the normal RADIUS methods, and have the same meaning as before,</li>
        <li>As this extension is a transport profile for one "hop" (client to server connection), it does not impact any other connection used by a client or server.  The only systems which are aware that this transport profile is in use are the client and server which have negotiated the use of this extension on a particular shared connection.</li>
        <li>This extension uses the same ports (2083/tcp and 2083/udp) which are defined for RADIUS/TLS <xref target="RFC6614"/> and RADIUS/DTLS <xref target="RFC7360"/>.</li>
      </ul>
      <t>A major benefit of this extensions is that a home server which implements it can also choose to also implement full FIPS-140 compliance,  That is, a home server can remove all uses of MD4 and MD5.  In that case, however, the home server will not support CHAP or MS-CHAP, or any authentication method which uses MD4 or MD5.  We note that the choice of which authentication method to accept is always left to the home server.  This specification does not change any authentication method carried in RADIUS, and does not mandate (or forbid) the use of any authentication method for any system.</t>
      <t>As for proxies, there was never a requirement that proxies implement CHAP or MS-CHAP authentication.  So far as a proxy is concerned, attributes relating to CHAP and MS-CHAP are simply opaque data that is transported unchanged to the next hop.  As such, it is possible for a FIPS-140 compliant proxy to transport authentication methods which depend on MD4 or MD5, so long as that data is forwarded to a home server which supports those methods.</t>
      <t>We reiterate that the decision to support (or not) any authentication method is entirely site local, and is not a requirement of this specification.  This specification does not not modify the content or meaning of any RADIUS attribute other than Message-Authenticator (and similar attributes), and the only change to the Message-Authenticator attribute is that is no longer used.</t>
      <t>Unless otherwise described in this document, all RADIUS requirements apply to this extension.  That is, this specification defines a transport profile for RADIUS.  It is not an entirely new protocol, and it defines only minor changes to the existing RADIUS protocol.  It does not change the RADIUS packet format, attribute format, etc.  This specification is compatible with all RADIUS attributes, past, present, and future.  In short, it simply removes the need to use MD5 when signing packets, or obfuscating certain attributes.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" 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>
      <ul spacing="normal">
        <li>ALPN</li>
      </ul>
      <ul empty="true">
        <li>
          <ul empty="true">
            <li>
              <t>Application-Layer Protocol Negotiation, as defined in <xref target="RFC7301"/></t>
            </li>
          </ul>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS</li>
      </ul>
      <ul empty="true">
        <li>
          <ul empty="true">
            <li>
              <t>The Remote Authentication Dial-In User Service protocol, as defined in <xref target="RFC2865"/>, <xref target="RFC2865"/>, and <xref target="RFC5176"/> among others.</t>
            </li>
          </ul>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS/UDP</li>
      </ul>
      <ul empty="true">
        <li>
          <ul empty="true">
            <li>
              <t>RADIUS over the User Datagram Protocol as define above.</t>
            </li>
          </ul>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS/TCP</li>
      </ul>
      <ul empty="true">
        <li>
          <ul empty="true">
            <li>
              <t>RADIUS over the Transmission Control Protocol <xref target="RFC6613"/></t>
            </li>
          </ul>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS/TLS</li>
      </ul>
      <ul empty="true">
        <li>
          <ul empty="true">
            <li>
              <t>RADIUS over the Transport Layer Security protocol <xref target="RFC6614"/></t>
            </li>
          </ul>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS/DTLS</li>
      </ul>
      <ul empty="true">
        <li>
          <ul empty="true">
            <li>
              <t>RADIUS over the Datagram Transport Layer Security protocol  <xref target="RFC7360"/></t>
            </li>
          </ul>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUSv11</li>
      </ul>
      <ul empty="true">
        <li>
          <ul empty="true">
            <li>
              <t>The ALPN protocol extension defined in this document, which stands for "RADIUS version 1.1".  We use RADIUSv11 to refer interchangeably to TLS and DTLS transport.</t>
            </li>
          </ul>
        </li>
      </ul>
      <ul spacing="normal">
        <li>TLS</li>
      </ul>
      <ul empty="true">
        <li>
          <ul empty="true">
            <li>
              <t>the Transport Layer Security protocol.  Generally when we refer to TLS in this document, we are referring interchangeably to TLS or DTLS transport.</t>
            </li>
          </ul>
        </li>
      </ul>
    </section>
    <section anchor="the-radiusv11-transport-profile-for-radius">
      <name>The RADIUSv11 Transport profile for RADIUS</name>
      <t>We define an ALPN extension for TLS-based RADIUS transports.   In addition to defining the extension, we also discuss how the encoding of some attributes are changed when this extension is used.  Any field or attribute not mentioned here is unchanged from normal RADIUS.</t>
    </section>
    <section anchor="defining-and-configuring-alpn">
      <name>Defining and configuring ALPN</name>
      <t>This document defines a new ALPN protocol name which can be used to negotiate the use (or not) of this specification:</t>
      <ul empty="true">
        <li>
          <t>"radius/1.1"</t>
          <ul empty="true">
            <li>
              <t>The protocol defined by specification.</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>Where ALPN is not configured or is not received in a TLS connection, systems supporting ALPN MUST not use RADIUSv11.</t>
      <t>Where ALPN is configured, the client signals support by sending the ALPN string "radius/1.1".  The server can accept this proposal and reply with the ALPN string "radius/1.1", or reject this proposal, and not reply with any ALPN string.</t>
      <t>Implementations MUST signal ALPN "radius/1.1" in order for it to be used in a connection.  Implementations MUST NOT have an administrative flag which makes a connection use "radius/1.1" without signalling that protocol via ALPN.</t>
      <section anchor="configuration-of-alpn">
        <name>Configuration of ALPN</name>
        <t>Clients or servers supporting this specification can do so by extending their TLS configuration through the addition of a new configuration flag, called "RADIUS-1.1" here.  The exact name given below does not need to be used, but it is RECOMMENDED that administrative interfaces or programming interfaces use a similar name in order to provide consistent terminology.  This flag controls how the implementations signal use of this protocol via ALPN.</t>
        <t>Once a system has been configured to support ALPN, it is negotiated on a per-connection basis as per <xref target="RFC7301"/>.  The definition of the "radius/1.1" transport profile is given below in the next section.</t>
        <t>Configuration Flag Name</t>
        <ul empty="true">
          <li>
            <t>RADIUS-1.1</t>
          </li>
        </ul>
        <t>Allowed Values</t>
        <ul empty="true">
          <li>
            <t>forbid - Forbid the use of RADIUSv11</t>
            <ul empty="true">
              <li>
                <t>A client with this configuration MUST NOT signal any protocol name via ALPN.  The system MUST use RADIUS/TLS or
RADIUS/DTLS as per <xref target="RFC6614"/> and <xref target="RFC7360"/>.</t>
                <t>A server with this configuration MUST NOT signal any protocol name via ALPN.  The system MUST use RADIUS/TLS or
RADIUS/DTLS as per <xref target="RFC6614"/> and <xref target="RFC7360"/>.</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>allow - Allow (or negotiate) the use of RADIUSv11</t>
            <ul empty="true">
              <li>
                <t>This value MUST be the default setting for implementations which support this specification.</t>
                <t>A client with this configuration MUST use ALPN to signal that "radius/1.1" can be used.  The use of historical RADIUS/(D)TLS is implied in the use of (D)TLS.</t>
                <t>A server with this configuration MAY reply to a client with an ALPN string of "radius/1.1", but only if the client first signals support for that protocol name via ALPN.</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>require -  Require the use of RADIUSv11</t>
            <ul empty="true">
              <li>
                <t>A client with this configuration MUST use ALPN to signal that "radius/1.1" is being used.</t>
                <t>A server with this configuration MUST close the connection if the client does not signal "radius/1.1" via ALPN.</t>
                <t>A server with this configuration MUST reply with the ALPN protocol name "radius/1.1" if the client signals "radius/1.1".</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="negotiation">
        <name>Negotiation</name>
        <t>We give a brief overview here of ALPN in order to provide a high-level description ALPN for readers who do not need to understand <xref target="RFC7301"/> in detail.  In summary, the flow of ALPN in a TLS connection proceeds as follows:</t>
        <t>1) The client proposes ALPN by sending an ALPN extension in the ClientHello.  This extension lists one or more application protocols by name.</t>
        <ul empty="true">
          <li>
            <t>The value "RADIUS-1.1" flag is used by the client to determine what to send:</t>
            <ul empty="true">
              <li>
                <t>forbid - no ALPN</t>
                <t>allow - both historic RADIUS and "radius/1.1"</t>
                <t>require - only "radius/1.1"</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>2) The server receives the extension, and validates the application protocol name against the list it has configured.</t>
        <ul empty="true">
          <li>
            <t>If the server does not accept the proposal, it sends a fatal TLS alert "no_application_protocol" (120).</t>
          </li>
        </ul>
        <t>3) Otherwise, the server return a ServerHello with either no ALPN extension, or an ALPN extension with only one named application protocol</t>
        <ul empty="true">
          <li>
            <t>If the server permits "radius/1.1" , and it receives the same protocol name from the client, the server MUST respond to the client with "radius/1.1".  This happens when the client is configured as "allow" or "require", and the server is also configured with "allow" or "require".</t>
            <t>If the client does not signal ALPN, and the server is configured as "forbid" or "allow", then the server MUST NOT reply with any ALPN protocol name.</t>
          </li>
        </ul>
        <t>4) The client receives the ServerHello, validates the application protocol against the name it sent, and records the application protocol which was chosen</t>
        <ul empty="true">
          <li>
            <t>This step is necessary in order for the client to both know which protocol the server has selected, and to validate that the protocol sent by the server is acceptable to the client.</t>
          </li>
        </ul>
        <t>For the client, if the "RADIUS-1.1" flag is set to "allow", then the "radius/1.1" application protocol MUST be signalled via ALPN.  Where a server sees that both ends of a connection support "radius/1.1", then it MUST be used.  There is no reason to negotiate an extension and then refuse to use it.</t>
        <t>If a client or server supports ALPN and does not receive any ALPN signalling from the other end, it MUST behave as defined in <xref target="RFC6614"/> and <xref target="RFC7360"/>.  Note that a client can send an ALPN proposal and recieve nothing from the server.  Similarly, a server can support ALPN, but perhaps not receive ALPN on a particular connection.</t>
        <t>If a client or server determines that there are no compatible application protocol names, then it MUST send a TLS alert of "no_application_protocol" (120), which signals the other end that there is no compatible application protocol.  It MUST then close the connection.</t>
        <t>It is RECOMMENDED that a descriptive error is logged in this situation, so that an administrator can determine why a particular connection failed.  The log message SHOULD include information about the other end of the connection, such as IP address, certificate information, etc.  Similarly, a system receiving a TLS alert of "no_application_protocol" SHOULD log a descriptive error message.  Such error messages are critical for helping administrators to diagnose connectivity issues.</t>
      </section>
      <section anchor="additional-tls-issues">
        <name>Additional TLS issues</name>
        <t>Implementations of this specification MUST require TLS version 1.3 or later.</t>
        <t>Implementations of this specification MUST support TLS-PSK.</t>
      </section>
      <section anchor="session-resumption">
        <name>Session Resumption</name>
        <t><xref target="RFC7301"/> Section 3.1 states that ALPN is negotiated on each connection, even if session resumption is used:</t>
        <ul empty="true">
          <li>
            <t>When session resumption or session tickets (RFC5077) are used, the previous contents of this extension are irrelevant, and only the values in the new handshake messages are considered.</t>
          </li>
        </ul>
        <t>In order to prevent down-bidding attacks, RADIUS servers which negotiate the "radius/1.1" protocol MUST associate that information with the session ticket.  On session resumption, the server MUST advertise only the capability to do "radius/1.1" for that session.  That is, even if the server configuration is "allow" for new connections, it MUST signal "radius/1.1" when resuming a session which had previously negotiated "radius/1.1".</t>
      </section>
    </section>
    <section anchor="definition-of-radiusv11">
      <name>Definition of RADIUSv11</name>
      <t>This section describes the application-layer data which is sent inside of (D)TLS when using the RADIUSv11 protocol.  Unless otherwise discussed herein, the application-layer data is unchanged from traditional RADIUS.  This protocol is only used when "radius/1.1" has been negotiated by both ends of a connection.</t>
      <section anchor="radius11-packet-format">
        <name>RADIUS/1.1 Packet Format</name>
        <t>When RADIUSv11 is used, the RADIUS header is modified from standard RADIUS.  While the header has the same size, some fields have different meaning.  The Identifier and the Request Authenticator and Response Authenticator fields are no longer used.  Any operations which depend on those fields MUST NOT be performed.  As packet signing and security are handled by the TLS layer, RADIUS-specific cryptographic primitives are no longer used.</t>
        <t>A summary of the RADIUS/1.1 packet format is shown below.  The fields are transmitted from left to right.</t>
        <figure anchor="Header">
          <name>The RADIUS/1.1 Packet Format</name>
          <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Code      |  Reserved-1   |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             Token                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                           Reserved-2                          |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Attributes ...
+-+-+-+-+-+-+-+-+-+-+-+-+-
]]></artwork>
        </figure>
        <t>Code</t>
        <ul empty="true">
          <li>
            <t>The Code field is one octet, and identifies the type of RADIUS packet.</t>
            <t>The meaning of the Code field is unchanged from the previous definition in RADIUS.</t>
          </li>
        </ul>
        <t>Reserved-1</t>
        <ul empty="true">
          <li>
            <t>The Reserved-1 field is one octet.  It MUST be set to zero for all packets.</t>
            <t>This field was previously called "Identifier" in RADIUS.  It is now unused, as the Token field is now used to identify requests and responses.</t>
          </li>
        </ul>
        <t>Length</t>
        <ul empty="true">
          <li>
            <t>The Length field is two octets.</t>
            <t>The meaning of the Length field is unchanged from the previous definition in RADIUS.</t>
          </li>
        </ul>
        <t>Token</t>
        <ul empty="true">
          <li>
            <t>The Token field is four octets, and aids in matching requests and
replies.  The RADIUS server can detect a duplicate request if it receives
the same Token value for two packets on a particular connection.</t>
            <t>All request / reply tracking MUST be done only on the Token field,
all other fields in the RADIUS packet header are ignored for the
purposes of deduplication.  This requirement simplifies implementations.</t>
            <t>All packet deduplication MUST be done on a per-connection basis.  If two
RADIUS packets which are received on different connections contain
the same Token value, then those packets MUST be treated as distinct
(i.e. different) packets.</t>
            <t>The Token field MUST be different for every unique packet sent over
a particular connection.  This unique value can be used to
match responses to requests, and to identify duplicate requests.
Other than those two requirements, there is no special meaning for
the Token field.</t>
            <t>Systems generating a Token value for placement in a packet can do so
via any method they choose.  Systems receiving a Token value in a
packet MUST NOT interpret its value as anything other than an opaque
token.</t>
          </li>
        </ul>
        <t>Reserved-2</t>
        <ul empty="true">
          <li>
            <t>The Reserved-2 field is twelve (12) octets in length.</t>
            <t>These octets MUST be set to zero when sending a packet.</t>
            <t>These octets MUST be ignored when receiving a packet.</t>
            <t>These octets are reserved for future protocol extensions.</t>
          </li>
        </ul>
      </section>
      <section anchor="the-token-field">
        <name>The Token Field</name>
        <t>This section describes in more detail how the Token field is used.</t>
        <section anchor="sending-packets">
          <name>Sending Packets</name>
          <t>A client which sends packets uses the Token field to increase the number of RADIUS packets which can be sent over one connection.</t>
          <t>The Token field MUST change for every new unique packet which is sent.  For DTLS transport, it is possible to retransmit duplicate packets, in which case the Token value MUST NOT be changed when a duplicate packet is (re)sent.  When the contents of a retransmitted packet change for any reason (such changing Acct-Delay-Time as discussed in <xref target="RFC2866"/> Section 5.2), the Token value MUST be changed.</t>
          <t>The Token MUST be different for different packets on the same connection.  If a packet is retransmitted without any changes, then the retransmitted packet MUST use the same token value.  If the two packets have any differences, then the Token values for those two packets is required to be different.  Note that on reliable transports, packets are never retransmitted, and therefore every new packet sent has a unique Token value.</t>
          <t>For simplicity, it is RECOMMENDED that the Token values be generated from a 32-bit counter which is unique to each connection.  Such a counter SHOULD be initialized to a random value, taken from a random number generator whenever a new connection is opened.  The counter can then be incremented for every new packet which is sent.  As there is no special meaning for the Token, there is no meaning when a counter "wraps" around from a high value back to zero.</t>
          <t>If a RADIUS client has multiple independent subsystems which send packets to a server, each subsystem MAY open a new port which is unique to that subsystem.  There is no requirement that all packets go over one particular connection.  That is, despite the use of a 32-bit Token field, RADIUSv11 clients are still permitted to open multiple source ports as discussed in <xref target="RFC2865"/> Section 2.5.</t>
        </section>
        <section anchor="receiving-packets">
          <name>Receiving Packets</name>
          <t>A server which receives RADIUSv11 packets MUST perform packet deduplication for all situations where it is required by RADIUS.  Where RADIUS does not require deduplication (e.g. TLS transport), the server SHOULD NOT do deduplication.</t>
          <t>In normal RADIUS, the Identifier field can be the same for different types of packets on the same connection, e.g. for Access-Request and Accounting-Request.  This overlap requires that RADIUS clients and servers, track the Identifier field not only on a per-connection basis, but also on a per-packet type basis.  This behavior adds complexity to implementations.</t>
          <t>When using RADIUSv11, implementations MUST instead do deduplication only on the Token field, on a per-connection basis.  A server MUST treat the Token as being an opaque field with no intrinsic meaning.  While the recommendation above is for the sender to use a counter, other implementations are possible, valid, and permitted.  For example, a system could use a pseudo-random number generator with a long period to generate unique values for the Token field.</t>
          <t>This change from RADIUS means that the Identifier field is no longer useful.  It is RECOMMENDED that the Identifier field be set to zero for all RADIUSv11 packets.  In order to stay close to RADIUS, we still require that replies MUST use the same Identifier as was seen in the corresponding request.  There is no reason to make major changes to the RADIUS packet header.</t>
        </section>
      </section>
    </section>
    <section anchor="attribute-handling">
      <name>Attribute handling</name>
      <t>Most attributes in RADIUS have no special encoding "on the wire", or any special meaning between client and server.  Unless discussed in this section, all RADIUS attributes are unchanged in this specification.  This requirement includes attributes which contain a tag, as defined in <xref target="RFC2868"/>.</t>
      <section anchor="obfuscated-attributes">
        <name>Obfuscated Attributes</name>
        <t>As (D)TLS is used for this specification, there is no need to hide the contents of an attribute on a hop-by-hop basis.  The TLS transport ensures that all attribute contents are hidden from any observer</t>
        <t>Attributes which are obfuscated with MD5 no longer have the obfuscation step applied when RADIUSv11 is used.  Instead, those attributes are simply encoded as their values, as with any other attribute.  Their encoding method MUST follow the encoding for the underlying data type, with any encryption / obfuscation step omitted.</t>
        <t>We understand that there is often concern in RADIUS that passwords are sent "in cleartext" across the network.  This allegation was never true for RADIUS, and definitely untrue when (D)TLS transport is used.  While passwords are encoded in packets as strings, the packets (and thus passwords) are protected by TLS.  For the unsure reader this protocol is the same TLS which protects passwords used for web logins, e-mail reception and sending, etc.  As a result, any claims that passwords are sent "in the clear" are false.</t>
        <t>There are risks from sending passwords over the network, even when they are protected by TLS.  One such risk somes from the common practice of multi-hop RADIUS routing.  As all security in RADIUS is on a hop-by-hop basis, every proxy which receives a RADIUS packet can see (and modify) all of the information in the packet.  Sites wishing to avoid proxies SHOULD use dynamic peer discovery <xref target="RFC7585"/>, which permits clients to make connections directly to authoritative servers for a realm.</t>
        <t>These others ways to mitigate these risks .  One is by ensuring that the RADIUS/TLS session parameters are verified before sending the password, usually via a method such as verifying a server certificate.  That is, passwords should only be sent to verified and trusted parties.  If the TLS session parameters are not verified, then it is trivial to convince the RADIUS client to send passwords to anyone.</t>
        <t>Another way to mitigate these risks is for the system being authenticated to use an authentication protocol which never sends passwords (e.g. EAP-PWD <xref target="RFC5931"/>), or which sends passwords protected by a TLS tunnel (e.g. EAP-TTLS <xref target="RFC5281"/>).  The processes to choose and configuring an authentication protocol are strongly site-dependent, so further discussion of these issues are outside of the scope of this document.  The goal here is to ensure that the reader has enough information to make an informed decision.</t>
        <section anchor="user-password">
          <name>User-Password</name>
          <t>The User-Password attribute (<xref target="RFC2865"/> Section 5.2) MUST be encoded the same as any other attribute of data type 'string' (<xref target="RFC8044"/> Section 3.4).</t>
          <t>The contents of the User-Password field MUST be at least one octet in length, and MUST NOT be more than 128 octets in length.  This limitation is maintained from <xref target="RFC2865"/> Section 5.2 for compatibility with legacy transports.</t>
          <t>Note that the User-Password attribute is not of data type 'text'.  The original reason in <xref target="RFC2865"/> was because the attribute was encoded as an opaque and obfuscated binary blob.  We maintain that data type here, even though the attribute is no longer obfuscated.  The contents of the User-Password attribute do not have to printable text, or UTF-8 data as per the definition of the 'text' data type in <xref target="RFC8044"/> Section 3.5.</t>
          <t>However, implementations should be aware that passwords are often printable text, and where the passwords are printable text, it can be useful to store and display them as printable text.  Where implementations can process non-printable data in the 'text' data type, they MAY use the data type 'text' for User-Password.</t>
        </section>
        <section anchor="chap-challenge">
          <name>CHAP-Challenge</name>
          <t><xref target="RFC2865"/> Section 5.2 allows for the CHAP challenge to be taken from either the CHAP-Challenge attribute (<xref target="RFC2865"/> Section 5.40), or the Request Authenticator field.  Since RADIUSv11 connections no longer use a Request Authenticator field, proxies may receive an Access-Request containing a CHAP-Password attribute (<xref target="RFC2865"/> Section 5.2) but without a CHAP-Challenge attribute (<xref target="RFC2865"/> Section 5.40).  Proxies which forward that CHAP-Password attribute over a RADIUSv11 connection MUST create a CHAP-Challenge attribute in the proxied packet using the contents from the Request Authenticator.</t>
        </section>
        <section anchor="tunnel-password">
          <name>Tunnel-Password</name>
          <t>The Tunnel-Password attribute (<xref target="RFC2868"/> Section 3.5) MUST be encoded the same as any other attribute of data type 'text' which contains a tag, such as Tunnel-Client-Endpoint (<xref target="RFC2868"/> Section 3.3).  Since the attribute is no longer obfuscated, there is no need for a Salt field or Data-Length fields as described in <xref target="RFC2868"/> Section 3,5, and the textual value of the password can simply be encoded as-is.</t>
          <t>Note that the Tunnel-Password attribute is not of data type 'text'.  The original reason in <xref target="RFC2868"/> was because the attribute was encoded as an opaque and obfuscated binary blob.  We maintain that data type here, even though the attribute is no longer obfuscated.  The contents of the Tunnel-Password attribute do not have to printable text, or UTF-8 data as per the definition of the 'text' data type in <xref target="RFC8044"/> Section 3.5.</t>
          <t>However, implementations should be aware that passwords are often printable text, and where the passwords are printable text, it can be useful to store and display them as printable text.  Where implementations can process non-printable data in the 'text' data type, they MAY use the data type 'text' for Tunnel-Password.</t>
        </section>
        <section anchor="vendor-specific-attributes">
          <name>Vendor-Specific Attributes</name>
          <t>Any Vendor-Specific attribute which uses similar obfuscation MUST be encoded as per their base data type.  Specifically, the MS-MPPE-Send-Key and MS-MPPE-Recv-Key attributes (<xref target="RFC2548"/> Section 2.4) MUST be encoded as any other attribute of data type 'string' (<xref target="RFC8044"/> Section 3.5).</t>
          <t>We note that as the RADIUS shared secret is no longer used, it is no longer possible or necessary for any attribute to be obfuscated on a hop-by-hop basis using the previous methods defined for RADIUS.</t>
        </section>
      </section>
      <section anchor="message-authenticator">
        <name>Message-Authenticator</name>
        <t>The Message-Authenticator attribute (<xref target="RFC3579"/> Section 3.2) MUST NOT be sent over a RADIUSv11 connection.  That attribute is no longer used or needed.</t>
        <t>If the Message-Authenticator attribute is received over a RADIUSv11 connection, the attribute MUST be silently discarded, or treated an as "invalid attribute", as defined in <xref target="RFC6929"/>, Section 2.8.  That is, the Message-Authenticator attribute is no longer used to sign packets.  Its existence (or not) in this transport is meaningless.</t>
        <t>We note that any packet which contains a Message-Authenticator attribute can still be processed.  There is no need to discard an entire packet simply because it contains a Message-Authenticator attribute.  Only the Message-Authenticator attribute itself is ignored.</t>
      </section>
      <section anchor="message-authentication-code">
        <name>Message-Authentication-Code</name>
        <t>Similarly, the Message-Authentication-Code attribute defined in <xref target="RFC6218"/> Section 3.3 MUST NOT be sent over a RADIUSv11 connection.  That attribute MUST be treated the same as Message-Authenticator, above.</t>
        <t>As the Message-Authentication-Code attribute is no longer used, the related MAC-Randomizer attribute <xref target="RFC6218"/> Section 3.2 is also no longer used.  It MUST also be treated the same was as Message-Authenticator, above.</t>
      </section>
      <section anchor="chap-ms-chap-etc">
        <name>CHAP, MS-CHAP, etc.</name>
        <t>While some attributes such as CHAP-Password, etc. depend on insecure cryptographic primitives such as MD5, these attributes are treated as opaque blobs when sent between a RADIUS client and server.  The contents of the attributes are not obfuscated, and they do not depend on the RADIUS shared secret.</t>
        <t>As a result, these attributes are unchanged in RADIUSv11.  We reiterate that this specification is largely a transport profile for RADIUS.  Other than a few attributes such as Message-Authenticator, the meaning of all attributes in this specification is identical to their meaning in RADIUS.  Only the "on the wire" encoding of some attributes change, and then only for attributes which are obfuscated using the RADIUS shared secret.  Those obfuscated attributes are now protected by the modern cryptography in TLS, instead of an "ad hoc" approach using MD5.</t>
        <t>A server implementing this specification can proxy CHAP, MS-CHAP, etc. without any issue.  A home server implementing this specification can authenticate CHAP, MS-CHAP, etc. without any issue.</t>
      </section>
      <section anchor="original-packet-code">
        <name>Original-Packet-Code</name>
        <t>The Original-Packet-Code attribute (<xref target="RFC7930"/> Section 4) MUST NOT be sent over a RADIUSv11 connection.  That attribute is no longer used or needed.</t>
        <t>If the Original-Packet-Code attribute is received over a RADIUSv11 connection, the attribute MUST either be silently discarded, or be treated an as "invalid attribute", as defined in <xref target="RFC6929"/>, Section 2.8.  That is, existence of the Token field means that the Original-Packet-Code attribute is no longer needed to correlate Protocol-Error replies with outstanding requests.  As such, the Original-Packet-Code attribute is not used in RADIUSv11.</t>
        <t>We note that any packet which contains an Original-Packet-Code attribute can still be processed.  There is no need to discard an entire packet simply because it contains an Original-Packet-Code attribute.</t>
      </section>
    </section>
    <section anchor="other-considerations">
      <name>Other Considerations</name>
      <t>Most of the differences between normal RADIUS and RADIUSv11 are in the packet header and attribute handling, as discussed above.  The remaining issues are a small set of unrelated topics, and are discussed here.</t>
      <section anchor="status-server">
        <name>Status-Server</name>
        <t><xref target="RFC6613"/> Section 2.6.5, and by extension <xref target="RFC7360"/> suggest that the Identifier value zero (0) be reserved for use with Status-Server as an application-layer watchdog.  This practice MUST NOT be used for RADIUSv11, as the Identifier field is no longer used.</t>
        <t>The rational for reserving one value of the Identifier field was the limited number of Identifiers available (256), and the overlap in Identifiers between Access-Request packets and Status-Server packers..  If all 256 Identifier values had been used to send Access-Request packets, there would be no Identifier value available for sending a Status-Sercer Packet.</t>
        <t>In contrast, the Token field allows for 2^32 outstanding packets on one RADIUSv11 connection.  If there is a need to send a Status-Server packet, it is always possible to allocate a new value for the Token field.  Similarly, the value zero (0) for the Token field has no special meaning.  The edge condition is that there are 2^32 outstanding packets on one connection with no new Token value available for Status-Server.  In which case there are other issues which are more serious, such allowing billions of packets to be oustanding.  The safest way forward is likely to just close the connection.</t>
      </section>
      <section anchor="proxies">
        <name>Proxies</name>
        <t>A RADIUS proxy normally decodes and then re-encodes all attributes, included obfuscated ones.  A RADIUS proxy will not generally rewrite the content of the attributes it proxies (unless site-local policy requires such a rewrite).  While some attributes may be modified due to administrative or policy rules on the proxy, the proxy will generally not rewrite the contents of attributes such as User-Password, Tunnel-Password, CHAP-Password, MS-CHAP-Password, MS-MPPE keys, etc.  All attributes are therefore transported through a RADIUSv11 connection without changing their values or contents.</t>
        <t>A proxy may negotiate RADIUSv11 (or not) with a particular client or clients, and it may negotiate RADIUSv11 (or not) with a server or servers it connect to, in any combination.  As a result, this specification is fully compatible with all past, present, and future RADIUS attributes.</t>
      </section>
      <section anchor="crypto-agility">
        <name>Crypto-Agility</name>
        <t>The crypto-agility requirements of <xref target="RFC6421"/> are addressed in <xref target="RFC6614"/> Appendix C, and in Section 10.1 of <xref target="RFC7360"/>.  This specification makes no changes from, or additions to, those specifications.  The use of ALPN, and the removal of MD5 has no impact on security or privacy of the protocol.</t>
        <t>RADIUS/TLS has been widely deployed in at least eduroam and in OpenRoaming.  RADIUS/DTLS has seen less adoption, but it is known to be supported in many RADIUS clients and servers.</t>
        <t>It is RECOMMENDED that all implementations of RADIUS/TLS and RADIUS/DTLS be updated to support this specification.  The effort to implement this specification is minimal.  Once implementations support this specification, administrators can gain the benefit of it with little or no configuration changes.  This specification is backwards compatible with <xref target="RFC6614"/> and <xref target="RFC7360"/>.  It is only potentially subject to downbidding attacks if implementations do not enforce ALPN negotiation correctly on session resumption.</t>
        <t>All crypto-agility needed or use by this specification is implemented in TLS.  This specification also removes all cryptographic primitives from the application-layer protocol (RADIUS) being transported by TLS.  As discussed in the next section below, this specification also bans the development of all new cryptographic or crypto-agility methods in the RADIUS protocol.</t>
      </section>
      <section anchor="future-standards">
        <name>Future Standards</name>
        <t>This specification defines a new transport profile for RADIUS.  It does not define a completely new protocol.  As such, any future attribute definitions MUST first be defined for RADIUS/UDP, after which those definitions can be applied to this transport profile.</t>
        <t>New specifications MAY define new attributes which use the obfuscation methods for User-Password as defined in <xref target="RFC2865"/> Section 5.2, or for Tunnel-Password as defined in <xref target="RFC2868"/> Section 3.5.  There is no need for those specifications to describe how those new attributes are transported in RADIUSv11.  Since RADIUSv11 does not use MD5, any obfuscated attributes will by definition be transported as their underlying data type ("text" (<xref target="RFC8044"/> Section 3.4) or "octets" (<xref target="RFC8044"/> Section 3.5).</t>
        <t>New RADIUS specifications MUST NOT define attributes which can only be transported over RADIUS/TLS.  The RADIUS protocol has no way to signal the security requirements of individual attributes.  Any existing implementation will handle these new attributes as "Invalid Attributes" (<xref target="RFC6929"/> Section 2.8), and could forward them over an insecure link.  As RADIUS security and signalling is hop-by-hop, there is no way for a RADIUS/TLS client or server to even know if such forwarding is taking place.  For these reasons and more, it is therefore inappropriate to define new attributes which are only secure if they use a secure transport layer.</t>
        <t>This document updates <xref target="RFC2865"/> at al. to state that any new RADIUS specification MUST NOT introduce new "ad hoc" cryptographic primitives as was done with User-Password and Tunnel-Password.  That is, RADIUS-specific cryptographic methods existing as of the publication of this document can continue to be used for historical compatibility.  However, all new cryptographic work in RADIUS is forbidden.  There is insufficient expertise in the RADIUS community to securely design new cryptography.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>(This section to be removed by the RFC editor.)</t>
      <t>This specification is being implemented (client and server) in the FreeRADIUS project which is hosted on GitHub at https://github.com/FreeRADIUS/freeradius-server/tree/v3.2.x  The code implementation "diff" is approximately 1,000 lines, including build system changes and changes to configuration parsers.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>This specification requires secure transport for RADIUS, and this has all of the privacy benefits of RADIUS/TLS <xref target="RFC6614"/> and RADIUS/DTLS <xref target="RFC7360"/>.  All of the insecure uses of RADIUS have been removed.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The primary focus of this document is addressing security considerations for RADIUS.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is request to update the "TLS Application-Layer Protocol Negotiation (ALPN) Protocol IDs" registry with one new entry:</t>
      <artwork><![CDATA[
Protocol: radius/1.1
Id. Sequence: 0x72 0x61 0x64 0x69 0x75 0x73 0x2f 0x31 0x2e 0x31
    ("radius/1.1")
Reference:  This document
]]></artwork>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>In hindsight, the decision to retain MD5 for RADIUS/TLS was likely wrong.  It was an easy decision to make in the short term, but it has caused ongoing problems which this document addresses.</t>
      <t>Thanks to Bernard Aboba, Karri Huhtanen, Heikki Vatiainen, and Alexander Clouter for reviews and feedback.</t>
    </section>
    <section anchor="changelog">
      <name>Changelog</name>
      <t>draft-dekok-radext-sradius-00</t>
      <ul empty="true">
        <li>
          <t>Initial Revision</t>
        </li>
      </ul>
      <t>draft-dekok-radext-radiusv11-00</t>
      <ul empty="true">
        <li>
          <t>Use ALPN from RFC 7301, instead of defining a new port.  Drop the name "SRADIUS".</t>
          <t>Add discussion of Original-Packet-Code</t>
        </li>
      </ul>
      <t>draft-dekok-radext-radiusv11-01</t>
      <ul empty="true">
        <li>
          <t>Update formatting.</t>
        </li>
      </ul>
      <t>draft-dekok-radext-radiusv11-02</t>
      <ul empty="true">
        <li>
          <t>Add Flag field and description.</t>
          <t>Minor rearrangements and updates to text.</t>
        </li>
      </ul>
      <t>draft-dekok-radext-radiusv11-03</t>
      <ul empty="true">
        <li>
          <t>Remove Flag field and description based on feedback and expected use-cases.</t>
          <t>Use "radius/1.0" instead of "radius/1"</t>
          <t>Consistently refer to the specification as "RADIUSv11", and consistently quote the ALPN name as "radius/1.1"</t>
          <t>Add discussion of future attributes and future crypto-agility work.</t>
        </li>
      </ul>
      <t>draft-dekok-radext-radiusv11-04</t>
      <ul empty="true">
        <li>
          <t>Remove "radius/1.0" as it is unnecessary.</t>
          <t>Update Introduction with more historical background, which motivates the rest of the section.</t>
          <t>Change Identifier field to be reserved, as it is entirely unused.</t>
          <t>Update discussion on clear text passwords.</t>
          <t>Clarify discussion of Status-Server, User-Password, and Tunnel-Password.</t>
          <t>Give high level summary of ALPN, clear up client / server roles, and remove "radius/1.0" as it is unnecessary.</t>
          <t>Add text on RFC6421.</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="BCP14" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <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>
        <reference anchor="RFC2865" target="https://www.rfc-editor.org/info/rfc2865">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS)</title>
            <author fullname="C. Rigney" initials="C." surname="Rigney">
              <organization/>
            </author>
            <author fullname="S. Willens" initials="S." surname="Willens">
              <organization/>
            </author>
            <author fullname="A. Rubens" initials="A." surname="Rubens">
              <organization/>
            </author>
            <author fullname="W. Simpson" initials="W." surname="Simpson">
              <organization/>
            </author>
            <date month="June" year="2000"/>
            <abstract>
              <t>This document describes a protocol for carrying authentication, authorization, and configuration information between a Network Access Server which desires to authenticate its links and a shared Authentication Server.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2865"/>
          <seriesInfo name="DOI" value="10.17487/RFC2865"/>
        </reference>
        <reference anchor="RFC6421" target="https://www.rfc-editor.org/info/rfc6421">
          <front>
            <title>Crypto-Agility Requirements for Remote Authentication Dial-In User Service (RADIUS)</title>
            <author fullname="D. Nelson" initials="D." role="editor" surname="Nelson">
              <organization/>
            </author>
            <date month="November" year="2011"/>
            <abstract>
              <t>This memo describes the requirements for a crypto-agility solution for Remote Authentication Dial-In User Service (RADIUS).  This  document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6421"/>
          <seriesInfo name="DOI" value="10.17487/RFC6421"/>
        </reference>
        <reference anchor="RFC6929" target="https://www.rfc-editor.org/info/rfc6929">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS) Protocol Extensions</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok">
              <organization/>
            </author>
            <author fullname="A. Lior" initials="A." surname="Lior">
              <organization/>
            </author>
            <date month="April" year="2013"/>
            <abstract>
              <t>The Remote Authentication Dial-In User Service (RADIUS) protocol is nearing exhaustion of its current 8-bit Attribute Type space.  In addition, experience shows a growing need for complex grouping, along with attributes that can carry more than 253 octets of data.  This document defines changes to RADIUS that address all of the above problems.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6929"/>
          <seriesInfo name="DOI" value="10.17487/RFC6929"/>
        </reference>
        <reference anchor="RFC7301" target="https://www.rfc-editor.org/info/rfc7301">
          <front>
            <title>Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension</title>
            <author fullname="S. Friedl" initials="S." surname="Friedl">
              <organization/>
            </author>
            <author fullname="A. Popov" initials="A." surname="Popov">
              <organization/>
            </author>
            <author fullname="A. Langley" initials="A." surname="Langley">
              <organization/>
            </author>
            <author fullname="E. Stephan" initials="E." surname="Stephan">
              <organization/>
            </author>
            <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="RFC8044" target="https://www.rfc-editor.org/info/rfc8044">
          <front>
            <title>Data Types in RADIUS</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok">
              <organization/>
            </author>
            <date month="January" year="2017"/>
            <abstract>
              <t>RADIUS specifications have used data types for two decades without defining them as managed entities.  During this time, RADIUS implementations have named the data types and have used them in attribute definitions.  This document updates the specifications to better follow established practice.  We do this by naming the data types defined in RFC 6158, which have been used since at least the publication of RFC 2865.  We provide an IANA registry for the data types and update the "RADIUS Attribute Types" registry to include a Data Type field for each attribute.  Finally, we recommend that authors of RADIUS specifications use these types in preference to existing practice.  This document updates RFCs 2865, 3162, 4072, 6158, 6572, and 7268.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8044"/>
          <seriesInfo name="DOI" value="10.17487/RFC8044"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <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" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <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>
        <name>Informative References</name>
        <reference anchor="RFC1321" target="https://www.rfc-editor.org/info/rfc1321">
          <front>
            <title>The MD5 Message-Digest Algorithm</title>
            <author fullname="R. Rivest" initials="R." surname="Rivest">
              <organization/>
            </author>
            <date month="April" year="1992"/>
            <abstract>
              <t>This document describes the MD5 message-digest algorithm. The algorithm takes as input a message of arbitrary length and produces as output a 128-bit "fingerprint" or "message digest" of the input.  This memo provides information for the Internet community.  It does not specify an Internet standard.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1321"/>
          <seriesInfo name="DOI" value="10.17487/RFC1321"/>
        </reference>
        <reference anchor="RFC2548" target="https://www.rfc-editor.org/info/rfc2548">
          <front>
            <title>Microsoft Vendor-specific RADIUS Attributes</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn">
              <organization/>
            </author>
            <date month="March" year="1999"/>
            <abstract>
              <t>This document describes the set of Microsoft vendor-specific RADIUS attributes.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2548"/>
          <seriesInfo name="DOI" value="10.17487/RFC2548"/>
        </reference>
        <reference anchor="RFC2866" target="https://www.rfc-editor.org/info/rfc2866">
          <front>
            <title>RADIUS Accounting</title>
            <author fullname="C. Rigney" initials="C." surname="Rigney">
              <organization/>
            </author>
            <date month="June" year="2000"/>
            <abstract>
              <t>This document describes a protocol for carrying accounting information between a Network Access Server and a shared Accounting Server.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2866"/>
          <seriesInfo name="DOI" value="10.17487/RFC2866"/>
        </reference>
        <reference anchor="RFC2868" target="https://www.rfc-editor.org/info/rfc2868">
          <front>
            <title>RADIUS Attributes for Tunnel Protocol Support</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn">
              <organization/>
            </author>
            <author fullname="D. Leifer" initials="D." surname="Leifer">
              <organization/>
            </author>
            <author fullname="A. Rubens" initials="A." surname="Rubens">
              <organization/>
            </author>
            <author fullname="J. Shriver" initials="J." surname="Shriver">
              <organization/>
            </author>
            <author fullname="M. Holdrege" initials="M." surname="Holdrege">
              <organization/>
            </author>
            <author fullname="I. Goyret" initials="I." surname="Goyret">
              <organization/>
            </author>
            <date month="June" year="2000"/>
            <abstract>
              <t>This document defines a set of RADIUS (Remote Authentication Dial In User Service) attributes designed to support the provision of compulsory tunneling in dial-up networks.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2868"/>
          <seriesInfo name="DOI" value="10.17487/RFC2868"/>
        </reference>
        <reference anchor="RFC3579" target="https://www.rfc-editor.org/info/rfc3579">
          <front>
            <title>RADIUS (Remote Authentication Dial In User Service) Support For Extensible Authentication Protocol (EAP)</title>
            <author fullname="B. Aboba" initials="B." surname="Aboba">
              <organization/>
            </author>
            <author fullname="P. Calhoun" initials="P." surname="Calhoun">
              <organization/>
            </author>
            <date month="September" year="2003"/>
            <abstract>
              <t>This document defines Remote Authentication Dial In User Service (RADIUS) support for the Extensible Authentication Protocol (EAP), an authentication framework which supports multiple authentication mechanisms.  In the proposed scheme, the Network Access Server (NAS) forwards EAP packets to and from the RADIUS server, encapsulated within EAP-Message attributes.  This has the advantage of allowing the NAS to support any EAP authentication method, without the need for method- specific code, which resides on the RADIUS server.  While EAP was originally developed for use with PPP, it is now also in use with IEEE 802.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3579"/>
          <seriesInfo name="DOI" value="10.17487/RFC3579"/>
        </reference>
        <reference anchor="RFC5176" target="https://www.rfc-editor.org/info/rfc5176">
          <front>
            <title>Dynamic Authorization Extensions to Remote Authentication Dial In User Service (RADIUS)</title>
            <author fullname="M. Chiba" initials="M." surname="Chiba">
              <organization/>
            </author>
            <author fullname="G. Dommety" initials="G." surname="Dommety">
              <organization/>
            </author>
            <author fullname="M. Eklund" initials="M." surname="Eklund">
              <organization/>
            </author>
            <author fullname="D. Mitton" initials="D." surname="Mitton">
              <organization/>
            </author>
            <author fullname="B. Aboba" initials="B." surname="Aboba">
              <organization/>
            </author>
            <date month="January" year="2008"/>
            <abstract>
              <t>This document describes a currently deployed extension to the Remote Authentication Dial In User Service (RADIUS) protocol, allowing dynamic changes to a user session, as implemented by network access server products.  This includes support for disconnecting users and changing authorizations applicable to a user session. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5176"/>
          <seriesInfo name="DOI" value="10.17487/RFC5176"/>
        </reference>
        <reference anchor="RFC6151" target="https://www.rfc-editor.org/info/rfc6151">
          <front>
            <title>Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms</title>
            <author fullname="S. Turner" initials="S." surname="Turner">
              <organization/>
            </author>
            <author fullname="L. Chen" initials="L." surname="Chen">
              <organization/>
            </author>
            <date month="March" year="2011"/>
            <abstract>
              <t>This document updates the security considerations for the MD5 message digest algorithm.  It also updates the security considerations for HMAC-MD5.  This document is not an Internet Standards Track  specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6151"/>
          <seriesInfo name="DOI" value="10.17487/RFC6151"/>
        </reference>
        <reference anchor="RFC6218" target="https://www.rfc-editor.org/info/rfc6218">
          <front>
            <title>Cisco Vendor-Specific RADIUS Attributes for the Delivery of Keying Material</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn">
              <organization/>
            </author>
            <author fullname="T. Zhang" initials="T." surname="Zhang">
              <organization/>
            </author>
            <author fullname="J. Walker" initials="J." surname="Walker">
              <organization/>
            </author>
            <author fullname="J. Salowey" initials="J." surname="Salowey">
              <organization/>
            </author>
            <date month="April" year="2011"/>
            <abstract>
              <t>This document defines a set of vendor-specific RADIUS Attributes designed to allow both the secure transmission of cryptographic keying material and strong authentication of any RADIUS message. These attributes have been allocated from the Cisco vendor-specific space and have been implemented by multiple vendors.  This document  is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6218"/>
          <seriesInfo name="DOI" value="10.17487/RFC6218"/>
        </reference>
        <reference anchor="RFC6613" target="https://www.rfc-editor.org/info/rfc6613">
          <front>
            <title>RADIUS over TCP</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok">
              <organization/>
            </author>
            <date month="May" year="2012"/>
            <abstract>
              <t>The Remote Authentication Dial-In User Server (RADIUS) protocol has, until now, required the User Datagram Protocol (UDP) as the underlying transport layer.  This document defines RADIUS over the Transmission Control Protocol (RADIUS/TCP), in order to address handling issues related to RADIUS over Transport Layer Security (RADIUS/TLS).  It permits TCP to be used as a transport protocol for RADIUS only when a transport layer such as TLS or IPsec provides confidentiality and security.  This document defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6613"/>
          <seriesInfo name="DOI" value="10.17487/RFC6613"/>
        </reference>
        <reference anchor="RFC6614" target="https://www.rfc-editor.org/info/rfc6614">
          <front>
            <title>Transport Layer Security (TLS) Encryption for RADIUS</title>
            <author fullname="S. Winter" initials="S." surname="Winter">
              <organization/>
            </author>
            <author fullname="M. McCauley" initials="M." surname="McCauley">
              <organization/>
            </author>
            <author fullname="S. Venaas" initials="S." surname="Venaas">
              <organization/>
            </author>
            <author fullname="K. Wierenga" initials="K." surname="Wierenga">
              <organization/>
            </author>
            <date month="May" year="2012"/>
            <abstract>
              <t>This document specifies a transport profile for RADIUS using Transport Layer Security (TLS) over TCP as the transport protocol. This enables dynamic trust relationships between RADIUS servers.   [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6614"/>
          <seriesInfo name="DOI" value="10.17487/RFC6614"/>
        </reference>
        <reference anchor="RFC7360" target="https://www.rfc-editor.org/info/rfc7360">
          <front>
            <title>Datagram Transport Layer Security (DTLS) as a Transport Layer for RADIUS</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok">
              <organization/>
            </author>
            <date month="September" year="2014"/>
            <abstract>
              <t>The RADIUS protocol defined in RFC 2865 has limited support for authentication and encryption of RADIUS packets.  The protocol transports data in the clear, although some parts of the packets can have obfuscated content.  Packets may be replayed verbatim by an attacker, and client-server authentication is based on fixed shared secrets.  This document specifies how the Datagram Transport Layer Security (DTLS) protocol may be used as a fix for these problems.  It also describes how implementations of this proposal can coexist with current RADIUS systems.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7360"/>
          <seriesInfo name="DOI" value="10.17487/RFC7360"/>
        </reference>
        <reference anchor="RFC7585" target="https://www.rfc-editor.org/info/rfc7585">
          <front>
            <title>Dynamic Peer Discovery for RADIUS/TLS and RADIUS/DTLS Based on the Network Access Identifier (NAI)</title>
            <author fullname="S. Winter" initials="S." surname="Winter">
              <organization/>
            </author>
            <author fullname="M. McCauley" initials="M." surname="McCauley">
              <organization/>
            </author>
            <date month="October" year="2015"/>
            <abstract>
              <t>This document specifies a means to find authoritative RADIUS servers for a given realm.  It is used in conjunction with either RADIUS over Transport Layer Security (RADIUS/TLS) or RADIUS over Datagram Transport Layer Security (RADIUS/DTLS).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7585"/>
          <seriesInfo name="DOI" value="10.17487/RFC7585"/>
        </reference>
        <reference anchor="RFC7930" target="https://www.rfc-editor.org/info/rfc7930">
          <front>
            <title>Larger Packets for RADIUS over TCP</title>
            <author fullname="S. Hartman" initials="S." surname="Hartman">
              <organization/>
            </author>
            <date month="August" year="2016"/>
            <abstract>
              <t>The RADIUS-over-TLS experiment described in RFC 6614 has opened RADIUS to new use cases where the 4096-octet maximum size limit of a RADIUS packet proves problematic.  This specification extends the RADIUS-over-TCP experiment (RFC 6613) to permit larger RADIUS packets.  This specification compliments other ongoing work to permit fragmentation of RADIUS authorization information.  This document registers a new RADIUS code, an action that required IESG approval.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7930"/>
          <seriesInfo name="DOI" value="10.17487/RFC7930"/>
        </reference>
        <reference anchor="RFC5931" target="https://www.rfc-editor.org/info/rfc5931">
          <front>
            <title>Extensible Authentication Protocol (EAP) Authentication Using Only a Password</title>
            <author fullname="D. Harkins" initials="D." surname="Harkins">
              <organization/>
            </author>
            <author fullname="G. Zorn" initials="G." surname="Zorn">
              <organization/>
            </author>
            <date month="August" year="2010"/>
            <abstract>
              <t>This memo describes an Extensible Authentication Protocol (EAP) method, EAP-pwd, which uses a shared password for authentication. The password may be a low-entropy one and may be drawn from some set of possible passwords, like a dictionary, which is available to an attacker.  The underlying key exchange is resistant to active attack, passive attack, and dictionary attack.  This document is not an Internet  Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5931"/>
          <seriesInfo name="DOI" value="10.17487/RFC5931"/>
        </reference>
        <reference anchor="RFC5281" target="https://www.rfc-editor.org/info/rfc5281">
          <front>
            <title>Extensible Authentication Protocol Tunneled Transport Layer Security Authenticated Protocol Version 0 (EAP-TTLSv0)</title>
            <author fullname="P. Funk" initials="P." surname="Funk">
              <organization/>
            </author>
            <author fullname="S. Blake-Wilson" initials="S." surname="Blake-Wilson">
              <organization/>
            </author>
            <date month="August" year="2008"/>
            <abstract>
              <t>EAP-TTLS is an EAP (Extensible Authentication Protocol) method that encapsulates a TLS (Transport Layer Security) session, consisting of a handshake phase and a data phase.  During the handshake phase, the server is authenticated to the client (or client and server are mutually authenticated) using standard TLS procedures, and keying material is generated in order to create a cryptographically secure tunnel for information exchange in the subsequent data phase.  During the data phase, the client is authenticated to the server (or client and server are mutually authenticated) using an arbitrary authentication mechanism encapsulated within the secure tunnel.  The encapsulated authentication mechanism may itself be EAP, or it may be another authentication protocol such as PAP, CHAP, MS-CHAP, or MS-CHAP-V2.  Thus, EAP-TTLS allows legacy password-based authentication protocols to be used against existing authentication databases, while protecting the security of these legacy protocols against eavesdropping, man-in-the-middle, and other attacks.  The data phase may also be used for additional, arbitrary data exchange.  This memo  provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5281"/>
          <seriesInfo name="DOI" value="10.17487/RFC5281"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAGATOGQAA+1963LbWHrgfz4FVv1jpCwp62q7XZXeaCx77Bq77bXk6eRP
pkDgkMQIBBgcQDRnpvdZ9ln2yfa7ngsASurpSSqpipPqoUjgXL7z3W9nNptN
2qItzavky9X1+683yR9MY4u6Sk6PTyfpfN6Ye/3p/vR0ktdZla7h6bxJF+0s
N3f13axJc/Otxf8pOgtPzU4uJt0mT1tjXyXPn5+eT1+cPz+ZTGybVvkf07Ku
YIC26cyk2DT0ybZnJyffn5xN0sakr5L3VWuayrST7ZImf/PPt8lPdXNXVMvk
d03dbSZ3W//U7BrXMsnS9lVi23xiu/m6sLiJ290GZnr/5vbtZLIpXk2SpK2z
V8nOWPho66ZtzAKWmCTfJblZpF3ZWnhCf9+t+Wf8c5J27apuXk0ms6So4Mur
4+Ta/L6+gwcZIFdlWrmv6gYW/rYxhiEH35h1WpSvkhSeyv9pAb8wtI7hycmk
qpt12hb3Bpf429efTy9g229fvzx9cQFfwKezl88vX/HH5xdnp/rx+7Pv5eOL
8xP99uXJxQWss6gW4ajww+m5e/Ps8uLlKzf0c/9Rvz2/fKFDX56+0Aeen166
uc9O9Vk8Yf/xwq3o+Yl+vHypq3/x/Tl8O7k3VUfLWuJp6hnD3wwlRqh/Kky7
IADBc0W76uavEg+5Zw7djuFHOJfZLEnntm3SDP66XRU2AWTt1qZq8XCLytjk
arMpC8ATQI3Zh3RnmuRzUwNK1GXyo1nWbUE/JW++taZC/LEJwDDprEm2ML+Q
wbPbDzcJnKL+eQ1/HyfJ7crAc8a/ujHNumiTdmWSKhi8XsDLSZrnBf6Zlknq
F5VsdDk4rxBkfQ/rPLw+4ml+rJNslVZL2A3QCsArN4iyspav158T9+az29ef
eWHhstKyrLejqwJCTCu7AbLAdSyKEra9MjAJPiyLsSuYNU+syRrTJgDjqk6A
npeGwJRPCTAwRfLx+nI2T+GrZJNmd/CsLZYV0i890LZNMe9ak9TzRWdl82sD
JJbzvhqzhn3nsPyfVqaCFcBUbhM4L8+GK9sAiyrqDk4XSBROG2EJMFgUpszx
ycZsumZT41IAUFldtWlR4RmYbwh4OKLG/FtnbJs8g0+w/wrOschxJBijmSYZ
7AdeTpPb+s5UAlH6DDu1NUPUJuuaQAUDn10+l10TO5nDNruWmB8CAKFdGVxI
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

-->

</rfc>
