RFC 9593: Announcing Supported Authentication Methods in the Internet Key Exchange Protocol Version 2 (IKEv2)
- V. Smyslov
Abstract
This specification defines a mechanism that allows implementations
of the Internet Key Exchange Protocol Version 2 (IKEv2) to indicate the list of
supported authentication methods to their peers while establishing IKEv2
Security Associations (SAs). This mechanism improves
interoperabilit
Status of This Memo
This is an Internet Standards Track document.¶
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). Further information on Internet Standards is available in 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://
Copyright Notice
Copyright (c) 2024 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://
1. Introduction
The Internet Key Exchange Protocol Version 2 (IKEv2), defined in [RFC7296], performs authenticated key exchange in IPsec. IKEv2, unlike its predecessor IKEv1, defined in [RFC2409], doesn't include a mechanism to negotiate an authentication method that the peers would use to authenticate each other. It is assumed that each peer selects whichever authentication method it thinks is appropriate, depending on authentication credentials it has.¶
This approach generally works well when there is no ambiguity in selecting authentication credentials. SA establishment failure between peers may occur when there are several credentials of different types configured on one peer, while only some of them are supported on the other peer. Another problem situation is when a single credential may be used to produce different types of authentication tokens (e.g., signatures of different formats). Since IKEv2 requires that each peer use exactly one authentication method, and it doesn't provide means for peers to indicate to the other side which authentication methods they support, the peer that supports a wider range of authentication methods (or authentication token formats) could improperly select a method (or format) that is not supported by the other side.¶
Emerging post-quantum signature algorithms may bring additional challenges for implementations
This specification defines an extension to the IKEv2 protocol that allows peers to announce their supported authentication methods, thus decreasing risks of SA establishment failure in situations when there are several ways for the peers to authenticate themselves.¶
2. Terminology and Notation
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. Protocol Details
When establishing an IKE SA, each party may send to its peer a list of the authentication methods it supports and is configured to use.
For this purpose, this specification introduces a new Notify Message Type SUPPORTED
3.1. Exchanges
The initiator starts the IKE_SA_INIT exchange as usual. If the responder is willing to use this extension, it includes a new notification SUPPORTED
If the initiator doesn't support this extension, it ignores the received notification as an unknown status notify.¶
Regardless of whether the notification is received, if the initiator supports and is willing to use this extension,
it includes the SUPPORTED
Because the responder sends the SUPPORTED
then the responder MAY choose not to send an actual list of the supported authentication
methods in the IKE_SA_INIT exchange and instead ask the initiator to start the IKE
If the initiator receives the empty SUPPORTED
If the responder has sent any CERTREQ payload in the IKE_SA_INIT, then it SHOULD resend the same
payload(s) in the IKE
If multiple IKE
Note that sending the SUPPORTED
3.2. SUPPORTED_AUTH_METHODS Notify Message Type
The format of the SUPPORTED
The Notify payload format is defined in Section 3.10 of [RFC7296].
When a Notify payload of type SUPPORTED
Notification data contains the list of supported authentication methods announcements. Each individual announcement is a variable-size data blob whose format depends on the announced authentication method. The blob always starts with an octet containing the length of the blob followed by an octet containing the authentication method. Authentication methods are represented as values from the "IKEv2 Authentication Method" registry defined in [IKEV2-IANA]. The meaning of the remaining octets of the blob, if any, depends on the authentication method. Note that, for the currently defined authentication methods, the length octet fully defines both the format and the semantics of the blob.¶
If more authentication methods are defined in the future, the corresponding documents must describe the semantics of the announcements for these methods. Implementations MUST ignore announcements whose semantics they don't understand.¶
3.2.1. 2-Octet Announcement
If the announcement contains an authentication method that is not concerned with public key cryptography, then the following format is used.¶
- Length:
- Length of the blob in octets; must be 2 for this case.¶
- Auth Method:
- Announced authentication method.¶
This format is applicable for the authentication methods "Shared Key Message Integrity Code" (2) and "NULL Authentication" (13). Note that the authentication method "Generic Secure Password Authentication Method" (12) would also fall in this category; however, it is negotiated separately (see [RFC6467]), and for this reason there is no point to announce it via this mechanism. See also Section 4.¶
3.2.2. 3-Octet Announcement
If the announcement contains an authentication method that is concerned with public key cryptography, then the following format is used. This format allows linking the announcement with a particular trust anchor from the Certificate Request payload.¶
- Length:
- Length of the blob in octets; must be 3 for this case.¶
- Auth Method:
- Announced authentication method.¶
- Cert Link:
- Links this announcement with a particular CA.¶
If the Cert Link field contains a non-zero value N, it means that the announced authentication method is intended to be used only with the N-th trust anchor (CA certificate) from the Certificate Request payload(s) sent by this peer. If it is zero, then this authentication method may be used with any CA. If multiple CERTREQ payloads were sent, the CAs from all of them are treated as a single list for the purpose of the linking. If no Certificate Request payload were received, the content of this field MUST be ignored and treated as zero.¶
This format is applicable for the authentication methods "RSA Digital Signature" (1), "DSS Digital Signature" (3), "ECDSA with SHA-256 on the P-256 curve" (9), "ECDSA with SHA-384 on the P-384 curve" (10) and "ECDSA with SHA-512 on the P-521 curve" (11). Note, however, that these authentication methods are currently superseded by the "Digital Signature" (14) authentication method, which has a different announcement format, described below.¶
3.2.3. Multi-octet Announcement
The following format is currently used only with the "Digital Signature" (14) authentication method.¶
- Length:
- Length of the blob in octets; must be greater than 3 for this case.¶
- Auth Method:
- Announced authentication method. At the time of writing this document, only value 14 ("Digital Signature") is allowed.¶
- Cert Link:
- Links this announcement with a particular CA; see Section 3.2.2 for details.¶
- Algorithm
Identifier : - The variable-length ASN.1 object that is encoded using Distinguished Encoding Rules (DER) [X.690] and identifies the signature algorithm (see Section 4.1.1.2 of [RFC5280]).¶
The "Digital Signature" authentication method, defined in [RFC7427],
supersedes previously defined signature authentication methods. In this case,
the real authentication algorithm is identified via Algorithm
4. Interaction with IKEv2 Extensions concerning Authentication
Generally in IKEv2 each party independently determines the way it authenticates itself to the peer. In other words, authentication methods selected by the peers need not be the same. However, some IKEv2 extensions break this rule.¶
The prominent example is "Secure Password Framework for Internet Key Exchange Version 2" [RFC6467], which defines a framework for using secure password authentication in IKEv2. With this framework, peers negotiate using one of the secure password methods in the IKE_SA_INIT exchange -- the initiator sends a list of supported methods in the request, and the responder picks one of them and sends it back in the response.¶
If peers negotiate secure password authentication, then the selected method is used by both initiator and responder,
and no other authentication methods are involved. For this reason, there is no point to announce
supported authentication methods in this case. Thus, if the peers choose to go with secure password authentication,
they MUST NOT send the SUPPORTED
In the situation when peers are going to use Multiple Authentication Exchanges [RFC4739],
they MAY include multiple SUPPORTED
5. IANA Considerations
This document defines a new type in the "IKEv2 Notify Message Status Types" registry:¶
6. Security Considerations
Security considerations for the IKEv2 protocol are discussed in [RFC7296]. Security properties of different authentication methods vary. Refer to corresponding documents, listed in the "IKEv2 Authentication Method" registry on [IKEV2-IANA] for discussion of security properties of each authentication method.¶
Announcing authentication methods gives an eavesdropper additional information about peers' capabilities. If a peer advertises "NULL Authentication" along with other methods, then an active on-path attacker can encourage peers to use NULL authentication by removing all other announcements. Note that this is not a real "downgrade" attack, since authentication methods in IKEv2 are not negotiated, and in this case NULL authentication should be allowed by local security policy.¶
Similarly, if an on-path attacker can break some of the announced authentication methods online,
then the attacker can encourage peers to use one of these weaker methods
by removing all other announcements, and if this succeeds, then perform a person
7. References
7.1. Normative References
- [IKEV2-IANA]
-
IANA, "Internet Key Exchange Version 2 (IKEv2) Parameters", <https://
www >..iana .org /assignments /ikev2 -parameters / - [RFC2119]
-
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10
.17487 , , <https:///RFC2119 www >..rfc -editor .org /info /rfc2119 - [RFC5280]
-
Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, DOI 10
.17487 , , <https:///RFC5280 www >..rfc -editor .org /info /rfc5280 - [RFC7296]
-
Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T. Kivinen, "Internet Key Exchange Protocol Version 2 (IKEv2)", STD 79, RFC 7296, DOI 10
.17487 , , <https:///RFC7296 www >..rfc -editor .org /info /rfc7296 - [RFC7427]
-
Kivinen, T. and J. Snyder, "Signature Authentication in the Internet Key Exchange Version 2 (IKEv2)", RFC 7427, DOI 10
.17487 , , <https:///RFC7427 www >..rfc -editor .org /info /rfc7427 - [RFC8174]
-
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10
.17487 , , <https:///RFC8174 www >..rfc -editor .org /info /rfc8174 - [RFC9242]
-
Smyslov, V., "Intermediate Exchange in the Internet Key Exchange Protocol Version 2 (IKEv2)", RFC 9242, DOI 10
.17487 , , <https:///RFC9242 www >..rfc -editor .org /info /rfc9242 - [X.690]
- ITU-T, "Information Technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)", ISO/IEC 8825-1:2021 (E), ITU-T Recommendation X.690, .
7.2. Informative References
- [COMPOSITE-SIGS]
-
Ounsworth, M., Gray, J., Pala, M., and J. Klaussner, "Composite Signatures For Use In Internet PKI", Work in Progress, Internet-Draft, draft
-ietf , , <https://-lamps -pq -composite -sigs -01 datatracker >..ietf .org /doc /html /draft -ietf -lamps -pq -composite -sigs -01 - [RFC2409]
-
Harkins, D. and D. Carrel, "The Internet Key Exchange (IKE)", RFC 2409, DOI 10
.17487 , , <https:///RFC2409 www >..rfc -editor .org /info /rfc2409 - [RFC4739]
-
Eronen, P. and J. Korhonen, "Multiple Authentication Exchanges in the Internet Key Exchange (IKEv2) Protocol", RFC 4739, DOI 10
.17487 , , <https:///RFC4739 www >..rfc -editor .org /info /rfc4739 - [RFC6467]
-
Kivinen, T., "Secure Password Framework for Internet Key Exchange Version 2 (IKEv2)", RFC 6467, DOI 10
.17487 , , <https:///RFC6467 www >..rfc -editor .org /info /rfc6467 - [RFC7383]
-
Smyslov, V., "Internet Key Exchange Protocol Version 2 (IKEv2) Message Fragmentation", RFC 7383, DOI 10
.17487 , , <https:///RFC7383 www >..rfc -editor .org /info /rfc7383
Appendix A. Examples of Announcing Supported Authentication Methods
This appendix shows some examples of announcing authentication methods. This appendix is purely informative; if it disagrees with the body of this document, the other text is considered correct. Note that some payloads that are not relevant to this specification may be omitted for brevity.¶
A.1. No Need to Use the IKE_INTERMEDIATE Exchange
This example illustrates the situation when the SUPPORTED
A.2. With Use of the IKE_INTERMEDIATE Exchange
This example illustrates the situation when the IKE
Acknowledgments
The author would like to thank Paul Wouters for his valuable comments and proposals. The author is also grateful to Daniel Van Geest, who made proposals for protocol improvement. Reese Enghardt and Rifaat Shekh-Yusef contributed to the clarity of the document.¶