<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.5.26 (Ruby 2.6.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-radext-tls-psk-04" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.13.0 -->
  <front>
    <title abbrev="RADIUS and TLS-PSK">RADIUS and TLS-PSK</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-radext-tls-psk-04"/>
    <author initials="A." surname="DeKok" fullname="Alan DeKok">
      <organization>FreeRADIUS</organization>
      <address>
        <email>aland@freeradius.org</email>
      </address>
    </author>
    <date year="2023" month="November" day="22"/>
    <area>Internet</area>
    <workgroup>RADEXT Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document gives implementation and operational considerations for using TLS-PSK with RADIUS/TLS (RFC6614) and RADIUS/DTLS (RFC7360).</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-tls-psk/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        RADEXT Working Group mailing list (<eref target="mailto:radext@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/radext/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/freeradius/radext-tls-psk.git"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>The previous specifications "Transport Layer Security (TLS) Encryption for RADIUS"  <xref target="RFC6614"/> and "Datagram Transport Layer Security (DTLS) as a Transport Layer for RADIUS" <xref target="RFC7360"/> defined how (D)TLS can be used as a transport protocol for RADIUS.  However, those documents do not provide guidance for using TLS-PSK with RADIUS.  This document provides that missing guidance, and gives implementation and operational considerations.</t>
      <t>Unless it is explicitly called out that a recommendation applies to
TLS alone or to DTLS alone, each recommendation applies to both TLS
and DTLS.</t>
      <t>This document uses "shared secret" to mean "RADIUS shared secret", and Pre-Shared Key (PSK) to mean secrets which are used with TLS-PSK.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
    </section>
    <section anchor="history">
      <name>History</name>
      <t>TLS deployments usually rely on certificates in most common uses. However, we recognize that it may be difficult to fully upgrade client implementations to allow for certificates to be used with RADIUS/TLS and RADIUS/DTLS.  These upgrades involve not only implementing TLS, but can also require significant changes to administration interfaces and application programming interfaces (APIs) in order to fully support certificates.</t>
      <t>For example, unlike shared secrets, certificates expire.  This expiration means that a working system using TLS can suddenly stop working.  Managing this expiration can require additional notification APIs on RADIUS clients and servers which were previously not required when shared secrets were used.</t>
      <t>Certificates also require the use of certification authorities (CAs), and chains of certificates.  RADIUS implementations using TLS therefore have to track not just a small shared secret, but also potentially many large certificates.  The use of TLS-PSK can therefore provide a simpler upgrade path for implementations to transition from RADIUS shared secrets to TLS.</t>
    </section>
    <section anchor="general-discussion-of-psks-and-psk-identities">
      <name>General Discussion of PSKs and PSK Identities</name>
      <t>Before we define any RADIUS-specific use of PSKs, we must first review the current standards for PSKs, and give general advice on PSKs and PSK identities.</t>
      <t>The requirements in this section apply to both client and server implementations which use TLS-PSK.  Client-specific and server-specific issues are discussed in more detail later in this document.</t>
      <section anchor="requirements-on-psks">
        <name>Requirements on PSKs</name>
        <t>Reuse of a PSK in multiple versions of TLS (e.g. TLS 1.2 and TLS 1.3) is considered unsafe (<xref target="RFC8446"/> Section E.7).  Where TLS 1.3 binds the PSK to a particular key derivation function, TLS 1.2 does not.  This binding means that it is possible to use the same PSK in different hashes, leading to the potential for attacking the PSK by comparing the hash outputs.  While there are no known insecurities, these uses are not known to be secure, and should therefore be avoided.</t>
        <t><xref target="RFC9258"/> adds a key derivation function to the import interface of (D)TLS 1.3, which binds the externally provided PSK to the protocol version.  In particular, that document:</t>
        <ul empty="true">
          <li>
            <t>... describes a mechanism for importing PSKs derived from external PSKs by including the target KDF, (D)TLS protocol version, and an optional context string to ensure uniqueness. This process yields a set of candidate PSKs, each of which are bound to a target KDF and protocol, that are separate from those used in (D)TLS 1.2 and prior versions. This expands what would normally have been a single PSK and identity into a set of PSKs and identities.</t>
          </li>
        </ul>
        <t>An implementation MUST NOT use the same PSK for TLS 1.3 and for earlier versions of TLS.  This requirement prevents reuse of a PSK with multiple TLS versions, which prevents the attacks discussed in <xref target="RFC8446"/> Section E.7.  The exact manner in which this requirement is enforced is implementation-specific.  One possibility is to have two different PSKs.  Another possibility is to forbid the use of TLS 1.3, or to forbid the use of TLS versions less than TLS 1.3.</t>
        <t>It is RECOMMENDED that systems follow the directions of <xref target="RFC9257"/> Section 6 for the use of external PSKs in TLS.  That document provides extremely useful guidance on generating and using PSKs.</t>
        <t>Implementations MUST support PSKs of at least 32 octets in length, and SHOULD support PSKs of 64 octets or more.  As the PSKs are generally hashed before being used in TLS, the useful entropy of a PSK is limited by the size of the hash output.  This output may be 256, 384, or 512 bits in length.  Never the less, it is good practice for implementations to allow entrty of PSKs of more than 64 octets, as the PSK may be in a form other than bare binary data.  Implementations which limit the PSK to a maximum of 64 octets are likely to use PSKs which have much less than 512 bits of entropy.  That is, a PSK with high entropy may be expanded via some construct (e.g. base32 as in the example below) in order to make it easier for people to interact with.  Where 512 bits of entropy are input to an encoding construct, the output may be larger than 64 octets.</t>
        <t>Implementations MUST require that PSKs be at least 16 octets in length, which SHOULD be derived from a source with at least 128 bits of entropy.  That is, short PSKs MUST NOT be permitted to be used, and PSKs MUST be uniformly random.   The strength of the PSK is not determined by the length of the PSK, but instead by the number of bits of entropy which it contains.  People are not good at creating data with high entropy, so a source of cryptographically secure random numbers MUST be used.</t>
        <t>Administrators SHOULD use PSKs of at least 24 octets, generated using a source of cryptographically secure random numbers.  Implementers needing a secure random number generator should see <xref target="RFC8937"/> for for further guidance.  PSKs are not passwords, and administrators should not try to manually create PSKs.</t>
        <t>Passwords are generally intended to be remembered and entered by people on a regular basis.  In contrast, PSKs are intended to be entered once, and then automatically saved in a system configuration.  As such, due to the limited entropy of passwords, they are not acceptable for use with TLS-PSK, and would only be acceptable for use with a password-authenticated key exchange (PAKE) TLS method <xref target="RFC8492"/>.</t>
        <t>We also incorporate by reference the requirements of Section 10.2 of <xref target="RFC7360"/> when using PSKs.</t>
        <t>In order to guide Implementers, we give an example script below which generates random PSKs.  While the script is not portable to all possible systems, the intent here is to document a concise and simple method for creating PSKs which are both 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(16)))), "\n";</t>
          </li>
        </ul>
        <t>This script reads 128 bits (16 octets) of random data from a secure source, encodes it in Base32, and then formats it to be more humanly manageable.  The generated keys are of the form "yttb-4gv2-ynfk-jbjh-2dja-cj7e-am".  This form of PSK will be accepted by any implementation which supports at least 32 octets for PSKs.  Larger PSKs can be generated by passing larger values to the "urandom()" function.  The above derivation assumes that the random source returns one bit of entropy for every bit of randomness which is returned.  Sources failing that assumption are NOT RECOMMENDED.</t>
        <section anchor="interaction-between-psks-and-radius-shared-secrets">
          <name>Interaction between PSKs and RADIUS Shared Secrets</name>
          <t>Any shared secret used for RADIUS/UDP or RADIUS/TLS MUST NOT be used for TLS-PSK.</t>
          <t>It is RECOMMENDED that RADIUS clients and servers track all used shared secrets and PSKs, and then verify that the following requirements all hold true:</t>
          <ul spacing="normal">
            <li>no shared secret is used for more than one RADIUS client</li>
            <li>no PSK is used for more than one RADIUS client</li>
            <li>no shared secret is used as a PSK</li>
          </ul>
          <t>Note that the shared secret of "radsec" given in <xref target="RFC6614"/> can be used across multiple clients, as that value is mandated by the specification.  The intention here is to recommend best practices for administrators who enter site-local shared secrets.</t>
          <t>There may be use-cases for using one shared secret across multiple RADIUS clients.  There may similarly be use-cases for sharing a PSK across multiple RADIUS clients.   Details of the possible attacks on reused PSKs are given in <xref target="RFC9257"/> Section 4.1.</t>
          <t>There are few, if any, use-cases for using a PSK as a shared secret, or vice-versa.</t>
          <t>Implementations SHOULD NOT provide user interfaces which allow both PSKs and shared secrets to be entered at the same time.  There is too much of a temptation for administrators to enter the same value in both fields, which would violate the limitations given above.  Implementations MUST NOT use a "shared secret" field as a way for administrators to enter PSKs.  The PSK entry fields MUST be labeled as being related to PSKs, and not to shared secrets.</t>
        </section>
      </section>
      <section anchor="psk-identities">
        <name>PSK Identities</name>
        <t>It is RECOMMENDED that systems follow the directions of <xref target="RFC9257"/> Section 6.1.1 for the use of external PSK Identities in TLS.  Note that the PSK identity is sent in the clear, and is therefore visible to attackers.  Where privacy is desired, the PSK identity could be either an opaque token generated cryptographically, or perhaps in the form of a Network Access Identifier (NAI) <xref target="RFC7542"/>, where the "user" portion is an opaque token.  For example, an NAI could be "68092112@example.com".  If the attacker already knows that the client is associated with "example.com", then using that domain name in the PSK identity offers no additional information.  In contrast, the "user" portion needs to be both unique to the client and private, so using an opaque token there is a more secure approach.</t>
        <t>Implementations MUST support PSK Identities of 128 octets, and SHOULD support longer PSK identities.  We note that while TLS provides for PSK identities of up to 2^16-1 octets in length, there are few practical uses for extremely long PSK identities.</t>
        <section anchor="security-of-psk-identities">
          <name>Security of PSK Identities</name>
          <t>We note that the PSK identity is a field created by the connecting client.  Since the client is untrusted until both the identity and PSK have been verified, both of those fields MUST be treated as untrusted.  That is, a well-formed PSK Identity is likely to be in UTF-8 format, due to the requirements of <xref target="RFC4279"/> Section 5.1.  However, implementations MUST support managing PSK identities as a set of undistinguished octets.</t>
          <t>It is not safe to use a raw PSK Identity to look up a corresponding PSK.  The PSK may come from an untrusted source, and may contain invalid or malicious data.  For example, the identity may have incorrect UTF-8 format; or it may contain data which forms an injection attack for SQL, LDAP, REST or shell meta characters; or it may contain embedded NUL octets which are incompatible with APIs which expect NUL terminated strings.  The identity may also be up to 65535 octets long.</t>
          <t>As such, implementations MUST validate the identity prior to it being used as a lookup key.  When the identity is passed to an external API (e.g. database lookup), implementations MUST either escape any characters in the identity which are invalid for that API, or else reject the identity entirely.  The exact form of any escaping depends on the API, and we cannot document all possible methods here.  However, a few basic validation rules are suggested, as outlined below.  Any identity which is rejected by these validation rules SHOULD cause the server to close the TLS connection.</t>
          <t>The suggested validation rules are as follows:</t>
          <ul spacing="normal">
            <li>Identities longer than a fixed maximum SHOULD be rejected.  The limit is implementation dependent, but SHOULD NOT be less than 128, and SHOULD NOT be more than 1024.</li>
            <li>Identities which are not in UTF-8 format SHOULD be rejected.  This includes any identity with embedded control characters, NUL octets, etc.</li>
            <li>Where the NAI format is expected, identities which are not in NAI format SHOULD be rejected</li>
          </ul>
          <t>It is RECOMMENDED that implementations extend these rules with any additional validation which are found to be useful.  For example, implementations and/or deployments could both generate PSK identities in a particular format for passing to client systems, and then also verify that any received identity matches that format.  For example, a site could generate PSK identities which are composed of characters in the local language.  The site could then reject identities which contain characters from other languages, even if those characters are valid UTF-8.</t>
        </section>
      </section>
      <section anchor="psk-and-psk-identity-sharing">
        <name>PSK and PSK Identity Sharing</name>
        <t>While administrators may desire to share PSKs and/or PSK identities across multiple systems, such usage is NOT RECOMMENDED.  Details of the possible attacks on reused PSKs are given in <xref target="RFC9257"/> Section 4.1.</t>
        <t>Implementations MUST be able to configure a unique PSK and PSK identity for each possible client-server relationship.  This configuration allows administrators desiring security to use unique PSKs for each such relationship.  This configuration also allows administrators to re-use PSKs and PSK Identities where local policies permit.</t>
        <t>Implementations SHOULD warn administrators if the same PSK identity and/or PSK is used for multiple client-server relationships.</t>
      </section>
    </section>
    <section anchor="guidance-for-radius-clients">
      <name>Guidance for RADIUS Clients</name>
      <t>Client implementations MUST allow the use of a pre-shared key (TLS-PSK) for RADIUS/TLS.  The client implementation can then expose a user interface flag which is "TLS yes / no", and then also fields which ask for the PSK identity and PSK itself.</t>
      <t>For TLS 1.3, Implementations MUST support "psk_dhe_ke" Pre-Shared Key Exchange Mode in TLS 1.3 as discussed in <xref target="RFC8446"/> Section 4.2.9 and in <xref target="RFC9257"/> Section 6.  Implementations MUST implement the recommended cipher suites in <xref target="RFC9325"/> Section 4.2 for TLS 1.2, and in <xref target="RFC9325"/> Section 4.2 for TLS 1.3.</t>
      <t>If a client initiated a connection using a PSK with TLS 1.3 by including the pre-shared key extension, it MUST close the connection if the server did not also select the pre-shared key to continue the handshake.</t>
      <section anchor="psk-identities-1">
        <name>PSK Identities</name>
        <t><xref target="RFC6614"/> is silent on the subject of PSK identities, which is an issue that we correct here.  Guidance is required on the use of PSK identities, as the need to manage identities associated with PSK is a new requirement for NAS management interfaces, and is a new requirement for RADIUS servers.</t>
        <t>RADIUS systems implementing TLS-PSK MUST support identities as per <xref target="RFC4279"/> Section 5.3, and MUST enable configuring TLS-PSK identities in management interfaces as per <xref target="RFC4279"/> Section 5.4.</t>
        <t>The historic methods of signing RADIUS packets have not yet been cracked, but they are believed to be much less secure than modern TLS.  Theregore, when a RADIUS shared secret is used to sign RADIUS/UDP or RADIUS/TCP packets, that shared secret MUST NOT be used with TLS-PSK.  If the secrets were to be reused, then an attack on historic RADIUS cryptography could be trivially leveraged to decrypt TLS-PSK sessions.  Therefore in order to prevent confusion between shared secrets and TLS-PSKs, management interfaces and APIs need to label PSK fields as "PSK" or "TLS-PSK", rather than as "shared secret".</t>
        <t>With TLS-PSK, RADIUS/TLS clients MUST permit the configuration of a RADIUS server IP address or host name, because dynamic server lookups <xref target="RFC7585"/> can only be used if servers use certificates.</t>
      </section>
    </section>
    <section anchor="guidance-for-radius-servers">
      <name>Guidance for RADIUS Servers</name>
      <t>In order to support clients with TLS-PSK, server implementations MUST allow the use of a pre-shared key (TLS-PSK) for RADIUS/TLS.</t>
      <t>The following section(s) describe guidance for RADIUS server implementations and deployments.  We first give an overview of current practices, and then extend and/or replace those practices for TLS-PSK.</t>
      <t>Implementations MUST support the recommended cipher suites in <xref target="RFC9325"/> Section 4.2 for TLS 1.2, and in <xref target="RFC9325"/> Section 4.2 for TLS 1.3.  In order to future-proof these recommendations, we give the following recommendations:</t>
      <ul spacing="normal">
        <li>
          <t>Implementations SHOULD use the "Recommended" cipher suites listed in the IANA "TLS Cipher Suites" registry,
          </t>
          <ul spacing="normal">
            <li>for TLS 1.3, the use "psk_dhe_ke" PSK key exchange mode,</li>
            <li>for TLS 1.2 and earlier, use cipher suites which require ephemeral keying.</li>
          </ul>
        </li>
      </ul>
      <section anchor="current-practices">
        <name>Current Practices</name>
        <t>RADIUS identifies clients by source IP address (<xref target="RFC2865"/> and <xref target="RFC6613"/>) or by client certificate (<xref target="RFC6614"/> and <xref target="RFC7585"/>).  Neither of these approaches work for TLS-PSK.  This section describes current practices and mandates behavior for servers which use TLS-PSK.</t>
        <t>A RADIUS/UDP server is typically configured with a set of information per client, which includes at least the source IP address and shared secret.  When the server receives a RADIUS/UDP packet, it looks up the source IP address, finds a client definition, and therefore the shared secret.  The packet is then authenticated (or not) using that shared secret.</t>
        <t>That is, the IP address is treated as the clients identity, and the shared secret is used to prove the clients authenticity and shared trust.  The set of clients forms a logical database "client table", with the IP address as the key.</t>
        <t>A server may be configured with additional site-local policies associated with that client.  For example, a client may be marked up as being a WiFi Access Point, or a VPN concentrator, etc.  Different clients may be permitted to send different kinds of requests, where some may send Accounting-Request packets, and other clients may not send accounting packets.</t>
      </section>
      <section anchor="practices-for-tls-psk">
        <name>Practices for TLS-PSK</name>
        <t>We define practices for TLS-PSK by analogy with the RADIUS/UDP use-case, and by extending the additional policies associated with the client.  The PSK identity replaces the source IP address as the client identifier.  The PSK replaces the shared secret as proof of client authenticity and shared trust.  However, systems implementing RADIUS/TLS <xref target="RFC6614"/> and RADIUS/DTLS <xref target="RFC7360"/> MUST still use the shared secret as discussed in those specifications.  Any PSK is only used by the TLS layer, and has no effect on the RADIUS data which is being transported.  That is, the RADIUS data transported in a TLS tunnel is the same no matter if client authentication is done via PSK or by client certificates.  The encoding of the RADIUS data is entirely unaffected by the use (or not) of PSKs and client certificates.</t>
        <t>In order to securely support dynamic source IP addresses for clients, we also require that servers limit clients based on a network range.  The alternative would be to suggest that RADIUS servers allow any source IP address to connect and try TLS-PSK, which could be a security risk.  When RADIUS servers do no source IP address filtering, that opennes it easier for attackers to send malicious traffic to the server.  An issue with a TLS library or even a TCP/IP stack could permit the attacker to gain unwarranted access.  In contrast, when IP address filtering is done, attackers generally must first gain access to a secure network before attacking the RADIUS server.</t>
        <t>Even where <xref target="RFC7585"/> dynamic discovery is not used, servers SHOULD NOT permit TLS-PSK to be used across the wider Internet.  The intent for TLS-PSK is for it to be used in internal / secured networks, where clients come from a small number of known locations.  In contrast, certificates can be generated and assigned to clients without any interaction with the RADIUS server.  Therefore if the RADIUS server needs to accept connections from clients at unknown locations, the only secure method is to use client certificates.</t>
        <t>The benefits of TLS-PSK are in easing management and in administative overhead, not in securing traffic from resourceful attackers.  Where TLS-PSK is used across the Internet, PSKs MUST contain at least 256 octets of entropy.</t>
        <t>For example, a RADIUS server could be configured to be accept connections from a source network of 192.0.2.0/24.  The server could therefore discard any TLS connection request which comes from a source IP address outside of that network.  In that case, there is no need to examine the PSK identity or to find the client definition.  Instead, the IP source filtering policy would deny the connection before any TLS communication had been performed.</t>
        <t>RADIUS servers need to be able to limit certain PSK identifiers to certain network ranges or IP addresses.  That is, if a NAS is known to have a dynamic IP address within a particular subnet, the server should limit use of the NASes PSK to that subnet.  This filtering can therefore help to catch configuration errors.</t>
        <t>As some clients may have dynamic IP addresses, it is possible for a one PSK identity to appear at different source IP addresses over time.  In addition, as there may be many clients behind one NAT gateway, there may be multiple RADIUS clients using one public IP address.  RADIUS servers need to support multiple PSK identifiers at one source IP address.</t>
        <t>That is, a server needs to support multiple different clients within one network range, multiple clients behind a NAT, and one client having different IP addresses over time.  All of those use-cases are common and necessary.</t>
        <t>The following section describes these requirements in more detail.</t>
        <section anchor="ip-filtering">
          <name>IP Filtering</name>
          <t>A server supporting this specification MUST perform IP address filtering on incoming connections.  There are few reasons for a server to have a default configuration which allows connections from any source IP address.</t>
          <t>A TLS-PSK server MUST be configurable with a set of "allowed" network ranges from which clients are permitted to connect.  Any connection from outside of the allowed range(s) MUST be rejected before any PSK identity is checked.  It is RECOMMENDED that servers support IP address filtering even when TLS-PSK is not used.</t>
          <t>The "allowed" network ranges could be implemented as a global list, or one or more network ranges could be tied to a client or clients.  The intent here is to allow connections to be filtered by source IP, and to allow clients to be limited to a subset of network addresses.  The exact method and representation of that filtering is up to an implementation.</t>
          <t>Conceptually, the set of IP addresses and ranges, along with permitted clients and their credentials forms a logical "client table" which the server uses to both filter and authenticate clients.  The client table should contain information such as allowed network ranges, PSK identity and associated PSK, credentials for another TLS authentication method, or flags which indicate that the server should require a client certificate.</t>
          <t>Once a server receives a connection, it checks the source IP address against the list of all allowed IP addresses or ranges in the client table.  If none match, the connection MUST be rejected.  That is, the connection MUST be from an authorized source IP address.</t>
          <t>Once a connection has been established, the server MUST NOT process any application data inside of the TLS tunnel until the client has been authenticated.  Instead, the server normally receives a TLS-PSK identity from the client.  The server then uses this identity to look up the client in the client table.  If there is no matching client, the server MUST close the connection.  The server then also checks if this client definition allows this particular source IP address.  If the source IP address is not allowed, the server MUST close the connection.</t>
          <t>Where the server does not receive TLS-PSK from the client, it proceeds with another authentication method such as client certificates.  Such requirements are discussed elsewhere, most notably in <xref target="RFC6614"/> and <xref target="RFC7360"/>.</t>
          <t>Returning to the subject of IP address lookips, an implementation may perform two independent IP address lookups.  First, to check if the connection allowed at all, and secod to check if the connection is authorized for this particular client.  One or both checks may be used by a particular implementation.  The two sets of IP addresses can overlap, and implementations SHOULD support that capability.</t>
          <t>Depending on the implementation, one or more clients may share a list of allowed network ranges.  Alternately, the allowed network ranges for two clients can overlap only partially, or not at all.  All of these possibilities MUST be supported by the server implementation.</t>
        </section>
        <section anchor="psk-authentication">
          <name>PSK Authentication</name>
          <t>Once the source IP has been verified to be allowed for this particular client, the server authenticates the TLS connection via the PSK taken from the client definition.  If the PSK is verified, the server then accepts the connection, and proceeds with RADIUS/TLS as per <xref target="RFC6614"/>.</t>
          <t>If the PSK is not verified, then the server MUST close the connection.  While TLS provides for fallback to other authentication methods such as client certificates, there is no reason for a client to be configured simultaneously with multiple authentication methods.</t>
          <t>A client MUST use only one authentication method for TLS.  An authentication method is either TLS-PSK, client certificates, or some other method supported by TLS.</t>
          <t>That is, client configuration is relatively simple: use a particular set of credentials to authenticate to a particular server.  While clients may support multiple servers and fail-over or load-balancing, that configuration is generally orthoganal to the choice of which credentials to use.</t>
        </section>
        <section anchor="resumption">
          <name>Resumption</name>
          <t>Implementations MUST support resumption.  In many cases session tickets can be authenticated solely by the server, and do not require querying a database.  The use of resumption allows the system to better scale to higher loads.</t>
          <t>However, the above discussion of PSK identities is complicated by the use of PSKs for resumption in TLS 1.3.  A server which receives a PSK identity via TLS typically cannot query the TLS layer to see if this identity is for a resumed session, or is instead a static pre-provisioned identity.  This confusion complicates server implementations.</t>
          <t>One way for a server to tell the difference between the two kinds of identies is via construction.  Identities used for resumption can be constructed via a fixed format, such as recommended by <xref target="RFC5077"/> Section 4.  A static pre-provisioned identity could be in format of an NAI, as given in <xref target="RFC7542"/>.  An implementation could therefore examine the incoming identity, and determine from the identity alone what kind of authentication was being performed.</t>
          <t>An alternative way for a server to distinguish the two kinds of identities is to maintain two tables.  One table would contain static identities, as the logical client table described above.  Another table could be the table of identities handed out for resumption.  The server would then look up any PSK identity in one table, and if not found, query the other one.  An identity would be found in a table, in which case it can be authenticated.  Or, the identity would not be found in either table, in which case it is unknown, and the server MUST close the connection.</t>
          <t>As suggested in <xref target="RFC8446"/>, TLS-PSK peers MUST NOT store resumption PSKs or tickets (and associated cached data) for longer than 604800 seconds (7 days) regardless of the PSK or ticket lifetime.</t>
          <t>Systems supporting TLS-PSK and resumption MUST cache data during the initial full handshake sufficient to allow authorization decisions to be made during resumption. If cached data cannot be retrieved securely, resumption MUST NOT be done.  The cached data is typically information such as the original PSK identity, along with any policies associated with that identity.</t>
          <t>Information from the original TLS exchange (e.g., the original PSK identity) as well as related information (e.g., source IP addresses) may change between the initial full handshake and resumption. This change creates a "time-of-check time-of-use" (TOCTOU) security vulnerability. A malicious or compromised client could supply one set of data during the initial authentication, and a different set of data during resumption, potentially allowing them to obtain access that they should not have.</t>
          <t>If any authorization or policy decisions were made with information that has changed between the initial full handshake and resumption, and if change may lead to a different decision, such decisions MUST be reevaluated. It is RECOMMENDED that authorization and policy decisions are reevaluated based on the information given in the resumption. TLS-PSK servers MAY reject resumption where the information supplied during resumption does not match the information supplied during the original authentication. If a safe decision is not possible, TLS-PSK servers SHOULD reject the resumption and continue with a full handshake.</t>
        </section>
        <section anchor="interaction-with-other-tls-authentication-methods">
          <name>Interaction with other TLS authentication methods</name>
          <t>When a server supports both TLS-PSK and client certificates, it MUST be able to accept authenticated connections from clients which may use either type of credentials, perhaps even from the same source IP address and at the same time.  That is, servers are required to both authenticate the client, and also to filter clients by source IP address.  These checks both have to match in order for a client to be accepted.</t>
        </section>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>We make no changes over <xref target="RFC6614"/> and <xref target="RFC7360"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The primary focus of this document is addressing security considerations for RADIUS.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>There are no IANA considerations in this document.</t>
      <t>RFC Editor: This section may be removed before final publication.</t>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to the many reviewers in the RADEXT working group for positive feedback.</t>
    </section>
    <section anchor="changelog">
      <name>Changelog</name>
      <ul spacing="normal">
        <li>00 - initial version</li>
        <li>01 - update examples</li>
      </ul>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC6614" target="https://www.rfc-editor.org/info/rfc6614">
          <front>
            <title>Transport Layer Security (TLS) Encryption for RADIUS</title>
            <author fullname="S. Winter" initials="S." surname="Winter"/>
            <author fullname="M. McCauley" initials="M." surname="McCauley"/>
            <author fullname="S. Venaas" initials="S." surname="Venaas"/>
            <author fullname="K. Wierenga" initials="K." surname="Wierenga"/>
            <date month="May" year="2012"/>
            <abstract>
              <t>This document specifies a transport profile for RADIUS using Transport Layer Security (TLS) over TCP as the transport protocol. This enables dynamic trust relationships between RADIUS servers. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6614"/>
          <seriesInfo name="DOI" value="10.17487/RFC6614"/>
        </reference>
        <reference anchor="RFC7360" target="https://www.rfc-editor.org/info/rfc7360">
          <front>
            <title>Datagram Transport Layer Security (DTLS) as a Transport Layer for RADIUS</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <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="RFC2865" target="https://www.rfc-editor.org/info/rfc2865">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS)</title>
            <author fullname="C. Rigney" initials="C." surname="Rigney"/>
            <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="RFC4279" target="https://www.rfc-editor.org/info/rfc4279">
          <front>
            <title>Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)</title>
            <author fullname="P. Eronen" initials="P." role="editor" surname="Eronen"/>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
            <date month="December" year="2005"/>
            <abstract>
              <t>This document specifies three sets of new ciphersuites for the Transport Layer Security (TLS) protocol to support authentication based on pre-shared keys (PSKs). These pre-shared keys are symmetric keys, shared in advance among the communicating parties. The first set of ciphersuites uses only symmetric key operations for authentication. The second set uses a Diffie-Hellman exchange authenticated with a pre-shared key, and the third set combines public key authentication of the server with pre-shared key authentication of the client. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4279"/>
          <seriesInfo name="DOI" value="10.17487/RFC4279"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <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="RFC9257" target="https://www.rfc-editor.org/info/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="RFC9325" target="https://www.rfc-editor.org/info/rfc9325">
          <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="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <date month="November" year="2022"/>
            <abstract>
              <t>Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) are used to protect data exchanged over a wide range of application protocols and can also form the basis for secure transport protocols. Over the years, the industry has witnessed several serious attacks on TLS and DTLS, including attacks on the most commonly used cipher suites and their modes of operation. This document provides the latest recommendations for ensuring the security of deployed services that use TLS and DTLS. These recommendations are applicable to the majority of use cases.</t>
              <t>RFC 7525, an earlier version of the TLS recommendations, was published when the industry was transitioning to TLS 1.2. Years later, this transition is largely complete, and TLS 1.3 is widely available. This document updates the guidance given the new environment and obsoletes RFC 7525. In addition, this document updates RFCs 5288 and 6066 in view of recent attacks.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="195"/>
          <seriesInfo name="RFC" value="9325"/>
          <seriesInfo name="DOI" value="10.17487/RFC9325"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <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>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC6613" target="https://www.rfc-editor.org/info/rfc6613">
          <front>
            <title>RADIUS over TCP</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <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="RFC7585" target="https://www.rfc-editor.org/info/rfc7585">
          <front>
            <title>Dynamic Peer Discovery for RADIUS/TLS and RADIUS/DTLS Based on the Network Access Identifier (NAI)</title>
            <author fullname="S. Winter" initials="S." surname="Winter"/>
            <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="RFC8446" target="https://www.rfc-editor.org/info/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="RFC8937" target="https://www.rfc-editor.org/info/rfc8937">
          <front>
            <title>Randomness Improvements for Security Protocols</title>
            <author fullname="C. Cremers" initials="C." surname="Cremers"/>
            <author fullname="L. Garratt" initials="L." surname="Garratt"/>
            <author fullname="S. Smyshlyaev" initials="S." surname="Smyshlyaev"/>
            <author fullname="N. Sullivan" initials="N." surname="Sullivan"/>
            <author fullname="C. Wood" initials="C." surname="Wood"/>
            <date month="October" year="2020"/>
            <abstract>
              <t>Randomness is a crucial ingredient for Transport Layer Security (TLS) and related security protocols. Weak or predictable "cryptographically secure" pseudorandom number generators (CSPRNGs) can be abused or exploited for malicious purposes. An initial entropy source that seeds a CSPRNG might be weak or broken as well, which can also lead to critical and systemic security problems. This document describes a way for security protocol implementations to augment their CSPRNGs using long-term private keys. This improves randomness from broken or otherwise subverted CSPRNGs.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8937"/>
          <seriesInfo name="DOI" value="10.17487/RFC8937"/>
        </reference>
        <reference anchor="RFC9258" target="https://www.rfc-editor.org/info/rfc9258">
          <front>
            <title>Importing External Pre-Shared Keys (PSKs) for TLS 1.3</title>
            <author fullname="D. Benjamin" initials="D." surname="Benjamin"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>This document describes an interface for importing external Pre-Shared Keys (PSKs) into TLS 1.3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9258"/>
          <seriesInfo name="DOI" value="10.17487/RFC9258"/>
        </reference>
        <reference anchor="RFC8492" target="https://www.rfc-editor.org/info/rfc8492">
          <front>
            <title>Secure Password Ciphersuites for Transport Layer Security (TLS)</title>
            <author fullname="D. Harkins" initials="D." role="editor" surname="Harkins"/>
            <date month="February" year="2019"/>
            <abstract>
              <t>This memo defines several new ciphersuites for the Transport Layer Security (TLS) protocol to support certificateless, secure authentication using only a simple, low-entropy password. The exchange is called "TLS-PWD". The ciphersuites are all based on an authentication and key exchange protocol, named "dragonfly", that is resistant to offline dictionary attacks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8492"/>
          <seriesInfo name="DOI" value="10.17487/RFC8492"/>
        </reference>
        <reference anchor="RFC7542" target="https://www.rfc-editor.org/info/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="RFC5077" target="https://www.rfc-editor.org/info/rfc5077">
          <front>
            <title>Transport Layer Security (TLS) Session Resumption without Server-Side State</title>
            <author fullname="J. Salowey" initials="J." surname="Salowey"/>
            <author fullname="H. Zhou" initials="H." surname="Zhou"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>This document describes a mechanism that enables the Transport Layer Security (TLS) server to resume sessions and avoid keeping per-client session state. The TLS server encapsulates the session state into a ticket and forwards it to the client. The client can subsequently resume a session using the obtained ticket. This document obsoletes RFC 4507. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5077"/>
          <seriesInfo name="DOI" value="10.17487/RFC5077"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAL93XmUAA71d6XLjRpL+z6fA0j9GmiDVLbX60kTsjqbVPVa4D01Lvd6J
