| rfc9593.original | rfc9593.txt | |||
|---|---|---|---|---|
| Network Working Group V. Smyslov | Internet Engineering Task Force (IETF) V. Smyslov | |||
| Internet-Draft ELVIS-PLUS | Request for Comments: 9593 ELVIS-PLUS | |||
| Intended status: Standards Track 18 April 2024 | Category: Standards Track July 2024 | |||
| Expires: 20 October 2024 | ISSN: 2070-1721 | |||
| Announcing Supported Authentication Methods in IKEv2 | Announcing Supported Authentication Methods in the Internet Key Exchange | |||
| draft-ietf-ipsecme-ikev2-auth-announce-10 | Protocol Version 2 (IKEv2) | |||
| Abstract | Abstract | |||
| This specification defines a mechanism that allows the Internet Key | This specification defines a mechanism that allows implementations of | |||
| Exchange version 2 (IKEv2) implementations to indicate the list of | the Internet Key Exchange Protocol Version 2 (IKEv2) to indicate the | |||
| supported authentication methods to their peers while establishing | list of supported authentication methods to their peers while | |||
| IKEv2 Security Association (SA). This mechanism improves | establishing IKEv2 Security Associations (SAs). This mechanism | |||
| interoperability when IKEv2 partners are configured with multiple | improves interoperability when IKEv2 partners are configured with | |||
| credentials of different type to authenticate each other. | multiple credentials of different types for authenticating each | |||
| other. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| provisions of BCP 78 and BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 20 October 2024. | 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/rfc9593. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2024 IETF Trust and the persons identified as the | Copyright (c) 2024 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 2. Terminology and Notation . . . . . . . . . . . . . . . . . . 3 | 2. Terminology and Notation | |||
| 3. Protocol Details . . . . . . . . . . . . . . . . . . . . . . 3 | 3. Protocol Details | |||
| 3.1. Exchanges . . . . . . . . . . . . . . . . . . . . . . . . 3 | 3.1. Exchanges | |||
| 3.2. SUPPORTED_AUTH_METHODS Notify . . . . . . . . . . . . . . 6 | 3.2. SUPPORTED_AUTH_METHODS Notify Message Type | |||
| 3.2.1. 2-octet Announcement . . . . . . . . . . . . . . . . 7 | 3.2.1. 2-Octet Announcement | |||
| 3.2.2. 3-octet Announcement . . . . . . . . . . . . . . . . 8 | 3.2.2. 3-Octet Announcement | |||
| 3.2.3. Multi-octet Announcement . . . . . . . . . . . . . . 8 | 3.2.3. Multi-octet Announcement | |||
| 4. Interaction with IKEv2 Extensions concerning | 4. Interaction with IKEv2 Extensions concerning Authentication | |||
| Authentication . . . . . . . . . . . . . . . . . . . . . 9 | 5. IANA Considerations | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 6. Security Considerations | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | 7. References | |||
| 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 11 | 7.1. Normative References | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 7.2. Informative References | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 11 | ||||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 12 | ||||
| Appendix A. Examples of Announcing Supported Authentication | Appendix A. Examples of Announcing Supported Authentication | |||
| Methods . . . . . . . . . . . . . . . . . . . . . . . . . 12 | Methods | |||
| A.1. No Need to Use the IKE_INTERMEDIATE Exchange . . . . . . 13 | A.1. No Need to Use the IKE_INTERMEDIATE Exchange | |||
| A.2. With Use of the IKE_INTERMEDIATE Exchange . . . . . . . . 13 | A.2. With Use of the IKE_INTERMEDIATE Exchange | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 14 | Acknowledgments | |||
| Author's Address | ||||
| 1. Introduction | 1. Introduction | |||
| The Internet Key Exchange version 2 (IKEv2) protocol, defined in | The Internet Key Exchange Protocol Version 2 (IKEv2), defined in | |||
| [RFC7296], performs authenticated key exchange in IPsec. IKEv2, | [RFC7296], performs authenticated key exchange in IPsec. IKEv2, | |||
| unlike its predecessor IKEv1, defined in [RFC2409], doesn't include a | unlike its predecessor IKEv1, defined in [RFC2409], doesn't include a | |||
| mechanism to negotiate an authentication method that the peers would | mechanism to negotiate an authentication method that the peers would | |||
| use to authenticate each other. It is assumed that each peer selects | use to authenticate each other. It is assumed that each peer selects | |||
| whatever authentication method it thinks is appropriate, depending on | whichever authentication method it thinks is appropriate, depending | |||
| authentication credentials it has. | on authentication credentials it has. | |||
| This approach generally works well when there is no ambiguity in | This approach generally works well when there is no ambiguity in | |||
| selecting authentication credentials. SA establishment failure | selecting authentication credentials. SA establishment failure | |||
| between peers may arise when there are several credentials of | between peers may occur when there are several credentials of | |||
| different types configured on one peer, while only some of them are | different types configured on one peer, while only some of them are | |||
| supported on the other peer. Another problem situation is when a | supported on the other peer. Another problem situation is when a | |||
| single credential may be used to produce different types of | single credential may be used to produce different types of | |||
| authentication tokens (e.g. signatures of different formats). Since | authentication tokens (e.g., signatures of different formats). Since | |||
| IKEv2 requires that each peer uses exactly one authentication method | IKEv2 requires that each peer use exactly one authentication method, | |||
| and doesn't provide means for peers to indicate to the other side | and it doesn't provide means for peers to indicate to the other side | |||
| which authentication methods they support, it is possible that in | which authentication methods they support, the peer that supports a | |||
| these situations the peer that supports wider range of authentication | wider range of authentication methods (or authentication token | |||
| methods (or authentication token formats) improperly selects the | formats) could improperly select a method (or format) that is not | |||
| method (or format) which is not supported by the other side. | supported by the other side. | |||
| Emerging post-quantum signature algorithms may bring additional | Emerging post-quantum signature algorithms may bring additional | |||
| challenges for implementations, especially if so-called hybrid | challenges for implementations, especially if so-called hybrid | |||
| schemes are used (e.g. see [I-D.ounsworth-pq-composite-sigs]). | schemes are used (e.g., see [COMPOSITE-SIGS]). | |||
| This specification defines an extension to the IKEv2 protocol that | This specification defines an extension to the IKEv2 protocol that | |||
| allows peers to announce their supported authentication methods, thus | allows peers to announce their supported authentication methods, thus | |||
| decreasing risks of SA establishment failure in situations when there | decreasing risks of SA establishment failure in situations when there | |||
| are several ways for the peers to authenticate themselves. | are several ways for the peers to authenticate themselves. | |||
| 2. Terminology and Notation | 2. Terminology and Notation | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 3. Protocol Details | 3. Protocol Details | |||
| When establishing IKE SA each party may send a list of authentication | When establishing an IKE SA, each party may send to its peer a list | |||
| methods it supports and is configured to use to its peer. For this | of the authentication methods it supports and is configured to use. | |||
| purpose this specification introduces a new Notify Message Type | For this purpose, this specification introduces a new Notify Message | |||
| SUPPORTED_AUTH_METHODS. The Notify payload with this Notify Message | Type SUPPORTED_AUTH_METHODS. The Notify payload with this Notify | |||
| Type is utilized to convey the supported authentication methods of | Message Type is utilized to convey the supported authentication | |||
| the party sending it. The sending party may additionally specify | methods of the party sending it. The sending party may additionally | |||
| that some of the authentication methods are only for use with the | specify that some of the authentication methods are only for use with | |||
| particular trust anchors. The receiving party may take this | the particular trust anchors. The receiving party may take this | |||
| information into consideration when selecting an algorithm for its | information into consideration when selecting an algorithm for its | |||
| authentication (i.e., the algorithm used for calculation of the AUTH | authentication (i.e., the algorithm used for calculation of the AUTH | |||
| payload) if several alternatives are available. To simplify the | payload) if several alternatives are available. To simplify the | |||
| receiver's task of linking the announced authentication methods with | receiver's task of linking the announced authentication methods with | |||
| the trust anchors, the protocol ensures that the | the trust anchors, the protocol ensures that the | |||
| SUPPORTED_AUTH_METHODS notification is always co-located with the | SUPPORTED_AUTH_METHODS notification is always co-located with the | |||
| CERTREQ payload in the same message. | CERTREQ payload in the same message. | |||
| 3.1. Exchanges | 3.1. Exchanges | |||
| skipping to change at page 4, line 26 ¶ | skipping to change at line 166 ¶ | |||
| Initiator Responder | Initiator Responder | |||
| ----------- ----------- | ----------- ----------- | |||
| HDR, SK {IDi, [CERT,] [CERTREQ,] | HDR, SK {IDi, [CERT,] [CERTREQ,] | |||
| [IDr,] AUTH, SAi2, TSi, TSr, | [IDr,] AUTH, SAi2, TSi, TSr, | |||
| [N(SUPPORTED_AUTH_METHODS)(...)] } --> | [N(SUPPORTED_AUTH_METHODS)(...)] } --> | |||
| <-- HDR, SK {IDr, [CERT,] | <-- HDR, SK {IDr, [CERT,] | |||
| AUTH, SAr2, TSi, TSr } | AUTH, SAr2, TSi, TSr } | |||
| Figure 2: The IKE_AUTH Exchange | Figure 2: The IKE_AUTH Exchange | |||
| Since the responder sends the SUPPORTED_AUTH_METHODS notification in | Because the responder sends the SUPPORTED_AUTH_METHODS notification | |||
| the IKE_SA_INIT exchange, it must take care that the size of the | in the IKE_SA_INIT exchange, it must take into account that the | |||
| response message wouldn't grow too much so that IP fragmentation | response message could grow so much that the IP fragmentation might | |||
| takes place. If both of the following conditions are met: | take place. | |||
| * the SUPPORTED_AUTH_METHODS notification to be included is so | * the SUPPORTED_AUTH_METHODS notification to be included is so | |||
| large, that the responder suspects that IP fragmentation of the | large, that the responder suspects that IP fragmentation of the | |||
| resulting IKE_SA_INIT response message may happen; | resulting IKE_SA_INIT response message may happen; | |||
| * both peers support the IKE_INTERMEDIATE exchange, defined in | * both peers support the IKE_INTERMEDIATE exchange, defined in | |||
| [RFC9242] (i.e. the responder has received and is going to send | [RFC9242] (i.e., the responder has received and is going to send | |||
| the INTERMEDIATE_EXCHANGE_SUPPORTED notification); | the INTERMEDIATE_EXCHANGE_SUPPORTED notification); | |||
| then the responder MAY choose not to send actual list of the | then the responder MAY choose not to send an actual list of the | |||
| supported authentication methods in the IKE_SA_INIT exchange and | supported authentication methods in the IKE_SA_INIT exchange and | |||
| instead ask the initiator to start the IKE_INTERMEDIATE exchange for | instead ask the initiator to start the IKE_INTERMEDIATE exchange for | |||
| the list to be sent in. This would allow using IKE fragmentation | the list to be sent in. This would allow using IKE fragmentation | |||
| [RFC7383] for long messages (which cannot be used in the IKE_SA_INIT | [RFC7383] for long messages (which cannot be used in the IKE_SA_INIT | |||
| exchange), thus avoiding IP fragmentation. In this case the | exchange), thus avoiding IP fragmentation. In this case, the | |||
| responder includes SUPPORTED_AUTH_METHODS notification containing no | responder includes a SUPPORTED_AUTH_METHODS notification containing | |||
| data in the IKE_SA_INIT response. | no data in the IKE_SA_INIT response. | |||
| If the initiator receives the empty SUPPORTED_AUTH_METHODS | If the initiator receives the empty SUPPORTED_AUTH_METHODS | |||
| notification in the IKE_SA_INIT exchange, it means that the responder | notification in the IKE_SA_INIT exchange, it means that the responder | |||
| is going to send the list of the supported authentication methods in | is going to send the list of the supported authentication methods in | |||
| the IKE_INTERMEDIATE exchange. If this exchange is to be initiated | the IKE_INTERMEDIATE exchange. If this exchange is to be initiated | |||
| anyway for some other reason, then the responder MAY use it to send | anyway for some other reason, then the responder MAY use it to send | |||
| the SUPPORTED_AUTH_METHODS notification. Otherwise, the initiator | the SUPPORTED_AUTH_METHODS notification. Otherwise, the initiator | |||
| MAY start the IKE_INTERMEDIATE exchange just for this sole purpose by | MAY start the IKE_INTERMEDIATE exchange for this sole purpose by | |||
| sending an empty IKE_INTERMEDIATE request. The initiator MAY also | sending an empty IKE_INTERMEDIATE request. The initiator MAY also | |||
| indicate its identity (and possibly the perceived responder's | indicate its identity (and possibly the perceived responder's | |||
| identity too) by including the IDi payload (possibly along with the | identity too) by including the IDi payload (possibly along with the | |||
| IDr payload) into the IKE_INTERMEDIATE request. This information | IDr payload) in the IKE_INTERMEDIATE request. This information could | |||
| could help the responder to send back only those authentication | help the responder to send back only those authentication methods | |||
| methods, that are configured to be used for authentication of this | that are configured to be used for authentication of this particular | |||
| particular initiator. If these payloads are sent, they MUST be | initiator. If these payloads are sent, they MUST be identical to the | |||
| identical to the IDi/IDr payloads sent later in the IKE_AUTH request. | IDi/IDr payloads sent later in the IKE_AUTH request. | |||
| If the responder has sent any CERTREQ payload in the IKE_SA_INIT, | If the responder has sent any CERTREQ payload in the IKE_SA_INIT, | |||
| then it SHOULD re-send the same payload(s) in the IKE_INTERMEDIATE | then it SHOULD resend the same payload(s) in the IKE_INTERMEDIATE | |||
| response containing the SUPPORTED_AUTH_METHODS notification if any of | response containing the SUPPORTED_AUTH_METHODS notification if any of | |||
| the included Announcements has a non-zero Cert Link field (see | the included Announcements has a non-zero Cert Link field (see | |||
| Section 3.2.2 and Section 3.2.3). This requirement allows peers to | Sections 3.2.2 and 3.2.3). This requirement allows peers to have a | |||
| have a list of Announcements and a list of CAs in the same message, | list of Announcements and a list of CAs in the same message, which | |||
| which simplifies their linking (note, that this requirement is always | simplifies their linking. Note that this requirement is always | |||
| fulfilled for the IKE_SA_INIT and IKE_AUTH exchanges). However, if | fulfilled for the IKE_SA_INIT and IKE_AUTH exchanges. However, if | |||
| for any reason the responder doesn't re-send CERTREQ payload(s) in | for any reason the responder doesn't resend CERTREQ payload(s) in the | |||
| the IKE_INTERMEDIATE exchange, then the initiator MUST NOT abort | IKE_INTERMEDIATE exchange, then the initiator MUST NOT abort | |||
| negotiation. Instead, the initiator MAY either link the | negotiation. Instead, the initiator MAY either link the | |||
| Announcements to the CAs received in the IKE_SA_INIT response, or MAY | Announcements to the CAs received in the IKE_SA_INIT response, or it | |||
| ignore the Announcements containing links to CAs. | MAY ignore the Announcements containing links to CAs. | |||
| If multiple IKE_INTERMEDIATE exchanges take place during IKE SA | If multiple IKE_INTERMEDIATE exchanges take place during IKE SA | |||
| establishments, it is RECOMMENDED that the responder use the last | establishments, it is RECOMMENDED that the responder use the last | |||
| IKE_INTERMEDIATE exchange (the one just before IKE_AUTH) to send the | IKE_INTERMEDIATE exchange (the one just before IKE_AUTH) to send the | |||
| list of supported auth methods. However, it is not always possible | list of supported authentication methods. However, it is not always | |||
| for the responder to know how many IKE_INTERMEDIATE exchanges the | possible for the responder to know how many IKE_INTERMEDIATE | |||
| initiator will use. In this case the responder MAY send the list in | exchanges the initiator will use. In this case the responder MAY | |||
| any IKE_INTERMEDIATE exchange. If the initiator sends IDi/IDr in an | send the list in any IKE_INTERMEDIATE exchange. If the initiator | |||
| IKE_INTERMEDIATE request, then it is RECOMMENDED that the responder | sends IDi/IDr in an IKE_INTERMEDIATE request, then it is RECOMMENDED | |||
| sends back the list of authentication methods in the response. | that the responder sends back the list of authentication methods in | |||
| the response. | ||||
| Initiator Responder | Initiator Responder | |||
| ----------- ----------- | ----------- ----------- | |||
| HDR, SAi1, KEi, Ni --> | HDR, SAi1, KEi, Ni --> | |||
| <-- HDR, SAr1, KEr, Nr, [CERTREQ,] | <-- HDR, SAr1, KEr, Nr, [CERTREQ,] | |||
| [N(SUPPORTED_AUTH_METHODS)()] | [N(SUPPORTED_AUTH_METHODS)()] | |||
| HDR, SK {..., [IDi, [IDr,]]} --> | HDR, SK {..., [IDi, [IDr,]]} --> | |||
| <-- HDR, SK {..., [CERTREQ,] | <-- HDR, SK {..., [CERTREQ,] | |||
| [N(SUPPORTED_AUTH_METHODS)(...)] } | [N(SUPPORTED_AUTH_METHODS)(...)] } | |||
| HDR, SK {IDi, [CERT,] [CERTREQ,] | HDR, SK {IDi, [CERT,] [CERTREQ,] | |||
| [IDr,] AUTH, SAi2, TSi, TSr, | [IDr,] AUTH, SAi2, TSi, TSr, | |||
| [N(SUPPORTED_AUTH_METHODS)(...)] } --> | [N(SUPPORTED_AUTH_METHODS)(...)] } --> | |||
| <-- HDR, SK {IDr, [CERT,] | <-- HDR, SK {IDr, [CERT,] | |||
| AUTH, SAr2, TSi, TSr } | AUTH, SAr2, TSi, TSr } | |||
| Figure 3: Using the IKE_INTERMEDIATE Exchange for sending auth | Figure 3: Using the IKE_INTERMEDIATE Exchange for Sending | |||
| methods | Authentication Methods | |||
| Note, that sending the SUPPORTED_AUTH_METHODS notification and using | Note that sending the SUPPORTED_AUTH_METHODS notification and using | |||
| information obtained from it is optional for both the initiator and | information obtained from it are optional for both the initiator and | |||
| the responder. If multiple SUPPORTED_AUTH_METHODS notifications are | the responder. If multiple SUPPORTED_AUTH_METHODS notifications are | |||
| included in a message, all their announcements form a single ordered | included in a message, all their announcements form a single ordered | |||
| list, unless overridden by other extension (see Section 4). | list, unless overridden by other extension (see Section 4). | |||
| 3.2. SUPPORTED_AUTH_METHODS Notify | 3.2. SUPPORTED_AUTH_METHODS Notify Message Type | |||
| The format of the SUPPORTED_AUTH_METHODS notification is shown below. | The format of the SUPPORTED_AUTH_METHODS Notify payload is shown | |||
| below. | ||||
| 1 2 3 | 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Next Payload |C| RESERVED | Payload Length | | | Next Payload |C| RESERVED | Payload Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Protocol ID | SPI Size | Notify Message Type | | | Protocol ID | SPI Size | Notify Message Type | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| ~ List of Supported Auth Methods Announcements ~ | ~ List of Supported Auth Methods Announcements ~ | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 4: SUPPORTED_AUTH_METHODS Notify | Figure 4: SUPPORTED_AUTH_METHODS Notify Payload Format | |||
| The Notify payload format is defined in Section 3.10 of [RFC7296]. | The Notify payload format is defined in Section 3.10 of [RFC7296]. | |||
| When a Notify payload of type SUPPORTED_AUTH_METHODS is sent, the | When a Notify payload of type SUPPORTED_AUTH_METHODS is sent, the | |||
| Protocol ID field is set to 0, the SPI Size is set to 0, meaning | Protocol ID field is set to 0, the SPI Size is set to 0 (meaning | |||
| there is no SPI field, and the Notify Message Type is set to <TBA by | there is no SPI field), and the Notify Message Type is set to 16443. | |||
| IANA>. | ||||
| Notification data contains the list of supported authentication | Notification data contains the list of supported authentication | |||
| methods announcements. Each individual announcement is a variable- | methods announcements. Each individual announcement is a variable- | |||
| size data blob, which format depends on the announced authentication | size data blob whose format depends on the announced authentication | |||
| method. The blob always starts with an octet containing the length | method. The blob always starts with an octet containing the length | |||
| of the blob followed by an octet containing the authentication | of the blob followed by an octet containing the authentication | |||
| method. Authentication methods are represented as values from the | method. Authentication methods are represented as values from the | |||
| "IKEv2 Authentication Method" registry defined in [IKEV2-IANA]. The | "IKEv2 Authentication Method" registry defined in [IKEV2-IANA]. The | |||
| meaning of the remaining octets of the blob, if any, depends on the | meaning of the remaining octets of the blob, if any, depends on the | |||
| authentication method. Note, that for the currently defined | authentication method. Note that, for the currently defined | |||
| authentication methods the length octet fully defines both the format | authentication methods, the length octet fully defines both the | |||
| and the semantics of the blob. | format and the semantics of the blob. | |||
| If more authentication methods are defined in the future, the | If more authentication methods are defined in the future, the | |||
| corresponding documents must describe the semantics of the | corresponding documents must describe the semantics of the | |||
| announcements for these methods. Implementations MUST ignore | announcements for these methods. Implementations MUST ignore | |||
| announcements whose semantics they don't understand. | announcements whose semantics they don't understand. | |||
| 3.2.1. 2-octet Announcement | 3.2.1. 2-Octet Announcement | |||
| If the announcement contains an authentication method that is not | If the announcement contains an authentication method that is not | |||
| concerned with public key cryptography, then the following format is | concerned with public key cryptography, then the following format is | |||
| used. | used. | |||
| 1 | 1 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Length (=2) | Auth Method | | | Length (=2) | Auth Method | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 5: Supported Authentication Method | Figure 5: 2-Octet Announcement Format | |||
| * Length - Length of the blob in octets, must be 2 for this case. | Length: Length of the blob in octets; must be 2 for this case. | |||
| * Auth Method - Announced authentication method. | Auth Method: Announced authentication method. | |||
| This format is applicable for the authentication methods "Shared Key | This format is applicable for the authentication methods "Shared Key | |||
| Message Integrity Code" (2) and "NULL Authentication" (13). Note, | Message Integrity Code" (2) and "NULL Authentication" (13). Note | |||
| that authentication method "Generic Secure Password Authentication | that the authentication method "Generic Secure Password | |||
| Method" (12) would also fall in this category, however it is | Authentication Method" (12) would also fall in this category; | |||
| negotiated separately (see [RFC6467]) and for this reason there is no | however, it is negotiated separately (see [RFC6467]), and for this | |||
| point to announce it via this mechanism. See also Section 4. | reason there is no point to announce it via this mechanism. See also | |||
| Section 4. | ||||
| 3.2.2. 3-octet Announcement | 3.2.2. 3-Octet Announcement | |||
| If the announcement contains an authentication method that is | If the announcement contains an authentication method that is | |||
| concerned with public key cryptography, then the following format is | concerned with public key cryptography, then the following format is | |||
| used. This format allows linking the announcement with a particular | used. This format allows linking the announcement with a particular | |||
| trust anchor from the Certificate Request payload. | trust anchor from the Certificate Request payload. | |||
| 1 2 | 1 2 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Length (=3) | Auth Method | Cert Link | | | Length (=3) | Auth Method | Cert Link | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 6: Supported Authentication Method | Figure 6: 3-Octet Announcement Format | |||
| * Length - Length of the blob in octets, must be 3 for this case. | Length: Length of the blob in octets; must be 3 for this case. | |||
| * Auth Method - Announced authentication method. | Auth Method: Announced authentication method. | |||
| * Cert Link - Links this announcement with particular CA. | Cert Link: Links this announcement with a particular CA. | |||
| If the Cert Link field contains non-zero value N, it means that the | 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 | announced authentication method is intended to be used only with the | |||
| N-th trust anchor (CA certificate) from the Certificate Request | N-th trust anchor (CA certificate) from the Certificate Request | |||
| payload(s) sent by this peer. If it is zero, then this | payload(s) sent by this peer. If it is zero, then this | |||
| authentication method may be used with any CA. If multiple CERTREQ | 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 | 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 | list for the purpose of the linking. If no Certificate Request | |||
| payload were received, the content of this field MUST be ignored and | payload were received, the content of this field MUST be ignored and | |||
| treated as zero. | treated as zero. | |||
| This format is applicable for the authentication methods "RSA Digital | This format is applicable for the authentication methods "RSA Digital | |||
| Signature" (1), "DSS Digital Signature" (3), "ECDSA with SHA-256 on | 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) | 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 | and "ECDSA with SHA-512 on the P-521 curve" (11). Note, however, | |||
| these authentication methods are currently superseded by the "Digital | that these authentication methods are currently superseded by the | |||
| Signature" (14) authentication method, which has a different | "Digital Signature" (14) authentication method, which has a different | |||
| announcement format, described below. | announcement format, described below. | |||
| 3.2.3. Multi-octet Announcement | 3.2.3. Multi-octet Announcement | |||
| The following format is currently used only with the "Digital | The following format is currently used only with the "Digital | |||
| Signature" (14) authentication method. | Signature" (14) authentication method. | |||
| 1 2 3 | 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Length (>3) | Auth Method | Cert Link | | | | Length (>3) | Auth Method | Cert Link | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | |||
| | | | | | | |||
| ~ AlgorithmIdentifier ASN.1 object ~ | ~ AlgorithmIdentifier ~ | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 7: Supported Authentication Method | Figure 7: Multi-octet Announcement Format | |||
| * Length - Length of the blob in octets, must be greater than 3 for | Length: Length of the blob in octets; must be greater than 3 for | |||
| this case. | this case. | |||
| * Auth Method - Announced authentication method, at the time of | Auth Method: Announced authentication method. At the time of | |||
| writing this document only value 14 ("Digital Signature") is | writing this document, only value 14 ("Digital Signature") is | |||
| allowed. | allowed. | |||
| * Cert Link - Links this announcement with particular CA; see | Cert Link: Links this announcement with a particular CA; see | |||
| Section 3.2.2 for details. | Section 3.2.2 for details. | |||
| * AlgorithmIdentifier ASN.1 object - the AlgorithmIdentifier of PKIX | AlgorithmIdentifier: The variable-length ASN.1 object that is | |||
| (see Section 4.1.1.2 of [RFC5280]), encoded using distinguished | encoded using Distinguished Encoding Rules (DER) [X.690] and | |||
| encoding rules (DER) [X.690]. | identifies the signature algorithm (see Section 4.1.1.2 of | |||
| [RFC5280]). | ||||
| The "Digital Signature" authentication method, defined in [RFC7427], | The "Digital Signature" authentication method, defined in [RFC7427], | |||
| supersedes previously defined signature authentication methods. In | supersedes previously defined signature authentication methods. In | |||
| this case the real authentication algorithm is identified via | this case, the real authentication algorithm is identified via | |||
| AlgorithmIdentifier ASN.1 object. Appendix A in [RFC7427] contains | AlgorithmIdentifier ASN.1 object. Appendix A of [RFC7427] contains | |||
| examples of Commonly Used ASN.1 Objects. | examples of commonly used ASN.1 objects. | |||
| 4. Interaction with IKEv2 Extensions concerning Authentication | 4. Interaction with IKEv2 Extensions concerning Authentication | |||
| Generally in IKEv2 each party independently determines the way it | Generally in IKEv2 each party independently determines the way it | |||
| authenticates itself to the peer. In other words, authentication | authenticates itself to the peer. In other words, authentication | |||
| methods selected by the peers need not be the same. However, some | methods selected by the peers need not be the same. However, some | |||
| IKEv2 extensions break this rule. | IKEv2 extensions break this rule. | |||
| The prominent example is [RFC6467], (Secure Password Framework for | The prominent example is "Secure Password Framework for Internet Key | |||
| Internet Key Exchange Version 2), which defines a framework for using | Exchange Version 2" [RFC6467], which defines a framework for using | |||
| Password-authenticated key exchanges (PAKE) in IKEv2. With this | secure password authentication in IKEv2. With this framework, peers | |||
| framework peers negotiate using one of PAKE methods in the | negotiate using one of the secure password methods in the IKE_SA_INIT | |||
| IKE_SA_INIT exchange - the initiator sends a list of supported PAKE | exchange -- the initiator sends a list of supported methods in the | |||
| methods in the request and the responder picks one of them and sends | request, and the responder picks one of them and sends it back in the | |||
| it back in the response. | response. | |||
| If peers negotiate PAKE for authentication, then the selected PAKE | If peers negotiate secure password authentication, then the selected | |||
| method is used by both initiator and responder and no other | method is used by both initiator and responder, and no other | |||
| authentication methods are involved. For this reason there is no | authentication methods are involved. For this reason, there is no | |||
| point to announce supported authentication methods in this case. | point to announce supported authentication methods in this case. | |||
| Thus, if the peers choose to go with PAKE, they MUST NOT send the | Thus, if the peers choose to go with secure password authentication, | |||
| SUPPORTED_AUTH_METHODS notification. | they MUST NOT send the SUPPORTED_AUTH_METHODS notification. | |||
| If peers are going to use Multiple Authentication Exchanges | In the situation when peers are going to use Multiple Authentication | |||
| [RFC4739], then they MAY include multiple SUPPORTED_AUTH_METHODS | Exchanges [RFC4739], they MAY include multiple SUPPORTED_AUTH_METHODS | |||
| notifications instead of one, each containing authentication methods | notifications (instead of one), each containing authentication | |||
| appropriate for each authentication round. The notifications are | methods appropriate for each authentication round. The notifications | |||
| included in the order of the preference of performing authentication | are included in the order of the preference of performing | |||
| rounds. | authentication rounds. | |||
| 5. Security Considerations | 5. IANA Considerations | |||
| Security considerations for IKEv2 protocol are discussed in | This document defines a new type in the "IKEv2 Notify Message Status | |||
| Types" registry: | ||||
| +=======+============================+===========+ | ||||
| | Value | Notify Message Status Type | Reference | | ||||
| +=======+============================+===========+ | ||||
| | 16443 | SUPPORTED_AUTH_METHODS | RFC 9593 | | ||||
| +-------+----------------------------+-----------+ | ||||
| Table 1 | ||||
| 6. Security Considerations | ||||
| Security considerations for the IKEv2 protocol are discussed in | ||||
| [RFC7296]. Security properties of different authentication methods | [RFC7296]. Security properties of different authentication methods | |||
| varies. Refer to corresponding documents, listed in [IKEV2-IANA] for | vary. Refer to corresponding documents, listed in the "IKEv2 | |||
| discussion of security properties of each authentication method. | Authentication Method" registry on [IKEV2-IANA] for discussion of | |||
| security properties of each authentication method. | ||||
| Announcing authentication methods gives an eavesdropper additional | Announcing authentication methods gives an eavesdropper additional | |||
| information about peers' capabilities. If a peer advertises NULL | information about peers' capabilities. If a peer advertises "NULL | |||
| authentication along with other methods, then active attacker on the | Authentication" along with other methods, then an active on-path | |||
| path can encourage peers to use NULL authentication by removing all | attacker can encourage peers to use NULL authentication by removing | |||
| other announcements. Note, that this is not a real "downgrade" | all other announcements. Note that this is not a real "downgrade" | |||
| attack, since authentication methods in IKEv2 are not negotiated and | attack, since authentication methods in IKEv2 are not negotiated, and | |||
| in this case NULL authentication should be allowed by local security | in this case NULL authentication should be allowed by local security | |||
| policy. | policy. | |||
| Similarly, if an attacker on the path can break some of the announced | Similarly, if an on-path attacker can break some of the announced | |||
| authentication methods online, then the attacker can encourage peers | authentication methods online, then the attacker can encourage peers | |||
| to use one of these weaker methods by removing all other | to use one of these weaker methods by removing all other | |||
| announcements, and if this succeeds, then perform person-in-the- | announcements, and if this succeeds, then perform a person-in-the- | |||
| middle attack. | middle attack. | |||
| 6. IANA Considerations | 7. References | |||
| This document defines a new Notify Message Type in the "IKEv2 Notify | ||||
| Message Status Types" registry referencing this RFC: | ||||
| <TBA> SUPPORTED_AUTH_METHODS [RFCXXXX] | ||||
| 7. 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. | ||||
| 8. References | 7.1. Normative References | |||
| 8.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 | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | Housley, R., and W. Polk, "Internet X.509 Public Key | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | Infrastructure Certificate and Certificate Revocation List | |||
| (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, | ||||
| <https://www.rfc-editor.org/info/rfc5280>. | ||||
| [RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T. | [RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T. | |||
| Kivinen, "Internet Key Exchange Protocol Version 2 | Kivinen, "Internet Key Exchange Protocol Version 2 | |||
| (IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October | (IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October | |||
| 2014, <https://www.rfc-editor.org/info/rfc7296>. | 2014, <https://www.rfc-editor.org/info/rfc7296>. | |||
| [RFC7427] Kivinen, T. and J. Snyder, "Signature Authentication in | [RFC7427] Kivinen, T. and J. Snyder, "Signature Authentication in | |||
| the Internet Key Exchange Version 2 (IKEv2)", RFC 7427, | the Internet Key Exchange Version 2 (IKEv2)", RFC 7427, | |||
| DOI 10.17487/RFC7427, January 2015, | DOI 10.17487/RFC7427, January 2015, | |||
| <https://www.rfc-editor.org/info/rfc7427>. | <https://www.rfc-editor.org/info/rfc7427>. | |||
| [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| Housley, R., and W. Polk, "Internet X.509 Public Key | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| Infrastructure Certificate and Certificate Revocation List | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, | ||||
| <https://www.rfc-editor.org/info/rfc5280>. | ||||
| [RFC9242] Smyslov, V., "Intermediate Exchange in the Internet Key | [RFC9242] Smyslov, V., "Intermediate Exchange in the Internet Key | |||
| Exchange Protocol Version 2 (IKEv2)", RFC 9242, | Exchange Protocol Version 2 (IKEv2)", RFC 9242, | |||
| DOI 10.17487/RFC9242, May 2022, | DOI 10.17487/RFC9242, May 2022, | |||
| <https://www.rfc-editor.org/info/rfc9242>. | <https://www.rfc-editor.org/info/rfc9242>. | |||
| [X.690] "ITU-T Recommendation X.690 (2002) | ISO/IEC 8825-1:2002, | [X.690] ITU-T, "Information Technology - ASN.1 encoding rules: | |||
| Information technology – ASN.1 encoding rules: | ||||
| Specification of Basic Encoding Rules (BER), Canonical | Specification of Basic Encoding Rules (BER), Canonical | |||
| Encoding Rules (CER) and Distinguished Encoding Rules | Encoding Rules (CER) and Distinguished Encoding Rules | |||
| (DER)", July 2002. | (DER)", ISO/IEC 8825-1:2021 (E), ITU-T | |||
| Recommendation X.690, February 2021. | ||||
| [IKEV2-IANA] | 7.2. Informative References | |||
| IANA, "Internet Key Exchange Version 2 (IKEv2) | ||||
| Parameters", <https://www.iana.org/assignments/ikev2- | ||||
| parameters/ikev2-parameters.xhtml#ikev2-parameters-12>. | ||||
| 8.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-lamps-pq-composite- | ||||
| sigs-01, 24 May 2024, | ||||
| <https://datatracker.ietf.org/doc/html/draft-ietf-lamps- | ||||
| pq-composite-sigs-01>. | ||||
| [RFC2409] Harkins, D. and D. Carrel, "The Internet Key Exchange | [RFC2409] Harkins, D. and D. Carrel, "The Internet Key Exchange | |||
| (IKE)", RFC 2409, DOI 10.17487/RFC2409, November 1998, | (IKE)", RFC 2409, DOI 10.17487/RFC2409, November 1998, | |||
| <https://www.rfc-editor.org/info/rfc2409>. | <https://www.rfc-editor.org/info/rfc2409>. | |||
| [RFC4739] Eronen, P. and J. Korhonen, "Multiple Authentication | [RFC4739] Eronen, P. and J. Korhonen, "Multiple Authentication | |||
| Exchanges in the Internet Key Exchange (IKEv2) Protocol", | Exchanges in the Internet Key Exchange (IKEv2) Protocol", | |||
| RFC 4739, DOI 10.17487/RFC4739, November 2006, | RFC 4739, DOI 10.17487/RFC4739, November 2006, | |||
| <https://www.rfc-editor.org/info/rfc4739>. | <https://www.rfc-editor.org/info/rfc4739>. | |||
| [RFC6467] Kivinen, T., "Secure Password Framework for Internet Key | [RFC6467] Kivinen, T., "Secure Password Framework for Internet Key | |||
| Exchange Version 2 (IKEv2)", RFC 6467, | Exchange Version 2 (IKEv2)", RFC 6467, | |||
| DOI 10.17487/RFC6467, December 2011, | DOI 10.17487/RFC6467, December 2011, | |||
| <https://www.rfc-editor.org/info/rfc6467>. | <https://www.rfc-editor.org/info/rfc6467>. | |||
| [RFC7383] Smyslov, V., "Internet Key Exchange Protocol Version 2 | [RFC7383] Smyslov, V., "Internet Key Exchange Protocol Version 2 | |||
| (IKEv2) Message Fragmentation", RFC 7383, | (IKEv2) Message Fragmentation", RFC 7383, | |||
| DOI 10.17487/RFC7383, November 2014, | DOI 10.17487/RFC7383, November 2014, | |||
| <https://www.rfc-editor.org/info/rfc7383>. | <https://www.rfc-editor.org/info/rfc7383>. | |||
| [I-D.ounsworth-pq-composite-sigs] | ||||
| Ounsworth, M., Gray, J., Pala, M., and J. Klaußner, | ||||
| "Composite ML-DSA for use in Internet PKI", Work in | ||||
| Progress, Internet-Draft, draft-ounsworth-pq-composite- | ||||
| sigs-13, 4 March 2024, | ||||
| <https://datatracker.ietf.org/doc/html/draft-ounsworth-pq- | ||||
| composite-sigs-13>. | ||||
| Appendix A. Examples of Announcing Supported Authentication Methods | Appendix A. Examples of Announcing Supported Authentication Methods | |||
| This appendix shows some examples of announcing authentication | This appendix shows some examples of announcing authentication | |||
| methods. This appendix is purely informative; if it disagrees with | methods. This appendix is purely informative; if it disagrees with | |||
| the body of this document, the other text is considered correct. | the body of this document, the other text is considered correct. | |||
| Note that some payloads that are not relevant to this specification | Note that some payloads that are not relevant to this specification | |||
| may be omitted for brevity. | may be omitted for brevity. | |||
| A.1. No Need to Use the IKE_INTERMEDIATE Exchange | A.1. No Need to Use the IKE_INTERMEDIATE Exchange | |||
| This example illustrates the situation when the | This example illustrates the situation when the | |||
| SUPPORTED_AUTH_METHODS notify fits into the IKE_SA_INIT message and | SUPPORTED_AUTH_METHODS Notify payload fits into the IKE_SA_INIT | |||
| thus the IKE_INTERMEDIATE exchange is not needed. In this scenario | message, and thus the IKE_INTERMEDIATE exchange is not needed. In | |||
| the responder announces that it supports the "Shared Key Message | this scenario, the responder announces that it supports the "Shared | |||
| Integrity Code" and the "NULL Authentication" authentication methods. | Key Message Integrity Code" and the "NULL Authentication" | |||
| The initiator informs the responder that it supports only the "Shared | authentication methods. The initiator informs the responder that it | |||
| Key Message Integrity Code" authentication method. | supports only the "Shared Key Message Integrity Code" authentication | |||
| method. | ||||
| Initiator Responder | Initiator Responder | |||
| ----------- ----------- | ----------- ----------- | |||
| IKE_SA_INIT | IKE_SA_INIT | |||
| HDR, SAi1, KEi, Ni --> | HDR, SAi1, KEi, Ni --> | |||
| <-- HDR, SAr1, KEr, Nr, | <-- HDR, SAr1, KEr, Nr, | |||
| N(SUPPORTED_AUTH_METHODS( | N(SUPPORTED_AUTH_METHODS( | |||
| PSK, NULL)) | PSK, NULL)) | |||
| IKE_AUTH | IKE_AUTH | |||
| HDR, SK {IDi, | HDR, SK {IDi, | |||
| AUTH, SAi2, TSi, TSr, | AUTH, SAi2, TSi, TSr, | |||
| N(SUPPORTED_AUTH_METHODS(PSK))} --> | N(SUPPORTED_AUTH_METHODS(PSK))} --> | |||
| <-- HDR, SK {IDr, | <-- HDR, SK {IDr, | |||
| AUTH, SAr2, TSi, TSr} | AUTH, SAr2, TSi, TSr} | |||
| A.2. With Use of the IKE_INTERMEDIATE Exchange | A.2. With Use of the IKE_INTERMEDIATE Exchange | |||
| This example illustrates the situation when the IKE_INTERMEDIATE | This example illustrates the situation when the IKE_INTERMEDIATE | |||
| exchange is used. In this scenario the responder announces that it | exchange is used. In this scenario, the responder announces that it | |||
| supports the "Digital signature" authentication method using the | supports the "Digital signature" authentication method using the | |||
| RSASSA-PSS algorithm with CA1 and CA2 and the same method using the | RSASSA-PSS algorithm with CA1 and CA2 and the same method using the | |||
| ECDSA algorithm with CA3. The initiator supports only the "Digital | ECDSA algorithm with CA3. The initiator supports only the "Digital | |||
| signature" authentication method using the RSASSA-PSS algorithm with | signature" authentication method using the RSASSA-PSS algorithm with | |||
| no link to a particular CA. | no link to a particular CA. | |||
| Initiator Responder | Initiator Responder | |||
| ----------- ----------- | ----------- ----------- | |||
| IKE_SA_INIT | IKE_SA_INIT | |||
| HDR, SAi1, KEi, Ni, | HDR, SAi1, KEi, Ni, | |||
| skipping to change at page 14, line 32 ¶ | skipping to change at line 608 ¶ | |||
| SIGNATURE(ECDSA:3)))} | SIGNATURE(ECDSA:3)))} | |||
| IKE_AUTH | IKE_AUTH | |||
| HDR, SK {IDi, CERT, CERTREQ(CA2), | HDR, SK {IDi, CERT, CERTREQ(CA2), | |||
| AUTH, SAi2, TSi, TSr, | AUTH, SAi2, TSi, TSr, | |||
| N(SUPPORTED_AUTH_METHODS( | N(SUPPORTED_AUTH_METHODS( | |||
| SIGNATURE(RSASSA-PSS:0)))} --> | SIGNATURE(RSASSA-PSS:0)))} --> | |||
| <-- HDR, SK {IDr, CERT, | <-- HDR, SK {IDr, CERT, | |||
| AUTH, SAr2, TSi, TSr} | AUTH, SAr2, TSi, TSr} | |||
| 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. | ||||
| Author's Address | Author's Address | |||
| Valery Smyslov | Valery Smyslov | |||
| ELVIS-PLUS | ELVIS-PLUS | |||
| PO Box 81 | PO Box 81 | |||
| Moscow (Zelenograd) | Moscow (Zelenograd) | |||
| 124460 | 124460 | |||
| Russian Federation | Russian Federation | |||
| Phone: +7 495 276 0211 | Phone: +7 495 276 0211 | |||
| Email: svan@elvis.ru | Email: svan@elvis.ru | |||
| End of changes. 76 change blocks. | ||||
| 222 lines changed or deleted | 231 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||