<?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-tls-psk-11" category="bcp" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.13.0 -->
  <front>
    <title abbrev="RADIUS and TLS-PSK">Operational Considerations for RADIUS and TLS-PSK</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-radext-tls-psk-11"/>
    <author initials="A." surname="DeKok" fullname="Alan DeKok">
      <organization>FreeRADIUS</organization>
      <address>
        <email>aland@freeradius.org</email>
      </address>
    </author>
    <date year="2024" month="October" day="17"/>
    <area>Internet</area>
    <workgroup>RADEXT Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 49?>

<t>This document provides 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 RADIUS/UDP to RADIUS/TLS.</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/"/>.
        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/radext-tls-psk.git"/>.</t>
    </note>
  </front>
  <middle>
    <?line 53?>

<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>To clearly distinguish the various secrets and keys, this document uses "shared secret" to mean "RADIUS shared secret", and Pre-Shared Key (PSK) to mean secret keys which are used with TLS-PSK.</t>
      <t>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.  While using PSKs is often less preferable to using public / private keys, the operational model of PSKs follows the legacy RADIUS "shared secret" model.  As such, it can be easier for implementers and operators to transition to TLS when that transition is offered as a series of small changes.</t>
      <t>The intent for TLS-PSK is to be used in networks where the addresses of client and server are known, as with RADIUS/UDP.  This situation is similar to the use-case of RADIUS/UDP with shared secrets.  TLS-PSK is not suitable for situations where clients dynamically discover servers, as there is no way for the client to dynamically determine which PSK should be used with a new server (or vice versa).   In contrast, <xref target="RFC7585"/> dynamic discovery allows for a client or server to authenticate previously unknown server or client, as the parties can be issued a certificate by a known Certification Authority (CA).</t>
      <t>TLS-PSKs have the same issue of symmetric information between client and server: both parties know the secret key.  A client could, in theory, pretend to be a server.  In contrast, certificates are asymmetric, where it is impossible for the parties to assume the others identity.  Further discussion of this topic is contained in []{#sharing}.2</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>
    </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>External PSK</li>
      </ul>
      <ul empty="true">
        <li>
          <t>A PSK (along with a related PSK Identity) which is administratively configured.  That is, one which is external to TLS, and is not created by the TLS subsystem.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>Resumption PSK</li>
      </ul>
      <ul empty="true">
        <li>
          <t>A PSK (along with a related PSK Identity) which is created by the TLS subsystem and/or application, for use with resumption.</t>
        </li>
      </ul>
    </section>
    <section anchor="justification-of-psk">
      <name>Justification of PSK.</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>
      <t>In terms of ongoing maintenance, it is generally simpler to maintain servers than clients.  For one, there are many fewer servers than clients.  Servers are also typically less resource constrained, and often run on general-purpose operating systems, where maintenance can be automated using widely-available tools.</t>
      <t>In contrast, clients are often numerous, resource constrained, and are more likely to be closed or proprietary systems with limited interfaces.  As a result, it can be difficult to update these clients when a root CA expires.  The use of TLS-PSK in such an environment may therefore offer management efficiencies.</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="guidance-for-psks">
        <name>Guidance for PSKs</name>
        <t>We first give requirements for creating and managing PSKs, followed by usability guidance, and then a discussion of RADIUS shared secrets and their interaction with PSKs.</t>
        <section anchor="psk-requirements">
          <name>PSK Requirements</name>
          <t>Reuse of a PSK in multiple versions of TLS (e.g., TLS 1.2 and TLS 1.3) is considered unsafe (<xref section="E.7" sectionFormat="comma" target="RFC8446"/>).  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>It may be tempting for servers to implement a "trust on first use" (TOFU) policy with respect to clients.  Such behavior is NOT RECOMMENDED.  When servers receive a connection from an unknown client, they SHOULD log the PSK identity, source IP address, and any other information which may be relevant.  An administrator can then later look at the logs and determine the appropriate action to take.</t>
          <t><xref target="RFC9258"/> adds a key derivation function (KDF) to the import interface of (D)TLS 1.3, which binds the externally provided PSK to the protocol version.  That process is preferred to any TOFU mechanism.  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 section="E.7" sectionFormat="comma" target="RFC8446"/>.  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 versions less than TLS 1.3.</t>
          <t>Implementations MUST follow the directions of <xref section="6" sectionFormat="comma" target="RFC9257"/> 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.  Nevertheless, it is good practice for implementations to allow entry 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.  That is, short PSKs MUST NOT be permitted to be used, and PSKs MUST be 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>Where user passwords are generally intended to be remembered and entered by people on a regular basis,  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"/>.  Implementations MUST therefore support entry and storage of PSKs as undistinguished octets.</t>
          <t>We also incorporate by reference the requirements of <xref section="10.2" sectionFormat="comma" target="RFC7360"/> when using PSKs.</t>
        </section>
        <section anchor="usability-guidance">
          <name>Usability Guidance</name>
          <t>PSKs are in their purest form are opaque tokens, represented as an undistinguished series of octets.  Where PSKs are expected to be managed automatically by scripted methods, this format is acceptable.  However, in some cases it is necessary for administrators to share PSKs, in which case humanly readable formats may be useful.  Implementations SHOULD support entering PSKs as both binary data, and via a humanly readable form such as hex encoding.</t>
          <t>Implementations SHOULD use a humanly readable form of PKSs for interfaces which are intended to be used by people, and SHOULD allow for binary data to be entered via an application programming interface (API).  Implementations SHOULD also allow for PSKs to be displayed in the above-mentioned hex encoding, so that administrators can manually verify that a particular PSK is being used.</t>
          <t>When using PSKs, 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>In order to guide implementors and adminis, we give an example commands below which generates random PSKs.  While some commands may not work on some systems one of the commands should succeed.  The intent here is to document a concise and simple example of creating PSKs which are both secure, and humanly manageable.  This document does not mandate that the PSKs follow this format, or any other format.</t>
          <artwork><![CDATA[
openssl rand -base64 16

dd if=/dev/urandom bs=1 count=16 | base64

dd if=/dev/urandom bs=1 count=16 | base32

dd if=/dev/urandom bs=1 count=16 | (hexdump -ve '/1 "%02x"' && echo)
]]></artwork>
          <t>Only one of the above commands should be run, there is no need to run all of them.  Each command reads 128 bits (16 octets) of random data from a secure source, and encodes it as printable / readable ASCII.  This form of PSK will be accepted by any implementation which supports at least 32 octets for PSKs.  Larger PSKs can be generated by changing the "16" number to a larger value.  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>
        <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 section="4.1" sectionFormat="comma" target="RFC9257"/>.</t>
          <t>There are no known use-cases for using a PSK as a shared secret, or vice-versa.</t>
          <t>Implementations MUST reject configuration attempts that try to use the
same value for PSK and shared secret.  To prevent administrative errors, implementations MUST NOT 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><xref section="5.1" sectionFormat="comma" target="RFC4279"/> requires that PSK identities be encoded in UTF-8 format.  However, <xref section="4.2.11" sectionFormat="comma" target="RFC8446"/> describes the "Pre-Shared Key Extension" and defines the ticket as an opaque string: "opaque identity&lt;1..2^16-1&gt;;".  This PSK is then used in <xref section="4.6.1" sectionFormat="comma" target="RFC8446"/> for resumption.</t>
        <t>These definitions appear to be in conflict.  This conflict is addressed in <xref section="6.1.1" sectionFormat="comma" target="RFC9257"/>, which discusses requirements for encoding and comparison of PSK identities.  Systems MUST follow the directions of <xref section="6.1.1" sectionFormat="comma" target="RFC9257"/> when using or comparing PSK Identities for RADIUS/TLS.  mplementations MUST follow the recommendations of <xref target="RFC8265"/> for handling PSK Identity strings.</t>
        <t>In general, implementers should allow for external PSK identities to follow <xref target="RFC4279"/> and be UTF-8, while PSK identities provisioned as part of resumption are automatically provisioned, and therefore follow <xref target="RFC8446"/>.</t>
        <t>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>
        <t>It is up to administrators and implementations as to how they differentiate external PSK identities from session resumption PSK identities used in TLS 1.3 session tickets.  While <xref section="6.1.2" sectionFormat="comma" target="RFC9257"/> suggests the identities should be unique, it offers no concrete steps for how this differentiation may be done.</t>
        <t>One approach could be to have externally provisioned PSK identities contain an NAI such as described above, while session resumption PSK identities contain large blobs of opaque, encrypted, and authenticated text.  It should then be relatively straightforward to differentiate the two types of identities.  One is UTF-8, the other is not.  One is unauthenticated, the other is authenticated.</t>
        <t>Servers MUST assign and/or track session resumption PSK identities in a
way which facilities the ability to distinguish those identities from
externally configured PSK identities, and which enables them to both find and validate
the session resumption PSK.</t>
        <t>A sample validation flow for TLS-PSK identities could be performed via the following steps:</t>
        <ul empty="true">
          <li>
            <ol spacing="normal" type="1"><li>PSK identities provided via an administration interface are enforced to be only UTF-8 on both client and server.</li>
              <li>The client treats session tickets received from the server as opaque blobs.</li>
              <li>When the server issues session tickets for resumption, the server ensures that they are not valid UTF-8.</li>
              <li>One way to do this is to use stateless resumption with a forced non-UTF-8 key_name per <xref section="4" sectionFormat="comma" target="RFC5077"/>, such as by setting one octet to 0x00.</li>
            </ol>
            <t>5 When receiving TLS, the server receives Client-Hello containing a PSK, and checks if the identity is valid UTF-8.</t>
            <ul empty="true">
              <li>
                <t>5.1. If yes, it searches for a pre-configured client which matches that identity.</t>
                <ul empty="true">
                  <li>
                    <t>5.1.1. If the identity is found, authenticates the client via PSK.</t>
                    <t>5.1.2. else the identity is invalid, and the server closes the connection.</t>
                  </li>
                </ul>
                <t>5.2 If the identity is not UTF-8, try resumption, which is usually be handled by a TLS library.</t>
                <ul empty="true">
                  <li>
                    <t>5.2.1 If the TLS library verifies the session ticket, resumption has happened, and the connection is established.</t>
                    <t>5.2.2. else the server ignores the session ticket, and performs normal TLS handshake with a certificate.</t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <t>This validation flow is only suggested.  Other validation methods are possible.</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 section="5.1" sectionFormat="comma" target="RFC4279"/>.  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 MUST cause the server to close the TLS connection.</t>
          <t>The suggested validation rules for identities used outside of resumption 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.  There is no purpose to allowing extremely long identities, and allowing them does little more than complicate implementations.</li>
            <li>Identities SHOULD be in UTF-8 format.  Identities with embedded control characters, NUL octets, etc. SHOULD NOT be used.  This guidance is intended to both allow administators to recognize UTF-8 identities, and to allow implementations to more clearly distinguish TLS-PSK identities from TLS 1.3 resumption identities.  Allowing the two identifier spaces to overlap creates needless complexity and confusion.</li>
            <li>Where the NAI format is expected, identities which are not in NAI format SHOULD be rejected, unless they are TLS 1.3 session identifies.  This rule allows implementations to more easily filter out unexpected or bad identities, and to close inappropriate TLS connections.</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>
          <t>The purpose of these rules is to help administators and implementors more easily manage systems using TLS-PSK, while also minimizing complexity and protecting from potential attackers traffic.  The rules follow a principle of "discard bad traffic quickly", which helps to improve system stability and performance.</t>
        </section>
      </section>
      <section anchor="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 section="4.1" sectionFormat="comma" target="RFC9257"/>.</t>
        <t>Implementations MUST support the ability 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 is also compatible with the practice of administrators who wish 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 anchor="psk-lifetimes">
        <name>PSK Lifetimes</name>
        <t>Unfortunately, <xref target="RFC9257"/> offers no guidance on PSK lifetiems other than to note Section 4.2 that:</t>
        <ul empty="true">
          <li>
            <t>Forward security may be achieved by using a PSK-DH mode or by using PSKs with short lifetimes.</t>
          </li>
        </ul>
        <t>It is RECOMMENDED that PSKs be rotated regularly.  We offer no additional guidance on how often this process should occur.  Changing PSKs has a non-zero cost.  It is therefore up to administrators to determine how best to balance the cost of changing the PSK against the cost of a potential PSK compromise.</t>
        <t>TLS-PSK MUST use modes such as PSK-DH or ECDHE_PSK <xref target="RFC5489"/> which provide forward secrecy.  Failure to use such modes would mean that compromise of a PSK would allow an attacker to decrypt all sessions which had used that PSK.</t>
        <t>As the PSKs are looked up by identity, the PSK Identity MUST also be changed when the PSK changes.</t>
        <t>Servers SHOULD track when a connection was last received for a particular PSK Identity, and SHOULD automatically invalidate credentials when a client has not connected for an extended period of time.  This process helps to mitigate the issue of credentials being leaked when a device is stolen or discarded.</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 (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 section="4.2.9" sectionFormat="comma" target="RFC8446"/> and in <xref section="6" sectionFormat="comma" target="RFC9257"/>.  Implementations MUST implement the recommended cipher suites in <xref section="4.2" sectionFormat="comma" target="RFC9325"/> for TLS 1.2, and in <xref section="9.1" sectionFormat="comma" target="RFC8446"/> 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>
      <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>This section offers advice on both requirements for PSK identities, and on usability.</t>
        <section anchor="psk-identity-requirements">
          <name>PSK Identity Requirements</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 section="5.3" sectionFormat="comma" target="RFC4279"/>, and MUST enable configuring TLS-PSK identities in management interfaces as per <xref section="5.4" sectionFormat="comma" target="RFC4279"/>.</t>
          <t>The historic methods of signing RADIUS packets have not yet been broken, but they are believed to be much less secure than modern TLS.  Therefore, 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.</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 anchor="usability-guidance-1">
          <name>Usability Guidance</name>
          <t>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>
        </section>
      </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>Systems which act as both client and server at the same time MUST NOT share or reuse PSK identities between incoming and outgoing connections.  Doing so would open up the systems to attack, as discussed in <xref section="4.1" sectionFormat="comma" target="RFC9257"/>.</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 section="4.2.9" sectionFormat="comma" target="RFC8446"/> and in <xref section="6" sectionFormat="comma" target="RFC9257"/>.  Implementations MUST implement the recommended cipher suites in <xref section="4.2" sectionFormat="comma" target="RFC9325"/> for TLS 1.2, and in <xref section="9.1" sectionFormat="comma" target="RFC8446"/> 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, 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>
      <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>
      <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, it is 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, the use of TLS-PSK across unrelated organizations requires that those organizations share PSKs.  Such sharing makes it easier for a client to impersonate a server, and vice versa.  In contrast, when certificates are used, such impersonations are impossible. It is therefore NOT RECOMMENDED to use TLS-PSK across organizational boundaries.</t>
        <t>When TLS-PSK is used in an environment where both client and server are part of the same organization, then impersonations only affect that organization.  As TLS offers significant advantages over RADIUS/UDP, it is RECOMMENDED that organizations use RADIUS/TLS with TLS-PSK to replace RADIUS/UDP for all systems managed within the same organization.  While such systems are generally located inside of private networks, there are no known security issues with using TLS-PSK for RADIUS/TLS connections across the public Internet.</t>
        <t>If a client system is compromised, its complete configuration is exposed to the attacker.  Exposing a client certificate means that the attacker can pretend to be the client.  In contrast, exposing a PSK means that the attacker can not only pretend to be the client, but can also pretend to be the server.</t>
        <t>The main benefit of TLS-PSK, therefore, is that its operational processes are similar to that used for managing RADIUS/UDP, while gaining the increased security of TLS.   However, it is still beneficialy for servers to perform IP address filtering, in order to further limit their exposure to attacks.</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 address, 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>An implementation may perform two independent IP address lookups.  First, to check if the connection allowed at all, and second 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>
          <t>For example, a RADIUS server could be configured to be accept connections from a source network of 192.0.2.0/24 or 2001:DB8::/32.  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>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 MUST 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>
        <section anchor="psk-authentication">
          <name>PSK Authentication</name>
          <t>Once the source IP address 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 orthogonal to the choice of which credentials to use.</t>
        </section>
        <section anchor="resumption">
          <name>Resumption</name>
          <t>Implementations SHOULD 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 can allow the system to better scale to higher loads.  There will also be systems which support both TLS-PSK and other TLS-based authentication methods such as certificates.  It is therefore vital for servers to be able to distinguish the use-case of TLS-PSK with pre-configured identities from TLS-PSK which is being used for resumptions.</t>
          <t>The above discussion of PSK identities is therefore 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 (which is possibly for another TLS authentication method), 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 identities is via construction.  Identities used for resumption can be constructed via a fixed format, such as recommended by <xref section="4" sectionFormat="comma" target="RFC5077"/>.  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>
      <t>XXX In addition, there are
added security considerations listed in RFCs 8446, 9257, 9258 (and other RFCs)
which might not have applied to Radius w/out the use of external PSKs.  It
might make sense to call those out specifically.</t>
      <t>Using TLS-PSK across the wider Internet for RADIUS can have different security considerations than for other protocols.  For example, if TLS-PSK was for client/server communication with HTTPS, then having a PSK be exposed or broken could affect one users traffic.  In contrast, RADIUS contains credentials and personally identifiable information (PII) for many users.  As a result, an attacker being able to see inside of a TLS-PSK connection for RADIUS would result in substantial amounts of PII being leaked, possibly including passwords.</t>
      <t>When modes providing forward secrecy are used (e.g. ECDHE_PSK <xref target="RFC5489"/> and <xref target="RFC8442"/>), such attacks are limited to future sessions, and historical sessions are still secure.</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 anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC6614">
          <front>
            <title>Transport Layer Security (TLS) Encryption for RADIUS</title>
            <author fullname="S. Winter" initials="S." surname="Winter"/>
            <author fullname="M. McCauley" initials="M." surname="McCauley"/>
            <author fullname="S. Venaas" initials="S." surname="Venaas"/>
            <author fullname="K. Wierenga" initials="K." surname="Wierenga"/>
            <date month="May" year="2012"/>
            <abstract>
              <t>This document specifies a transport profile for RADIUS using Transport Layer Security (TLS) over TCP as the transport protocol. This enables dynamic trust relationships between RADIUS servers. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6614"/>
          <seriesInfo name="DOI" value="10.17487/RFC6614"/>
        </reference>
        <reference anchor="RFC7360">
          <front>
            <title>Datagram Transport Layer Security (DTLS) as a Transport Layer for RADIUS</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="September" year="2014"/>
            <abstract>
              <t>The RADIUS protocol defined in RFC 2865 has limited support for authentication and encryption of RADIUS packets. The protocol transports data in the clear, although some parts of the packets can have obfuscated content. Packets may be replayed verbatim by an attacker, and client-server authentication is based on fixed shared secrets. This document specifies how the Datagram Transport Layer Security (DTLS) protocol may be used as a fix for these problems. It also describes how implementations of this proposal can coexist with current RADIUS systems.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7360"/>
          <seriesInfo name="DOI" value="10.17487/RFC7360"/>
        </reference>
        <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="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">
          <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="RFC8265">
          <front>
            <title>Preparation, Enforcement, and Comparison of Internationalized Strings Representing Usernames and Passwords</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="A. Melnikov" initials="A." surname="Melnikov"/>
            <date month="October" year="2017"/>
            <abstract>
              <t>This document describes updated methods for handling Unicode strings representing usernames and passwords. The previous approach was known as SASLprep (RFC 4013) and was based on Stringprep (RFC 3454). The methods specified in this document provide a more sustainable approach to the handling of internationalized usernames and passwords. This document obsoletes RFC 7613.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8265"/>
          <seriesInfo name="DOI" value="10.17487/RFC8265"/>
        </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="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">
          <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 anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="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>
        <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="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">
          <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">
          <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">
          <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">
          <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">
          <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="RFC5489">
          <front>
            <title>ECDHE_PSK Cipher Suites for Transport Layer Security (TLS)</title>
            <author fullname="M. Badra" initials="M." surname="Badra"/>
            <author fullname="I. Hajjeh" initials="I." surname="Hajjeh"/>
            <date month="March" year="2009"/>
            <abstract>
              <t>This document extends RFC 4279, RFC 4492, and RFC 4785 and specifies a set of cipher suites that use a pre-shared key (PSK) to authenticate an Elliptic Curve Diffie-Hellman exchange with Ephemeral keys (ECDHE). These cipher suites provide Perfect Forward Secrecy (PFS). This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5489"/>
          <seriesInfo name="DOI" value="10.17487/RFC5489"/>
        </reference>
        <reference anchor="RFC8442">
          <front>
            <title>ECDHE_PSK with AES-GCM and AES-CCM Cipher Suites for TLS 1.2 and DTLS 1.2</title>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="D. Migault" initials="D." surname="Migault"/>
            <date month="September" year="2018"/>
            <abstract>
              <t>This document defines several new cipher suites for version 1.2 of the Transport Layer Security (TLS) protocol and version 1.2 of the Datagram Transport Layer Security (DTLS) protocol. These cipher suites are based on the Ephemeral Elliptic Curve Diffie-Hellman with Pre-Shared Key (ECDHE_PSK) key exchange together with the Authenticated Encryption with Associated Data (AEAD) algorithms AES-GCM and AES-CCM. PSK provides light and efficient authentication, ECDHE provides forward secrecy, and AES-GCM and AES-CCM provide encryption and integrity protection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8442"/>
          <seriesInfo name="DOI" value="10.17487/RFC8442"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAJdnEWcAA+1963IcR3bm/36KWijWJia6mwR4pz2awRDkCBZF0iS4ksPh
nUh0ZwM1qK7qqQtarVnts/hZ/GR7rpkns6shjSMc+8eO1Q4BVGVlnjx5rt85
OZvNJn3ZV/5V8WHjW9eXTe2q4nVTd+VSfu6KVdMWn87OL758Lly9LC7ffZ59
/PztxF1dtf7u1difls2idmsYddm6VT8rfb+atW7pf+xnfdXNNt3t7ORkMul6
eOlPrmpqeLRvBz8pNy39q+tPHz16+eh04lrvXhUXde/b2veT7TV9780Pl8X3
TXtb1tfFH9tm2Exut/Gp2Tl+dbJw/aviarGZdMPVuuw6WMvlbgNfunhz+XYy
2ZSvCvi/r4qFq4uh84VrW7crHpSrwlVVsfPdcQELv3HdTXHjWz8pir5ZvMI/
wD+7pu1bv+pe0RBLv3JD1XfwhP59t+Y/448TN/Q3TftqMpkVZQ2/PJsX5/7b
5hYeZDqdVTAJ/VXTwirftt4zZeE3fu3K6hXMC+j1+xX8BYhZDt0cnpxM6qZd
w07d+Vfw5Ke3r589O3ki/3z++Nkj+efpi2dP5Z9PTp+/lH++OHmuz744DQ+8
PH36XP/5+BR+OynrVfaVp4+eP48ffKwffPpCB3nx5Mkz/efLx8/j0C9gvDtf
DzTSNe6e7in8zAtlXvk98g2tEZ4r+5vh6lURF/8wZag5PAH0nc0Kd9X1rVvA
T5c3ZVcALw5rX/fFpm3ugKu7olxvKo+/Iv4mxm0M9y/2uX/okNOEu4stzEW4
/iH8rnggRD+moeQP5/oX3IPjeVFc3vhiM7SbBlitWRU9/BimVhLn3PhqU3Tr
poHh8c92UrAimBXNd9U2a/r7EEeSj345/4gDxbnNmSTrcrms/GTyFZ6RtlkO
CxwJCQRzgkNcNkNXdBu/KFflQtZ9dImf3ACfF+/czrfFZ78Y2rKHIwIDHxdv
6kW72/CMgoA4Koq//lXI8fPPRI+jc9e769ati8MDntOIrivc3kN2bBoa6QlD
w5Era78sbpotvH+M1MaDfEVkWfJYfRgL9h4Ob1OZ4WBLvmm2/s63UyAh7opu
B/JMUTeBY4rroVy6euHv5wXa41GG629cX5AIgjd1sClR5xpO1N/IkbCnl02x
qLxrq12xLLsehh3KjpnmzrW8m37RelgKjnXrdx0u0k4OqAR73N2AgF3Kw0fI
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

-->

</rfc>
