<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.4.1 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC4301 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4301.xml">
<!ENTITY RFC7296 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7296.xml">
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-liu-ipsecme-ikev2-rekey-redundant-sas-02" category="std">

  <front>
    <title>IKEv2 Count Based SA Extension</title>

    <author initials="D." surname="Migault" fullname="Daniel Migault" role="editor">
      <organization>Ericsson</organization>
      <address>
        <email>daniel.migault@ericsson.com</email>
      </address>
    </author>
    <author initials="D." surname="Liu" fullname="Daiying Liu" role="editor">
      <organization>Ericsson</organization>
      <address>
        <email>harold.liu@ericsson.com</email>
      </address>
    </author>
    <author initials="C." surname="Zhang" fullname="Congjie Zhang">
      <organization>Ericsson</organization>
      <address>
        <email>congjie.zhang@ericsson.com</email>
      </address>
    </author>

    <date year="2022" month="Oct" day="22"/>

    <area>Security</area>
    <workgroup>ipsecme</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document describes an IKEv2 extension that enables a more rational use of count based SA.
This includes preventing the creation of redundant SAs resulting from simultaneous rekeys.</t>



    </abstract>


  </front>

  <middle>


<section anchor="sec1" title="Introduction">

<t>As per <xref target="RFC4301"/> IPsec systems must support the count based SA lifetime mechanism, but managing such type of SAs results in a high level of duplicated SAs due to simultaneous IKEv2 rekey.
Systems constrained to a limited number of SAs - such as hardware module with a fixed number of table entries - the creation of such extra temporary duplicated SAs result into a large underutilisation of the available resources.
This document defines the IKEv2 <xref target="RFC7296"/> Count Based SA extension that defines how IPsec peers can significantly increase the utilization of the available resource by reducing the generation of redundant SAs.</t>

<t>Cryptographic key life time are usually expressed in term of bytes to be encrypted as opposed to time.
In fact, when key life time is expressed in second, the underlying assumption is that the key is expected to encrypt a number of bytes that does not exceeds the maximum bytes the key can securely encrypt.
Such maximum value is known as the count based life time.</t>

<t>On the other hand, count based SA life time presents some challenges over the use of time based SA life time.
One reason is that time is highly predictable and orthogonal to the traffic pattern.
As a consequence, when the SAs are regularly checked every T seconds, IKEv2 can easily determine
a time t, whether or not a given SA will expire by time t + T.
This is not the case for count based SA lifetime as IKEv2 at time t will not be able to determine
 whether the SA will expire at time t + T.
Expiration will depend on the amount of traffic between t and t + T, which can be non-predictable.
In case of traffic burst, a SA not being expired a time t may happen to have largely exceeds its lifetime ate time t + T.
This may lead to traffic interruption as well as simultaneous rekeys.
Simultaneous rekeys result in the creation of additional SAs until these are detected by IKEv2 as duplicated SA.
This becomes an issue when the IPsec tale entries are limited by hardware constraints, in which case, some SAs cannot be created, the rekey is aborted and the traffic is interrupted.</t>

<t>It is worth mentioning that IKEv2 does not negotiates the life time of the SA and these are managed independently by each peer.
In many deployment the peers share some configuration parameters are thus likely to assign the same (or equivalent) life time to their negotiated SA.
Our operations considers T in the order of 2 seconds, and the traffic variation over T seconds prevents randomization of the count based life time to address efficiently duplicated SAs.
Randomisation of SA life time works efficiently with time based SA lifetime, as different life time often differ by more than T, thus making SA on each peer expire at different time slot.
With count based SA, the traffic that occurs during T seconds is too large to rely on randomisation to have the SA expired at different time slots.</t>

<t>This document describes an IKEv2 extension that enables a more rational use of count based SA.
This includes preventing the creation of redundant SAs resulting from simultaneous rekeys.</t>

</section>
<section anchor="sec2" title="Requirements Language">

<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="terminology" title="Terminology">

<t><list style="symbols">
  <t>count based SA life time : the life time of the SA expressed in term of the maximum number of bytes to be encrypted.</t>
</list></t>

</section>
<section anchor="protocol-description" title="Protocol Description">

<t>This document specifies how two peers agree on how count based SA will be rekeyed.
The agreement happens during the CREATE_CHILD_SAs exchange via the exchange of one or more COUNT_BASED_SA_PROPOSED Notification payload and a single COUNT_BASED_SA_SELECTED Notification payload.</t>

<t>SA life time depends on the cryptography algorithm used as well as the key length.
Transform ID designates the cryptographic algorithm of Transforms of Type 2 in the SA payload (see <xref target="RFC7296"/> section 3.3.2).
For any proposed Transform ID of Transforms of Type 2 in the SA payload, the initiator determine if it is willing to handled SA life time as described in this document. If so, it insert a Count Based SA Proposal structure to the COUNT_BASED_SA_PROPOSED Notification payload in its CREATE_CHILD_SA exchange.</t>

