<?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-00" category="std" consensus="true" submissionType="IETF" updates="6613 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-00"/>
    <author initials="A." surname="DeKok" fullname="Alan DeKok">
      <organization>FreeRADIUS</organization>
      <address>
        <email>aland@freeradius.org</email>
      </address>
    </author>
    <date year="2023" month="April" day="26"/>
    <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 MD5 should no longer be used.  In addition, the dependency on MD5 makes it impossible to use RADIUS in a FIPS-140 compliant system, as FIPS-140 forbids systems from relying on insecure cryptographic methods for security.  There are many prior discussions of MD5 insecurities which we will not repeat here.  These discussions are most notably in <xref target="RFC6151"/>, and in Section 3 of <xref target="RFC6421"/>, among others.</t>
      <t>While additional transport protocols were defined for RADIUS in TCP (<xref target="RFC6613"/>), TLS (<xref target="RFC6614"/>), and DTLS (<xref target="RFC7360"/>), those transports still relied on MD5.  That is, the shared secret was used along with MD5, even when the RADIUS packets were being transported in (D)TLS.  At the time, the consensus of the RADEXT working group was that this continued use of MD5 was acceptable.  TLS was seen as a simple "wrapper" around 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 which removes the dependency on MD5.  Systems which implement this transport profile are therefore capable of being FIPS-140 compliant.  This extension can best be understood as a transport profile for RADIUS, rather than a whole-sale revision of the RADIUS protocol.  A preliminary implementation has shown that only minor changes are required to support RADIUS/1.1 on top of an existing RADIUS server.</t>
      <t>The changes from traditional TLS-based transports for RADIUS are as follows:</t>
      <ul spacing="normal">
        <li>ALPN is used for negotiation of this extension,</li>
        <li>TLS 1.3 or later is required,</li>
        <li>all uses of the RADIUS shared secret have been removed,</li>
        <li>The now-unused Request and Response Authenticator fields have been repurposed to carry an opaque Token which identifies requests and responses,</li>
        <li>The Identifier field is no longer used, and has been replaced by the Token field,</li>
        <li>The Message-Authenticator attribute (<xref target="RFC3579"/> Section 3.2) is not sent in any packet, and if received is ignored,</li>
        <li>Attributes such as User-Password, Tunnel-Password, and MS-MPPE keys are sent encoded as "text" (<xref target="RFC8044"/> Section 3.4) or "octets" (<xref target="RFC8044"/> Section 3.5), without the previous MD5-based obfuscation.  This obfuscation is no longer necessary, as the data is secured and kept private through the use of TLS,</li>
        <li>Future RADIUS specifications are forbidden from defining new cryptographic primitives.</li>
      </ul>
      <t>The following items are left unchanged from traditional TLS-based transports for RADIUS:</t>
      <ul spacing="normal">
        <li>the RADIUS packet header is the same size, and the Code and Length fields (<xref target="RFC2865"/> Section 3) have the same meaning as before,</li>
        <li>All attributes which do not use MD5-based obfuscation methods are encoded using the normal RADIUS methods, and have the same meaning as before,</li>
        <li>As this extension is a transport profile for one "hop" (client to server connection), it does not impact any other connection used by a client or server.  The only systems which are aware that this transport profile is in use are the client and server which have negotiated the use of this extension on a particular shared connection,</li>
        <li>This extension uses the same ports (2083/tcp and 2083/udp) which are defined for RADIUS/TLS <xref target="RFC6614"/> and RADIUS/DTLS <xref target="RFC7360"/>.</li>
      </ul>
      <t>A major benefit of this extensions is that a home server which implements it can also choose to also implement full FIPS-140 compliance.  That is, a home server can remove all uses of MD4 and MD5.  In that case, however, the home server will not support CHAP, MS-CHAP, or any authentication method which uses MD4 or MD5.  We note that the choice of which authentication method to accept is always left to the home server.  This specification does not change any authentication method carried in RADIUS, and does not mandate (or forbid) the use of any authentication method for any system.</t>
      <t>As for proxies, there was never a requirement that proxies implement CHAP or MS-CHAP authentication.  So far as a proxy is concerned, attributes relating to CHAP and MS-CHAP are simply opaque data that is transported unchanged to the next hop.  As such, it is possible for a FIPS-140 compliant proxy to transport authentication methods which depend on MD4 or MD5, so long as that data is forwarded to a home server which supports those methods.</t>
      <t>We reiterate that the decision to support (or not) any authentication method is entirely site local, and is not a requirement of this specification.  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 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="RFC2865"/>, 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>
          <ul empty="true">
            <li>
              <t>RADIUS over the Transport Layer Security protocol <xref target="RFC6614"/>.</t>
            </li>
          </ul>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS/DTLS</li>
      </ul>
      <ul empty="true">
        <li>
          <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" without signalling 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, 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 does not signal ALPN, or 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 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 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 implementations signal 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.</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 the other end that there is no compatible application protocol.  It MUST then close the connection.</t>
        <t>It is RECOMMENDED that a descriptive error is logged in this situation, so that an administrator can determine why a particular connection failed.  The log message SHOULD include information about the other end of the connection, such as IP address, certificate information, etc.  Similarly, a system receiving a TLS alert of "no_application_protocol" SHOULD log a descriptive error message.  Such error messages are critical for helping administrators to diagnose connectivity issues.</t>
        <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 reponses 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 used by both parties.</t>
              <t>The client sends "radius/1.1" via ALPN, and the server repies 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>
        <t>Implementations of this specification MUST support TLS-PSK.</t>
      </section>
      <section anchor="session-resumption">
        <name>Session Resumption</name>
        <t><xref target="RFC7301"/> Section 3.1 states that ALPN is negotiated on each connection, even if session resumption is used:</t>
        <ul empty="true">
          <li>
            <t>When session resumption or session tickets <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 servers which negotiate the "radius/1.1" protocol MUST associate that information with the session ticket.  On session resumption, the server MUST advertise only the capability to do "radius/1.1" for that session.  That is, even if the server configuration is "allow" for new connections, it MUST signal "radius/1.1" when resuming a session which had previously negotiated "radius/1.1".</t>
        <t>If a server sees that a client had previously negotiated RADIUS/1.1 for a session, but the client is now attempting to resume the sessions without signalling the use of RADIUS/1.1, the server MUST close the connection.  The server SHOULD send an appropate TLS error, such as no_application_protocol (120), or insufficient_security (71).  The server SHOULD log a descriptive message as described above.</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 Authenticator and Response Authenticator fields are no longer used.  Any operations which depend on those fields MUST NOT be performed.  As packet signing and security are handled by the TLS layer, RADIUS-specific cryptographic primitives are no longer used.</t>
        <t>A summary of the RADIUS/1.1 packet format is shown below.  The fields are transmitted from left to right.</t>
        <figure anchor="Header">
          <name>The RADIUS/1.1 Packet Format</name>
          <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Code      |  Reserved-1   |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             Token                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                           Reserved-2                          |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Attributes ...
