<?xml version="1.0" encoding="UTF-8"?>

<rfc category="std" submissionType="IETF" ipr="trust200902" docName="draft-ietf-ipsecme-ikev2-auth-announce-06">

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="no"?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?>

    <front>
        <title abbrev="Announcing Supported Auth Methods">Announcing Supported Authentication 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>
            <t> This specification defines a mechanism that allows the Internet Key Exchange version 2 (IKEv2) 
            implementations to indicate the list of supported authentication methods to their peers while establishing 
            IKEv2 Security Association (SA). This mechanism improves interoperability when IKEv2 partners
            are configured with multiple different credentials to authenticate each other.
            </t>
        </abstract>
    </front>

    <middle>
        <section anchor="intro" title="Introduction">
            <t> The Internet Key Exchange version 2 (IKEv2) protocol, defined in <xref target="RFC7296" />, 
            performs authenticated key exchange in IPsec. IKEv2, unlike its predecessor IKEv1, 
            defined in <xref target="RFC2409" />, doesn't include a mechanism to negotiate an authentication
            method that the peers would use to authenticate each other. It is assumed that each peer selects whatever 
            authentication method it thinks is appropriate, depending on authentication credentials it has.
            </t>

            <t> This approach generally works well when there is no ambiguity in selecting authentication credentials.
            The problem may arise when there are several credentials of different type configured on one peer, 
            while only some of them are supported on the other peer. Another problem situation is when 
            a single credential may be used to produce different types of authentication tokens
            (e.g. signatures of different formats).
            Emerging post-quantum signature algorithms may bring additional challenges for implementations,
            especially if so called hybrid schemes are used (e.g. see <xref target="I-D.ounsworth-pq-composite-sigs" />).
            </t>

            <t>
            This specification defines an extension to the IKEv2 protocol that allows peers to 
            announce their supported authentication methods, thus decreasing risks of SA establishment
            failure in situations when there are several ways for the peers to authenticate themselves.
            </t>
        </section>

        <section anchor="mustshouldmay" title="Terminology and Notation">
            <t> The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", 
            "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted 
            as described in BCP 14 <xref target="RFC2119" /> <xref target="RFC8174" /> when, and only when, 
            they appear in all capitals, as shown here.
            </t>
        </section>

        <section anchor="protocol" title="Protocol Details">
            <t>When establishing IKE SA each party may send a list of authentication methods it supports and is configured to use to its peer.
            The sending party may additionally specify that some of the authentication methods are only for use with 
            the particular trust anchors. Upon receiving this information the peer may take it into consideration while 
            selecting an algorithm for its authentication if several alternatives are available.</t>

            <section anchor="exchange" title="Exchanges">
                <t> If the responder is willing to use this extension, it includes a new status type notify SUPPORTED_AUTH_METHODS
                in the IKE_SA_INIT response message. This notification contains a list of authentication methods supported by the responder, ordered by their preference.
                </t>

                <figure align="center" anchor="ikesainit" title="The IKE_SA_INIT Exchange">
                    <artwork align="left"><![CDATA[
Initiator                              Responder
-----------                            -----------
HDR, SAi1, KEi, Ni -->
                                   <-- HDR, SAr1, KEr, Nr, [CERTREQ,]
                                     [N(SUPPORTED_AUTH_METHODS)(...)]
                    ]]></artwork>
                </figure>

                <t> If the initiator doesn't support this extension, it ignores the received notification as an unknown status notify.
                </t>

                <t> Regardless of whether the notification is received, if the initiator supports and  is willing to use this extension, 
                it includes the SUPPORTED_AUTH_METHODS notification in the IKE_AUTH request message, 
                with a list of authentication methods supported by the initiator, ordered by their preference.
                </t>

                <figure align="center" anchor="ikeauth" title="The IKE_AUTH Exchange">
                    <artwork align="left"><![CDATA[
Initiator                              Responder
-----------                            -----------
HDR, SK {IDi, [CERT,] [CERTREQ,] 
[IDr,] AUTH, SAi2, TSi, TSr,
[N(SUPPORTED_AUTH_METHODS)(...)] }  -->
                                   <-- HDR, SK {IDr, [CERT,]
                                            AUTH, SAr2, TSi, TSr }
                    ]]></artwork>
                </figure>

                <t> Since the responder sends the SUPPORTED_AUTH_METHODS notification 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 the following conditions are met:

                <list style="symbols">
                    <t>the SUPPORTED_AUTH_METHODS notification to be included is so large, that the responder suspects
                    that IP fragmentation of the resulting IKE_SA_INIT response message may happen;</t>
                    <t>both peers support the IKE_INTERMEDIATE exchange, defined in <xref target="RFC9242" /> (i.e.
                    the responder has received and is going to send the INTERMEDIATE_EXCHANGE_SUPPORTED notification);</t>
                </list>

                then the responder may choose not to send actual list of the supported authentication
                methods in the IKE_SA_INIT exchange and instead ask the initiator to start the IKE_INTERMEDIATE
                exchange for the list to be sent in. In this case the responder includes SUPPORTED_AUTH_METHODS notification
                containing no data in the IKE_SA_INIT response.
                </t>

                <t> If the initiator receives the empty SUPPORTED_AUTH_METHODS notification in the IKE_SA_INIT exchange,
                it means that the responder is going to send the list of the supported authentication methods in the 
                IKE_INTERMEDIATE exchange. If this exchange is to be initiated anyway for some other reason, then 
                the responder MAY use it to send the SUPPORTED_AUTH_METHODS notification. Otherwise, the initiator 
                MAY start the IKE_INTERMEDIATE exchange just for this sole purpose by sending an empty IKE_INTERMEDIATE request.
                The initiator MAY also indicate its identity (and possibly the perceived responder's identity too)
                by including the IDi payload (possibly along with the IDr payload) into the IKE_INTERMEDIATE request. 
                This information could help the responder to send back only those authentication methods, 
                that are configured to be used for authentication of this particular initiator. 
                If these payloads are sent, they MUST be identical to the IDi/IDr payloads sent later in the IKE_AUTH request.
                </t>

                <t>If the responder has sent any CERTREQ payload in the IKE_SA_INIT, then it MUST re-send the same 
                payload(s) in the IKE_INTERMEDIATE response containing the SUPPORTED_AUTH_METHODS notification
                if any of the included Announcements has a non-zero Cert Link field (see <xref target="ann-3" /> and <xref target="ann-m" />).
                This requirement allows peers to have a list of Announcements and a list of CAs in the same message,
                which simplifies their linking (note, that this requirement is always 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 the IKE_INTERMEDIATE exchange, then
                the initiator MUST NOT abort negotiation. Instead, the initiator MAY either link the Announcements to the CAs received in the IKE_SA_INIT response,
                or MAY ignore the Announcements containing links to CAs.
                </t>

                <t>If multiple IKE_INTERMEDIATE exchanges take place during IKE SA establishments, it is RECOMMENDED that the responder
                use the last IKE_INTERMEDIATE exchange (the one just before IKE_AUTH) to send the list of supported auth methods.
                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 list in any IKE_INTERMEDIATE exchange.
                If the initiator sends IDi/IDr in an IKE_INTERMEDIATE request, then it is RECOMMENDED that the responder
                sends back the list of authentication methods in the response.
                </t>

                <figure align="center" anchor="ikeint" title="Using the IKE_INTERMEDIATE Exchange for sending auth methods">
                    <artwork align="left"><![CDATA[
Initiator                              Responder
-----------                            -----------
HDR, SAi1, KEi, Ni -->
                                   <-- HDR, SAr1, KEr, Nr, [CERTREQ,]
                                       [N(SUPPORTED_AUTH_METHODS)()]

HDR, SK {..., [IDi, [IDr,]]}  -->
                                   <-- HDR, SK {..., [CERTREQ,]
                                   [N(SUPPORTED_AUTH_METHODS)(...)] }

HDR, SK {IDi, [CERT,] [CERTREQ,] 
[IDr,] AUTH, SAi2, TSi, TSr,
[N(SUPPORTED_AUTH_METHODS)(...)] }  -->
                                   <-- HDR, SK {IDr, [CERT,]
                                            AUTH, SAr2, TSi, TSr }

                    ]]></artwork>
                </figure>

                <t> Note, that sending the SUPPORTED_AUTH_METHODS notification and using information obtained from it 
                is optional for both the initiator and the responder. If multiple SUPPORTED_AUTH_METHODS notifications are included 
                in a message, all their announcements form a single ordered list, unless overriden by other extension 
                (see <xref target="interaction" />).
                </t>
            </section>

            <section anchor="format" title="SUPPORTED_AUTH_METHODS Notify">
                <t> The format of the SUPPORTED_AUTH_METHODS notification is shown below.

                <figure align="center" anchor="notify" title="SUPPORTED_AUTH_METHODS Notify">
                    <artwork align="left"><![CDATA[
                     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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Payload  |C|  RESERVED   |         Payload Length        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Protocol ID  |   SPI Size    |      Notify Message Type      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
~          List of Supported Auth Methods Announcements         ~
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    ]]></artwork>
                </figure>

               The Notify payload format is defined in Section 3.10 of <xref target="RFC7296" />.
               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 there is no SPI field, 
               and the Notify Message Type is set to &lt;TBA by IANA&gt;.
                </t>
            
               <t> The Notification Data field contains the list of supported authentication methods announcements. 
               Each individual announcement is a variable-size data blob, which format depends
               on the announced authentication method. The blob always starts with an octet containing the length of the blob
               followed by an octet containing the authentication method. Authentication methods are represented
               as values from the "IKEv2 Authentication Method" registry defined in <xref target="IKEV2-IANA" />.
               The meaning of the remaining octets of the blob, if any, depends on the authentication method. 
               Note, that for the currently defined authentication methods the length octet
               fully defines both the format and the semantics of the blob.
               </t>

               <t> If more authentication methods are defined in future, the corresponding documents
               must describe the semantics of the announcements for these methods. Implementations
               MUST ignore announcements which semantics they don't understand.
               </t>

               <section anchor="ann-2" title="2-octet Announcement">
                   <t> If the announcement contains an authentication method that is not concerned
                   with public key cryptography, then the following format is used.
    
                    <figure align="center" anchor="authmethod1" title="Supported Authentication Method">
                        <artwork align="left"><![CDATA[
                     1
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Length (=2)  |  Auth Method  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                        ]]></artwork>
                    </figure>
    
                    <list style="symbols">
                        <t>Length - Length of the blob, must be 2 for this case.</t>
                        <t>Auth Method - Announced authentication method.</t>
                    </list>

                    This format is applicable for the authentication methods "Shared Key Message Integrity Code" (2) and "NULL Authentication" (13).
                    Note, that authentication method "Generic Secure Password Authentication Method" (12) would also
                    fall in this category, however it is negotiated separately (see <xref target="RFC6467" /> and
                    for this reason there is no point to announce it via this mechanism. See also <xref target="interaction" />.
                    </t>
               </section>
    
               <section anchor="ann-3" title="3-octet Announcement">
                    <t> If the announcement contains an authentication method that is concerned
                    with public key cryptography, then the following format is used. This format 
                    allows to link the announcement with a particular trust anchor from the 
                    Certificate Request payload.
    
                    <figure align="center" anchor="authmethod2" title="Supported Authentication Method">
                        <artwork align="left"><![CDATA[
                     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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Length (=3)  |  Auth Method  |   Cert Link   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                           ]]></artwork>
                        </figure>
        
                        <list style="symbols">
                            <t>Length - Length of the blob, must be 3 for this case.</t>
                            <t>Auth Method - Announced authentication method.</t>
                            <t>Cert Link - Links this announcement with particular CA.</t>
                        </list>

                    If the Cert Link field contains non-zero value N, it means that the announced authentication method is intended to be used 
                    only with the N-th trust anchor (CA certificate) from the Certificate Request payload(s) sent by this peer. If it is zero,
                    then this authentication method may be used with any CA.
                    If multiple CERTREQ payloads were sent, the CAs from all of them are treated as a single list for the purpose of the linking.
                    If no Certificate Request payload were receives, the content of this field MUST be ignored and treated as zero.
                    </t>

                    <t> This format is applicable for the authentication methods "RSA Digital Signature" (1),
                    "DSS Digital Signature" (3), "ECDSA with SHA-256 on the P-256 curve" (9), 
                    "ECDSA with SHA-384 on the P-384 curve" (10) and "ECDSA with SHA-512 on the P-512 curve" (11).
                    Note however, that these authentication methods are currently superseded by 
                    the "Digital Signature" (14) authentication method, which has a different announcement format,
                    described below.
                    </t>
               </section>
    
               <section anchor="ann-m" title="Multi-octet Announcement">
                    <t> The following format is currently used only with the "Digital Signature" (14) authentication method.

                        <figure align="center" anchor="authmethod3" title="Supported Authentication Method">
                            <artwork align="left"><![CDATA[
                     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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Length (>3)  |  Auth Method  |   Cert Link   |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               +
|                                                               |
~                AlgorithmIdentifier ASN.1 object               ~
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                           ]]></artwork>
                        </figure>
        
                        <list style="symbols">
                            <t>Length - Length of the blob, must be greater than 3 for this case.</t>
                            <t>Auth Method - Announced authentication method, at the time of writing this document only value 14 ("Digital Signature") is allowed.</t>
                            <t>Cert Link - Links this announcement with particular CA; see <xref target="ann-3" /> for details.</t>
                            <t>AlgorithmIdentifier ASN.1 object - the AlgorithmIdentifier of PKIX (see Section 4.1.1.2 of <xref target="RFC5280" />), 
                            encoded using distinguished encoding rules (DER) <xref target="X.690" />.
                            </t>
                        </list>

                    The "Digital Signature" authentication method, defined in <xref target="RFC7427" />, 
                    supersedes previously defined signature authentication methods. In this case
                    the real authentication algorithm is identified via AlgorithmIdentifier ASN.1 object.
                    Appendix A in <xref target="RFC7427" /> contains examples of Commonly Used ASN.1 Objects.
                    </t>
               </section>
            </section>
        </section>

        <section title="Interaction with IKE Extensions concerning Authentication" anchor="interaction">
          <t> Generally in IKEv2 each party independently determines the way it authenticates itself to the peer.
          In other words, authentication methods selected by the peers need not be the same.
          However, some IKEv2 extensions break this rule. 
          </t>

          <t> The prominent example is <xref target="RFC6467" />, (Secure Password Framework for Internet Key Exchange Version 2), 
          which defines a framework for using Password-authenticated key exchanges (PAKE) in IKEv2. 
          With this framework peers negotiate using one of PAKE methods in the IKE_SA_INIT exchange - 
          the initiator sends a list of supported PAKE methods in the request and the responder picks one of them and sends it back 
          in the response.
          </t>

          <t> If peers negotiate PAKE for authentication, then the selected PAKE method is used by both initiator and responder
          and no other authentication methods are involved. For this reason there is no point to announce 
          supported authentication methods in this case. Thus, if the peers choose to go with PAKE,
          they MUST NOT send the SUPPORTED_AUTH_METHODS notification.
          </t>

          <t> If peers are going to use Multiple Authentication Exchanges <xref target="RFC4739" />,
          then they MAY include multiple SUPPORTED_AUTH_METHODS notifications instead of one, each containing authentication methods
          appropriate for each authentication round. The notifications are included in the order 
          of the preference of performing authentication rounds.
          </t>
        </section>

        <section anchor="sec" title="Security Considerations">
            <t> Security considerations for IKEv2 protocol are discussed in <xref target="RFC7296" />. 
            Security properties of different authentication methods varies.
            Refer to corresponding documents, listed in <xref target="IKEV2-IANA" /> for discussion 
            of security properties of each authentication method.
            </t>

            <t> Announcing authentication methods gives an eavesdropper additional information about peers' capabilities. 
            If a peer advertises NULL authentication along with other methods, then active attacker on the path can encourage peers 
            to use NULL authentication by removing all other announcements. Note, that this is not a real attack, 
            since NULL authentication should be allowed by local security policy.
            </t>
        </section>

        <section anchor="iana" title="IANA Considerations">
            <t>This document defines a new Notify Message Types in the "Notify Message Types - Status Types" registry referencing this RFC:</t>
            <figure align="center">
                <artwork align="left"><![CDATA[
  <TBA>       SUPPORTED_AUTH_METHODS    [RFCXXXX]
                ]]></artwork>
            </figure>
        </section>

        <section title="Acknowledgments">
            <t>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.</t>
        </section>
    </middle>

    <back>
        <references title='Normative References'>
            <?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml" ?>
            <?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml" ?>
            <?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7296.xml" ?>
            <?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.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:2002, 
                    Information technology – ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), 
                    Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)
                    </title>
                    <author>
                        <organization></organization>
                    </author>
                    <date month="July" year="2002" />
                </front>
            </reference>
            <reference anchor="IKEV2-IANA" target="https://www.iana.org/assignments/ikev2-parameters/ikev2-parameters.xhtml#ikev2-parameters-12">
                <front>
                    <title>Internet Key Exchange Version 2 (IKEv2) Parameters</title>
                    <author>
                        <organization>IANA</organization>
                    </author>
                    <date />
                </front>
            </reference>
        </references>

        <references title='Informative References'>
            <?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2409.xml" ?>
            <?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4739.xml" ?>
            <?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6467.xml" ?>
            <?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ounsworth-pq-composite-sigs.xml" ?>
        </references>

        <section anchor="examples" title="Examples of Announcing Supported Authentication Methods">
          <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.
          Note that some payloads that are not relevant to this specification may be omitted for brevity.
          </t>

          <section anchor="no_intermediate_example" title="No Need to Use the IKE_INTERMEDIATE Exchange" >
            <t> This example illustrates the situation when the SUPPORTED_AUTH_METHODS notify fits into the IKE_SA_INIT 
            message and thus the IKE_INTERMEDIATE exchange is not needed. In this scenario the responder 
            announces that it supports the "Shared Key Message Integrity Code" and the "NULL Authentication"
            authentication methods. The initiator informs the responder that it supports 
            only the "Shared Key Message Integrity Code" authentication method. 

              <figure align="center">
                  <artwork align="left"><![CDATA[
Initiator                              Responder
-----------                            -----------
                     IKE_SA_INIT
HDR, SAi1, KEi, Ni -->
                                   <-- HDR, SAr1, KEr, Nr, 
                                       N(SUPPORTED_AUTH_METHODS(
                                       PSK, NULL))

                      IKE_AUTH
HDR, SK {IDi, 
AUTH, SAi2, TSi, TSr,
N(SUPPORTED_AUTH_METHODS(PSK))}  -->
                                   <-- HDR, SK {IDr,
                                       AUTH, SAr2, TSi, TSr}
                  ]]></artwork>
              </figure>

            </t>
          </section>

          <section anchor="intermediate_example" title="With Use of the IKE_INTERMEDIATE 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
            with CA1 and CA2 and the same method using the ECDSA algorithm with CA3.
            The initiator supports only the "Digital signature" authentication method using the RSASSA-PSS algorithm
            with no link to a particular CA.

              <figure align="center">
                  <artwork align="left"><![CDATA[
Initiator                              Responder
-----------                            -----------
                     IKE_SA_INIT
HDR, SAi1, KEi, Ni,
N(SIGNATURE_HASH_ALGORITHMS) -->
                                   <-- HDR, SAr1, KEr, Nr, 
                                       CERTREQ(CA1, CA2, CA3),
                                       N(SIGNATURE_HASH_ALGORITHMS),
                                       N(SUPPORTED_AUTH_METHODS())

                   IKE_INTERMEDIATE
HDR, SK {..., IDi]}  -->
                                   <-- HDR, SK {..., 
                                       CERTREQ(CA1, CA2, CA3),
                                       N(SUPPORTED_AUTH_METHODS(
                                       SIGNATURE(RSASSA-PSS:1),
                                       SIGNATURE(RSASSA-PSS:2),
                                       SIGNATURE(ECDSA:3)))}

                      IKE_AUTH
HDR, SK {IDi, CERT, CERTREQ(CA2), 
AUTH, SAi2, TSi, TSr,
N(SUPPORTED_AUTH_METHODS(
SIGNATURE(RSASSA-PSS:0)))}  -->
                                   <-- HDR, SK {IDr, CERT,
                                       AUTH, SAr2, TSi, TSr}
                  ]]></artwork>
              </figure>

            </t>
          </section>

        </section>
    </back>
</rfc>