mNiJIlAUYYEAjQJEcyb8Lvss+2SbZx0g2PbOHo6wLYlAHVl5fplZnM/nk67s
KnuRfb68uv5ym5m6yO7e385vbr+bmMWitY+jHxVNXps1vFa0ZtnNS9st560p
7E/dvKvcfOMe5k/PJxPXwUt/NVVTw6Nd29tJuWnpJ9edPX36+unZxLTWXGTX
dWfb2naT7T3N9/bf7rLvm/ahrO+zP7ZNv5k8bMNT8yucdZKb7iIr62Uzcf1i
XTpXNvXdbgNTXb+9ezeZbMqLDP75JstNnfXOZqZtzS47KpeZqapsZ91x1rTZ
yrhVtrKtnWRZ1+QX+AH86Jq2a+3SXdAQhV2avuocPKGf79b8Mf46MX23atqL
yWQOK4I/Xp5kV/a75gEeZEJdVrAI/VPTwjbftdYyaeEvdm3K6gLWBQT7/RI+
AWqWvTuBJyeTumnXpisf7QU8+fndmxcvTs/lx5fPXjyVH89evXguP56fvXwt
P746fanPvj57/lJ/fHYGz06QeHtDP9Ohn7/S8V6dn7/QH18/exnGewWDPNq6
p9fv8aD0+OB33hKzxe+RRWg38FzZrfrFRRa2+STlnRN4Aig5n2dm4brW5PDb
3ap0GbBdv7Z1B0M8WpeV601l8XfYQVMTgzYbGBJ/M1WWN7UrC/ndZbBV4ALk
KOHibAsLEe5+An/LjoS2xzSUfHClnyCpj094XeuyKCo7mXyDPNk2RZ/jHLhK
m21AaMqmd5nb2LxclrnMP71rTe02wFbZe7OzbXZr874tO+BImOI4e1vn7W5D
O8Gl8vTTLPv732VZP/9M65pemc7ct2adHR7wikY0LjN7D8Vj09C4LxgaOLys
bZGtmi28f4y7RrlZWBSdgsfq/FibtgFZaapouJMs+7bZ2kfbzjIQBpA3PS48
uKxu6K1HOJHsvi8LU+f262cCA6anLq+DEK5Ml5HEw5s62Iyo8w9wBpzpl7qy
Dl7rMpjP/rSpyhzU4g4oUFWw+abveE6TtTZv1jByISNv4FlcUTNBipGqQ6UC
auLK/2GWWZOvDr+aLRrYNDw+wYXieydDhoczAA5yK1CXReZs3tpuim+uLZzR
VDR0+jHT46a181v++3cWOANofOxf5Cddtl2VsD54iM+azkAO5ASZ/M6267Ju
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
x18MiuNM/gsC1X1zV3cAAA==

-->

</rfc>