+-+-+-+-+-+-+-+-+-+-+-+-+-
]]></artwork>
        </figure>
        <t>Code</t>
        <ul empty="true">
          <li>
            <t>The Code field is one octet, and identifies the type of RADIUS packet.</t>
            <t>The meaning of the Code field is unchanged from 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 is now used to identify requests and responses.</t>
          </li>
        </ul>
        <t>Length</t>
        <ul empty="true">
          <li>
            <t>The Length field is two octets.</t>
            <t>The meaning of the Length field is unchanged from 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>A client which sends packets uses the Token field to increase the number of RADIUS packets which can be sent over one connection.</t>
          <t>The Token field MUST change for every new unique packet which is sent 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 which is sent.</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, at the cost of maintaining 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 which is unique to that subsystem.  There is no requirement that all packets go over one particular connection.  That is, despite the use of a 32-bit Token field, 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 packets (and thus passwords) are protected by TLS.  For the unsure reader this protocol is the same TLS which protects passwords used for web logins, e-mail reception and sending, etc.  As a result, any claims that passwords are sent "in the clear" are false.</t>
        <t>There are risks from sending passwords over the network, even when they are protected by TLS.  One such risk somes from the common practice of multi-hop RADIUS routing.  As all security in RADIUS is on a hop-by-hop basis, every proxy which receives a RADIUS packet can see (and modify) all of the information in the packet.  Sites wishing to avoid proxies SHOULD use dynamic peer discovery <xref target="RFC7585"/>, which permits clients to make connections directly to authoritative servers for a realm.</t>
        <t>These others ways to mitigate these risks.  One is by ensuring that the RADIUS 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>
        <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 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.2 allows for the CHAP challenge to be taken from either the CHAP-Challenge attribute (<xref target="RFC2865"/> Section 5.40), or the Request Authenticator field.  Since RADIUS/1.1 connections no longer use a Request Authenticator field, proxies may receive an Access-Request containing a CHAP-Password attribute (<xref target="RFC2865"/> Section 5.2) but without a CHAP-Challenge attribute (<xref target="RFC2865"/> Section 5.40).  In this case, proxies which forward that CHAP-Password attribute over a RADIUS/1.1 connection MUST create a CHAP-Challenge attribute in the proxied packet using the contents from the Request Authenticator.</t>
        </section>
        <section anchor="tunnel-password">
          <name>Tunnel-Password</name>
          <t>The Tunnel-Password attribute (<xref target="RFC2868"/> Section 3.5) MUST be encoded the same as any other attribute of data type 'text' which contains a tag, such as Tunnel-Client-Endpoint (<xref target="RFC2868"/> Section 3.3).  Since the attribute is no longer obfuscated, there is no need for a Salt field or Data-Length fields as described in <xref target="RFC2868"/> Section 3.5, and the textual value of the password can simply be encoded as-is.</t>
          <t>Note that the Tunnel-Password attribute is not of data type 'text'.  The original reason in <xref target="RFC2868"/> was because the attribute was encoded as an opaque and obfuscated binary blob.  We maintain that data type here, even though the attribute is no longer obfuscated.  The contents of the Tunnel-Password attribute do not have to printable text, or UTF-8 data as per the definition of the 'text' data type in <xref target="RFC8044"/> Section 3.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 'text' (<xref target="RFC8044"/> Section 3.4).</t>
          <t>We note that as the RADIUS shared secret is no longer used, it is no longer possible or necessary for any attribute to be obfuscated on a hop-by-hop basis using the previous methods defined for RADIUS.</t>
        </section>
      </section>
      <section anchor="message-authenticator">
        <name>Message-Authenticator</name>
        <t>The Message-Authenticator attribute (<xref target="RFC3579"/> Section 3.2) MUST NOT be sent over a 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>
      </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 was as Message-Authenticator, above.</t>
      </section>
      <section anchor="chap-ms-chap-etc">
        <name>CHAP, MS-CHAP, etc.</name>
        <t>While some attributes such as CHAP-Password, etc. depend on insecure cryptographic primitives such as MD5, these attributes are treated as opaque blobs when sent between a RADIUS client and server.  The contents of the attributes are not obfuscated, and they do not depend on the RADIUS shared secret.  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>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.  As such, the Original-Packet-Code attribute is not used in RADIUS/1.1.</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 packers.  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 oustanding.  The safest way forward is likely to just close the connection.</t>
      </section>
      <section anchor="proxies">
        <name>Proxies</name>
        <t>A RADIUS proxy normally decodes and then re-encodes all attributes, included obfuscated ones.  A RADIUS proxy will not generally rewrite the content of the attributes it proxies (unless site-local policy requires such a rewrite).  While some attributes may be modified due to administrative or policy rules on the proxy, the proxy will generally not rewrite the contents of attributes such as User-Password, Tunnel-Password, CHAP-Password, MS-CHAP-Password, MS-MPPE keys, etc.  All attributes are therefore transported through a 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 and in OpenRoaming.  RADIUS/DTLS has seen less adoption, but it is known to be supported in many RADIUS clients and servers.</t>
        <t>It is RECOMMENDED that all implementations of RADIUS over TLS be updated to support this specification.  The effort to implement this specification is minimal.  Once implementations support this specification, administrators can gain the benefit of it with little or no configuration changes.  This specification is backwards compatible with <xref target="RFC6614"/> and <xref target="RFC7360"/>.  It is only potentially subject to downbidding attacks if implementations do not enforce ALPN negotiation correctly on session resumption.</t>
        <t>All crypto-agility needed or 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 next section below, this specification also bans the development of all new cryptographic or crypto-agility methods in the RADIUS protocol.</t>
      </section>
      <section anchor="future-standards">
        <name>Future Standards</name>
        <t>This specification defines a new transport profile for RADIUS.  It does not define a completely new protocol.  As such, any future attribute definitions MUST first be defined for RADIUS/UDP, after which those definitions can be applied to this transport profile.</t>
        <t>New specifications MAY define new attributes which use the obfuscation methods for User-Password as defined in <xref target="RFC2865"/> Section 5.2, or for Tunnel-Password as defined in <xref target="RFC2868"/> Section 3.5.  There is no need for those specifications to describe how those new attributes are transported in 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).
