<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.21 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-radext-reverse-coa-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.24.0 -->
  <front>
    <title abbrev="Reverse CoA">Reverse CoA in RADIUS</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-radext-reverse-coa-02"/>
    <author initials="A." surname="DeKok" fullname="Alan DeKok">
      <organization>FreeRADIUS</organization>
      <address>
        <email>aland@freeradius.org</email>
      </address>
    </author>
    <author initials="V." surname="Cargatser" fullname="Vadim Cargatser">
      <organization>Cisco</organization>
      <address>
        <email>vcargats@cisco.com</email>
      </address>
    </author>
    <date year="2025" month="January" day="28"/>
    <area>Internet</area>
    <workgroup>RADEXT Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 48?>

<t>This document defines a "reverse change of authorization (CoA)" path for RADIUS packets.  This specification allows a home server to send CoA packets in "reverse" down a RADIUS/TLS connection.  Without this capability, it is impossible for a home server to send CoA packets to a NAS which is behind a firewall or NAT gateway.  The reverse CoA functionality extends the available transport methods for CoA packets, but it does not change anything else about how CoA packets are handled.</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-reverse-coa/"/>.
      </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/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/radext/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/freeradius/reverse-coa.git"/>.</t>
    </note>
  </front>
  <middle>
    <?line 52?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="RFC5176"/> defines the ability to change a users authorization, or disconnect the user via what are generally called "Change of Authorization" or "CoA" packets.  This term refers to either of the RADIUS packet types CoA-Request or Disconnect-Request.  The initial transport protocol for all RADIUS was the User Datagram Protocol (UDP).</t>
      <t><xref target="RFC6614"/> updated previous specifications to allow packets to be sent over the Transport Layer Security (TLS) protocol.  Section 2.5 of that document explicitly allows all packets (including CoA) to be sent over a TLS connection:</t>
      <t><tt>
Due to the use of one single TCP port for all packet types, it is
required that a RADIUS/TLS server signal which types of packets are
supported on a server to a connecting peer.  See also Section 3.4 for
a discussion of signaling.
</tt></t>
      <t>These specifications assume that a RADIUS client can directly contact a RADIUS server, which is the normal "forward" path for packets between a client and server.  However, it is not always possible for the RADIUS server to send CoA packets to the RADIUS client. If a RADIUS server wishes to act as a CoA client, and send CoA packets to the NAS (CoA server), the "reverse" path can be blocked by a firewall, NAT gateway, etc.  That is, a RADIUS server has to be reachable by a NAS, but there is usually no requirement that the NAS is reachable from a public system.  To the contrary, there is usually a requirement that the NAS is not publicly accessible.</t>
      <t>This scenario is most evident in a roaming / federated environment such as Eduroam or OpenRoaming.  It is in general impossible for a home server to signal the NAS to disconnect a user.  There is no direct reverse path from the home server to the NAS, as the NAS is not publicly addressible.  Even if there was a public reverse path, it would generally be unknowable, as intermediate proxies can (and do) attribute rewriting to hide NAS identies.</t>
      <t>These limitations can result in business losses and security problems, such as the inability to disconnect an online user when their account has been terminated.</t>
      <t>As the reverse path is usally blocked, it means that it is in general possible only to send CoA packets to a NAS when the NAS and RADIUS server share the same private network (private IP space or IPSec).  Even though <xref target="RFC8559"/> defines CoA proxying, that specification does not address the issue of NAS reachability.</t>
      <t>This specification solves that problem.  The solution is to simply allow CoA packets to go in "reverse" down an existing RADIUS/TLS connection.  That is, when a NAS connects to a RADIUS server it normally sends request packets (Access-Request, etc.) and expects to receive response packets (Access-Accept, etc.).  This specification extends RADIUS/TLS by permitting a RADIUS server to re-use an existing TLS connection to send CoA packets to the NAS, and permitting the NAS to send CoA response packets to the RADIUS server over that same connection.</t>
      <t>We note that while this document specifically mentions RADIUS/TLS, it should be possible to use the same mechanisms on RADIUS/DTLS <xref target="RFC7360"/>.  However at the time of writing this specification, no implementations exist for "reverse CoA" over RADIUS/DTLS.  As such, when we refer to "TLS" here, or "RADIUS/TLS", we implicitly include RADIUS/DTLS in that description.</t>
      <t>We also note that while this same mechanism could theoretically be used for RADIUS/UDP and RADIUS/TCP, there is no value in defining "reverse CoA" for those transports.  Therefore for practial purposes, "reverse CoA" means RADIUS/TLS and RADIUS/DTLS.</t>
      <t>There are additional considerations for proxies.  While <xref target="RFC8559"/> describes CoA proxying, there are still issues which need to be addressed for the "reverse CoA" use-case.  This specification describes how those systems can implement "reverse CoA" proxying, including processing packets through both an intermediate proxy network, and at the visited network.</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.