<t>Each Count Based SA Proposal structure contains the Transform ID that characterizes the transform the remaining parameters will apply.
Follows a Rekey Value that will determine the role each peer will have when the currently negotiated SA will be rekeyed.
Unless, some specific values are used as described in more details in <xref target="sec:special-rekey-value"/>, the Rekey Value is randomly generated.
Additionally, the initiator provides the acceptable range for the count based SA life time - defined with a count based SA life time Minimum Value and a count based SA life time Maximum Value.</t>

<t>The responder proceeds to the selection of a Transform type 2 as defined in <xref target="RFC7296"/>.
If the responder supports the Count Base Life Time extension, it checks the COUNT_BASED_SA_PROPOSED Notification payload for a Count Based SA Proposal structure with a matching Transform ID.
If the number of matching Count Based SA Proposal structure is different from 1, the COUNT_BASED_SA_PROPOSED Notification payload are ignored.
If the proposed count based SA life time range is acceptable to the responder, the responder selects a Count Based SA Life Time Value within the proposed range, generates a Rekey Value, and returns these two values in a COUNT_BASED_SA_SELECTED Notification payload.</t>

<t>Upon receiving the COUNT_BASED_SA_SELECTED, the initiator checks the returned SA Count Life Time Value fits the SA Count Life Time Value Range.
In case of mismatch the initiator ignores the COUNT_BASED_SA_SELECTED.</t>

<t>Upon a successful COUNT_BASED_SA_PROPOSED and COUNT_BASED_SA_SELECTED exchange both peers determine their respective role in next rekey as well as the count based soft (S) and hard (H) SA life time.
The peer with the greatest Rekey Value is designated to initiate the next rekey.
In case of equality, the current initiator remains the initiator.</t>

<t>The designated initiator of the next rekey sets S and H respectively to:</t>

<t><list style="symbols">
  <t>S = X_i Count Based SA Life Time Value + rand( 0, 5% Count Based SA Life Time Value )</t>
  <t>H = Count Based SA Life Time Value</t>
</list></t>

<t>The initiator of the next rekey MAY take a lower value than 80%.</t>

<t>The designated responder of the next rekey sets S and H respectively to:</t>

<t><list style="symbols">
  <t>S = X_r Count Based SA Life Time Value + rand( 0, 5% Count Based SA Life Time Value )</t>
  <t>H = Count Based SA Life Time Value</t>
</list></t>

<t>With:</t>

<t><list style="hanging">
  <t hangText="rand( x, y )">
  designating a random number between x and y.</t>
  <t hangText="X_i">
  representing the initiator percentage that MUST be less or equal than 80%. 
A lower value will simply trigger earlier the rekey from the initiator, which has no influence on the responder.</t>
  <t hangText="X_r">
  representing the responder percentage that MUST greater than 95%. A greater value will only delay the rekey by the responder if the initiator has failed to perform the rekey. 
The value MUST permit a rekey to occur before the expiration of the Count Based SA Life Time Value.</t>
</list></t>

<t>It is worth noticing that the peer will be responsible to monitor both inbound and outbound SAs agreed by the selected transform.</t>

<section anchor="considerations-regarding-acceptable-values-for-count-based-sa-life-time-value" title="Considerations regarding acceptable values for Count Based SA Life Time Value">

<t>Let T_sad be the time interval in second between two consecutive checks for the counter. 
This time is usually around 2 seconds. <vspace />
Let T_ike the necessary time to perform an IKEv2 rekey. 
An upper bound of 30 seconds is reasonable. 
Let also M be the maximum expected rate in byte per second of data transmitted between the two peers on the given SA. 
This may be limited by the link capacity or by the traffic associated to the service.
Acceptable Count Based SA Life Time Value MUST ensure the amount of traffic received between two SAD checks will not trigger a simultaneous rekey from both peers. 
The worst case is that the limit is reached right after a SAD check and is noticed T_sad second later. 
The IKEv2 negotiation needs to be performed before the life time is reached from the responder’s perspective.</t>

<t>M * ( T_sad + T_ike ) « ( X_r - ( X_i + 5 ) ) * Count Based SA Life Time Value</t>

<t>The condition becomes:</t>

<t>Count Based SA Life Time Value » M * ( T_sad + T_ike ) / ( X_r - ( X_i + 5 ) )</t>

<t>With T_sad = 2 sec, T_ike = 30 sec, X_r - ( X_i + 5 ) &gt; 0.1</t>

</section>
<section anchor="sec:special-rekey-value" title="Special values for the Rekey Value">

