<?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-ietf-radext-radiusv11-01" category="exp" submissionType="IETF" updates="6614, 7360" 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-ietf-radext-radiusv11-01"/>
    <author initials="A." surname="DeKok" fullname="Alan DeKok">
      <organization>FreeRADIUS</organization>
      <address>
        <email>aland@freeradius.org</email>
      </address>
    </author>
    <date year="2023" month="May" day="24"/>
    <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 "RADIUS/1.1".</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-ietf-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 that MD5 should no longer be used.  These discussions are most notably in <xref target="RFC6151"/>, and in Section 3 of <xref target="RFC6421"/>, among others.  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.</t>
      <t>While RADIUS originally used UDP transport, additional transport protocols were defined for TCP (<xref target="RFC6613"/>), TLS (<xref target="RFC6614"/>), and DTLS (<xref target="RFC7360"/>).  However, those transport protocols 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 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 have 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 over (D)TLS which removes their 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.  A preliminary implementation has shown that only minor code changes are required to support RADIUS/1.1 on top of an existing RADIUS server.</t>
      <t>While this document permits MD5 to be removed when using (D)TLS transports, it makes no changes to UDP or TCP transports.  It is therefore RECOMMENDED that those transports only be used within secure networks, and only used in situations where FIPS compliance is not an issue.</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>The default 4K packet size is unchanged, although <xref target="RFC7930"/> can still be leveraged to use larger packets,</li>
        <li>All attributes which have simple encodings (i.e. without using MD5 obfuscation), all have the same encoding and 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 who 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 be fully FIPS-140 compliant.  That is, a home server can remove all uses of MD4 and MD5.  In that case, however, the home server will not support CHAP, 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.  It is therefore 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.  The contents or meaning of any RADIUS attribute other than Message-Authenticator (and similar attributes) are not modified.  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.</t>
      <t>This specification is compatible with existing implementations of RADIUS/TLS and RADIUS/DTLS.  There is no need to define an ALPN name for those protocols, as implementations can simply not send an ALPN name when those protocols are used.  Backwards compatibility with existing implementations is both required, and assumed.</t>
      <t>This specification is compatible with all past and future RADIUS specifications.  There is no need for any RADIUS specification to mention this transport profile by name, or to make provisions for this specification.  This specification defines how to transform RADIUS into RADIUS/1.1, and no further discussion of that transformation is necessary.</t>
      <t>In short, when negotiated on a connection, this specification permits implementations to avoid MD5 when signing packets, or when 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>
          <t>Application-Layer Protocol Negotiation, as defined in <xref target="RFC7301"/>.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS</li>
      </ul>
      <ul empty="true">
        <li>
          <t>The Remote Authentication Dial-In User Service protocol, as defined in <xref target="RFC2865"/>, <xref target="RFC2866"/>, and <xref target="RFC5176"/> among others.</t>
          <t>While this protocol can be viewed as "RADIUS/1.0", for simplicity and historical compatibility, we keep the name "RADIUS".</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS/UDP</li>
      </ul>
      <ul empty="true">
        <li>
          <t>RADIUS over the User Datagram Protocol as define above.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS/TCP</li>
      </ul>
      <ul empty="true">
        <li>
          <t>RADIUS over the Transmission Control Protocol <xref target="RFC6613"/>.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS/TLS</li>
      </ul>
      <ul empty="true">
        <li>
          <t>RADIUS over the Transport Layer Security protocol <xref target="RFC6614"/>.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS/DTLS</li>
      </ul>
      <ul empty="true">
        <li>
          <t>RADIUS over the Datagram Transport Layer Security protocol  <xref target="RFC7360"/>.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS over TLS</li>
      </ul>
      <ul empty="true">
        <li>
          <t>Either RADIUS/TLS or RADIUS/DTLS.  This terminology is used instead of alternatives such as "RADIUS/(D)TLS", or "either RADIUS/TLS or RADIUS/DTLS".</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS/1.1</li>
      </ul>
      <ul empty="true">
        <li>
          <t>The transport profile defined in this document, which stands for "RADIUS version 1.1".  We use RADIUS/1.1 to refer interchangeably to TLS and DTLS transport.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>TLS</li>
      </ul>
      <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>
    </section>
    <section anchor="the-radius11-transport-profile-for-radius">
      <name>The RADIUS/1.1 Transport profile for RADIUS</name>
      <t>This section describes the ALPN transport profile in detail.  It first gives the name used for ALPN, and then describes how ALPN is configured and negotiated by client and server.  It then concludes by discussing TLS issues such as what to do for ALPN during session resumption.</t>
      <section anchor="alpn-name-for-radius11">
        <name>ALPN Name for RADIUS/1.1</name>
        <t>The ALPN name defined for RADIUS/1.1 is as follows:</t>
        <ul empty="true">
          <li>
            <t>"radius/1.1"</t>
            <ul empty="true">
              <li>
                <t>The protocol defined by this 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 RADIUS/1.1.</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 causes a connection to use "radius/1.1", but which does not signal that protocol via ALPN.</t>
        <t>The next step in defining RADIUS/1.1 is to review how ALPN works.</t>
      </section>
      <section anchor="operation-of-alpn">
        <name>Operation of ALPN</name>
        <t>Once a system has been configured to support ALPN, it is negotiated on a per-connection basis as per <xref target="RFC7301"/>.  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.  This section is not normative.</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>
        <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 finds no acceptable common protocols (ALPN or otherwise), it closes the connection.</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 client did not signal ALPN, or the server does not accept the ALPN proposal, the server does not reply with any ALPN name.</t>
          </li>
        </ul>
        <t>4) The client receives the ServerHello, validates the received application protocol (if any) against the name it sent, and records the application protocol which was chosen.</t>
        <ul empty="true">
          <li>
            <t>This check 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 one which is acceptable to the client.</t>
          </li>
        </ul>
        <t>The next step in defining RADIUS/1.1 is to define how ALPN is configured on the client and server, and to give more detailed requirements on ALPN configuration and operation.</t>
      </section>
      <section anchor="configuration-of-alpn-for-radius11">
        <name>Configuration of ALPN for RADIUS/1.1</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 implementation signals use of this protocol via ALPN.</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 RADIUS/1.1</t>
            <ul empty="true">
              <li>
                <t>A client with this configuration MUST NOT signal any protocol name via ALPN.  The system MUST use RADIUS over TLS