<?line -6?>
      </t>
      <ul spacing="normal">
        <li>
          <t>CoA</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Change of Authorization packets.  For brevity, when this document refers to "CoA" packets, it means either or both of CoA-Request and Disconnect-Request packets.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>ACK</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Change of Authorization "positive acknowlegement" packets.  For brevity, when this document refers to "ACK" packets, it means either or both of CoA-ACK and Disconnect-ACK packets.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>NAK</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Change of Authorization "negative acknowlegement" packets.  For brevity, when this document refers to "NAK" packets, it means either or both of CoA-NAK and Disconnect-NAK packets.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>RADIUS/TLS</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>RADIUS over the Transport Layer Security protocol <xref target="RFC6614"/></t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>RADIUS/DTLS</t>
        </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>
          <t>TLS</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Either RADIUS/TLS or RADIUS/DTLS.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>reverse CoA</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>CoA, ACK, or NAK packets sent over a RADIUS/TLS or RADIUS/DTLS connection which was made from a RADIUS client to a RADIUS server.</t>
        </li>
      </ul>
    </section>
    <section anchor="concepts">
      <name>Concepts</name>
      <t>The reverse CoA functionality is based on two additions to RADIUS.  The first addition is a configuration and signalling, to indicate that a RADIUS client is capable of accepting reverse CoA packets.  The second addition is an extension to the "reverse" routing table for CoA packets which was first described in Section 2.1 of <xref target="RFC8559"/>.</t>
    </section>
    <section anchor="capability-configuration-and-signalling">
      <name>Capability Configuration and Signalling</name>
      <t>In order for a RADIUS server to send reverse CoA packets to a client, it must first know that the client is capable of accepting these packets.</t>
      <t>This functionality can be enabled in one of two ways.  The first is a simple static configuration between client and server, where both are configured to allow reverse CoA.  The second method is via per-connection signalling between client and server.</t>
      <t>The server manages this functionality with two boolean flags, one per-client, and one per-connection.  The per-client flag can be statically configured, and if not present MUST be treated as having a "false" value.  The per-connection flag MUST be initialized from the per-client flag, and then can be dynamically negotiated after that.</t>
      <section anchor="configuration-flag">
        <name>Configuration Flag</name>
        <t>Clients and servers implementing reverse CoA SHOULD have a configuration flag which indicates that the other party supports the reverse CoA functionality.  That is, the client has a per-server flag enabling (or not) reverse CoA functionality.  The server has a similar per-client flag.</t>
        <t>The flag can be used where the parties are known to each other.  The flag can also be used in conjunction with dynamic discovery (<xref target="RFC7585"/>), so long as the server associates the flag with the client identity and not with any particular IP address.  That is, the flag can be associated with any method of identifying a particular client such as TLS-PSK identity, information in a client certificate, etc.</t>
        <t>For the client, the flag controls whether or not it will accept reverse CoA packets from the server, and whether the client will do dynamic signalling of the reverse CoA functionality.</t>
        <t>Separately, each side also needs to have a per-connection flag, which indicates whether or not this connection supports reverse CoA.  The per-connection flag is initialized from the static flag, and is then dynamically updated after that.</t>
        <t>The configuration flags allow administators to statically enable this functionality, based on out-of-band discussions with other administators.  This process is best used in an environment where all RADIUS proxies are known (or required) to have a particular set of functionality, as with a roaming consortium.</t>
      </section>
      <section anchor="dynamic-signalling">
        <name>Dynamic Signalling</name>
        <t>The reverse CoA functionality can be signalled on a per-connection basis by the client sending a Status-Server packet when it first opens a connection to a server.  This packet contains a Capability attribute (see below), with value "Reverse-CoA".  The existence of this attribute in a Status-Server packet indicates that the client supports reverse CoA over this connection.  The Status-Server packet MUST be the first packet sent when the connection is opened, in order to perform per-connection signalling.  A server which does not implement reverse CoA simply ignores this attribute, as per <xref target="RFC2865"/> Section 5.</t>
        <t>A server implementing reverse CoA does not need to signal the NAS in any response, to indicate that it is supports reverse CoA.  If the server never sends reverse CoA packets, then such signalling is unnecessary.  If the server does send reverse CoA packets, then the packets themselves serve as sufficiant signalling.</t>
        <t>The NAS may send additional Status-Server packets down the same connection, as per <xref target="RFC3539"/>.  These packets do not need to contain the Capability attribute, so it can generally be omitted.  That is, there is no need to signal the addition or removal of reverse CoA functionality during the lifetime of one connection.  If a client decides that it no longer wants to support reverse CoA on a particular connection, it can simply tear down the connection, and open a new one which does not negotiate the reverse CoA functionality.</t>
        <t>Due to the limitations of RADIUS, any any dynamic signalling is necessarily hop-by-hop.  That is, there is no way to signal that there is a path through multiple proxies which supports this functionality.  Instead, each hop must independently signal that it supports reverse CoA for a particular connection.  The net outcome of multiple proxies signalling this funtionality will enable a full reverse path from home network to visited network.</t>
        <t>RADIUS client implementations which support reverse CoA MUST always signal that functionality in a Status-Server packet on any new connection.  There is little reason to save a few octets, and having explicit signalling can help with implementations, deployment, and debugging.  Having explicit signalling also means that it is more likly for there to be a complete path reverse path from all home networks to all visited networks.</t>
        <t>The combination of static configuration and dynamic configuration means that it is possible for client and server to both agree on whether or not a particular connection supports reverse CoA.</t>
      </section>
    </section>
    <section anchor="reverse-routing">
      <name>Reverse Routing</name>
      <t>The "reverse" routing table for CoA packets was first described in Section 2.1 of <xref target="RFC8559"/>.  We extend that table here.</t>
      <t>In our extension, the table does not map realms to home servers.  Instead, it maps keys to connections.  The keys will be defined in more detail below.  For now, we say that keys can be derived from a RADIUS client to server connection, and from the contents of a CoA packet which needs to be routed.</t>
      <t>When the server receives a TLS connection from a client, it derives a key for that connection, and associates the connection with that key.  A server MUST support associating one particular key value with multiple connections.  A server MUST support associating multiple keys for one connection.  That is, the "key to connection" mapping is N to M.  It is not one-to-one, or 1:N, or M:1, it is many-to-many.</t>
      <t>When the server receives a CoA packet, it derives a key from that packet, and determines if there is a connection or connections which maps to that key.  Where there is no available connection, the server MUST return a NAK packet that contains an Error-Cause Attribute having value 502 ("Request Not Routable").</t>
      <t>As with normal proxying, a particular packet can sometimes have the choice more than one connection which can be used to reach a destination.  In that case, issues of load-balancing, fail-over, etc. are implementation-defined, and are not discussed here.  The server simply chooses one connection, and sends the reverse CoA packet down that connection.</t>
      <t>The server then waits for a reply, doing retransmission if necessary.  For all issues other than the connection being used, reverse CoA packets are handled as defined in <xref target="RFC5176"/> and in <xref target="RFC8559"/>.</t>
      <t>That is, when the NAS and server are known to each other, <xref target="RFC5176"/> is followed when sending CoA packets to the NAS.  The difference is that instead of originating connections to the NAS, the server simply re-uses inbound TLS connections from the NAS.  The NAS is identified by attributes such as NAS-Identifier, NAS-IP-Address, and NAS-IPv6-Address.</t>
      <t>When a server is proxying to another server, <xref target="RFC8559"/> is following when proxying CoA packets.  The "next hop" is identified either by Operator-Name for proxy-to-proxy connections.  When the CoA packet reaches a visited network, that network identifies the NAS by examining the Operator-NAS-Identifier attribute.</t>
      <section anchor="retransmits">
        <name>Retransmits</name>
        <t>Retransmissions of reverse CoA packets are handled identically to normal CoA packets.  That is, the reverse CoA functionality extends the available transport methods for CoA packets, it does not change anything else about how CoA packets are handled.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>FreeRADIUS supports CoA proxying using Vendor-Specific attributes.</t>
      <t>Cisco supports reverse CoA as of Cisco IOS XE Bengaluru 17.6.1 via Vendor-Specific attributes.  https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst9300/software/release/17-6/configuration_guide/sec/b_176_sec_9300_cg/configuring_radsec.pdf</t>
      <t>Aruba documentation states that "Instant supports dynamic CoA (RFC 3576) over RadSec and the RADIUS server uses an existing TLS connection opened by the Instant AP to send the request." https://www.arubanetworks.com/techdocs/Instant_83_WebHelp/Content/Instant_UG/Authentication/ConfiguringRadSec.htm</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>This document does not change or add any privacy considerations over previous RADIUS specifications.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document increases network security by removing the requirement for non-standard "reverse" paths for CoA-Request and Disconnect-Request packets.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests no action from IANA.</t>
      <t>RFC Editor: This section may be removed before publication.</t>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to Heikki Vatiainen for testing a preliminary implementation in Radiator, and for verifying interoperability with NAS equipment.</t>
    </section>
    <section anchor="changelog">
      <name>Changelog</name>
      <ul spacing="normal">
        <li>
          <t>00 - taken from draft-dekok-radext-reverse-coa-01</t>
        </li>
        <li>
          <t>01 - Bumped to avoid expiry</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="BCP14">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <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">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS)</title>
            <author fullname="C. Rigney" initials="C." surname="Rigney"/>
            <author fullname="S. Willens" initials="S." surname="Willens"/>
            <author fullname="A. Rubens" initials="A." surname="Rubens"/>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <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="RFC3539">
          <front>
            <title>Authentication, Authorization and Accounting (AAA) Transport Profile</title>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Wood" initials="J." surname="Wood"/>
            <date month="June" year="2003"/>
            <abstract>
              <t>This document discusses transport issues that arise within protocols for Authentication, Authorization and Accounting (AAA). It also provides recommendations on the use of transport by AAA protocols. This includes usage of standards-track RFCs as well as experimental proposals. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3539"/>
          <seriesInfo name="DOI" value="10.17487/RFC3539"/>
        </reference>
        <reference anchor="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"/>
            <author fullname="M. McCauley" initials="M." surname="McCauley"/>
            <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="RFC8559">
          <front>
            <title>Dynamic Authorization Proxying in the Remote Authentication Dial-In User Service (RADIUS) Protocol</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <author fullname="J. Korhonen" initials="J." surname="Korhonen"/>
            <date month="April" year="2019"/>
            <abstract>
              <t>RFC 5176 defines Change-of-Authorization (CoA) and Disconnect Message (DM) behavior for RADIUS. RFC 5176 also suggests that proxying these messages is possible, but it does not provide guidance as to how that is done. This specification updates RFC 5176 to correct that omission for scenarios where networks use realm-based proxying as defined in RFC 7542. This specification also updates RFC 5580 to allow the Operator-Name attribute in CoA-Request and Disconnect-Request packets.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8559"/>
          <seriesInfo name="DOI" value="10.17487/RFC8559"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <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">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <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 anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC5176">
          <front>
            <title>Dynamic Authorization Extensions to Remote Authentication Dial In User Service (RADIUS)</title>
            <author fullname="M. Chiba" initials="M." surname="Chiba"/>
            <author fullname="G. Dommety" initials="G." surname="Dommety"/>
            <author fullname="M. Eklund" initials="M." surname="Eklund"/>
            <author fullname="D. Mitton" initials="D." surname="Mitton"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <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="RFC6614">
          <front>
            <title>Transport Layer Security (TLS) Encryption for RADIUS</title>
            <author fullname="S. Winter" initials="S." surname="Winter"/>
            <author fullname="M. McCauley" initials="M." surname="McCauley"/>
            <author fullname="S. Venaas" initials="S." surname="Venaas"/>
            <author fullname="K. Wierenga" initials="K." surname="Wierenga"/>
            <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">
          <front>
            <title>Datagram Transport Layer Security (DTLS) as a Transport Layer for RADIUS</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <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>
      </references>
    </references>
    <?line 213?>



  </back>
  <!-- ##markdown-source:
