summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc9257.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc9257.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc9257.txt')
-rw-r--r--doc/rfc/rfc9257.txt687
1 files changed, 687 insertions, 0 deletions
diff --git a/doc/rfc/rfc9257.txt b/doc/rfc/rfc9257.txt
new file mode 100644
index 0000000..348cd80
--- /dev/null
+++ b/doc/rfc/rfc9257.txt
@@ -0,0 +1,687 @@
+
+
+
+
+Internet Engineering Task Force (IETF) R. Housley
+Request for Comments: 9257 Vigil Security
+Category: Informational J. Hoyland
+ISSN: 2070-1721 Cloudflare Ltd.
+ M. Sethi
+ Aalto University
+ C. A. Wood
+ Cloudflare
+ July 2022
+
+
+ Guidance for External Pre-Shared Key (PSK) Usage in TLS
+
+Abstract
+
+ 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.
+
+Status of This Memo
+
+ This document is not an Internet Standards Track specification; it is
+ published for informational purposes.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Not all documents
+ approved by the IESG are candidates for any level of Internet
+ Standard; see Section 2 of RFC 7841.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ https://www.rfc-editor.org/info/rfc9257.
+
+Copyright Notice
+
+ Copyright (c) 2022 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (https://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Revised BSD License text as described in Section 4.e of the
+ Trust Legal Provisions and are provided without warranty as described
+ in the Revised BSD License.
+
+Table of Contents
+
+ 1. Introduction
+ 2. Conventions and Definitions
+ 3. Notation
+ 4. PSK Security Properties
+ 4.1. Shared PSKs
+ 4.2. PSK Entropy
+ 5. External PSKs in Practice
+ 5.1. Use Cases
+ 5.2. Provisioning Examples
+ 5.3. Provisioning Constraints
+ 6. Recommendations for External PSK Usage
+ 6.1. Stack Interfaces
+ 6.1.1. PSK Identity Encoding and Comparison
+ 6.1.2. PSK Identity Collisions
+ 7. Privacy Considerations
+ 8. Security Considerations
+ 9. IANA Considerations
+ 10. References
+ 10.1. Normative References
+ 10.2. Informative References
+ Acknowledgements
+ Authors' Addresses
+
+1. Introduction
+
+ This document provides guidance on the use of external Pre-Shared
+ Keys (PSKs) in Transport Layer Security (TLS) 1.3 [RFC8446]. This
+ guidance also applies to Datagram TLS (DTLS) 1.3 [RFC9147] and
+ Compact TLS 1.3 [CTLS]. For readability, this document uses the term
+ "TLS" to refer to all such versions.
+
+ External PSKs are symmetric secret keys provided to the TLS protocol
+ implementation as external inputs. External PSKs are provisioned out
+ of band.
+
+ This document lists TLS security properties provided by PSKs under
+ certain assumptions and demonstrates how violations of these
+ assumptions lead to attacks. This document discusses PSK use cases,
+ provisioning processes, and TLS stack implementation support in the
+ context of these assumptions. This document also provides advice for
+ applications in various use cases to help meet these assumptions.
+
+ There are many resources that provide guidance for password
+ generation and verification aimed towards improving security.
+ However, there is no such equivalent for external PSKs in TLS. This
+ document aims to reduce that gap.
+
+2. Conventions and Definitions
+
+ 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 [RFC2119] [RFC8174] when, and only when, they appear in all
+ capitals, as shown here.
+
+3. Notation
+
+ For purposes of this document, a "logical node" is a computing
+ presence that other parties can interact with via the TLS protocol.
+ A logical node could potentially be realized with multiple physical
+ instances operating under common administrative control, e.g., a
+ server farm. An "endpoint" is a client or server participating in a
+ connection.
+
+4. PSK Security Properties
+
+ The use of a previously established PSK allows TLS nodes to
+ authenticate the endpoint identities. It also offers other benefits,
+ including resistance to attacks in the presence of quantum computers;
+ see Section 4.2 for related discussion. However, these keys do not
+ provide privacy protection of endpoint identities, nor do they
+ provide non-repudiation (one endpoint in a connection can deny the
+ conversation); see Section 7 for related discussion.
+
+ PSK authentication security implicitly assumes one fundamental
+ property: each PSK is known to exactly one client and one server and
+ they never switch roles. If this assumption is violated, then the
+ security properties of TLS are severely weakened as discussed below.
+
+4.1. Shared PSKs
+
+ As discussed in Section 5.1, to demonstrate their attack, [AASS19]
+ describes scenarios where multiple clients or multiple servers share
+ a PSK. If this is done naively by having all members share a common
+ key, then TLS authenticates only group membership, and the security
+ of the overall system is inherently rather brittle. There are a
+ number of obvious weaknesses here:
+
+ 1. Any group member can impersonate any other group member.
+
+ 2. If a PSK is combined with the result of a fresh ephemeral key
+ exchange, then compromise of a group member that knows the
+ resulting shared secret will enable the attacker to passively
+ read traffic (and actively modify it).
+
+ 3. If a PSK is not combined with the result of a fresh ephemeral key
+ exchange, then compromise of any group member allows the attacker
+ to passively read all traffic (and actively modify it), including
+ past traffic.
+
+ Additionally, a malicious non-member can reroute handshakes between
+ honest group members to connect them in unintended ways, as described
+ below. Note that a partial mitigation for this class of attack is
+ available: each group member includes the Server Name Indication
+ (SNI) extension [RFC6066] and terminates the connection on mismatch
+ between the presented SNI value and the receiving member's known
+ identity. See [Selfie] for details.
+
+ To illustrate the rerouting attack, consider three peers, A, B, and
+ C, who all know the PSK. The attack proceeds as follows:
+
+ 1. A sends a ClientHello to B.
+
+ 2. The attacker intercepts the message and redirects it to C.
+
+ 3. C responds with a second flight (ServerHello, ...) to A.
+
+ 4. A sends a Finished message to B. A has completed the handshake,
+ ostensibly with B.
+
+ 5. The attacker redirects the Finished message to C. C has
+ completed the handshake with A.
+
+ In this attack, peer authentication is not provided. Also, if C
+ supports a weaker set of ciphersuites than B, cryptographic algorithm
+ downgrade attacks might be possible. This rerouting is a type of
+ identity misbinding attack [Krawczyk] [Sethi]. Selfie attack
+ [Selfie] is a special case of the rerouting attack against a group
+ member that can act as both a TLS server and a client. In the Selfie
+ attack, a malicious non-member reroutes a connection from the client
+ to the server on the same endpoint.
+
+ Finally, in addition to these weaknesses, sharing a PSK across nodes
+ may negatively affect deployments. For example, revocation of
+ individual group members is not possible without establishing a new
+ PSK for all of the members that have not been revoked.
+
+4.2. PSK Entropy
+
+ Entropy properties of external PSKs may also affect TLS security
+ properties. For example, if a high-entropy PSK is used, then PSK-
+ only key establishment modes provide expected security properties for
+ TLS, including establishment of the same session keys between peers,
+ secrecy of session keys, peer authentication, and downgrade
+ protection. See Appendix E.1 of [RFC8446] for an explanation of
+ these properties. However, these modes lack forward security.
+ Forward security may be achieved by using a PSK-DH mode or by using
+ PSKs with short lifetimes.
+
+ In contrast, if a low-entropy PSK is used, then PSK-only key
+ establishment modes are subject to passive exhaustive search attacks,
+ which will reveal the traffic keys. PSK-DH modes are subject to
+ active attacks in which the attacker impersonates one side. The
+ exhaustive search phase of these attacks can be mounted offline if
+ the attacker captures a single handshake using the PSK, but those
+ attacks will not lead to compromise of the traffic keys for that
+ connection because those also depend on the Diffie-Hellman (DH)
+ exchange. Low-entropy keys are only secure against active attack if
+ a Password-Authenticated Key Exchange (PAKE) is used with TLS. At
+ the time of writing, the Crypto Forum Research Group (CFRG) is
+ working on specifying recommended PAKEs (see [CPACE] and [OPAQUE] for
+ the symmetric and asymmetric cases, respectively).
+
+5. External PSKs in Practice
+
+ PSK ciphersuites were first specified for TLS in 2005. PSKs are now
+ an integral part of the TLS 1.3 specification [RFC8446]. TLS 1.3
+ also uses PSKs for session resumption. It distinguishes these
+ resumption PSKs from external PSKs that have been provisioned out of
+ band. This section describes known use cases and provisioning
+ processes for external PSKs with TLS.
+
+5.1. Use Cases
+
+ This section lists some example use cases where pairwise external
+ PSKs (i.e., external PSKs that are shared between only one server and
+ one client) have been used for authentication in TLS. There was no
+ attempt to prioritize the examples in any particular order.
+
+ * Device-to-device communication with out-of-band synchronized keys.
+ PSKs provisioned out of band for communicating with known
+ identities, wherein the identity to use is discovered via a
+ different online protocol.
+
+ * Intra-data-center communication. Machine-to-machine communication
+ within a single data center or Point of Presence (PoP) may use
+ externally provisioned PSKs; this is primarily for the purpose of
+ supporting TLS connections with early data. See Section 8 for
+ considerations when using early data with external PSKs.
+
+ * Certificateless server-to-server communication. Machine-to-
+ machine communication may use externally provisioned PSKs; this is
+ primarily for the purposes of establishing TLS connections without
+ requiring the overhead of provisioning and managing PKI
+ certificates.
+
+ * Internet of Things (IoT) and devices with limited computational
+ capabilities. [RFC7925] defines TLS and DTLS profiles for
+ resource-constrained devices and suggests the use of PSK
+ ciphersuites for compliant devices. The Open Mobile Alliance
+ Lightweight Machine-to-Machine (LwM2M) Technical Specification
+ [LwM2M] states that LwM2M servers MUST support the PSK mode of
+ DTLS.
+
+ * Securing RADIUS [RFC2865] with TLS. PSK ciphersuites are optional
+ for this use case, as specified in [RFC6614].
+
+ * 3GPP server-to-user equipment authentication. The Generic
+ Authentication Architecture (GAA) defined by 3GPP mentions that
+ TLS PSK ciphersuites can be used between server and user equipment
+ for authentication [GAA].
+
+ * Smart Cards. The German electronic Identity (eID) card supports
+ authentication of a card holder to online services with TLS PSK
+ [SmartCard].
+
+ * Quantum resistance. Some deployments may use PSKs (or combine
+ them with certificate-based authentication as described in
+ [RFC8773]) because of the protection they provide against quantum
+ computers.
+
+ There are also use cases where PSKs are shared between more than two
+ entities. Some examples below (as noted by Akhmetzyanova, et al.
+ [AASS19]):
+
+ * Group chats. In this use case, group participants may be
+ provisioned an external PSK out of band for establishing
+ authenticated connections with other members of the group.
+
+ * IoT and devices with limited computational capabilities. Many PSK
+ provisioning examples are possible in this use case. For example,
+ in a given setting, IoT devices may all share the same PSK and use
+ it to communicate with a central server (one key for n devices),
+ have their own key for communicating with a central server (n keys
+ for n devices), or have pairwise keys for communicating with each
+ other (n^2 keys for n devices).
+
+5.2. Provisioning Examples
+
+ The exact provisioning process depends on the system requirements and
+ threat model. Whenever possible, avoid sharing a PSK between nodes;
+ however, sharing a PSK among several nodes is sometimes unavoidable.
+ When PSK sharing happens, other accommodations SHOULD be used as
+ discussed in Section 6.
+
+ Examples of PSK provisioning processes are included below.
+
+ * Many industrial protocols assume that PSKs are distributed and
+ assigned manually via one of the following approaches: (1) typing
+ the PSK into the devices or (2) using a trust-on-first-use (TOFU)
+ approach with a device completely unprotected before the first
+ login took place. Many devices have a very limited UI. For
+ example, they may only have a numeric keypad or even fewer
+ buttons. When the TOFU approach is not suitable, entering the key
+ would require typing it on a constrained UI.
+
+ * Some devices provision PSKs via an out-of-band, cloud-based
+ syncing protocol.
+
+ * Some secrets may be baked into hardware or software device
+ components. Moreover, when this is done at manufacturing time,
+ secrets may be printed on labels or included in a Bill of
+ Materials for ease of scanning or import.
+
+5.3. Provisioning Constraints
+
+ PSK provisioning systems are often constrained in application-
+ specific ways. For example, although one goal of provisioning is to
+ ensure that each pair of nodes has a unique key pair, some systems do
+ not want to distribute pairwise shared keys to achieve this. As
+ another example, some systems require the provisioning process to
+ embed application-specific information in either PSKs or their
+ identities. Identities may sometimes need to be routable, as is
+ currently under discussion for [EAP-TLS-PSK].
+
+6. Recommendations for External PSK Usage
+
+ Recommended requirements for applications using external PSKs are as
+ follows:
+
+ 1. Each PSK SHOULD be derived from at least 128 bits of entropy,
+ MUST be at least 128 bits long, and SHOULD be combined with an
+ ephemeral key exchange, e.g., by using the "psk_dhe_ke" Pre-
+ Shared Key Exchange Mode in TLS 1.3 for forward secrecy. As
+ discussed in Section 4, low-entropy PSKs (i.e., those derived
+ from less than 128 bits of entropy) are subject to attack and
+ SHOULD be avoided. If only low-entropy keys are available, then
+ key establishment mechanisms such as PAKE that mitigate the risk
+ of offline dictionary attacks SHOULD be employed. Note that no
+ such mechanisms have yet been standardized, and further that
+ these mechanisms will not necessarily follow the same
+ architecture as the process for incorporating external PSKs
+ described in [RFC9258].
+
+ 2. Unless other accommodations are made to mitigate the risks of
+ PSKs known to a group, each PSK MUST be restricted in its use to
+ at most two logical nodes: one logical node in a TLS client role
+ and one logical node in a TLS server role. (The two logical
+ nodes MAY be the same, in different roles.) Two acceptable
+ accommodations are described in [RFC9258]: (1) exchanging client
+ and server identifiers over the TLS connection after the
+ handshake and (2) incorporating identifiers for both the client
+ and the server into the context string for an external PSK
+ importer.
+
+ 3. Nodes SHOULD use external PSK importers [RFC9258] when
+ configuring PSKs for a client-server pair when applicable.
+ Importers make provisioning external PSKs easier and less error-
+ prone by deriving a unique, imported PSK from the external PSK
+ for each key derivation function a node supports. See the
+ Security Considerations of [RFC9258] for more information.
+
+ 4. Where possible, the main PSK (that which is fed into the
+ importer) SHOULD be deleted after the imported keys have been
+ generated. This prevents an attacker from bootstrapping a
+ compromise of one node into the ability to attack connections
+ between any node; otherwise, the attacker can recover the main
+ key and then re-run the importer itself.
+
+6.1. Stack Interfaces
+
+ Most major TLS implementations support external PSKs. Stacks
+ supporting external PSKs provide interfaces that applications may use
+ when configuring PSKs for individual connections. Details about some
+ existing stacks at the time of writing are below.
+
+ * OpenSSL and BoringSSL: Applications can specify support for
+ external PSKs via distinct ciphersuites in TLS 1.2 and below.
+ Also, they can then configure callbacks that are invoked for PSK
+ selection during the handshake. These callbacks must provide a
+ PSK identity and key. The exact format of the callback depends on
+ the negotiated TLS protocol version, with new callback functions
+ added specifically to OpenSSL for TLS 1.3 [RFC8446] PSK support.
+ The PSK length is validated to be between 1-256 bytes (inclusive).
+ The PSK identity may be up to 128 bytes long.
+
+ * mbedTLS: Client applications configure PSKs before creating a
+ connection by providing the PSK identity and value inline.
+ Servers must implement callbacks similar to that of OpenSSL. Both
+ PSK identity and key lengths may be between 1-16 bytes long
+ (inclusive).
+
+ * gnuTLS: Applications configure PSK values as either raw byte
+ strings or hexadecimal strings. The PSK identity and key size are
+ not validated.
+
+ * wolfSSL: Applications configure PSKs with callbacks similar to
+ OpenSSL.
+
+6.1.1. PSK Identity Encoding and Comparison
+
+ Section 5.1 of [RFC4279] mandates that the PSK identity should be
+ first converted to a character string and then encoded to octets
+ using UTF-8. This was done to avoid interoperability problems
+ (especially when the identity is configured by human users). On the
+ other hand, [RFC7925] advises implementations against assuming any
+ structured format for PSK identities and recommends byte-by-byte
+ comparison for any operation. When PSK identities are configured
+ manually, it is important to be aware that visually identical strings
+ may, in fact, differ due to encoding issues.
+
+ TLS 1.3 [RFC8446] follows the same practice of specifying the PSK
+ identity as a sequence of opaque bytes (shown as opaque
+ identity<1..2^16-1> in the specification) that thus is compared on a
+ byte-by-byte basis. [RFC8446] also requires that the PSK identities
+ are at least 1 byte and at the most 65535 bytes in length. Although
+ [RFC8446] does not place strict requirements on the format of PSK
+ identities, note that the format of PSK identities can vary depending
+ on the deployment:
+
+ * The PSK identity MAY be a user-configured string when used in
+ protocols like Extensible Authentication Protocol (EAP) [RFC3748].
+ For example, gnuTLS treats PSK identities as usernames.
+
+ * PSK identities MAY have a domain name suffix for roaming and
+ federation. In applications and settings where the domain name
+ suffix is privacy sensitive, this practice is NOT RECOMMENDED.
+
+ * Deployments should take care that the length of the PSK identity
+ is sufficient to avoid collisions.
+
+6.1.2. PSK Identity Collisions
+
+ It is possible, though unlikely, that an external PSK identity may
+ clash with a resumption PSK identity. The TLS stack implementation
+ and sequencing of PSK callbacks influences the application's behavior
+ when identity collisions occur. When a server receives a PSK
+ identity in a TLS 1.3 ClientHello, some TLS stacks execute the
+ application's registered callback function before checking the
+ stack's internal session resumption cache. This means that if a PSK
+ identity collision occurs, the application's external PSK usage will
+ typically take precedence over the internal session resumption path.
+
+ Because resumption PSK identities are assigned by the TLS stack
+ implementation, it is RECOMMENDED that these identifiers be assigned
+ in a manner that lets resumption PSKs be distinguished from external
+ PSKs to avoid concerns with collisions altogether.
+
+7. Privacy Considerations
+
+ PSK privacy properties are orthogonal to security properties
+ described in Section 4. TLS does little to keep PSK identity
+ information private. For example, an adversary learns information
+ about the external PSK or its identifier by virtue of the identifier
+ appearing in cleartext in a ClientHello. As a result, a passive
+ adversary can link two or more connections together that use the same
+ external PSK on the wire. Depending on the PSK identity, a passive
+ attacker may also be able to identify the device, person, or
+ enterprise running the TLS client or TLS server. An active attacker
+ can also use the PSK identity to suppress handshakes or application
+ data from a specific device by blocking, delaying, or rate-limiting
+ traffic. Techniques for mitigating these risks require further
+ analysis and are out of scope for this document.
+
+ In addition to linkability in the network, external PSKs are
+ intrinsically linkable by PSK receivers. Specifically, servers can
+ link successive connections that use the same external PSK together.
+ Preventing this type of linkability is out of scope.
+
+8. Security Considerations
+
+ Security considerations are provided throughout this document. It
+ bears repeating that there are concerns related to the use of
+ external PSKs regarding proper identification of TLS 1.3 endpoints
+ and additional risks when external PSKs are known to a group.
+
+ It is NOT RECOMMENDED to share the same PSK between more than one
+ client and server. However, as discussed in Section 5.1, there are
+ application scenarios that may rely on sharing the same PSK among
+ multiple nodes. [RFC9258] helps in mitigating rerouting and Selfie-
+ style reflection attacks when the PSK is shared among multiple nodes.
+ This is achieved by correctly using the node identifiers in the
+ ImportedIdentity.context construct specified in [RFC9258]. One
+ solution would be for each endpoint to select one globally unique
+ identifier to use in all PSK handshakes. The unique identifier can,
+ for example, be one of its Media Access Control (MAC) addresses, a
+ 32-byte random number, or its Universally Unique IDentifier (UUID)
+ [RFC4122]. Note that such persistent, global identifiers have
+ privacy implications; see Section 7.
+
+ Each endpoint SHOULD know the identifier of the other endpoint with
+ which it wants to connect and SHOULD compare it with the other
+ endpoint's identifier used in ImportedIdentity.context. However, it
+ is important to remember that endpoints sharing the same group PSK
+ can always impersonate each other.
+
+ Considerations for external PSK usage extend beyond proper
+ identification. When early data is used with an external PSK, the
+ random value in the ClientHello is the only source of entropy that
+ contributes to key diversity between sessions. As a result, when an
+ external PSK is used more than one time, the random number source on
+ the client has a significant role in the protection of the early
+ data.
+
+9. IANA Considerations
+
+ This document has no IANA actions.
+
+10. References
+
+10.1. Normative References
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119,
+ DOI 10.17487/RFC2119, March 1997,
+ <https://www.rfc-editor.org/info/rfc2119>.
+
+ [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
+ 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
+ May 2017, <https://www.rfc-editor.org/info/rfc8174>.
+
+ [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
+ Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
+ <https://www.rfc-editor.org/info/rfc8446>.
+
+ [RFC9258] Benjamin, D. and C. A. Wood, "Importing External Pre-
+ Shared Keys (PSKs) for TLS 1.3", RFC 9258,
+ DOI 10.17487/RFC9258, July 2022,
+ <https://www.rfc-editor.org/info/rfc9258>.
+
+10.2. Informative References
+
+ [AASS19] Akhmetzyanova, L., Alekseev, E., Smyshlyaeva, E., and A.
+ Sokolov, "Continuing to reflect on TLS 1.3 with external
+ PSK", April 2019, <https://eprint.iacr.org/2019/421.pdf>.
+
+ [CPACE] Abdalla, M., Haase, B., and J. Hesse, "CPace, a balanced
+ composable PAKE", Work in Progress, Internet-Draft, draft-
+ irtf-cfrg-cpace-06, 24 July 2022,
+ <https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-
+ cpace-06>.
+
+ [CTLS] Rescorla, E., Barnes, R., Tschofenig, H., and B. M.
+ Schwartz, "Compact TLS 1.3", Work in Progress, Internet-
+ Draft, draft-ietf-tls-ctls-06, 9 July 2022,
+ <https://datatracker.ietf.org/doc/html/draft-ietf-tls-
+ ctls-06>.
+
+ [EAP-TLS-PSK]
+ Mattsson, J. P., Sethi, M., Aura, T., and O. Friel, "EAP-
+ TLS with PSK Authentication (EAP-TLS-PSK)", Work in
+ Progress, Internet-Draft, draft-mattsson-emu-eap-tls-psk-
+ 00, 9 March 2020, <https://datatracker.ietf.org/doc/html/
+ draft-mattsson-emu-eap-tls-psk-00>.
+
+ [GAA] ETSI, "Digital cellular telecommunications system (Phase
+ 2+); Universal Mobile Telecommunications System (UMTS);
+ LTE; 3G Security; Generic Authentication Architecture
+ (GAA); System description", version 12.0.0, ETSI TR 133
+ 919, October 2014, <https://www.etsi.org/deliver/
+ etsi_tr/133900_133999/133919/12.00.00_60/
+ tr_133919v120000p.pdf>.
+
+ [Krawczyk] Krawczyk, H., "SIGMA: The 'SIGn-and-MAc' Approach to
+ Authenticated Diffie-Hellman and Its Use in the IKE
+ Protocols", DOI 10.1007/978-3-540-45146-4_24, 2003,
+ <https://link.springer.com/content/
+ pdf/10.1007/978-3-540-45146-4_24.pdf>.
+
+ [LwM2M] Open Mobile Alliance, "Lightweight Machine to Machine
+ Technical Specification", version 1.0, February 2017,
+ <http://www.openmobilealliance.org/release/LightweightM2M/
+ V1_0-20170208-A/OMA-TS-LightweightM2M-
+ V1_0-20170208-A.pdf>.
+
+ [OPAQUE] Bourdrez, D., Krawczyk, H., Lewi, K., and C. A. Wood, "The
+ OPAQUE Asymmetric PAKE Protocol", Work in Progress,
+ Internet-Draft, draft-irtf-cfrg-opaque-09, 6 July 2022,
+ <https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-
+ opaque-09>.
+
+ [RFC2865] Rigney, C., Willens, S., Rubens, A., and W. Simpson,
+ "Remote Authentication Dial In User Service (RADIUS)",
+ RFC 2865, DOI 10.17487/RFC2865, June 2000,
+ <https://www.rfc-editor.org/info/rfc2865>.
+
+ [RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H.
+ Levkowetz, Ed., "Extensible Authentication Protocol
+ (EAP)", RFC 3748, DOI 10.17487/RFC3748, June 2004,
+ <https://www.rfc-editor.org/info/rfc3748>.
+
+ [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally
+ Unique IDentifier (UUID) URN Namespace", RFC 4122,
+ DOI 10.17487/RFC4122, July 2005,
+ <https://www.rfc-editor.org/info/rfc4122>.
+
+ [RFC4279] Eronen, P., Ed. and H. Tschofenig, Ed., "Pre-Shared Key
+ Ciphersuites for Transport Layer Security (TLS)",
+ RFC 4279, DOI 10.17487/RFC4279, December 2005,
+ <https://www.rfc-editor.org/info/rfc4279>.
+
+ [RFC6066] Eastlake 3rd, D., "Transport Layer Security (TLS)
+ Extensions: Extension Definitions", RFC 6066,
+ DOI 10.17487/RFC6066, January 2011,
+ <https://www.rfc-editor.org/info/rfc6066>.
+
+ [RFC6614] Winter, S., McCauley, M., Venaas, S., and K. Wierenga,
+ "Transport Layer Security (TLS) Encryption for RADIUS",
+ RFC 6614, DOI 10.17487/RFC6614, May 2012,
+ <https://www.rfc-editor.org/info/rfc6614>.
+
+ [RFC7925] Tschofenig, H., Ed. and T. Fossati, "Transport Layer
+ Security (TLS) / Datagram Transport Layer Security (DTLS)
+ Profiles for the Internet of Things", RFC 7925,
+ DOI 10.17487/RFC7925, July 2016,
+ <https://www.rfc-editor.org/info/rfc7925>.
+
+ [RFC8773] Housley, R., "TLS 1.3 Extension for Certificate-Based
+ Authentication with an External Pre-Shared Key", RFC 8773,
+ DOI 10.17487/RFC8773, March 2020,
+ <https://www.rfc-editor.org/info/rfc8773>.
+
+ [RFC9147] Rescorla, E., Tschofenig, H., and N. Modadugu, "The
+ Datagram Transport Layer Security (DTLS) Protocol Version
+ 1.3", RFC 9147, DOI 10.17487/RFC9147, April 2022,
+ <https://www.rfc-editor.org/info/rfc9147>.
+
+ [Selfie] Drucker, N. and S. Gueron, "Selfie: reflections on TLS 1.3
+ with PSK", DOI 10.1007/s00145-021-09387-y, May 2021,
+ <https://eprint.iacr.org/2019/347.pdf>.
+
+ [Sethi] Sethi, M., Peltonen, A., and T. Aura, "Misbinding Attacks
+ on Secure Device Pairing and Bootstrapping",
+ DOI 10.1145/3321705.3329813, May 2019,
+ <https://arxiv.org/pdf/1902.07550>.
+
+ [SmartCard]
+ Bundesamt für Sicherheit in der Informationstechnik,
+ "Technical Guideline TR-03112-7 eCard-API-Framework -
+ Protocols", version 1.1.5, April 2015, <https://www.bsi.bu
+ nd.de/SharedDocs/Downloads/DE/BSI/Publikationen/
+ TechnischeRichtlinien/TR03112/TR-
+ 03112-api_teil7.pdf?__blob=publicationFile&v=1>.
+
+Acknowledgements
+
+ This document is the output of the TLS External PSK Design Team,
+ comprised of the following members: Benjamin Beurdouche, Björn Haase,
+ Christopher Wood, Colm MacCarthaigh, Eric Rescorla, Jonathan Hoyland,
+ Martin Thomson, Mohamad Badra, Mohit Sethi, Oleg Pekar, Owen Friel,
+ and Russ Housley.
+
+ This document was improved by high-quality reviews by Ben Kaduk and
+ John Preuß Mattsson.
+
+Authors' Addresses
+
+ Russ Housley
+ Vigil Security, LLC
+ Email: housley@vigilsec.com
+
+
+ Jonathan Hoyland
+ Cloudflare Ltd.
+ Email: jonathan.hoyland@gmail.com
+
+
+ Mohit Sethi
+ Aalto University
+ Email: mohit@iki.fi
+
+
+ Christopher A. Wood
+ Cloudflare
+ Email: caw@heapingbits.net