as defined in <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 over TLS
as defined in <xref target="RFC6614"/> and <xref target="RFC7360"/>.</t>
                <t>A server with this configuration MUST NOT close the connection if it receives an ALPN name from the client. Instead, it simply does not reply with ALPN,  and finishes the TLS connection setup as defined previously in <xref target="RFC6614"/></t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>allow - Allow (or negotiate) the use of RADIUS/1.1</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 client MUST use RADIUS/1.1 if the server responds signalling ALPN "radius/1.1".  If no ALPN response is received from the server, the client MUST use RADIUS over TLS as defined in previous specifications.</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.  If the client does not signal ALPN, the server MUST NOT reply with any ALPN name.</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>require -  Require the use of RADIUS/1.1</t>
            <ul empty="true">
              <li>
                <t>A client with this configuration MUST use ALPN to signal that "radius/1.1" can be used.  The client MUST use RADIUS/1.1 if the server responds signalling ALPN "radius/1.1".  If no ALPN response is received from the server, the client MUST close the connection.</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".  The server and client both MUST then use RADIUS/1.1 as the application-layer protocol.  There is no reason to signal support for a protocol, and then not use it.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>Note that systems implementing this specification, but configured with "forbid" as above, will behave exactly the same as systems which do not implement this specification.</t>
        <t>If a client or server determines that there are no compatible application protocol names, then as per <xref target="RFC7301"/> Section 3.2, it MUST send a TLS alert of "no_application_protocol" (120), which signals to the other end that there is no compatible application protocol.  It MUST then close the connection.  This requirement applies to both new sessions, and to resumed sessions.</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>
        <t>Note that there is no way for a client to signal if its RADIUS/1.1 configuration is set to "allow" or "require".  The client MUST signal "radius/1.1" via ALPN when it is configured with either value.  The difference between the two values for the client is only in how it handles responses from the server.</t>
        <t>Similarly, there is no way for a server to signal if its RADIUS/1.1 configuration is set to "allow" or "require".  In both cases if it receives "radius/1.1" from the client via ALPN, the server MUST reply with "radius/1.1", and agree to that negotiation.  The difference between the two values for the server is how it handles the situation when no ALPN is signalled from the client.</t>
        <section anchor="tabular-summary">
          <name>Tabular Summary</name>
          <t>The preceding text gives a large number of recommendations.  In order to give a simpler description of the outcomes, a table of possible behaviors for client/server values of the RADIUS/1.1 flag is given below.  This table and the names given below are for informational and descriptive purposes only.  This section is not normative.</t>
          <figure>
            <name>Possible outcomes for ALPN Negotiation</name>
            <artwork><![CDATA[
                             Server
              no ALPN | forbid  | allow  | require
Client    |--------------------------------------
----------|
No ALPN   |   RADIUS    RADIUS    RADIUS   Close
          |                                Note 1
          |
forbid    |   RADIUS    RADIUS    RADIUS   Close
          |                                Note 1
          |
allow     |   RADIUS    RADIUS    OK      OK
          |   Note 3    Note 3
          |
require   |   Close     Close     OK      OK
          |   Note 2    Note 2
]]></artwork>
          </figure>
          <t>The table entries above have the following meaning:</t>
          <t>Close</t>
          <ul empty="true">
            <li>
              <t>Note 1 - the server closes the connection, as the client does not do RADIUS/1.1.</t>
              <t>Note 2 - the client closes the connection, as the server does not do RADIUS/1.1</t>
            </li>
          </ul>
          <t>RADIUS</t>
          <ul empty="true">
            <li>
              <t>RADIUS over TLS is used.  RADIUS/1.1 is not used.</t>
              <t>Note 3 - The client sends ALPN, but the server does not reply with ALPN.</t>
            </li>
          </ul>
          <t>OK</t>
          <ul empty="true">
            <li>
              <t>RADIUS/1.1 is signalled and used by both client and server.</t>
              <t>The client sends "radius/1.1" via ALPN, and the server replies with "radius/1.1" via ALPN.</t>
            </li>
          </ul>
        </section>
      </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>
      </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 <xref target="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 systems which negotiate the "radius/1.1" protocol MUST associate that information with the session ticket, and enforce the use of "radius/1.1" on session resumption.  That is, if "radius/1.1" was negotiated for a session, both clients and servers MUST behave as if the RADIUS/1.1 flag was set to "require" for that session.</t>
        <t>A client which is resuming a "radius/1.1" connection MUST advertise only the capability to do "radius/1.1" for the resumed session.  That is, even if the client configuration is "allow" for new connections, it MUST signal "radius/1.1" when resuming a session which had previously negotiated "radius/1.1".</t>
        <t>Similarly, when a server does resumption for a session which had previously negotiated "radius/1.1",   If the client attempts to resume the sessions without signalling the use of RADIUS/1.1, the server MUST close the connection.  The server MUST send an appropriate TLS error, and also SHOULD log a descriptive message as described above.</t>
        <t>In contrast, there is no requirement for a client or server to force the use of <xref target="RFC6614"/> RADIUS/TLS on session resumption.  Clients are free to signal support for "radius/1.1" on resumed sessions, even if the original session did not negotiate "radius/1.1".  Servers are free to accept this request, and to negotiate the use of "radius/1.1" for such sessions.</t>
      </section>
    </section>
    <section anchor="radius11-packet-and-attribute-formats">
      <name>RADIUS/1.1 Packet and Attribute Formats</name>
      <t>This section describes the application-layer data which is sent inside of (D)TLS when using the RADIUS/1.1 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 RADIUS/1.1 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 / Reeponse 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 previous RADIUS specifications.</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 replaces it as the way to identify requests and responses.  The Reserver-1 field MUST be ignoored when receiving a packet.</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 previous RADIUS specifications.</t>
          </li>
        </ul>
        <t>Token</t>
        <ul empty="true">
          <li>
            <t>The Token field is four octets, and aids in matching requests and