H4sIAB/hmGcAA7Vb63IbN5b+30+Bpf9IU6RoxbGdqLZmwkjyWBVb1lpyPFsp
lwN2gyRWzQa30S2GMzXvMs8yT7bnBjS6SdnZrdlUpUw10Qfn+p0LwMlkkjW2
Kc2Zem8eTO2NOnczZSv1fnZx9eE20/N5bR5632aFyyu9hleKWi+aiTXNYlLr
wvzWTGpeNsmdnjz9Jst8o6visy5dBcubujWZ3dT0yTffPH36PazRtdFn6qpq
TF2ZJtsuz3Dvy7/cqY+uvrfVUv25du0mu992qyYXuHOW6+ZM+abIfDtfW++t
q+52G9jp6vLuVZZt7JmC/56oXFeqBeZ1XeudOrILpctS7Yw/Vq5WK+1XamVq
kynVuPwMv4CP3tVNbRb+jEgUZqHbsvGwIny/W/PX+Gem22bl6rMsm4Dy4OHs
RF2Yn9w9LGRdzUpgIjxyNUj5qjZGtKyUWWtbngFfoK8fFvANKNS2/gRWRpo/
n6hzXS91400d6f4M69a950T83PrcdXQfcl7wQ47PT3K3zrLK1Wvd2AdzBut+
PL85/RY0/+r8u9OX38ID+PTNdy+en/HHZ8+ffS8fXz7/Ljz97vlzeJrZapGS
gi+en758IR9fvAC68uazF09h+YOpWlq4RLsGa8PfzCp70g/oVSQ9rLPNqp2f
qU4t08TPTuBrUNFkovTcN7XO4a+7lfUK3LRdm6pB29nKeKXVSN5T+UpXS6Mc
eAIZzv4V2HeVOgL/Ph6pjW5WCoSSKIC/83vT+BOliLLfmNwubM7vgC+5LVJf
ubVRYAPYAt3Em6qgaJK3MaoCAyPgbguvygbTuze3KndVZXIkCft8BJld26gG
98v1Rs9taZvdWNlGwRO73jjw93lpiM2v7w3PtLqe3artyuYrJDE3KwuLtFrY
2mwxIIDQ9exOgZ/A3zsS1qg6gYVFWxF/GllRYCXYBUjDKv0AttPIDlig8huI
HbU2IAJ8jwwmrIzVHOQCMQoHNqlcE4yhqx1IC/FuSozVOYq/ctueGAAWEK9V
UZrihI2+tgX8lWVPEBxqV7TEYZb9Im74KZqf+GQ1ojrCrogMte/7wRh1UWCo
kEnoVVymHqwGDeqGGFmaCvyxLHdgoBI4UqPz6FazlNwIyY1AjtHQkwDO1qDi
BXIAPBmwOuwC7+OOPedTDSCbR2VM3pv/bo1vkOhF5DE8FbPZyjZWl4k5NrUD
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
1Lk8AAA=

-->

</rfc>