a
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>New 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>To close the final loophole, this document updates <xref target="RFC2865"/> at al. to state that any new RADIUS specification MUST NOT introduce new "ad hoc" cryptographic primitives as was done with User-Password and Tunnel-Password.  That is, RADIUS-specific cryptographic methods existing as of the publication of this document can continue to be used for historical compatibility.  However, all new cryptographic work in RADIUS is forbidden.  There is insufficient expertise in the RADIUS community to securely design new cryptography.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>(This section to be removed by the RFC editor.)</t>
      <t>This specification is being implemented (client and server) in the FreeRADIUS project which is hosted on GitHub at https://github.com/FreeRADIUS/freeradius-server/tree/v3.2.x  The code implementation "diff" is approximately 1,000 lines, including build system changes and changes to configuration parsers.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>This specification requires secure transport for RADIUS, and this has all of the privacy benefits of RADIUS/TLS <xref target="RFC6614"/> and RADIUS/DTLS <xref target="RFC7360"/>.  All of the insecure uses of RADIUS have been removed.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The primary focus of this document is addressing security considerations for RADIUS.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is 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 Richardons, Hannes Tschofenig, and Matthew Netwon 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>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="BCP14" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC2865" target="https://www.rfc-editor.org/info/rfc2865">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS)</title>
            <author fullname="C. Rigney" initials="C." surname="Rigney">
              <organization/>
            </author>
            <author fullname="S. Willens" initials="S." surname="Willens">
              <organization/>
            </author>
            <author fullname="A. Rubens" initials="A." surname="Rubens">
              <organization/>
            </author>
            <author fullname="W. Simpson" initials="W." surname="Simpson">
              <organization/>
            </author>
            <date month="June" year="2000"/>
            <abstract>
              <t>This document describes a protocol for carrying authentication, authorization, and configuration information between a Network Access Server which desires to authenticate its links and a shared Authentication Server.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2865"/>
          <seriesInfo name="DOI" value="10.17487/RFC2865"/>
        </reference>
        <reference anchor="RFC6421" target="https://www.rfc-editor.org/info/rfc6421">
          <front>
            <title>Crypto-Agility Requirements for Remote Authentication Dial-In User Service (RADIUS)</title>
            <author fullname="D. Nelson" initials="D." role="editor" surname="Nelson">
              <organization/>
            </author>
            <date month="November" year="2011"/>
            <abstract>
              <t>This memo describes the requirements for a crypto-agility solution for Remote Authentication Dial-In User Service (RADIUS).  This  document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6421"/>
          <seriesInfo name="DOI" value="10.17487/RFC6421"/>
        </reference>
        <reference anchor="RFC6929" target="https://www.rfc-editor.org/info/rfc6929">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS) Protocol Extensions</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok">
              <organization/>
            </author>
            <author fullname="A. Lior" initials="A." surname="Lior">
              <organization/>
            </author>
            <date month="April" year="2013"/>
            <abstract>
              <t>The Remote Authentication Dial-In User Service (RADIUS) protocol is nearing exhaustion of its current 8-bit Attribute Type space.  In addition, experience shows a growing need for complex grouping, along with attributes that can carry more than 253 octets of data.  This document defines changes to RADIUS that address all of the above problems.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6929"/>
          <seriesInfo name="DOI" value="10.17487/RFC6929"/>
        </reference>
        <reference anchor="RFC7301" target="https://www.rfc-editor.org/info/rfc7301">
          <front>
            <title>Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension</title>
            <author fullname="S. Friedl" initials="S." surname="Friedl">
              <organization/>
            </author>
            <author fullname="A. Popov" initials="A." surname="Popov">
              <organization/>
            </author>
            <author fullname="A. Langley" initials="A." surname="Langley">
              <organization/>
            </author>
            <author fullname="E. Stephan" initials="E." surname="Stephan">
              <organization/>
            </author>
            <date month="July" year="2014"/>
            <abstract>
              <t>This document describes a Transport Layer Security (TLS) extension for application-layer protocol negotiation within the TLS handshake. For instances in which multiple application protocols are supported on the same TCP or UDP port, this extension allows the application layer to negotiate which protocol will be used within the TLS connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7301"/>
          <seriesInfo name="DOI" value="10.17487/RFC7301"/>
        </reference>
        <reference anchor="RFC8044" target="https://www.rfc-editor.org/info/rfc8044">
          <front>
            <title>Data Types in RADIUS</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok">
              <organization/>
            </author>
            <date month="January" year="2017"/>
            <abstract>
              <t>RADIUS specifications have used data types for two decades without defining them as managed entities.  During this time, RADIUS implementations have named the data types and have used them in attribute definitions.  This document updates the specifications to better follow established practice.  We do this by naming the data types defined in RFC 6158, which have been used since at least the publication of RFC 2865.  We provide an IANA registry for the data types and update the "RADIUS Attribute Types" registry to include a Data Type field for each attribute.  Finally, we recommend that authors of RADIUS specifications use these types in preference to existing practice.  This document updates RFCs 2865, 3162, 4072, 6158, 6572, and 7268.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8044"/>
          <seriesInfo name="DOI" value="10.17487/RFC8044"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC1321" target="https://www.rfc-editor.org/info/rfc1321">
          <front>
            <title>The MD5 Message-Digest Algorithm</title>
            <author fullname="R. Rivest" initials="R." surname="Rivest">
              <organization/>
            </author>
            <date month="April" year="1992"/>
            <abstract>
              <t>This document describes the MD5 message-digest algorithm. The algorithm takes as input a message of arbitrary length and produces as output a 128-bit "fingerprint" or "message digest" of the input.  This memo provides information for the Internet community.  It does not specify an Internet standard.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1321"/>
          <seriesInfo name="DOI" value="10.17487/RFC1321"/>
        </reference>
        <reference anchor="RFC2548" target="https://www.rfc-editor.org/info/rfc2548">
          <front>
            <title>Microsoft Vendor-specific RADIUS Attributes</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn">
              <organization/>
            </author>
            <date month="March" year="1999"/>
            <abstract>
              <t>This document describes the set of Microsoft vendor-specific RADIUS attributes.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2548"/>
          <seriesInfo name="DOI" value="10.17487/RFC2548"/>
        </reference>
        <reference anchor="RFC2866" target="https://www.rfc-editor.org/info/rfc2866">
          <front>
            <title>RADIUS Accounting</title>
            <author fullname="C. Rigney" initials="C." surname="Rigney">
              <organization/>
            </author>
            <date month="June" year="2000"/>
            <abstract>
              <t>This document describes a protocol for carrying accounting information between a Network Access Server and a shared Accounting Server.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2866"/>
          <seriesInfo name="DOI" value="10.17487/RFC2866"/>
        </reference>
        <reference anchor="RFC2868" target="https://www.rfc-editor.org/info/rfc2868">
          <front>
            <title>RADIUS Attributes for Tunnel Protocol Support</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn">
              <organization/>
            </author>
            <author fullname="D. Leifer" initials="D." surname="Leifer">
              <organization/>
            </author>
            <author fullname="A. Rubens" initials="A." surname="Rubens">
              <organization/>
            </author>
            <author fullname="J. Shriver" initials="J." surname="Shriver">
              <organization/>
            </author>
            <author fullname="M. Holdrege" initials="M." surname="Holdrege">
              <organization/>
            </author>
            <author fullname="I. Goyret" initials="I." surname="Goyret">
              <organization/>
            </author>
            <date month="June" year="2000"/>
            <abstract>
              <t>This document defines a set of RADIUS (Remote Authentication Dial In User Service) attributes designed to support the provision of compulsory tunneling in dial-up networks.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2868"/>
          <seriesInfo name="DOI" value="10.17487/RFC2868"/>
        </reference>
        <reference anchor="RFC3579" target="https://www.rfc-editor.org/info/rfc3579">
          <front>
            <title>RADIUS (Remote Authentication Dial In User Service) Support For Extensible Authentication Protocol (EAP)</title>
            <author fullname="B. Aboba" initials="B." surname="Aboba">
              <organization/>
            </author>
            <author fullname="P. Calhoun" initials="P." surname="Calhoun">
              <organization/>
            </author>
            <date month="September" year="2003"/>
            <abstract>
              <t>This document defines Remote Authentication Dial In User Service (RADIUS) support for the Extensible Authentication Protocol (EAP), an authentication framework which supports multiple authentication mechanisms.  In the proposed scheme, the Network Access Server (NAS) forwards EAP packets to and from the RADIUS server, encapsulated within EAP-Message attributes.  This has the advantage of allowing the NAS to support any EAP authentication method, without the need for method- specific code, which resides on the RADIUS server.  While EAP was originally developed for use with PPP, it is now also in use with IEEE 802.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3579"/>
          <seriesInfo name="DOI" value="10.17487/RFC3579"/>
        </reference>
        <reference anchor="RFC5176" target="https://www.rfc-editor.org/info/rfc5176">
          <front>
            <title>Dynamic Authorization Extensions to Remote Authentication Dial In User Service (RADIUS)</title>
            <author fullname="M. Chiba" initials="M." surname="Chiba">
              <organization/>
            </author>
            <author fullname="G. Dommety" initials="G." surname="Dommety">
              <organization/>
            </author>
            <author fullname="M. Eklund" initials="M." surname="Eklund">
              <organization/>
            </author>
            <author fullname="D. Mitton" initials="D." surname="Mitton">
              <organization/>
            </author>
            <author fullname="B. Aboba" initials="B." surname="Aboba">
              <organization/>
            </author>
            <date month="January" year="2008"/>
            <abstract>
              <t>This document describes a currently deployed extension to the Remote Authentication Dial In User Service (RADIUS) protocol, allowing dynamic changes to a user session, as implemented by network access server products.  This includes support for disconnecting users and changing authorizations applicable to a user session. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5176"/>
          <seriesInfo name="DOI" value="10.17487/RFC5176"/>
        </reference>
        <reference anchor="RFC6151" target="https://www.rfc-editor.org/info/rfc6151">
          <front>
            <title>Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms</title>
            <author fullname="S. Turner" initials="S." surname="Turner">
              <organization/>
            </author>
            <author fullname="L. Chen" initials="L." surname="Chen">
              <organization/>
            </author>
            <date month="March" year="2011"/>
            <abstract>
              <t>This document updates the security considerations for the MD5 message digest algorithm.  It also updates the security considerations for HMAC-MD5.  This document is not an Internet Standards Track  specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6151"/>
          <seriesInfo name="DOI" value="10.17487/RFC6151"/>
        </reference>
        <reference anchor="RFC6218" target="https://www.rfc-editor.org/info/rfc6218">
          <front>
            <title>Cisco Vendor-Specific RADIUS Attributes for the Delivery of Keying Material</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn">
              <organization/>
            </author>
            <author fullname="T. Zhang" initials="T." surname="Zhang">
              <organization/>
            </author>
            <author fullname="J. Walker" initials="J." surname="Walker">
              <organization/>
            </author>
            <author fullname="J. Salowey" initials="J." surname="Salowey">
              <organization/>
            </author>
            <date month="April" year="2011"/>
            <abstract>
              <t>This document defines a set of vendor-specific RADIUS Attributes designed to allow both the secure transmission of cryptographic keying material and strong authentication of any RADIUS message. These attributes have been allocated from the Cisco vendor-specific space and have been implemented by multiple vendors.  This document  is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6218"/>
          <seriesInfo name="DOI" value="10.17487/RFC6218"/>
        </reference>
        <reference anchor="RFC6613" target="https://www.rfc-editor.org/info/rfc6613">
          <front>
            <title>RADIUS over TCP</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok">
              <organization/>
            </author>
            <date month="May" year="2012"/>
            <abstract>
              <t>The Remote Authentication Dial-In User Server (RADIUS) protocol has, until now, required the User Datagram Protocol (UDP) as the underlying transport layer.  This document defines RADIUS over the Transmission Control Protocol (RADIUS/TCP), in order to address handling issues related to RADIUS over Transport Layer Security (RADIUS/TLS).  It permits TCP to be used as a transport protocol for RADIUS only when a transport layer such as TLS or IPsec provides confidentiality and security.  This document defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6613"/>
          <seriesInfo name="DOI" value="10.17487/RFC6613"/>
        </reference>
        <reference anchor="RFC6614" target="https://www.rfc-editor.org/info/rfc6614">
          <front>
            <title>Transport Layer Security (TLS) Encryption for RADIUS</title>
            <author fullname="S. Winter" initials="S." surname="Winter">
              <organization/>
            </author>
            <author fullname="M. McCauley" initials="M." surname="McCauley">
              <organization/>
            </author>
            <author fullname="S. Venaas" initials="S." surname="Venaas">
              <organization/>
            </author>
            <author fullname="K. Wierenga" initials="K." surname="Wierenga">
              <organization/>
            </author>
            <date month="May" year="2012"/>
            <abstract>
              <t>This document specifies a transport profile for RADIUS using Transport Layer Security (TLS) over TCP as the transport protocol. This enables dynamic trust relationships between RADIUS servers.   [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6614"/>
          <seriesInfo name="DOI" value="10.17487/RFC6614"/>
        </reference>
        <reference anchor="RFC7360" target="https://www.rfc-editor.org/info/rfc7360">
          <front>
            <title>Datagram Transport Layer Security (DTLS) as a Transport Layer for RADIUS</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok">
              <organization/>
            </author>
            <date month="September" year="2014"/>
            <abstract>
              <t>The RADIUS protocol defined in RFC 2865 has limited support for authentication and encryption of RADIUS packets.  The protocol transports data in the clear, although some parts of the packets can have obfuscated content.  Packets may be replayed verbatim by an attacker, and client-server authentication is based on fixed shared secrets.  This document specifies how the Datagram Transport Layer Security (DTLS) protocol may be used as a fix for these problems.  It also describes how implementations of this proposal can coexist with current RADIUS systems.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7360"/>
          <seriesInfo name="DOI" value="10.17487/RFC7360"/>
        </reference>
        <reference anchor="RFC7585" target="https://www.rfc-editor.org/info/rfc7585">
          <front>
            <title>Dynamic Peer Discovery for RADIUS/TLS and RADIUS/DTLS Based on the Network Access Identifier (NAI)</title>
            <author fullname="S. Winter" initials="S." surname="Winter">
              <organization/>
            </author>
            <author fullname="M. McCauley" initials="M." surname="McCauley">
              <organization/>
            </author>
            <date month="October" year="2015"/>
            <abstract>
              <t>This document specifies a means to find authoritative RADIUS servers for a given realm.  It is used in conjunction with either RADIUS over Transport Layer Security (RADIUS/TLS) or RADIUS over Datagram Transport Layer Security (RADIUS/DTLS).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7585"/>
          <seriesInfo name="DOI" value="10.17487/RFC7585"/>
        </reference>
        <reference anchor="RFC7930" target="https://www.rfc-editor.org/info/rfc7930">
          <front>
            <title>Larger Packets for RADIUS over TCP</title>
            <author fullname="S. Hartman" initials="S." surname="Hartman">
              <organization/>
            </author>
            <date month="August" year="2016"/>
            <abstract>
              <t>The RADIUS-over-TLS experiment described in RFC 6614 has opened RADIUS to new use cases where the 4096-octet maximum size limit of a RADIUS packet proves problematic.  This specification extends the RADIUS-over-TCP experiment (RFC 6613) to permit larger RADIUS packets.  This specification compliments other ongoing work to permit fragmentation of RADIUS authorization information.  This document registers a new RADIUS code, an action that required IESG approval.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7930"/>
          <seriesInfo name="DOI" value="10.17487/RFC7930"/>
        </reference>
        <reference anchor="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>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAOIdSWQAA+19a3PjSHLgd/4KHPvDSj5SrVc/I27O2lb3tmL6IbfUO964
8G2ARJHECgRoFCA1d2b8W+63+Jc5n/UAQEntWTvCjuuNmKVIoCorKyvfmTWd
TkdN3hTmdfLl7Pzi61XyR1PbvCqTo4OjUTqb1eZWf7o9Ohpl1bxM1/B0VqeL
ZpqbZjGt08x8a/D/8tbCQ9PDw1G7ydLG2NfJ8+dHJ8mLk+eHo5Ft0jL7c1pU
Jbzf1K0Z5ZuaPtnm+PDw1eHxKK1N+jq5KBtTl6YZ3S1p7rf/eJ38VNU3eblM
/lBX7WZ0c+efmp4jKKN52rxObJONbDtb5xbXcL3dwEwXb6/fjUab/PUoSZpq
/jrZGgsfbVU3tVkAiEnyJMnMIm2LxsIT+vt2zT/jn6O0bVZV/Xo0miZ5CV+e
HSTn5sfqBh5kfJwVaem+qmoA/F1tDCMOvjHrNC9eJyk8lf39An5hbB3Ak6NR
WdXrtMlvDYL4+zeXR6ew7HdvXh69OIUv4NPxy+fPXvPH56fHR/rx1fEr+fji
5FC/fXl4egpw5uUiHBV+ODpxbx4/O3352g393H/Ub0+evdChnx290AeeHz1z
cx8f6bO4w/7jqYPo+aF+fPZSoX/x6gS+Hd2asiWwlribusfwN2OJCervkbgI
QfBc3qza2evEY+6pI7cD+BH2ZTpN0plt6nQOf12vcpsArbZrUza4uXlpbHK2
2RQ50AmQxvRDujV1cllXQBJVkXwyy6rJ6afk7bfGlEg/NgEcJq01yR3ML6fg
6fWHqwR2Uf88h78PkuR6ZeA541/dmHqdN0mzMkkZDF4t4OUkzbIc/0yLJPVA
JRsFB+eV81jdApx75/s8zacqma/ScgmrgbMC+MoMkqzA8vX8MnFvPr1+c8mA
hWClRVHdDUIFBzEt7QaOBcKxyAtY9srAJPiwAGNXMGuWWDOvTZMAjssqgfO8
NISmbEKIgSmSj+fPprMUvko26fwGnrX5ssTzSw80TZ3P2sYk1WzRWln82sAR
y3hdtVnDujMA/6eVKQECmMotAufl2RCyDXCovGphd+GIwm4jLgEHi9wUGT5Z
m01bbyoEBRA1r8omzUvcA/MNEQ9bVJt/bo1tkqfwCdZfwj7mGY4EY9STZA7r
gZfT5Lq6MaVglD7DSm3FGLXJuiJUwcDHz57LqomdzGCZbUPMDxGA2C4NAlKa
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
rwAA

-->

</rfc>