<t>A Rekey Value set to zero indicates the peer does not support rekey.
Although disabling the rekeying is not recommended (as per <xref target="RFC7296"/> section 2.8), disabling rekeying is implemented by most of the products.</t>

<t>A peer supporting the Count Based SA Extension SHOULD NOT set the Rekey Value to zero unless it does not support rekey.</t>

</section>
</section>
<section anchor="payload-description" title="Payload Description">

<t>Figure 1 illustrates the Notify Payload packet format as described in Section 3.10 of <xref target="RFC7296"/>.
This format is used for both the COUNT_BASED_SA_PROPOSED and COUNT_BASED_SA_SELECTED notifications that are used in the IKEv2 exchange of type CREATE_CHILD_SA.</t>

<figure title="COUNT_BASED_SA Notify Message Format" anchor="xml_happy_2"><artwork><![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      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
~                       Notification Data                       ~
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>The fields Next Payload, Critical Bit, RESERVED, and Payload Length are defined in <xref target="RFC7296"/>.
Specific fields defined in this document are:</t>

<t><list style="hanging">
  <t hangText="Protocol ID  (1 octet):">
  Set to zero.
Security Parameter Index (SPI) Size (1 octet):</t>
  <t>Set to zero.
Notify Message Type (2 octets):</t>
  <t>Specifies the type of notification message.
It is set to TBD1 for the COUNT_BASED_SA_PROPOSED notification or TBD2 for the COUNT_BASED_SA_SELECTED notification.
Notification Data:</t>
  <t>The actual payload data defined in <xref target="sec:PROPOSED"/> for the COUNT_BASED_SA_PROPOSED notification and in <xref target="sec:SELECTED"/> for the COUNT_BASED_SA_SELECTED notification.</t>
</list></t>

<t>The COUNT_BASED_SA notifications are inserted in an IKEv2 exchange of type CREATE_CHILD_SA with the following Notify Message Types:</t>

<figure title="COUNT_BASED_SA Notify Message Type Value" anchor="xml_happy_1"><artwork><![CDATA[
+=======+========================================+
| Value |        NOTIFY MESSAGES - STATUS TYPES  |
+=======+========================================+
| TBD1  |         COUNT_BASED_SA_PROPOSED        |
+-------+----------------------------------------+
| TBD2  |         COUNT_BASED_SA_SELECTED        |
+-------+----------------------------------------+
]]></artwork></figure>

<section anchor="sec:PROPOSED" title="COUNT_BASED_SA_PROPOSED Notification Data">

<t>The COUNT_BASED_SA_PROPOSED Notification Data depicted in <xref target="fig:PROPOSED"/> contains one or multiple Count Based SA Proposal structures depicted in <xref target="fig:prop_struct"/>.</t>

<figure title="Count Based SA Proposal structure" anchor="fig:prop_struct"><artwork><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Transform ID          |         Rekey Value           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Count Based SA Life Time Minimum Value           |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Count Based SA Life Time Maximum Value           |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t><list style="hanging">
  <t hangText="Transform ID (2 bytes) :">
  The specific instance of the Transform Type being proposed. as defined in section 3.3.2 of <xref target="RFC7296"/>.
Rekey Value  (2 bytes):</t>
  <t>that determines the roles of each peers for the next rekey of the currently negotiated Child SA will be rekeyed.
Count Based SA Life Time Minimum Value (8 bytes):</t>
  <t>The lower bound for a count based SA life time to be selected by the responder.
Count Based SA Life Time Maximum Value (8 bytes):</t>
  <t>The upper bound for a count based SA life time to be selected by the responder.</t>
</list></t>

<figure title="COUNT_BASED_SA_PROPOSED Notification Data" anchor="fig:PROPOSED"><artwork><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Transform ID          |         Rekey Value           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Count Based SA Life Time Minimum Value           |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Count Based SA Life Time Maximum Value           |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                               ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Transform ID          |         Rekey Value           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Count Based SA Life Time Minimum Value           |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Count Based SA Life Time Maximum Value           |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

</section>
<section anchor="sec:SELECTED" title="COUNT_BASED_SA_SELECTED Notification Data">

<t>The COUNT_BASED_SA_SELECTED Notification Data is depicted in Figure 4 and contains:</t>

<figure><artwork><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Rekey Value          |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
|                   Count Based SA Life Time Value              |
|                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>Rekey Value is defined in <xref target="sec:PROPOSED"/>.</t>

<t><list style="hanging">
  <t hangText="Count Based SA Life Time Maximum Value (8 bytes):">
  The selected  count based SA life time by the responder.</t>
</list></t>

</section>
</section>
<section anchor="sec7" title="Security Considerations">

<t>IKEv2 does not negotiate SA life time and leave it to the configuration of each peer.
This document provides a mean to agree between peer which SA life time value is being set.
The agreed values S and H MUST remain acceptable to the peer.
An initiator MUST NOT propose values that will not be acceptable to him if agreed by the responder.
A responder MUST ignore the COUNT_BASED_SA_PROPOSED notification payload in case these SA life time are not acceptable.</t>

<t>The negotiation of the SA life time between the peers results in the peers actually disclosing that information. While IKEv2 does not disclose such information, IKEv1 used to disclosed it.
Such disclosure is not expected to have major security implications. At first a peer is likely to discover the life time of a SA by monitoring when a rekey occurs.
As a result, the extension only reveals information that were relatively easy to observe.
Alternatively, a peer that would used such information remains authenticated via IKEv2 and as such action can be taken if an attack by the peer were observed.</t>

</section>
<section anchor="sec8" title="IANA Considerations">

<t>ANA need to update the “IKEv2 Notify Message Types - Status Types” registry
(available at https://www.iana.org/assignments/ikev2-parameters/ikev2-parameters.xhtml#ikev2-parameters-16) with the following definition:</t>

<figure anchor="xml_happy_28"><artwork><![CDATA[
+=======+========================================+
| Value |        NOTIFY MESSAGES - STATUS TYPES  |
+=======+========================================+
| TBD1  |        COUNT_BASED_SA_PROPOSED         |
+-------+----------------------------------------+
| TBD2  |        COUNT_BASED_SA_SELECTED         |
+-------+----------------------------------------+
]]></artwork></figure>

<section anchor="sec9" title="Acknowledgements">

<t>We would like to thank Paul Wouters, Valery Smirnov and Tero Kivinen for their feed backs.</t>

</section>
</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC4301;
&RFC7296;
&RFC2119;
&RFC8174;


    </references>



<section anchor="illustrative-example" title="Illustrative Example:">

<section anchor="sec4" title="IKE_SA_INIT Stage">

<t>No changes have been made to IKE_SA_INIT in this document.
IKE_SA_INIT is described here (see <xref target="RFC7296"/> Section 1.2) for the sake of logical coherence and completeness and to make it easier for the reader to understand.</t>

<t>The initial exchanges are shown as <xref target="fig:ike_init"/>:</t>

<figure title="IKE_SA_INIT Exchanges" anchor="fig:ike_init"><artwork><![CDATA[
Initiator                         Responder
-------------------------------------------
HDR, SAi1, KEi, Ni  -->
                      <--  HDR, SAr1, KEr, Nr, [CERTREQ]
]]></artwork></figure>

</section>
<section anchor="sec5" title="IKE_AUTH Stage">

<t>When IKE_SA_INIT is completed, the IKE_AUTH message exchanges will take place and the NOTIFY message “COUNT_BASED_SA” should be added to IKE_AUTH, as shown below:</t>

<figure title="IKE_AUTH Exchanges" anchor="fig:ike_auth"><artwork><![CDATA[
Initiator                             Responder
-----------------------------------------------
HDR, SK {IDi, [CERT,] [CERTREQ,]
    [IDr,] AUTH, SAi2,
    TSi, TSr, N(COUNT_BASED_SA_PROPOSED)}  -->
                      <--  HDR, SK {IDr, [CERT,] AUTH,
                         SAr2, TSi, TSr, N(COUNT_BASED_SA_SELECTED)}
]]></artwork></figure>

<t>The initiator begins negotiation of a Child SA using the SAi2 payload, and the responder completes negotiation of a Child SA with the additional fields.</t>

<t>Thanks to the Rekey Value and the Count Based SA Life Time Value the Initiator and the Responder are able to:</t>

<t><list style="symbols">
  <t>Determine who is in charge of performing the rekey.</t>
  <t>Set their respective count based SA life time H and S</t>
</list></t>

</section>
<section anchor="sec6" title="Rekeying: CREATE_CHILD_SA Stage">

<t>The peer designated as the initiator for the rekey realizes the soft SA life time has been reached.
That initiator could have been the Initiator or the Responder when the current SA has been established.</t>

<t>The CREATE_CHILD_SA request for rekeying an IKE SA is:</t>

<figure title="CREATE_CHILD_SA Exchanges for IKE SA Rekeying" anchor="fig:rekey"><artwork><![CDATA[
Initiator                            Responder
----------------------------------------------
HDR, SK {SA, Ni, [KEi,]
N(COUNT_BASED_SA_PROPOSED)}       -->
                      <--  HDR, SK {SA, Nr, [KEr,],
                           N(COUNT_BASED_SA_SELECTED)
]]></artwork></figure>

</section>
</section>


  </back>

<!-- ##markdown-source:
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

-->

</rfc>