replies, as a replacement for the Identifier field.  The RADIUS server can detect a duplicate request if it receives
the same Token value for two packets on a particular connection.</t>
            <t>Further requirements are given below in <xref target="sending-packets"/> for sending packets, and in <xref target="receiving-packets"/> for receiving packets.</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>The Token field MUST change for every new unique packet which is sent on the same connection. 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.  Note that on reliable transports, packets are never retransmitted, and therefore every new packet sent has a unique Token value.</t>
          <t>Systems generating the Token can do so via any method they choose, but 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 that the client sends.</t>
          <t>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.  The originating system can simply continue to increment the Token value.</t>
          <t>Once a RADIUS response to a request has been received and there is no need to track the packet any longer, the Token value MAY be reused. This SHOULD be after a suitable delay to ensure that Token values do not conflict with outstanding packets.  Note that the counter method described above for generating Token values will automatically ensure a long delay between multiple uses of the same Token value.  The only cost for tracking Tokens is a single 32-bit counter.  Any other method of generating unique and non-conflicting Token values is likely to require substantially more resources to track outstanding Token values.</t>
          <t>If a RADIUS client has multiple independent subsystems which send packets to a server, each subsystem MAY open a new port that 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, RADIUS/1.1 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 RADIUS/1.1 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>We note that in previous RADIUS specifications, the Identifier field could have the same value for different types of packets on the same connection, e.g. for Access-Request and Accounting-Request.  This overlap required 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 RADIUS/1.1, implementations MUST instead do deduplication only on the Token field, and not on any other field or fields in the packet header. 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>Where Token deduplication is done, it MUST be done on a per-connection basis.  If two 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>This change from RADIUS means that the Identifier field is no longer useful.  The Reserved-1 field (previously used as the Identifier) MUST be set to zero for all RADIUS/1.1 packets.  RADIUS/1.1 Implementations MUST NOT examine this field or use it for packet tracking or deduplication.</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 defined as being obfuscated via MD5 no longer have the obfuscation step applied when RADIUS/1.1 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>There are often concerns where RADIUS is used, 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 entire RADIUS exchange including packets, attributes (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 categorically 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>There are others ways to mitigate these risks.  One is by ensuring that the RADIUS over 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>
        <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 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.5).</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 be printable text, or UTF-8 data as per the definition of the 'text' data type in <xref target="RFC8044"/> Section 3.4.</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.3 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 RADIUS/1.1 connections no longer use a Request Authenticator field, it is no longer possible to use the Request Authenticator field as the CHAP-Challenge.</t>
          <t>Clients which send CHAP-Password attribute (<xref target="RFC2865"/> Section 5.3) in an Access-Request packet over a RADIUS/1.1 connection MUST also include a CHAP-Challenge attribute (<xref target="RFC2865"/> Section 5.40).</t>
          <t>Proxies may need to Access-Request packets over a non-RADIUS/1.1 transport and then forward those packets over a RADIUS/1.1 connection.  In that case, if the received Access-Request packet contains a CHAP-Password attribute but no CHAP-Challenge attribute, the proxy MUST create a CHAP-Challenge attribute in the proxied packet using the contents from the incoming Request Authenticator of the received packet.</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 'string' 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 be printable text, or UTF-8 data as per the definition of the 'text' data type in <xref target="RFC8044"/> Section 3.4.</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.4).</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 RADIUS/1.1 connection.  That attribute is no longer used or needed.</t>
        <t>If the Message-Authenticator attribute is received over a RADIUS/1.1 connection, the attribute MUST be silently discarded, or treated as an "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>
        <t>For proxies, the Message-Authenticator attribute was always defined as being created and consumed on a "hop by hop" basis.  That is, a proxy which received a Message-Authenticator attribute from a client would never forward that attribute as-is to another server.  Instead, the proxy would either suppress, or re-create, the Message-Authenticator attribute in the outgoing request.  This existing behavior is leveraged in RADIUS/1.1 to suppress the use of Message-Authenticator over a RADIUS/1.1 connection.</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 RADIUS/1.1 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 way 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.  As a result, these attributes are unchanged in RADIUS/1.1.</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><xref target="RFC7930"/> Section 4 defines an Original-Packet-Code attribute.  This attribute is needed because otherwise it is impossible to correlate the Protocol-Error response packet with a particular request packet.  The definition in <xref target="RFC7930"/> Section 4 describes the reasoning behind this need:</t>
        <ul empty="true">
          <li>
            <t>The Original-Packet-Code contains the code
