rfc9593xml2.original.xml | rfc9593.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="UTF-8"?> | <?xml version='1.0' encoding='UTF-8'?> | |||
<rfc category="std" submissionType="IETF" ipr="trust200902" docName="draft-ietf- | <!DOCTYPE rfc [ | |||
ipsecme-ikev2-auth-announce-10"> | <!ENTITY nbsp " "> | |||
<!ENTITY zwsp "​"> | ||||
<!ENTITY nbhy "‑"> | ||||
<!ENTITY wj "⁠"> | ||||
]> | ||||
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" submissionType="I ETF" ipr="trust200902" docName="draft-ietf-ipsecme-ikev2-auth-announce-10" numbe r="9593" updates="" obsoletes="" consensus="true" tocInclude="true" symRefs="tru e" sortRefs="true" version="3" xml:lang="en"> | |||
<?rfc toc="yes" ?> | <front> | |||
<?rfc symrefs="yes" ?> | <title abbrev="Announcing Supported Auth Methods">Announcing Supported Authe | |||
<?rfc sortrefs="no"?> | ntication Methods in the Internet Key Exchange Protocol Version 2 (IKEv2)</title | |||
<?rfc iprnotified="no" ?> | > | |||
<?rfc strict="yes" ?> | <seriesInfo name="RFC" value="9593"/> | |||
<author initials="V." surname="Smyslov" fullname="Valery Smyslov"> | ||||
<organization>ELVIS-PLUS</organization> | ||||
<address> | ||||
<postal> | ||||
<street>PO Box 81</street> | ||||
<city>Moscow (Zelenograd)</city> | ||||
<code>124460</code> | ||||
<country>Russian Federation</country> | ||||
</postal> | ||||
<phone>+7 495 276 0211</phone> | ||||
<email>svan@elvis.ru</email> | ||||
</address> | ||||
</author> | ||||
<date month="July" year="2024"/> | ||||
<front> | <area>SEC</area> | |||
<title abbrev="Announcing Supported Auth Methods">Announcing Supported A | <workgroup>ipsecme</workgroup> | |||
uthentication Methods in IKEv2</title> | ||||
<author initials='V.' surname="Smyslov" fullname='Valery Smyslov'> | ||||
<organization>ELVIS-PLUS</organization> | ||||
<address> | ||||
<postal> | ||||
<street>PO Box 81</street> | ||||
<city>Moscow (Zelenograd)</city> | ||||
<code>124460</code> | ||||
<country>RU</country> | ||||
</postal> | ||||
<phone>+7 495 276 0211</phone> | ||||
<email>svan@elvis.ru</email> | ||||
</address> | ||||
</author> | ||||
<date/> | ||||
<abstract> | <keyword>signature</keyword> | |||
<t> This specification defines a mechanism that allows the Internet | <keyword>digital signature</keyword> | |||
Key Exchange version 2 (IKEv2) | <keyword>credentials</keyword> | |||
implementations to indicate the list of supported authentication met | <keyword>intermediate exchange</keyword> | |||
hods to their peers while establishing | ||||
IKEv2 Security Association (SA). This mechanism improves interoperab | ||||
ility when IKEv2 partners | ||||
are configured with multiple credentials of different type to authen | ||||
ticate each other. | ||||
</t> | ||||
</abstract> | ||||
</front> | ||||
<middle> | <abstract> | |||
<section anchor="intro" title="Introduction"> | <t> This specification defines a mechanism that allows implementations | |||
<t> The Internet Key Exchange version 2 (IKEv2) protocol, defined in | of the Internet Key Exchange Protocol Version 2 (IKEv2) to indicate the li | |||
<xref target="RFC7296" />, | st of | |||
supported authentication methods to their peers while establishing IKEv2 | ||||
Security Associations (SAs). This mechanism improves | ||||
interoperability when IKEv2 partners are configured with multiple | ||||
credentials of different types for authenticating each other. | ||||
</t> | ||||
</abstract> | ||||
</front> | ||||
<middle> | ||||
<section anchor="intro"> | ||||
<name>Introduction</name> | ||||
<t> The Internet Key Exchange Protocol Version 2 (IKEv2), defined in <xref | ||||
target="RFC7296"/>, | ||||
performs authenticated key exchange in IPsec. IKEv2, unlike its pred ecessor IKEv1, | performs authenticated key exchange in IPsec. IKEv2, unlike its pred ecessor IKEv1, | |||
defined in <xref target="RFC2409" />, doesn't include a mechanism to | defined in <xref target="RFC2409"/>, doesn't include a mechanism to | |||
negotiate an authentication | negotiate an authentication | |||
method that the peers would use to authenticate each other. It is as | method that the peers would use to authenticate each other. It is as | |||
sumed that each peer selects whatever | sumed that each peer selects whichever | |||
authentication method it thinks is appropriate, depending on authent ication credentials it has. | authentication method it thinks is appropriate, depending on authent ication credentials it has. | |||
</t> | </t> | |||
<t> This approach generally works well when there is no ambiguity in selec | ||||
<t> This approach generally works well when there is no ambiguity in | ting authentication credentials. | |||
selecting authentication credentials. | SA establishment failure between peers may occur when there are seve | |||
SA establishment failure between peers may arise when there are seve | ral credentials of different types configured on one peer, | |||
ral credentials of different types configured on one peer, | ||||
while only some of them are supported on the other peer. Another pro blem situation is when a single | while only some of them are supported on the other peer. Another pro blem situation is when a single | |||
credential may be used to produce different types of authentication | credential may be used to produce different types of authentication | |||
tokens (e.g. signatures of different formats). | tokens (e.g., signatures of different formats). | |||
Since IKEv2 requires that each peer uses exactly one authentication | ||||
method and doesn't provide means for peers to indicate | ||||
to the other side which authentication methods they support, it is p | ||||
ossible that in these situations the peer that supports | ||||
wider range of authentication methods (or authentication token forma | ||||
ts) improperly selects | ||||
the method (or format) which is not supported by the other side. | ||||
</t> | ||||
<t> Emerging post-quantum signature algorithms may bring additional | ||||
challenges for implementations, | ||||
especially if so-called hybrid schemes are used (e.g. see <xref targ | ||||
et="I-D.ounsworth-pq-composite-sigs" />). | ||||
</t> | ||||
<t> | 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. | ||||
</t> | ||||
<t> Emerging post-quantum signature algorithms may bring additional challe | ||||
nges for implementations, | ||||
especially if so-called hybrid schemes are used (e.g., see <xref tar | ||||
get="I-D.ietf-lamps-pq-composite-sigs"/>). | ||||
</t> | ||||
<t> | ||||
This specification defines an extension to the IKEv2 protocol that a llows peers to | This specification defines an extension to the IKEv2 protocol that a llows peers to | |||
announce their supported authentication methods, thus decreasing ris ks of SA establishment | announce their supported authentication methods, thus decreasing ris ks of SA establishment | |||
failure in situations when there are several ways for the peers to a uthenticate themselves. | failure in situations when there are several ways for the peers to a uthenticate themselves. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="mustshouldmay"> | ||||
<section anchor="mustshouldmay" title="Terminology and Notation"> | <name>Terminology and Notation</name> | |||
<t> The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NO | <t> | |||
T", "SHOULD", "SHOULD NOT", | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
"RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this docu | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14> | |||
ment are to be interpreted | ", | |||
as described in BCP 14 <xref target="RFC2119" /> <xref target="RFC81 | "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
74" /> when, and only when, | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
they appear in all capitals, as shown here. | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | |||
</t> | be | |||
</section> | interpreted as described in BCP 14 <xref target="RFC2119"/> <xref | |||
target="RFC8174"/> when, and only when, they appear in all capitals, as | ||||
<section anchor="protocol" title="Protocol Details"> | shown here. | |||
<t>When establishing IKE SA each party may send a list of authentica | </t> | |||
tion methods it supports and is configured to use to its peer. | </section> | |||
For this purpose this specification introduces a new Notify Message | <section anchor="protocol"> | |||
Type SUPPORTED_AUTH_METHODS. | <name>Protocol Details</name> | |||
<t>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_AUTH_METHODS. | ||||
The Notify payload with this Notify Message Type is utilized to conv ey the supported | The Notify payload with this Notify Message Type is utilized to conv ey the supported | |||
authentication methods of the party sending it. The sending party ma y | authentication methods of the party sending it. The sending party ma y | |||
additionally specify that some of the authentication methods are onl y for use with | additionally specify that some of the authentication methods are onl y for use with | |||
the particular trust anchors. The receiving party may take this info rmation into consideration | the particular trust anchors. The receiving party may take this info rmation into consideration | |||
when selecting an algorithm for its authentication (i.e., the algori thm used for calculation of the AUTH payload) | when selecting an algorithm for its authentication (i.e., the algori thm used for calculation of the AUTH payload) | |||
if several alternatives are available. | if several alternatives are available. | |||
To simplify the receiver's task of linking the announced authenticat ion methods with the trust anchors, | To simplify the receiver's task of linking the announced authenticat ion methods with the trust anchors, | |||
the protocol ensures that the SUPPORTED_AUTH_METHODS notification is always co-located | the protocol ensures that the SUPPORTED_AUTH_METHODS notification is always co-located | |||
with the CERTREQ payload in the same message. | with the CERTREQ payload in the same message. | |||
</t> | </t> | |||
<section anchor="exchange"> | ||||
<section anchor="exchange" title="Exchanges"> | <name>Exchanges</name> | |||
<t> The initiator starts the IKE_SA_INIT exchange as usual. If t | <t> The initiator starts the IKE_SA_INIT exchange as usual. If the respo | |||
he responder is willing to use this extension, it includes a new notification SU | nder is willing to use this extension, it includes a new notification SUPPORTED_ | |||
PPORTED_AUTH_METHODS | AUTH_METHODS | |||
in the IKE_SA_INIT response message. This notification contains a list of authentication methods supported by the responder, ordered by their pr eference. | in the IKE_SA_INIT response message. This notification contains a list of authentication methods supported by the responder, ordered by their pr eference. | |||
</t> | </t> | |||
<figure align="center" anchor="ikesainit" title="The IKE_SA_INIT | <figure anchor="ikesainit"> | |||
Exchange"> | <name>The IKE_SA_INIT Exchange</name> | |||
<artwork align="left"><![CDATA[ | <artwork align="left"><![CDATA[ | |||
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)(...)] | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<t> If the initiator doesn't support this extension, it ignores the rece | ||||
<t> If the initiator doesn't support this extension, it ignores | ived notification as an unknown status notify. | |||
the received notification as an unknown status notify. | </t> | |||
</t> | <t> Regardless of whether the notification is received, if the initiator | |||
supports and is willing to use this extension, | ||||
<t> Regardless of whether the notification is received, if the i | ||||
nitiator supports and is willing to use this extension, | ||||
it includes the SUPPORTED_AUTH_METHODS notification in the IKE_A UTH request message, | it includes the SUPPORTED_AUTH_METHODS notification in the IKE_A UTH request message, | |||
with a list of authentication methods supported by the initiator , ordered by their preference. | with a list of authentication methods supported by the initiator , ordered by their preference. | |||
</t> | </t> | |||
<figure anchor="ikeauth"> | ||||
<figure align="center" anchor="ikeauth" title="The IKE_AUTH Exch | <name>The IKE_AUTH Exchange</name> | |||
ange"> | <artwork align="left"><![CDATA[ | |||
<artwork align="left"><![CDATA[ | ||||
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 } | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<t> Since the responder sends the SUPPORTED_AUTH_METHODS notific | ||||
ation in the IKE_SA_INIT exchange, | ||||
it must take care that the size of the response message wouldn't | ||||
grow too much so that IP fragmentation takes place. | ||||
If both of the following conditions are met: | ||||
<list style="symbols"> | <t> | |||
<t>the SUPPORTED_AUTH_METHODS notification to be included is | Because the responder sends the SUPPORTED_AUTH_METHODS notification in | |||
so large, that the responder suspects | the IKE_SA_INIT exchange, it must take into account that the | |||
response message could grow so much that the IP fragmentation might take place | ||||
. | ||||
</t> | ||||
<ul spacing="normal"> | ||||
<li> | ||||
<t>the SUPPORTED_AUTH_METHODS notification to be included is so larg | ||||
e, that the responder suspects | ||||
that IP fragmentation of the resulting IKE_SA_INIT response message may happen;</t> | that IP fragmentation of the resulting IKE_SA_INIT response message may happen;</t> | |||
<t>both peers support the IKE_INTERMEDIATE exchange, defined | </li> | |||
in <xref target="RFC9242" /> (i.e. | <li> | |||
<t>both peers support the IKE_INTERMEDIATE exchange, defined in <xre | ||||
f target="RFC9242"/> (i.e., | ||||
the responder has received and is going to send the INTERMED IATE_EXCHANGE_SUPPORTED notification);</t> | the responder has received and is going to send the INTERMED IATE_EXCHANGE_SUPPORTED notification);</t> | |||
</list> | </li> | |||
</ul> | ||||
<t> | ||||
then the responder MAY choose not to send actual list of the sup ported authentication | then the responder <bcp14>MAY</bcp14> choose not to send an actu al list of the supported authentication | |||
methods in the IKE_SA_INIT exchange and instead ask the initiato r to start the IKE_INTERMEDIATE | methods in the IKE_SA_INIT exchange and instead ask the initiato r to start the IKE_INTERMEDIATE | |||
exchange for the list to be sent in. This would allow using IKE fragmentation <xref target="RFC7383" /> for long messages | exchange for the list to be sent in. This would allow using IKE fragmentation <xref target="RFC7383"/> for long messages | |||
(which cannot be used in the IKE_SA_INIT exchange), thus avoidin g IP fragmentation. | (which cannot be used in the IKE_SA_INIT exchange), thus avoidin g IP fragmentation. | |||
In this case the responder includes SUPPORTED_AUTH_METHODS notif | In this case, the responder includes a SUPPORTED_AUTH_METHODS no | |||
ication containing no data in the IKE_SA_INIT response. | tification containing no data in the IKE_SA_INIT response. | |||
</t> | </t> | |||
<t> If the initiator receives the empty SUPPORTED_AUTH_METHODS notificat | ||||
<t> If the initiator receives the empty SUPPORTED_AUTH_METHODS n | ion in the IKE_SA_INIT exchange, | |||
otification in the IKE_SA_INIT exchange, | ||||
it means that the responder is going to send the list of the sup ported authentication methods in the | it means that the responder is going to send the list of the sup ported authentication methods in the | |||
IKE_INTERMEDIATE exchange. If this exchange is to be initiated a nyway for some other reason, then | IKE_INTERMEDIATE exchange. If this exchange is to be initiated a nyway for some other reason, then | |||
the responder MAY use it to send the SUPPORTED_AUTH_METHODS noti | the responder <bcp14>MAY</bcp14> use it to send the SUPPORTED_AU | |||
fication. Otherwise, the initiator | TH_METHODS notification. Otherwise, the initiator | |||
MAY start the IKE_INTERMEDIATE exchange just for this sole purpo | <bcp14>MAY</bcp14> start the IKE_INTERMEDIATE exchange for this | |||
se by sending an empty IKE_INTERMEDIATE request. | sole purpose by sending an empty IKE_INTERMEDIATE request. | |||
The initiator MAY also indicate its identity (and possibly the p | The initiator <bcp14>MAY</bcp14> also indicate its identity (and | |||
erceived responder's identity too) | possibly the perceived responder's identity too) | |||
by including the IDi payload (possibly along with the IDr payloa | by including the IDi payload (possibly along with the IDr payloa | |||
d) into the IKE_INTERMEDIATE request. | d) in the IKE_INTERMEDIATE request. | |||
This information could help the responder to send back only thos | This information could help the responder to send back only thos | |||
e authentication methods, | e authentication methods | |||
that are configured to be used for authentication of this partic ular initiator. | that are configured to be used for authentication of this partic ular initiator. | |||
If these payloads are sent, they MUST be identical to the IDi/ID | If these payloads are sent, they <bcp14>MUST</bcp14> be identica | |||
r payloads sent later in the IKE_AUTH request. | l to the IDi/IDr payloads sent later in the IKE_AUTH request. | |||
</t> | </t> | |||
<t>If the responder has sent any CERTREQ payload in the IKE_SA_INIT, the | ||||
<t>If the responder has sent any CERTREQ payload in the IKE_SA_I | n it <bcp14>SHOULD</bcp14> resend the same | |||
NIT, then it SHOULD re-send the same | ||||
payload(s) in the IKE_INTERMEDIATE response containing the SUPPO RTED_AUTH_METHODS notification | payload(s) in the IKE_INTERMEDIATE response containing the SUPPO RTED_AUTH_METHODS notification | |||
if any of the included Announcements has a non-zero Cert Link fi eld (see <xref target="ann-3" /> and <xref target="ann-m" />). | if any of the included Announcements has a non-zero Cert Link fi eld (see Sections <xref target="ann-3" format="counter"/> and <xref target="ann- m" format="counter"/>). | |||
This requirement allows peers to have a list of Announcements an d a list of CAs in the same message, | This requirement allows peers to have a list of Announcements an d a list of CAs in the same message, | |||
which simplifies their linking (note, that this requirement is a | which simplifies their linking. Note that this requirement is al | |||
lways fulfilled for the IKE_SA_INIT and IKE_AUTH exchanges). | ways fulfilled for the IKE_SA_INIT and IKE_AUTH exchanges. | |||
However, if for any reason the responder doesn't re-send CERTREQ | However, if for any reason the responder doesn't resend CERTREQ | |||
payload(s) in the IKE_INTERMEDIATE exchange, then | payload(s) in the IKE_INTERMEDIATE exchange, then | |||
the initiator MUST NOT abort negotiation. Instead, the initiator | the initiator <bcp14>MUST NOT</bcp14> abort negotiation. Instead | |||
MAY either link the Announcements to the CAs received in the IKE_SA_INIT respon | , the initiator <bcp14>MAY</bcp14> either link the Announcements to the CAs rece | |||
se, | ived in the IKE_SA_INIT response, | |||
or MAY ignore the Announcements containing links to CAs. | or it <bcp14>MAY</bcp14> ignore the Announcements containing lin | |||
</t> | ks to CAs. | |||
</t> | ||||
<t>If multiple IKE_INTERMEDIATE exchanges take place during IKE | <t>If multiple IKE_INTERMEDIATE exchanges take place during IKE SA estab | |||
SA establishments, it is RECOMMENDED that the responder | lishments, it is <bcp14>RECOMMENDED</bcp14> that the responder | |||
use the last IKE_INTERMEDIATE exchange (the one just before IKE_ | use the last IKE_INTERMEDIATE exchange (the one just before IKE_ | |||
AUTH) to send the list of supported auth methods. | AUTH) to send the list of supported authentication methods. | |||
However, it is not always possible for the responder to know how many IKE_INTERMEDIATE exchanges | However, it is not always possible for the responder to know how many IKE_INTERMEDIATE exchanges | |||
the initiator will use. In this case the responder MAY send the | the initiator will use. In this case the responder <bcp14>MAY</b | |||
list in any IKE_INTERMEDIATE exchange. | cp14> send the list in any IKE_INTERMEDIATE exchange. | |||
If the initiator sends IDi/IDr in an IKE_INTERMEDIATE request, t | If the initiator sends IDi/IDr in an IKE_INTERMEDIATE request, t | |||
hen it is RECOMMENDED that the responder | hen it is <bcp14>RECOMMENDED</bcp14> that the responder | |||
sends back the list of authentication methods in the response. | sends back the list of authentication methods in the response. | |||
</t> | </t> | |||
<figure anchor="ikeint"> | ||||
<figure align="center" anchor="ikeint" title="Using the IKE_INTE | <name>Using the IKE_INTERMEDIATE Exchange for Sending Authentication M | |||
RMEDIATE Exchange for sending auth methods"> | ethods</name> | |||
<artwork align="left"><![CDATA[ | <artwork align="left"><![CDATA[ | |||
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 } | |||
]]></artwork> | ||||
]]></artwork> | </figure> | |||
</figure> | <t> Note that sending the SUPPORTED_AUTH_METHODS notification and using | |||
information obtained from it | ||||
<t> Note, that sending the SUPPORTED_AUTH_METHODS notification a | are optional for both the initiator and the responder. If multip | |||
nd using information obtained from it | le SUPPORTED_AUTH_METHODS notifications are included | |||
is optional for both the initiator and the responder. If multipl | ||||
e SUPPORTED_AUTH_METHODS notifications are included | ||||
in a message, all their announcements form a single ordered list , unless overridden by other extension | in a message, all their announcements form a single ordered list , unless overridden by other extension | |||
(see <xref target="interaction" />). | (see <xref target="interaction"/>). | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="format"> | ||||
<section anchor="format" title="SUPPORTED_AUTH_METHODS Notify"> | <name>SUPPORTED_AUTH_METHODS Notify Message Type</name> | |||
<t> The format of the SUPPORTED_AUTH_METHODS notification is sho | <t> The format of the SUPPORTED_AUTH_METHODS Notify payload is shown bel | |||
wn below. | ow. | |||
<figure align="center" anchor="notify" title="SUPPORTED_AUTH_MET | </t> | |||
HODS Notify"> | <figure anchor="notify"> | |||
<artwork align="left"><![CDATA[ | <name>SUPPORTED_AUTH_METHODS Notify Payload Format</name> | |||
<artwork align="left"><![CDATA[ | ||||
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 ~ | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<t> | ||||
The Notify payload format is defined in Section 3.10 of <xref tar get="RFC7296" />. | The Notify payload format is defined in <xref target="RFC7296" se ction="3.10" sectionFormat="of" />. | |||
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, | there is no SPI field), | |||
and the Notify Message Type is set to <TBA by IANA>. | and the Notify Message Type is set to 16443. | |||
</t> | </t> | |||
<t> Notification data contains the list of supported authentication meth | ||||
<t> Notification data contains the list of supported authenticati | ods announcements. | |||
on methods announcements. | Each individual announcement is a variable-size data blob whose f | |||
Each individual announcement is a variable-size data blob, which | ormat depends | |||
format depends | ||||
on the announced authentication method. The blob always starts wi th an octet containing the length of the blob | on the announced authentication method. The blob always starts wi th an octet containing the length of the blob | |||
followed by an octet containing the authentication method. Authen tication methods are represented | followed by an octet containing the authentication method. Authen tication methods are represented | |||
as values from the "IKEv2 Authentication Method" registry defined in <xref target="IKEV2-IANA" />. | as values from the "IKEv2 Authentication Method" registry defined in <xref target="IKEV2-IANA"/>. | |||
The meaning of the remaining octets of the blob, if any, depends on the authentication method. | 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 l ength octet | Note that, for the currently defined authentication methods, the length octet | |||
fully defines both the format and the semantics of the blob. | fully defines both the format and the semantics of the blob. | |||
</t> | </t> | |||
<t> If more authentication methods are defined in the future, the corres | ||||
<t> If more authentication methods are defined in the future, the | ponding documents | |||
corresponding documents | ||||
must describe the semantics of the announcements for these method s. Implementations | must describe the semantics of the announcements for these method s. Implementations | |||
MUST ignore announcements whose semantics they don't understand. | <bcp14>MUST</bcp14> ignore announcements whose semantics they don | |||
</t> | 't understand. | |||
</t> | ||||
<section anchor="ann-2" title="2-octet Announcement"> | <section anchor="ann-2"> | |||
<t> If the announcement contains an authentication method tha | <name>2-Octet Announcement</name> | |||
t is not concerned | <t> If the announcement contains an authentication method that is not | |||
concerned | ||||
with public key cryptography, then the following format is us ed. | with public key cryptography, then the following format is us ed. | |||
<figure align="center" anchor="authmethod1" title="Supported | </t> | |||
Authentication Method"> | <figure anchor="authmethod1"> | |||
<artwork align="left"><![CDATA[ | <name>2-Octet Announcement Format</name> | |||
<artwork align="left"><![CDATA[ | ||||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<dl spacing="normal"> | ||||
<list style="symbols"> | <dt>Length:</dt> <dd>Length of the blob in octets; must be 2 for t | |||
<t>Length - Length of the blob in octets, must be 2 for | his case.</dd> | |||
this case.</t> | <dt>Auth Method:</dt> <dd>Announced authentication method.</dd> | |||
<t>Auth Method - Announced authentication method.</t> | </dl> | |||
</list> | <t> | |||
This format is applicable for the authentication methods "Sh ared Key Message Integrity Code" (2) and "NULL Authentication" (13). | This format is applicable for the authentication methods "Sh ared Key Message Integrity Code" (2) and "NULL Authentication" (13). | |||
Note, that authentication method "Generic Secure Password Au | Note that the authentication method "Generic Secure Password | |||
thentication Method" (12) would also | Authentication Method" (12) would also | |||
fall in this category, however it is negotiated separately ( | fall in this category; however, it is negotiated separately | |||
see <xref target="RFC6467" />) and | (see <xref target="RFC6467"/>), and | |||
for this reason there is no point to announce it via this me | for this reason there is no point to announce it via this me | |||
chanism. See also <xref target="interaction" />. | chanism. See also <xref target="interaction"/>. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="ann-3"> | ||||
<section anchor="ann-3" title="3-octet Announcement"> | <name>3-Octet Announcement</name> | |||
<t> If the announcement contains an authentication method th | <t> If the announcement contains an authentication method that is conc | |||
at is concerned | erned | |||
with public key cryptography, then the following format is u sed. This format | with public key cryptography, then the following format is u sed. This format | |||
allows linking the announcement with a particular trust anch or from the | allows linking the announcement with a particular trust anch or from the | |||
Certificate Request payload. | Certificate Request payload. | |||
<figure align="center" anchor="authmethod2" title="Supported | </t> | |||
Authentication Method"> | <figure anchor="authmethod2"> | |||
<artwork align="left"><![CDATA[ | <name>3-Octet Announcement Format</name> | |||
<artwork align="left"><![CDATA[ | ||||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<dl spacing="normal"> | ||||
<list style="symbols"> | <dt>Length:</dt> <dd>Length of the blob in octets; must be 3 for t | |||
<t>Length - Length of the blob in octets, must be 3 | his case.</dd> | |||
for this case.</t> | <dt>Auth Method:</dt> <dd>Announced authentication method.</dd> | |||
<t>Auth Method - Announced authentication method.</t | <dt>Cert Link:</dt> <dd>Links this announcement with a particular | |||
> | CA.</dd> | |||
<t>Cert Link - Links this announcement with particul | </dl> | |||
ar CA.</t> | <t> | |||
</list> | ||||
If the Cert Link field contains non-zero value N, it means t hat the announced authentication method is intended to be used | 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 Ce rtificate Request payload(s) sent by this peer. If it is zero, | only with the N-th trust anchor (CA certificate) from the Ce rtificate Request payload(s) sent by this peer. If it is zero, | |||
then this authentication method may be used with any CA. | 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 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 | If no Certificate Request payload were received, the content | |||
of this field MUST be ignored and treated as zero. | of this field <bcp14>MUST</bcp14> be ignored and treated as zero. | |||
</t> | </t> | |||
<t> This format is applicable for the authentication methods "RSA Digi | ||||
<t> This format is applicable for the authentication methods | tal Signature" (1), | |||
"RSA Digital Signature" (1), | ||||
"DSS Digital Signature" (3), "ECDSA with SHA-256 on the P-25 6 curve" (9), | "DSS Digital Signature" (3), "ECDSA with SHA-256 on the P-25 6 curve" (9), | |||
"ECDSA with SHA-384 on the P-384 curve" (10) and "ECDSA with SHA-512 on the P-521 curve" (11). | "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 currentl y superseded by | Note, however, that these authentication methods are current ly superseded by | |||
the "Digital Signature" (14) authentication method, which ha s a different announcement format, | the "Digital Signature" (14) authentication method, which ha s a different announcement format, | |||
described below. | described below. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="ann-m"> | ||||
<section anchor="ann-m" title="Multi-octet Announcement"> | <name>Multi-octet Announcement</name> | |||
<t> The following format is currently used only with the "Di | <t> The following format is currently used only with the "Digital Sign | |||
gital Signature" (14) authentication method. | ature" (14) authentication method. | |||
<figure align="center" anchor="authmethod3" title="Suppo | </t> | |||
rted Authentication Method"> | <figure anchor="authmethod3"> | |||
<artwork align="left"><![CDATA[ | <name>Multi-octet Announcement Format</name> | |||
<artwork align="left"><![CDATA[ | ||||
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 ~ | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<dl spacing="normal"> | ||||
<list style="symbols"> | <dt>Length:</dt> <dd>Length of the blob in octets; must be greater | |||
<t>Length - Length of the blob in octets, must be gr | than 3 for this case.</dd> | |||
eater than 3 for this case.</t> | <dt>Auth Method:</dt> <dd>Announced authentication method. At the | |||
<t>Auth Method - Announced authentication method, at | time of writing this document, only value 14 ("Digital Signature") is allowed.</ | |||
the time of writing this document only value 14 ("Digital Signature") is allowe | dd> | |||
d.</t> | <dt>Cert Link:</dt> <dd>Links this announcement with a particular | |||
<t>Cert Link - Links this announcement with particul | CA; see <xref target="ann-3"/> for details.</dd> | |||
ar CA; see <xref target="ann-3" /> for details.</t> | <dt>AlgorithmIdentifier:</dt> <dd>The variable-length ASN.1 object | |||
<t>AlgorithmIdentifier ASN.1 object - the AlgorithmI | that is encoded using Distinguished Encoding Rules (DER) <xref target="X.690"/> | |||
dentifier of PKIX (see Section 4.1.1.2 of <xref target="RFC5280" />), | and identifies the signature algorithm (see <xref target="RFC5280" section="4.1 | |||
encoded using distinguished encoding rules (DER) <xr | .1.2" sectionFormat="of" />). | |||
ef target="X.690" />. | </dd> | |||
</t> | </dl> | |||
</list> | <t> | |||
The "Digital Signature" authentication method, defined in <x | ||||
The "Digital Signature" authentication method, defined in <x | ref target="RFC7427"/>, | |||
ref target="RFC7427" />, | supersedes previously defined signature authentication metho | |||
supersedes previously defined signature authentication metho | ds. In this case, | |||
ds. In this case | ||||
the real authentication algorithm is identified via Algorith mIdentifier ASN.1 object. | the real authentication algorithm is identified via Algorith mIdentifier ASN.1 object. | |||
Appendix A in <xref target="RFC7427" /> contains examples of | <xref target="RFC7427" section="A" sectionFormat="of"/> cont | |||
Commonly Used ASN.1 Objects. | ains examples of commonly used ASN.1 objects. | |||
</t> | </t> | |||
</section> | ||||
</section> | ||||
</section> | </section> | |||
</section> | ||||
<section title="Interaction with IKEv2 Extensions concerning Authenticat | </section> | |||
ion" anchor="interaction"> | <section anchor="interaction"> | |||
<t> Generally in IKEv2 each party independently determines the way it | <name>Interaction with IKEv2 Extensions concerning Authentication</name> | |||
authenticates itself to the peer. | <t> Generally in IKEv2 each party independently determines the way it auth | |||
enticates itself to the peer. | ||||
In other words, authentication methods selected by the peers need not be the same. | In other words, authentication methods selected by the peers need not be the same. | |||
However, some IKEv2 extensions break this rule. | However, some IKEv2 extensions break this rule. | |||
</t> | </t> | |||
<t> The prominent example is "Secure Password Framework for Internet Key E | ||||
<t> The prominent example is <xref target="RFC6467" />, (Secure Passwo | xchange Version 2" <xref target="RFC6467"/>, | |||
rd Framework for Internet Key Exchange Version 2), | which defines a framework for using secure password authentication in | |||
which defines a framework for using Password-authenticated key exchang | IKEv2. | |||
es (PAKE) in IKEv2. | With this framework, peers negotiate using one of the secure password | |||
With this framework peers negotiate using one of PAKE methods in the I | methods in the IKE_SA_INIT exchange -- | |||
KE_SA_INIT exchange - | the initiator sends a list of supported methods in the request, and th | |||
the initiator sends a list of supported PAKE methods in the request an | e responder picks one of them and sends it back | |||
d the responder picks one of them and sends it back | ||||
in the response. | in the response. | |||
</t> | </t> | |||
<t> If peers negotiate secure password authentication, then the selected m | ||||
<t> If peers negotiate PAKE for authentication, then the selected PAKE | ethod is used by both initiator and responder, | |||
method is used by both initiator and responder | and no other authentication methods are involved. For this reason, the | |||
and no other authentication methods are involved. For this reason ther | re is no point to announce | |||
e is no point to announce | supported authentication methods in this case. Thus, if the peers choo | |||
supported authentication methods in this case. Thus, if the peers choo | se to go with secure password authentication, | |||
se to go with PAKE, | they <bcp14>MUST NOT</bcp14> send the SUPPORTED_AUTH_METHODS notificat | |||
they MUST NOT send the SUPPORTED_AUTH_METHODS notification. | ion. | |||
</t> | </t> | |||
<t>In the situation when peers are going to use Multiple Authentication Ex | ||||
<t> If peers are going to use Multiple Authentication Exchanges <xref | changes <xref target="RFC4739"/>, | |||
target="RFC4739" />, | they <bcp14>MAY</bcp14> include multiple SUPPORTED_AUTH_METHODS notifi | |||
then they MAY include multiple SUPPORTED_AUTH_METHODS notifications in | cations (instead of one), each containing authentication methods | |||
stead of one, each containing authentication methods | ||||
appropriate for each authentication round. The notifications are inclu ded in the order | appropriate for each authentication round. The notifications are inclu ded in the order | |||
of the preference of performing authentication rounds. | of the preference of performing authentication rounds. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="iana"> | ||||
<name>IANA Considerations</name> | ||||
<t>This document defines a new type in the "IKEv2 Notify Message Status Ty | ||||
pes" registry:</t> | ||||
<section anchor="sec" title="Security Considerations"> | <table anchor="notify_msg_status_type"> | |||
<t> Security considerations for IKEv2 protocol are discussed in <xre | <thead> | |||
f target="RFC7296" />. | <tr> | |||
Security properties of different authentication methods varies. | <th>Value</th> | |||
Refer to corresponding documents, listed in <xref target="IKEV2-IANA | <th>Notify Message Status Type</th> | |||
" /> for discussion | <th>Reference</th> | |||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td>16443</td> | ||||
<td>SUPPORTED_AUTH_METHODS</td> | ||||
<td>RFC 9593</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="sec"> | ||||
<name>Security Considerations</name> | ||||
<t> Security considerations for the IKEv2 protocol are discussed in <xref | ||||
target="RFC7296"/>. | ||||
Security properties of different authentication methods vary. | ||||
Refer to corresponding documents, listed in the "IKEv2 Authenticatio | ||||
n Method" registry on <xref target="IKEV2-IANA"/> for discussion | ||||
of security properties of each authentication method. | of security properties of each authentication method. | |||
</t> | </t> | |||
<t> Announcing authentication methods gives an eavesdropper additional inf | ||||
ormation 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 thi | ||||
s case NULL authentication should be allowed by local security policy. | ||||
</t> | ||||
<t> Similarly, if an on-path attacker can break some of the announced auth | ||||
entication methods online, | ||||
then the attacker can encourage peers to use one of these weaker met | ||||
hods | ||||
by removing all other announcements, and if this succeeds, then perf | ||||
orm a person-in-the-middle attack. | ||||
</t> | ||||
</section> | ||||
<t> Announcing authentication methods gives an eavesdropper addition | </middle> | |||
al information about peers' capabilities. | <back> | |||
If a peer advertises NULL authentication along with other methods, t | <displayreference target="I-D.ietf-lamps-pq-composite-sigs" to="COMPOSITE-SI | |||
hen active attacker on the path can encourage peers | GS"/> | |||
to use NULL authentication by removing all other announcements. Note | <references> | |||
, that this is not a real "downgrade" attack, | <name>References</name> | |||
since authentication methods in IKEv2 are not negotiated and in this | <references> | |||
case NULL authentication should be allowed by local security policy. | <name>Normative References</name> | |||
</t> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | |||
119.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
174.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
296.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
427.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | ||||
280.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
242.xml"/> | ||||
<t> Similarly, if an attacker on the path can break some of the anno | <reference anchor="X.690"> | |||
unced authentication methods online, | <front> | |||
then the attacker can encourage peers to use one of these weaker met | <title>Information Technology - ASN.1 encoding rules: Specification | |||
hods | of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished | |||
by removing all other announcements, and if this succeeds, then perf | Encoding Rules (DER)</title> | |||
orm person-in-the-middle attack. | <author> | |||
</t> | <organization>ITU-T</organization> | |||
</section> | </author> | |||
<date month="February" year="2021"/> | ||||
</front> | ||||
<seriesInfo name="ISO/IEC" value="8825-1:2021 (E)"/> | ||||
<seriesInfo name="ITU-T Recommendation" value="X.690"/> | ||||
</reference> | ||||
<section anchor="iana" title="IANA Considerations"> | <reference anchor="IKEV2-IANA" target="https://www.iana.org/assignments/ | |||
<t>This document defines a new Notify Message Type in the "IKEv2 Not | ikev2-parameters/"> | |||
ify Message Status Types" registry referencing this RFC:</t> | <front> | |||
<figure align="center"> | <title>Internet Key Exchange Version 2 (IKEv2) Parameters</title> | |||
<artwork align="left"><![CDATA[ | <author> | |||
<TBA> SUPPORTED_AUTH_METHODS [RFCXXXX] | <organization>IANA</organization> | |||
]]></artwork> | </author> | |||
</figure> | <date/> | |||
</section> | </front> | |||
</reference> | ||||
<section title="Acknowledgments"> | </references> | |||
<t>The author would like to thank Paul Wouters for his valuable comm | <references> | |||
ents 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. | ||||
</t> | ||||
</section> | ||||
</middle> | ||||
<back> | <name>Informative References</name> | |||
<references title='Normative References'> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | |||
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference. | 409.xml"/> | |||
RFC.2119.xml" ?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | |||
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference. | 739.xml"/> | |||
RFC.8174.xml" ?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | |||
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference. | 467.xml"/> | |||
RFC.7296.xml" ?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | |||
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference. | 383.xml"/> | |||
RFC.7427.xml" ?> | ||||
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference. | ||||
RFC.5280.xml" ?> | ||||
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference. | ||||
RFC.9242.xml" ?> | ||||
<reference anchor="X.690"> | ||||
<front> | ||||
<title>ITU-T Recommendation X.690 (2002) | ISO/IEC 8825-1:20 | ||||
02, | ||||
Information technology – ASN.1 encoding rules: Specification | ||||
of Basic Encoding Rules (BER), | ||||
Canonical Encoding Rules (CER) and Distinguished Encoding Ru | ||||
les (DER) | ||||
</title> | ||||
<author> | ||||
<organization></organization> | ||||
</author> | ||||
<date month="July" year="2002" /> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="IKEV2-IANA" target="https://www.iana.org/assignme | ||||
nts/ikev2-parameters/ikev2-parameters.xhtml#ikev2-parameters-12"> | ||||
<front> | ||||
<title>Internet Key Exchange Version 2 (IKEv2) Parameters</t | ||||
itle> | ||||
<author> | ||||
<organization>IANA</organization> | ||||
</author> | ||||
<date /> | ||||
</front> | ||||
</reference> | ||||
</references> | ||||
<references title='Informative References'> | <reference anchor="I-D.ietf-lamps-pq-composite-sigs" target="https://datatracker | |||
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference. | .ietf.org/doc/html/draft-ietf-lamps-pq-composite-sigs-01"> | |||
RFC.2409.xml" ?> | <front> | |||
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference. | <title>Composite Signatures For Use In Internet PKI</title> | |||
RFC.4739.xml" ?> | <author initials="M." surname="Ounsworth" fullname="Mike Ounsworth"> | |||
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference. | <organization>Entrust Limited</organization> | |||
RFC.6467.xml" ?> | </author> | |||
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference. | <author initials="J." surname="Gray" fullname="John Gray"> | |||
RFC.7383.xml" ?> | <organization>Entrust Limited</organization> | |||
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml3/reference | </author> | |||
.I-D.ounsworth-pq-composite-sigs.xml" ?> | <author initials="M." surname="Pala" fullname="Massimiliano Pala"> | |||
</references> | <organization>CableLabs</organization> | |||
</author> | ||||
<author initials="J." surname="Klaussner" fullname="Jan Klaussner"> | ||||
<organization>D-Trust GmbH</organization> | ||||
</author> | ||||
<date month="May" day="24" year="2024" /> | ||||
<section anchor="examples" title="Examples of Announcing Supported Authe | </front> | |||
ntication Methods"> | <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-pq-composite-sigs-0 | |||
<t> This appendix shows some examples of announcing authentication met | 1" /> | |||
hods. | ||||
</reference> | ||||
</references> | ||||
</references> | ||||
<section anchor="examples"> | ||||
<name>Examples of Announcing Supported Authentication Methods</name> | ||||
<t> 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. | 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 ma y be omitted for brevity. | Note that some payloads that are not relevant to this specification ma y be omitted for brevity. | |||
</t> | </t> | |||
<section anchor="no_intermediate_example"> | ||||
<section anchor="no_intermediate_example" title="No Need to Use the IK | <name>No Need to Use the IKE_INTERMEDIATE Exchange</name> | |||
E_INTERMEDIATE Exchange" > | <t> This example illustrates the situation when the SUPPORTED_AUTH_METHO | |||
<t> This example illustrates the situation when the SUPPORTED_AUTH_M | DS Notify payload fits into the IKE_SA_INIT | |||
ETHODS notify fits into the IKE_SA_INIT | message, and thus the IKE_INTERMEDIATE exchange is not needed. In th | |||
message and thus the IKE_INTERMEDIATE exchange is not needed. In thi | is scenario, the responder | |||
s scenario the responder | ||||
announces that it supports the "Shared Key Message Integrity Code" a nd the "NULL Authentication" | announces that it supports the "Shared Key Message Integrity Code" a nd the "NULL Authentication" | |||
authentication methods. The initiator informs the responder that it supports | authentication methods. The initiator informs the responder that it supports | |||
only the "Shared Key Message Integrity Code" authentication method. | only the "Shared Key Message Integrity Code" authentication method. | |||
<figure align="center"> | </t> | |||
<artwork align="left"><![CDATA[ | <artwork align="left"><![CDATA[ | |||
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} | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </section> | |||
<section anchor="intermediate_example"> | ||||
</t> | <name>With Use of the IKE_INTERMEDIATE Exchange</name> | |||
</section> | <t>This example illustrates the situation when the IKE_INTERMEDIATE | |||
exchange is used. In this scenario, the responder announces that | ||||
<section anchor="intermediate_example" title="With Use of the IKE_INTE | ||||
RMEDIATE Exchange" > | ||||
<t>This example illustrates the situation when the IKE_INTERMEDIATE | ||||
exchange is used. In this scenario the responder announces that | ||||
it supports the "Digital signature" authentication method using the RSASSA-PSS algorithm | it supports the "Digital signature" authentication method using the RSASSA-PSS algorithm | |||
with CA1 and CA2 and the same method using the ECDSA algorithm with CA3. | with CA1 and CA2 and the same method using the ECDSA algorithm with CA3. | |||
The initiator supports only the "Digital signature" authentication m ethod using the RSASSA-PSS algorithm | The initiator supports only the "Digital signature" authentication m ethod using the RSASSA-PSS algorithm | |||
with no link to a particular CA. | with no link to a particular CA. | |||
<figure align="center"> | </t> | |||
<artwork align="left"><![CDATA[ | <artwork align="left"><![CDATA[ | |||
Initiator Responder | Initiator Responder | |||
----------- ----------- | ----------- ----------- | |||
IKE_SA_INIT | IKE_SA_INIT | |||
HDR, SAi1, KEi, Ni, | HDR, SAi1, KEi, Ni, | |||
N(SIGNATURE_HASH_ALGORITHMS) --> | N(SIGNATURE_HASH_ALGORITHMS) --> | |||
<-- HDR, SAr1, KEr, Nr, | <-- HDR, SAr1, KEr, Nr, | |||
CERTREQ(CA1, CA2, CA3), | CERTREQ(CA1, CA2, CA3), | |||
N(SIGNATURE_HASH_ALGORITHMS), | N(SIGNATURE_HASH_ALGORITHMS), | |||
N(SUPPORTED_AUTH_METHODS()) | N(SUPPORTED_AUTH_METHODS()) | |||
skipping to change at line 513 ¶ | skipping to change at line 560 ¶ | |||
SIGNATURE(RSASSA-PSS:2), | SIGNATURE(RSASSA-PSS:2), | |||
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} | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </section> | |||
</section> | ||||
</t> | <section numbered="false"> | |||
</section> | <name>Acknowledgments</name> | |||
<t>The author would like to thank <contact fullname="Paul Wouters" /> for | ||||
his valuable comments and proposals. | ||||
The author is also grateful to <contact fullname="Daniel Van Geest" | ||||
/>, who made proposals for protocol improvement. | ||||
<contact fullname="Reese Enghardt"/> and <contact fullname="Rifaat | ||||
Shekh-Yusef"/> contributed to the clarity of the document. | ||||
</t> | ||||
</section> | ||||
</section> | </back> | |||
</back> | ||||
</rfc> | </rfc> | |||
End of changes. 73 change blocks. | ||||
458 lines changed or deleted | 495 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |