<?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.4 (Ruby 2.6.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-radext-deprecating-radius-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.13.0 -->
  <front>
    <title abbrev="Deprecating RADIUS">Deprecating Insecure Practices in RADIUS</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-radext-deprecating-radius-01"/>
    <author initials="A." surname="DeKok" fullname="Alan DeKok">
      <organization>FreeRADIUS</organization>
      <address>
        <email>aland@freeradius.org</email>
      </address>
    </author>
    <date year="2024" month="April" day="29"/>
    <area>Internet</area>
    <workgroup>RADEXT Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 104?>

<t>RADIUS crypto-agility was first mandated as future work by RFC 6421.  The outcome of that work was the publication of RADIUS over TLS (RFC 6614) and RADIUS over DTLS (RFC 7360) as experimental documents.  Those transport protocols have been in wide-spread use for many years in a wide range of networks.  They have proven their utility as replacements for the previous UDP (RFC 2865) and TCP (RFC 6613) transports.  With that knowledge, the continued use of insecure transports for RADIUS has serious and negative implications for privacy and security.</t>
      <t>It is no longer acceptable for RADIUS to rely on MD5 for security.  It is no longer acceptable to send device or location information in clear text across the wider Internet.  This document therefore deprecates insecure uses of RADIUS, and mandates the use of secure TLS-based transport layers.  We also discuss related security issues with RADIUS, and give many recommendations for practices which increase security and privacy.</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-deprecating-radius/"/>.
      </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/deprecating-radius.git"/>.</t>
    </note>
  </front>
  <middle>
    <?line 110?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The RADIUS protocol <xref target="RFC2865"/> was first standardized in 1997, though its roots go back much earlier to 1993.  The protocol uses MD5 <xref target="RFC1321"/> to sign some packets types, and to obfuscate certain attributes such as User-Password.  As originally designed, Access-Request packets were entirely unauthenticated, and could be trivially spoofed as discussed in <xref target="RFC3579"/> Section 4.3.2.  In order to prevent such spoofing, that specification defined the Message-Authenticator attribute (<xref target="RFC3579"/> Section 3.2) which allowed for packets to carry a signature based on HMAC-MD5.</t>
      <t>The state of MD5 security was discussed in <xref target="RFC6151"/>, which led to the state of RADIUS security being reviewed in <xref target="RFC6421"/> Section 3.  The outcome of that review was the remainder of <xref target="RFC6421"/>, which created crypto-agility requirements for RADIUS.  <xref target="RFC6151"/> Section 2 states:</t>
      <ul empty="true">
        <li>
          <t>MD5 is no longer acceptable where collision resistance is required such as digital signatures.</t>
        </li>
      </ul>
      <t>This text is directly applicable to RADIUS.  Despite <xref target="RFC6151"/> being over a decade old as of the time of this writing, there has been no progress towards addressing the use of MD5 in the RADIUS protocol.  This document addresses that problem.</t>
      <t>It is no longer acceptable for RADIUS to rely on MD5 for security.  It is no longer acceptable to send device or location information in clear text across the wider Internet.  This document therefore deprecates insecure uses of RADIUS, and mandates the use of secure TLS-based transport layers.  We also discuss related security issues with RADIUS, and give many recommendations for practices which increase security and privacy.</t>
      <t>RADIUS was historically secured with IPSec, as described in <xref target="RFC3579"/> Section 4.2:</t>
      <ul empty="true">
        <li>
          <t>To address the security vulnerabilities of RADIUS/EAP,
implementations of this specification SHOULD support IPsec
(RFC2401) along with IKE (RFC2409) for key management.  IPsec ESP
(RFC2406) with non-null transform SHOULD be supported, and IPsec
ESP with a non-null encryption transform and authentication
support SHOULD be used to provide per-packet confidentiality,
authentication, integrity and replay protection.  IKE SHOULD be
used for key management.</t>
        </li>
      </ul>
      <t>The use of IPSec allowed RADIUS to be sent privately, and securely, across the Internet.  However, experience showed that TLS was in many ways simpler for implementations and deployment than IPSec.  While IPSec required operating system support, TLS was an application-space library.  This difference, coupled with the wide-spread adoption of TLS for HTTPS ensures that it was often easier for applications to use TLS than IPSec.</t>
      <t>RADIUS/TLS <xref target="RFC6614"/> and RADIUS/DTLS <xref target="RFC7360"/> were then defined in order to meet the crypto-agility requirements of <xref target="RFC6421"/>.  RADIUS/TLS has been in wide-spread use for about a decade, including eduroam <xref target="EDUROAM"/>, and more recently OpenRoaming <xref target="OPENROAMING"/> and <xref target="I-D.tomas-openroaming"/>.  RADIUS/DTLS has seen less use across the public Internet, but it nonetheless has multiple implementations.</t>
      <t>As of the writing of this specification, RADIUS/UDP is still widely used, even though it depends on MD5 and "ad hoc" constructions for security.  While MD5 has been broken, it is a testament to the design of RADIUS that there have been (as yet) no attacks on RADIUS Authenticator signatures which are stronger than brute-force.</t>
      <t>However, the problems with MD5 means that if a someone can view RADIUS/UDP traffic, a hobbyist attacker can crack all possible RADIUS shared secrets of eight characters in not much more than an hour.  An more resourceful attacker (e.g. a nation-state) can crack much longer shared secrets with only modest expenditures.  See <xref target="cracking"/> below for a longer discussion of this topic.</t>
      <t>Cracking the shared secret will also result in compromise of all passwords carried in the User-Password attribute.  Even using CHAP-Password offers minimal protection, as the cost of cracking the underlying password is similar to the cost of cracking the shared secret.  MS-CHAP (<xref target="RFC2433"/> and MS-CHAPv2 <xref target="RFC2759"/>) are significantly worse in security than PAP, as they can be trivially cracked with minimal resources, (<xref target="ms-chap"/>).</t>
      <t>The use of Message-Authenticator does not help.  The Message-Authenticator attribute is a later addition to RADIUS, and does does not replace the original MD5-based packet signatures.  While it therefore offers a stronger protection, it does not change the cost of attacking the shared secret.  Moving to a stronger packet signatures (e.g. <xref target="RFC6218"/>) would still not fully address the issues with RADIUS, as the protocol still has privacy issues unrelated to the the security of packet signatures.</t>
      <t>Most information in RADIUS is sent in clear-text, and only a few attributes are hidden via obfuscation methods which rely on more "ad hoc" MD5 constructions.  The privacy implications of this openness are severe.</t>
      <t>Any observer of non-TLS RADIUS traffic is able to obtain a substantial amount of personal identifiable information (PII) about users.  The observer can tell who is logging in to the network, what devices they are using, where they are logging in from, and their approximate location (usually city).  With location-based attributes as defined in <xref target="RFC5580"/>, a users location may be determined to within 15 or so meters outdoors, and with "meter-level accuracy indoors" <xref target="WIFILOC"/>.  An observer can also use RADIUS accounting packets to determine how long a user is online, and to track a summary of their total traffic (upload and download totals).</t>
      <t>When RADIUS/UDP is used across the public Internet, a common Wi-Fi configuration allows the location of individuals can potentially be tracked in real-time (usually 10 minute intervals), to within 15 meters.  Their devices can be identified, and tracked.  Any passwords they send via the User-Password attribute can be compromised.  Even when the packets do not contain any <xref target="RFC5580"/> location information for the user, the packets usually contain the MAC address of the Wi-Fi access point.  There are multiple services selling databases which correlate Wi-Fi access point MAC addresses and physical location down to a similar 15 meter resolution.</t>
      <t>The implications for security and individual safety are large, and negative.</t>
      <t>These issues are only partly mitigated when the authentication methods carried within RADIUS define their own processes for increased security and privacy.  For example, some authentication methods such EAP-TLS, EAP-TTLS, etc. allow for User-Name privacy and for more secure transport of passwords via the use of TLS.  The use of MAC address randomization can limit device information identification to a particular manufacturer, instead of to a unique device.</t>
      <t>However, these authentication methods are not always used, or are not always available.  Even if these methods were used ubiquitously, they do not protect all of the information which is publicly available over RADIUS/UDP or RADIUS/TCP transports.  And even when TLS-based EAP methods are used, implementations have historically often skipped certificate validation, leading to password compromise (<xref target="SPOOFING"/>).  In many cases, users were not even aware that the server certificate was incorrect or spoofed, which meant that there was no way for the user to detect that anything was wrong.  Their passwords were simply handed to a spoofed server, with little possibility for the user to take any action to stop it.</t>
      <section anchor="simply-using-ipsec-or-tls-is-not-enough">
        <name>Simply using IPSec or TLS is not enough</name>
        <t>The use of a secure transport such as IPSec or TLS ensures complete privacy and security for all RADIUS traffic.  An observer is limited to knowing rough activity levels of a client or server.  That is, an observer can tell if there are a few users on a NAS, or many users on a NAS.  All other information is hidden from all observers.  However, it is not enough to say "use IPSec" and then move on to other issues.  There are many issues which can only be addressed via an informed approach.</t>
        <t>For example it is possible for an attacker to record the session traffic, and later crack the TLS session key or IPSec parameters.  This attack could comprise all traffic sent over that connection, including EAP session keys.  If the cryptographic methods provide forward secrecy (<xref target="RFC7525"/> Section 6.3), then breaking one session provides no information about other sessions.  As such, it is RECOMMENDED that all cryptographic methods used to secure RADIUS conversations provide forward secrecy.  While forward secrecy will not protect individual sessions from attack, it will prevent attack on one session from being leveraged to attack other, unrelated, sessions.</t>
        <t>AAA servers should minimize the impact of such attacks by using a total throughput (recommended) or time based limit before replacing the session keys.  The session keys can be replaced though a process of either rekeying the existing connection, or by opening a new connection and deprecating the use of the original connection.  Note that if the original connection if closed before a new connection is open, it can cause spurious errors in a proxy environment.</t>
        <t>The final attack possible in a AAA system is where one party in a AAA conversation is compromised or run by a malicious party.  This attack is made more likely by the extensive use of RADIUS proxy forwarding chains.  In that situation, every RADIUS proxy has full visibility into, and control over, the traffic it transports.  The solution here is to minimize the number of proxies involved, such as by using Dynamic Peer Discovery (<xref target="RFC7585"/>.</t>
        <t>There are many additional issues on top of simply adding a secure transport. The rest of this document addresses those issues in detail.</t>
      </section>
      <section anchor="overview">
        <name>Overview</name>
        <t>The rest of this document begins a summary of issues with RADIUS, and shows just how trivial it is to crack RADIUS/UDP security.  We then mandate the use of secure transport, and describe what that requirement means in practice.  We give recommendations on how current systems can be migrated to using TLS.  We give suggestions for increasing the security of existing RADIUS transports, including a discussion of the authentication protocols carried within RADIUS.  We conclude with privacy and security considerations.</t>
        <t>As IPSec has been discussed previously in the context of RADIUS, we do not discuss it in detail to it here, other than to say it is an acceptable solution for securing RADIUS traffic.  As the bulk of the current efforts are focused on TLS, this document likewise focuses on TLS.  However, all of the issues raised here about the RADIUS protocol also apply to IPSec transport.</t>
        <t>While this document tries to be comprehensive, it is necessarily imperfect.  There may be issues which should have been included, but which were missed due to oversight or accident.  Any reader should be aware that there are good practices which are perhaps not documented here, and bad behaviors which are likewise not forbidden.</t>
        <t>There is also a common tendency to suggest that a particular practice is "allowed" by a specification, simply because the specification does not forbid that practice.  This belief is wrong.  That is, a behavior which is not mentioned in the specification cannot honestly be said to be "permitted" or "allowed" by that specification.  Instead, the correct description for such behaviors is that they are not forbidden.  In many cases, documents such as <xref target="RFC5080"/> are written to both correct errors in earlier documents, and to address harmful behaviors have been seen in practice.</t>
        <t>By their very nature, documents include a small number of permitted, required, and/or forbidden behaviors.  There are a much larger set of behaviors which are undefined.  That is, behaviors which are neither permitted nor forbidden.  Those behaviors may be good or bad, independent of what the specification says.</t>
        <t>Outside of published specifications, there is also a large set of common practices and behaviors which have grown organically over time, but which have not been written into a specification.  These practices have been found to be valuable by implementers and administrators.  Deviations from these practices generally result in instabilities and incompatibilities between systems.  As a result, implementers should exercise caution when creating new behaviors which have not previously been seen in the industry.  Such behaviors are likely to be wrong.</t>
        <t>It is RECOMMENDED that implementations follow widely accepted practices which have been proven to work, even if those practices are not written down in a public specification.  Failure to follow common industry practices usually results in interoperability failures.</t>
      </section>
    </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>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>
        </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 Transport Control Protocol <xref target="RFC6613"/></t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS/TLS</li>
      </ul>
      <ul empty="true">
        <li>
          <t>RADIUS over the Transport Layer Security protocol <xref target="RFC6614"/></t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS/DTLS</li>
      </ul>
      <ul empty="true">
        <li>
          <t>RADIUS over the Datagram Transport Layer Security protocol  <xref target="RFC7360"/></t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>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 to RADIUS/TLS and/or RADIUS/DTLS.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>NAS</li>
      </ul>
      <ul empty="true">
        <li>
          <t>Network Access Server, which is a RADIUS client.</t>
        </li>
      </ul>
      <t>In order to continue the terminology of <xref target="RFC2865"/>, we describe the Request Authenticator, Response Authenticator, and Message-Authentor as "signing" the packets.  This terminology is not consistent with modern cryptographic terms, but using other terminology could be misleading.  The reader should be assured that no modern cryptographic processes are used with RADIUS/UDP.</t>
    </section>
    <section anchor="overview-of-issues-with-radius">
      <name>Overview of issues with RADIUS</name>
      <t>There are a large number of issues with RADIUS.   The most serious is that RADIUS sends most information "in the clear", with obvious privacy implications.</t>
      <t>Further, as summarized in <xref target="RFC6151"/> Section 2, it has been known for over a decada that it is inappropriate to use MD5 for digital signatures and cryptography.  For traffic sent across the Internet, no protocol should depend on MD5 for security.  Even if MD5 was not insecure, computers have gotten substantially faster in the past thirty years.  This speed increase makes it possible for the average hobbyist to perform brute-force attacks to crack even seemingly complex shared secrets.</t>
      <t>We address each of these issues in detail below.</t>
      <section anchor="information-is-sent-in-clear-text">
        <name>Information is sent in Clear Text</name>
        <t>Other than a few attributes such as User-Password, all RADIUS traffic is sent "in the clear" when using UDP or TCP transports.  Even when TLS is used, all RADIUS traffic (including User-Password) is visible to proxies.  The resulting data exposure has a large number of privacy issues.  We refer to <xref target="RFC6973"/>, and specifically to Section 5 of that document for detailed discussion, and to Section 6 of <xref target="RFC6973"/> for recommendations on threat mitigations.</t>
        <t>Further discussion of location privacy is given in <xref target="RFC6280"/>, which defines an "Architecture for Location and Location Privacy in Internet Applications".  However, that work was too late to have any practical impact on the design of the RADIUS protocol, as  <xref target="RFC5580"/> had already been published.</t>
        <t>The use of clear-text protocols across insecure networks is no longer acceptable.  Using clear-text protocols in network which are believed to be secure is not much better.  The solution is to use secure protocols, and to minimize the amount of private data which is being transported.</t>
      </section>
      <section anchor="md5-has-been-broken">
        <name>MD5 has been broken</name>
        <t>Attacks on MD5 are summarized in part in <xref target="RFC6151"/>. While there have not been many new attacks in the decade since that document was published, that does not mean that further attacks do not exist.  It is more likely that no one is looking for new attacks.</t>
      </section>
      <section anchor="cracking">
        <name>Cracking RADIUS shared secrets is not hard</name>
        <t>The cost of cracking a a shared secret can only go down over time as computation becomes cheaper.  The issue is made worse because of the way MD5 is used to sign RADIUS packets.  The attacker does not have to calculate the hash over the entire packet, as the hash prefix can be calculated once, and then cached.  The attacker can then begin the attack with that hash prefix, and brute-force only the shared secret portion.</t>
        <t>At the time of writing this document, an "off the shelf" commodity computer can calculate at least 100M MD5 hashes per second.  If we limit shared secrets to upper/lowercase letters, numbers, and a few "special" characters, we have 64 possible characters for shared secrets.  Which means that for 8-character secrets, there are 2^48 possible combinations.</t>
        <t>The result is that using consumer-grade machine, it takes approximately 32 days to brute-force the entire 8 octet / 64 character space for shared secrets.  The problem is even worse when graphical processing units (GPUs) are used. A high-end GPU is capable of performing more than 64 billion hashes per second.  At that rate, the entire 8 character space described above can be searched in approximately 90 minutes.</t>
        <t>This is an attack which is feasible today for a hobbyist. Increasing the size of the character set raises the cost of cracking, but not enough to be secure.  Increasing the character set to 93 characters means that the hobbyist using a GPU could search the entire 8 character space in about a day.</t>
        <t>Increasing the length of the shared secret has a larger impact on the cost of cracking.  For secrets ten characters long, one GPU can search a 64-character space in about six months, and a 93 character space would take approximately 24 years.</t>
        <t>This brute-force attack is also trivially parallelizable.  Nation-states have sufficient resources to deploy hundreds to thousands of systems dedicated to these attacks.  That realization means that a "time to crack" of 24 years is simply expensive, but does not take much "wall clock" time.  A thousand commodity CPUs are enough to reduce the crack time from 24 years to a little over a week.</t>
        <t>Whether the above numbers are precise, or only approximate is immaterial.  These attacks will only get better over time.  The cost to crack shared secrets will only go down over time.</t>
        <t>Even worse, administrators do not always derive shared secrets from secure sources of random numbers.  The "time to crack" numbers given above are the absolute best case, assuming administrators follow best practices for creating secure shared secrets.  For shared secrets created manually by a person, the search space is orders of magnitude smaller than the best case outlined above.  Rather than brute-forcing all possible shared secrets, an attacker can create a local dictionary which contains common or expected values for the shared secret.  Where the shared secret used by an administrator is in the dictionary, the cost of the attack can drop by multiple orders of magnitude.</t>
        <t>It should be assumed that a hobbyist attacker with modest resource can crack most shared secrets created by people in minutes, if not seconds.</t>
        <t>Despite the ease of attacking MD5, it is still a common practice for some "cloud" and other RADIUS providers to send RADIUS/UDP packets over the Internet "in the clear".  It is also common practice for administrators to use "short" shared secrets, and to use shared secrets created by a person, or derived from a limited character set.  Theses practice are easy to implement and follow, but they are highly insecure and SHOULD NOT be used.</t>
        <t>Further requirements in shared secrets are given below in <xref target="shared-secrets"/>.</t>
      </section>
      <section anchor="tunnel-coa">
        <name>Tunnel-Password and CoA-Request packets</name>
        <t>There are a number of security problems with the Tunnel-Password attribute, at least in CoA-Request and Disconnect-Request packets.  A full explanation requires a review of the relevant specifications.</t>
        <t><xref target="RFC5176"/> Section 2.3 describes how to calculate the Request Authenticator field for these packets:</t>
        <artwork><![CDATA[
Request Authenticator

   In Request packets, the Authenticator value is a 16-octet MD5
   [RFC1321] checksum, called the Request Authenticator.  The
   Request Authenticator is calculated the same way as for an
   Accounting-Request, specified in [RFC2866].
]]></artwork>
        <t>Where <xref target="RFC2866"/> Section 3 says:</t>
        <artwork><![CDATA[
   The NAS and RADIUS accounting server share a secret.  The Request
   Authenticator field in Accounting-Request packets contains a one-
   way MD5 hash calculated over a stream of octets consisting of the
   Code + Identifier + Length + 16 zero octets + request attributes +
   shared secret (where + indicates concatenation).  The 16 octet MD5
   hash value is stored in the Authenticator field of the
   Accounting-Request packet.
]]></artwork>
        <t>Taken together, these definitions mean that for CoA-Request packets, all attribute obfuscation is calculated with the Reply Authenticator being all zeroes.  In contrast for Access-Request packets, the Request Authenticator is mandated there to be 16 octets of random data.  This difference has negative impacts on security.</t>
        <t>For Tunnel-Password, <xref target="RFC5176"/> Section 3.6 allows it to appear in CoA-Request packets:</t>
        <artwork><![CDATA[
   ...
   Change-of-Authorization Messages
   
   Request   ACK      NAK   #   Attribute
   ...
   0+        0        0    69   Tunnel-Password (Note 5)
   ...
   (Note 5) When included within a CoA-Request, these attributes
   represent an authorization change request.  Where tunnel attributes
   are included within a successful CoA-Request, all existing tunnel
   attributes are removed and replaced by the new attribute(s).
]]></artwork>
        <t>However, <xref target="RFC2868"/> Section 3.5 says that Tunnel-Password is encrypted with the Request Authenticator:</t>
        <artwork><![CDATA[
   Call the shared secret S, the pseudo-random 128-bit Request
   Authenticator (from the corresponding Access-Request packet) R,
]]></artwork>
        <t>The assumption that the Request Authenticator is random data is true for Access-Request packets.  That assumption is not true for CoA-Request packets.</t>
        <t>That is, when the Tunnel-Password attribute is used in CoA-Request packets, the only source of randomness in the obfuscation is the salt, as defined in <xref target="RFC2868"/> Section 3.5;</t>
        <artwork><![CDATA[
 Salt
   The Salt field is two octets in length and is used to ensure the
   uniqueness of the encryption key used to encrypt each instance of
   the Tunnel-Password attribute occurring in a given Access-Accept
   packet.  The most significant bit (leftmost) of the Salt field
   MUST be set (1).  The contents of each Salt field in a given
   Access-Accept packet MUST be unique.
]]></artwork>
        <t>This chain of unfortunate definitions means that there is only 15 bits of entropy in the Tunnel-Password obfuscation (plus the secret).  It is not known if this limitation makes it sufficiently easy for an attacker to determine the contents of the Tunnel-Password.  However, such limited entropy cannot be a good thing, and it is one more reason to deprecate RADIUS/UDP.</t>
        <t>Due to the above issues, implementations and new specifications SHOULD NOT permit obfuscated attributes to be used in CoA-Request or Disconnect-Request packets.</t>
      </section>
      <section anchor="tls-based-eap-methods-radiustls-and-ipsec">
        <name>TLS-based EAP methods, RADIUS/TLS, and IPSec</name>
        <t>The above analysis as to security and privacy issues focusses on RADIUS/UDP and RADIUS/TCP.  These issues are partly mitigated through the use secure transports, but it is still possible for information to "leak".</t>
        <t>When TLS-based EAP methods such as TTLS or PEAP are used, they still transport passwords in an insecure form.  It is possible for an authentication server to terminal the TLS tunnel, and then proxy the inner data over RADIUS/UDP.  The design of both TTLS and PEAP make this process fairly trivial.  The inner data for TTLS is in Diameter AVP format, which can be trivially transformed to RADIUS attributes.  The inner data for PEAP is commonly EAP-MSCHAPv2, which can also be trivially transformed to a RADIUS EAP-Message attribute.</t>
        <t>Similar issues apply to RADIUS/TLS and IPSec.  A proxy could terminate the secure tunnel, and forward the RADIUS packets over an insecure transport protocol.  While this process could arguably be seen as a misconfiguration issue, it is never the less possible due to the design of the RADIUS protocol.</t>
        <t>The only solution to either issue would be to create a new protocol which is secure by design.  Unfortunately that path is not possible, and we are left with the recommendations contained in this document.</t>
      </section>
    </section>
    <section anchor="all-short-shared-secrets-have-been-compromised">
      <name>All short Shared Secrets have been compromised</name>
      <t>Unless RADIUS packets are sent over a secure network (IPsec, TLS, etc.), administrators SHOULD assume that any shared secret of 8 characters or less has been immediately compromised.  Administrators SHOULD assume that any shared secret of 10 characters or less has been compromised by an attacker with significant resources.  Administrators SHOULD also assume that any private information (such as User-Password) which depends on such shared secrets has also been compromised.</t>
      <t>In conclusion, if a User-Password, or CHAP-Password, or MS-CHAP password has been sent over the Internet via RADIUS/UDP or RADIUS/TCP in the last decade, you should assume that underlying password has been compromised.</t>
    </section>
    <section anchor="deprecating-insecure-transports">
      <name>Deprecating Insecure transports</name>
      <t>The solution to an insecure protocol which uses thirty year-old cryptography is to deprecate the use insecure cryptography, and to mandate modern cryptographic transport.</t>
      <section anchor="deprecating-udp-and-tcp-as-transports">
        <name>Deprecating UDP and TCP as transports</name>
        <t>RADIUS/UDP and RADIUS/TCP MUST NOT be used outside of secure networks.  A secure network is one which is believed to be safe from eavesdroppers, attackers, etc.  For example, if IPsec is used between two systems, then those systems may use RADIUS/UDP or RADIUS/TCP over the IPsec connection.</t>
        <t>However, administrators should not assume that such uses are always secure.  An attacker who breaks into a critical system could use that access to view RADIUS traffic, and thus be able to attack it.  Similarly, a network misconfiguration could result in the RADIUS traffic being sent over an insecure network.</t>
        <t>Neither the RADIUS client nor the RADIUS server would be aware of any network misconfiguration (e.g. such as could happen with IPSec).  Neither the RADIUS client nor the RADIUS server would be aware of any attacker snooping on RADIUS/UDP or RADIUS/TCP traffic.</t>
        <t>In contrast, when TLS is used, the RADIUS endpoints are aware of all security issues, and can enforce any necessary security policies.</t>
        <t>Any use of RADIUS/UDP and RADIUS/TCP is therefore NOT RECOMMENDED.</t>
      </section>
      <section anchor="mandating-secure-transports">
        <name>Mandating Secure transports</name>
        <t>All systems sending RADIUS packets outside of secure networks MUST use either IPSec, RADIUS/TLS, or RADIUS/DTLS. It is RECOMMENDED, for operational and security reasons that RADIUS/TLS or RADIUS/DTLS are preferred over IPSec.</t>
        <t>Unlike (D)TLS, use of IPSec means that applications are generally unaware of transport-layer security. Any problem with IPSec such as configuration issues, negotiation or re-keying problems are typically  presented to the RADIUS servers as 100% packet loss.  These issues may occur at any time, independent of any changes to a RADIUS application using that transport.  Further, network misconfigurations which remove all security are completely transparent to the RADIUS application: packets can be sent over an insecure link, and the RADIUS server is unaware of the failure of the security layer.</t>
        <t>In contrast, (D)TLS gives the RADIUS application completely knowledge and control over transport-layer security.  The failure cases around (D)TLS are therefore often clearer, easier to diagnose and faster to resolve than failures in IPSec.   For example, a failed TLS connection may return a "connection refused" error to the application, or any one of many TLS errors indicating which exact part of the TLS conversion failed during negotiation.</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"/>.  For clarity, we repeat the text of <xref target="RFC7360"/> here, with some minor modifications to update references, but not content.</t>
        <t>Section 4.2 of <xref target="RFC6421"/> makes a number of recommendations about security properties of new RADIUS proposals.  All of those recommendations are satisfied by using TLS or DTLS as the transport layer.</t>
        <t>Section 4.3 of <xref target="RFC6421"/> makes a number of recommendations about backwards compatibility with RADIUS.  <xref target="RFC7360"/> Section 3 addresses these concerns in detail.</t>
        <t>Section 4.4 of <xref target="RFC6421"/> recommends that change control be ceded to the IETF, and that interoperability is possible.  Both requirements are satisfied.</t>
        <t>Section 4.5 of <xref target="RFC6421"/> requires that the new security methods apply to all packet types.  This requirement is satisfied by allowing TLS and DTLS to be used for all RADIUS traffic.  In addition, <xref target="RFC7360"/> Section 3, addresses concerns about documenting the transition from legacy RADIUS to crypto-agile RADIUS.</t>
        <t>Section 4.6 of <xref target="RFC6421"/> requires automated key management.  This requirement is satisfied by using TLS or DTLS key management.</t>
        <t>We can now finalize the work began in <xref target="RFC6421"/>.  This document updates <xref target="RFC2865"/> et al. to state that any new RADIUS specification MUST NOT introduce new "ad hoc" cryptographic primitives to sign packets as was done with the Request / Response Authenticator, or to obfuscate attributes 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 the RADIUS protocol is forbidden.</t>
        <t>We recognize that RADIUS/UDP will still be in use for many years, and that new standards may require some modicum of privacy.  As a result, it is a difficult choice to forbid the use of these constructs.  If an attack is discovered which breaks RADIUS/UDP (e.g. by allowing attackers to forge Request Authenticators or Response Authenticators, or by allowing attackers to de-obfuscate User-Password), the solution would be to simply deprecate the use of RADIUS/UDP entirely.  It would not be acceptable to design new cryptographic primitives in an attempt to "secure" RADIUS/UDP.</t>
        <t>All new security and privacy requirements in RADIUS MUST be provided by a secure transport layer such as TLS or IPSec.  As noted above, simply using IPsec is not always enough, as the use (or not) of IPsec is unknown to the RADIUS application.</t>
        <t>The restriction forbidding new cryptographic work in RADIUS does not apply to the data being transported in RADIUS attributes.  For example, a new authentication protocol could use new cryptographic methods, and would be permitted to be transported in RADIUS.  This protocol could be a new EAP method, or it could use updates to TLS. In those cases, RADIUS serves as a transport layer for the authentication method.  The authentication data is treated as opaque data for the purposes of Access-Request, Access-Challenge, etc. packets.  There would be no need for RADIUS to define any new cryptographic methods in order to transport this data.</t>
        <t>Similarly, 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.  However, due to the issues noted above in <xref target="tunnel-coa"/>, the Tunnel-Password obfuscation method MUST NOT be used for packets other than Access-Request, Access-Challenge, and Access-Accept.  If the attribute needs to be send in another type of packet, then the protocol design is likely wrong, and needs to be revisited.  It is again a difficult choice to forbid certain uses of the Tunnel-Password obfuscation method, but we believe that doing so is preferable to allowing sensitive data to be obfuscated with less security than the original design intent.</t>
      </section>
    </section>
    <section anchor="migration-path-and-recommendations">
      <name>Migration Path and Recommendations</name>
      <t>We recognize that it is difficult to upgrade legacy devices with new cryptographic protocols and user interfaces.  The problem is made worse because the volume of RADIUS devices which are in use.  The exact number is unknown, and can only be approximated.  Our best guess is that at the time of this writing there are likely to be millions of RADIUS/UDP devices in daily use.  It takes significant time and effort to correct the deficiencies of all of these devices.</t>
      <t>We therefore need to define a migration path to using secure transports.  In the following sections, we give a number of migration steps which could be done independently.  We recommend increased entropy for shared secrets.  We also mandate the use of Message-Authenticator in all Access-Request packets for RADIUS/UDP and RADIUS/TCP.  Finally, where <xref target="RFC6614"/> Section 2.3 makes support for TLS-PSK optional, we suggest that RADIUS/TLS and RADIUS/DTLS implementations SHOULD support TLS-PSK.</t>
      <section anchor="shared-secrets">
        <name>Shared Secrets</name>
        <t><xref target="RFC2865"/> Section 3 says:</t>
        <ul empty="true">
          <li>
            <t>It is preferred that the secret be at least 16
octets.  This is to ensure a sufficiently large range for the
secret to provide protection against exhaustive search attacks.
The secret MUST NOT be empty (length 0) since this would allow
packets to be trivially forged.</t>
          </li>
        </ul>
        <t>This recommendation is no longer adequate, so we strengthen it here.</t>
        <t>RADIUS implementations MUST support shared secrets of at least 32 octets, and SHOULD support shared secrets of 64 octets.  Implementations MUST warn administrators that the shared secret is insecure if it is 10 octets or less in length.</t>
        <t>Administrators SHOULD use shared secrets of at least 24 octets, generated using a source of secure random numbers.   Any other practice is likely to lead to compromise of the shared secret, user information, and possibly of the entire network.</t>
        <t>Creating secure shared secrets is not difficult.  One solution is to use a simple script given below.  While the script is not portable to all possible systems, the intent here is to document a concise and simple method for creating secrets which are secure, and humanly manageable.</t>
        <ul empty="true">
          <li>
            <t>#!/usr/bin/env perl
use MIME::Base32;
use Crypt::URandom();
print join('-', unpack("(A4)*", lc encode_base32(Crypt::URandom::urandom(12)))), "\n";</t>
          </li>
        </ul>
        <t>This script reads 96 bits of random data from a secure source, encodes it in Base32, and then makes it easier for people to work with.  The generated secrets are of the form "2nw2-4cfi-nicw-3g2i-5vxq".  This form of secret will be accepted by all implementation which supports at least 24 octets for shared secrets.</t>
        <t>Given the simplicity of creating strong secrets, there is no excuse for using weak shared secrets with RADIUS.  The management overhead of dealing with complex secrets is less than the management overhead of dealing with compromised networks.</t>
        <t>Over all, the security analysis of shared secrets is similar to that for TLS-PSK.  It is therefore RECOMMENDED that implementors manage shared secrets with same the practices which are recommended for TLS-PSK, as defined in <xref target="RFC8446"/> Section E.7 and <xref target="RFC9257"/> Section 4.</t>
        <t>On a practical node, RADIUS implementers SHOULD provide tools for administrators which can create and manage secure shared secrets.  The cost to do so is minimal for implementors.  Providing such a tool can further enable and motivate administrators to use secure practices.</t>
      </section>
      <section anchor="message-authenticator">
        <name>Message-Authenticator</name>
        <t>The Message-Authenticator attribute was defined in <xref target="RFC3579"/> Section 3.2.  The "Note 1" paragraph at the bottom of <xref target="RFC3579"/> Section 3.2 required that Message-Authenticator be added to Access-Request packets when the EAP-Message as present, and suggested that it should be present in a few other situations.   Experience has shown that these recommendations are inadequate.</t>
        <t>Some RADIUS clients never use the Message-Authenticator attribute, even for the situations where the <xref target="RFC3579"/> text suggests that it should be used.  When the Message-Authenticator attribute is missing from Access-Request packets, it is often possible to trivially forge or replay those packets.</t>
        <t>For example, an Access-Request packet containing CHAP-Password but which is missing Message-Authenticator can be trivially forged.  If an attacker sees one packet such packet, it is possible to replace the CHAP-Password and CHAP-Challenge (or Request Authenticator) with values chosen by the attacker.  The attacker can then perform brute-force attacks on the RADIUS server in order to test passwords.</t>
        <t>This document therefore requires that RADIUS clients MUST include the Message-Authenticator in all Access-Request packets when UDP or TCP transport is used.</t>
        <t>In contrast, when TLS-based transports are used, the Message-Authenticator attribute serves no purpose, and can be omitted, even when the Access-Request packet contains an EAP-Message attribute.  Servers receiving Access-Request packets over TLS-based transports SHOULD NOT silently discard a packet if it is missing a Message-Authenticator attribute.  However, if the Message-Authenticator attribute is present, it still MUST be validated as discussed in <xref target="RFC7360"/> and <xref target="RFC3579"/>.</t>
        <section anchor="server-behavior">
          <name>Server Behavior</name>
          <t>In order to allow for migration from historic client behavior, servers SHOULD include a configuration flag which controls the above behavior.  The flag could be called "require Message-Authenticator", though other names are possible.</t>
          <t>If the flag is set to "false", then the server behavior is unchanged from previous specifications.  If the flag is set to "true", then Access-Request packets which are missing the Message-Authenticator attribute MUST NOT be accepted by the server.  Instead, the server MUST reply immediately with an Access-Reject which contains an Error-Cause attribute with value 510 (Missing Message-Authenticator).</t>
          <t>The purpose of this reply is two-fold.  First, the reply is a signal the client that the server is still alive.  If the packet was silently discarded, the client would have no idea why the server failed to respond.  The client could erroneously conclude that the server was down, and initiate fail-over procedures.  Such behavior leads to network instability, and should be avoided.</t>
          <t>The second purpose of the reply is to inform the administrator of the client system as to why the Access-Request was not accepted.  The Error-Cause attribute signals the administrator as to the reason for the rejection, and indicates the corrective course of action which needs to be taken.</t>
        </section>
      </section>
      <section anchor="recommending-tls-psk">
        <name>Recommending TLS-PSK</name>
        <t>Given the insecurity of RADIUS/UDP, the absolute minimum acceptable security is to use strong shared secrets.  However, administrator overhead for TLS-PSK is not substantially higher than for shared secrets, and TLS-PSK offers significantly increased security and privacy.</t>
        <t>It is therefore RECOMMENDED that implementations support TLS-PSK.  In some cases TLS-PSK is preferable to certificates.  It may be difficult for RADIUS clients to upgrade all of their interfaces to support the use of certificates, and TLS-PSK more closely mirrors the historical use of shared secrets, with similar operational considerations.</t>
        <t>Implementation and operational considerations for TLS-PSK are given in <xref target="I-D.ietf-radext-tls-psk"/>, and we do not repeat them here.</t>
      </section>
    </section>
    <section anchor="increasing-the-security-of-radius">
      <name>Increasing the Security of RADIUS</name>
      <t>While we still permit the use of UDP and TCP transports in secure environments, there are opportunities for increasing the security of RADIUS when those transport protocols are used.  The amount of personal identifiable information sent in packets should be minimized.  Information about the size, structure, and nature of the visited network should be omitted or anonymized.  The choice of authentication method also has security and privacy impacts.</t>
      <t>The recommendations here for increasing the security of RADIUS transports also applies when TLS is used.  TLS transports protect the RADIUS packets from observation by from third-parties.  However, TLS does not hide the content of RADIUS packets from intermediate proxies, such as ones uses in a roaming environment.  As such, the best approach to minimizing the information sent to proxies is to minimize the number of proxies which see the RADIUS traffic.</t>
      <t>Implementers and administrators need to be aware of all of these issues, and then make the best choice for their local network which balances their requirements on privacy, security, and cost.  Any security approach based on a simple "checklist" of "good / bad" practices is likely to result in decreased security, as compared to an end-to-end approach which is based on understanding the issues involved.</t>
      <section anchor="minimizing-personal-identifiable-information">
        <name>Minimizing Personal Identifiable Information</name>
        <t>One approach to increasing RADIUS privacy is to minimize the amount of PII which is sent in packets.  Implementers of RADIUS products and administrators of RADIUS systems SHOULD ensure that only the minimum necessary PII is sent in RADIUS.</t>
        <t>Where possible, identities should be anonymized (e.g. <xref target="RFC7542"/> Section 2.4).  The use of anonymized identities means that the the Chargeable-User-Identifier <xref target="RFC4372"/> should also be used.  Further discussion on this topic is below.</t>
        <t>Device information SHOULD be either omitted, or randomized.  e.g. MAC address randomization could be used on end-user devices.  The details behind this recommendation are the subject of ongoing research and development.  As such, we do not offer more specific recommendations here.</t>
        <t>Information about the visited network SHOULD be replaced or anonymized before packets are proxied outside of the local organization.  The attribute Operator-NAS-Identifier <xref target="RFC8559"/> can be used to anonymize information about NASes in the local network.</t>
        <t>Location information (<xref target="RFC5580"/> SHOULD either be omitted, or else it SHOULD be limited to the broadest possible information, such as country code. For example, <xref target="I-D.tomas-openroaming"/> says:</t>
        <ul empty="true">
          <li>
            <t>All OpenRoaming ANPs MUST support signalling of location information</t>
          </li>
        </ul>
        <t>This location information is required to include at the minimum the country code.  We suggest the country code SHOULD also be the maximum amount of location information which is sent over third-party networks.</t>
        <section anchor="chargeable-user-identity">
          <name>Chargeable-User-Identity</name>
          <t>Where the Chargeable-User-Identity (CUI) <xref target="RFC4372"/> is used, it SHOULD be unique per session.  This practice will help to maximize user privacy, as it will be more difficult to track users across multiple sessions.  Due to additional constraints which we will discuss below, we cannot require that the CUI change for every session.</t>
          <t>What we can do is to require that the home server MUST provide a unique CUI for each combination of user and visited network.  That is, if the same user visits multiple networks, the home server MUST provide different CUIs to each visited network for that user.  The CUI MAY be the same across multiple sessions for that user on one particular network.  The CUI MAY be the same for multiple devices used by that user on one particular network.</t>
          <t>We note that the MAC address is likely the same across multiple user sessions on one network.  Therefore changing the CUI offers little additional benefit, as the user can still be tracked by the unchanging MAC address.  Never the less, we believe that having a unique CUI per session can be useful, because there is ongoing work on increasing user privacy by allowing more MAC address randomization.  If we were to recommend that the CUI remain constant across multiple sessions, that would in turn negate much of the effort being put into MAC address randomization.</t>
          <t>One reason to have a constant CUI value for a user (or user devices) on one network is that network access providers may need to enforce limits on simultaneous logins.  Network providers may also need to correlate user behavior across multiple sessions in order to track and prevent abuse.  Both of these requirements are impossible if the CUI changes for every user session.</t>
          <t>The result is that there is a trade-off between user privacy and the needs of the local network.  While perfect user privacy is an admirable goal, perfect user privacy may also allow anonymous users to abuse the visited network.  The network would then likely simply refuse to provide network access.  Users may therefore have to accept some limitations on privacy, in order to obtain network access.</t>
          <t>We spend some time here in order to give recommendations for creating and managing of CUI.  We believe that these recommendations will help implementers satisfy the preceding requirements, while not imposing undue burden on the implementations.</t>
          <t>In general, the simplest way to track CUIs long term is to associate the CUI to user identity in some kind of cache or database.  This association could be created at the tail end of the authentication process, and before any accounting packets were received.  This association should generally be discarded after a period of time if no accounting packets are received.  If accounting packets are received, the CUI to user association should then be tracked along with the normal accounting data.</t>
          <t>The above method for tracking CUI works no matter how the CUI is generated.  If the CUI can be unique per session, or it could be tied to a particular user identity across a long period of time.  The same CUI could also be associated with multiple devices.</t>
          <t>Where the CUI is not unique for each session, the only minor issue is the cost of the above method is that the association is stored on a per-session basis when there is no need for that to be done.  Storing the CUI per session means that is it possible to arbitrarily change how the CUI is calculated, with no impact on anything else in the system.  Designs such as this which decouple unrelated architectural elements are generally worth the minor extra cost.</t>
          <t>For creating the CUI, that process should be done in a way which is scalable and efficient.  For a unique CUI per user, implementers SHOULD create a value which is unique both to the user, and to the visited network.  There is no reason to use the same CUI for multiple visited networks, as that would enable the tracking of a user across multiple networks.</t>
          <t>Before suggesting a method for creating the CUI, we note that <xref target="RFC4372"/> Section 2.1 defines the CUI as being of data type 'string' (<xref target="RFC8044"/> Section 3.5).  <xref target="RFC4372"/> Section 2.1 further suggests that the value of the CUI is interpreted as an opaque token, similar to the Class attribute (<xref target="RFC2865"/> Section 5.25).  Some organizations create CUI values which use the Network Access Identifier (NAI) format as defined in <xref target="RFC7542"/>.  This format can allow the home network to be identified to the visited network, where the User-Name does not contain a realm.  Such formats SHOULD NOT be used unless all parties involved have agreed to this behavior.</t>
          <t>The CUI SHOULD be created via a construct similar to what is given below, where "+" indicates concatenation:</t>
          <artwork><![CDATA[
CUI = HASH(visited network data + user identifier + key)
]]></artwork>
          <t>This construct has the following conceptual parameters.</t>
          <ul empty="true">
            <li>
              <t>HASH</t>
              <ul empty="true">
                <li>
                  <t>A cryptographic hash function.</t>
                </li>
              </ul>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>visited network data</t>
              <ul empty="true">
                <li>
                  <t>Data which identifies the visited network.</t>
                  <t>This data could be the Operator-Name attribute (<xref target="RFC5580"/> Section 4.1).</t>
                </li>
              </ul>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>user identifier</t>
              <ul empty="true">
                <li>
                  <t>The site-local user identifier.  For tunnelled EAP methods such as PEAP or TTLS, this could be the user identity which is sent inside of the TLS tunnel.</t>
                </li>
              </ul>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>key</t>
              <ul empty="true">
                <li>
                  <t>A secret known only to the local network.  The key is generally a large random string.  It is used to help prevent dictionary attacks on the CUI.</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>Where the CUI needs to be constant across multiple user sessions or devices, the key can be a static value.  It is generated once by the home network, and then stored for use in further CUI derivations.</t>
          <t>Where the CUI needs to be unique per session, the above derivation SHOULD still be used, except that the "key" value will instead be a random number which is different for each session.  Using such a design again decouples the CUI creation from any requirement that it is unique per session, or constant per user.  That decision can be changed at any time, and the only piece which needs to be updated is the derivation of the "key" field.  In contrast, if the CUI is generated completely randomly per session, then it may be difficult for a system to later change that behavior to allow the CUI to be constant for a particular user.</t>
          <t>If an NAI format is desired, the hash output can be converted to printable text, truncated if necessary to meet length limitations, and then an "@" character and a realm can be appended to it.  The resulting text string is then in NAI form.</t>
          <t>We note that the above recommendation is not invertible.  That is, given a particular CUI, it is not possible to determine which visited network or user identifier was used to create it.  If it is necessary to use the CUI to determine which user is associated with it, the local network still needs to store the full set of CUI values which are associated with each user.</t>
          <t>If this tracking is too complex for a local network, it is possible to create the CUI via an invertible encryption process as follows:</t>
          <artwork><![CDATA[
CUI = ENCRYPT(key, visited network data + user identifier)
]]></artwork>
          <t>This construct has the following conceptual parameters.</t>
          <ul empty="true">
            <li>
              <t>ENCRYPT</t>
              <ul empty="true">
                <li>
                  <t>A cryptographically secure encryption function</t>
                </li>
              </ul>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>key</t>
              <ul empty="true">
                <li>
                  <t>The encryption key.  Note that the same key must not be used for more both hashing and encryption.</t>
                </li>
              </ul>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>visited network data</t>
              <ul empty="true">
                <li>
                  <t>Data which identifies the visited network.</t>
                  <t>This data could be the Operator-Name attribute (<xref target="RFC5580"/> Section 4.1).</t>
                </li>
              </ul>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>user identifier</t>
              <ul empty="true">
                <li>
                  <t>The site-local user identifier.  For tunnelled EAP methods such as PEAP or TTLS, this could be the user identity which is sent inside of the TLS tunnel.</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>However, the use of a hash-based method is RECOMMENDED.</t>
          <t>In short, the intent is for CUI to leak as little information as possible, and ideally be different for every session.  However, business agreements, legal requirements, etc. may mandate different behavior.  The intention of this section is not to mandate complete CUI privacy, but instead to clarify the trade-offs between CUI privacy and business realities.</t>
        </section>
      </section>
      <section anchor="user-password-visibility">
        <name>User-Password Visibility</name>
        <t>The design of RADIUS means that when proxies receive Access-Request packets, the clear-text contents of the User-Password attribute are visible to the proxy.  Despite various claims to the contrary, the User-Password attribute is never sent "in the clear" over the network.  Instead, the password is protected by TLS (RADIUS/TLS) or via the obfuscation methods defined in <xref target="RFC2865"/> Section 5.2.  However, the nature of RADIUS means that each proxy must first undo the password obfuscation of <xref target="RFC2865"/>, and then re-do it when sending the outbound packet.  As such, the proxy has the clear-text password visible to it, and stored in its application memory.</t>
        <t>It is therefore possible for every intermediate proxy to snoop and record all user identities and passwords which they see.  This exposure is most problematic when the proxies are administered by an organization other than the one which operates the home server.  Even when all of the proxies are operated by the same organization, the existence of clear-text passwords on multiple machines is a security risk.</t>
        <t>It is therefore NOT RECOMMENDED for organizations to send User-Password attributes in packets which are sent outside of the local organization.  If RADIUS proxying is necessary, another authentication method SHOULD be used.</t>
        <t>Client and server implementations SHOULD use programming techniques to securely wipe passwords from memory when they are no longer needed.</t>
        <t>Organizations MAY still use User-Password attributes within their own systems, for reasons which we will explain in the next section.</t>
      </section>
      <section anchor="minimize-the-use-of-proxies">
        <name>Minimize the use of Proxies</name>
        <t>The design of RADIUS means that even when RADIUS/TLS is used, every intermediate proxy has access to all of the information in the packet.  The only way to secure the network from such observers is to minimize the use of proxies.</t>
        <t>Where it is still necessary to use intermediate proxies such as with eduroam <xref target="EDUROAM"/> and OpenRoaming <xref target="OPENROAMING"/>, it is RECOMMENDED to use EAP instead of PAP, CHAP, or MS-CHAP.  If passwords are used, they can be can be protected from being seen by proxies via TLS-based EAP methods such as EAP-TTLS or PEAP.  Passwords can also be omitted entirely from being sent over the network, as with EAP-TLS <xref target="RFC9190"/> or EAP-pwd <xref target="RFC5931"/>.</t>
      </section>
      <section anchor="password-visibility-and-storage">
        <name>Password Visibility and Storage</name>
        <t>An attacker may choose to ignore the wire protocol entirely, and therefore bypass all of the issues described earlier in this document.  An attacker could instead focus on a database which holds user credentials such as account names and passwords.  At the time of this writing, databases such as <xref target="PWNED"/> claim to have records of over twelve billion user accounts which have been compromised.  Such databases are therefore highly sought-after targets.</t>
        <t>The attack discussed in this section is dependent on vulnerabilities with the credential database, and does not assume an attacker can see or modify RADIUS traffic.  As a result, this attack applies equally well when TTLS, PEAP, or RADIUS/TLS are used.  The success of the attack depends only on how the credentials are stored in the database.  Since the choice of authentication method affects the way credentials are stored in the database, the security of that dependency needs to be discussed and explained.</t>
        <t>Some organizations may desire to increase the security of their network by avoiding PAP, and using CHAP or MS-CHAP, instead.  These attempts are largely misguided.  If simple password-based methods must be used, in almost all situations, the security of the network as a whole is increased by using PAP in preference to CHAP or MS-CHAP.  The reason is found through a simple risk analysis, which we explain in more detail below.</t>
        <section anchor="pap-security-analysis">
          <name>PAP Security Analysis</name>
          <t>When PAP is used, the RADIUS server obtains a clear-text password from the user, and compares that password to credentials which have been stored in a user database.   The credentials stored in the database can be salted and/or hashed in a form is commonly referred to as being in "crypt"ed form.  The RADIUS server takes the input clear-text password, performs the same "crypt" transformation, and the two "crypt"ed passwords are compared.</t>
          <t>Any compromise the RADIUS server will result in that clear-text password leaking.  However, in most cases, the clear-text password is available only in the memory of the RADIUS server application, and only for a short period of time.  An attacker who desires to obtain passwords for all users would have to wait for all users to log in, which can take a substantial amount of time.  During that time, an administrator may discover the breach, and resolve the issue.</t>
          <t>In addition with PAP, the credentials in the database are stored securely at all times (presuming that the administrator only stores "crypt"ed credentials).  Any compromise of the database results in the disclosure of minimal information to an attacker.  That is, the attacker cannot easily obtain the clear-text passwords from compromising the database.</t>
          <t>The result is that the user passwords are visible in clear-text only for a short time, and then only on the RADIUS server.  The security of this system is not as good as seen with EAP-pwd <xref target="RFC5931"/> for example, but it is not terrible.</t>
          <t>While the obfuscation method used for the User-Password attribute has not been shown to be insecure, it is not known to be secure.  The obfuscation method depends on calculating MD5(secret + Request Authenticator), which has a few helpful properties for an attacker.  The cost of brute-forcing short secrets is not large, <xref target="cracking"/> discusses that cost in detail.  Even for longer secrets which are humanly generated, the MD5 state for hashing the secret can be pre-calculated and stored on disk.  This process is relatively inexpensive, even for billions of possible shared secrets.  The Request Authenticator can then be added to each pre-calculated state via brute-force, and compared to the obfuscated User-Password data.</t>
          <t>The MD5 digest is 16 octets long, and many passwords are shorter than that.  This difference means that the final octets of the digest are placed into the User-Password attribute without modificaiton.  The result is that a brute-force attack does not need to decode the User-Password and see if the decoded password "looks reasonable".  Instead, the attacker simply needs to compare the final octets of the calculated digest with the final octets of the User-Password attribute.  The result is an extremely high probability signal that the guessed secret is correct.</t>
          <t>The only protection from this attack is to ensure that the secret is long, and derived from a cryptographically strong pseudo-random number generator.  {#shared-secrets} discusses these issues in more detail.</t>
        </section>
        <section anchor="chap-and-ms-chap-security-analysis">
          <name>CHAP and MS-CHAP Security Analysis</name>
          <t>In contrast, when CHAP or MS-CHAP is used, those methods do not expose a clear-text password to the RADIUS server, but instead a hashed transformation of it.  That hash output is in theory secure even if an attacker can observe it.  While CHAP is believed to be secure, MS-CHAP is not, as we will see below in (<xref target="ms-chap"/>).  For the purposes of this section, we will focus on the construct of "hashed passwords", and will ignore any attacks specific to MS-CHAP.</t>
          <t>The hash transformations for CHAP and MS-CHAP depend on a random challenge.  The intent was to increase security, but their construction makes strong requirements on the form in which user credentials are stored.</t>
          <t>The process for performing CHAP and MS-CHAP is inverted from the process for PAP.  Using similar terminology as above for illustrative purposes, the "crypt"ed passwords are sent to the server.  The server must obtain the clear-text (or NT hashed) password from the database, and then perform the "crypt" operation on the password from the database. The two "crypt"ed passwords are then compared as was done with PAP.  This inverted process has substantial and negative impacts on security.</t>
          <t>When CHAP or MS-CHAP are used, all of credentials are stored as clear-text passwords (or clear-text equivalent) in the database, all of the time.  The database contents might be encrypted, but the decryption keys are necessarily accessible to the application which reads that database.  Any compromise of the application means that the entire database can be immediately read and exfiltrated as a whole.  The attacker then has complete access to all user identities, and all associated clear-text passwords.</t>
        </section>
        <section anchor="on-the-wire-user-password-versus-chap-password">
          <name>On-the-wire User-Password versus CHAP-Password</name>
          <t>There is one more security myth which should be put to rest about PAP versus CHAP.  There is a common belief that CHAP is more secure, because the User-Password attribute is sent "in the clear" in Access-Request packets.  This belief is false.</t>
          <t>The User-Password attribute is obfuscated when it is sent in an Access-Request packet, using keyed MD5 and the shared secret, as defined in <xref target="RFC2865"/> Section 5.2.  At the time of this writing, no attack bettwe than brute force has been found which allows an attacker to reverse this obfuscation.</t>
          <t>There have been claims that this obfuscation is insecure, and that it is preferable to use CHAP-Password as it does not "send the password in clear-text".  This claim is likewise false.</t>
          <t>The CHAP-Password attribute depends on the hash of a visible Request Authenticator (or CHAP-Challenge) and the users password, while the obfuscated User-Password depends on the same Request Authenticator, and on the RADIUS shared secret.  For an attacker, the difference between the two calculations is minimal.  They can both be attacked with similar amounts of effort.   As a result, any security analysis which makes the claim that "User-Password insecure because it is protected with MD5" ignores the fact that the CHAP-Password attribute is constructed through substantially similar methods.</t>
        </section>
        <section anchor="pap-vs-chap-conclusions">
          <name>PAP vs CHAP Conclusions</name>
          <t>A careful security analyis shows that for both PAP and CHAP / MS-CHAP, the RADIUS server must have access to the clear-text version of the password.  So there is minimal difference in risk exposure between the different authentication methods if a RADIUS server is compromised.</t>
          <t>However, when PAP is used, the user credentials can be stored securely, while such secure storage is impossible with CHAP and MS-CHAP.  There is a substantial difference in risk exposure between the different authentication methods, with PAP offering substantially higher security due to its ability to use "crypt"ed passwords.  In contrast, CHAP is highly insecure, as any database compromise results in the eimmediate exposure of all clear-text user passwords.</t>
          <t>The result is that when the system as a whole is taken into account, the risk of password compromise is less with PAP than with CHAP or MS-CHAP.  It is therefore RECOMMENDED that administrators use PAP in preference to CHAP or MS-CHAP.</t>
          <t>That being said, other authentication methods such as EAP-TLS <xref target="RFC9190"/> and EAP-pwd <xref target="RFC5931"/> do not expose clear-text passwords to the RADIUS server, and therefore can offer lower risk of password exposure.  It is RECOMMENDED that administrators avoid password-based authentication methods where at all possible.</t>
        </section>
      </section>
      <section anchor="ms-chap">
        <name>MS-CHAP can be reversed</name>
        <t>MS-CHAP (v1 in <xref target="RFC2433"/> and v2 in <xref target="RFC2759"/>) has major design flaws, and should not be used outside of a secure tunnel such as with PEAP or TTLS.  As MS-CHAPv1 is less commonly used, the discussion in this section will focus on MS-CHAPv2.</t>
        <t>Recent developments demonstrate just how easy it is to attack MS-CHAPv2 exchanges, and obtain the "NT-hash" version of the password (<xref target="SENSEPOST"/>).  The attack relies on a vulnerability in the protocol design in <xref target="RFC2759"/> Section 8.4.  In that section, the response to the MS-CHAP challenge is calculated via three DES operations, which are based on the 16-octet NT-Hash form of the password.  However, the DES operation requires 7 octet keys, so the 16-octet NT-Hash cannot be divided evenly into the 21 octets of keys required for the DES operation.</t>
        <t>The solution in <xref target="RFC2759"/> Section 8.4 is to use the first 7 octets of the NT-Hash for the first DES key, the next 7 octets for the second DES key, leaving only 2 octets for the final DES key.  The final DES key is padded with zeros.  This construction means that an attacker who can observe the MS-CHAP2 exchange only needs to perform 2^16 DES operations in order to determine the final 2 octets of the original NT-Hash.</t>
        <t>If the attacker has a database which correlates known passwords to NT-Hashes, then those two octets can be used as an index into that database, which returns a subset of candidate hashes.  Those hashes are then checked via brute-force operations to see if they match the original MS-CHAPv2 data.</t>
        <t>This process lowers the complexity of cracking MS-CHAP by nearly five orders of magnitude as compared to a brute-force attack.  The attack has been demonstrated using databases which contain tens to hundreds of millions of passwords.  On a consumer-grade machine, the time required for such an attack to succeed is on the order of tens of milliseconds.</t>
        <t>While this attack does require a database of known passwords, such databases are easy to find online, or to create locally from generator functions.  Passwords created manually by people are notoriously predictable, and are highly likely to be found in a database of known passwords.  In the extreme case of strong passwords, they will not be found in the database, and the attacker is still required to perform a brute-force dictionary search.</t>
        <t>In fact, MS-CHAP has significantly poorer security than PAP when the MS-CHAP data is sent over the network in the clear.  When the MS-CHAP data is not protected by TLS, it is visible to everyone who can observe the RADIUS traffic.  Attackers who can see the MS-CHAP traffic can therefore obtain the underlying NT-Hash with essentially zero effort, as compared to cracking the RADIUS shared secret.  In contrast, the User-Password attribute is obfuscated with data derived from the Request Authenticator and the shared secret, and that method has not been successfully attacked.</t>
        <t>Implementors and administrators SHOULD therefore consider MS-CHAP and MS-CHAPv2 to be equivalent in security to sending passwords in the clear, without any encryption or obfuscation.  That is, the User-Password attribute with obfuscation is substantially more secure than MS-CHAP.  MS-CHAP offers little benefit over PAP, and has many drawbacks as discussed here, and in the previous section.</t>
        <t>This document therefore mandates that MS-CHAP or MS-CHAPv2 authentication data carried in RADIUS MUST NOT be sent in situations where the that data is visible to an observer.  MS-CHAP or MS-CHAPv2 authentication data MUST NOT be sent over RADIUS/UDP or RADIUS/TCP.  RADIUS client implementations SHOULD remove the option to use MS-CHAP from all configuration interfaces.</t>
      </section>
      <section anchor="eap">
        <name>EAP</name>
        <t>If more complex authentication methods are needed, there are a number of EAP methods which can be used.  These methods variously allow for the use of certificates (EAP-TLS), or passwords (EAP-TTLS <xref target="RFC5281"/>, PEAP <xref target="I-D.josefsson-pppext-eap-tls-eap"/>)) and EAP-pwd <xref target="RFC5931"/>.</t>
        <t>We also note that the TLS-based EAP methods which transport passwords also hide the passwords from intermediate RADIUS proxies.  However, for the home authentication server, those EAP methods are still subject to the analysis above about PAP versus CHAP, along with the issues of storing passwords in a database.</t>
      </section>
      <section anchor="eliminating-proxies">
        <name>Eliminating Proxies</name>
        <t>The best way to avoid compromise of proxies is to eliminate proxies entirely.  The use of dynamic peer discovery (<xref target="RFC7585"/>) means that the number of intermediate proxies is minimized.</t>
        <t>However, the server on the visited network still acts as a proxy between the NAS and the home network.  As a result, all of the above analysis still applies when <xref target="RFC7585"/> peer discovery is used.</t>
      </section>
      <section anchor="accounting-considered-imperfect">
        <name>Accounting Considered Imperfect</name>
        <t>The use of RADIUS/UDP for accounting means that accounting is inherently unreliable.  Unreliable accounting means that different entities in the network can have different views of accounting traffic.  These differences can have multiple impacts, including incorrect views of who is on the network, to disagreements about financial obligations.  These issues are discussed in substantial detail in <xref target="RFC2975"/>, and we do not repeat those discussions here.  We do, however, summarize a few key issues.  Sites which use accounting SHOULD be aware of the issues raised in <xref target="RFC2975"/>, and the limitations of the suggested solutions.</t>
        <t>Using a reliable transport such as RADIUS/TLS makes it more likely that accounting packets are delivered, and that acknowledgements are received.  Reducing the number of proxies means that there are fewer disparate systems which need to be reconciled.  Using non-volatile storage for accounting packets means that a system can reboot with minimal loss of accounting data.  Using interim accounting updates means that transient network issues or data losses can be corrected by later updates.</t>
        <t>Systems which perform accounting are also subject to significant operational loads.  Wheres authentication and authorization may use multiple packets, those packets are sent at session start, and then never again.  In contrast, accounting packets can be sent for the lifetime of a session, which may be hours or even days.  There is a large cost to receiving, processing, and storing volumes of accounting data.</t>
        <t>However, even with all of the above concerns addressed, accounting is still imperfect.  The obvious way to increase the accuracy of accounting data is to increase the rate at which interim updates are sent, but doing so also increases the load on the servers which process the accounting data.  At some point, the trade-off of cost versus benefit becomes negative.</t>
        <t>There is no perfect solution here.  Instead, there are simply a variety of imperfect trade-offs.</t>
        <section anchor="incorrect-accounting-data">
          <name>Incorrect Accounting Data</name>
          <t>Even if all accounting packets were delivered and stored without error, there is no guarantee that the contents of those packets are in any way reasonable.  The Wireless Broadband Alliance RADIUS Accounting Assurance <xref target="WBA"/> group has been investigating these issues.  While the results are not yet public, a presentation was made at IETF 118 in the RADEXT working group <xref target="RADEXT118"/>.</t>
          <t>The data presented indicated that the WBA saw just about every possible counter in RADIUS accouting packets as containing data which was blatantly wrong or contradictory.  Some examples include extremely short sessions which have impossibly large amounts of data being downloaded, or large amounts of data being downloaded while claiming neglible packet counters, leading to absurdly large packet sizes.  The only conclusion from this analysis is that RADIUS clients act as if it is better to produce incorrect accounting data rather than producing no data.  This lack of care is disappointing.</t>
          <t>It should go without saying that accounting systems need to produce correct data.  However, <xref target="RFC2865"/> makes no requirement that the accounting data transported in RADIUS is correct, or is even vaguely realistic.  We therefore say that systems which produce accounting data MUST generate correct, accurate, and reasonably precise data.  Vendors of networking equipment SHOULD test their systems to verify that the data they produce is accurate.</t>
        </section>
      </section>
    </section>
    <section anchor="practical-suggestions">
      <name>Practical Suggestions</name>
      <t>In the interest of simplifying the above explanations, this section provides a short-form checklist of recommendations.  Following this checklist does not guarantee that RADIUS systems are secure from all possible attacks.  However, systems which do not follow this checklist are likely to be vulnerable to known attacks, and are therefore less secure than they could be.</t>
      <ul empty="true">
        <li>
          <t>[ ] Do not use RADIUS/UDP or RADIUS/TCP across the wider Internet
&gt;
&gt; Exposing user identifiers, device identifiers, and locations is a privacy and security issue.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>[ ] Avoid RADIUS/UDP or RADIUS/TCP in other networks, too.
&gt;
&gt; It can take time to upgrade equipment, but the long-term goal is to entirely deprecate RADIUS/UDP.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>[ ] Use strong shared secrets
&gt;
&gt; Shared secrets should be generated from a cryptographically strong pseudo-random number generator.  They should contain at least 128 bits of entropy.  Each RADIUS client should have a unique shared secret.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>[ ] Minimize the use of RADIUS proxies.
&gt;
&gt; More proxies means more systems which could be compromised, and more systems which can see private or secret data.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>[ ] Do not proxy from secure to insecure transports
&gt;
&gt; If user information (credentials or identities) is received over a secure transport (IPSec, RADIUS/TLS, TLS-based EAP method), then proxying the protected data over RADIUS/UDP or RADIUS/TCP degrades security and privacy.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>[ ] Prefer EAP authentication methods to non-EAP methods.
&gt;
&gt; EAP authentication methods are better at hiding user credentials from observers.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>[ ] For EAP, use anonymous outer identifiers
&gt;
&gt;  There are few reasons to use individual identies for EAP.  Identifying the realm is usually enough.
&gt;
&gt; <xref target="RFC7542"/> Section 2.4 recommends that "@realm" is preferable to "anonymous@realm", which is in turn preferable to "user@realm".</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>[ ] Do not use MS-CHAP outside of TLS-based EAP methods.
&gt;
&gt; MS-CHAP can be cracked with minimal effort.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>[ ] Prefer using PAP to CHAP or MS-CHAP.
&gt;
&gt; PAP allows for credentials to be stored securely "at rest" in a user database.  CHAP and MS-CHAP do not.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>[ ] Store passwords in "crypt"ed form
&gt;
&gt; Where is is necessary to store passwords, use systems such as PBKDF2 (<xref target="RFC8018"/>.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>[ ] Regularly update to the latest cryptographic methods.
&gt;
&gt; TLS 1.0 with RC4 was acceptable at one point in time.  It is no longer acceptable.  Similarly, the current cryptographic methods will at some point will be deprecated, and replaced by updated methods.  Upgrading to recent cryptographic methods should be a normal part of operating a RADIUS server.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>[ ] Regularly deprecate older cryptographic methods.
&gt;
&gt; Administrators should actively deprecate the use of older cryptographic methods.  If no system is using older methods, then those methods should be disabled or removed entirely.  Leaving old methods enabled makes the server more vulnerable to attacks.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>[ ] Send the minimim amount of information which is needed,.
&gt;
&gt; Where proxying is used, it is a common practice is to simply forward all of the information from a NAS to other RADIUS servers.  Instead, the proxy closest to the NAS should filter out any attributes or data which are not needed by the "next hop" proxies, or by the home server.</t>
        </li>
      </ul>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>The primary focus of this document is addressing privacy and security considerations for RADIUS.</t>
      <t>Deprecating insecure transport for RADIUS, and requiring secure transport means that personally identifying information is no longer sent "in the clear".  As noted earlier in this document, such information can include MAC addresses, user identifiers, and user locations.</t>
      <t>In addition, this document suggests ways to increase privacy by minimizing the use and exchange of PII.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The primary focus of this document is addressing security and privacy considerations for RADIUS.</t>
      <t>Deprecating insecure transport for RADIUS, and requiring secure transport means that many historical security issues with the RADIUS protocol no longer apply, or their impact is minimized.</t>
      <t>We reiterate the discussion above, that any security analysis must be done on the system as a whole.  It is not reaonable to put an expensive lock on the front door of a house while leaving the window next to it open, and then declare the house to be "secure". Any approach to security based on a simple checklist is at best naive, more truthfully is deeply misleading, and at worst such practices will decrease security.</t>
      <t>Implementers and administrators need to be aware of the issues raised in this document.  They can then make the best choice for their local network which balances their requirements on privacy, security, and cost.</t>
      <section anchor="practical-implications">
        <name>Practical Implications</name>
        <t>This document either deprecates or forbids methods and behaviors which have been common practice for decades.  While insecure practices have been viewed as tolerable, they are no longer acceptable.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is instructed to update the RADIUS Types registry, and the "Values for RADIUS Attribute 101, Error-Cause Attribute" sub-registry with the following addition:</t>
      <artwork><![CDATA[
Value,Description,Reference
502,Missing Message-Authenticator,[THIS-DOCUMENT]
]]></artwork>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to the many reviewers and commenters for raising topics to discuss, and for providing insight into the issues related to increasing the security of RADIUS.  In no particular order, thanks to Margaret Cullen, Alexander Clouter, and Josh Howlett.</t>
    </section>
    <section anchor="changelog">
      <name>Changelog</name>
      <ul spacing="normal">
        <li>01 - added more discussion of IPSec, and move TLS-PSK to its own document,</li>
        <li>02 - Added text on Increasing the Security of Insecure Transports</li>
        <li>03 - add text on CUI.  Add notes on PAP vs CHAP security</li>
        <li>04 - add text on security of MS-CHAP.  Rearrange and reword many sections for clarity.</li>
        <li>05 - Rework title to deprecating "insecure practices".  Clarifications based on WG feedback.</li>
        <li>00 - adoption by WG.</li>
        <li>01 - review from Bernard Aboba.  Added discussion on accounting, clarified and re-arranged text.  Added discussion of server behavior for missing Message-Authenticator</li>
      </ul>
    </section>
  </middle>
  <back>
    <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="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"/>
            <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="RFC8044">
          <front>
            <title>Data Types in RADIUS</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <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">
          <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="RFC1321">
          <front>
            <title>The MD5 Message-Digest Algorithm</title>
            <author fullname="R. Rivest" initials="R." surname="Rivest"/>
            <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="RFC2433">
          <front>
            <title>Microsoft PPP CHAP Extensions</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn"/>
            <author fullname="S. Cobb" initials="S." surname="Cobb"/>
            <date month="October" year="1998"/>
            <abstract>
              <t>The Point-to-Point Protocol (PPP) provides a standard method for transporting multi-protocol datagrams over point-to-point links. PPP defines an extensible Link Control Protocol and a family of Network Control Protocols (NCPs) for establishing and configuring different network-layer protocols. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2433"/>
          <seriesInfo name="DOI" value="10.17487/RFC2433"/>
        </reference>
        <reference anchor="RFC2759">
          <front>
            <title>Microsoft PPP CHAP Extensions, Version 2</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn"/>
            <date month="January" year="2000"/>
            <abstract>
              <t>This document describes version two of Microsoft's PPP CHAP dialect (MS-CHAP-V2). MS-CHAP-V2 is similar to, but incompatible with, MS-CHAP version one (MS-CHAP-V1). This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2759"/>
          <seriesInfo name="DOI" value="10.17487/RFC2759"/>
        </reference>
        <reference anchor="RFC2866">
          <front>
            <title>RADIUS Accounting</title>
            <author fullname="C. Rigney" initials="C." surname="Rigney"/>
            <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">
          <front>
            <title>RADIUS Attributes for Tunnel Protocol Support</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn"/>
            <author fullname="D. Leifer" initials="D." surname="Leifer"/>
            <author fullname="A. Rubens" initials="A." surname="Rubens"/>
            <author fullname="J. Shriver" initials="J." surname="Shriver"/>
            <author fullname="M. Holdrege" initials="M." surname="Holdrege"/>
            <author fullname="I. Goyret" initials="I." surname="Goyret"/>
            <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">
          <front>
            <title>RADIUS (Remote Authentication Dial In User Service) Support For Extensible Authentication Protocol (EAP)</title>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="P. Calhoun" initials="P." surname="Calhoun"/>
            <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">
          <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="RFC5580">
          <front>
            <title>Carrying Location Objects in RADIUS and Diameter</title>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
            <author fullname="F. Adrangi" initials="F." surname="Adrangi"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="A. Lior" initials="A." surname="Lior"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <date month="August" year="2009"/>
            <abstract>
              <t>This document describes procedures for conveying access-network ownership and location information based on civic and geospatial location formats in Remote Authentication Dial-In User Service (RADIUS) and Diameter.</t>
              <t>The distribution of location information is a privacy-sensitive task. Dealing with mechanisms to preserve the user's privacy is important and is addressed in this document. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5580"/>
          <seriesInfo name="DOI" value="10.17487/RFC5580"/>
        </reference>
        <reference anchor="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"/>
            <author fullname="L. Chen" initials="L." surname="Chen"/>
            <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">
          <front>
            <title>Cisco Vendor-Specific RADIUS Attributes for the Delivery of Keying Material</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn"/>
            <author fullname="T. Zhang" initials="T." surname="Zhang"/>
            <author fullname="J. Walker" initials="J." surname="Walker"/>
            <author fullname="J. Salowey" initials="J." surname="Salowey"/>
            <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">
          <front>
            <title>RADIUS over TCP</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <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">
          <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="RFC6973">
          <front>
            <title>Privacy Considerations for Internet Protocols</title>
            <author fullname="A. Cooper" initials="A." surname="Cooper"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Peterson" initials="J." surname="Peterson"/>
            <author fullname="J. Morris" initials="J." surname="Morris"/>
            <author fullname="M. Hansen" initials="M." surname="Hansen"/>
            <author fullname="R. Smith" initials="R." surname="Smith"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document offers guidance for developing privacy considerations for inclusion in protocol specifications. It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices. It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6973"/>
          <seriesInfo name="DOI" value="10.17487/RFC6973"/>
        </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>
        <reference anchor="I-D.ietf-radext-tls-psk">
          <front>
            <title>RADIUS and TLS-PSK</title>
            <author fullname="Alan DeKok" initials="A." surname="DeKok">
              <organization>FreeRADIUS</organization>
            </author>
            <date day="29" month="February" year="2024"/>
            <abstract>
              <t>   This document gives implementation and operational considerations for
   using TLS-PSK with RADIUS/TLS (RFC6614) and RADIUS/DTLS (RFC7360).
   The purpose of the document is to help smooth the operational
   transition from the use of the insecure RADIUS/UDP to the use of the
   much more secure RADIUS/TLS.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-radext-tls-psk-09"/>
        </reference>
        <reference anchor="I-D.tomas-openroaming">
          <front>
            <title>WBA OpenRoaming Wireless Federation</title>
            <author fullname="Bruno Tomas" initials="B." surname="Tomas">
              <organization>Wireless Broadband Alliance, Inc.</organization>
            </author>
            <author fullname="Mark Grayson" initials="M." surname="Grayson">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Necati Canpolat" initials="N." surname="Canpolat">
              <organization>Intel Corporation</organization>
            </author>
            <author fullname="Betty A. Cockrell" initials="B. A." surname="Cockrell">
              <organization>SingleDigits</organization>
            </author>
            <author fullname="Sri Gundavelli" initials="S." surname="Gundavelli">
              <organization>Cisco Systems</organization>
            </author>
            <date day="16" month="February" year="2024"/>
            <abstract>
              <t>   This document describes the Wireless Broadband Alliance's OpenRoaming
   system.  The OpenRoaming architectures enables a seamless onboarding
   experience for devices connecting to access networks that are part of
   the federation of access networks and identity providers.  The
   primary objective of this document is to describe the protocols that
   form the foundation for this architecture, enabling providers to
   correctly configure their equipment to support interoperable
   OpenRoaming signalling exchanges.  In addition, the topic of
   OpenRoaming has been raised in different IETF working groups, and
   therefore a secondary objective is to assist those discussions by
   describing the federation organization and framework.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tomas-openroaming-02"/>
        </reference>
        <reference anchor="I-D.josefsson-pppext-eap-tls-eap">
          <front>
            <title>Protected EAP Protocol (PEAP) Version 2</title>
            <author fullname="Ashwin Palekar" initials="A." surname="Palekar">
              <organization>Microsoft Corporation</organization>
            </author>
            <author fullname="Simon Josefsson" initials="S." surname="Josefsson">
              <organization>Extundo</organization>
            </author>
            <author fullname="Daniel Simon" initials="D." surname="Simon">
              <organization>Microsoft Corporation</organization>
            </author>
            <author fullname="Glen Zorn" initials="G." surname="Zorn">
              <organization>Cisco Systems</organization>
            </author>
            <date day="21" month="October" year="2004"/>
            <abstract>
              <t>The Extensible Authentication Protocol (EAP) provides support for
   multiple authentication methods. This document defines the Protected
   Extensible Authentication Protocol (PEAP) Version 2, which provides
   an encrypted and authenticated tunnel based on transport layer
   security (TLS) that encapsulates EAP authentication mechanisms.
   PEAPv2 uses TLS to protect against rogue authenticators, protect
   against various attacks on the confidentiality and integrity of the
   inner EAP method exchange and provide EAP peer identity privacy.
   PEAPv2 also provides support for chaining multiple EAP mechanisms,
   cryptographic binding between authentications performed by inner EAP
   mechanisms and the tunnel, exchange of arbitrary parameters (TLVs),
   and fragmentation and reassembly.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-josefsson-pppext-eap-tls-eap-10"/>
        </reference>
        <reference anchor="EDUROAM" target="https://eduroam.org">
          <front>
            <title>eduroam</title>
            <author initials="" surname="eduroam" fullname="eduroam">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="OPENROAMING" target="https://wballiance.com/openroaming/">
          <front>
            <title>OpenRoaming: One global Wi-Fi network</title>
            <author initials="W. B." surname="Alliance" fullname="Wireless Broadband Alliance">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="WIFILOC" target="https://www.wi-fi.org/discover-wi-fi/wi-fi-location">
          <front>
            <title>Accurate indoor location with Wi-Fi connectivity</title>
            <author initials="W.-F." surname="Alliance" fullname="Wi-Fi Alliance">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SPOOFING" target="https://networkradius.com/articles/2021/08/04/wifi-spoofing.html">
          <front>
            <title>Wi-Fi Spoofing for Fun and Profit</title>
            <author initials="A." surname="Cudbard-Bell" fullname="Arran Cudbard-Bell">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SENSEPOST" target="https://github.com/sensepost/assless-chaps">
          <front>
            <title>Cracking MS-CHAP</title>
            <author initials="" surname="Sensepost" fullname="Sensepost">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="WBA" target="https://wballiance.com/radius-accounting-assurance/">
          <front>
            <title>RADIUS Accounting Assurance</title>
            <author initials="W. B." surname="Alliance" fullname="Wireless Broadband Alliance">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RADEXT118" target="https://youtu.be/wwmYSItcQt0?t=3953">
          <front>
            <title>RADIUS Accounting Assurance at IETF 118</title>
            <author initials="W. B." surname="Alliance" fullname="Wireless Broadband Alliance">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="PWNED" target="https://haveibeenpwned.com/">
          <front>
            <title>Have I been Pwned</title>
            <author initials="T." surname="Hunt" fullname="Troy Hunt">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC7525">
          <front>
            <title>Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="R. Holz" initials="R." surname="Holz"/>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) are widely used to protect data exchanged over application protocols such as HTTP, SMTP, IMAP, POP, SIP, and XMPP. Over the last few years, several serious attacks on TLS have emerged, including attacks on its most commonly used cipher suites and their modes of operation. This document provides recommendations for improving the security of deployed services that use TLS and DTLS. The recommendations are applicable to the majority of use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7525"/>
          <seriesInfo name="DOI" value="10.17487/RFC7525"/>
        </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="RFC5080">
          <front>
            <title>Common Remote Authentication Dial In User Service (RADIUS) Implementation Issues and Suggested Fixes</title>
            <author fullname="D. Nelson" initials="D." surname="Nelson"/>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="December" year="2007"/>
            <abstract>
              <t>This document describes common issues seen in Remote Authentication Dial In User Service (RADIUS) implementations and suggests some fixes. Where applicable, ambiguities and errors in previous RADIUS specifications are clarified. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5080"/>
          <seriesInfo name="DOI" value="10.17487/RFC5080"/>
        </reference>
        <reference anchor="RFC6280">
          <front>
            <title>An Architecture for Location and Location Privacy in Internet Applications</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="M. Lepinski" initials="M." surname="Lepinski"/>
            <author fullname="A. Cooper" initials="A." surname="Cooper"/>
            <author fullname="J. Morris" initials="J." surname="Morris"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <date month="July" year="2011"/>
            <abstract>
              <t>Location-based services (such as navigation applications, emergency services, and management of equipment in the field) need geographic location information about Internet hosts, their users, and other related entities. These applications need to securely gather and transfer location information for location services, and at the same time protect the privacy of the individuals involved. This document describes an architecture for privacy-preserving location-based services in the Internet, focusing on authorization, security, and privacy requirements for the data formats and protocols used by these services. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="160"/>
          <seriesInfo name="RFC" value="6280"/>
          <seriesInfo name="DOI" value="10.17487/RFC6280"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC9257">
          <front>
            <title>Guidance for External Pre-Shared Key (PSK) Usage in TLS</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="J. Hoyland" initials="J." surname="Hoyland"/>
            <author fullname="M. Sethi" initials="M." surname="Sethi"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>This document provides usage guidance for external Pre-Shared Keys (PSKs) in Transport Layer Security (TLS) 1.3 as defined in RFC 8446. It lists TLS security properties provided by PSKs under certain assumptions, then it demonstrates how violations of these assumptions lead to attacks. Advice for applications to help meet these assumptions is provided. This document also discusses PSK use cases and provisioning processes. Finally, it lists the privacy and security properties that are not provided by TLS 1.3 when external PSKs are used.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9257"/>
          <seriesInfo name="DOI" value="10.17487/RFC9257"/>
        </reference>
        <reference anchor="RFC7542">
          <front>
            <title>The Network Access Identifier</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>In order to provide inter-domain authentication services, it is necessary to have a standardized method that domains can use to identify each other's users. This document defines the syntax for the Network Access Identifier (NAI), the user identifier submitted by the client prior to accessing resources. This document is a revised version of RFC 4282. It addresses issues with international character sets and makes a number of other corrections to RFC 4282.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7542"/>
          <seriesInfo name="DOI" value="10.17487/RFC7542"/>
        </reference>
        <reference anchor="RFC4372">
          <front>
            <title>Chargeable User Identity</title>
            <author fullname="F. Adrangi" initials="F." surname="Adrangi"/>
            <author fullname="A. Lior" initials="A." surname="Lior"/>
            <author fullname="J. Korhonen" initials="J." surname="Korhonen"/>
            <author fullname="J. Loughney" initials="J." surname="Loughney"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>This document describes a new Remote Authentication Dial-In User Service (RADIUS) attribute, Chargeable-User-Identity. This attribute can be used by a home network to identify a user for the purpose of roaming transactions that occur outside of the home network. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4372"/>
          <seriesInfo name="DOI" value="10.17487/RFC4372"/>
        </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="RFC9190">
          <front>
            <title>EAP-TLS 1.3: Using the Extensible Authentication Protocol with TLS 1.3</title>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="M. Sethi" initials="M." surname="Sethi"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>The Extensible Authentication Protocol (EAP), defined in RFC 3748, provides a standard mechanism for support of multiple authentication methods. This document specifies the use of EAP-TLS with TLS 1.3 while remaining backwards compatible with existing implementations of EAP-TLS. TLS 1.3 provides significantly improved security and privacy, and reduced latency when compared to earlier versions of TLS. EAP-TLS with TLS 1.3 (EAP-TLS 1.3) further improves security and privacy by always providing forward secrecy, never disclosing the peer identity, and by mandating use of revocation checking when compared to EAP-TLS with earlier versions of TLS. This document also provides guidance on authentication, authorization, and resumption for EAP-TLS in general (regardless of the underlying TLS version used). This document updates RFC 5216.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9190"/>
          <seriesInfo name="DOI" value="10.17487/RFC9190"/>
        </reference>
        <reference anchor="RFC5931">
          <front>
            <title>Extensible Authentication Protocol (EAP) Authentication Using Only a Password</title>
            <author fullname="D. Harkins" initials="D." surname="Harkins"/>
            <author fullname="G. Zorn" initials="G." surname="Zorn"/>
            <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">
          <front>
            <title>Extensible Authentication Protocol Tunneled Transport Layer Security Authenticated Protocol Version 0 (EAP-TTLSv0)</title>
            <author fullname="P. Funk" initials="P." surname="Funk"/>
            <author fullname="S. Blake-Wilson" initials="S." surname="Blake-Wilson"/>
            <date month="August" year="2008"/>
            <abstract>
              <t>EAP-TTLS is an EAP (Extensible Authentication Protocol) method that encapsulates a TLS (Transport Layer Security) session, consisting of a handshake phase and a data phase. During the handshake phase, the server is authenticated to the client (or client and server are mutually authenticated) using standard TLS procedures, and keying material is generated in order to create a cryptographically secure tunnel for information exchange in the subsequent data phase. During the data phase, the client is authenticated to the server (or client and server are mutually authenticated) using an arbitrary authentication mechanism encapsulated within the secure tunnel. The encapsulated authentication mechanism may itself be EAP, or it may be another authentication protocol such as PAP, CHAP, MS-CHAP, or MS-CHAP-V2. Thus, EAP-TTLS allows legacy password-based authentication protocols to be used against existing authentication databases, while protecting the security of these legacy protocols against eavesdropping, man-in-the-middle, and other attacks. The data phase may also be used for additional, arbitrary data exchange. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5281"/>
          <seriesInfo name="DOI" value="10.17487/RFC5281"/>
        </reference>
        <reference anchor="RFC2975">
          <front>
            <title>Introduction to Accounting Management</title>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Arkko" initials="J." surname="Arkko"/>
            <author fullname="D. Harrington" initials="D." surname="Harrington"/>
            <date month="October" year="2000"/>
            <abstract>
              <t>This document describes and discusses the issues involved in the design of the modern accounting systems. The field of Accounting Management is concerned with the collection the collection of resource consumption data for the purposes of capacity and trend analysis, cost allocation, auditing, and billing. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2975"/>
          <seriesInfo name="DOI" value="10.17487/RFC2975"/>
        </reference>
        <reference anchor="RFC8018">
          <front>
            <title>PKCS #5: Password-Based Cryptography Specification Version 2.1</title>
            <author fullname="K. Moriarty" initials="K." role="editor" surname="Moriarty"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <author fullname="A. Rusch" initials="A." surname="Rusch"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document provides recommendations for the implementation of password-based cryptography, covering key derivation functions, encryption schemes, message authentication schemes, and ASN.1 syntax identifying the techniques.</t>
              <t>This document represents a republication of PKCS #5 v2.1 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series. By publishing this RFC, change control is transferred to the IETF.</t>
              <t>This document also obsoletes RFC 2898.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8018"/>
          <seriesInfo name="DOI" value="10.17487/RFC8018"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAEOQL2YAA+2963IbV5Ym+p9PkQPHiSbLACVSV6vPVDUt0mVOWRJHpFvd
UVMzkQA2iCwlMtGZCUKww/Ms51nOk51132snErRips9ETMRUdLQpEtjXtdd9
fWsymRx1RVeGN9llWDdhlndFdZ9dV22YbZqQ3TT5rCtmoc2KKvt4cXn98+1R
Pp024SH9gvxpXs+qfAWDzZt80U2K0C0mTT4PX7rJPH4af1Vs2snTs6Ojtsur
+X/Ly7qCb3XNJhwV64Z+arvzp0+/e3p+lDchfwNL6kJThe5oe/8Gp7v6l7vs
U918xtn/3NSb9dHnbfzU5BIXcATzvcnabn7Ubqarom2LurrbrWGm66u7H46O
1sWbDP73TTbLq2zThixvmnyXHReLLC/LbBfak6xusmXeLrNlaMJRlnX17A3+
AX5s66ZrwqJ9Q0PMwyLflF0Ln9C/71b8Z/znUb7plnXz5uhoAkcJv7w4hQP8
S/0ZPshHdlHCIvRXdQO7/KEJQQ42y8IqL8o3sC44r39awF/4EE/hk0dHVd2s
4Ggfwhv45Pdvb86ewxn98Pb12avn8Av46fz1yxdv+MeXz8/P5MfXT58/hxUV
1cJ/H/5w9sw+c/782TP98dWL797YeC/jj6/lx2cvXukHXpy90g+8ePH6qc59
9kLHfXl+pl97+fLsWfzxuf743Sv97atnL2mE68nlqaeprmwn6/az/qmrV3k7
qdehaup8BYShf/h73cJFtHU1Wa/X+MWQr+nL8F/8zNXlzx8/XLzDH+F/8h5G
Yb7BcUb8W72/jP/HdyYf4V/yIdon7v7lDihj2XXr9s2TJ/JJuq4s+3Bz9R5n
vH7/596kH2D1H2X12YcqZPdlPc3L7FMx+aHIgLK3QPOPLelT0YQytG32Pcw3
nwK1AGWVRV7Nwlcscwtz8YdPZ/XqiTvLJ/CFT9c/XP/04W1vyRczYBV5F4Cu
5zU8l7LGZ15X2bbolrLwWV1VATjJQ9HtHlv9iD+uKx4dXrKteLs93RaTRYFH
+2RetLP6ITQT+tUT+v8TXRB8//bmw4cf9k+dZ71d1/UC+QnMl/2wqTI8vJsG
ftc9uuYL4BpV9nYDp93MJ9+HsvyKdctVyivGw84b4LRwdU/On56fPXn6+snT
57ABWH8r6zpddqsSN3H1/vbq5sPtXW8Xb4FZEz98dzt5++PFzWOLvg3A4td1
2/3+Su/hGjdTWmKr33qSty1S2WS2zNfI7D59f9FbDXOuDKij3lQkJC7aFggl
XushCjhIwF9DDikBi6TJbRGTXBeBBM1y5Iw50detPcs7kh4ZfOv/x33s6k23
OZ0GoO/Vv95ed7P/3D39U/cfn3334hl8/ubT+6vL3pp/zB9Cdp1NQ6iym20V
5o+u7q6pd9mPsLmvWMsSRi5w3DUOS+d6dPQQqg2Ji3sUviqS4d8sp5hD/xNy
a+F5TEZvsii7nuzrBKfwKRCRk0mWT9sOlY+jI7mMWbNbd/Ukvy9KYCLZNm+z
RdG0HUxYzYH9zDP8DZwaqC34srLpDmVHhvLuFHa0DBmcKSwe/rvIuiXcI30M
B+rgj+vNtCyEc8EHZFZkJtndT7fZMY0F4umE2IL/86X9HQXVCa4jfFmHpliF
qgPeDVrRBn9saRkgi0C9ySt41U2XrZsaVIq6bDM8Zb69AlnnPMC7B81nTooJ
ciTY5w50ibwhZSynz8A5V/e0IeEnPEfY8XAwOtwTbq9osk3HJwfLa8K6zGeB
FkVj0wGAVlfUmzb7+fKGt4NaA2/37u2NncCzk7h+nO4Tsnk6z89VvS3D/D6M
aUBg+nC1m8BbgDUWqlbG79PscpigZ2UtHBuuASetwj0pJVmxWuvV8BfWTfGQ
z3b0KRoS9nV6dHTdZUWbVTWIIDiVJoNnH9ZdPi2DnwYUNHiZuwzu+d3lC/qL
jQH6wuEx4IvAAOeg6j2ASpx5UWcqFP2cARvP4VDhBcD3m7plCsMLa0xFpYuC
qZQ68COgL9ZwPPouSO2WI4MjbCNdjmnrQvk8upyxfBxIcjLNWzj7SGtlvgsN
3RhwsbKtM5SWmxbJoaQHpMcAJ9BuYFgS4H7Ce7wNokNYX72CZc+TW1FjYbss
ZktY+wwIGJZl4+IYcnen/MxXxXxehqOjb/Bcmnq+mZGkPsLnKvelTyT79VfR
ZH/7zT1/siBA8Ba/wA7g7M++++4V0l+9uYclAIU1dQ3//77OpiAes9UGVga3
UxZwF3Cj8PFnwh5sIjprpA2aEZVhmBFvv7ivQO0HDrKGoQIq+2BNtHw28Pd6
uti0eG/ZLDRdjq+065piusE7anFiWPXPQOKTGxBD8FznMPMFXGtT3BcVCK4d
XD1OEuZjFD4oYD+Gf4Or6GzGLRBJBuRSEA1vKmTv+E+cds4rAaFVzoGVwNWD
wkXDkgrBLFIunQ+LNohqO2zwNtDZZ89Pn52e40sAPtjM+ZSQNyCN0iZUHxnz
q2/XYQZqirwEsIOKCskODvQdbCC/D5OLuEYgEzuT7Hhoepj8RAgIll5vYSwi
Lj3xGqy1pgFaouvIid8zpcOXf3x38XYCN3fKFAS00dGrwMs0KtwOngLaJr/9
Npapy0A32vlBhB5tnGlAzQC5Ztj6gZ4TvcT9DAsf/p6JnwYNvAqPGz7gxtEF
4VPCN9oTgw2QB5BC5OS8SJjTbcrWcs6bacHo+yOdySFWt0VeBIQECgsazTBN
W+BDA7ZXtDrp3Gh6DvSLks5upKULgI8SD0QuB5+fdUCJ+Zp4ufBTW+1laNcF
HLNfNZ8vidgc6GoGKkVWl0TEdIgwQqEHClNs4VKEKnHxKE1InFZIvvV9g7pY
V2+BVYB4mc/x3zi+4510IiQu+7xnj1nLAMR7cxLjsKPV/5FB/7vJILkPfIVw
EMCegDaJYdIW5jz99Q08oDERemhnwLweY57n9LjuaiUR5iE6+8OmrED9neLr
LfxpPrm6uBnDF1HXoecsm1LqTrns7Y8ffv7pEt7fmk71+gYmgC8fk8Pm6Rko
bUg6svq/XOkfvjuhQ/oM+iGcILBmnAgJDr+fXd3exDFenvC3q7qaVJuy5DtE
CtPJQcDI/Cp4dBkwEH85j18PFXEuXHwcCb/kBBhK/j/apuI0m5a5MaqzqPSC
bj1heYA65gJ+Bd/PkR/iCaYDjuGmunBvV0+q744eNl8Zbh9OyGY7otkGjolF
ipA4kYQJqPiq8VDwIRGFdfDEx1FJ5X/Ft+he4Y8wDPC5sRgOARltu6Sxib+g
hYE0ClRHpL/Nd0ASRCsNrbVPNjnxiHVZ7+Rd5xWvGZ/esgBOwjswVl7DvOzL
bXdtF1Z6DWObG0YQ5o1TgHUCFkRWFtMmb3bGSIrFAjgILH+Masi61CekvEeN
mnxer9XUwglwDz/e3d3cAqG0KEB430VHU9eLDhg5vONCtusWQioB3goO4/ap
b/sJ/p7FClhv8FSj+fbk0v6GlhuqlSg5kHxMjymcFrQKoWPL5hEhnIrv0yxz
yzCZdMDEy6egJZiwQ9KdlZs5Xor4D2FocVaiZkD8F5k1cEKYG9iWcx/CR52b
Ufb966+DjlK/zktdaIsLJQ8GucYj3bKlbOQ7zkCZw5uCtx7g7/QVHGC1KbsC
SKBPnHA1FybCRWoP87mxLgpNUvwjmLAlnRzqvi3yncAGrmj7SPMgEFoVrLjn
ERzwsp6NkFe0XcMWRtuXufwo8Dt2SdOm/hyQgZA4zkGWggrEz4k1Q1bWnWpI
NKvqh5rzxzDeLnQnKNBB9wW+RctTH1OiG0cFSlXgBhXQhvUAou5pA6rzBFY/
C3CQxjjYgictRIQm7mUV8kqf0gJVZtBA4ZYo4EHqpztfYMsLOHggKziu6XQH
4lDWC1PjF2boX6TIyBpIoUB1RFXiZd6w7G4CP4FQ3C+BO8PvQR4HdllUdcfm
F9EsbQb+D66uQTOoUlJu4RezsNiUcfbjcHp/itJEWA8qsSduTTSqKEu9tdBR
1BXQy6qeoyGFHLaaF6ylZiC4Q/bXvx1/MxPn6QlcGjB1fo46pigpwq+ITrt6
XSCTMacriXk/N0wNR0VKDkwFb4G0snoFt7QqWIrQWYop2JJdUzDLwcESQzFa
TbDmK6T5DWmv6OeNH6qR+8LDK6piBep4FHKkvLBPBo4AZp75ZW/Q7ih3+E9d
Db22YlWUeaPUPvjVZMewNHE9i2mHwSPhPPKHh3Mx41+9ALXphOkbiJ6ePLEw
mL3FWELUmYhSbkA9kk3s6OYT+5bWpLJGt6+kBAb6MV7xit3VJyepKB+2Uud1
aIligaGtxYT7PXuWuASqsQ0qfwUrO3WivdKwNrb44egk1QmA71bUZtFxnFWl
fKrwqrrceh4Zhb94ZIo6H2wf3YX+NvmNHbxOULjwT3Uyen9Z8j5Z7J2fvcaL
3ZITghk2Tg3vGa0/pxMPKvitMjL2xPD3kSOry0++tanUYBDqTLRs2Nf+2R0d
vcM998wk4WBI7sjZ1XCaoOHEV0bMI88WwC2dOwcJd1nMQfUERpqb6wdHXYEU
rOfKwdXOI+5msgiZcyKPzAcl2/QuT+U5KLErPD56Ncj3UQRcgD5YT4FZPLDz
AFVulOEqk5itE3GKBVlP2TkFOt4UrXpUnrN8hbEOOjqgphopkRXrRUHf8+d2
fHN9fSLaCryiRldvy8AHCtovyOpljTOX9f09ElJR6X2JvxrdG3kn5qy87pxM
TTLl2Q9hv3XDLICLiuONvNugETb1F3j3XYgm8fGm3TB/AKo4UV+1/llemb/U
1ut9RM8YvSZdizcax17l6AGCz8NzX7HLqyZiRh/kC7TMW9QYSfjBOWFoVDyF
RPEj+tOkhFss0cDfNHTtFEJtRzC3BFtJNQPhmBwtCRVkX3LHMb7l/WS2NCC5
LYky2QXeCFA1/MVclx3LdqCI1Qr0edHOCmT+6NhRIjoGlb5G9Z1Y2baif9BH
WuSqn1BzTlU2sqYeUx5zlIkrOFCLFC+Kewwo4yGTgcVftIOnQMIcOP8c7ral
81gDuyMqLncsF1gaFOi4yssJuYmMFs6eooQgfo2LeMC1j9PL42tjooYzUOoU
saPPQs1emY7uaefkOZEteWuQQzwi0nXgqBzMVcpvlxy/sXud18zJ64rfMMzo
6HTYG6QRHrz7cTKavQ8Zjry2F2+NT4uSzleTk0caDruo2HOEbxOfpSn6SKJ0
Ui28faTGed7l+MqUGc7qhvn2wJB+4sAW7Hq5a9EhE7eFRCfiSLQTvS4S9+WG
THqW73tho8QHFGkoa/NF6ITD5M29vAoNP/ForQks/BjJhHXeoMKyAkF/T6LI
Lit1QZhAUAVPCE0eL3MceW64PaCBGZ8BWfbiwZoPu7Cy7Af4UPiSo4015ujE
genJW3sF+iJIhzH/QD+FbnbKL40mJCJ9n69CEmajCGTdBHXuRZceCVuleaV0
0a1gfBENqmw54oIR5kDtv/Aq8Q2UcKcqDFJBLU9OdkQEsKaEiQ3SwCqvNgsw
NGBhDVrNbYdWNRIvfnBTFf+2CTJsz2ZqD54WXjO+tLwkZwtbm6jupb/PH3Ig
QxCQ+mKLhYxrakBoxIW1mcJCiq7etOgJIvYgz1kUNjII5M357YsvsxXuifqI
Tsv+ccdzzcn8BIO2SaT2Au4xGFeJ7lkghWTbvNe+S4ks2sRJym6Z9nOxXmNk
IjRyRSEDplrMxYQHdWouSqRZF84MAktBs3JAb+S4E/m4Zsg3xiJ26RDxpGj9
+TZnC7ITvY8lo1sAO8uI3cCx4tvnCJiGU9Aw7ry9jl8AAx3uNGGXKkdn8mFY
GL7de/r8FhVikxLxEdBiyTuHcXgwrubCsiQKx+sdsyJQFl0H18gmNfuT+gvo
8s+BOH0+U/KHW1iDag/U/M032S1PxRYh+/VqzlooWO8PFfpHEqsn33/IGs1J
RlB3HN5YCQcxGHtnaxloN9U5e5oL6oH4wPk4MFmA4mfkusklOSwjhajlFc7K
AnVy4tw4Ah01ujJIkRrQNvntiVRilZ3JB1WJ7P3FLb1goq7097hSfHr47ZTx
tKrlo8LJ71Ombb3ftujSs6Y7Aloa4XHTgY5UWUVT4AFFCKniPCNJllSm4iLV
RGLZiVuuWMNRMcmqRa7iHlUt1IPz2RIowwkGWZ/5bei+quhgoXjUDF8mvyf2
dUSPEKyc7Vr2t+CHkDj0g+gphxGZcIAv506BQruDppG4ND19fPh5GfVKsr2I
k9Er03RBdt+rDxTZlJsRh79eOH/sfZOv4aSMlWm4ADaLUT+2aoFygeP8CV2+
L85fuMjNy9NnJ2O+nykIXDKJ0VWmM8poxCU8hbAVxPcon205rI/vSSnj49Xb
D+/eXb2/vLoURgK7H162RjvkfWr6U10hzQkvPrA18w/0t7xVM1wFjdd+ZNFC
4XRXtGz6kkb+5Q5R/3aHQl/hOC0+3Ca/F14nn8ZTGUdjfRxPCOzWiwt51y3G
OpA2yHNT/MLWPDC1fEbqBTMmcZ1OldHlapssiYWs4RaOLSQY5pS6TZo/CznW
LabsMmHHi3k9UqK66/1K1XPx1szV3ZyrpsYOT6KAJsA3dNzwBaQl/sPTM6wK
toCmPG+iAiYV/66BG8usd8pU4iWKX4EVv4dLNS/vgY/hn2ZljUchh7A3t7gY
6PLJuZrjzO16wzlZoWlqTT5DY3sHvO6hABnowmMLmlWu39gNfYXum2NLGK0n
Toe0hHrcLn7EEzp+0BlFeHbNpsLzy4FBgiZE66IBerwGflphvgCprGXxGZ0w
053cCmgtLUaR5VxjrP/LTl8O3doSTKKWNRLOdCm6jSg1SOy79JtLyj+EJ/NQ
mCQHs6bWpBzMbyqJybENZo6ZLtXSiPzEkqGyg4zczenjqDarKbt7yO1BUfqH
unygNyZy3F7K5a7KVzDTTcBsRUmRdnzwNfBBvj8vfNSFiY4glkMkstb0Ilnj
wI8QEfd1iVPaRRPYx9gdTJ2oo1lVYMwNjNCSdZoPD2hLhi2T1fBI0wBE3qZe
i0NpAxhNbbO/b2Ac9IaI61i4MyYVkWBzerSPDUlMUHIdBlIdbOPi5ZU0AXZu
SbqPxQglKlNUlq3Ac1BmQz+pAWkA1guzNJSARQ/IWNKquG/UC8p3zRaXjtZu
7u/h6MwCFmMyMr7oMDVmFXU4oUkvg/O9WMieARVTWgftXV4dPAccMvBFDeqU
6B7FbBUfNGQNwyJ0MYtLk1fLnYZP8MFh8ovLV9kGtbc066ToIt3hGRYdvbix
yHOKPIgmJ1HAymfj2DON3oXkAFUJZg/WdFN+1jPT+wyLBaXB4qtbAF1LHhvZ
5SmxIxPbFq1+rJWPeSXUW4/8DJqc+CY/bFJUBpKb2J2IIfUdbpbPOD5ldOuh
TpEuBx5QaCXjgVh0WDJXNV04oGjMm6Ikb3ZoFiBlTMUV72mi4IoS4BOhiUbm
HGHmD5FthbVcsK35ht3ZKC8o3lhTrhQ5C8Qbh+F1CgpqTmRqOgq/u6/r+V7q
EP4Blo0FDkwzsnU5T37p0xxHhSUXKBrjF+22KPZRN1MyIozJIiXRoavzs0Od
pZrRBcijFT3R+zl0ifj9kSSfjFgc9uLmwqCngWU4PfY0T1NjQrw4TWMzfkTC
dBrAAluQuDZTV+0v23b0TlCAFzlBXcUwZjot8C0KqsEn2o5tmTYv5kJIozU6
rLsOdwUDJ1vczzUlyUyuHs03Z2ufue86PkyUh/GSitauf2fenHhFew4IS983
wcpy88VT8rjiCJjEgK4Q3AVwDltJ1Jg049gGM8+7esOWebPCoHdcaHwIreSM
2P0cHX2/E48hiXKOcfm1yttBylghX3AKg57x2LJ/aDFP6iYeQ1xGYpXmEmpH
LylyPGKvQ/SPIWUKpHiaGfpgJYqzrQquo0mug0sm4neFddCbRWUarx8zZ9f0
hGhFW/MMJcQHbBzlyIdNh4KFzgL9ae0SfTL+k60mkcZ3SlvWHcujjRyDWEFv
d3R99w16dOvmPq/UaUZWLtglnqvRZ5EO6bqVnFB77D9tvo42uMkjnSzqTaVv
6SEvNySkprvoyqM4MSbdzVGbxAqbjq/4EsSnesrRput6c9wHTFvE9cdcBvSz
xkxG9qmjKIBx7LfT0G2JgllvYWGYyyDjdGHCpMOX0MyQdQLrEu9nqDj/GaUr
2iyDR83mrakBycNhh+octD/KVbtNOUIebQQ+O+Z2msy7Z7v3PaOLmpznkpfE
+kHYFyjxnrQup844BhrMcVwnp67cSQmCoh9sf3EYrU8aP4AeQ/porYsSUtXN
u8E19sN30fKNwkVQJqB6Ink8fDXfZHcUTazL+n7HWjm6fdjjOXr38+3daMz/
zd5/oJ8/Xv3nn68/Xl3iz7c/Xvz0k/1wJJ/gpMv4U/ymnTj+E36bJb86Gr27
+NcRs9DRh5u76w/vL34a8UUnpgYfxVRCfUAdXCd2lOTxfv/25v/9f86eA1v/
D5iZcnaGCb38D6ygxrTAJVrFlgzA/0T5cQRaE6ZZFxU7dPI15sG3lMiAFgcb
cKdH//efMNqaTV7+6Y9HR0d/0Hp5TBRGfSys0IC/SPXoS7BPJiCLMB6T3XJk
zXS28VCsmmtjxuk/OO1PSrJRXq0wEEz6LV7rH5zNg+vxhW0asswu8y4HQ2OF
1bCiMursqFZSjOwPLuwwNNCd+Znfiil8kxT2YGXZb7/5cX66fXycnzCXHP13
bC+s+8M9T4a7PDCe7e33B/apojiyjPhVq4LH+WfjocTRtmjsLdj5Sr76HvWS
vZI38qlGQigum1RkttsfXcP7C1rVe06wkDoiIiCKOaiylptnkbzsyO1cqqvW
7rGnIj58S29V8tqGaO2SbSH1SkmO1Bh+DadTtaH/e0oNS9OqUIkHjkJZYdX9
yMerVS/1CxK9k6zFFtMAJAmshp1UPRcrfq9lucvWsph5bjgrngIbQyJX4pPZ
NyWwJlgztKt6eMoYzNXImvdN4Ksj3qrujmEXhvfNqCoSFbr9z59mvOQVJjxp
SaXqvVbGhHmyq35K1EjNZ8yCGkmMqp5yZehQdhIGGjYNO3qR65ErRovxBouQ
yEI0Gx7jQKyn+0qfPNP87wIlE0U1YHbyvnDqi9bN7Ncesb8t3oIGyZNgw0Ae
/lhKhST1jO+Z9coDhToa8MU/cQCxs2qZMZnFG9JsWBWsSYa7nKsSBWzbUchJ
yJzMvgIdolTpqwQPcp4OVIpZVvnnQM6LJKBDvhh2wscMXoy6gu2N1RYuc9i8
6eb5IhUE1CVMB6eEENRxvvSyadEXYMEnsGmAk9Qa7u678TiPlp1512lETTPt
3lKJ0l340oFSHh0ue7l2g6WT44GAow2eUjHzW37xEiLfi41f+bi4Ji4NznEc
vWHJgk7wW+T75Sw7ccwa90AtS3NiMAu5Ru5B72D/SafZjuwyM2HBj+q7V89U
vJsWWLIGqy/thRUbmkZEL4buB/0n5soza9SiYbGOgSaiLw74Jrsl6uWaA5Py
g56r0HJ44ubISVkxo/gTJY9ysh0LKVYwyOc2umhmywIjV5uGif0nHQ0Xbv+4
0aEre9XZhasVGXl3WQ8DoK4pxomnQO8VXQCiLaOjWKJRTFcx83/An0Z8MMnK
WmLKXIkCROwSszvTVOSYeuq8qMKprApPK/0P1QjCFn8mUh8cDfPwRTOIRjj5
eR6Cmo4ykXp02FgC5tX0oxOFFd/IV2weI6gkauFyTLk+ih+D6SQcSbR3SccD
7GOgKuPo6CKWUlClB6ZcJLIH/WY9GXSaqSvTSjTM6CaXT8WMhwYu9Kqp8BRO
dBZ6jwnJxm5yrH8M6gjLJWy0kOegA4sPmhzuVu3pA1WqUGB0jJJn688KS+MW
yGdj9QfDpRhyh0sMBme/WpXDb0x2eyn9ObobkiIGyzq4r9n8NP8FUjmLOH57
U+QOmCmyDPnaaIU4mIXjOLlfvZJaApTvtBjZYt/4uvRZOd0vxJSFmKCP10hl
4SV6SSU+Q6BdpuRzwbwMZWnm9BkwChfFF0vB1EFQ5M80P5YcECDtxJ0V0roY
zhnAWBQTOUcgtwaL4aYRp7ETxHS23V7tCJI/ZzJesCdLS521XqpnKiCPrBcL
GSmUixFb/nOOpLAiIkFdPSZYGnAIoICzp0/f6SMDWY4KA66jruacYrENEj3v
ERe+fbB/myfopW3QXQoDIp+A58+yTPgAS/QRyam8HLm6IDIg6AZfPo/ajKsb
Io0rVUIoyUFyuESnxU+9ntjX9KPqxkPmcP5fn792M9SraVGZxIoS2tRkVhfQ
rIAjbib3DYWTgQgobRqDtqSEubxzuMhn58DRdhwXcZfsSPB1VsMKu+wJbtgt
mKopBzd7Fyu7cHGcwEfviNQVMTS43GcmRe2bCpEvjv9883N7YobHaXaRLYv7
5QQVWvgTRdfzNWcRLlRNxK/HAi1Y5LQoSwpFDxDHhUY3YfvjdJv9vUWXC3kM
9MG1IKPwYZELJTnL7zRP28AEJP4m70uFxgIDmqxzzSV7L1awnYIekIY8URZp
EM7RS8exsuEqKTYZ0+wuk5MUMUjmSMeFz373zJO0o1viQqqqa1oLXg2boXw4
j59rUcWy0ZxQcNLFlKG671RP73EZp3w2PQ2nfwRiQ9nTR44Yt4RKyJjkFS0+
r3TpOVDQ5OCSW2C8q7rqlsYn/EnJp7mSiHMgEwI5fy5GkpDHvn1j/vtYKYbZ
aWUJ+s4voiu9dzWFYqm1G1T0KffQasg4ERQLqrPlpgIDaN5yKQvYxTlVnC4s
OD8Pc8ZjkWKX1uwtjYZgWYImPjtyyLMR8Xm1ykY4qm5TSvIwrEc1jBxsRcI0
UUiHRPraaEv+SNC5YRAcEx+rrdbJhrfAIohDRMqGvW2EaUm6H66JwgK2FgpM
SOqq2O3bED5zDYiYcuIbVFHAAVWwIeCZURoUF1a5uh184iv8CQz90gIdqjZR
OhqrIqEThTRqI8IoiWzNqN2rBbUR+soMLPzKGOu4Fx9RjU1SvuewvofQH5zO
R9RgpRm4PU5y1zOQVfZvWU+IzSE+NQ5T4xmSuo1aU9tRTHJMnidi1L11is+f
Phkd/cgRLXyiK+xLmR/2RI9BzmB2PZfWYKCZq8PGkj9Cj1xedcvuQ9r2Kr8H
EYQBSAo/Wi7F0u0Dy6JKcmCzDznLPubRCxBfM23UVx2n6xwnmaxcFBxIvyGT
swQzlGxaTBDSKhSqdmk1OEJ5sqCb4GYxbBYiKFq/IPKTFqT1OCkprng+VXon
7L5iQ8KWMU44rNMZcfHzpl7jSFZUM3CoHJpKPZEr9UQOlW+bS7SNLM3XT5Of
cPj2YSnrUK85i08E8hidXvgiWBFADqwAPiSrcskxt9pSUC41L4RLOvN+DJV1
H6xeGQHX2sw5XZr9s9G+xqRX5j5UV+XStbSiyVR+s/9TX5AZXCQXhhbRe1Ni
4I7gtJtuNEB7c7OBDx5gfDXkfkH2MZd0W0uJT5QGZX5tXBrx6LwlB48FIKU0
B189iwJLakBFj5Kh5MHjB2OQTVFVnLMmAbHA8ut0N5QmQ+yJ6+PhE1hTzZ+a
yKdO2Ca921RVKF2hG8z9tr7YwzL79ZuOPzmr899SH3d0hbUukuLQDSjo0p9H
XYbjaNugm9FNjUuhDEhKeu2viIQk5XACPyhztg/0ZDhurU76jiyGMjxgHUma
PACH4ANu5vc+fWZKcMtJiH2jdTB4ki2KUM6VI7UWDHlzdPTf4X9Hg186QiTP
6yrrbZA5Tzo8cTyOCJ29nLB1Au8VB/irwN/9DY16kMGb1RhXXAq+2+DMTLr4
7eHdkNFhRjZxUqw1QydA3kphAn47gq/qLY31nNla+KvgUP/tlM/hiHmzRqf8
0T+j1A89MAmOvL+49VCeroZWykqItjm5tdEnqZuiFQ7cEqxrf+FG8CZ4ctSV
JziIOj/ISeC9D6xUARsK+QoJji6m1TiXQabQSb8Fzp59m11rYWoD//iJ9f5v
4VKzX0JT6wDfEj0Hlg7qYf8WR0kl2jFnaH9LpQIMBIZJm/ADP4sTORAYPqEZ
2ojRFFaLxVywoROLuzh4cHrBd6DeYtbEfeBwEz8HchMX7JF2TjeYYIDnsEc/
Vt76uv2UMo3LfAyocqdLZ0clDoVHGyRJnHK8keng5MP4jeNH3jk5yQTLlv0W
bGbqCXt9Ev2m+6BLZNB52FSQHeQhdSCpqOj1GOc4G+JXz05fav11QTp1zHUY
OFj3uE5PT4koCWxiUi8osFs3au9IuBdRozPPJoAA3v6F4YffX+AP3+Cv9Kbc
wE+/FZTi7Gnyw8vv8GX3ZMIx1Ua8OHHf119lVK6uSaaapZz73VmNqD0VHKDB
+gyOIlaCr2xVrIywIU8sKoy0qt4wyF32Z283RDiYCpgsJCepJE+fx6NBUkgK
EOA1KhcGdTZjDaQjyAUXVTtGYc3PygIiyjpfJ1Twgpgnv6r+6aI/ioHd0hcz
QN6OQN5S6deeDn0rtelt2MzriRD62fnryRTo7yDfPdZ8Nc66xDQDis0Nvr+T
7ONYmclS9GYBpVN3zMG36V4eOQmbTXjkoaul76YQX7x9ceAVkStDsiWtmvyg
mmMe8+EnycdJ9q5o/MY/CEVEmHKPBbJELrtDGUY94vhHvdZb+I6KVvxZBSKM
uDXhU1Tqj6J0wejw5zJTlQRcsV05BAIHH4hZZ/Fr9GsORVM+YkXbxEEeP7oa
ITcaARPJRbWVq7ygWBqOIfLHZ1NEsKIM6fK4DIsO/3KiS42bxxEoIW7KmaPH
Zyfmpqg6RYujtfsTs/WIUIxLUlQbHZTPSd5xxl4wqlrCcTcYdAdGQWG2noyM
7keO8xGRnL3AHfGaMENrbbUU/WP0JHO8LjcGcgnP+MQBmHaS3VFI5Q7ZOgqf
IikM0dmGji00cAaKUyOUSdc7vYHl+RgvpQ6oiaW7kiR0NJw5jZhKutmWYyMV
PZkCR5a3XKlrgKhp6s4l1yBEbxeH7PfL5xlSYtuzFbxNxinQEUU6gaZhVWDo
tdfNYxYNG2RDpf5jl0um+J3wsIUzsg+qystdWxAwjlak9gAoNO+DqlKkLMWZ
5Q5s8e7tjfn0HJTGHoqG1HPSkbrQsq9HEsBB8yYkaTA+mwkWPQI78PNIwWmG
QQ80wQTxMPA8b/CPEQmBjGqeySH3W7k/wbBESxtntzewV3Gd5niKpYEERPSd
s1wkKEsiaheA5CrDjjKZKwyAoiDqoT8Ie4npCVSOcCfZgrwvfHn8HLV8dZEX
DUYh2Umugds4Ca79TtJiCkpMZcSVi3++kcYRY1ejngCzGdYr82u1tYyuhyej
dRbqn4NhEKzk3S0DyPm5yInz2ISW5UgjsObpsPSOjm4FRkYpUqug0jxLw069
kGvg+IxcWufgx0JycVqH7bNEvKPK081+Uwgr505ui6fOm3tM7+cKGsxfoFDO
ihiBA1CibcWSLHWOlYy6I7Q5jzzs0cQWCZSKRiE5ICiFuYSDQ/1bQ5+voyMW
GZ9l1lnkTjY+Vdh7zFyJQksTIdZ5Z9VFumQB0mJvEUrgqHz2k5TE5lYj1EXN
KfESYR/ItZfdsjJ6Kw6vmK3vKpCPjn6u6Ox6l8mAbIphYPWwmmlzTMjI48zg
dk72QgwiB9iTmynWSE9Dhmt57cNuCP+taKtcMQc7nxd8eCma1MX/2HRnTx+d
zxdni/c7cTl7bclCaYdXQ6U2vSVpplCCPzeYEXhieWOGAcv9ClJPJgU9mW+k
O+AUaK5M5aQ4wkztZR2i4u5BN+k3CntpADd2Qh7ZwjmlEbbjIGiPaF0luhIU
CnhXb9Th709oCLpz6HaI1gdb/EW5Kj0T3MP27Kn3fDccK7dU1Qki8/ukW0kO
i2qTynMb0X865otJjfVw/rYrSv0m3Y8qG3h+qK24XR1URzKtVjHVqo6lYb1s
O+L9vWctiqJLX0vT6PKFhE0D8JIWAztrTomRN9IK9lYK4VUsBI9dzSOtoUI7
SkLMAlTC9UIadsbCuAgKOEBXkQxpfAch4ZwAPb4kNEfhT0d39LA2mtYugVHL
h7jwfGBZM6BKq/VsM0xhwsCcoEGwQOMyVXz0XLAAH3UIxSkWTbfctKS+S6qt
RvvRUhOBTljrdlN7cpHnjLVsTtppni/7+BxXd49BxoVzey/Czw0gsEVVnfxW
VL1tWoiMUTLKOzywTkZWVXY3kwJpoKPKtSZAk+vfZx12a21V12uGwHkUXIwq
3JVvkvNzPJBF7aYHzkxof0I4NjmK4bT1g+BmwLGHSpI66KS4rHznAkM1IoFQ
mtAFIzu5tgoDr56dHAKe26stk4RTYkK4/dt9Jkkagzw5jEK65EvT7Q6yEWY5
uES5L+kt4U2xXk1PtleFOOZyibVgIyDgigdOYJs1qfZ4IoaNx3iXdAysLdJ4
gyLng5JTgJFwfHlCC0p6Hvh0FY/CTwFCq3ACDU6v1s5uQs0/XP0EwWVKZluk
Zkfte5osJhaG+7orBAoUw5YTQdyx+CBlTuzWkg+fia82QgUnD4Fs27OnT/8v
9a2UoGL27VTkrOQwykQp4frdXtUx1YyT/7dNTA93TJLjxc6XCJaSWQXNIUYQ
0YQJPCx5LrhfhWdTCwisagdUv7+QNzEmpXl4Q3yuLKrPZoL2OAi+bnfL8Hep
FrVcM10g3XufSzBxkaOrPbBIvyvrLbeHpvMIgZFtqauicn44LKqRltklycaA
tCmtDfMEqBcH95tAJabI7ysUtWTTcckOJUq1CLnD+SpaKku1B2ItpoI9p88A
HeLMDnYJqQs0002Djr+R+wMsC/nniHEEzM0UD4gBKRH/uQqcIAI/E2qfAg9Q
6I7wCol8YC2zjjPj1Xf2k2GLEV6CVIYwkol7a5ptTo0vLrjxhSSRf3UzDGb5
Bl1nufncl+NiTcD8X7K34omrzM989vT0zMbi+kvRmmYg6rHvC1dTroM48RX5
xff2YNAONkswzwRL/hDTdO68cZTRTPonMUaMqbUx+VP8jug1iO1++ntkx6bP
YOhbpJL76PIa1ohcyfliVVR58A91C6aKohNqgfjegGh9ws8thcYN9kl4PjN7
fmO9RkzJTp79j+4E++pxWy1f/b/rFST6q4hxeQ8GhQwXrS/Q+1M4qLjG5/01
2opEJEn8TfkDZvSHeWT92LlV+RmGWfr17s5jB0v+Hp1nCT0nJ52s7MX+yiRr
xCJL5P3VWze8VXU4cS8IEkHUVVCjux44Cn0m/p4pPKtXTakt5DmMruKDuJzX
leF7jYevZuzuxm6FL1wdKJpiTFTF7Q7I3CnDPXqGY1ckxyKUzyeH9/Lg4eUb
bFaDwnuvadXvns7+K9jr6PSJs+AqhD5G76sWKnEDWdhGFbmU9vNJO6Yxu2iT
5pQBU0VPGaY175wvwz3uFJnEDNFCumAytcTWNb2aYgxosOCUWhlzRLXc3pDs
0n489snBMmyWLrF/ZYqJn47YAzFHm3sv/mJBTN7tRHd7APLS4tqxtV+vHW+K
60CZi1ahnpJ7RChO2VEfKIuwD5PVsE0/2P+P6gwcitMnZsL3FRNM1LPR3KA0
Yw4XEPLEQAdfx4OIK0gP01Z0AaJpkVIgn2DXrih0D0NF2hNhGgjiRCETrDFj
kEBABNzJg0gym+XWEwKiGssqCu6NiYoVIZqj1iDmu9sim6WeA5lPQ6a9PxBJ
JyfiMBm2Co45POg8TCKBpo4/yUZWz5V3QUvG/L4bKjURtaMqB2625vNAAznp
vigO8n3qcY+SA0Kw+LBakw4+YnV6lIYOL4QKB8Nq/XRMIUiN/EourGSX7kUQ
RBHWsBazQIthkC9d064NK0zho8X15BLeuTTAyubw9I6xFrHmoHf0VlUc7j1o
dcRKK2AvMwXowlelyD7DL1KR8rXOwYQmhSwwarRXOeq+lkSbeho55cQM4xc6
v9T+yiyGSnEIpbcIYtVJWGpgPSpCevNMNU4SA5P0HhCL1Rai0oYhQ04ZmbRu
g2KVeQut5ZBQnygMKWAI9l7LG9O/xZSXoI3W63VOmPoasWOW3YDyxGpsmhRj
3YzfLjF7tMIWC+T5TGo7Gxc8qmo4C+HoUY9QyBkRpcPCxHfsi5tnAYJZcxbz
QxfhQET+3cW/6kRVikNgnu+9vBmd2/onRPl4CKYnVumfntNFL/YT874uBcdL
NhfKE9+Fe+qatB2zroVzPpbfwVvbd5X7pswOLfP3Lx5fTJLVEnG8Y3oOXr4m
PVCqP/FUmQfU49jiyVzhLkQhTJoyTqiimgC9tK1HHBnTuVtMDYlVAffcGekR
Yaq9vbUb7tcdoKC9Wa19JtXi5GOmHknsizOXtsrANpBu/SCPjRfuckS4iQB6
zE2OWKmNwUDrgaj9+k32jpBjCTMhl3Ssj6l1N6TlFNLMWQ+H7GUujRWlX3vl
cPPYASlpsAbVXJoRoRG2yGdhoNh1oGgc9/UAkn7lsZttVoM04AuSEdntIXZs
FFTRw2y4+rEaDWniw6bhcqX7DSXMqd8zLcn23aclpWoPUW7FRbRtT+3QdaO1
mxfc1JJpkauLffyUa+6xhQdhxjJKE+NMcuSe06hm4kiIYLCt9j4R/Jbo8CIW
6/iq4AmTFESqMFThvVihomIHqT6RDwl44lbgh73vIA7ddmEdGwIJwyf7wjlU
y52inghRukY4msc1XBsujaUHwJqH+/cJdttwGqcTQMP5TD/g+0JJso3VB+LQ
8oUf7EvR1sYLbq4xubn9S8Z9cPOSTi2Bfu2loHjffT+5rNcPWsaW7iBpXsOv
vZqd36RapSeVrGTij5rJZKEC13eF0gSmHkrgJXyBkz1Vz+E4sCR45mm+H+Pe
NOSzETUCO0DzuJ3r+GwNDZlDUx/PJfADYoxaa6y4GH8UCH8axQsu1Md3mLJJ
KahPTwzVAx8wx9aRmGEA10YtSS8iy2auFcepP6wHyDIHSqKyeCDGLXVxpWkx
S6MTWEBtP96/TlqzXuZ+c1U77WfnctZjX991+Isvn8e7uR6ac5s31V4BnF13
khxSOEiaYiGS4eyplSpIqohl/KLBM5j1MVA65/d4/tz2yOElFHpaKh/zmmUl
e+W2FGRivcGjJ0fmjCBvzEt9Z9a9/Y5VWFkWCp+5uAu1Y57W6ccA8dtHK2/V
0jKRilKnGoTYyaXhd8boxr4azyWK2Z8tY6rpnE7himhdJoEoBr7bQMTQJO9f
IcEPWYIohf3KYq6yjo2LBQgNv7jcAEMu1f1GtffIW/7LN//hyaZtnkyL6kmo
HtCCKuHXBPB2/e7qzZvvgeM/O/9H+R3FH968+fkjXfPxCf4eLGZY5t9Bkzr+
h8k/YLcRfLzHo+OL5yd/GI2zcoZp4vU8/LcpjXWcDvLmzYaJ5vjs/AT+N85G
/6Ua/aO8cDlMhG5qs+9eWoK0LwaQQs6k9nsscyrEPG/DZXNa/rPrai51tgIL
SyqUKDCR8n09pobdENxtdF5tzyfPZ4tiUhWz7eTZ/XkxefHw5d9GyofpY/xS
rDuxuTfMn9zjRQrNziylHXiWQ1L46OjPxYMo5S2DBUqXgUgt1E22D9TCHDR8
manLjB/6NuQDxfw+ukD5+ebZpbjgUnrAzRFrAQcpCJlbcO3i8yu5Ia2ozF87
iGa9WX7Q0dEHip6WpdbGm1dHkqjx7Pcef9JkOU9UAzNKosJ2GIqYkbFx7YMH
RTWWbCPto9y7rjl+/v0KEMRoe/38ua8Suzp9JRCz+Mfvzl+8cn98jqfC7WIU
R62qMZutL/dCFAcq8rsarYSBguyY/avppdXctn4A3eBuGaEh5rUYXNonmpLG
3TnC529oEUSn5EOj1dCcCuYVKuKqNHfdcYricOW45c/JwUuKyZAuyu6x32sz
vR3wCjx78eq7xCtwrlATVOx2NiLgE7LC1HyZ1l1Xryzysj+CwcMzqQ0vi5uR
sRlxQIW2QqYkB7vVxAzBMGTNVycrPLyBVtsVig0p3ba0HQ/J+asvIDsKq4Jk
9GXVXQ4ETUF3Fy0NvULobk9SpzRjWs3O37kYwfE26AhbXmxjnBw1Ball3+3A
thmziasUv2J6JmnGfyKRdKgCVUpcKNnB1IGu7mu5nF2zLvOd+BhjSUnqRO07
fTSMKZnX+23qI+69W/Lw7vYKCkQBT6MWlPQRWmknxY2/8d2qh6jX/Y5SN2Ln
9XRxBFaAvzGXFTm7B4MZJ8xcBTNkhqdUabWlruwgYtxjsKx1EoXShBvv2ORz
lhIUtUdidxaTGGkYukfepPNrp4jDJPa4hUzPewhWVfP/DuUHSiFOdCqkJTe/
S+/i5UbQXvY8R38Ousi0yUVI+ig/SqqELzZcKZIJgjYZfQGo8VCJqVR2DO7P
FXu1oK6TCYzRNiwRyXUtZkzpy8h/7yS8A1gawH0FrzD2i0yHopUaXJLurezp
jz2WVNZIpoAByzM7I7H2jZxS9r00V0hRxWOT4egNIlalQVvNWdXeDGPL0pOj
i21N0uzARZnfO3SfBnWHzurYdDjNCMMPm+dJAC1GGnYdPLoRkiSVpbHsqfKV
1q9pvghsVfRxHJ7KWzj4t8jLNoycn1reszXQIY8kZ64ILIz2segji5invD8H
FhXrFAffqep7SlhfQyjefeJNhbiPfhse2R19sSHsBF+VQgzTi4y/owOzh8uE
rxAz2CZvyeXrVB9jt9mLs6fZ8bvHhMeJhBuFO5irVhZFhcnAd8s5ufEaqfaP
f84ZU5xL8oQw+z2HI6BRWRCEldyPvGVU1fovXdmbjLiNTa+wsygYGnAa/nw1
J48TDtcMvHgXB2BCxoy/KnDrE2uu1l8tJ3Ko45sqglFvxQkmxLWoxmxOHT96
XVLIT0I6rVU/WPuXnbXY00DmQ43BaTl/BolKr8Edc6f9VPnBJuhZCtTIO5V6
AS5G1UPqUbvCsCutylkNkxPfbzswcd5qGE0qgFWra4hgzf0TwVFoneyPR58k
3EojKFgzZ0j76BO6+CWv0kIvkrGE5pc3osXTJkZ09EePhckJRBxZNJtV0qIu
JtWbQSKmd99IGi4BiWaw91qLdykFs0fMKY0D7nsF+MDM7Y2YJUmAg9CqHu11
rw15vsYeFs277xGnsAUl1nA6sNtPGn9zzcRbNsSl71QMfrnYtCpULh4W4y+F
j3FRToosyoUm/HTpQVEZOjVupSppTuzFb7pEJ21G2TtvKcFjB4MvF9hrrZg6
gxl67eDnE0KIuGCkHlxPLk+L0C0meAZfuklXtpN1+1mR6mMHxpisu1Jn+Dd9
HNXbPZrXXoTkT6fKb66ZdyfpC8Gc6lVUaoi7prUJQHBNl4LIuUX43W6Zcu/b
WIW1X74b9Vm1ASL8OcHBIay8QDbl3CY3ljiqwavSOzJXRVQnI2ivETVbnr9g
2IESvMwBy80xlKNK3NuYeRxe9GbOLK+rnU5FEodj4cjUhrJHOPBG1vcgUgDj
EVkSUGqP0z183al7i0FbVxah3Ss8wlX/lHxc218748oCfah3cW93wTPfaSu0
oplPqAtjSNgkjh1RyIt5Ak7hlpvMQJxA1CFtERFb9mJbRE4sIF9HU+cE8+n7
LLvW4uTFISQvafruAPf1+PZoKnamEJHwO32FxQEcgj80V/n1eGs5CzEnlWY+
NO2LvcwzHrcmJCfiF1gpY3qmPQymeYnAL618JC1BsIYTY6MlbcncapvQSK96
kmy71VUMu4wIA6+ErREs74iQQ55g/8GR86omsaVYXzgPfck2Vvx84tlcbAuv
YdLVhM9tC4nVpboiqvmllFG7ZO29wi2gxcMYCeFG2c21ZzeOeaCbNiRk5F6h
5cJa247DfR1urq99fX/Cw3zQURBNY5rtHJNRhwgofkqL7sQUNMigvIso+qoB
xTJBXJFbi2WfMzBXBBRgTky83ymyxgEl5VVbZj8/TwL8zxXYR4SQ+54btwf8
Tb6nJUbA8TomlDfmIPx4qufPXuFUWvoteBfC3YYarQjIQVevuR+OtuG5pBSQ
hB/IQU6tGNF8Juj6owiXMH/a+7uLt9b7R//qq2mtiJoJmeKlmniiuCRY0YFr
Whb03Pdj6Ap7DJolWYaIfFjdU5oU+is40E8tth9gY+s+S4wKBimYrD1Z9vmQ
zCHv1JAU7YvIeFoGrJbISPgL6aQeE4KZaFJXjkMzD+OuoL+4tp7ONPlA6hfY
LO8vbvep4vWLF+hBFleXomHZWpJb5h3BMMEgvxIeCgdg/XMSkAXfwUbfHNOJ
d6+hK7hEPt65E1LEJbGhpsBWCHvYXLBJHN2VN1fYoxIDp6dppi5rllgL0k5A
M61EMuLL0DQVTKeGU6s+itC8eH/Tz6Qgc68U7MxyYNPiRx36UxarTebCINkT
1SWMh1UAvw/MSIp5PelfE+QL6aC3yr+wEWdMdXA5KZeV0n7VVHY+LoluuWE+
gyV8EdH60Gey47c/X5+k/MhKu5NrZzwyaRFB/CgmO0vuBYWdl6FcM9jDFxYi
xCtMTOcUGNcANT3hJOWwI9Bq/I51RzK0bJmXetpyLqzWOYkdA1+m8nNtJ87z
aEN44pbERgQkTL2CxrXhLLTKDJWSQP2Xdbd4nHknX0dOxMJyb5AlWqDeUaZR
z1zPEKeh8XNyjFm3EkJ2a6lMd95nUb7wRvzAFPelz9Nn3UEpgYwfX5CCi3a4
Is7kwhX1mSPrZ9Q2xUIeuAVMpha6pqUcuq50gIwEWfCtz/0Wh4cmt7KOq4mV
isv+NUNTciSmS8d78iLPaXaHdkMT2JZkpmTl4rcgAlLtDTcj7hDpqOBIdhqq
sCg6X3zBMSQrMKLXEJ2y4kkmr2hcPSFEePSn8V4uMvr5KNrgKNC9ZCdsFpty
7PNxFUOQxTTRAzEr0yD9804KfOhtH9QrrPvQVsBwYzJo8hxB1ceEbHrdeezt
uEdk1vJtwzCLVHJNcLnSNUNzuDjBlmtK1puOgUsOL5O15wgVyO3j4npwjey0
5uY0dBzHlN0SVaSTHr1YtrH+W3BRIgo+OqTUvFKIDBK8DH1U4P5z8gmDBAGC
YCLgwdJRSPzoUOTEJEhyWp45gA8+3V7BBbBmtvox8AaXMeWcZiqmNatvr6oW
bCzTDRY9Rts6Tuuf2HDjJiNIqn3BqrHFwjB0EkpUXAN2yia6WXy07HDCYC2q
o8n3i1b7PbDb8L7GNN7Bj9opcwiMNTW8GZZiKKamlt0+wNUjWUg7HLSUhR1J
/RajBfis2ZRyEF2t1RuPLlRtn8Y+Y/aNRpzO1H72N11PqQqiNwfx0JZaptJI
lLTOF+K+S8nhfWU8SSa0nB5R1oAYWJNKWFY3mNkRVYy0vTzVBjOTxGLAMGej
IhIiIQuW3BOQ6JFbaWFNzXQDa680Lt/zMnOAW8BPJAhGH6F4xC6+CxKhmB9M
yIGiHORtW88KTVVHqmc/faOmI8Gw0ml+RqsJvcXYi456SeRdjn4BVbN0rMQo
00YUanZic9ZQKfL6QPnbjOQDdapjGiFooIiPbxHFwMljAftZDC1BrNYIC0P+
c4mCZfmiI7A8zNupeTlILdRaZGi6PJ0NE0Ae/9B470QHFtdx9z4Tozndj9VO
V6hwl34mKSK7s+iyS4bttJEiTsqAP9gYOqdeRdTyQRYEB2U5nTFqSCxPxOye
Kp1WA+KKC8W4dMpMSjjCs3MmuvSgha+QIkMTJx4Go0qpMOprVqeJ5cA7wncj
6zbV1RaPnyM3DeNuWF/ITlPzlBz9mTqentxdYZ0FyEMHG5uomgLPoYg5Z5ZT
atWEPF6tNScY58QwitPFvNLjXDZF2nEZD76ZFnDjDRbuiEnQu+PYT0CiMVXt
+qzBsyLkYTGgJTmAvFxovlDNVgSn5SoFQTiEyyKFs2JRjXig1iAXyDWUTrTG
5wcUKWTNlxC+wPLZD8pJXcZ/ZQ+iMSn0aHSMSbkOtv3Kd84WhQ1bXmTQQg8p
u93TLJFWx4NJoAYcymqTjS8DEKqt+BZ4EEEPPCg+jQ6ilqbi1h5AYkD0RmlF
ATf1UfI/iaHqo0fHn/CZnq7krPHvmaWKR4A17qF0eruBrTdKyCcjNnh0P55Z
r2SlvVyb6WLuMtUNYtHkP2DddXX/D+Lbef30+fO0lPREgVoGptDM1zRjkU6c
LqleeMqnOAeIWckiwho7LhnusH3vOM17hm+VOfIpc38dH6iUpRVSpqb3nmmz
pahp94t1Ve/lbAHfKeX4/cX1icAYD9Xbsq/XJ9HnnWAPl/LYyXhWRYhZi8b1
wiGyHLukUPK2vEcytHCSpMIQzENerjQbg6dvBzo5wdOgRHaGkWE4IY0HiEFy
3wRdDvmFJSeKRRmeXHTkqMqAMKV5RIvwt7YVnujKUHRPo29Hh7rGaBcInO4/
Zj9e3P543HclELl+6wWZdLT5HHYn1ryhaN2ylmIcx1pEQqxZd5ucToPxqluq
OME5j/549Mc/Zhe92lTqXLMA+1mMuj/ueTlwafzdS9e3WtfYDrIf+DR+4U7r
z538Xno3L/kTevSvzldLpz87oXX1zuZIZqCc4zBhC6b3GeHBXPpdHsA/J9xt
AfseM5kkq02Vi36cx3u4I4I5LRiuTs9cyk8YKYLjNvWg4YX7QcAeU5VQguWx
ZBDrb5ifWaGEOsJJ+VcD1LX/66XXolHRV2N8gs5Bh0LPz2M2PGs5uGjR4nJC
AALaIqZk64zlPEim6rnxbMTFQ0XR4WoYErrKiXG91E3OzJDDexnSJ6O6FUex
IkJ1L7GbN3wh69BY/gg2OVLpjJ8sOAWQN51U4UU6ib7Evnp4qj3rpdxC6tW5
Gl+1nSjdWEhq8ihaJx4HylWqH9Ci7WJVC1HP6Ry7kzpnlyZlJrCP6jYg4l0X
YRYGkrsYqWOuGq47YHkhfILU8uM06R419g6QhFgcHCKfMM7fu1CqLh1MVco1
fw6LHnNqB846K52XuXksTdfZTv4t8FA9i4OTX+HMQJiqjMQLh2ts1A7jjuyb
Dh1qerwEPCiBIqrjY6UK9NIx9smpGOIALUKL52LYICBOJxfxOleFezPYDv2f
XJ9xDiyzLLW3SXiDEszRHi/sSyL9i6ozOm4R08rRxg0OeYv5LQ0VBSN7xJ0K
sJx56aXhqz9O0vkKV78Z7Y3YBYXprS+e6mZPamI6pHJF0ZEKAdzQngDuYFVb
kmvvz8eDt3u2YSGZs2lqBnMQexPExlhKbwi9tBO/TqqwEURkb3ziFJHMOL6t
Sjc5UWor7GPyTFYyVP8hZ6GbJT2ncpfkGw6p9ZNrg9021WKu3r/9+K83d8fw
oMeDKsO+NvPvoMfIrIOqDIlKS3ezjahuk0hkpPq0uxK6iRO6JguJsPM2baew
WAYCQz58ssjwhavzLg75fzSpfz9NynLPOpdrQucuxSbRb5KCWl9X3OUiKfdm
e0ZfO/bJwaVLDCpJIWh7nTcwTd38eYlQT8KhLlluipW89IrQDBF3K2LGlD0X
LOFCoQBTAI84Qa+Mg3dhIpWOb+Z5bhdRQFR0su9B/dnUR0gUF2QKCCYrHmIL
HbQWO3BfZeeobom6uXeFlnamAFD/DFQ8dXC5scOKpDU5F9NW+/zgExAv5qON
JAmreEKiqt8UqwdDZe8BGSy+LC36W3KWyo49TtTD+QGOAWMTcB7FyhLhWT/R
7tWHhi+0aJJIOe29HBsQRC0/KR2xFhaFpWpyYBMfwXHEQznBp4U8m9SwARyu
34fc8rRJK7L02P1rIfnDfX+IAy6wWAQDA3W6ar8SLavlmZ1q0oQJ5gXIZSuA
PG1k000JnNq6ziWZnrwAFRHu5m1+d62FltVa/1UMC3ps7VUAxj2UU5+0rOL3
vJe0StoC9QiQTpMzooIyYZbkg6BQoLXKYkbXUT+tYFGL8AXm3LCLjprsCQIU
WU5WuafvgkGkOUeQQCq58Yz3B3lAMtbUVYXhrHYRMC7pAZZyZXWCMT81mVS+
G8uf8p4biu+JwEwD9yEcuiYyP82UXAFtkeeOC44Mw79oPw/cTa9bAfcBSBxh
nbRGP/A+W59T7pE6MIfoK5LUrn3O5pedKGCmRI4NpG04QdylCnFh6Fuu7OH+
BVxRNQxthMIOpgQFZ7Vi9Xy2JOMudqbj8rJ1cCdN9iFTuhESA+ZHoB7UUGkt
H5KDxPQSVmFx6oPHKX1bO0o8RpeG4aosqH6aWzGkyUbUXLyo1ONfkaVhnVhi
6m4CXnXDlPj7QiTWuzoAKcvXOvigqS2StV5xTyDJgZOn6NtikhksYU7FCXPx
aroCUos4uR69/AMpxLJLeW/myvBd/vZMlaFcetPA2HKYbzBTEFjx1eXPHz9c
vJO6VZ8n+OuvH26u3uMfr9//GVl10e+3ofNRVzpRF/BGLm7GVCruW0DxG4kU
2OsiqIYv/yfKODol7TjDReS6IZRzj7ctxIpl37oQASxsAb5NntZ2KNptOq1v
VBXdUHKSNAdMITgfZ9+hOg3z4e/XW8X/ePHdszMpBc4GNCBGqQKRlN8HbNYS
q+JR4Zst65oTGIC21VjcFr73lC7c5KnwxelunYvzW6mWU+LhoczgqeKe86Ys
uIo+7QKXtiuaSXIQ3zJ1teQYo4ba5S0v63LeSjYWCKFANXDxSiRerHXCXgji
hIcBBMc2URzs119vPr2/usSEX9TILMWIxS5pfHxx24DtKKaMNaiRKFqIsqDB
rnYaXYgzp30xsK6PmwjfL7sJh+07dMNaMY+ARye14n2N3PVKqbKHTVkp7H6h
cJGk19hh2nL4siP4L7eh8uAPlA8XKCOC+jns+nUqPchsWpqsWYuHEAeEYqRg
1EklEdlu+KB8Tx5tG+LquqRlt0Ww5TCsDR2ig1UWGvbkQrLXVDRyFMaMjlsB
p/uKuqsFZhyxUoOc+Oum6OEU0erJB8r3NNslDs14t2TeswjjJgj74Th8zuz8
c7UkYWA+lJoqKVCPw8JhqljBQ2eIUMUPcUx2rA/0VBv1CNg2b5dCBJRp0N5v
qBCZmLLU8ehDTCzmljV783cT5AXpotRqx6Bchs7MJVohkW2BNQQOgWrNjzUj
uCEJIqWmpCPC8fQ2Z55IClSTjb6pYltcq0dCFdHApcZRxXDaBadOU9GF1YFg
Njguw4orL2QI6ZB7w61X9xp3iXrGaV+4zyELxHqxx6i8lDiJcmKfZB+cUWmf
O0WKlYi6exdciuiZ7iB5W2ejvOyYap9ge4C8XerAVHReuDazEeKyjhF0+OiI
fFkjdnit5ILSc2G8VtaXyMO9fzpjhXzRJuuroCPHtrUOWpBExLZ2s6dqhRaP
Sd8zB2C4f22kd/p2d/ngEskJxBG1iChSsVEmEOOHjE/kqA9AaOTBp9OU+xD1
O20pK8tKehlR1XFV7jRaQV1Z93KW+r0Fmc20LiXRqf/S/oSTLB3SAsav86Lr
fQCdYDVeuG8xjBdLsKVW6e4qM2RNl5smtvWSGFGvip44ojRWoIPApgpo2rP9
rI2kRHFhj52mgbN0JJbYFyB9mnfc3myinJkYLqzNjhH2ZbOKy13uYS5Qe18c
o3Wk5yY9kaLJfcRMWwZTWlwebLxkE5+QgBl3rdeo2wl0HyKJEpUFPaoAmFaO
QpXv+wBFivVnq1Q3i3GSQ9nDkrmbvDV1rRSVn2qPWpMAYWWif4/wVXFI5Aiq
SxyhK1TT4fb0VFCtHR+HFG521WitVOyOTk5Q4GiCTxMxQgcA3s2f/5h3byno
Gsyjl9LsYRqbuvrQlTWDmCoInlqM+7O7nr2aM0cVDJcvjiVh4NsDEFxjkx2t
oMNh9H+xKX1jLbqjHn3FtMOIwEWGEN1kD5+VVIoxoefPJPJ0YiqR9p7C4WLf
KvEo4dTiadhHSFVUVIvxCvLV5QtpHbQQkeWq4fEwzH4Mk5hi6B1+2LUBXUix
18RMalgoYbB4CMSgQVdAePkHj103dVDlES12CFFx8EIiwJmHBhQXarJc3iGa
tw4CLVEaLHnK4d2npOmScfHQ5gWV2cE2z14qPmlp0P/Ufyd913TZ0VWYW2Mp
jTrMQr9slxpFGcyxMD6el0o+uTSUSkYee0r4mLEwUxvQFZ1VgfZYUj4AERfN
oYjhTgWFA1OSb83KKvhzUZfIRmVdf25F30TpPeq75SPIHlcamFkg13TwWNxl
ywmZnTf08QNHtXcqWCn/pcOIkYDOkMNYe7gZaJPcF2H3B49bLTA9vp29AxhX
0AezEAsPYN4HPy88gVGWh3pz8qGYLEPvrNuwmdeTNE1GeACFt/ZA2hNe4zqT
pkq+FnuiQYHr0bbkA7r+PiJfzwzxRgC6ZSy0wuXV5LMPB8yAbqDRahpty1UR
TxVfpATJxaCKtJgxUqgyUTcxtE2wM4s9V4A4GnkkFnq6o36LbhFabs+wOfZ6
ibMWnw7ZTjj/MQqAVTuZLfP1yYlGgpdp7xvv+BjbOOZKkliahPwRSUKOwjjT
SMByKK+KXWGxOXPEhMM9qM3IpEwHlp6ohHj7FMHylj1bQoYzxbtMwquUQeJt
+IhfMeVC+aKJ2yGJzq0OmNL7UBz09MnsqnxSybDDQvHbRHgxRDZZUOYT8Hsi
EpF8IjNE/ZdvyLiWRDPNZKUMlxr0/h2Z75TCQzA0ZbkhlRhjsHq9zA8PGWSK
r8LsIdHzyNohF8Ow0orVgO/v5FGcDBjUqTOs8wCibkkRtUkP+/BIp7S0xwxM
msVE8V4jwBvxVfhz1+MmECBvMlHnnXs+TQECoipF7dUr3oc+E4ruc/HtHnBt
IXrAkAmA5+r+gNT4kCMe38m+N8x5j119THQnaIB9BRKHXEWS4xLm9hYI5yVm
0vASNW6BJgtHWHzw3cdktcdzru1Mnddj2OJKI7qJniKdCPruEA/G2BArJnfe
oii7RjE/xYnVh64lelgKbA1lU6QBo17sl0kV/+ASuoZuScTWh2oCM0zI45+q
Ahg0AuaZAPUSb9DKY0EJiN1Vd50i5zgY6U0noDydgGKgr8uN7UtFcvEKscQQ
16iymThZSAqhH8uKGMqHKA6Bdeq7ksnRCYggosIQH5nFN4aSZFAHfnMIqnks
7kkgWfgiKtLqf+r1wPiqbma/F+DA6j7WrKah67bSP5t03Ix13CU538geQden
2EuUepcIe7pNvEDp4eIMy1OlDxfxkHQWfiDpx1l4+IYVLos4RQakPhQpZDRV
hplGPmqDnF50jnm3gXVk4GiO4Aps8VX7W+7NYbfsTOVOZT6lgamPYtgsOxY1
IOJan9gts/sr+im3e46CfcMrXQU5MwcnVr9eohF6qtLqsHivY7GpzALTDCz1
iJqLgMrPDcmf368EWTEhcWrMa56CIbIHj7Q1LvZHt3ISIsoTVDBt4cCUuDJf
r8TjkFRG6flYbxxlD0pKGvGl9cBTG4mKJ5mf+cxl2R8iAZ80GmJoIEXj1L2K
4u5c/w/M7rK3hBNLRQxHRxdwbFhCXva2XTCWvrwbchDULPwNKj17EgMz+z5e
0nq4AsmkRU/70e7zmnQTGwnf0mclNUj8ho4w4F1RGMQyiDylxMTBwahZS6ZD
H2O9TQKjLuNyOxgc2dNeNeiQ+mD1SVFEV5tUcBycOE8EPyCy6Ku2qWDyetW/
11mMTaVjKBKuxRgAdzXikE6TlFYmlrcwxwF1sl/hoIJUIsuO87b08pzSZRpP
z6ccTJGJOxZsQUdZqSt32OVrGWYRX9hF8Qill905EksXmGg86zqmevilFtJV
xs6UJFy82jRd5PcwbXuAeHjEXxVHxM3mCmPS5gWCdXUHc7N66ST9VA+kxkHX
c+oPGFTCh90BaQYH2e0E2QZSHv7/3vHqJduJ/d45USy5H+09sHWuW5RAiUN0
x1wssUTkYYu+AYegfoDfjo70M8cPZ1Evev7smZzbw3n87SsEbjshDWeV/51K
xyiVa1Hm2zbB0fZ59i41L3Z7pqTwNN/Jp51z0oMsDRcmRGnRzsjFHH5gP3Ej
9V3oaOfYuw7MGiyvi0B8qByuGGILXuXfie/XW4zW7ET8dab62UhYWsYoL6Ip
RPt49P5ugurN6JCAwOT+26v3t1c3H27v4FgTgwU93dQLE30cPt/EIpN7/WKT
SzKV9vXp81Npd5l30bHTMSfhRuZC4kYs1jskAQGQnOUmhOzy6jYa6xa+R3PR
cD5xwLOXE/KRZnAUP1J9qnTx6snJJJc5GTt2AHnF7lYyTKkr4eAEEmKjjA9u
MY5uNmLSssnzM+e3JSvXcPE0fpSsQGHgraXdwWN2IOXsI8Y861c9L7E7Cfcp
nJEKcLqlZFS+8g3KxGOLOPT2SWBVhHhFj+G8/2l2UMuHhbCS35E6xwEOenu/
hKY2wy31iEXDPO9Fr7270hFQfBW8OvO4q8/n/L+evezRUIKwE0u34l7Oewdp
3YHlRGMHC1siB9V6qW8GENVKiC/h9DKY+MoMHRu0dpndg1YyMgC2ff2i9OW8
HmNziCBSl6o+XDg2Q/hbKu0gnxkfPM7E/3T+K0Ttlafn4yju4ChxVQMkWHjS
cZJ6PKHIrSzg5KJqJLEUyYTK0KzbnRSpKV+Y4lVi53G4kofA10X3scrvq6Ij
PMkeKvBA8Cdlc2YsO+areVMxoy/psJF1gbe9BPO6EfAr36LYK24fKoEA2KzA
wGFwe8laH0crP2EBLJOU1BnyHnR/LoettTf1nIGmaS06P7/R1gWrYxyGDGyF
UnRUiVwopUOBFE3zGUkMwVIWBeeZ0Pq54FWqASnjXbNiLRxjZXNtmlcrEAmr
vOLEQUzZ5QaOnF+OqDLcjwPUNCxCz618Ko9JlUmXaHZ3FNXjuzu13ssSBaPU
HGoAIOGleA5E0CTDhanbFINO5fjyLevaY54q90mJ0hXYM0AvZ6+gKRsjK+QQ
Tpo9rGvQ+5xBQToyKramj1uwAov91I3VT1HOvEvt1LdL632bqml7RUWaruAq
ZyhBngtG9tnzflqpnFdrH1ekdJ1ePqthcVF3nZZDcN4llVKoaOPc9bYNanyh
bBFPxR5uuDGZRxwsifH1O47Kfm95Or8kstkdjP0fchuqP02yPdI0Es6exarg
nblrPLJ8PYwsL4UhzoSQLhUxeBAtaODc/MRiBMBaQojpqqVYUZp5yhpbwB7t
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
JMPdHP1/Rt3gjC41AQA=

-->

</rfc>