from the request that generated the protocol error so that clients
can disambiguate requests with different codes and the same ID.</t>
          </li>
        </ul>
        <t>This attribute is no longer needed in RADIUS/1.1.  The Identifier field is unused, so it impossible for two requests to have the "same" ID.  Instead, the Token field permits clients and servers to correlate requests and responses, independent of the Code being used.</t>
        <t>Therefore, the Original-Packet-Code attribute (<xref target="RFC7930"/> Section 4) MUST NOT be sent over a RADIUS/1.1 connection.  That attribute is no longer used or needed.</t>
        <t>If the Original-Packet-Code attribute is received over a RADIUS/1.1 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.</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 RADIUS and RADIUS/1.1 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 RADIUS/1.1, as the Identifier field is no longer used.</t>
        <t>The rationale 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 packets.  If all 256 Identifier values had been used to send Access-Request packets, then there would be no Identifier value available for sending a Status-Server packet.</t>
        <t>In contrast, the Token field allows for 2^32 outstanding packets on one RADIUS/1.1 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 serious issues, such as allowing billions of packets to be outstanding.  The safest way forward in that case 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 RADIUS/1.1 connection without changing their values or contents.</t>
        <t>A proxy may negotiate RADIUS/1.1 (or not) with a particular client or clients, and it may negotiate RADIUS/1.1 (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 <xref target="RFC7593"/> and <xref target="EDUROAM"/> and in OpenRoaming <xref target="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 over TLS be updated to support this specification.  The effort to implement this specification is minimal, and once implementations support it, 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 down-bidding attacks if implementations do not enforce ALPN negotiation correctly on session resumption.</t>
        <t>All crypto-agility needed or used 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 following section, this specification also bans the development of all new cryptographic or crypto-agility methods in the RADIUS protocol.</t>
      </section>
      <section anchor="error-cause-attribute">
        <name>Error-Cause Attribute</name>
        <t>The Error-Cause attribute is defined in <xref target="RFC5176"/>. The "Table of Attributes" section given in <xref target="RFC5176"/> Section 3.6 permits that attribute to appear in CoA-NAK and Disconnect-NAK packets.  As no other packet type is listed, the implication is that the Error-Cause attribute cannot appear in any other packet.  <xref target="RFC7930"/> also permits Error-Cause to appear in Protocol-Error packets.</t>
        <t>However, <xref target="RFC5080"/> Section 2.6.1 suggests that Error-Cause may appear in Access-Reject packets.  No reference is given for this change from <xref target="RFC5176"/>.  There is not even an acknowledgement that this suggestion is a change from any previous specification.  We correct that issue here.</t>
        <t>This specification updates <xref target="RFC5176"/> to allow the Error-Cause attribute to appear in Access-Reject packets.  It is RECOMMENDED that implementations include the Error-Cause attribute in Access-Reject packets where appropriate.</t>
        <t>That is, the reason for sending the Access-Reject packet (or Protocol-Error packet) may match a defined Error-Cause value.  In that case, it is useful for implementations to send an Error-Cause attribute with that value.  This behavior can help RADIUS system administrators debug issues in complex proxy chains.</t>
        <t>For example, a proxy may normally forward Access-Request packets which contain EAP-Message attributes.  The proxy can determine if the contents of the EAP-Message are invalid, for example if the first octet has value larger than 4.  In that case, there may be no benefit to forwarding the packet, as the home server will reject it.  It may then then possible for the proxy (with the knowledge and consent of involved parties) to immediately reply with an Access-Reject containing an Error-Cause attribute with value 202 for "Invalid EAP Packet (Ignored)".</t>
        <t>Another possibility is that if a proxy is configured to forward packets for a particular realm, but it has determined that there are no available connections to the next hop for that realm.  In that case, it is may be possible for the proxy (again with the knowledge and consent of involved parties) to reply with an Access-Reject containing an Error-Cause attribute with value 502 for "Request Not Routable (Proxy)"</t>
        <t>These examples are given only for illustrative and informational purposes.  While it is useful to return an informative value for the Error-Cause attribute, proxies can only modify the traffic they forward with the explicit knowledge and concsent of all involved parties.</t>
      </section>
      <section anchor="future-standards">
        <name>Future Standards</name>
        <t>Future work may define new attributes, packet types, etc.  It is important to be able to do such work without requiring that every new standard mention RADIUS/1.1 explicitly.  Instead, this document defines a mapping from RADIUS to RADIUS/1.1 which covers all RADIUS practices and cryptographic primitives in current use.  As a result, any new standard which uses the existing RADIUS practices can simply inherit that mapping, and they do not need to mention RADIUS/1.1 explicitly.</t>
        <t>We reiterate that this specification defines a new transport profile for RADIUS.  It does not define a completely new protocol.  Any future specification which defines a new attribute MUST define it for RADIUS/UDP first, 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 RADIUS/1.1.  Since RADIUS/1.1 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 "string" (<xref target="RFC8044"/> Section 3.5).</t>
        <t>New RADIUS specifications MUST NOT define attributes which can only be transported via RADIUS over 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 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>The result is that specifications do not need to mention this transport profile, or make any special provisions for dealing with it.  This specification defines how RADIUS packet encoding, decoding, signing, and verification are performed when using RADIUS/1.1.  So long as any future specification uses the existing encoding, etc. schemes defined for RADIUS, no additional text in future documents is necessary in order to be compatible with RADIUS/1.1.</t>
        <t>We note that it is theoretically possible for future standards to define new cryptographic primitives for use with RADIUS/UDP.  In that case, those documents would likely have to describe how to transport that data in RADIUS/1.1.  We believe that such standards are unlikely to be published, as other efforts in the RADEXT working group are forbidding such updates to RADIUS.</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 requested 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 over 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, Alexander Clouter, Michael Richardson, Hannes Tschofenig, Matthew Newton, and Josh Howlett 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>
      <t>draft-dekok-radext-radiusv11-05</t>
      <ul empty="true">
        <li>
          <t>Clarify naming.  "radius/1.1" is the ALPN name.  "RADIUS/1.1" is the transport profile.</t>
          <t>Clarify that future specifications do not need to make provisions for dealing with this transport profile.</t>
        </li>
      </ul>
      <t>draft-dekok-radext-radiusv11-05</t>
      <ul empty="true">
        <li>
          <t>Typos and word smithing.</t>
          <t>Define and use "RADIUS over TLS" instead of RADIUS/(D)TLS.</t>
          <t>Many cleanups and rework based on feedback from Matthew Newton.</t>
        </li>
      </ul>
      <t>draft-ietf-radext-radiusv11-00</t>
      <ul empty="true">
        <li>
          <t>No changes from previous draft.</t>
        </li>
      </ul>
      <t>draft-ietf-radext-radiusv11-01</t>
      <ul empty="true">
        <li>
          <t>Move to "experimental" based on WG feedback.</t>
          <t>Many cleanups based on review from Matthew Newton</t>
          <t>Removed requirement for supporting TLS-PSK.</t>
          <t>This document does not deprecate new cryptographic work in RADIUS.  The "deprecating insecure transports" document does that.</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="RFC7593" target="https://www.rfc-editor.org/info/rfc7593">
          <front>
            <title>The eduroam Architecture for Network Roaming</title>
            <author fullname="K. Wierenga" initials="K." surname="Wierenga">
              <organization/>
            </author>
            <author fullname="S. Winter" initials="S." surname="Winter">
              <organization/>
            </author>
            <author fullname="T. Wolniewicz" initials="T." surname="Wolniewicz">
              <organization/>
            </author>
            <date month="September" year="2015"/>
            <abstract>
              <t>This document describes the architecture of the eduroam service for federated (wireless) network access in academia.  The combination of IEEE 802.1X, the Extensible Authentication Protocol (EAP), and RADIUS that is used in eduroam provides a secure, scalable, and deployable service for roaming network access.  The successful deployment of eduroam over the last decade in the educational sector may serve as an example for other sectors, hence this document.  In particular, the initial architectural choices and selection of standards are described, along with the changes that were prompted by operational experience.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7593"/>
          <seriesInfo name="DOI" value="10.17487/RFC7593"/>
        </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="EDUROAM" target="https://eduroam.org">
          <front>
            <title>eduroam</title>
            <author initials="" surname="eduroam" fullname="eduroam">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="OPENROAMING" target="https://wballiance.com/openroaming/">
          <front>
            <title>OpenRoaming: One global Wi-Fi network</title>
            <author initials="W. B." surname="Alliance" fullname="Wireless Broadband Alliance">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC5077" target="https://www.rfc-editor.org/info/rfc5077">
          <front>
            <title>Transport Layer Security (TLS) Session Resumption without Server-Side State</title>
            <author fullname="J. Salowey" initials="J." surname="Salowey">
              <organization/>
            </author>
            <author fullname="H. Zhou" initials="H." surname="Zhou">
              <organization/>
            </author>
            <author fullname="P. Eronen" initials="P." surname="Eronen">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <date month="January" year="2008"/>
            <abstract>
              <t>This document describes a mechanism that enables the Transport Layer Security (TLS) server to resume sessions and avoid keeping per-client session state.  The TLS server encapsulates the session state into a ticket and forwards it to the client.  The client can subsequently resume a session using the obtained ticket.  This document obsoletes RFC 4507.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5077"/>
          <seriesInfo name="DOI" value="10.17487/RFC5077"/>
        </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>
        <reference anchor="RFC5080" target="https://www.rfc-editor.org/info/rfc5080">
          <front>
            <title>Common Remote Authentication Dial In User Service (RADIUS) Implementation Issues and Suggested Fixes</title>
            <author fullname="D. Nelson" initials="D." surname="Nelson">
              <organization/>
            </author>
            <author fullname="A. DeKok" initials="A." surname="DeKok">
              <organization/>
            </author>
            <date month="December" year="2007"/>
            <abstract>
              <t>This document describes common issues seen in Remote Authentication Dial In User Service (RADIUS) implementations and suggests some fixes. Where applicable, ambiguities and errors in previous RADIUS specifications are clarified.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5080"/>
          <seriesInfo name="DOI" value="10.17487/RFC5080"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
AtxK33VbxwAA

-->

</rfc>
