rfc9838.original.xml   rfc9838.xml 
<?xml version="1.0" encoding="US-ASCII"?> <?xml version='1.0' encoding='UTF-8'?>
<?rfc toc="yes"?>
<?rfc tocompact="no"?>
<?rfc tocdepth="3"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<rfc category="std" submissionType="IETF" docName="draft-ietf-ipsecme-g-ikev2-23
" ipr="trust200902" obsoletes="6407">
<front>
<title abbrev="G-IKEv2">Group Key Management using IKEv2</title>
<!DOCTYPE rfc [
<!ENTITY nbsp "&#160;">
<!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" submissionType="I
ETF" docName="draft-ietf-ipsecme-g-ikev2-23" number="9838" ipr="trust200902" con
sensus="true" updates="" obsoletes="6407" tocInclude="true" tocDepth="3" symRefs
="true" sortRefs="true" version="3" xml:lang="en">
<!-- [rfced] Because this document obsoletes RFC 6407, please review
the errata reported for RFC 6407
(https://www.rfc-editor.org/errata_search.php?rfc=6407) and let
us know if you confirm our opinion that none of them are relevant
to the content of this document.
-->
<!-- [rfced] Please note that the title of the document has been updated to
expand abbreviations per Section 3.6 of RFC 7322 ("RFC Style Guide").
Original:
Group Key Management using IKEv2
Current:
Group Key Management Using the Internet Key Exchange
Protocol Version 2 (IKEv2)
-->
<front>
<title abbrev="G-IKEv2">Group Key Management Using the Internet Key Exchange
Protocol Version 2 (IKEv2)</title>
<seriesInfo name="RFC" value="9838"/>
<author fullname="Valery Smyslov" initials="V." surname="Smyslov"> <author fullname="Valery Smyslov" initials="V." surname="Smyslov">
<organization>ELVIS-PLUS</organization> <organization>ELVIS-PLUS</organization>
<address> <address>
<postal> <postal>
<street></street>
<city></city>
<code></code>
<region></region>
<country>Russian Federation</country> <country>Russian Federation</country>
</postal> </postal>
<phone></phone>
<email>svan@elvis.ru</email> <email>svan@elvis.ru</email>
</address> </address>
</author> </author>
<author fullname="Brian Weis" initials="B." surname="Weis"> <author fullname="Brian Weis" initials="B." surname="Weis">
<organization>Independent</organization> <organization>Independent</organization>
<address> <address>
<postal> <postal>
<street></street> <country>United States of America</country>
<city></city>
<code></code>
<region></region>
<country>USA</country>
</postal> </postal>
<phone></phone>
<email>bew.stds@gmail.com</email> <email>bew.stds@gmail.com</email>
</address> </address>
</author> </author>
<date month="September" year="2025"/>
<area>SEC</area>
<workgroup>ipsecme</workgroup>
<date /> <!-- [rfced] Please insert any keywords (beyond those that appear in
the title) for use on https://www.rfc-editor.org/search. -->
<area>Security Area</area> <keyword>example</keyword>
<abstract> <abstract>
<t> This document presents an extension to the Internet Key Exchange versi <t> This document presents an extension to the Internet Key Exchange Proto
on 2 (IKEv2) protocol col Version 2 (IKEv2)
for the purpose of a group key management. The protocol is in conformance for the purpose of group key management. The protocol is in conformance wi
with the th the
Multicast Security (MSEC) key management architecture, which contains Multicast Security (MSEC) key management architecture, which contains
two components: member registration and group rekeying. Both components ar e two components: member registration and group rekeying. Both components ar e
required for a GCKS (Group Controller/Key Server) to provide authorized Gr required for a Group Controller/Key Server (GCKS) to provide authorized Gr
oup Members (GMs) oup Members (GMs)
with IPsec group security associations. The group members then with IPsec Group Security Associations (GSAs). The group members then
exchange IP multicast or other group traffic as IPsec packets. exchange IP multicast or other group traffic as IPsec packets.
</t> </t>
<t>This document obsoletes RFC 6407.
<t> This document obsoletes RFC 6407.
</t> </t>
</abstract> </abstract>
</front> </front>
<middle> <middle>
<section title="Introduction and Overview"> <section>
<t> This document presents an extension to IKEv2 <name>Introduction and Overview</name>
<xref target="RFC7296"></xref> called G-IKEv2, which allows performing a g <t>This document presents an extension to IKEv2
roup key <xref target="RFC7296"/> called G-IKEv2, which allows performing group key
management. A group key management protocol provides IPsec keys and policy to a management. A group key management protocol provides IPsec keys and policy to a
set of IPsec devices which are authorized to communicate using a Group set of IPsec devices that are authorized to communicate using a Group
Security Association (GSA) defined in Multicast Group Security Architectur Security Association (GSA) defined in Multicast Group Security Architectur
e <xref target="RFC3740"></xref>. e <xref target="RFC3740"/>.
The data communications within the group (e.g., IP multicast packets) The data communications within the group (e.g., IP multicast packets)
are protected by a key pushed to the group members (GMs) by the Group are protected by a key pushed to the Group Members (GMs) by the Group Cont
Controller/Key Server (GCKS). </t> roller/Key Server (GCKS). </t>
<t>G-IKEv2 conforms to "The Multicast Group Security
<t>G-IKEv2 conforms to the Multicast Group Security Architecture" <xref target="RFC3740"/>, "Multicast Extensions to the
Architecture <xref target="RFC3740"></xref>, Multicast Extensions to the Security Architecture for the Internet Protocol" <xref target="RFC5374"/>,
Security Architecture for the Internet Protocol <xref target="RFC5374"></x and "Multicast Security (MSEC) Group Key Management Architecture" <xref ta
ref> rget="RFC4046"/>.
and the Multicast Security (MSEC) Group Key Management Architecture <xref G-IKEv2 replaces "The Group Domain of Interpretation" <xref target="RFC640
target="RFC4046"></xref>. 7"/>, which defines a
G-IKEv2 replaces GDOI <xref target="RFC6407"></xref>, which defines a similar group key management protocol using IKEv1 <xref target="RFC2409"/>
similar group key management protocol using IKEv1 <xref (since deprecated by IKEv2). When G-IKEv2 is
target="RFC2409"></xref> (since deprecated by IKEv2). When G-IKEv2 is
used, group key management use cases can benefit from the simplicity, used, group key management use cases can benefit from the simplicity,
increased robustness and cryptographic improvements of IKEv2 (see increased robustness, and cryptographic improvements of IKEv2 (see
Appendix A of <xref target="RFC7296"></xref>).</t> <xref section="A" target="RFC7296"/>).</t>
<t>G-IKEv2 is composed of two phases: registration and rekeying. In the re
<t>G-IKEv2 is composed of two phases: registration and rekeying. In the re gistration phase, a GM
gistration phase a GM
contacts a GCKS to register to a group and to receive the necessary policy and the keying material contacts a GCKS to register to a group and to receive the necessary policy and the keying material
to be able communicate with the other GMs in the group as well as with the GCKS. to be able communicate with the other GMs in the group as well as with the GCKS.
The rekeying phase allows the GCKS to periodically renew the keying materi al for both GM-to-GM The rekeying phase allows the GCKS to periodically renew the keying materi al for both GM-to-GM
communications as well as for communication between the GM and the GCKS. communications as well as for communication between the GM and the GCKS.
</t> </t>
<t>G-IKEv2 defines two ways to perform registration. When a GM first
<t>G-IKEv2 defines two ways to perform registration. When a GM first conta contacts a GCKS, it uses the GSA_AUTH exchange (<xref
cts a GCKS it uses the GSA_AUTH exchange target="gsa_auth"/>) to register to a group. This exchange happens after
(<xref target="gsa_auth" />) to register to a group. This exchange happens the IKE_SA_INIT exchange (similarly to the IKE_AUTH exchange in IKEv2)
after the IKE_SA_INIT exchange and results in establishing an IKE Security Association (SA) between the G
(similarly to the IKE_AUTH exchange in IKEv2) and results in establishing M and the GCKS.
an IKE SA between the GM and the GCKS. During this exchange, the GCKS authenticates and authorizes the GM and the
During this exchange the GCKS authenticates and authorizes the GM, then pu n
shes policy and keys used by the group to the GM. pushes policy and keys used by the group to the GM. The second new
The second new exchange type is the GSA_REGISTRATION exchange (<xref targe exchange type is the GSA_REGISTRATION exchange (<xref
t="gsa_registration" />), target="gsa_registration"/>), which can be used by the GM within the alrea
which a GM can use within the already established IKE SA with the GCKS (e. dy-established
g. for registering to another group). IKE SA with the GCKS (e.g., for registering to another
group).
</t> </t>
<t>Refreshing the group keys can be performed either in a unicast mode via
<t> Refreshing the group keys can be performed either in an unicast mode v the
ia the GSA_INBAND_REKEY exchange (<xref target="gsa_inband_rekey"/>) performed ov
GSA_INBAND_REKEY exchange (<xref target="gsa_inband_rekey" />) performed o er a specific IKE SA between a GM and a GCKS
ver a specific IKE SA between a GM and a GCKS or in a multicast mode with the GSA_REKEY pseudo exchange (<xref target="g
or in a multicast mode with the GSA_REKEY pseudo exchange (<xref target="g sa_rekey"/>) when new keys are being distributed to all GMs.
sa_rekey" />), when new keys are being distributed to all GMs.
</t> </t>
<t>Large and small groups may use different sets of these mechanisms. <t>Large and small groups may use different sets of these mechanisms.
When a large group of devices are communicating, the GCKS is likely to When a large group of devices are communicating, the GCKS is likely to
use the GSA_REKEY message for efficiency. This is shown in <xref use the GSA_REKEY message for efficiency. This is shown in <xref target="l
target="large-groups"></xref>, where multicast communications indicated wi arge-groups"/>, where multicast communications are indicated with a double line.
th a double line. <!-- [rfced] Please review whether any of the notes in this document
(Note: For clarity, IKE_SA_INIT is omitted from <xref target="large-groups should be in the <aside> element. It is defined as "a container for
" /> and <xref target="small-groups" />).</t> content that is semantically less important or tangential to the
content that surrounds it" (https://authors.ietf.org/en/rfcxml-vocabulary#aside)
.
-->
(Note: For clarity, IKE_SA_INIT is omitted from Figures <xref target="larg
e-groups" format="counter"/> and <xref target="small-groups" format="counter"/>.
)</t>
<figure anchor="large-groups" title="G-IKEv2 used in large groups"> <figure anchor="large-groups">
<artwork align="center" name=""><![CDATA[ <name>G-IKEv2 Used in Large Groups</name>
<artwork name=""><![CDATA[
+--------+ +--------+
+----IKEv2---->| GCKS |<----IKEv2----+ +----IKEv2---->| GCKS |<----IKEv2----+
| +--------+ | | +--------+ |
| || ^ | | || ^ |
| || | | | || | |
| || GSA_AUTH | | || GSA_AUTH |
| || or | | || or |
| || GSA_REGISTRATION | | || GSA_REGISTRATION |
| || | | | || | |
GSA_AUTH || IKEv2 GSA_AUTH GSA_AUTH || IKEv2 GSA_AUTH
skipping to change at line 140 skipping to change at line 155
|| || || || || ||
*=====ESP/AH=====**=====ESP/AH====* *=====ESP/AH=====**=====ESP/AH====*
]]></artwork> ]]></artwork>
</figure> </figure>
<t>Alternatively, a small group may simply use the GSA_AUTH or GSA_REGISTR ATION as <t>Alternatively, a small group may simply use the GSA_AUTH or GSA_REGISTR ATION as
registration protocols, where the GCKS issues rekeys using the registration protocols, where the GCKS issues rekeys using the
GSA_INBAND_REKEY within the same IKE SA. GSA_INBAND_REKEY within the same IKE SA.
</t> </t>
<figure anchor="small-groups" title="G-IKEv2 used in small groups"> <figure anchor="small-groups">
<artwork align="center" name=""><![CDATA[ <name>G-IKEv2 Used in Small Groups</name>
<artwork name=""><![CDATA[
GSA_AUTH or GSA_REGISTRATION, GSA_INBAND_REKEY GSA_AUTH or GSA_REGISTRATION, GSA_INBAND_REKEY
+--------------------IKEv2----------------------+ +--------------------IKEv2----------------------+
| | | |
| GSA_AUTH or GSA_REGISTRATION, | | GSA_AUTH or GSA_REGISTRATION, |
| GSA_INBAND_REKEY | | GSA_INBAND_REKEY |
| +-----------IKEv2-------------+ | | +-----------IKEv2-------------+ |
| | | | | | | |
| |GSA_AUTH or GSA_REGISTRATION,| | | |GSA_AUTH or GSA_REGISTRATION,| |
| | GSA_INBAND_REKEY | | | | GSA_INBAND_REKEY | |
| | +--IKEv2-+ | | | | +--IKEv2-+ | |
skipping to change at line 163 skipping to change at line 179
+---------+ +----+ +----+ +----+ +---------+ +----+ +----+ +----+
| GCKS/GM | | GM | | GM | | GM | | GCKS/GM | | GM | | GM | | GM |
+---------+ +----+ +----+ +----+ +---------+ +----+ +----+ +----+
|| || || || || || || ||
*==ESP/AH==**=====ESP/AH====**===ESP/AH===* *==ESP/AH==**=====ESP/AH====**===ESP/AH===*
]]></artwork> ]]></artwork>
</figure> </figure>
<t> A combination of these approaches is also possible. For example, <t> A combination of these approaches is also possible. For example,
the GCKS may use more robust GSA_INBAND_REKEY to provide keys for some GMs the GCKS may use more robust GSA_INBAND_REKEY to provide keys for some GMs
(for example, those acting as senders in the group) and GSA_REKEY for the (for example, those acting as senders in the group) and GSA_REKEY for the
rest. rest. Also note that GCKS may be a GM (as shown in <xref target="small-groups"/>
Note also, that GCKS may also be a GM (as shown in <xref target="small-gro ).
ups"></xref>).
</t> </t>
<t>IKEv2 message semantics are preserved in that all communications <t>IKEv2 message semantics are preserved in that all communications
consists of message request-response pairs. The exception to this rule consist of message request-response pairs. The exception to this rule
is the GSA_REKEY pseudo-exchange, which is a single message delivering gro up is the GSA_REKEY pseudo-exchange, which is a single message delivering gro up
updates to the GMs.</t> updates to the GMs.</t>
<section>
<section title="Requirements Notation"> <name>Requirements Notation</name>
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", <t>
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU
"OPTIONAL" in this document are to be interpreted as described in BCP IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
14 <xref target="RFC2119"></xref> <xref target="RFC8174"></xref> when, NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>
and only when, they appear in all capitals, as shown here.</t> RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to
be interpreted as
described in BCP&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.
</t>
</section> </section>
<section anchor="terms">
<section title="Terminology" anchor="terms"> <name>Terminology</name>
<t> It is assumed that readers are familiar with the IPsec architecture <t> It is assumed that readers are familiar with the IPsec
<xref target="RFC4301" />, architecture <xref target="RFC4301"/> and its extension for multicast
and its extension for multicast <xref target="RFC5374" />. This document <xref target="RFC5374"/>. This document defines an extension to the
defines an extension to the IKEv2 protocol <xref target="RFC7296" /> IKEv2 protocol <xref target="RFC7296"/> and skips many of its
and skips many its details. The notation and conventions from <xref targ details. The notation and conventions from <xref target="RFC7296"/>
et="RFC7296" /> are used for describing G-IKEv2 payloads and exchanges. are used for describing G-IKEv2 payloads and exchanges.
</t> </t>
<t>The following key terms are used throughout this document (mostly bor <!--[rfced] As the full titles of RFCs 3740, 5374, and 6407 are
rowed from Multicast Group Security Architecture <xref target="RFC3740" />, included in Section 1, we removed the titles from the following
Multicast Extensions to the Security Architecture <xref target="RFC53 text in Section 1.2. Please let us know of any objections.
74" /> and GDOI <xref target="RFC6407" />).</t>
<dl anchor="definitions" newline="true"> Original:
<dt>Group</dt> The following key terms are used throughout this document (mostly
<dd>A set of IPsec devices that communicate to each other using multic borrowed from the Multicast Group Security Architecture [RFC3740],
ast.</dd> Multicast Extensions to the Security Architecture [RFC5374], and the
Group Domain of Interpretation (GDOI) [RFC6407]).
<dt>Group Member (GM)</dt> Current:
The following key terms are used throughout this document (mostly
borrowed from [RFC3740], [RFC5374], and [RFC6407]).
-->
<t>The following key terms are used throughout this document (mostly
borrowed from <xref
target="RFC3740"/>, <xref target="RFC5374"/>, and <xref target="RFC6407"
/>).</t>
<dl anchor="definitions" newline="true" spacing="normal">
<dt>Group:</dt>
<dd>A set of IPsec devices that communicate to each other using multic
ast.</dd>
<dt>Group Member (GM):</dt>
<dd>An IPsec device that belongs to a group. A Group Member is <dd>An IPsec device that belongs to a group. A Group Member is
authorized to be a Group Sender and/or a Group Receiver. authorized to be a Group Sender and/or a Group Receiver.
</dd> </dd>
<dt>Group Receiver:</dt>
<dt>Group Receiver</dt>
<dd>A Group Member that is authorized to receive packets sent to a gro up by a Group Sender. <dd>A Group Member that is authorized to receive packets sent to a gro up by a Group Sender.
</dd> </dd>
<dt>Group Sender:</dt>
<dt>Group Sender</dt>
<dd>A Group Member that is authorized to send packets to a group. <dd>A Group Member that is authorized to send packets to a group.
</dd> </dd>
<dt>Group Key Management (GKM) Protocol:</dt>
<dt>Group Key Management (GKM) Protocol</dt>
<dd>A key management protocol used by a GCKS to distribute IPsec <dd>A key management protocol used by a GCKS to distribute IPsec
Security Association policy and keying material. A GKM protocol Security Association policy and keying material. A GKM protocol
is needed because a group of IPsec devices require the same SAs. For is needed because a group of IPsec devices require the same SAs. For
example, when an IPsec SA describes an IP multicast destination, example, when an IPsec SA describes an IP multicast destination,
the sender and all receivers need to have the group SA. the sender and all receivers need to have the group SA.
</dd> </dd>
<dt>Group Controller/Key Server (GCKS):</dt>
<dt>Group Controller/Key Server (GCKS)</dt>
<dd>A Group Key Management (GKM) protocol server that manages IPsec <dd>A Group Key Management (GKM) protocol server that manages IPsec
state for a group. A GCKS authenticates and provides the IPsec SA state for a group. A GCKS authenticates and provides the IPsec SA
policy and keying material to GMs. policy and keying material to GMs.
</dd> </dd>
<dt>Data-Security SA:</dt>
<dt>Data-Security SA</dt>
<dd>A multicast SA between each multicast sender and the group's recei vers. <dd>A multicast SA between each multicast sender and the group's recei vers.
The Data-Security SA protects data between member senders and The Data-Security SA protects data between member senders and
member receivers. One or more SAs are required for the multicast trans mission of member receivers. One or more SAs are required for the multicast trans mission of
data-messages from the Group Sender to other group members. data messages from the Group Sender to other group members.
This specification relies on ESP and AH as protocols for Data-Security This specification relies on Encapsulating Security Payload (ESP) and
SAs. Authentication Header (AH) as protocols for Data-Security SAs.
</dd> </dd>
<dt>Rekey SA:</dt>
<dt>Rekey SA</dt>
<dd>A single multicast SA between the GCKS and all of the group member s. <dd>A single multicast SA between the GCKS and all of the group member s.
This SA is used for multicast transmission of key management messages from the GCKS to all GMs. This SA is used for multicast transmission of key management messages from the GCKS to all GMs.
</dd> </dd>
<dt>Group Security Association (GSA):</dt>
<dt>Group Security Association (GSA)</dt> <dd>A collection of Data-Security SAs and Rekey SAs
<dd>A collection of Data-Security SAs and Rekey SA
necessary for a Group Member to receive key updates. necessary for a Group Member to receive key updates.
A GSA describes the working policy for a group. Refer to MSEC Group K ey Management Architecture <xref target="RFC4046" /> A GSA describes the working policy for a group. Refer to the MSEC Gro up Key Management Architecture <xref target="RFC4046"/>
for additional information. for additional information.
</dd> </dd>
<dt>Traffic Encryption Key (TEK):</dt>
<dt>Traffic Encryption Key (TEK)</dt>
<dd>The symmetric cipher key used in a Data-Security SA (e.g., IPsec E SP) to protect traffic. <dd>The symmetric cipher key used in a Data-Security SA (e.g., IPsec E SP) to protect traffic.
</dd> </dd>
<dt>Key Encryption Key (KEK):</dt>
<dt>Key Encryption Key (KEK)</dt>
<dd>The symmetric key (or a set of keys) used in a Rekey SA to protect its messages. The set of keys may include keys <dd>The symmetric key (or a set of keys) used in a Rekey SA to protect its messages. The set of keys may include keys
for encryption and authentication, as well as keys for key wrapping. for encryption and authentication, as well as keys for key wrapping.
</dd> </dd>
<dt>Key Wrap Key (KWK):</dt>
<dt>Key Wrap Key (KWK)</dt>
<dd>The symmetric cipher key used to protect another key. <dd>The symmetric cipher key used to protect another key.
</dd> </dd>
<dt>Group-wide (GW) policy:</dt>
<dt>Group-wide (GW) policy</dt>
<dd>Group policy not related to a particular SA. <dd>Group policy not related to a particular SA.
</dd> </dd>
<dt>Activation Time Delay (ATD):</dt>
<dt>Activation Time Delay (ATD)</dt> <dd>Defines how long Group Senders should wait after receiving new SAs
<dd>Defines how long Group Senders should wait after receiving new SAs before sending traffic over them.
before starting sending traffic over them.
</dd> </dd>
<dt>Deactivation Time Delay (DTD):</dt>
<dt>Deactivation Time Delay (DTD)</dt>
<dd>Defines how long Group Members should wait after receiving a reque st to delete Data-Security SAs before actually deleting them. <dd>Defines how long Group Members should wait after receiving a reque st to delete Data-Security SAs before actually deleting them.
</dd> </dd>
<dt>Sender-ID:</dt>
<dt>Sender-ID</dt> <dd>A unique identifier of a Group Sender in the context of an active
<dd>A unique identifier of a Group Sender in the context of an active GSA used to form the Initialization Vector (IV) in counter-based cipher modes.
GSA, used to form Initialization Vector (IV) in counter-based cipher modes.
</dd> </dd>
<dt>Logical Key Hierarchy (LKH):</dt>
<dt>Logical Key Hierarchy (LKH)</dt> <dd>A group management method defined in <xref target="RFC2627" sectio
<dd>A group management method defined in Section 5.4 of Key Management nFormat="of" section="5.4"/>.
for Multicast <xref target="RFC2627" />.
</dd> </dd>
</dl> </dl>
</section> </section>
</section> </section>
<section>
<section title="G-IKEv2 Protocol"> <name>G-IKEv2 Protocol</name>
<t>G-IKEv2 is an extension to the IKEv2 protocol <xref target="RFC7296" <t>G-IKEv2 is an extension to the IKEv2 protocol <xref target="RFC7296"/>
/> that provides group authorization, that provides group authorization,
secure policy and keys download from the GCKS to GMs. secure policy, and keys download from the GCKS to GMs.
</t> </t>
<section>
<section title="G-IKEv2 Integration into IKEv2 Protocol"> <name>G-IKEv2 Integration into the IKEv2 Protocol</name>
<t>G-IKEv2 is compatible with most IKEv2 extensions defined so far (see <t>G-IKEv2 is compatible with most IKEv2 extensions defined so far (see
<xref target="ike_ext" /> for details). <xref target="ike_ext"/> for details).
In particular, it is assumed that, if necessary, the IKE_INTERMEDIATE ex In particular, it is assumed that, if necessary, the IKE_INTERMEDIATE ex
changes <xref target="RFC9242" /> may be utilized changes <xref target="RFC9242"/> may be utilized
while establishing the registration SA. It is also believed that while establishing the registration SA. It is also believed that
future IKEv2 extensions will be possible to use with G-IKEv2, however, s ome IKEv2 extensions may require future IKEv2 extensions will be possible to use with G-IKEv2. However, s ome IKEv2 extensions may require
special handling when used with G-IKEv2.</t> special handling when used with G-IKEv2.</t>
<section>
<name>G-IKEv2 Transport and Port</name>
<t> As an IKEv2 extension, G-IKEv2 <bcp14>SHOULD</bcp14> use the IKEv2
ports (500, 4500).
<!-- [rfced] Should the following sentence be rephrased as shown below
to clarify "IKE SA"?
<section title="G-IKEv2 Transport and Port"> Current:
<t> As IKEv2 extension, G-IKEv2 <bcp14>SHOULD</bcp14> use the IKEv2 po G-IKEv2 MAY also use TCP transport for registration (unicast) IKE SA,
rts (500, 4500). as defined in TCP Encapsulation of IKEv2 and IPsec [RFC9329].
Perhaps:
G-IKEv2 MAY also use TCP transport for the registration (unicast) of IKE SA,
as defined in TCP Encapsulation of IKEv2 and IPsec [RFC9329].
-->
G-IKEv2 <bcp14>MAY</bcp14> also use TCP transport for registration (un icast) IKE SA, G-IKEv2 <bcp14>MAY</bcp14> also use TCP transport for registration (un icast) IKE SA,
as defined in TCP Encapsulation of IKEv2 and IPsec <xref target="RFC93 as defined in TCP Encapsulation of IKEv2 and IPsec <xref target="RFC93
29" />. 29"/>.
G-IKEv2 <bcp14>MAY</bcp14> also use UDP port 848, the same as GDOI <xr G-IKEv2 <bcp14>MAY</bcp14> also use UDP port 848, the same as Group Do
ef main of Interpretation (GDOI) <xref target="RFC6407"/>, because they serve a sim
target="RFC6407"></xref>, because they serve a similar function. ilar function.
The version number in the IKE header distinguishes the G-IKEv2 The version number in the IKE header distinguishes the G-IKEv2
protocol from GDOI protocol <xref target="RFC6407"></xref>. protocol from the GDOI protocol <xref target="RFC6407"/>.
</t> </t>
<t><xref target="RFC7296" sectionFormat="of"
<t>Section 2.23 of IKEv2 <xref target="RFC7296" /> describes how IKEv2 section="2.23"/> describes how IKEv2 supports paths with NATs.
supports paths with NATs. The G-IKEv2 registration SA doesn't create any unicast IPsec SAs; thus
G-IKEv2 registration SA doesn't create any unicast IPsec SAs, thus if ,
a NAT is present between the GM and the GCKS, there is no unicast if a NAT is present between the GM and the GCKS, there is no unicast
ESP traffic to encapsulate in UDP. However, the actions described ESP traffic to encapsulate in UDP. However, the actions described in
in this section regarding the IKE SA <bcp14>MUST</bcp14> be honored. this section regarding the IKE SA <bcp14>MUST</bcp14> be honored.
The behavior of GMs and GCKS <bcp14>MUST NOT</bcp14> depend on the por The behavior of GMs and GCKS <bcp14>MUST NOT</bcp14> depend on the
t used to create the initial IKE SA. port used to create the initial IKE SA. For example, if the GM and
For example, if the GM and the GCKS used UDP port 848 for the IKE_SA_I the GCKS used UDP port 848 for the IKE_SA_INIT exchange, they will
NIT exchange, they operate the same as if they had used UDP port 500.
will operate the same as if they had used UDP port 500.
</t> </t>
</section> </section>
</section> </section>
<section>
<name>G-IKEv2 Payloads</name>
<t>In the following descriptions, the payloads contained in the G-IKEv2
messages are indicated by names as listed below.</t>
<!-- [rfced] Please review Table 1 in Section 2.2. We note that there
is some variation between the payload names used in this table
and those used in RFC 7296. For example, in RFC 7296, "HDR" is
"IKE header (not a payload)" and "SK" is "Encrypted and
Authenticated". Please let us know if we should update this table
to match what appears in RFC 7296.
<section title="G-IKEv2 Payloads"> In addition, we note the following variations in Table 1 and the
<t>In the following descriptions, the payloads contained in the G-IKEv running text. Should the payload for "IDg" be updated as "Group
2 Identification" to match Table 18 (i.e., the "IKEv2 Payload Types"
messages are indicated by names as listed below.</t> IANA registry)? Please let us know how we may make these
consistent.
<table title="Payloads used in G-IKEv2">
<thead>
<tr>
<th>Notation</th><th>Payload</th><th>Defined in</th>
</tr>
</thead>
<tbody>
<tr>
<td>AUTH</td><td>Authentication</td><td><xref target="RFC7296"/>
</td>
</tr>
<tr>
<td>CERT</td><td>Certificate</td><td><xref target="RFC7296"/></t
d>
</tr>
<tr>
<td>CERTREQ</td><td>Certificate Request</td><td><xref target="RF
C7296"/></td>
</tr>
<tr>
<td>D</td><td>Delete</td><td><xref target="RFC7296"/></td>
</tr>
<tr>
<td>GSA</td><td>Group Security Association</td><td><xref target=
"gsa_payload"/></td>
</tr>
<tr>
<td>HDR</td><td>IKEv2 Header</td><td><xref target="RFC7296"/></t
d>
</tr>
<tr>
<td>IDg</td><td>Identification - Group</td><td><xref target="idg
_payload"/></td>
</tr>
<tr>
<td>IDi</td><td>Identification - Initiator</td><td><xref target=
"RFC7296"/></td>
</tr>
<tr>
<td>IDr</td><td>Identification - Responder</td><td><xref target=
"RFC7296"/></td>
</tr>
<tr>
<td>KD</td><td>Key Download</td><td><xref target="kd_payload"/><
/td>
</tr>
<tr>
<td>KE</td><td>Key Exchange</td><td><xref target="RFC7296"/></td
>
</tr>
<tr>
<td>Ni, Nr</td><td>Nonce</td><td><xref target="RFC7296"/></td>
</tr>
<tr>
<td>N</td><td>Notify</td><td><xref target="RFC7296"/></td>
</tr>
<tr>
<td>SA</td><td>Security Association</td><td><xref target="RFC729
6"/></td>
</tr>
<tr>
<td>SAg</td><td>Security Association - GM Supported Transforms</
td><td><xref target="sag_payload"/></td>
</tr>
<tr>
<td>SK</td><td>Encrypted</td><td><xref target="RFC7296"/></td>
</tr>
</tbody>
</table>
<t> Payloads defined as part of other IKEv2 extensions <bcp14>MAY</bcp IDg: Identification - Group (Table 1) vs.
14> also be included in Group Identification (IDg) vs.
Group ID (IDg) vs.
group IDg vs.
group ID
-->
<table>
<name>Payloads Used in G-IKEv2</name>
<thead>
<tr>
<th>Notation</th>
<th>Payload</th>
<th>Defined in</th>
</tr>
</thead>
<tbody>
<tr>
<td>AUTH</td>
<td>Authentication</td>
<td>
<xref target="RFC7296"/></td>
</tr>
<tr>
<td>CERT</td>
<td>Certificate</td>
<td>
<xref target="RFC7296"/></td>
</tr>
<tr>
<td>CERTREQ</td>
<td>Certificate Request</td>
<td>
<xref target="RFC7296"/></td>
</tr>
<tr>
<td>D</td>
<td>Delete</td>
<td>
<xref target="RFC7296"/></td>
</tr>
<tr>
<td>GSA</td>
<td>Group Security Association</td>
<td>
<xref target="gsa_payload"/></td>
</tr>
<tr>
<td>HDR</td>
<td>IKEv2 Header</td>
<td>
<xref target="RFC7296"/></td>
</tr>
<tr>
<td>IDg</td>
<td>Identification - Group</td>
<td>
<xref target="idg_payload"/></td>
</tr>
<tr>
<td>IDi</td>
<td>Identification - Initiator</td>
<td>
<xref target="RFC7296"/></td>
</tr>
<tr>
<td>IDr</td>
<td>Identification - Responder</td>
<td>
<xref target="RFC7296"/></td>
</tr>
<tr>
<td>KD</td>
<td>Key Download</td>
<td>
<xref target="kd_payload"/></td>
</tr>
<tr>
<td>KE</td>
<td>Key Exchange</td>
<td>
<xref target="RFC7296"/></td>
</tr>
<tr>
<td>Ni, Nr</td>
<td>Nonce</td>
<td>
<xref target="RFC7296"/></td>
</tr>
<tr>
<td>N</td>
<td>Notify</td>
<td>
<xref target="RFC7296"/></td>
</tr>
<tr>
<td>SA</td>
<td>Security Association</td>
<td>
<xref target="RFC7296"/></td>
</tr>
<tr>
<td>SAg</td>
<td>Security Association - GM Supported Transforms</td>
<td>
<xref target="sag_payload"/></td>
</tr>
<tr>
<td>SK</td>
<td>Encrypted</td>
<td>
<xref target="RFC7296"/></td>
</tr>
</tbody>
</table>
<t> Payloads defined as part of other IKEv2 extensions <bcp14>MAY</bcp14
> also be included in
these messages. Payloads that may optionally appear in G-IKEv2 message s these messages. Payloads that may optionally appear in G-IKEv2 message s
will be shown in brackets, such as [CERTREQ]. will be shown in brackets, such as [CERTREQ].
</t> </t>
<t>G-IKEv2 defines several new payloads not used in IKEv2:</t>
<t>G-IKEv2 defines several new payloads not used in IKEv2:</t> <dl newline="true" spacing="normal">
<t><list style="symbols"> <dt>Group ID (IDg):</dt><dd>The GM requests the GCKS for membership
<t>IDg (Group ID) -- The GM requests the GCKS for membership into into the group by sending its IDg payload.</dd>
the group by sending its IDg payload.</t> <dt>Security Association - GM Supported
Transforms (SAg):</dt><dd>The GM optionally sends supported transforms
<t>SAg (Security Association -- GM Supported Transforms) -- the GM o so
ptionally sends that GCKS may select a policy appropriate for all members of the
supported transforms, so that GCKS may select a policy appropriate f group (which is not negotiated, unlike SA parameters in IKEv2).</dd>
or all members <dt>Group Security Association (GSA):</dt><dd>The GCKS sends the
of the group (which is not negotiated, unlike SA parameters in IKEv2 group policy to the GM using this payload.</dd>
).</t> <dt>Key Download (KD):</dt><dd>The GCKS sends the keys and the
security parameters to the GMs using this payload.</dd>
<t>GSA (Group Security Association) -- The GCKS sends the group </dl>
policy to the GM using this payload.</t> <t> The details of the contents of each payload are described in <xref t
arget="header_payload"/>.
<t>KD (Key Download) -- The GCKS sends the keys and the security par </t>
ameters
to the GMs using this payload.</t>
</list></t>
<t> The details of the contents of each payload are described in <xref
target="header_payload"></xref>.
</t>
</section> </section>
<section anchor="registration">
<section title="G-IKEv2 Member Registration and Secure Channel Establishme <name>G-IKEv2 Member Registration and Secure Channel Establishment</name
nt" anchor="registration"> >
<t>Initial registration is combined with establishing a secure connectio n between the <t>Initial registration is combined with establishing a secure connectio n between the
entity seeking registration and the GCKS. This process consists of a min imum of two entity seeking registration and the GCKS. This process consists of a min imum of two
exchanges, IKE_SA_INIT and GSA_AUTH; member registration may have a exchanges, IKE_SA_INIT and GSA_AUTH; member registration may have a
few more messages exchanged if the EAP method, cookie challenge (for few more messages exchanged if the Extensible Authentication Protocol (E
DoS protection), negotiation of key exchange method or IKEv2 extensions AP) method, cookie challenge (for
based on the IKEv2 Intermediate exchange <xref target="RFC9242" /> DoS protection), negotiation of key exchange method, or IKEv2 extensions
are used. Each exchange consists of request/response pairs. The first ex based on the IKEv2 Intermediate Exchange <xref target="RFC9242"/>
change are used. Each exchange consists of request/response pairs. The first ex
IKE_SA_INIT is defined in IKEv2 <xref target="RFC7296"></xref>. This change, called
exchange negotiates cryptographic algorithms, exchanges nonces and IKE_SA_INIT, is defined in IKEv2 <xref target="RFC7296"/>.
This
exchange negotiates cryptographic algorithms, exchanges nonces, and
computes a shared key between the GM and the GCKS. computes a shared key between the GM and the GCKS.
In addition to the cryptographic algorithms negotiated for use in IKEv2 SA, In addition to the cryptographic algorithms negotiated for use in IKEv2 SA,
a key wrap algorithm is also negotiated in this exchange by means of a n ew "Key Wrap Algorithm" transform. a key wrap algorithm is also negotiated in this exchange by means of a n ew "Key Wrap Algorithm" transform.
See <xref target="wrapped_key" /> for details. See <xref target="wrapped_key"/> for details.
</t> </t>
<t>The second exchange, called GSA_AUTH, is similar to the IKEv2 IKE_AUT
<t>The second exchange called GSA_AUTH is similar to the IKEv2 IKE_AUTH H exchange <xref target="RFC7296"/>.
exchange <xref target="RFC7296"></xref>. It authenticates the previously exchanged messages and exchanges identit
It authenticates the previously exchanged messages, exchanges identities ies and certificates.
and certificates.
The GSA_AUTH messages are encrypted and integrity protected with keys es tablished through the previous The GSA_AUTH messages are encrypted and integrity protected with keys es tablished through the previous
exchanges, so the identities are hidden from eavesdroppers and all exchanges, so the identities are hidden from eavesdroppers and all
fields in all the messages are authenticated. The GCKS authorizes fields in all the messages are authenticated. The GCKS authorizes
group members to be allowed into the group as part of the group members to be allowed into the group as part of the
GSA_AUTH exchange. Once the GCKS accepts a GM to join a GSA_AUTH exchange. Once the GCKS accepts a GM to join a
group it will provide the GM with the data-security keys (TEKs) and/or g roup key group, it will provide the GM with the data-security keys (TEKs) and/or a group key
encrypting key (KEK) as part of the GSA_AUTH response message. </t> encrypting key (KEK) as part of the GSA_AUTH response message. </t>
<t>The established secure channel between the GM and the GCKS is in fact IKE SA (as defined in <t>The established secure channel between the GM and the GCKS is in fact IKE SA (as defined in
<xref target="RFC7296"></xref>) and is referred to as such throughout th is document. <xref target="RFC7296"/>) and is referred to as such throughout this doc ument.
However, it is <bcp14>NOT RECOMMENDED</bcp14> to use this IKE SA for the purpose of creating However, it is <bcp14>NOT RECOMMENDED</bcp14> to use this IKE SA for the purpose of creating
unicast Child SAs between the GM and the GCKS, since authentication requ unicast Child SAs between the GM and the GCKS since authentication requi
irements for rements for
group admission and for unicast communication may differ. In addition, t group admission and for unicast communication may differ. In addition, t
he lifecycle he life cycle
of this IKE SA is determined by the GCKS and this SA can be deleted at a ny time. of this IKE SA is determined by the GCKS and this SA can be deleted at a ny time.
</t> </t>
<section anchor="gsa_auth">
<section anchor="gsa_auth" title="GSA_AUTH Exchange"> <name>GSA_AUTH Exchange</name>
<t>The GSA_AUTH exchange is used to authenticate the previous exchange <t>The GSA_AUTH exchange is used to authenticate the previous exchange
s, s and
exchange identities and certificates. G-IKEv2 also uses this exchange identities and certificates. G-IKEv2 also uses this
exchange for group member registration and authorization. exchange for group member registration and authorization.
</t> </t>
<t> The GSA_AUTH exchange is similar to the IKE_AUTH exchange with the <t> The GSA_AUTH exchange is similar to the IKE_AUTH exchange with the
difference that its goal is to establish multicast Data-Security SA(s) difference that its goal is to establish a multicast Data-Security SA(
and optionally provide GM with the keys for Rekey SA. The set of paylo s)
ads and optionally provide GM with the keys for a Rekey SA. The set of pay
in the GSA_AUTH exchange is slightly different, because policy is not loads
negotiated between the group member and the GCKS, but instead in the GSA_AUTH exchange is slightly different because policy is not
provided by the GCKS for the GM. Note also, that GSA_AUTH negotiated between the group member and the GCKS; instead, it is
provided by the GCKS for the GM. Also note that GSA_AUTH
has its own exchange type, which is different from the IKE_AUTH exchan ge type. has its own exchange type, which is different from the IKE_AUTH exchan ge type.
</t> </t>
<t>Note that due to the similarities between IKE_AUTH and GSA_AUTH,
<t>Note, that due to the similarities between IKE_AUTH and GSA_AUTH,
most IKEv2 extensions to the IKE_AUTH exchange most IKEv2 extensions to the IKE_AUTH exchange
(like Secure Password authentication <xref target="RFC6467" />) can al so be used with the GSA_AUTH exchange. (like secure password authentication <xref target="RFC6467"/>) can als o be used with the GSA_AUTH exchange.
</t> </t>
<figure title="GSA_AUTH Request" anchor="gsa_auth_request"> <figure anchor="gsa_auth_request">
<preamble></preamble> <name>GSA_AUTH Request</name>
<artwork><![CDATA[
<artwork><![CDATA[
Initiator (GM) Responder (GCKS) Initiator (GM) Responder (GCKS)
-------------------- ------------------ -------------------- ------------------
HDR, SK{IDi, [CERT,] [CERTREQ,] [IDr,] HDR, SK{IDi, [CERT,] [CERTREQ,] [IDr,]
AUTH, IDg, [SAg,] [N(GROUP_SENDER),] [N]} --> AUTH, IDg, [SAg,] [N(GROUP_SENDER),] [N]} -->
]]></artwork> ]]></artwork>
<postamble></postamble>
</figure> </figure>
<t>A group member initiates a GSA_AUTH request to join a group indicat ed <t>A group member initiates a GSA_AUTH request to join a group indicat ed
by the IDg payload. The GM may include an SAg payload declaring which by the IDg payload. The GM may include an SAg payload declaring which
Transforms it is willing to accept. A GM that intends to act as Group Sender Transforms it is willing to accept. A GM that intends to act as Group Sender
<bcp14>MUST</bcp14> include a Notify payload status type of GROUP_SEND ER, <bcp14>MUST</bcp14> include a Notify payload status type of GROUP_SEND ER,
which enables the GCKS to provide any additional policy necessary by which enables the GCKS to provide any additional policy necessary by
group senders.</t> group senders.</t>
<figure title="GSA_AUTH Normal Response" anchor="gsa_auth_norm_respons <figure anchor="gsa_auth_norm_response">
e"> <name>GSA_AUTH Normal Response</name>
<preamble></preamble> <artwork><![CDATA[
<artwork><![CDATA[
Initiator (GM) Responder (GCKS) Initiator (GM) Responder (GCKS)
-------------------- ------------------ -------------------- ------------------
<-- HDR, SK{IDr, [CERT,] <-- HDR, SK{IDr, [CERT,]
AUTH, GSA, KD, [N]} AUTH, GSA, KD, [N]}
]]></artwork> ]]></artwork>
<postamble></postamble>
</figure> </figure>
<t> The GCKS responds with IDr, optional CERT, and AUTH payloads <t> The GCKS responds with IDr, optional CERT, and AUTH payloads
with the same meaning as in IKE_AUTH. It also informs the group member with the same meaning as in IKE_AUTH. It also informs the group member
of the cryptographic policies of the group in the GSA payload and of the cryptographic policies of the group in the GSA payload and
the key material in the KD payload. the key material in the KD payload.
</t> </t>
<t> Possible errors should be handled in accordance with <xref target=
<t> Possible erors should be handled in accordance with Section 2.21.2 "RFC7296" sectionFormat="of" section="2.21.2"/>.
of <xref target="RFC7296"/>.
In addition to the IKEv2 error handling, the GCKS can reject the In addition to the IKEv2 error handling, the GCKS can reject the
registration request when the IDg is invalid or authorization fails, registration request when the IDg is invalid or authorization fails,
etc. In these cases, see <xref target="notify"></xref>, the GSA_AUTH etc. In these cases (see <xref target="notify"/>), the GSA_AUTH
response will not include the GSA and KD, but will include a Notify response will not include the GSA and KD but will include a Notify
payload indicating errors. If a GM included an SAg payload indicating errors. If a GM included an SAg
payload, and the GCKS chooses to evaluate it, and the GCKS detects tha t payload and the GCKS chooses to evaluate it and detects that
the group member cannot support the security policy defined for the the group member cannot support the security policy defined for the
group, then the GCKS returns the NO_PROPOSAL_CHOSEN notification. group, then the GCKS returns the NO_PROPOSAL_CHOSEN notification.
Other types of error notifications can be INVALID_GROUP_ID, AUTHORIZAT ION_FAILED or REGISTRATION_FAILED.</t> Other types of error notifications can be INVALID_GROUP_ID, AUTHORIZAT ION_FAILED, or REGISTRATION_FAILED.</t>
<figure title="GSA_AUTH Error Response for Group-Related Errors" ancho <figure anchor="gsa_auth_err_response">
r="gsa_auth_err_response"> <name>GSA_AUTH Error Response for Group-Related Errors</name>
<preamble></preamble> <artwork><![CDATA[
<artwork><![CDATA[
Initiator (GM) Responder (GCKS) Initiator (GM) Responder (GCKS)
-------------------- ------------------ -------------------- ------------------
<-- HDR, SK{IDr, [CERT,] AUTH, N} <-- HDR, SK{IDr, [CERT,] AUTH, N}
]]></artwork> ]]></artwork>
<postamble></postamble>
</figure> </figure>
<t>If the GSA_AUTH exchange is completed successfully, but <t>If the GSA_AUTH exchange is completed successfully but
the group member finds the policy sent by the GCKS is the group member finds that the policy sent by the GCKS is
unacceptable, the member <bcp14>SHOULD</bcp14> inform the GCKS about t his by initiating the GSA_REGISTRATION exchange unacceptable, the member <bcp14>SHOULD</bcp14> inform the GCKS about t his by initiating the GSA_REGISTRATION exchange
with the IDg payload and the NO_PROPOSAL_CHOSEN notification with the IDg payload and the NO_PROPOSAL_CHOSEN notification
(see <xref target="gsa_registration_gm_error" />). (see <xref target="gsa_registration_gm_error"/>).
</t> </t>
</section> </section>
<section anchor="gsa_registration">
<section anchor="gsa_registration" title="GSA_REGISTRATION Exchange"> <name>GSA_REGISTRATION Exchange</name>
<t>Once the IKE SA between the GM and the GCKS is established, <t>Once the IKE SA between the GM and the GCKS is established,
the GM can use it for other registration requests, if this is needed. the GM can use it for other registration requests if needed.
In this scenario the GM will use the In this scenario, the GM will use the
GSA_REGISTRATION exchange. Payloads in the exchange are generated GSA_REGISTRATION exchange. Payloads in the exchange are generated
and processed as defined in <xref target="gsa_auth"></xref>.</t> and processed as defined in <xref target="gsa_auth"/>.</t>
<figure title="GSA_REGISTRATION Normal Exchange" anchor="gsa_registrat <figure anchor="gsa_registration_exchange">
ion_exchange"> <name>GSA_REGISTRATION Normal Exchange</name>
<preamble></preamble> <artwork><![CDATA[
<artwork><![CDATA[
Initiator (GM) Responder (GCKS) Initiator (GM) Responder (GCKS)
-------------------- ------------------ -------------------- ------------------
HDR, SK{IDg, [SAg,] HDR, SK{IDg, [SAg,]
[N(GROUP_SENDER),] [N]} --> [N(GROUP_SENDER),] [N]} -->
<-- HDR, SK{GSA, KD, [N]} <-- HDR, SK{GSA, KD, [N]}
]]></artwork> ]]></artwork>
<postamble></postamble>
</figure> </figure>
<t>As with GSA_AUTH exchange, the GCKS can reject the <t>As with GSA_AUTH exchange, the GCKS can reject the
registration request when the IDg is invalid or authorization fails, registration request when the IDg is invalid or authorization fails,
or GM cannot support the security policy defined for the or GM cannot support the security policy defined for the
group (which can be concluded by GCKS by evaluation of SAg payload). group (which can be concluded by the GCKS by evaluation of the SAg pay
In this case the GCKS returns an appropriate error notification load).
as described in <xref target="gsa_auth" />. In this case, the GCKS returns an appropriate error notification
as described in <xref target="gsa_auth"/>.
</t> </t>
<figure title="GSA_REGISTRATION Error Exchange" anchor="gsa_registrati <figure anchor="gsa_registration_err_exchange">
on_err_exchange"> <name>GSA_REGISTRATION Error Exchange</name>
<preamble></preamble> <artwork><![CDATA[
<artwork><![CDATA[
Initiator (GM) Responder (GCKS) Initiator (GM) Responder (GCKS)
-------------------- ------------------ -------------------- ------------------
HDR, SK{IDg, [SAg,] HDR, SK{IDg, [SAg,]
[N(GROUP_SENDER),] [N]} --> [N(GROUP_SENDER),] [N]} -->
<-- HDR, SK{N} <-- HDR, SK{N}
]]></artwork> ]]></artwork>
<postamble></postamble> </figure>
</figure>
<t>This exchange can also be used if the group member finds the <t>This exchange can also be used if the group member finds that the
policy sent by the GCKS is unacceptable or for some reason wants to le policy sent by the GCKS is unacceptable or wants to leave
ave the group for some reason. The group member <bcp14>SHOULD</bcp14>
the group. The group member <bcp14>SHOULD</bcp14>
notify the GCKS by sending IDg and the Notify type notify the GCKS by sending IDg and the Notify type
NO_PROPOSAL_CHOSEN or REGISTRATION_FAILED, as shown below. NO_PROPOSAL_CHOSEN or REGISTRATION_FAILED as shown below.
The GCKS in this case <bcp14>MUST</bcp14> remove the GM from the group In this case, the GCKS <bcp14>MUST</bcp14> remove the GM from the grou
IDg. p IDg.
</t> </t>
<figure title="GM Reporting Errors in GSA_REGISTRATION Exchange" ancho <figure anchor="gsa_registration_gm_error">
r="gsa_registration_gm_error"> <name>GM Reporting Errors in GSA_REGISTRATION Exchange</name>
<preamble></preamble> <artwork><![CDATA[
<artwork><![CDATA[
Initiator (GM) Responder (GCKS) Initiator (GM) Responder (GCKS)
-------------------- ------------------ -------------------- ------------------
HDR, SK{IDg, N} --> HDR, SK{IDg, N} -->
<-- HDR, SK{} <-- HDR, SK{}
]]></artwork> ]]></artwork>
</figure> </figure>
</section>
<section title="GM Registration Operations"> </section>
<section>
<name>GM Registration Operations</name>
<t>A GM requesting registration contacts the <t>A GM requesting registration contacts the
GCKS using the IKE_SA_INIT exchange. This exchange is unchanged from I KE_SA_INIT GCKS using the IKE_SA_INIT exchange. This exchange is unchanged from I KE_SA_INIT
in the IKEv2 protocol. The IKE_SA_INIT exchange may optionally be foll in the IKEv2 protocol.
owed
by one or more the IKE_INTERMEDIATE exchanges if the GM and the GCKS The IKE_SA_INIT exchange may optionally be followed
by one or more of the IKE_INTERMEDIATE exchanges if the GM and the GCK
S
negotiated use of IKEv2 extensions based on this exchange. negotiated use of IKEv2 extensions based on this exchange.
</t> </t>
<t>Next, the GM sends the GSA_AUTH request message with the IKEv2 payl
<t>Next the GM sends the GSA_AUTH request message with the IKEv2 paylo oads
ads from IKE_AUTH (without the SAi2, TSi, and TSr payloads) along with
from IKE_AUTH (without the SAi2, TSi and TSr payloads) along with
the Group ID informing the GCKS of the group the GM wishes to the Group ID informing the GCKS of the group the GM wishes to
join. An GM intending to emit data traffic <bcp14>MUST</bcp14> send a join. A GM intending to emit data traffic <bcp14>MUST</bcp14> send a
GROUP_SENDER Notify message type. The GROUP_SENDER notification not on ly signifies that it GROUP_SENDER Notify message type. The GROUP_SENDER notification not on ly signifies that it
is a sender, but provides the GM the ability to request is a sender but provides the GM the ability to request
Sender-ID values, in case the Data-Security SA supports a counter Sender-ID values in case the Data-Security SA supports a counter-mode
mode cipher. <xref target="sid_alloc"></xref> includes guidance cipher. <xref target="sid_alloc"/> includes guidance
on requesting Sender-ID values.</t> on requesting Sender-ID values.</t>
<t>A GM may be limited in the Transforms IDs that it is <t>A GM may be limited in the Transforms IDs that it is
able or willing to use, and may find it useful to inform the GCKS able or willing to use and may find it useful to inform the GCKS
which Transform IDs it is willing to accept for different security pro tocols which Transform IDs it is willing to accept for different security pro tocols
by including the SAg payload into the request message. by including the SAg payload into the request message.
Proposals for Rekey SA and for Data-Security Proposals for Rekey SA and for Data-Security
(AH <xref target="RFC4302" /> and/or ESP <xref target="RFC4303" />) SA s (AH <xref target="RFC4302"/> and/or ESP <xref target="RFC4303"/>) SAs
may be included into SAg. Proposals for Rekey SA are identified may be included into SAg. Proposals for Rekey SA are identified
by a new Protocol ID GIKE_UPDATE with the value &lt;TBA by IANA&gt;. by new Protocol ID GIKE_UPDATE with the value 6.
Each Proposal contains a list of Transforms that the GM is able Each Proposal contains a list of Transforms that the GM is able
and willing to support for that protocol. Valid transform types depend on the and willing to support for that protocol. Valid transform types depend on the
protocol (AH, ESP, GIKE_UPDATE) and are defined in <xref target="allow ed_transforms" />. protocol (AH, ESP, GIKE_UPDATE) and are defined in <xref target="allow ed_transforms"/>.
Other transform types <bcp14>SHOULD NOT</bcp14> be included as they wi ll be ignored by the GCKS. Other transform types <bcp14>SHOULD NOT</bcp14> be included as they wi ll be ignored by the GCKS.
The SPI length of each Proposal in an SAg is set to zero, and thus the SPI field is empty. The Security Parameter Index (SPI) length of each Proposal in an SAg i s set to zero, and thus the SPI field is empty.
The GCKS <bcp14>MUST NOT</bcp14> use SPI length and SPI fields in the SAg payload. The GCKS <bcp14>MUST NOT</bcp14> use SPI length and SPI fields in the SAg payload.
</t> </t>
<t>Generally, a single Proposal for each protocol (GIKE_UPDATE,
<t>Generally, a single Proposal for each protocol (GIKE_UPDATE, AH/ESP AH/ESP) will suffice. Because the transforms are not negotiated, the
) GM simply alerts the GCKS to restrictions it may have. In
will suffice, because the transforms are not negotiated, the GM particular, the restriction from <xref target="RFC7296"
simply alerts the GCKS to restrictions it may have. sectionFormat="of" section="3.3"/> that Authenticated Encryption with
In particular, the restriction from Section 3.3 of IKEv2 <xref target= Associated Data (AEAD) and non-AEAD
"RFC7296" /> that transforms not be combined in a single proposal doesn't hold when
AEAD and non-AEAD transforms not be combined in a single proposal the SAg payload is being formed. However, if the GM has restrictions
doesn't hold when the SAg payload is being formed. However on the combination of algorithms, this can be expressed by sending
if the GM has restrictions on combination of algorithms, several proposals.</t>
this can be expressed by sending several proposals.</t> <t>The Proposal Num field in the Proposal substructure is treated spec
ially in the SAg payload:
<t>Proposal Num field in Proposal substructure is treated specially in
SAg payload:
it allows a GM to indicate that algorithms used in Rekey SA and in it allows a GM to indicate that algorithms used in Rekey SA and in
Data-Security (AH and/or ESP) SAs are dependent. Data-Security (AH and/or ESP) SAs are dependent.
In particular, Proposals for different protocols having the same value In particular, Proposals for different protocols having the same value
in in the
Proposal Num field are treated as a set, so that if GCKS uses transfor Proposal Num field are treated as a set so that if GCKS uses transform
ms s
from one of such Proposal for one protocol, then it <bcp14>MUST</bcp14 > only use transforms from from one of such Proposal for one protocol, then it <bcp14>MUST</bcp14 > only use transforms from
one of the Proposals with the same value in Proposal Num field for oth er protocols. one of the Proposals with the same value in the Proposal Num field for other protocols.
For example, a GM may support algorithms X and Y for both Rekey and For example, a GM may support algorithms X and Y for both Rekey and
Data-Security SAs, but with a restriction that if X is used in Rekey S A, then only X can be used Data-Security SAs, but with a restriction that if X is used in Rekey SAs, then only X can be used
in Data-Security SAs, and the same for Y. in Data-Security SAs, and the same for Y.
Use of the same value in the Proposal Num field of different Use of the same value in the Proposal Num field of different
proposals indicates that the GM expects these proposals to be proposals indicates that the GM expects these proposals to be
used in conjunction with each other. used in conjunction with each other.
In the simplest case when no dependency between transforms exists, In the simplest case when no dependency between transforms exists,
all Proposals in SAg payload will have the same value in Proposal Num field. all Proposals in the SAg payload will have the same value in the Propo sal Num field.
</t> </t>
<t>Although the SAg payload is optional, it is <bcp14>RECOMMENDED</bcp
<t>Although the SAg payload is optional, it is <bcp14>RECOMMENDED</bcp 14> that the GM include
14> for the GM to include
this payload into the GSA_AUTH request to allow the GCKS to select an appropriate policy. this payload into the GSA_AUTH request to allow the GCKS to select an appropriate policy.
</t> </t>
<t>A GM <bcp14>MAY</bcp14> also indicate the support for IPcomp by inc luding one or more the IPCOMP_SUPPORTED <t>A GM <bcp14>MAY</bcp14> also indicate the support for IPcomp by inc luding one or more the IPCOMP_SUPPORTED
notifications along with the SAg payload in the request. The Compressi on Parameter Index (CPI) in these notifications is set to zero notifications along with the SAg payload in the request. The Compressi on Parameter Index (CPI) in these notifications is set to zero
and <bcp14>MUST</bcp14> be ignored by the GCKS. and <bcp14>MUST</bcp14> be ignored by the GCKS.
</t> </t>
<t>Upon receiving the GSA_AUTH response, the GM parses the <t>Upon receiving the GSA_AUTH response, the GM parses the
response from the GCKS authenticating the exchange using the IKEv2 response from the GCKS authenticating the exchange using the IKEv2
method, then processes the GSA and KD payloads.</t> method, then processes the GSA and KD payloads.</t>
<t>The GSA payload contains the security policy and cryptographic <t>The GSA payload contains the security policy and cryptographic
protocols used by the group. This policy describes the optional Rekey protocols used by the group.
SA
<!--[rfced] In the following, should "Data-Security SAs" be singular
since "TEK" is singular? Also, are all of these items optional
(option A), or are only the Rekey SA and Group-wide policy
optional (option B)?
Original:
This policy describes the optional Rekey SA (KEK),
Data-Security SAs (TEK), and optional Group-wide (GW)
policy.
Perhaps A:
This policy describes the Rekey SA (KEK),
Data-Security SA (TEK), and Group-wide (GW)
policy, which are all optional.
or
Perhaps B:
This policy describes the Data-Security SA (TEK), optional
Rekey SA (KEK), and optional Group-wide (GW) policy.
-->
This policy describes the optional Rekey SA
(KEK), Data-Security SAs (TEK), and optional Group-wide (GW) policy. (KEK), Data-Security SAs (TEK), and optional Group-wide (GW) policy.
If the policy in the GSA payload is not acceptable to the GM, If the policy in the GSA payload is not acceptable to the GM,
it <bcp14>SHOULD</bcp14> notify the GCKS by initiating a GSA_REGISTRAT ION exchange it <bcp14>SHOULD</bcp14> notify the GCKS by initiating a GSA_REGISTRAT ION exchange
with a NO_PROPOSAL_CHOSEN Notify payload (see <xref target="gsa_regist with a NO_PROPOSAL_CHOSEN Notify payload (see <xref target="gsa_regist
ration"></xref>). ration"/>).
Note, that this should normally not happen if the GM includes SAg payl Note that this should normally not happen if the GM includes the SAg p
oad ayload
in the GSA_AUTH request and the GCKS takes it into account. in the GSA_AUTH request and the GCKS takes it into account.
Finally the KD payload is parsed providing the keying material for the TEK and/or KEK. Finally, the KD payload is parsed, providing the keying material for t he TEK and/or KEK.
The KD payload contains a list of key bags, where each key bag include s the The KD payload contains a list of key bags, where each key bag include s the
keying material for SAs distributed in the GSA payload. Keying keying material for SAs distributed in the GSA payload. Keying
material is matched by comparing the SPIs in the key bags to SPIs material is matched by comparing the SPIs in the key bags to SPIs
previously included in the GSA payloads. Once TEK keys and policy previously included in the GSA payloads. Once TEK keys and policy
are matched, the GM provides them to the data-security subsystem, are matched, the GM provides them to the data-security subsystem,
and it is ready to send or receive packets matching the TEK and it is ready to send or receive packets matching the TEK
policy.</t> policy.</t>
<t> If the group member is not a sender for a received Data-Security S A, <t> If the group member is not a sender for a received Data-Security S A,
then it <bcp14>MUST</bcp14> install this SA only in the inbound direct ion. then it <bcp14>MUST</bcp14> install this SA only in the inbound direct ion.
If the group member is a sender for a received Data-Security SA, If the group member is a sender for a received Data-Security SA,
and it is not going to receive back the data it sends, and it is not going to receive back the data it sends,
then it <bcp14>MUST</bcp14> install this SA only in the outgoing direc tion. then it <bcp14>MUST</bcp14> install this SA only in the outgoing direc tion.
</t> </t>
<t>If the first Message ID the GM should expect to receive is non-zero , <t>If the first Message ID the GM should expect to receive is non-zero ,
the GSA KEK policy includes the attribute GSA_INITIAL_MESSAGE_ID with the GSA KEK policy includes the attribute GSA_INITIAL_MESSAGE_ID with
the expected non-zero value. the expected non-zero value.
The value of the attribute <bcp14>MUST</bcp14> be checked by a GM agai nst any previously received Message ID for this group. The value of the attribute <bcp14>MUST</bcp14> be checked by a GM agai nst any previously received Message ID for this group.
If it is less than the previously received number, it should be If it is less than the previously received number, it should be
considered stale and <bcp14>MUST</bcp14> be ignored. This could happen if two GSA_AUTH considered stale and <bcp14>MUST</bcp14> be ignored. This could happen if two GSA_AUTH
exchanges happened in parallel, and the Message ID changed. This exchanges happened in parallel and the Message ID changed. This
attribute is used by the GM to prevent GSA_REKEY message replay attribute is used by the GM to prevent GSA_REKEY message replay
attacks. The first GSA_REKEY message that the GM receives from the attacks. The first GSA_REKEY message that the GM receives from the
GCKS will have a Message ID greater or equal to the Message ID GCKS will have a Message ID greater than or equal to the Message ID
received in the GSA_INITIAL_MESSAGE_ID attribute.</t> received in the GSA_INITIAL_MESSAGE_ID attribute.</t>
<t>Group members <bcp14>MUST</bcp14> install the Rekey SA only in the inbound direction. <t>Group members <bcp14>MUST</bcp14> install the Rekey SA only in the inbound direction.
</t> </t>
<t>Once a GM successfully registers to the group, it <bcp14>MUST</bcp1
<t>Once a GM successfully registers to the group it <bcp14>MUST</bcp14 4> replace
> replace
any information related to this group (policy, keys) that it might any information related to this group (policy, keys) that it might
have as a result of a previous registration with a new one. have as a result of a previous registration with a new one.
</t> </t>
<t>Once a GM has received GIKE_UPDATE policy during a registration,
<t>Once a GM has received GIKE_UPDATE policy during a registration, th the IKE SA <bcp14>MAY</bcp14> be closed. By convention, the GCKS
e closes the IKE SA; the GM <bcp14>SHOULD NOT</bcp14> close it. The
IKE SA <bcp14>MAY</bcp14> be closed. By convention, the GCKS closes t GCKS <bcp14>MAY</bcp14> choose to keep the IKE SA open for inband
he IKE SA, rekey, especially for small groups. If inband rekey is used, then
the GM <bcp14>SHOULD NOT</bcp14> close it. the initial IKE SA can be rekeyed by any side with the standard
The GKCS <bcp14>MAY</bcp14> choose to keep the IKE SA open for inband IKEv2 mechanism described in <xref target="RFC7296"
rekey, sectionFormat="of" section="1.3.2"/>. If for some reason the
especially for small groups. If inband rekey is used, then the
initial IKE SA can be rekeyed by any side with the standard IKEv2 mech
anism
described in Section 1.3.2 of IKEv2 <xref target="RFC7296" />. If for
some reason the
IKE SA is closed and no GIKE_UPDATE policy is received during the IKE SA is closed and no GIKE_UPDATE policy is received during the
registration process, the GM <bcp14>MUST</bcp14> consider itself exclu registration process, the GM <bcp14>MUST</bcp14> consider itself
ded from the excluded from the group. To continue participating in the group,
group. To continue participating in the group, the GM needs to the GM needs to re-register.
re-register.
</t> </t>
</section> </section>
<section>
<section title="GCKS Registration Operations"> <name>GCKS Registration Operations</name>
<t>A G-IKEv2 GCKS listens for incoming requests from group <t>A G-IKEv2 GCKS listens for incoming requests from group
members. When the GCKS receives an IKE_SA_INIT request, it selects members. When the GCKS receives an IKE_SA_INIT request, it selects
an IKE proposal and generates a nonce and DH to include them in the an IKE proposal and generates a nonce and Diffie-Hellman (DH) to inclu de in the
IKE_SA_INIT response.</t> IKE_SA_INIT response.</t>
<t>Upon receiving the GSA_AUTH request, the GCKS authenticates the <t>Upon receiving the GSA_AUTH request, the GCKS authenticates the
group member via the GSA_AUTH exchange. The group member via the GSA_AUTH exchange. The
GCKS then authorizes the group member according to group policy GCKS then authorizes the group member according to group policy
before preparing to send the GSA_AUTH response. If the GCKS fails to before preparing to send the GSA_AUTH response. If the GCKS fails to
authorize the GM, it responds with an AUTHORIZATION_FAILED authorize the GM, it responds with an AUTHORIZATION_FAILED
notify message type. The GCKS may also respond with an INVALID_GROUP_I D notify message notify message type. The GCKS may also respond with an INVALID_GROUP_I D notify message
if the requested group is unknown to the GCKS or with an REGISTRATION_ FAILED if the requested group is unknown to the GCKS or with an REGISTRATION_ FAILED
notify message if there is a problem with the requested group (for exa mple notify message if there is a problem with the requested group (e.g., i f
the capacity of the group is exceeded).</t> the capacity of the group is exceeded).</t>
<t>The GSA_AUTH response will include the group policy in the GSA <t>The GSA_AUTH response will include the group policy in the GSA
payload and keys in the KD payload. If the GCKS policy includes a payload and keys in the KD payload.
If the GCKS policy includes a
group rekey option and the initial Message ID value the GCKS will use when sending the GSA_REKEY messages group rekey option and the initial Message ID value the GCKS will use when sending the GSA_REKEY messages
to the group members is non-zero, then this value is specified in the GSA_INITIAL_MESSAGE_ID attribute. to the group members is non-zero, then this value is specified in the GSA_INITIAL_MESSAGE_ID attribute.
This Message ID is used to prevent GSA_REKEY This Message ID is used to prevent GSA_REKEY
message replay attacks and will be increased each time a GSA_REKEY mes sage is sent message replay attacks and will be increased each time a GSA_REKEY mes sage is sent
to the group. The GCKS data traffic policy is included in the GSA to the group. The GCKS data traffic policy is included in the GSA
TEK and keys are included in the KD TEK. The GW policy <bcp14>MAY</bcp 14> also be TEK and keys are included in the KD TEK. The GW policy <bcp14>MAY</bcp 14> also be
included to provide the ATD and/or DTD (<xref target="gwp_attr_atd_dtd included to provide the Activation
"></xref>) Time Delay (ATD) and/or Deactivation Time Delay (DTD) (<xref target="gwp_attr
specifying activation and deactivation _atd_dtd"/>)
to specify activation and deactivation
delays for SAs generated from the TEKs. If the group member has delays for SAs generated from the TEKs. If the group member has
indicated that it is a sender of data traffic and one or more Data indicated that it is a sender of data traffic and one or more Data-Sec
Security SAs distributed in the GSA payload included a counter mode urity SAs distributed in the GSA payload included a counter mode
of operation, the GCKS responds with one or more Sender-ID values (see of operation, the GCKS responds with one or more Sender-ID values (see
<xref <xref target="counter-modes"/>).</t>
target="counter-modes"></xref>).</t> <t> Multicast Extensions to the Security Architecture <xref target="RF
C5374"/> defines two modes of operation for multicast
<t> Multicast Extensions to the Security Architecture <xref target="RF
C5374" /> defines two modes of operation for multicast
Data-Security SAs: transport mode and tunnel mode with address preserv ation. Data-Security SAs: transport mode and tunnel mode with address preserv ation.
In the latter case outer source and destination addresses are taken fr om In the latter case, outer source and destination addresses are taken f rom
the inner IP packet. The mode of operation for the Data-Security SAs i s determined the inner IP packet. The mode of operation for the Data-Security SAs i s determined
by the presence of the USE_TRANSPORT_MODE notification by the presence of the USE_TRANSPORT_MODE notification
in the GCKS's response message of the registration exchange: if it is present, in the GCKS's response message of the registration exchange. If it is present,
then SAs are created in transport mode; otherwise, SAs are created in tunnel mode. then SAs are created in transport mode; otherwise, SAs are created in tunnel mode.
If multiple Data-Security SAs are being created in a single registrati on exchange, If multiple Data-Security SAs are being created in a single registrati on exchange,
then all of them will have the same mode of operation. then all of them will have the same mode of operation.
</t> </t>
<t>If the GCKS receives a GSA_REGISTRATION exchange with a request <t>If the GCKS receives a GSA_REGISTRATION exchange with a request
to register a GM to a group, the GCKS will need to authorize the GM to register a GM to a group, the GCKS will need to authorize the GM
with the new group (IDg) and respond with the corresponding group with the new group (IDg) and respond with the corresponding group
policy and keys. If the GCKS fails to authorize the GM, it will policy and keys. If the GCKS fails to authorize the GM, it will
respond with the AUTHORIZATION_FAILED notification. The GCKS may also respond with the AUTHORIZATION_FAILED notification. The GCKS may also
respond with an INVALID_GROUP_ID or REGISTRATION_FAILED notify message s respond with an INVALID_GROUP_ID or REGISTRATION_FAILED notify message s
for the reasons described above.</t> for the reasons described above.</t>
<t>If a group member includes an SAg in its GSA_AUTH or <t>If a group member includes an SAg in its GSA_AUTH or
GSA_REGISTRATION request, the GCKS may evaluate it according to an GSA_REGISTRATION request, the GCKS may evaluate it according to an
implementation specific policy. implementation-specific policy.
<list style="symbols"> </t>
<ul spacing="normal">
<li>
<t>The GCKS could evaluate the list of Transforms and compare it <t>The GCKS could evaluate the list of Transforms and compare it
to its current policy for the group. If the group member did not to its current policy for the group. If the group member did not
include all of the ESP, AH or GIKE_UPDATE Transforms that match th e current group policy include all of the ESP, AH, or GIKE_UPDATE Transforms that match t he current group policy
or the capabilities of all other currently active GMs, or the capabilities of all other currently active GMs,
then the GCKS <bcp14>SHOULD</bcp14> return a NO_PROPOSAL_CHOSEN No tification. then the GCKS <bcp14>SHOULD</bcp14> return a NO_PROPOSAL_CHOSEN no tification.
Alternatively, the GCKS can change the group policy as defined bel ow.</t> Alternatively, the GCKS can change the group policy as defined bel ow.</t>
</li>
<li>
<!-- [rfced] How may we update the sentence below to clarify the second
and third instances of "Transforms"?
<t>The GCKS could store the list of Transforms, with the goal of Original:
* The GCKS could store the list of Transforms, with the goal of
migrating the group policy to a different Transforms when all of
the group members indicate that they can support that Transforms.
Perhaps A:
* The GCKS could store the list of Transforms with the goal of
migrating the group policy to a different Transform when all of
the group members indicate that they can support that Transform.
or
Perhaps B:
* The GCKS could store the list of Transforms with the goal of
migrating the group policy to a different Transforms list when all of
the group members indicate that they can support that Transforms list.
-->
<t>The GCKS could store the list of Transforms with the goal of
migrating the group policy to a different Transforms when all of migrating the group policy to a different Transforms when all of
the group members indicate that they can support that the group members indicate that they can support that
Transforms.</t> Transforms.</t>
</li>
<li>
<t>The GCKS could store the list of Transforms and adjust the <t>The GCKS could store the list of Transforms and adjust the
current group policy based on the capabilities of the devices as current group policy based on the capabilities of the devices as
long as they fall within the acceptable security policy of the long as they fall within the acceptable security policy of the
GCKS.</t> GCKS.</t>
</list> </li>
</ul>
<t>
Depending on its policy, the GCKS may have no further need for the Depending on its policy, the GCKS may have no further need for the
IKE SA (e.g., it does not plan to initiate an GSA_INBAND_REKEY IKE SA (e.g., it does not plan to initiate a GSA_INBAND_REKEY
exchange). If the GM does not initiate another registration exchange exchange). If the GM does not initiate another registration exchange
or Notify (e.g., NO_PROPOSAL_CHOSEN), and the GCKS is not intended to or Notify (e.g., NO_PROPOSAL_CHOSEN) and the GCKS is not intended to u
use the SA, then after a se the SA, then the GCKS <bcp14>SHOULD</bcp14> close the IKE SA to save resource
short period of time the GCKS <bcp14>SHOULD</bcp14> close the IKE SA t s after a short period of time.</t>
o save resources.</t>
</section> </section>
</section> </section>
<section>
<section title="Group Maintenance Channel"> <name>Group Maintenance Channel</name>
<t>The GCKS is responsible for rekeying the secure group per the group <t>The GCKS is responsible for rekeying the secure group per the group
policy. Rekeying is an operation whereby the GCKS provides replacement policy.
TEKs and KEK, deleting TEKs, and/or excluding group members. The GCKS
<!--[rfced] How may we clarify this sentence. Should "KEK" be plural
like "TEKs"? Does the GCKS delete the TEKs and/or exclude the
group members as shown below?
Original:
Rekeying is an operation whereby the GCKS provides
replacement TEKs and KEK, deleting TEKs, and/or
excluding group members.
Perhaps:
Rekeying is an operation whereby the GCKS provides
replacement TEKs and KEKs, deletes TEKs, and/or
excludes group members.
-->
Rekeying is an operation whereby the GCKS provides replacement
TEKs and KEKs, deleting TEKs, and/or excluding group members. The GCKS
may initiate a rekey message if group membership and/or policy has may initiate a rekey message if group membership and/or policy has
changed, or if the keys are about to expire. Two forms of group changed or if the keys are about to expire. Two forms of group
maintenance channels are provided in G-IKEv2 to push new policy to maintenance channels are provided in G-IKEv2 to push new policy to
group members.</t> group members.</t>
<dl newline="true" spacing="normal">
<dl newline="true"> <dt>GSA_REKEY:</dt>
<dt>GSA_REKEY</dt>
<dd>The GSA_REKEY is a pseudo-exchange, consisting <dd>The GSA_REKEY is a pseudo-exchange, consisting
of a one-way IKEv2 message sent by the GCKS, where the rekey policy is delivered of a one-way IKEv2 message sent by the GCKS where the rekey policy is delivered
to group members using IP multicast as a transport. This method is to group members using IP multicast as a transport. This method is
valuable for large and dynamic groups, and where policy may change valuable for large and dynamic groups and where policy may change
frequently and a scalable rekey method is required. When the frequently and a scalable rekey method is required. When the
GSA_REKEY is used, the IKE SA protecting the member GSA_REKEY is used, the IKE SA protecting the member
registration exchanges is usually terminated, and group members await registration exchanges is usually terminated and group members await
policy changes from the GCKS via the GSA_REKEY messages.</dd> policy changes from the GCKS via the GSA_REKEY messages.</dd>
<dt>GSA_INBAND_REKEY:</dt>
<dt>GSA_INBAND_REKEY</dt>
<dd>The GSA_INBAND_REKEY is a <dd>The GSA_INBAND_REKEY is a
normal IKEv2 exchange using the IKE SA that was setup to protecting th e normal IKEv2 exchange using the IKE SA that was set up to protect the
member registration exchange. This exchange allows the GCKS to member registration exchange. This exchange allows the GCKS to
rekey without using an independent GSA_REKEY pseudo-exchange. The rekey without using an independent GSA_REKEY pseudo-exchange. The
GSA_INBAND_REKEY exchange provides a reliable policy delivery and GSA_INBAND_REKEY exchange provides a reliable policy delivery and
is useful when G-IKEv2 is used with a small group of cooperating devic es.</dd> is useful when G-IKEv2 is used with a small group of cooperating devic es.</dd>
</dl> </dl>
<t>Depending on its policy, the GCKS <bcp14>MAY</bcp14> combine these tw
<t>Depending on its policy the GCKS <bcp14>MAY</bcp14> combine these two o methods.
methods. For example, the GCKS may use the GSA_INBAND_REKEY to deliver a key to t
For example, it may use the GSA_INBAND_REKEY to deliver key to the he
GMs in the group acting as senders (as this would provide reliable keys GMs in the group acting as senders (as this would provide reliable keys
delivery), delivery)
and the GSA_REKEY for the rest GMs. and the GSA_REKEY for the rest of the GMs.
</t> </t>
<section anchor="gsa_rekey">
<section anchor="gsa_rekey" title="GSA_REKEY"> <name>GSA_REKEY</name>
<t>The GCKS initiates the G-IKEv2 Rekey by sending a protected message <t>The GCKS initiates the G-IKEv2 rekey by sending a protected
to the GMs, message to the GMs, usually using IP multicast. Since the Rekey
usually using IP multicast. Since the Rekey messages do not require re messages do not require responses and are sent to multiple GMs,
sponses and they are sent the windowing mechanism described in <xref target="RFC7296"
to multiple GMs, the windowing mechanism described in Section 2.3 sectionFormat="of" section="2.3"/> <bcp14>MUST NOT</bcp14>
of IKEv2 <xref target="RFC7296" /> <bcp14>MUST NOT</bcp14> be used for be used for the Rekey messages. The GCKS rekey message replaces the
the Rekey messages. current rekey GSA KEK or KEK array (e.g., in the case of LKH) and/or
The GCKS rekey message replaces the current rekey GSA KEK or KEK array creates new Data-Security GSA TEKs. The GM_SENDER_ID attribute in
(e.g. in case of LKH), the Key Download payload (defined in <xref
and/or creates new Data-Security GSA TEKs. The GM_SENDER_ID target="mkd_attr_gm_sid"/>) <bcp14>MUST NOT</bcp14> be part of the
attribute in the Key Download payload (defined in <xref Rekey Exchange, as this is sender-specific information and the Rekey
target="mkd_attr_gm_sid"></xref>) <bcp14>MUST NOT</bcp14> be part of t
he Rekey
Exchange as this is sender specific information and the Rekey
Exchange is group specific. The GCKS initiates the GSA_REKEY Exchange is group specific. The GCKS initiates the GSA_REKEY
pseudo-exchange as following:</t> pseudo-exchange as following:</t>
<t><figure title="GSA_REKEY Pseudo-Exchange" anchor="gsa_rekey_exchang <figure anchor="gsa_rekey_exchange">
e"> <name>GSA_REKEY Pseudo-Exchange</name>
<preamble></preamble>
<artwork><![CDATA[ <artwork><![CDATA[
GMs (Receivers) GCKS (Sender) GMs (Receivers) GCKS (Sender)
----------------- --------------- ----------------- ---------------
<-- HDR, SK{GSA, KD, [N,] [AUTH]} <-- HDR, SK{GSA, KD, [N,] [AUTH]}
]]></artwork> ]]></artwork>
<postamble></postamble> </figure>
</figure></t>
<t>HDR is defined in <xref target="header"></xref>. While GSA_REKEY re -uses IKEv2 header, <t>HDR is defined in <xref target="header"/>. While GSA_REKEY reuses t he IKEv2 header,
the "IKE SA Initiator's SPI" and the "IKE SA Responder's SPI" fields a re treated as a single field the "IKE SA Initiator's SPI" and the "IKE SA Responder's SPI" fields a re treated as a single field
with a length of 16 octets containing the SPI of Rekey SA. The value f with a length of 16 octets containing the SPI of a Rekey SA. The value
or this field is provided by the GCKS for this field is provided by the GCKS
in the GSA payload (see <xref target="gsa_policy" />). in the GSA payload (see <xref target="gsa_policy"/>).
The Message ID in this message will start with the value the GCKS sent to the The Message ID in this message will start with the value the GCKS sent to the
group members in the attribute GSA_INITIAL_MESSAGE_ID or from group members in the attribute GSA_INITIAL_MESSAGE_ID or from
zero if this attribute wasn't sent. The Message ID will be incremented each time a new zero if this attribute wasn't sent. The Message ID will be incremented each time a new
GSA_REKEY message is sent to the group members.</t> GSA_REKEY message is sent to the group members.</t>
<t>The GSA payload contains the current policy for rekey and Data-Secu rity SAs. <t>The GSA payload contains the current policy for rekey and Data-Secu rity SAs.
The GSA may contain a new Rekey SA and/or a new Data-Security SAs
<xref target="gsa_payload"></xref>.</t>
<!--[rfced] Should "a Data-Security SAs" be singular or plural in this
sentence (e.g., "a new Data-Security SA" or "new Data-Security
SAs")?
Original:
The GSA may contain a new Rekey SA and/or a new Data-
Security SAs Section 4.4.
Perhaps:
The GSA may contain a new Rekey SA and/or a new Data-
Security SA (Section 4.4).
-->
The GSA may contain a new Rekey SA and/or a new Data-Security SAs
(<xref target="gsa_payload"/>).</t>
<t>The KD payload contains the keys for the policy included in the <t>The KD payload contains the keys for the policy included in the
GSA. If one or more Data-Security SAs are being refreshed in this reke y GSA. If one or more Data-Security SAs are being refreshed in this reke y
message, the IPsec keys are updated in the KD, and/or if the rekey message, the IPsec keys are updated in the KD, and/or if the Rekey
SA is being refreshed in this rekey message, the rekey Key or the SA is being refreshed in this rekey message, the rekey Key or the
LKH KEK array (e.g. in case of LKH) is updated in the KD payload.</t> LKH KEK array (e.g., in case of LKH) is updated in the KD payload.</t>
<t>A Delete payload <bcp14>MAY</bcp14> be included to instruct the GM to delete <t>A Delete payload <bcp14>MAY</bcp14> be included to instruct the GM to delete
existing SAs. See <xref target="delete" /> for more detail.</t> existing SAs. See <xref target="delete"/> for more detail.</t>
<t>The AUTH payload <bcp14>MUST</bcp14> be included to authenticate th e GSA_REKEY <t>The AUTH payload <bcp14>MUST</bcp14> be included to authenticate th e GSA_REKEY
message if the authentication method is based on public key signatures message if the authentication method is based on public key signatures
and <bcp14>MUST NOT</bcp14> be included if authentication is implicit. and <bcp14>MUST NOT</bcp14> be included if authentication is implicit.
In the latter case, the fact that a GM can decrypt the GSA_REKEY messa ge and verify its ICV In the latter case, the fact that a GM can decrypt the GSA_REKEY messa ge and verify its Integrity Check Value (ICV)
proves that the sender of this message knows the current KEK, proves that the sender of this message knows the current KEK,
thus authenticating the sender as a member of the group. thus authenticating the sender as a member of the group.
Note, that implicit authentication doesn't provide source origin authe Note that implicit authentication doesn't provide source origin authen
ntication. tication.
For this reason using implicit authentication for GSA_REKEY is <bcp14> For this reason, using implicit authentication for GSA_REKEY is <bcp14
NOT RECOMMENDED</bcp14> >NOT RECOMMENDED</bcp14>
unless source origin authentication is not required (for example, in a small group of unless source origin authentication is not required (for example, in a small group of
highly trusted GMs). See more about authentication methods in <xref ta rget="auth_method" />. highly trusted GMs). See more about authentication methods in <xref ta rget="auth_method"/>.
</t> </t>
<t> During group member registration, the GCKS <t> During group member registration, the GCKS
sends the authentication key in the KD payload, AUTH_KEY attribute, sends the authentication key in the KD payload, the AUTH_KEY attribute ,
which the group member uses to authenticate the key which the group member uses to authenticate the key
server. Before the current authentication key expires, the GCKS will server. Before the current authentication key expires, the GCKS will
send a new AUTH_KEY to the group members in a GSA_REKEY message. send a new AUTH_KEY to the group members in a GSA_REKEY message.
The authentication key that is sent in the rekey message may be not th The authentication key that is sent in the rekey message may not
e same be the same
as the authentication key sent during the GM registration. If implicit authentication as the authentication key sent during the GM registration. If implicit authentication
is used, then AUTH_KEY <bcp14>MUST NOT</bcp14> be sent to GMs.</t> is used, then AUTH_KEY <bcp14>MUST NOT</bcp14> be sent to GMs.</t>
<section anchor="gsa_rekey_auth">
<section anchor="gsa_rekey_auth" title="GSA_REKEY Message Authenticati <name>GSA_REKEY Message Authentication</name>
on"> <t>The content of the AUTH payload generally depends on the authenti
<t>The content of the AUTH payload generally depends on the authenti cation method from the Group Controller Authentication Method (GCAUTH) transform
cation method from the Group Controller Authentication Method transform (<xref target="auth_method"/>).
(<xref target="auth_method" />). This specification defines the use This specification defines the use of only one authentication method, Digital Si
of only one authentication method - Digital Signature, gnature, and the AUTH payload contains a digital signature calculated over the c
and the AUTH payload contains digital signature calculated over the ontent of the not-yet-encrypted GSA_REKEY message.
content of the not yet encrypted GSA_REKEY message.
</t> </t>
<t>The digital signing is applied to the concatenation of two chunks : A and P. <t>The digital signing is applied to the concatenation of two chunks : A and P.
The chunk A starts with the first octet of the G-IKEv2 header (not i Chunk A starts with the first octet of the G-IKEv2 header (not inclu
ncluding prepended four octets of zeros, if port 4500 is used) ding prepended four octets of zeros, if port 4500 is used)
and continues to the last octet of the Encrypted Payload header. The and continues to the last octet of the Encrypted Payload header.
chunk P consists of the not yet encrypted content of the Encrypted payload, exc Chunk P consists of the not-yet-encrypted content of the Encrypted payload, excl
luding uding
the Initialization Vector, the Padding, the Pad Length and the Integ the Initialization Vector, the Padding, the Pad Length, and the Inte
rity Checksum Data fields (see 3.14 of IKEv2 <xref target="RFC7296" /> for descr grity Checksum Data fields (see <xref section="3.14" target="RFC7296"/> for the
iption description
of the Encrypted payload). In other words, the P chunk is the inner of the Encrypted payload). In other words, chunk P is the inner payl
payloads of the Encrypted payload in plaintext form. oads of the Encrypted payload in plaintext form.
<xref target="auth_data" /> illustrates the layout of the P and A ch <xref target="auth_data"/> illustrates the layout of chunks P and A
unks in the GSA_REKEY message. in the GSA_REKEY message.
</t> </t>
<t>Before the calculation of the AUTH payload, the inner payloads
<t>Before the calculation of the AUTH payload the inner payloads of of the Encrypted payload must be fully formed and ready for
Encrypted payload must be encryption except for the content of the AUTH payload. The AUTH
fully formed and ready for encryption, except for the content of the payload must have correct values in the Payload Header, the Auth
AUTH payload. Method, and the RESERVED fields. The Authentication Data field is
The AUTH payload must have correct values in the Payload Header, the zeroed, but the ASN.1 Length and the AlgorithmIdentifier fields
Auth Method and the RESERVED fields. must be properly filled in; see Signature Authentication in
The Authentication Data field is zeroed, but the ASN.1 Length and th <xref target="RFC7427"/>.
e AlgorithmIdentifier fields must be properly filled in,
see Signature Authentication in IKEv2 <xref target="RFC7427" />.
</t> </t>
<t>For the purpose of the AUTH payload calculation, the Length field
<t>For the purpose of the AUTH payload calculation the Length field in the IKE header and the Payload Length
in the IKE header and the Payload Length
field in the Encrypted Payload header are adjusted so that they don' t count the lengths field in the Encrypted Payload header are adjusted so that they don' t count the lengths
of Initialization Vector, Integrity Checksum Data and Padding (along with Pad Length field). of Initialization Vector, Integrity Checksum Data, and Padding (alon g with Pad Length field).
In other words, the Length field in the IKE header (denoted as Adjus tedLen in In other words, the Length field in the IKE header (denoted as Adjus tedLen in
<xref target="auth_data" />) is set to the sum of the lengths of A a nd P, and the Payload Length <xref target="auth_data"/>) is set to the sum of the lengths of A an d P, and the Payload Length
field in the Encrypted Payload header (denoted as AdjustedPldLen in field in the Encrypted Payload header (denoted as AdjustedPldLen in
<xref target="auth_data" />) is set to the length of P plus the size of the Payload header (four octets). <xref target="auth_data"/>) is set to the length of P plus the size of the Payload header (four octets).
</t> </t>
<t>The input to the digital signature algorithm that computes the co ntent of the AUTH payload can be described as: <t>The input to the digital signature algorithm that computes the co ntent of the AUTH payload can be described as:
</t> </t>
<figure align="center"> <figure>
<artwork align="left"><![CDATA[ <artwork align="left"><![CDATA[
DataToAuthenticate = A | P DataToAuthenticate = A | P
GsaRekeyMessage = GenIKEHDR | EncPayload GsaRekeyMessage = GenIKEHDR | EncPayload
GenIKEHDR = [ four octets 0 if using port 4500 ] | AdjustedIKEHDR GenIKEHDR = [ four octets 0 if using port 4500 ] | AdjustedIKEHDR
AdjustedIKEHDR = SPIi | SPIr | . . . | AdjustedLen AdjustedIKEHDR = SPIi | SPIr | . . . | AdjustedLen
EncPayload = AdjustedEncPldHdr | IV | InnerPlds | Pad | PadLen | ICV EncPayload = AdjustedEncPldHdr | IV | InnerPlds | Pad | PadLen | ICV
AdjustedEncPldHdr = NextPld | C | RESERVED | AdjustedPldLen AdjustedEncPldHdr = NextPld | C | RESERVED | AdjustedPldLen
A = AdjustedIKEHDR | AdjustedEncPldHdr A = AdjustedIKEHDR | AdjustedEncPldHdr
P = InnerPlds P = InnerPlds
]]></artwork> ]]></artwork>
</figure> </figure>
<figure align="center" anchor="auth_data" title="Data to Authenticat <figure anchor="auth_data">
e in the GSA_REKEY Messages"> <name>Data to Authenticate in the GSA_REKEY Messages</name>
<artwork align="left"><![CDATA[ <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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ^ ^ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ^ ^
| IKE SA Initiator's SPI | | | | IKE SA Initiator's SPI | | |
| | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I |
| IKE SA Responder's SPI | K | | IKE SA Responder's SPI | K |
| | E | | | E |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| Next Payload | MjVer | MnVer | Exchange Type | Flags | H A | Next Payload | MjVer | MnVer | Exchange Type | Flags | H A
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ d | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ d |
| Message ID | r | | Message ID | r |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| AdjustedLen | | | | AdjustedLen | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ x | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ x |
| Next Payload |C| RESERVED | AdjustedPldLen | | | | Next Payload |C| RESERVED | AdjustedPldLen | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | v +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | v
| | | | | |
~ Initialization Vector ~ E ~ Initialization Vector ~ E
| | n | | n
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ c ^ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ c ^
| | r | | | r |
~ Inner payloads (not yet encrypted) ~ P ~ Inner Payloads (not yet encrypted) ~ P
| | P | | | P |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ l v +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ l v
~ Padding (0-255 octets) | Pad Length | d ~ Padding (0-255 octets) | Pad Length | d
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | | | |
~ Integrity Checksum Data ~ | ~ Integrity Checksum Data ~ |
| | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ v +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ v
]]></artwork> ]]></artwork>
</figure> </figure>
<t>The authentication data is calculated using the authentication al gorithm from the Group Controller Authentication Method transform <t>The authentication data is calculated using the authentication al gorithm from the Group Controller Authentication Method transform
(<xref target="auth_method" />) and the current authentication key p rovided in the AUTH_KEY attribute (<xref target="mkd_attr_auth_key" />). (<xref target="auth_method"/>) and the current authentication key pr ovided in the AUTH_KEY attribute (<xref target="mkd_attr_auth_key"/>).
The calculated authentication data is placed into the AUTH payload, the Length fields in the IKE Header and the Encryption Payload The calculated authentication data is placed into the AUTH payload, the Length fields in the IKE Header and the Encryption Payload
header are restored, the content of the Encrypted payload is encrypt ed and the ICV is computed using the current KEK. header are restored, the content of the Encrypted payload is encrypt ed and the ICV is computed using the current KEK.
</t> </t>
</section> </section>
<section>
<section title="IKE Fragmentation"> <name>IKE Fragmentation</name>
<t>IKEv2 fragmentation <xref target="RFC7383"></xref> can be used to <t>IKEv2 fragmentation <xref target="RFC7383"/> can be used to
perform fragmentation of large GSA_REKEY messages; however, when perform fragmentation of large GSA_REKEY messages; however, when
the GSA_REKEY message is emitted as an IP multicast packet there the GSA_REKEY message is emitted as an IP multicast packet, there
is a lack of response from the GMs. This has the following is a lack of response from the GMs. This has the following
implications. implications.
<list style="symbols"> </t>
<t>Policy regarding the use of IKE fragmentation is implicit. <ul spacing="normal">
<li>
<t>Policy regarding the use of IKE fragmentation is implicit.
If a GCKS detects that all GMs have negotiated support of IKE If a GCKS detects that all GMs have negotiated support of IKE
fragmentation in IKE_SA_INIT, then it <bcp14>MAY</bcp14> use IKE fragmentation in IKE_SA_INIT, then it <bcp14>MAY</bcp14> use IKE
fragmentation on large GSA_REKEY messages.</t> fragmentation on large GSA_REKEY messages.</t>
</li>
<li>
<t>The GCKS must always use IKE fragmentation based on a
preconfigured fragmentation threshold, as there is no way to
check if fragmentation is needed by first sending unfragmented
messages and waiting for response. <xref
target="RFC7383" sectionFormat="of" section="2.5.1"/> contains r
ecommendations on selecting the
fragmentation threshold.</t>
</li>
<li>
<t>The Path MTU (PMTU) mechanism, defined in <xref target="RFC73
83"
sectionFormat="of" section="2.5.2"/>,
cannot be used due to lack of GSA_REKEY response messages.</t>
</li>
</ul>
<t> The calculation of authentication data <bcp14>MUST</bcp14> be ap
plied to whole messages only before possible IKE Fragmentation.
If the message was received in fragmented form, it should be reconst
ructed before verifying its authenticity as if it were received unfragmented.
<!-- [rfced] FYI: We updated "that with" to "with the" as follows.
<t>The GCKS must always use IKE fragmentation based on a pre-confi Original:
gured The RESERVED field in the reconstructed Encrypted Payload header
fragmentation threshold, as there is no way to check if fragmentat MUST be set to the value of the RESERVED field in the Encrypted
ion is needed by first sending Fragment payload header from the first fragment (that with
unfragmented messages and waiting for response. Section 2.5.1 of I Fragment Number equal to 1).
KEv2 Fragmentation <xref target="RFC7383" />
contains recommendation on selecting the fragmentation threshold.<
/t>
<t>PMTU mechanism, defined in Section 2.5.2 of IKEv2 Fragmentation
<xref target="RFC7383" />,
cannot be used due to lack of GSA_REKEY response messages.</t>
</list></t>
<t> The calculation of authentication data <bcp14>MUST</bcp14> be ap Current:
plied to whole messages only, before possible IKE Fragmentation. The RESERVED field in the reconstructed Encrypted Payload header
If the message was received in fragmented form, it should be reconst MUST be set to the value of the RESERVED field in the Encrypted
ructed before verifying its authenticity as if it were received unfragmented. Fragment payload header from the first fragment (with the
The RESERVED field in the reconstructed Encrypted Payload header <bc Fragment Number equal to 1).
p14>MUST</bcp14> be set to the value of the RESERVED -->
field in the Encrypted Fragment payload header from the first fragme The RESERVED field in the reconstructed Encrypted Payload header <bcp14>MUST</bc
nt (that with Fragment Number equal to 1). p14> be set to the value of the RESERVED
field in the Encrypted Fragment payload header from the first fragme
nt (with the Fragment Number equal to 1).
</t> </t>
</section> </section>
<section>
<section title="GSA_REKEY GCKS Operations"> <name>GSA_REKEY GCKS Operations</name>
<t>The GCKS builds the rekey message with a Message ID value that <t>The GCKS builds the rekey message with a Message ID value that
is one greater than the value included in the previous rekey message . is one greater than the value included in the previous rekey message .
The first message sent over a new Rekey SA <bcp14>MUST</bcp14> use M The first message sent over a new Rekey SA <bcp14>MUST</bcp14> use a
essage ID of 0. Message ID of 0.
The GSA, KD and N payloads follow with the The GSA, KD, and N payloads follow with the
same characteristics as in the GSA Registration exchange. same characteristics as in the GSA Registration exchange.
The AUTH payload (if present) is created as defined in <xref target= "gsa_rekey_auth" />. The AUTH payload (if present) is created as defined in <xref target= "gsa_rekey_auth"/>.
</t> </t>
<t>Because GSA_REKEY messages are not acknowledged and could be <t>Because GSA_REKEY messages are not acknowledged and could be
discarded by the network, one or more GMs may not receive discarded by the network, one or more GMs may not receive
the new policy. To mitigate such lost messages, during a rekey event the the new policy. To mitigate such lost messages, during a rekey event , the
GCKS may transmit several copies of an encrypted GSA_REKEY message w ith the new GCKS may transmit several copies of an encrypted GSA_REKEY message w ith the new
policy. The (encrypted) retransmitted messages <bcp14>MUST</bcp14> b e bitwise identical and should be policy. The (encrypted) retransmitted messages <bcp14>MUST</bcp14> b e bitwise identical and should be
sent within a short time interval (a few seconds) to ensure sent within a short time interval (a few seconds) to ensure
that the SA lifetime calculations would not be substantially skewed for the GMs that that the SA lifetime calculations would not be substantially skewed for the GMs that
would receive different copies of the messages. </t> would receive different copies of the messages. </t>
<t> GCKS may also include one or several GSA_NEXT_SPI <t> GCKS may also include one or several GSA_NEXT_SPI
attributes specifying SPIs for the prospected rekeys, so that attributes specifying SPIs for the prospected rekeys so that
listening GMs are able to detect lost rekey messages and recover listening GMs are able to detect lost rekey messages and recover
from this situation. See Sections <xref target="gsa_attr_next_spi" / > for more detail. from this situation. See <xref target="gsa_attr_next_spi"/> for more detail.
</t> </t>
</section> </section>
<section>
<section title="GSA_REKEY GM Operations"> <name>GSA_REKEY GM Operations</name>
<t> When a group member receives the Rekey message from the GCKS it <t> When a group member receives the rekey message from the GCKS, i
t
decrypts the message and verifies its integrity using the current KE K. If the AUTH payload is present decrypts the message and verifies its integrity using the current KE K. If the AUTH payload is present
in the decrypted message, then the GM validates authenticity of the message using the key retrieved in the decrypted message, then the GM validates authenticity of the message using the key retrieved
in a previous G-IKEv2 exchange. Then the GM verifies the Message ID, and processes in a previous G-IKEv2 exchange. Then the GM verifies the Message ID and processes
the GSA and KD payloads. The group member then installs the new Data -Security SA(s) the GSA and KD payloads. The group member then installs the new Data -Security SA(s)
and/or new Rekey SA. The parsing of the payloads is identical to and/or a new Rekey SA. The parsing of the payloads is identical to
the parsing done in the registration exchange.</t> the parsing done in the registration exchange.</t>
<t>Replay protection is achieved by a group member rejecting a <t>Replay protection is achieved by a group member rejecting a
GSA_REKEY message which has a Message ID smaller than the current GSA_REKEY message that has a Message ID smaller than the current
Message ID that the GM is expecting. The GM expects the Message ID Message ID that the GM is expecting. The GM expects the Message ID
in the first GSA_REKEY message it receives to be equal or greater in the first GSA_REKEY message it receives to be equal to or greater
than the Message ID it receives in the GSA_INITIAL_MESSAGE_ID attrib ute. than the Message ID it receives in the GSA_INITIAL_MESSAGE_ID attrib ute.
Note, that if the GSA_INITIAL_MESSAGE_ID attribute is not received f or the Rekey SA, Note that if the GSA_INITIAL_MESSAGE_ID attribute is not received fo r the Rekey SA,
the GM <bcp14>MUST</bcp14> assume zero as the first expected Message ID. the GM <bcp14>MUST</bcp14> assume zero as the first expected Message ID.
The GM expects the Message ID in subsequent GSA_REKEY messages to The GM expects the Message ID in subsequent GSA_REKEY messages to
be greater than the last valid GSA_REKEY message ID it be greater than the last valid GSA_REKEY message ID it
received.</t> received.</t>
<t> This specification assumes that the GSA_REKEY messages are sent <t> This specification assumes that the GSA_REKEY messages are sent
with intervals, that are significantly greater than typical network packet reordering intervals. with intervals that are significantly greater than typical network p acket reordering intervals.
</t> </t>
<t>If the GSA payload includes a Data-Security SA using cipher in
<t>If the GSA payload includes a Data-Security SA using cipher in a a counter-mode of operation and the receiving group member is a
counter-mode of operation and the receiving group member is a
sender for that SA, the group member uses its current Sender-ID valu e sender for that SA, the group member uses its current Sender-ID valu e
with the Data-Security SAs to create counter-mode nonces. If it is with the Data-Security SAs to create counter-mode nonces. If it is
a sender and does not hold a current Sender-ID value (for example, a sender and does not hold a current Sender-ID value (for example,
when no counter-mode is employed for other Data-Security SAs), when no counter-mode is employed for other Data-Security SAs),
it <bcp14>MUST NOT</bcp14> install the Data-Security SAs. It <bcp14> MUST</bcp14> initiate a re-registration it <bcp14>MUST NOT</bcp14> install the Data-Security SAs. It <bcp14> MUST</bcp14> initiate a re-registration
to the GCKS in order to obtain an Sender-ID value (along with to the GCKS in order to obtain a Sender-ID value (along with
the current group policy). the current group policy).
</t> </t>
<!-- [rfced] We added parentheses to this sentence for ease of
reading. Please let us know of any objections.
<t>Once a new Rekey SA is installed as a result of GSA_REKEY Original:
If the message includes Delete payload for existing Data-Security SA,
then after installing a new Data-Security SA the old one, identified
by the Protocol and SPI fields in the Delete payload, MUST be silently
deleted after waiting DEACTIVATION_TIME_DELAY interval regardless of
its expiration time.
Current:
If the message includes a Delete payload for an existing Data-Security SA,
then after installing a new Data-Security SA, the old one (identified by the
Protocol and SPI fields in the Delete payload) MUST be silently deleted after
waiting the DEACTIVATION_TIME_DELAY interval regardless of its expiration tim
e.
-->
<t>Once a new Rekey SA is installed as a result of a GSA_REKEY
message, the current Rekey SA (over which the message was received) message, the current Rekey SA (over which the message was received)
<bcp14>MUST</bcp14> be silently deleted after waiting DEACTIVATION_T <bcp14>MUST</bcp14> be silently deleted after waiting the DEACTIVATI
IME_DELAY interval ON_TIME_DELAY interval
regardless of its expiration time. If the message includes Delete pa regardless of its expiration time. If the message includes a Delete
yload payload
for existing Data-Security SA, then after installing a new Data-Secu for an existing Data-Security SA, then after installing a new Data-S
rity SA the old one, ecurity SA, the old one
identified by the Protocol and SPI fields in the Delete payload, <bc (identified by the Protocol and SPI fields in the Delete payload) <b
p14>MUST</bcp14> be silently deleted cp14>MUST</bcp14> be silently deleted
after waiting DEACTIVATION_TIME_DELAY interval regardless of its exp after waiting the DEACTIVATION_TIME_DELAY interval regardless of its
iration time. expiration time.
</t> </t>
<t>If a Data-Security SA is not rekeyed yet and is <t>If a Data-Security SA is not rekeyed yet and is
about to expire (a "soft lifetime" expiration is described about to expire (a "soft lifetime" expiration is described
in Section 4.4.2.1 of <xref target="RFC4301"></xref>), the GM <bcp14 >SHOULD</bcp14> in <xref target="RFC4301" sectionFormat="of" section="4.4.2.1"/>), t he GM <bcp14>SHOULD</bcp14>
initiate a registration to the GCKS. This registration serves as a initiate a registration to the GCKS. This registration serves as a
request for current SAs, and will result in the download of request for current SAs and will result in the download of
replacement SAs, assuming the GCKS policy has created them. replacement SAs, assuming the GCKS policy has created them.
A GM <bcp14>SHOULD</bcp14> also initiate a registration request if a Rekey SA A GM <bcp14>SHOULD</bcp14> also initiate a registration request if a Rekey SA
is about to expire and not yet replaced with a new one.</t> is about to expire and not yet replaced with a new one.</t>
</section> </section>
</section> </section>
<section anchor="gsa_inband_rekey">
<section anchor="gsa_inband_rekey" title="GSA_INBAND_REKEY Exchange"> <name>GSA_INBAND_REKEY Exchange</name>
<t>When the IKE SA protecting the member registration exchange is <t>When the IKE SA protecting the member registration exchange is
maintained while group member participates in the group, the GCKS maintained while a group member participates in the group, the GCKS
can use the GSA_INBAND_REKEY exchange to individually provide policy can use the GSA_INBAND_REKEY exchange to individually provide policy
updates to the group member.</t> updates to the group member.</t>
<figure title="GSA_INBAND_REKEY Exchange" anchor="gsa_inband_rekey_exc <figure anchor="gsa_inband_rekey_exchange">
hange"> <name>GSA_INBAND_REKEY Exchange</name>
<artwork><![CDATA[ <artwork><![CDATA[
GM (Responder) GCKS (Initiator) GM (Responder) GCKS (Initiator)
---------------- ------------------ ---------------- ------------------
<-- HDR, SK{GSA, KD, [N]} <-- HDR, SK{GSA, KD, [N]}
HDR, SK{} --> HDR, SK{} -->
]]></artwork> ]]></artwork>
</figure> </figure>
<t>Because this is a normal IKEv2 exchange, the HDR is treated as defi ned <t>Because this is a normal IKEv2 exchange, the HDR is treated as defi ned
in IKEv2 <xref target="RFC7296"></xref>.</t> in IKEv2 <xref target="RFC7296"/>.</t>
<section>
<section title="GSA_INBAND_REKEY GCKS Operations"> <name>GSA_INBAND_REKEY GCKS Operations</name>
<t>The GSA, KD and N payloads are built in the same manner as in <t>The GSA, KD, and N payloads are built in the same manner as in
a registration exchange.</t> a registration exchange.</t>
</section> </section>
<section>
<section title="GSA_INBAND_REKEY GM Operations"> <name>GSA_INBAND_REKEY GM Operations</name>
<t>The GM processes the GSA, KD and N payloads in the same manner <t>The GM processes the GSA, KD, and N payloads in the same manner
as if they were received in a registration exchange.</t> as if they were received in a registration exchange.</t>
</section> </section>
</section> </section>
<section anchor="deletion">
<section title="Deletion of SAs" anchor="deletion" > <name>Deletion of SAs</name>
<t>There are occasions when the GCKS may want to signal to group <t>There are occasions when the GCKS may want to signal to group
members to delete policy when the application sending data traffic has ended, or if group members to delete policy when the application sending data traffic has ended or if group
policy has changed. Deletion of SAs is accomplished by sending policy has changed. Deletion of SAs is accomplished by sending
the Delete Payload described in Section 3.11 of IKEv2 <xref target="RF C7296"></xref> the Delete Payload described in <xref target="RFC7296" sectionFormat=" of" section="3.11"/>
as part of the GSA_REKEY pseudo-exchange as shown below.</t> as part of the GSA_REKEY pseudo-exchange as shown below.</t>
<t><figure title="SA Deletion in GSA_REKEY" anchor="gsa_rekey_sa_delet <figure anchor="gsa_rekey_sa_deletion">
ion"> <name>SA Deletion in GSA_REKEY</name>
<preamble></preamble>
<artwork><![CDATA[ <artwork><![CDATA[
GMs (Receivers) GCKS (Sender) GMs (Receivers) GCKS (Sender)
---------------- --------------- ---------------- ---------------
<-- HDR, SK{D, [N,] [AUTH]} <-- HDR, SK{D, [N,] [AUTH]}
]]></artwork> ]]></artwork>
<postamble></postamble> </figure>
</figure></t>
<t>If GCKS has a unicast SA with group member then it can use the GSA_ INBAND_REKEY <t>If GCKS has a unicast SA with a group member, then it can use the G SA_INBAND_REKEY
exchange to delete SAs. exchange to delete SAs.
</t> </t>
<t><figure title="SA Deletion in GSA_INBAND_REKEY" anchor="gsa_inband_ <figure anchor="gsa_inband_rekey_sa_deletion">
rekey_sa_deletion"> <name>SA Deletion in GSA_INBAND_REKEY</name>
<preamble></preamble>
<artwork><![CDATA[ <artwork><![CDATA[
GM (Responder) GCKS (Initiator) GM (Responder) GCKS (Initiator)
--------------- ------------------ --------------- ------------------
<-- HDR, SK{D, [N]} <-- HDR, SK{D, [N]}
HDR, SK{} --> HDR, SK{} -->
]]></artwork> ]]></artwork>
<postamble></postamble> </figure>
</figure></t>
<t>There may be circumstances where the GCKS may want to start over <t>There may be circumstances where the GCKS may want to start over
with a clean state, for example in case it runs out of available Sende r-IDs. with a clean state, e.g., in case it runs out of available Sender-IDs.
The GCKS can signal deletion of all the Data-Security SAs by The GCKS can signal deletion of all the Data-Security SAs by
sending a Delete payload with an SPI value equal to zero. sending a Delete payload with an SPI value equal to zero.
For example, if the GCKS wishes to remove the Rekey SA and all the For example, if the GCKS wishes to remove the Rekey SA and all the
Data-Security SAs, the GCKS sends a Delete payload with an SPI Data-Security SAs, the GCKS sends a Delete payload with an SPI
of zero and Protocol ID of AH or ESP, followed by another Delete paylo of zero and a Protocol ID of AH or ESP, followed by another Delete pay
ad load
with a SPI of zero and Protocol ID of GIKE_UPDATE. with an SPI of zero and a Protocol ID of GIKE_UPDATE.
</t> </t>
<t> If a group member receives a Delete payload with zero SPI and a Pr
<t> If a group member receives a Delete payload with zero SPI and prot otocol ID
ocol ID
of GIKE_UPDATE, it means that the group member is excluded from the gr oup. of GIKE_UPDATE, it means that the group member is excluded from the gr oup.
Such Delete payload may be received either in the GSA_REKEY pseudo-exc hange or in the GSA_INBAND_REKEY exchange. Such Delete payload may be received either in the GSA_REKEY pseudo-exc hange or in the GSA_INBAND_REKEY exchange.
In this situation the group member <bcp14>MUST</bcp14> re-register if it wants to continue In this situation, the group member <bcp14>MUST</bcp14> re-register if it wants to continue
participating in this group. The registration is performed as describe d participating in this group. The registration is performed as describe d
in <xref target="registration" />. It is <bcp14>RECOMMENDED</bcp14> th at a GM waits some randomly chosen time in <xref target="registration"/>. It is <bcp14>RECOMMENDED</bcp14> tha t a GM waits some randomly chosen time
before initiating a registration request in this situation to avoid ov erloading the GCKS. before initiating a registration request in this situation to avoid ov erloading the GCKS.
This document doesn't specify the maximum delay, which is implementati on-dependent, This document doesn't specify the maximum delay, which is implementati on-dependent,
but it is believed, that the order of seconds suits most situations. but it is believed that the order of seconds suits most situations.
Note, that if the unicast SA between the group member and the GCKS exi Note that if the unicast SA between the group member and the GCKS exis
sts, then the group member may use the GSA_REGISTRATION exchange ts, then the group member may use the GSA_REGISTRATION exchange
to re-register. However, after excluding an GM from the group the GCKS to re-register. However, after excluding a GM from the group, the GCKS
<bcp14>MAY</bcp14> <bcp14>MAY</bcp14>
immediately delete the unicast SA with this GM (if any) if the credent ials of this GM are revoked. immediately delete the unicast SA with this GM (if any) if the credent ials of this GM are revoked.
</t> </t>
</section> </section>
</section> </section>
<section anchor="counter-modes">
<name>Counter-Based Modes of Operation</name>
<!-- [rfced] We have updated this sentence to use "AES CCM" (per
RFC 4309) rather than "AES-CCM". Please let us know any
objections.
<section anchor="counter-modes" title="Counter-based modes of operation"> Original:
Several counter-based modes of operation have been specified for ESP
(e.g., AES-CTR [RFC3686], AES-GCM [RFC4106], AES-CCM [RFC4309],
ChaCha20-Poly1305 [RFC7634], AES-GMAC [RFC4543]) and AH (e.g., AES-
GMAC [RFC4543]).
Current:
Several counter-based modes of operation have been specified for ESP
(e.g., AES-CTR [RFC3686], AES-GCM [RFC4106], AES CCM [RFC4309],
ChaCha20-Poly1305 [RFC7634], and AES-GMAC [RFC4543]) and AH (e.g., AES-
GMAC [RFC4543]).
-->
<t>Several counter-based modes of operation have been specified <t>Several counter-based modes of operation have been specified
for ESP (e.g., AES-CTR <xref target="RFC3686"></xref>, AES-GCM <xref for ESP (e.g., AES-CTR <xref target="RFC3686"/>, AES-GCM <xref target="R
target="RFC4106"></xref>, AES-CCM <xref target="RFC4309"></xref>, FC4106"/>, AES CCM <xref target="RFC4309"/>,
ChaCha20-Poly1305 <xref target="RFC7634"></xref>, ChaCha20-Poly1305 <xref target="RFC7634"/>, and
AES-GMAC <xref target="RFC4543"></xref>) and AH (e.g., AES-GMAC <xref AES-GMAC <xref target="RFC4543"/>) and AH (e.g., AES-GMAC <xref target="
target="RFC4543"></xref>). These counter-based modes require that no RFC4543"/>). These counter-based modes require that no
two senders in the group ever send a packet with the same two senders in the group ever send a packet with the same
Initialization Vector (IV) using the same cipher key and mode. This IV using the same cipher key and mode. This
requirement is met in G-IKEv2 when the following measures are requirement is met in G-IKEv2 when the following measures are
taken: taken:
<list style="symbols"> </t>
<ul spacing="normal">
<t>The GCKS distributes a unique key for each Data-Security SA.</t> <li>
<t>The GCKS distributes a unique key for each Data-Security SA.</t>
<t>The GCKS uses the method described in Using Counter Modes with ESP an </li>
d AH <li>
to Protect Group Traffic <xref target="RFC6054"></xref>, <t>The GCKS uses the method described in <xref target="RFC6054"/>,
which assigns each sender a portion of the IV space by provisioning each which assigns each sender a portion of the IV space by provisioning each
sender with one or more unique Sender-ID values.</t> sender with one or more unique Sender-ID values.</t>
</li>
</list></t> </ul>
<section anchor="sid_alloc">
<section anchor="sid_alloc" title="Allocation of Sender-ID"> <name>Allocation of Sender-ID</name>
<t>When at least one Data-Security SA included in the group policy <t>When at least one Data-Security SA included in the group policy
includes a counter-based mode of operation, the GCKS automatically includes a counter-based mode of operation, the GCKS automatically
allocates and distributes one Sender-ID to each group member acting in the allocates and distributes one Sender-ID to each group member acting in the
role of sender on the Data-Security SA. The Sender-ID value is used role of sender on the Data-Security SA. The Sender-ID value is used
exclusively by the group sender to which it was allocated. The group exclusively by the group sender to which it was allocated. The group
sender uses the same Sender-ID for each Data-Security SA specifying th e sender uses the same Sender-ID for each Data-Security SA specifying th e
use of a counter-based mode of operation. A GCKS <bcp14>MUST</bcp14> d istribute use of a counter-based mode of operation. A GCKS <bcp14>MUST</bcp14> d istribute
unique keys for each Data-Security SA including a counter-based mode unique keys for each Data-Security SA, including a counter-based mode
of operation in order to maintain unique key and nonce usage.</t> of operation in order to maintain unique key and nonce usage.</t>
<t>During registration, the group sender can choose to request one <t>During registration, the group sender can choose to request one
or more Sender-ID values. Requesting a value of 1 is not necessary sin ce or more Sender-ID values. Requesting a value of 1 is not necessary sin ce
the GCKS will automatically allocate exactly one to the group the GCKS will automatically allocate exactly one to the group
sender. A group sender <bcp14>MUST</bcp14> request as many Sender-ID v alues matching the number sender. A group sender <bcp14>MUST</bcp14> request as many Sender-ID v alues matching the number
of encryption modules in which it will be installing the TEKs in the of encryption modules in which it will be installing the TEKs in the
outbound direction. Alternatively, a group sender <bcp14>MAY</bcp14> r equest more outbound direction. Alternatively, a group sender <bcp14>MAY</bcp14> r equest more
than one Sender-ID and use them serially. This could be useful when it is than one Sender-ID and use them serially. This could be useful when it is
anticipated that the group sender will exhaust their range of Data- anticipated that the group sender will exhaust their range of Data-Sec
Security SA nonces using a single Sender-ID too quickly (e.g., before urity SA nonces using a single Sender-ID too quickly (e.g., before the
the
time-based policy in the TEK expires).</t> time-based policy in the TEK expires).</t>
<t>When the group policy includes a counter-based mode of operation, <t>When the group policy includes a counter-based mode of operation,
a GCKS should use the following method to allocate Sender-ID values, w hich a GCKS should use the following method to allocate Sender-ID values, w hich
ensures that each Sender-ID will be allocated to just one group ensures that each Sender-ID will be allocated to just one group
sender.<list style="numbers"> sender.</t>
<ol spacing="normal" type="1"><li>
<t>A GCKS maintains an Sender-ID counter, which records the Sender-IDs <t>A GCKS maintains a Sender-ID counter, which records the Sender-
that IDs that
have been allocated. Sender-IDs are allocated sequentially, with zero have been allocated. Sender-IDs are allocated sequentially with zero a
as s
the first allocated value.</t> the first allocated value.</t>
</li>
<t>Each time an Sender-ID is allocated, the current value of the <li>
<t>Each time a Sender-ID is allocated, the current value of the
counter is saved and allocated to the group sender. The Sender-ID coun ter counter is saved and allocated to the group sender. The Sender-ID coun ter
is then incremented in preparation for the next allocation.</t> is then incremented in preparation for the next allocation.</t>
</li>
<t>When the GCKS specifies a counter-based mode of operation in <li>
the Data-Security SA a group sender may request a count of Sender-IDs <t>When the GCKS specifies a counter-based mode of operation in
the Data-Security SA, a group sender may request a count of Sender-IDs
during registration in a Notify payload information of type SENDER. during registration in a Notify payload information of type SENDER.
When the GCKS receives this request, it increments the Sender-ID count er When the GCKS receives this request, it increments the Sender-ID count er
once for each requested Sender-ID, and distributes each Sender-ID valu e to the once for each requested Sender-ID and distributes each Sender-ID value to the
group sender. The GCKS should have a policy-defined upper bound for group sender. The GCKS should have a policy-defined upper bound for
the number of Sender-ID values that it will return irrespective of the number the number of Sender-ID values that it will return irrespective of the number
requested by the GM.</t> requested by the GM.</t>
</li>
<t>A GCKS allocates new Sender-ID values for each registration operati <li>
on <t>A GCKS allocates new Sender-ID values for each registration ope
ration
by a group sender, regardless of whether the group by a group sender, regardless of whether the group
sender had previously contacted the GCKS. In this way, the GCKS is sender had previously contacted the GCKS. In this way, the GCKS is
not required to maintaining a record of which Sender-ID values it had not required to maintain a record of which Sender-ID values it had
previously allocated to each group sender. More importantly, since previously allocated to each group sender. More importantly, since
the GCKS cannot reliably detect whether the group sender had sent the GCKS cannot reliably detect whether the group sender had sent
data on the current group Data-Security SAs it does not know what data on the current group Data-Security SAs, it does not know what
Data-Security counter-mode nonce values that a group sender has Data-Security counter-mode nonce values that a group sender has
used. By distributing new Sender-ID values, the key server ensures tha t used. By distributing new Sender-ID values, the key server ensures tha t
each time a conforming group sender installs a Data-Security SA it each time a conforming group sender installs a Data-Security SA, it
will use a unique set of counter-based mode nonces.</t> will use a unique set of counter-based mode nonces.</t>
</li>
<t>When the Sender-ID counter maintained by the GCKS reaches its final <li>
<t>When the Sender-ID counter maintained by the GCKS reaches its f
inal
Sender-ID value, no more Sender-ID values can be distributed. Before Sender-ID value, no more Sender-ID values can be distributed. Before
distributing any new Sender-ID values, the GCKS <bcp14>MUST</bcp14> distributing any new Sender-ID values, the GCKS <bcp14>MUST</bcp14>
exclude all group members from the group as described exclude all group members from the group as described
in <xref target="deletion" />. This will result in the group members in <xref target="deletion"/>. This will result in the group members
performing re-registration, during which they will receive new Data-Se curity SAs performing re-registration, during which they will receive new Data-Se curity SAs
and group senders will additionally receive new Sender-ID values. and group senders will additionally receive new Sender-ID values.
The new Sender-ID values can safely be used because they are only used with The new Sender-ID values can safely be used because they are only used with
the new Data-Security SAs.</t> the new Data-Security SAs.</t>
</li>
</list></t> </ol>
</section> </section>
<section anchor="sid-usage">
<section anchor="sid-usage" title="GM Usage of Sender-ID"> <name>GM Usage of Sender-ID</name>
<t>A GM applies the Sender-ID to Data-Security SAs as follows. <t>A GM applies the Sender-ID to Data-Security SAs as follows:
<list style="symbols"> </t>
<ul spacing="normal">
<t>The most significant bits of the IV indicated in the GWP_SENDER_ID_ <li>
BITS attribute (<xref target="gwp_attr_sid_bits" />) are <t>The most significant bits of the IV indicated in the GWP_SENDER
_ID_BITS attribute (<xref target="gwp_attr_sid_bits"/>) are
taken to be the Sender-ID field of the IV.</t> taken to be the Sender-ID field of the IV.</t>
</li>
<t>The Sender-ID is placed in the least significant bits of the Sender <li>
-ID <t>The Sender-ID is placed in the least significant bits of the Se
nder-ID
field, where any unused most significant bits are set to zero. field, where any unused most significant bits are set to zero.
If the Sender-ID value doesn't fit into the number of bits from the GW P_SENDER_ID_BITS attributes, If the Sender-ID value doesn't fit into the number of bits from the GW P_SENDER_ID_BITS attributes,
then the GM <bcp14>MUST</bcp14> treat this as a fatal error and re-reg ister to the group. then the GM <bcp14>MUST</bcp14> treat this as a fatal error and re-reg ister to the group.
</t> </t>
</li>
</list></t> </ul>
</section> </section>
</section> </section>
<section anchor="seqnum">
<section anchor="seqnum" title="Replay Protection for Multicast Data-Secur <name>Replay Protection for Multicast Data-Security SAs</name>
ity SAs"> <t>IPsec provides anti-replay service as part of its security
<t>IPsec provides anti-replay service as part of its security services. services. With multicast extensions for IPsec, replay protection is not
With multicast extension for IPsec replay protection is not always possi always possible to achieve (see <xref target="RFC3740"
ble to achieve sectionFormat="of" section="6.1"/>). In particular, if there
(see Section 6.1 of Multicast Group Security Architecture <xref target=" are many group senders for a Data-Security SA, then each of them will
RFC3740" />). independently increment the Sequence Number field in the ESP header
In particular, if there are many group senders for a Data-Security SA, t (see <xref target="RFC4303" sectionFormat="of"
hen section="2.2"/> and <xref target="RFC4302"
each of them will independently increment the Sequence Number field in t sectionFormat="of" section="2.5"/>), thus making it impossible
he ESP header for the group receivers to filter out replayed packets. However, if
(see Section 2.2 of ESP <xref target="RFC4303" /> and Section 2.5 of AH there is only one group sender for a Data-Security SA, then it is
<xref target="RFC4302" />) thus making it impossible for the possible to achieve replay protection with some restrictions (see
group receivers to filter out replayed packets. However, if there is onl <xref target="antireplay"/>). The GCKS <bcp14>MAY</bcp14> create
y one several Data-Security SAs with the same traffic selectors allowing
group sender for a Data-Security SA, then it is possible to achieve repl only a single group sender in each SA if it is desirable to get replay
ay protection protection with multiple (but still a limited number) of group senders.
with some restrictions (see <xref target="antireplay" />). The GCKS <bcp
14>MAY</bcp14> create several Data-Security SAs
with the same traffic selectors allowing only a single group sender in e
ach SA
if it is desirable to get replay protection with multiple (but still lim
ited number) of group senders.
</t> </t>
<t>IPsec architecture assumes that whether
<t>IPsec architecture assumes that it is a local matter for an IPsec rec anti-replay service is enabled or not is a local matter for an IPsec rec
eiver whether eiver. In other words, an IPsec sender always increments
anti-replay service is enabled or not. In other words, an IPsec sender a
lways increments
the Sequence Number field in the ESP/AH header and a receiver decides wh ether to check the Sequence Number field in the ESP/AH header and a receiver decides wh ether to check
for replayed packets or not. Since in some cases it is known that the re play protection for replayed packets or not. Since it is known in some cases that the re play protection
is not possible (like in an SA with many group senders), a new transform ID is not possible (like in an SA with many group senders), a new transform ID
"32-bit Unspecified Numbers" is defined for the Sequence Numbers (SN) tr "32-bit Unspecified Numbers" is defined for the Sequence Numbers (SNs) t
ansform type. ransform type.
Using this transform ID the the GCKS can inform group members that the u Using this transform ID, the GCKS can inform group members that the uniq
niqueness of sequence ueness of sequence
numbers for a given SA is not guaranteed. The decision whether to enable numbers for a given SA is not guaranteed. The decision of whether to ena
anti-replay service ble anti-replay service
is still a local matter of a GM (in accordance with IPsec architecture). is still a local matter of a GM (in accordance with IPsec architecture).
</t> </t>
<t>The GCKS <bcp14>MUST</bcp14> include the Sequence Numbers transform i
<t> The GCKS <bcp14>MUST</bcp14> include the Sequence Numbers transform n the GSA payload for every Data-Security SA.
in the GSA payload for every Data-Security SA. See <xref target="antireplay"/> for more details.
See <xref target="antireplay" /> for more details.
</t> </t>
<t>When a Data-Security SA has a single sender, the GCKS <bcp14>MUST</bc
<t> When a Data-Security SA has a single sender, the GCKS <bcp14>MUST</b p14>
cp14>
be configured to rekey the SA frequently enough so that the 32-bit seque nce numbers do not wrap. be configured to rekey the SA frequently enough so that the 32-bit seque nce numbers do not wrap.
</t> </t>
</section> </section>
<section anchor="implicit-iv">
<section anchor="implicit-iv" title="Encryption Transforms with Implicit I <name>Encryption Transforms with Implicit IV</name>
V"> <t>The "Transform Type 1 - Encryption Algorithm Transform IDs" IANA regi
<t>IKEv2 IANA registry for Encryption Algorithm Transform IDs <xref targ stry <xref target="IKEV2-IANA"/> defines several transforms
et="IKEV2-IANA" /> defines several transforms with implicit IV. These transforms rely on ESP Sequence Numbers for cons
with implicit IV. These transforms rely on ESP Sequence Number for const tructing IV
ructing IV (see <xref target="RFC8750"/> for details).
(see Implicit IV for Counter-Based Ciphers in ESP <xref target="RFC8750"
/> for details).
It requires anti-replay service to be enabled for an ESP SA using these encryption transforms. It requires anti-replay service to be enabled for an ESP SA using these encryption transforms.
Unless the properties of sequence numbers for a multicast ESP SA include Unless the properties of sequence numbers for a multicast ESP SA include
their uniqueness (see <xref target="seqnum" />), their uniqueness (see <xref target="seqnum"/>),
encryption transforms that rely on Sequence Number for IV construction < encryption transforms that rely on Sequence Numbers for IV construction
bcp14>MUST NOT</bcp14> be used. <bcp14>MUST NOT</bcp14> be used.
In any case, such transforms <bcp14>MUST NOT</bcp14> be used for any G-I KEv2 SA (both unicast and multicast). In any case, such transforms <bcp14>MUST NOT</bcp14> be used for any G-I KEv2 SA (both unicast and multicast).
</t> </t>
</section> </section>
</section> </section>
<section anchor="key_management">
<section anchor="key_management" title="Group Key Management and Access Cont <name>Group Key Management and Access Control</name>
rol">
<t>Through the G-IKEv2 rekey, G-IKEv2 supports algorithms such as <t>Through the G-IKEv2 rekey, G-IKEv2 supports algorithms such as
Logical Key Hierarchy (LKH) that have the property of denying access to a Logical Key Hierarchy (LKH) that have the property of denying access to
new group key by a new group key by a member removed from the group (forward access
a member removed from the group (forward access control) and to an control) and to an old group key by a member added to the group
old group key by a member added to the group (backward access (backward access control). This is unrelated to the Perfect Forward
control). This is unrelated to PFS (Perfect Forward Secrecy) property as d Secrecy (PFS) property as defined in <xref target="RFC7296"
efined in Section 2.12 of IKEv2 <xref target="RFC7296" />. sectionFormat="of" section="2.12"/>.
</t> </t>
<!--[rfced] Please clarify what "literature" refers to here.
Original:
Group management algorithms providing forward and backward access
control other than LKH have been proposed in the literature,
including OFT [OFT] and Subset Difference [NNL].
Perhaps:
Group management algorithms providing forward and backward access
control other than LKH have been proposed in other specifications,
for example, OFT [OFT] and Subset Difference [NNL].
-->
<t>Group management algorithms providing forward and backward <t>Group management algorithms providing forward and backward
access control other than LKH have been proposed in the access control other than LKH have been proposed in the
literature, including OFT <xref target="OFT"></xref> and Subset literature, including OFT <xref target="OFT"/> and Subset
Difference <xref target="NNL"></xref>. These algorithms could be Difference <xref target="NNL"/>. These algorithms could be
used with G-IKEv2, but are not specified as a part of this used with G-IKEv2 but are not specified as a part of this
document.</t> document.</t>
<t>This specification assumes that all group keys, that are <t>This specification assumes that all group keys, that are
sent to the GMs by the GCKS, are encrypted with some other keys, sent to the GMs by the GCKS, are encrypted with some other keys,
called Key Wrap Keys (KWK). The Key Wrap Algorithm transform called Key Wrap Keys (KWKs). The Key Wrap Algorithm transform
defines the algorithm used for key wrapping in the context of an SA. defines the algorithm used for key wrapping in the context of an SA.
</t> </t>
<section anchor="kwk">
<section anchor="kwk" title="Key Wrap Keys"> <name>Key Wrap Keys</name>
<t>Every GM always knows at least one KWK -- the KWK that is associated with the IKE SA <t>Every GM always knows at least one KWK -- the KWK that is associated with the IKE SA
or multicast Rekey SA over which wrapped keys are sent. or multicast Rekey SA over which wrapped keys are sent.
In this document it is called default KWK and is denoted as GSK_w. In this document, it is called default KWK and is denoted as "GSK_w".
</t> </t>
<t>For the purpose of forward access control, the GCKS may provide each
<t>For the purpose of forward access control the GCKS may provide each G GM
M
with its personal KWK at the time of registration. Additionally, several intermediate KWKs that form a key with its personal KWK at the time of registration. Additionally, several intermediate KWKs that form a key
hierarchy and are shared among several GMs may be provided by the GCKS. hierarchy and are shared among several GMs may be provided by the GCKS.
</t> </t>
<t>Each KWK is associated with a key wrap algorithm specified in the Key
<t>Each KWK is associated with a key wrap algorithm, specified in the Ke Wrap Algorithm transform.
y Wrap Algorithm transform. The size of these KWKs is determined by the key wrap algorithm used,
The size of these KWKs is determined by the used key wrap algorithm,
but it <bcp14>SHOULD NOT</bcp14> be less than the size of the key for th e Encryption Algorithm transform but it <bcp14>SHOULD NOT</bcp14> be less than the size of the key for th e Encryption Algorithm transform
for the Rekey SA and for all Data-Security SAs in the group (taking into consideration the Key Length attribute if present). for the Rekey SA and for all Data-Security SAs in the group (taking the Key Length attribute into consideration if it is present).
</t> </t>
<section anchor="sk_w">
<section anchor="sk_w" title="Default Key Wrap Key"> <name>Default Key Wrap Key</name>
<t>The default KWK (GSK_w) is only used in the context of a single IKE SA. <t>The default KWK (GSK_w) is only used in the context of a single IKE SA.
Every IKE SA (unicast IKE SA or multicast Rekey SA) will have its own GSK_w. Every IKE SA (unicast IKE SA or multicast Rekey SA) will have its own GSK_w.
</t> </t>
<!-- [rfced] May we update "if they are take place" for clarity in the
sentence below?
Original:
For the unicast IKE SA (used for the GM registration and for the
GSA_INBAND_REKEY exchanges, if they are take place) the GSK_w is
computed as follows:
Perhaps:
For the unicast IKE SA (used for the GM registration and for
GSA_INBAND_REKEY exchanges if they appear), the GSK_w is
computed as follows:
-->
<t>For the unicast IKE SA (used for the GM registration <t>For the unicast IKE SA (used for the GM registration
and for the GSA_INBAND_REKEY exchanges, if they are take place) and for the GSA_INBAND_REKEY exchanges, if they are take place),
the GSK_w is computed as follows: the GSK_w is computed as follows:
</t>
<figure > <artwork><![CDATA[
<artwork><![CDATA[
GSK_w = prf+(SK_d, "Key Wrap for G-IKEv2") GSK_w = prf+(SK_d, "Key Wrap for G-IKEv2")
]]></artwork> ]]></artwork>
</figure>
<!--[rfced] Is "null termination" correct, or should it be "NUL termination"?
Current:
where the string "Key Wrap for G-IKEv2" is 20 ASCII characters
without null termination.
-->
<t>
where the string "Key Wrap for G-IKEv2" is 20 ASCII characters where the string "Key Wrap for G-IKEv2" is 20 ASCII characters
without null termination. without null termination.
</t> </t>
<t>For the multicast Rekey SA, the GSK_w is provided along with
<t>For the multicast Rekey SA the GSK_w is provided along with other SA keys as defined in <xref target="group_sa_keys"/>.
other SA keys as defined in <xref target="group_sa_keys" />.
</t> </t>
</section> </section>
</section> </section>
<section anchor="key_gcks_semantics">
<section anchor="key_gcks_semantics" title="GCKS Key Management Semantics" <name>GCKS Key Management Semantics</name>
> <t>The Wrapped Key Download method allows the GCKS to employ various key
<t>Wrapped Key Download method allows the GCKS to employ various key man management methods.</t>
agement methods <dl newline="false" spacing="normal">
<list style="symbols"> <dt>A simple key management method:</dt><dd>The GCKS always sends
<t>A simple key management methods -- when the GCKS always sends group SA keys encrypted with the GSK_w.</dd>
group SA keys encrypted with the GSK_w. <dt>An LKH key management method:</dt><dd>The GCKS provides each
</t> GM with an individual key at the time of the GM registration
<t>An LKH key management method -- when the GCKS provides (encrypted with GSK_w). Then, the GCKS forms a hierarchy of keys so
each GM with an individual key at the time of the GM registration that the group SA keys are encrypted with other keys that are
(encrypted with GSK_w). Then the GCKS forms an hierarchy of keys so th encrypted with other keys and so on, tracing back to the keys for
at the group each GM.</dd>
SA keys are encrypted with other keys which are encrypted with other k </dl>
eys and so on, <t>
tracing back to the keys for each GM.
</t>
</list>
Other key policies may also be employed by the GCKS. Other key policies may also be employed by the GCKS.
</t> </t>
<section>
<section title="Forward Access Control Requirements"> <name>Forward Access Control Requirements</name>
<t>When group membership is altered using a group management <t>When a group membership is altered using a group management
algorithm new Data-Security SAs and their associated keys are usually algorithm, new Data-Security SAs and their associated keys are usually
also needed. New Data-Security SAs and keys ensure that members who we re also needed. New Data-Security SAs and keys ensure that members who we re
denied access can no longer participate in the group.</t> denied access can no longer participate in the group.</t>
<t>If forward access control is a desired property of the group, <t>If forward access control is a desired property of the group,
new TEK policy and the associated keys <bcp14>MUST NOT</bcp14> be incl a new TEK policy and the associated keys <bcp14>MUST NOT</bcp14> be in
uded cluded
in a G-IKEv2 rekey message which changes group membership. in a G-IKEv2 rekey message, which changes group membership.
This is required because the GSA TEK policy This is required because the GSA TEK policy
and the associated keys are not protected with the new KEK. and the associated keys are not protected with the new KEK.
A second G-IKEv2 rekey message can A second G-IKEv2 rekey message can
deliver the new GSA TEK policies and their associated keys deliver the new GSA TEK policies and their associated keys
because it will be protected with the new KEK, and thus will not because it will be protected with the new KEK and thus will not
be visible to the members who were denied access.</t> be visible to the members who were denied access.</t>
<t>If forward access control policy for the group includes <t>If forward access control policy for the group includes
keeping group policy changes from members that are denied access keeping group policy changes from members that are denied access
to the group, then two sequential G-IKEv2 rekey messages to the group, then two sequential G-IKEv2 rekey messages
changing the group KEK <bcp14>MUST</bcp14> be sent by the GCKS. The fi rst changing the group KEK <bcp14>MUST</bcp14> be sent by the GCKS. The fi rst
G-IKEv2 rekey message creates a new KEK for the group. Group G-IKEv2 rekey message creates a new KEK for the group. Group
members, which are denied access, will not be able to access the members, which are denied access, will not be able to access the
new KEK, but will see the group policy since the G-IKEv2 rekey new KEK, but they will see the group policy since the G-IKEv2 rekey
message is protected under the current KEK. A subsequent G-IKEv2 message is protected under the current KEK. A subsequent G-IKEv2
rekey message containing the changed group policy and again rekey message containing the changed group policy and again
changing the KEK allows complete forward access control. A changing the KEK allows complete forward access control. A
G-IKEv2 rekey message <bcp14>MUST NOT</bcp14> change the policy withou t G-IKEv2 rekey message <bcp14>MUST NOT</bcp14> change the policy withou t
creating a new KEK.</t> creating a new KEK.</t>
<t>If other methods of using LKH or other group management <t>If other methods of using LKH or other group management
algorithms are added to G-IKEv2, those methods <bcp14>MAY</bcp14> remo ve the algorithms are added to G-IKEv2, those methods <bcp14>MAY</bcp14> remo ve the
above restrictions requiring multiple G-IKEv2 rekey messages, above restrictions requiring multiple G-IKEv2 rekey messages,
providing those methods specify how the forward access control providing those methods specify how the forward access control
policy is maintained within a single G-IKEv2 rekey message.</t> policy is maintained within a single G-IKEv2 rekey message.</t>
</section> </section>
</section> </section>
<section anchor="keys_gm_semantics">
<section anchor="keys_gm_semantics" title="GM Key Management Semantics"> <name>GM Key Management Semantics</name>
<t>This specification defines a GM Key Management semantics <t>This specification defines GM Key Management semantics
in such a way, that it doesn't depend on the key management in such a way that it doesn't depend on the key management
method employed by the GCKS. This allows having all the complexity method employed by the GCKS. This allows having all the complexity
of key management in the GCKS, which is free to implement various of key management in the GCKS, which is free to implement various
key management methods, such as direct transmitting of group SA key management methods such as direct transmitting of group SA
keys or using some kind of key hierarchy (e.g. LKH). keys or using some kind of key hierarchy (e.g., LKH).
For all these policies the GM behavior is the same. The GM behavior is the same for all of these policies.
</t> </t>
<t>All keys in G-IKEv2 are transmitted in encrypted form as specified
<t>All keys in G-IKEv2 are transmitted in encrypted form, as specified in <xref target="wrapped_key"/>. This format includes a 32-bit Key ID
in <xref target="wrapped_key" />. This format includes a 32-bit Key ID
(ID of a key that is encrypted) and a 32-bit KWK ID (ID of a key that is encrypted) and a 32-bit KWK ID
(ID of a key that was used to encrypt this key). Keys may be (ID of a key that was used to encrypt this key). Keys may be
encrypted either with default KWK (GSK_w) or with other keys, encrypted either with a default KWK (GSK_w) or with other keys,
which the GM has received in the WRAP_KEY attributes. which the GM has received in the WRAP_KEY attributes.
If a key was encrypted with GSK_w, then the KWK ID field is set to zero, If a key was encrypted with GSK_w, then the KWK ID field is set to zero.
otherwise the KWK ID field identifies the key used for encryption. Otherwise, the KWK ID field identifies the key used for encryption.
Zero Key ID always identifies the key from which the keys for protecting A zero Key ID always identifies the key from which the keys for protecti
Data-Security SAs and Rekey SA are taken. ng Data-Security SAs and Rekey SA are taken.
</t> </t>
<t>When a GM receives a message from the GCKS installing the new Data-Se
<t>When a GM receives a message from the GCKS installing new Data-Securi curity or Rekey SA,
ty or Rekey SA,
it will contain a KD payload with an SA_KEY attribute containing keying material for this SA. it will contain a KD payload with an SA_KEY attribute containing keying material for this SA.
For a Data-Security SA exactly one SA_KEY attribute will be present For a Data-Security SA, exactly one SA_KEY attribute will be present
with both Key ID and KWK ID fields set to zero. This means that the with both Key ID and KWK ID fields set to zero. This means that the
default KWK (GSK_w) should be used to extract this keying material. default KWK (GSK_w) should be used to extract this keying material.
</t> </t>
<t>For a multicast Rekey SA, multiple SA_KEY attributes may be present
<t>For a multicast Rekey SA multiple SA_KEY attributes may be present
depending on the key management method employed by the GCKS. If multiple SA_KEY attributes depending on the key management method employed by the GCKS. If multiple SA_KEY attributes
are present then all of them <bcp14>MUST</bcp14> contain the same keying material encrypted using different KWKs. are present, then all of them <bcp14>MUST</bcp14> contain the same keyin g material encrypted using different KWKs.
The GM in general is unaware of the key management method used by the GC KS and can always use the same procedure to get The GM in general is unaware of the key management method used by the GC KS and can always use the same procedure to get
the keys. The GM tries to decrypt at least one of the SA_KEY attributes the keys. The GM tries to decrypt at least one of the SA_KEY attributes
using either the GSK_w or the keys from the WRAP_KEY attributes that are present in the same message using either the GSK_w or the keys from the WRAP_KEY attributes that are present in the same message
or were receives in previous messages. or were received in previous messages.
</t> </t>
<t>We will use the term "Key Path" to describe an ordered sequence of ke ys <t>We will use the term "Key Path" to describe an ordered sequence of ke ys
where each subsequent key was used to encrypt the previous one. where each subsequent key was used to encrypt the previous one.
The GM keeps its own Key Path (called Working Key Path) in the memory as sociated The GM keeps its own Key Path (called Working Key Path) in the memory as sociated
with each group it is registered to and updates it when needed. with each group it is registered to and updates it when needed.
When the GSA_REKEY message is received the GM processes the received SA_ When the GSA_REKEY message is received, the GM processes the received SA
KEY attributes _KEY attributes
one by one trying to construct a new key path that starts from one of th one by one and tries to construct a new key path that starts from one of
ese attributes and these attributes and
ends with any key in the Working Key Path or with the default KWK (GSK_w ). ends with any key in the Working Key Path or with the default KWK (GSK_w ).
</t> </t>
<t>In the simplest case, the SA_KEY attribute is encrypted
<t>In the simplest case the SA_KEY attribute is encrypted
with GSK_w so that the new Key Path is empty. with GSK_w so that the new Key Path is empty.
If more complex key management methods are used then a Key Path will If more complex key management methods are used, then a Key Path will
contain intermediate keys from the WRAP_KEY attributes contain intermediate keys from the WRAP_KEY attributes
received by a GM so far starting from its registration to the group. If the GM is able received by a GM so far, starting from its registration to the group. If the GM is able
to construct a new Key Path using intermediate keys it has, then it is a ble to decrypt the SA_KEY attribute to construct a new Key Path using intermediate keys it has, then it is a ble to decrypt the SA_KEY attribute
and use its content to form new SA keys. If it is unable to build a new Key Path, then in means that the GM is excluded and use its content to form new SA keys. If it is unable to build a new Key Path, then it means that the GM is excluded
from the group. from the group.
</t> </t>
<t>Depending on the new Key Path, the GM should do the following actions
<t>Depending on the new Key Path the GM should do the following actions to be prepared for future key updates:
to be prepared for future key updates: </t>
<list style="symbols"> <ul spacing="normal">
<t>If the new Key Path is empty then no actions are needed. This may h <li>
appen <t>If the new Key Path is empty, then no actions are needed. This ma
y happen
if no WRAP_KEY attributes from the received message were used. if no WRAP_KEY attributes from the received message were used.
</t> </t>
<t>If the new Key Path is non-empty and it ends with the default KWK ( </li>
GSK_w), then the whole new <li>
<t>If the new Key Path is non-empty and it ends with the default KWK
(GSK_w), then the whole new
Key Path is stored by the GM as the GM's Working Key Path. Key Path is stored by the GM as the GM's Working Key Path.
This situation may only happen at the time the GM is registering to th <!-- [rfced] We have replaced "it" with "GM" for clarity and removed
e group, "this GM" to avoid redundancy. Please let us know if this is not
when the GCKS is providing it with its personal key and the other keys correct.
from the key tree that are needed for this GM.
Original:
This situation may only happen at the time the GM is registering to
the group, when the GCKS is providing it with its personal key and the other
keys from the key tree that are needed for this GM.
Current:
This situation may only happen at the time the GM is registering to
the group, when the GCKS is providing the GM with its personal key and the
other keys from the key tree that are needed.
-->
This situation may only happen at the time the GM is registering to the group,
when the GCKS is providing the GM with its personal key and the other
keys from the key tree that are needed.
These keys form an initial Working Key Path for this GM. These keys form an initial Working Key Path for this GM.
</t> </t>
<t>In all other cases the new Key Path will end at some intermediate k </li>
ey from the GM's current Working Key Path. <li>
In this case the new Key Path is constructed by replacing a part of th <t>In all other cases, the new Key Path will end at some intermediat
e GM's current Working Key Path from the beginning and up to (but not including) e key from the GM's current Working Key Path.
In this case, the new Key Path is constructed by replacing a part of t
he GM's current Working Key Path from the beginning and up to (but not including
)
the key that the GM has used to decrypt the last key in the new Key Pa th. the key that the GM has used to decrypt the last key in the new Key Pa th.
</t> </t>
</list> </li>
<xref target="lkh_key_management" /> contains an example of how this alg </ul>
orithm works in case of LKH key management method. <t>
<xref target="lkh_key_management"/> contains an example of how this algo
rithm works in case of LKH key management method.
</t> </t>
</section> </section>
<section anchor="group_sa_keys">
<section anchor="group_sa_keys" title="SA Keys"> <name>SA Keys</name>
<t>The keys that are used for Data-Security SAs or Rekey SA (called here <t>The keys that are used for Data-Security SAs or a Rekey SA (called
SA keys) are downloaded to GMs in the form of keying material from which SA keys here) are downloaded to GMs in the form of keying material from
, which,
according to policy, a set of keys are deterministically extracted. according to policy, a set of keys are deterministically extracted.
</t> </t>
<t>For a Data-Security SA, the keys are taken in accordance to the
<t>For a Data-Security SA the keys are taken in accordance to the third third bullet from <xref target="RFC7296" sectionFormat="of"
bullet from Section 2.17 of section="2.17"/>. In particular, for the ESP and AH SAs, the encryption
<xref target="RFC7296" />. In particular, for the ESP and AH SAs the enc key (if any) <bcp14>MUST</bcp14> be taken from the leftmost bits of
ryption key (if any) <bcp14>MUST</bcp14> be the keying material and the integrity key (if any) <bcp14>MUST</bcp14>
taken from the leftmost bits of the keying material and the integrity ke be taken from the remaining bits.
y (if any) <bcp14>MUST</bcp14> be </t>
taken from the remaining bits. <t>For a Rekey SA, the following keys are taken from the keying material
:
</t> </t>
<figure>
<artwork><![CDATA[
GSK_e | GSK_a | GSK_w = KEYMAT
]]></artwork>
</figure>
<t>
<!-- [rfced] In this sentence, is GSK_e used for the Encryption
Algorithm and GSK_a for the Integrity Algorithm (option A), or
are GSK_e and GSK_a used for both the Encryption Algorithm and
the Integrity Algorithm (option B)?
<t>For a Rekey SA the following keys are taken from the keying material: Original:
where GSK_e and GSK_a are the keys used for the Encryption Algorithm
and the Integrity Algorithm transforms for the corresponding SA and
GSK_w is a default KWK for this SA.
<figure > Perhaps A:
<artwork><![CDATA[ where GSK_e and GSK_a are the keys used for the Encryption Algorithm and
GSK_e | GSK_a | GSK_w = KEYMAT the Integrity Algorithm transforms, respectively, for the corresponding
]]></artwork> SA and GSK_w is a default KWK for this SA.
</figure>
where GSK_e and GSK_a are the keys used for the Encryption Algorithm and or
the Integrity Algorithm transforms Perhaps B:
for the corresponding SA and GSK_w is a default KWK for this SA. Note, t where GSK_e and GSK_a are the keys used for both the Encryption Algorithm
hat GSK_w is used with and the Integrity Algorithm transforms for the corresponding SA and
GSK_w is a default KWK for this SA.
-->
where GSK_e and GSK_a are the keys used for the Encryption Algorithm and the Int
egrity Algorithm transforms
for the corresponding SA and GSK_w is a default KWK for this SA. Note th
at GSK_w is used with
the key wrap algorithm specified in the Key Wrap Algorithm transform. If an AEAD algorithm is used for encryption, the key wrap algorithm specified in the Key Wrap Algorithm transform. If an AEAD algorithm is used for encryption,
then GSK_a key will not be used (GM can use the formula above assuming t he length of GSK_a is zero). then the GSK_a key will not be used (GM can use the formula above assumi ng the length of GSK_a is zero).
</t> </t>
</section> </section>
</section> </section>
<section anchor="header_payload">
<section anchor="header_payload" title="Header and Payload Formats"> <name>Header and Payload Formats</name>
<t>The G-IKEv2 is an IKEv2 extension and thus inherits its wire format <t>The G-IKEv2 is an IKEv2 extension and thus inherits its wire format
for data structures. However, the processing of some payloads are for data structures. However, the processing of some payloads are
different. Several new payloads are defined: different. Several new payloads are defined:
Group Identification (IDg, <xref target="idg_payload" />), Security Associ Group Identification (IDg) (<xref target="idg_payload"/>), Security Associ
ation - GM Supported Transforms (SAg, <xref target="sag_payload" />), ation - GM Supported Transforms (SAg) (<xref target="sag_payload"/>),
Group Security Association (GSA, <xref target="gsa_payload" />), and Key D Group Security Association (GSA) (<xref target="gsa_payload"/>), and Key D
ownload (KD, <xref target="kd_payload" />). ownload (KD) (<xref target="kd_payload"/>).
G-IKEv2 header (<xref target="header" />), IDg payload and SAg payload reu The G-IKEv2 header (<xref target="header"/>), IDg payload, and SAg payload
se IKEv2 format for the IKEv2 header, IDi/IDr payloads reuse the IKEv2 format for the IKEv2 header, IDi/IDr payloads, and SA payload,
and SA payload respectively. New exchange types GSA_AUTH, GSA_REGISTRATION respectively. New exchange types GSA_AUTH, GSA_REGISTRATION, GSA_REKEY, and GSA_
, GSA_REKEY and GSA_INBAND_REKEY are INBAND_REKEY are
also added. also added.
</t> </t>
<t>This section describes new payloads and the differences in the processi
<t>This section describes new payloads and the differences in processing ng
of existing IKEv2 payloads. of existing IKEv2 payloads.
</t> </t>
<section anchor="header">
<section anchor="header" title="G-IKEv2 Header"> <name>G-IKEv2 Header</name>
<t>G-IKEv2 uses the same IKE header format as specified in <xref target= <t>G-IKEv2 uses the same IKE header format as specified in <xref
"RFC7296" /> target="RFC7296" sectionFormat="of" section="3.1"/>. The Major Version i
section 3.1. Major Version is 2 and Minor Version is 0 as in IKEv2. s
IKE SA Initiator's SPI, IKE SA Responder's SPI, Flags, Message ID, and L 2 and the Minor Version is 0, as in IKEv2. IKE SA Initiator's SPI, IKE S
ength are A
as specified in <xref target="RFC7296"></xref>. Responder's SPI, Flags, Message ID, and Length are as specified in
<xref target="RFC7296"/>.
</t> </t>
</section> </section>
<section anchor="idg_payload">
<section title="Group Identification Payload" anchor="idg_payload"> <name>Group Identification Payload</name>
<t>The Group Identification (IDg) payload allows the group member to ind icate which group it <t>The Group Identification (IDg) payload allows the group member to ind icate which group it
wants to join. The payload is constructed by using the IKEv2 wants to join. The payload is constructed by using the IKEv2
Identification Payload (section 3.5 of <xref target="RFC7296"></xref>). Identification Payload (<xref target="RFC7296" sectionFormat="of" sectio
ID type ID_KEY_ID <bcp14>MUST</bcp14> be supported. ID types ID_IPV4_ADD n="3.5"/>).
R, ID_FQDN, ID_RFC822_ADDR, ID type ID_KEY_ID <bcp14>MUST</bcp14> be supported. ID types ID_IPV4_ADD
ID_IPV6_ADDR <bcp14>SHOULD</bcp14> be supported. ID types ID_DER_ASN1_DN R, ID_FQDN, ID_RFC822_ADDR, and ID_IPV6_ADDR <bcp14>SHOULD</bcp14> be supported.
and ID_DER_ASN1_GN ID types ID_DER_ASN1_DN and ID_DER_ASN1_GN
are not expected to be used. The Payload Type for the Group Identificati are not expected to be used. The Payload Type for the IDg payload is fif
on payload is fifty (50). ty (50).
</t> </t>
</section> </section>
<section anchor="sag_payload">
<name>Security Association - GM Supported Transforms Payload</name>
<!-- [rfced] FYI - We have updated the following sentence to reduce
the repetition of "payload" and to match use in Table 1. Please
let us know any objections.
<section title="Security Association - GM Supported Transforms Payload" an Original:
chor="sag_payload"> The Security Association - GM Supported Transforms Payload (SAg)
<t>The Security Association - GM Supported Transforms Payload (SAg) payload declares which Transforms a GM is willing to accept.
payload declares which Transforms a GM is willing to
Current:
The Security Association - GM Supported Transforms (SAg) payload
declares which Transforms a GM is willing to accept.
-->
<t>The Security Association - GM Supported Transforms (SAg) payload
declares which Transforms a GM is willing to
accept. The payload is constructed using the format of the IKEv2 accept. The payload is constructed using the format of the IKEv2
Security Association payload (section 3.3 of <xref target="RFC7296"></xr ef>). Security Association payload (<xref target="RFC7296" sectionFormat="of" section="3.3"/>).
The Payload Type for SAg payloads is thirty-three (33), which is The Payload Type for SAg payloads is thirty-three (33), which is
identical to the SA Payload Type. identical to the SA Payload Type.
</t> </t>
</section> </section>
<section anchor="gsa_payload">
<section title="Group Security Association Payload" anchor="gsa_payload"> <name>Group Security Association Payload</name>
<t>The Group Security Association (GSA) payload is used by the GCKS to <t>The GSA payload is used by the GCKS to
assert security attributes for both Rekey SA and Data-Security SAs. assert security attributes for both Rekey and Data-Security SAs.
The Payload Type for the Group Security Association payload is fifty-one The Payload Type for the GSA payload is fifty-one (51).
(51).
</t> </t>
<figure title="GSA Payload Format" anchor="gsa_payload_format"> <figure anchor="gsa_payload_format">
<preamble></preamble> <name>GSA Payload Format</name>
<artwork><![CDATA[ <artwork><![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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
~ <Group Policies> ~ ~ <Group Policies> ~
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
]]></artwork>
<postamble></postamble>
</figure> </figure>
<t>The Security Association Payload fields are defined as follows: <t>The Security Association payload fields are defined as follows:
<list style="symbols">
<t>Next Payload, C, RESERVED, Payload Length fields comprise the IKE
v2 Generic Payload Header and
are defined in Section 3.2. of <xref target="RFC7296"></xref>.</t>
<t>Group Policies (variable) -- A set of group policies for the grou
p.</t>
</list>
</t> </t>
<dl spacing="normal" newline="true">
<section anchor="group_policy" title="Group Policies"> <dt>Next Payload, C, RESERVED, and Payload Length
<t>Group policies are comprised of two types of policy -- Group SA (GS fields:</dt><dd>Comprise the IKEv2 Generic Payload Header and are
A) policy defined in <xref target="RFC7296" sectionFormat="of" section="3.2"/>.<
/dd>
<dt>Group Policies (variable):</dt><dd>A set of group policies for
the group.</dd>
</dl>
<section anchor="group_policy">
<name>Group Policies</name>
<t>Group policies are comprised of two types: Group SA (GSA) policy
and Group-wide (GW) policy. GSA policy defines parameters and Group-wide (GW) policy. GSA policy defines parameters
for the Security Association for the group. Depending on the for the Security Association of the group. Depending on the
employed security protocol GSA policies may further be classified as employed security protocol, GSA policies may further be classified as
Rekey SA policy (GSA KEK) and Data-Security SA policy (GSA TEK). Rekey SA policy (GSA KEK) and Data-Security SA policy (GSA TEK).
GSA payload may contain zero or one GSA KEK policy, zero or more GSA T EK policies, GSA payload may contain zero or one GSA KEK policy, zero or more GSA T EK policies,
and zero or one GW policy, where either one GSA KEK or GSA TEK policy and zero or one GW policy, where either one GSA KEK or one GSA TEK pol
<bcp14>MUST</bcp14> be present.</t> icy <bcp14>MUST</bcp14> be present.</t>
<t>This latitude allows various group policies to be accommodated. <t>This latitude allows various group policies to be accommodated.
For example if the group policy does not require the use of a Rekey For example, if the group policy does not require the use of a Rekey
SA, the GCKS would not need to send a GSA KEK policy to the group SA, the GCKS would not need to send a GSA KEK policy to the group
member since all SA updates would be performed using the GSA_INBAND_RE KEY exchange via the member since all SA updates would be performed using the GSA_INBAND_RE KEY exchange via the
unicast IKE SA. Alternatively, group policy might use a Rekey SA unicast IKE SA. Alternatively, group policy might use a Rekey SA
but choose to download a KEK to the group member only as part of the but choose to download a KEK to the group member only as part of the
unicast IKE SA. Therefore, the GSA KEK policy would not be unicast IKE SA. Therefore, the GSA KEK policy would not be
necessary as part of the GSA_REKEY message.</t> necessary as part of the GSA_REKEY message.</t>
<t>Specifying multiple GSA TEKs allows multiple related data streams <t>Specifying multiple GSA TEKs allows multiple related data streams
(e.g., video, audio, and text) to be associated with a session, but (e.g., video, audio, and text) to be associated with a session, but
each protected with an individual security association policy.</t> each are protected with an individual security association policy.</t>
<t>A GW policy allows for the distribution of group-wide policy, <t>A GW policy allows for the distribution of group-wide policy,
such as instructions for when to activate and de-activate SAs.</t> such as instructions for when to activate and deactivate SAs.</t>
<t>Policies are distributed in substructures to the GSA payload. <t>Policies are distributed in substructures to the GSA payload.
The format of the substructures is defined below in <xref target="gsa_ The format of the substructures is defined in <xref target="gsa_policy
policy" /> "/>
(for GSA policy) and in <xref target="gw_policy" /> (for GW policy). (for GSA policy) and in <xref target="gw_policy"/> (for GW policy).
The first octet of the substructure unambiguously determines its type The first octet of the substructure unambiguously determines its type;
-- it is zero for GW policy and non-zero (actually, it is a security Prot
it is zero for GW policy and non-zero (actually, it is a security prot ocol ID)
ocol ID)
for GSA policies. for GSA policies.
</t> </t>
</section> </section>
<section anchor="gsa_policy">
<section title="Group Security Association Policy Substructure" anchor=" <name>Group Security Association Policy Substructure</name>
gsa_policy">
<t>The GSA policy substructure contains parameters for the SA <t>The GSA policy substructure contains parameters for the SA
used with this group. Depending on the security protocol that are used with this group. Depending on the security protocol,
the SA is either a Rekey SA or a Data-Security SA (ESP and AH). the SA is either a Rekey SA or a Data-Security SA (ESP and AH).
The GCKS <bcp14>MUST NOT</bcp14> distribute both ESP and AH The GCKS <bcp14>MUST NOT</bcp14> distribute both ESP and AH
policies for the same set of Traffic Selectors. policies for the same set of Traffic Selectors.
</t> </t>
<t><figure title="GSA Policy Substructure Format" anchor="gsa_format"> <figure anchor="gsa_format">
<preamble></preamble> <name>GSA Policy Substructure Format</name>
<artwork><![CDATA[ <artwork><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Protocol | SPI Size | Length | | Protocol | SPI Size | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
~ SPI ~ ~ SPI ~
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at line 1694 skipping to change at line 1948
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
~ <GSA Transforms> ~ ~ <GSA Transforms> ~
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
~ <GSA Attributes> ~ ~ <GSA Attributes> ~
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork> ]]></artwork>
<postamble></postamble> </figure>
</figure></t>
<t>The GSA policy fields are defined as follows:
<ul>
<li><t>Protocol (1 octet) -- Identifies the security protocol for th
is group SA.
The values are defined in the IKEv2 Security Protocol Identifiers in
<xref target="IKEV2-IANA" />. The valid values for this field are:
&lt;TBA&gt; (GIKE_UPDATE) for Rekey SA and 2 (AH) or 3 (ESP) for Dat
a-Security SAs.
</t></li>
<li><t>SPI Size (1 octet) -- Size of Security Parameter Index (SPI)
for the SA.
SPI size depends on the SA protocol. For GIKE_UPDATE it is 16 octets
, while for AH and ESP it is 4 octets.
</t></li>
<li><t>Length (2 octets, unsigned integer) -- Length of this substru <t>The GSA policy fields are defined as follows:</t>
cture including the header.
</t></li>
<li><t>SPI (variable) -- Security Parameter Index for the group SA. <dl spacing="normal" newline="true">
<dt>Protocol (1 octet):</dt><dd>Identifies the security protocol
for this group SA. The values are defined in the "IKEv2 Security
Protocol Identifiers" registry in <xref target="IKEV2-IANA"/>. The v
alid
values for this field are 6 (GIKE_UPDATE) for Rekey SA
and 2 (AH) or 3 (ESP) for Data-Security SAs.</dd>
<dt>SPI Size (1 octet):</dt><dd>Size of the SPI
for the SA. SPI size depends on the SA protocol. It is 16 octets fo
r GIKE_UPDATE and 4 octets for AH and ESP.</dd>
<dt>Length (2 octets, unsigned integer):</dt><dd>Length of this
substructure including the header.</dd>
<dt>SPI (variable):</dt><dd>Security Parameter Index for the group S
A.
The size of this field is determined by the SPI Size field. The size of this field is determined by the SPI Size field.
As described above, these SPIs are assigned by the GCKS. As described above, these SPIs are assigned by the GCKS.
In case of GIKE_UPDATE the SPI is the IKEv2 Header SPI pair where th e In the case of GIKE_UPDATE, the SPI is the IKEv2 Header SPI pair whe re the
first 8 octets become the "IKE SA Initiator's SPI" field in the first 8 octets become the "IKE SA Initiator's SPI" field in the
G-IKEv2 rekey message IKEv2 HDR, and the second 8 octets become G-IKEv2 rekey message IKEv2 HDR, and the second 8 octets become
the "IKE SA Responder's SPI" in the same HDR. the "IKE SA Responder's SPI" in the same HDR.</dd>
</t></li> <dt>Source &amp; Destination Traffic Selectors (variable):</dt><dd>
<t>Substructures describing the source and destination of the networ
<li><t>Source &amp; Destination Traffic Selectors (variable) -- k
Substructures describing the source and destination of the identities. The format for these substructures is defined in IKEv2
network identities. The format for these substructures (<xref target="RFC7296" sectionFormat="of" section="3.13.1"/>).</t>
is defined in IKEv2 <xref target="RFC7296"></xref>, Section 3.13.1. <t>For the Rekey SA (with the GIKE_UPDATE protocol), the
</t> destination traffic selectors <bcp14>MUST</bcp14> define a single
<t>For the Rekey SA (with the GIKE_UPDATE protocol) the multicast IP address, an IP protocol (assumed to be UDP), and a
destination traffic selectors <bcp14>MUST</bcp14> define a single mu single port the GSA_REKEY messages will be destined to. In this case
lticast IP address, an IP protocol (assumed to be UDP) , the source
and a single port the GSA_REKEY messages will be destined to. The so traffic selector <bcp14>SHOULD</bcp14> define a
urce traffic selector in this case <bcp14>SHOULD</bcp14> define single IP address, an IP protocol (assumed to be UDP), and a single
a single IP address, an IP protocol (assumed to be UDP) and a single port the GSA_REKEY messages will be originated from. The source
port the GSA_REKEY messages will be originated from. traffic selector <bcp14>MAY</bcp14> define a wildcard IP address
The source traffic selector <bcp14>MAY</bcp14> define wildcard IP ad and/or wildcard port. For the Data-Security (AH and ESP) SAs, the
dress and/or wildcard port. For the Data-Security (AH and ESP) SAs the destination traffic selectors will usually define a single
destination traffic selectors will usually define a single multicast multicast IP address. The source traffic selector in this case
IP address. will usually define a single IP address or be a wildcard selector.
The source traffic selector in this case will usually define a singl An IP protocol and ports define the characteristics of traffic
e IP address or be a wildcard selector. protected by this Data-Security SA.</t>
IP protocol and ports define the characteristics of traffic protecte <t>If the Data-Security SAs are created in tunnel mode, then it
d by this Data-Security SA. <bcp14>MUST</bcp14> be tunnel mode with address preservation (see
</t> Multicast Extensions to the Security Architecture <xref
<t>If the Data-Security SAs are created in tunnel mode, then it <bcp target="RFC5374"/>. UDP encapsulation of ESP packets <xref
14>MUST</bcp14> be tunnel mode with address target="RFC3948"/> cannot be specified in G-IKEv2 and thus is
preservation (see Multicast Extensions to the Security Architecture not used for the multicast Data-Security SAs.</t></dd>
<xref target="RFC5374" />. <dt>GSA Transforms (variable):</dt><dd>A list of Transform
UDP encapsulation of ESP packets <xref target="RFC3948" /> cannot be Substructures specifies the policy information for the SA. The
specified in G-IKEv2 and format is defined in IKEv2 (<xref target="RFC7296"
thus it is not used for the multicast Data-Security SAs. sectionFormat="of" section="3.3.2"/>).
</t></li> <!-- [rfced] Should "Last Substruc" be "Last Substruct" or "Last
Substructure" in the sentence below? Or is "Last Substruc"
<li><t>GSA Transforms (variable) -- A list of Transform correct here?
Substructures specifies the policy information for the SA.
The format is defined in IKEv2 <xref target="RFC7296"></xref>, secti
on 3.3.2.
The "Last Substruc" field in each Transform Substructure is set to 3
except for the last Transform Substructure, where it is
set to 0. <xref target="gsa_transforms" /> describes using IKEv2 tra
nsforms
in GSA policy substructure.
</t></li>
<li><t>GSA Attributes (variable) -- Contains policy attributes assoc Original:
iated The "Last Substruc" field in each Transform Substructure is set to 3
with the group SA. The following sections describe the possible except for the last Transform Substructure, where it is set to 0.
attributes. Any or all attributes may be optional, depending on
the protocol and the group policy. <xref target="gsa_attr" />
defines attributes used in GSA policy substructure.</t></li>
</ul></t>
<section anchor="gsa_transforms" title="GSA Transforms"> Perhaps:
<t>GSA policy is defined by means of transforms in the GSA policy su The "Last Substructure" field in each Transform Substructure is set
bstructure. to 3 except for the last Transform Substructure, where it is set to 0.
For this purpose the transforms defined in <xref target="RFC7296" /> -->
are used. In addition, new transform types are defined for using in The "Last Substruc"
G-IKEv2: field in each Transform Substructure is set to 3 except for the
last Transform Substructure, where it is set to 0. <xref
target="gsa_transforms"/> describes using IKEv2 transforms in GSA
policy substructure.</dd>
<dt>GSA Attributes (variable):</dt><dd>Contains policy attributes
associated with the group SA. The following sections describe the
possible attributes. Any or all attributes may be optional,
depending on the protocol and the group policy. <xref
target="gsa_attr"/> defines attributes used in GSA policy
substructure.</dd>
</dl>
<section anchor="gsa_transforms">
<name>GSA Transforms</name>
<t>GSA policy is defined by the means of transforms in the GSA polic
y substructure.
For this purpose, the transforms defined in <xref target="RFC7296"/>
are used. In addition, new transform types are defined for use in G-
IKEv2:
Group Controller Authentication Method (GCAUTH) Group Controller Authentication Method (GCAUTH)
and Key Wrap Algorithm (KWA), see <xref target="IANA" />. and Key Wrap Algorithm (KWA); see <xref target="IANA"/>.
</t> </t>
<t> Valid transform types depend on the SA protocol and are summariz ed in the table below. <t> Valid transform types depend on the SA protocol and are summariz ed in the table below.
Exactly one instance of each mandatory transform type and at most on e instance of each Exactly one instance of each mandatory transform type and at most on e instance of each
optional transform type <bcp14>MUST</bcp14> be present in the GSA po licy substructure. optional transform type <bcp14>MUST</bcp14> be present in the GSA po licy substructure.
<figure align="center" anchor="allowed_transforms" title="Valid Tran
sform Types">
<artwork align="left"><![CDATA[
Protocol Mandatory Types Optional Types
GIKE_UPDATE ENCR, INTEG*, GCAUTH**, KWA
ESP ENCR, SN INTEG
AH INTEG, SN
]]></artwork>
</figure>
</t>
<t>(*) If AEAD encryption algorithm is used, then INTEG transform
either <bcp14>MUST NOT</bcp14> be specified or <bcp14>MUST</bcp14> c
ontain value NONE;
otherwise it <bcp14>MUST</bcp14> be specified and <bcp14>MUST</bcp14
> contain value other than NONE.
</t>
<t>(**) May only appear at the time of a GM registration,
(in the GSA_AUTH and GSA_REGISTRATION exchanges).
</t> </t>
<section anchor="auth_method" title="Group Controller Authentication <table anchor="allowed_transforms">
Method Transform"> <name>Valid Transform Types</name>
<t>The Group Controller Authentication Method (GCAUTH) transform i <thead>
s used to convey information of how the GCKS <tr>
<th>Protocol</th>
<th>Mandatory Types</th>
<th>Optional Types</th>
</tr>
</thead>
<tbody>
<tr>
<td>GIKE_UPDATE</td>
<td>ENCR, INTEG*, GCAUTH**, KWA</td>
<td></td>
</tr>
<tr>
<td>ESP</td>
<td>ENCR, SN</td>
<td>INTEG</td>
</tr>
<tr>
<td>AH</td>
<td>INTEG, SN</td>
<td></td>
</tr>
</tbody>
</table>
<t>Notes:</t>
<dl spacing="normal" newline="false">
<dt>(*):</dt><dd>If the AEAD encryption algorithm is used, then IN
TEG
transform either <bcp14>MUST NOT</bcp14> be specified or
<bcp14>MUST</bcp14> contain value NONE; otherwise, it
<bcp14>MUST</bcp14> be specified and <bcp14>MUST</bcp14> contain
a value other than NONE.</dd>
<dt>(**):</dt><dd>May only appear at the time of a GM
registration (in the GSA_AUTH and GSA_REGISTRATION
exchanges).</dd>
</dl>
<section anchor="auth_method">
<name>Group Controller Authentication Method Transform</name>
<t>The Group Controller Authentication Method (GCAUTH) transform i
s used to convey information on how the GCKS
will authenticate the GSA_REKEY messages. will authenticate the GSA_REKEY messages.
</t> </t>
<t> This document creates a new IKEv2 IANA registry for transform
<t> This document creates a new IKEv2 IANA registry for transform IDs of this transform type, which has been initially populated as described in <
IDs for this transform type, xref target="IANA"/>.
which is initially filled as described in <xref target="IANA" />. In particular, the following entries have been added:
In particular, the following entries are initially added.
</t> </t>
<figure> <table>
<preamble></preamble> <name></name>
<artwork align="center"><![CDATA[ <thead>
Group Controller Authentication Method Value <tr>
Reserved 0 <th>Group Controller Authentication Method</th>
Implicit 1 <th>Value</th>
Digital Signature 2 </tr>
]]></artwork> </thead>
</figure> <tbody>
<tr>
<t>These transform IDs are defined as follows. <td>Reserved</td><td>0</td>
<ul> </tr>
<li><t> Implicit -- means that no authentication of the GSA_REKE <tr>
Y messages will be provided <td>Implicit</td><td>1</td>
by the GCKS besides the ability for the GMs to correctly decrypt </tr>
them and verify their ICV. <tr>
In this case the GCKS <bcp14>MUST NOT</bcp14> include the AUTH_K <td>Digital Signature</td><td>2</td>
EY attribute into the KD payload. </tr>
Additionally, the AUTH payload <bcp14>MUST NOT</bcp14> be includ </tbody>
ed in the GIKE_UPDATE messages.</t></li> </table>
<li><t> Digital Signature -- means that digital signatures will
be used by the GCKS to authenticate the GSA_REKEY messages.
In this case the GCKS <bcp14>MUST</bcp14> include the AUTH_KEY a
ttribute containing the public key
into the KD payload at the time the GM is registered to the grou
p. To specify the details of the
signature algorithm a new attribute Signature Algorithm Identifi
er (&lt;TBA by IANA&gt;) is defined.
This attribute contains DER-encoded ASN.1 object AlgorithmIdenti
fier, which specifies the
signature algorithm and the hash function that the GCKS will use
for authentication.
The AlgorithmIdentifier object is defined in Section 4.1.1.2 of
Internet X.509 Public
Key Infrastructure Certificate and CRL Profile <xref target="RFC
5280" />,
see also Signature Authentication in IKEv2 <xref target="RFC7427
" /> for the list of common AlgorithmIdentifier values used in IKEv2.</t>
<t>In case of the Digital Signature transform ID, the GCKS <bcp1 <t>These transform IDs are defined as follows:</t>
4>MUST</bcp14> include the Signature Algorithm Identifier attribute
in the Group Controller Authentication Method transform. In this
case the AUTH payload
in the GIKE_UPDATE messages <bcp14>MUST</bcp14> contain the Digi
tal Signature authentication method (value 14)
and is formatted as defined in Section 3 of <xref target="RFC742
7" />. The
AlgorithmIdentifier ASN.1 object in the AUTH payload <bcp14>MUST
</bcp14> match the content of the
Signature Algorithm Identifier attribute in the Group Controller
Authentication Method transform.
The Signature Algorithm Identifier attribute is only meaningful
for the Digital Signature transform ID
and <bcp14>MUST NOT</bcp14> be used with other transform IDs.
</t></li>
</ul>
More authentication methods may be defined in future. <dl spacing="normal" newline="true">
<dt>Implicit:</dt><dd>No authentication of the
GSA_REKEY messages will be provided by the GCKS besides the
ability for the GMs to correctly decrypt them and verify their
ICV. In this case, the GCKS <bcp14>MUST NOT</bcp14> include
the AUTH_KEY attribute into the KD payload. Additionally, the
AUTH payload <bcp14>MUST NOT</bcp14> be included in the
GIKE_UPDATE messages.</dd>
<dt>Digital Signature</dt><dd><t>Digital signatures
will be used by the GCKS to authenticate the GSA_REKEY
messages. In this case, the GCKS <bcp14>MUST</bcp14> include
the AUTH_KEY attribute containing the public key into the KD
payload at the time the GM is registered to the group. To
specify the details of the signature algorithm, a new attribute
Signature Algorithm Identifier (value 18) is
defined. This attribute contains DER-encoded ASN.1 object
AlgorithmIdentifier, which specifies the signature algorithm
and the hash function that the GCKS will use for
authentication. The AlgorithmIdentifier object is defined in
<xref target="RFC5280" sectionFormat="of"
section="4.1.1.2"/>. Also, see <xref target="RFC7427"/>
for the list of common AlgorithmIdentifier values used in
IKEv2.</t>
<t>In the case of the Digital Signature transform ID, the GCKS
<bcp14>MUST</bcp14> include the Signature Algorithm Identifier
attribute in the Group Controller Authentication Method
transform. In this case, the AUTH payload in the GIKE_UPDATE
messages <bcp14>MUST</bcp14> contain the Digital Signature
authentication method (value 14) and be formatted as defined
in <xref target="RFC7427" sectionFormat="of" section="3"/>. The
AlgorithmIdentifier ASN.1 object in the AUTH payload
<bcp14>MUST</bcp14> match the content of the Signature
Algorithm Identifier attribute in the Group Controller
Authentication Method transform. The Signature Algorithm
Identifier attribute is only meaningful for the Digital
Signature transform ID and <bcp14>MUST NOT</bcp14> be used
with other transform IDs.</t></dd>
</dl>
<t>
More authentication methods may be defined in the future.
</t> </t>
<t>The authentication method <bcp14>MUST NOT</bcp14> change as a r
<t> The authentication method <bcp14>MUST NOT</bcp14> change as a esult of rekey operations.
result of rekey operations.
This means that the Group Controller Authentication Method transfo rm <bcp14>MUST NOT</bcp14> appear in the rekey This means that the Group Controller Authentication Method transfo rm <bcp14>MUST NOT</bcp14> appear in the rekey
messages, it may only appear in the registration exchange (either GSA_AUTH or GSA_REGISTRATION). messages; it may only appear in the registration exchange (either GSA_AUTH or GSA_REGISTRATION).
</t> </t>
<t>The type of the Group Controller Authentication Method transfor
<t>The type of the Group Controller Authentication Method Transfor m is 14.
m is &lt;TBA by IANA&gt;.
</t> </t>
</section> </section>
<section anchor="wrapping_alg">
<section anchor="wrapping_alg" title="Key Wrap Algorithm Transform"> <name>Key Wrap Algorithm Transform</name>
<t>The Key Wrap Algorithm (KWA) transform is used to convey inform <t>The Key Wrap Algorithm (KWA) transform is used to convey inform
ation about an algorithm, ation about an algorithm
that is used for key wrapping in G-IKEv2. See <xref target="wrappe that is used for key wrapping in G-IKEv2. See <xref target="wrappe
d_key" /> for details. d_key"/> for details.
</t> </t>
<t> This document creates a new IKEv2 IANA registry for the key wr
<t> This document creates a new IKEv2 IANA registry for the key wr ap algorithms,
ap algorithms which has been initially populated as described in <xref target="I
which is initially filled as described in <xref target="IANA" />. ANA"/>.
In particular, the following entries are initially added. In particular, the following entries have been added:
</t> </t>
<figure> <table>
<preamble></preamble> <name></name>
<artwork align="center"><![CDATA[ <thead>
Key Wrap Algorithm Value <tr>
Reserved 0 <th>Key Wrap Algorithm</th>
KW_5649_128 1 <th>Value</th>
KW_5649_192 2 </tr>
KW_5649_256 3 </thead>
KW_ARX 4 <tbody>
]]></artwork> <tr>
</figure> <td>Reserved</td>
<td>0</td>
<t>These algorithms are defined as follows. </tr>
<list style="symbols"> <tr>
<t> KW_5649_128, KW_5649_192, KW_5649_256 -- Key wrap algorithm <td>KW_5649_128</td>
defined in <xref target="RFC5649" /> with 128-bit, 192-bit and 256-bit key respe <td>1</td>
ctively. </tr>
This key wrap algorithm is designed for use with AES block ciphe <tr>
r.</t> <td>KW_5649_192</td>
<t> KW_ARX -- The ARX-KW-8-2-4-GX key wrap algorithm defined in <td>2</td>
<xref target="ARX-KW" />. This key wrap algorithm is designed for use </tr>
with Chacha20 stream cipher.</t> <tr>
</list> <td>KW_5649_256</td>
<td>3</td>
</tr>
<tr>
<td>KW_ARX</td>
<td>4</td>
</tr>
</tbody>
</table>
<t>These algorithms are defined as follows:</t>
<dl spacing="normal" newline="true">
<dt>KW_5649_128, KW_5649_192, KW_5649_256:</dt><dd>The key wrap
algorithm defined in <xref target="RFC5649"/> with a 128-bit,
192-bit, and 256-bit key, respectively. This key wrap algorithm
is designed for use with AES block cipher.</dd>
<dt>KW_ARX:</dt><dd>The ARX-KW-8-2-4-GX key wrap algorithm
defined in <xref target="ARX-KW"/>. This key wrap algorithm is
designed for use with Chacha20 stream cipher.</dd>
</dl>
More key wrap algorithms may be defined in future. The requirement <t>More key wrap algorithms may be defined in the future. The
is that these algorithms <bcp14>MUST</bcp14> be able requirement is that these algorithms <bcp14>MUST</bcp14> be able
to wrap key material of size up to 256 bytes. to wrap key material of size up to 256 bytes.
</t> </t>
<t>The type of the Key Wrap Algorithm transform is 13.
<t>The type of the Key Wrap Algorithm transform is &lt;TBA by IANA
&gt;.
</t> </t>
</section> </section>
<section anchor="antireplay">
<section anchor="antireplay" title="Sequence Numbers Transform"> <name>Sequence Numbers Transform</name>
<t>The "Sequence Numbers (SN)" transform type is defined in <xref <t>The Sequence Numbers (SNs) transform type is defined in <xref t
target="I-D.ietf-ipsecme-ikev2-rename-esn" />. arget="RFC9827"/>.
This transform describes the properties of sequence numbers of IPs ec packets. There are currently two transform IDs This transform describes the properties of sequence numbers of IPs ec packets. There are currently two transform IDs
defined for this transform type: "32-bit Sequential Numbers" and " Partially Transmitted 64-bit Sequential Numbers" defined for this transform type: "32-bit Sequential Numbers" and " Partially Transmitted 64-bit Sequential Numbers"
that correspond to non-ESN and ESN cases from AH <xref target="RFC 4302" /> and ESP <xref target="RFC4303" /> specifications. that correspond to non-ESN and ESN cases from AH <xref target="RFC 4302"/> and ESP <xref target="RFC4303"/> specifications.
</t> </t>
<t>Transform ID "32-bit Sequential Numbers" <bcp14>SHOULD</bcp14>
<t> Transform ID "32-bit Sequential Numbers" <bcp14>SHOULD</bcp14> be used by the GCKS for
be used by the GCKS for
single-sender multicast Data-Security SAs utilizing protocols ESP or AH. single-sender multicast Data-Security SAs utilizing protocols ESP or AH.
</t> </t>
<t>Since both AH <xref target="RFC4302"/> and ESP <xref target="RF
<t>Since both AH <xref target="RFC4302" /> and ESP <xref target="R C4303"/> are defined in such a way that high-order 32 bits of extended sequence
FC4303" /> are defined in such a way, numbers are never transmitted, it makes using ESN in multicast Data-Security SAs
that high-order 32 bits of extended sequence numbers are never tra problematic because GMs that join the group long after it is creat
nsmitted, it makes using ESN in multicast Data-Security SAs ed will have to somehow learn the current high-order 32 bits
problematic, because GMs that join group long after it is created of ESN for each sender in the group. The algorithm for doing this
will have to somehow learn the current high order 32 bits described in AH <xref target="RFC4302"/>
of ESN for each sender in the group. The algorithm for doing this and ESP <xref target="RFC4303"/> is resource-consuming and is only
described in AH <xref target="RFC4302" /> suitable when a receiver is able to guess
and ESP <xref target="RFC4303" /> is resource-consuming and is onl
y suitable when a receiver is able to guess
the high-order 32 bits close enough to its real value, which is no t the case for multicast SAs. the high-order 32 bits close enough to its real value, which is no t the case for multicast SAs.
For this reason the "Partially Transmitted 64-bit Sequential Numbe rs" transform ID For this reason, the "Partially Transmitted 64-bit Sequential Numb ers" transform ID
<bcp14>MUST NOT</bcp14> be used for multicast Data-Security SAs ut ilizing protocols ESP or AH. <bcp14>MUST NOT</bcp14> be used for multicast Data-Security SAs ut ilizing protocols ESP or AH.
</t> </t>
<t> This document defines a new transform ID
for this transform type: 32-bit Unspecified Numbers (2).
<!-- [rfced] May we restructure the text below as follows for readability?
<t> This document defines a new transform ID "32-bit Unspecified N Current:
umbers" (&lt;TBA by IANA&gt;) This transform ID defines the following properties. Sequence numbers
for this transform type. This transform ID defines the following p are 32-bit in size and are transmitted in the Sequence Number field of AH and
roperties. ESP packets. The value of sequence numbers is not guaranteed to be unique fo
Sequence numbers are 32-bit in size and are transmitted in the Seq r
uence Number field of AH and ESP packets. the duration of an SA, thus they are not suitable for replay protection. Thi
The value of sequence numbers is not guaranteed to be unique for t s
he duration of an SA, thus they transform ID MUST be used by the GCKS in case of multi-sender multicast
are not suitable for replay protection. This transform ID <bcp14>M Data-Security SAs utilizing protocols ESP or AH to inform the GMs that the
UST</bcp14> be used by the GCKS in case of multi-sender replay protection is not expected to be possible. The GCKS MAY also use this
multicast Data-Security SAs utilizing protocols ESP or AH to infor transform ID for single-sender multicast Data-Security SAs if replay
m the GMs that the replay protection is not expected to be possible. protection is not needed (e.g. it is done on application level).
The GCKS <bcp14>MAY</bcp14> also use this transform ID for single-
sender multicast Data-Security SAs if replay Perhaps:
protection is not needed (e.g. it is done on application level). This transform ID defines the following properties:
* Sequence numbers are 32 bits in size and are transmitted in the Sequence
Number field of AH and ESP packets.
* The value of sequence numbers is not guaranteed to be unique for
the duration of an SA, thus they are not suitable for replay
protection.
* This transform ID MUST be used by the GCKS in the case of multi-sender
multicast Data-Security SAs utilizing protocols ESP or AH to inform
the GMs that the replay protection is not expected to be possible.
* The GCKS MAY also use this transform ID for single-sender multicast
Data-Security SAs if replay protection is not needed (e.g., it is done
on the application level).
-->
This transform ID defines the following properties. Sequence numbers are
32 bits in size and are transmitted in the Sequence Number field of AH and ESP
packets. The value of sequence numbers is not guaranteed to be unique for the
duration of an SA, thus they are not suitable for replay protection. This
transform ID <bcp14>MUST</bcp14> be used by the GCKS in case of multi-sender
multicast Data-Security SAs utilizing protocols ESP or AH to inform the GMs
that the replay protection is not expected to be possible. The GCKS
<bcp14>MAY</bcp14> also use this transform ID for single-sender multicast
Data-Security SAs if replay protection is not needed (e.g., it is done on
the application level).
</t> </t>
</section> </section>
</section> </section>
<section anchor="gsa_attr">
<section anchor="gsa_attr" title="GSA Attributes"> <name>GSA Attributes</name>
<t>GSA attributes are generally used to provide GMs with additional parameters <t>GSA attributes are generally used to provide GMs with additional parameters
for the GSA policy. Unlike security parameters distributed via trans forms, for the GSA policy. Unlike security parameters distributed via trans forms,
which are expected not to change over time (unless policy changes), which are expected not to change over time (unless the policy change s),
the parameters distributed via GSA attributes the parameters distributed via GSA attributes
may depend on the time the provision takes place, on the may depend on the time the provision takes place, on the
existence of others group SAs or on other conditions. existence of others group SAs, or on other conditions.
</t> </t>
<t>This document creates a new IKEv2 IANA registry for the types <t>This document creates a new IKEv2 IANA registry for the types
of the GSA attributes which is initially filled as described in <xre of GSA attributes, which has been initially populated as described i
f target="IANA" />. n <xref target="IANA"/>.
In particular, the following attributes are initially added. In particular, the following attributes have been added:
<figure>
<artwork align="center"><![CDATA[
GSA Attributes Value Format Multi-Valued Used in Protocol
Reserved 0
GSA_KEY_LIFETIME 1 TLV NO GIKE_UPDATE, AH, ESP
GSA_INITIAL_MESSAGE_ID 2 TLV NO GIKE_UPDATE
GSA_NEXT_SPI 3 TLV YES GIKE_UPDATE, AH, ESP
]]></artwork>
</figure>
The attributes follow the format defined in the IKEv2 <xref
target="RFC7296"></xref> section 3.3.5. The "Format" column
defines what attribute format is allowed: Type/Length/Value (TLV) or
Type/Value (TV).
The "Multi-Valued" column defines whether multiple instances of the
attribute can appear.
The "Used in Protocol" column lists the security protocols, for whic
h the attribute can be used.
</t> </t>
<section anchor="gsa_attr_key_lifetime" title="GSA_KEY_LIFETIME Attr <table>
ibute"> <name></name>
<thead>
<tr>
<th>GSA Attributes</th>
<th>Value</th>
<th>Format</th>
<th>Multi-Valued</th>
<th>Used in Protocol</th>
</tr>
</thead>
<tbody>
<tr>
<td>Reserved</td>
<td colspan="4">0</td>
</tr>
<tr>
<td>GSA_KEY_LIFETIME</td>
<td>1</td>
<td>TLV</td>
<td>NO</td>
<td>GIKE_UPDATE, AH, ESP</td>
</tr>
<tr>
<td>GSA_INITIAL_MESSAGE_ID</td>
<td>2</td>
<td>TLV</td>
<td>NO</td>
<td>GIKE_UPDATE</td>
</tr>
<tr>
<td>GSA_NEXT_SPI</td>
<td>3</td>
<td>TLV</td>
<td>YES</td>
<td>GIKE_UPDATE, AH, ESP</td>
</tr>
</tbody>
</table>
<t>
The attributes follow the format defined in IKEv2 (<xref
target="RFC7296" sectionFormat="of" section="3.3.5"/>). The
"Format" column defines what attribute format is allowed:
Type/Length/Value (TLV) or Type/Value (TV). The "Multi-Valued"
column defines whether multiple instances of the attribute can
appear. The "Used in Protocol" column lists the security
protocols, for which the attribute can be used.
</t>
<section anchor="gsa_attr_key_lifetime">
<name>GSA_KEY_LIFETIME Attribute</name>
<t>The GSA_KEY_LIFETIME attribute (1) specifies the maximum time f or <t>The GSA_KEY_LIFETIME attribute (1) specifies the maximum time f or
which the SA is valid. The value is a 4 octet unsigned integer in which the SA is valid. The value is a 4-octet unsigned integer in
a network byte order, specifying a valid time period in seconds. network byte order, specifying a valid time period in seconds.
When the lifetime expires, the group security association and all When the lifetime expires, the GSA and all associated keys <bcp14>
associated keys <bcp14>MUST</bcp14> be deleted. MUST</bcp14> be deleted.
The GCKS may delete the SA at any time before the end of the valid ity period. The GCKS may delete the SA at any time before the end of the valid ity period.
</t> </t>
<t>A single attribute of this type <bcp14>MUST</bcp14> be included into any GSA policy substructure <t>A single attribute of this type <bcp14>MUST</bcp14> be included into any GSA policy substructure
if multicast rekey is employed by the GCKS. This attribute <bcp14> SHOULD NOT</bcp14> be used if inband rekey if multicast rekey is employed by the GCKS. This attribute <bcp14> SHOULD NOT</bcp14> be used if inband rekey
(via the GSA_INBAND_REKEY exchange) is employed by the GCKS for th e GM. (via the GSA_INBAND_REKEY exchange) is employed by the GCKS for th e GM.
</t> </t>
</section> </section>
<section anchor="gsa_attr_initial_message_id">
<section anchor="gsa_attr_initial_message_id" title="GSA_INITIAL_MES <name>GSA_INITIAL_MESSAGE_ID Attribute</name>
SAGE_ID Attribute">
<t>The GSA_INITIAL_MESSAGE_ID attribute (2) defines the initial Me ssage ID <t>The GSA_INITIAL_MESSAGE_ID attribute (2) defines the initial Me ssage ID
to be used by the GCKS in the GSA_REKEY messages. The Message ID to be used by the GCKS in the GSA_REKEY messages. The Message ID
is a 4 octet unsigned integer in network byte order. is a 4-octet unsigned integer in network byte order.
</t> </t>
<t>A single attribute of this type is included into <t>A single attribute of this type is included into
the GSA KEK policy substructure if the initial Message ID of the R ekey SA is non-zero. the GSA KEK policy substructure if the initial Message ID of the R ekey SA is non-zero.
Note, that it is always the case if GMs join the group after some
multicast rekey operations <!--[rfced] May we rephrase this sentence as shown below for clarity
have already taken place, so in these cases this attribute will be (i.e., remove "in these cases" to reduce redundancy)? Note that
included into we included the lead-in sentence for context.
Lead-in sentence:
A single attribute of this type is included into the GSA KEK policy
substructure if the initial Message ID of the Rekey SA is non-zero.
Original:
Note, that it is always the case if GMs join the group after some
multicast rekey operations have already taken place, so in these
cases this attribute will be included into the GSA policy when the
GM is registered.
Perhaps:
Note that this is always the case if GMs join the group after some
multicast rekey operations have already taken place, so this
attribute will be included into the GSA policy when the GM is
registered.
-->
Note that it is always the case if GMs join the group after some m
ulticast rekey operations
have already taken place, so in these cases, this attribute will b
e included into
the GSA policy when the GM is registered. the GSA policy when the GM is registered.
</t> </t>
<t>This attribute <bcp14>MUST NOT</bcp14> be used if inband rekey (via the GSA_INBAND_REKEY exchange) is employed by the GCKS for the GM. <t>This attribute <bcp14>MUST NOT</bcp14> be used if inband rekey (via the GSA_INBAND_REKEY exchange) is employed by the GCKS for the GM.
</t> </t>
</section> </section>
<section anchor="gsa_attr_next_spi">
<section anchor="gsa_attr_next_spi" title="GSA_NEXT_SPI Attribute"> <name>GSA_NEXT_SPI Attribute</name>
<t>The optional GSA_NEXT_SPI attribute (3) contains SPI that the G <t>The optional GSA_NEXT_SPI attribute (3) contains the SPI that t
CKS reserved he GCKS reserved
for the next Rekey SA or Data-Security SAs replacing the current o nes. The length of the attribute data for the next Rekey SA or Data-Security SAs replacing the current o nes. The length of the attribute data
is determined by the SPI Size field in the GSA Policy substructure is determined by the SPI Size field in the GSA policy substructure
the attribute the attribute
resides in (see <xref target="gsa_policy" />), and the attribute d resides in (see <xref target="gsa_policy"/>), and the attribute da
ata contains ta contains the
SPI as it would appear on the network. Multiple attributes of this type <bcp14>MAY</bcp14> be included, SPI as it would appear on the network. Multiple attributes of this type <bcp14>MAY</bcp14> be included,
meaning that any of the supplied SPIs can be used in the replaceme nt group SA. meaning that any of the supplied SPIs can be used in the replaceme nt group SA.
</t> </t>
<!-- [rfced] We have rephrased the sentence below as follows for
clarity. Please let us know any objections.
<t>The GM <bcp14>MAY</bcp14> store these values and if later the G Original:
M starts receiving The GM MAY store these values and if later the GM starts receiving
messages with one of these SPIs without seeing a rekey message ove messages with one of these SPIs without seeing a rekey message over
r the current Rekey SA, the current Rekey SA, this may be used as an indication, that the
this may be used as an indication, that the rekey message got lost rekey message got lost on its way to this GM.
on its way to this GM.
In this case the GM <bcp14>SHOULD</bcp14> re-register to the group
.
</t>
<t>Note, that this method of detecting lost rekey messages can onl Current:
y be used The GM MAY store these values. Later on, if the GM starts receiving
by group receivers. Additionally there is no point to include this messages with one of these SPIs without seeing a rekey message over
attribute in the GSA_INBAND_REKEY messages, the current Rekey SA, then it may be used as an indication that
since they use reliable transport. Note also, that the GCKS is fre the rekey message got lost on its way to this GM.
e -->
<t>The GM <bcp14>MAY</bcp14> store these values. Later on, if the
GM starts receiving
messages with one of these SPIs without seeing a rekey message ove
r the current Rekey SA, then
it may be used as an indication that the rekey message got lost on
its way to this GM.
In this case, the GM <bcp14>SHOULD</bcp14> re-register to the grou
p.
</t>
<t>Note that this method of detecting lost rekey messages can only
be used
by group receivers. Additionally, there is no point to include thi
s attribute in the GSA_INBAND_REKEY messages
since they use reliable transport. Also note that the GCKS is free
to forget its promises and not to use the SPIs it sent in the GSA_ NEXT_SPI to forget its promises and not to use the SPIs it sent in the GSA_ NEXT_SPI
attributes before (e.g. in case of the GCKS is rebooted), so the G attributes before (e.g., in cases where the GCKS is rebooted), so
M must only treat the GM must only treat
these information as a "best effort" made by the GCKS to prepare f this information as a "best effort" made by the GCKS to prepare fo
or future rekeys. r future rekeys.
</t> </t>
<t>This attribute <bcp14>MUST NOT</bcp14> be used if inband rekey (via the GSA_INBAND_REKEY exchange) is employed by the GCKS for the GM. <t>This attribute <bcp14>MUST NOT</bcp14> be used if inband rekey (via the GSA_INBAND_REKEY exchange) is employed by the GCKS for the GM.
</t> </t>
</section> </section>
</section> </section>
</section> </section>
<section anchor="gw_policy">
<section title="Group-wide Policy Substructure" anchor="gw_policy"> <name>Group-Wide Policy Substructure</name>
<t>Group specific policy that does not belong to any SA policy can be <t>Group-specific policy that does not belong to any SA policy can be
distributed to distributed to
all group member using Group-wide (GW) policy substructure.</t> all group members using the Group-wide (GW) policy substructure.</t>
<t>The GW policy substructure is defined as follows:</t> <t>The GW policy substructure is defined as follows:</t>
<figure title="GW Policy Substructure Format" anchor="gwp_format"> <figure anchor="gwp_format">
<preamble></preamble> <name>GW Policy Substructure Format</name>
<artwork><![CDATA[ <artwork><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Protocol | RESERVED | Length | | Protocol | RESERVED | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
~ <GW Policy Attributes> ~ ~ <GW Policy Attributes> ~
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork> ]]></artwork>
<postamble></postamble>
</figure> </figure>
<t>The GW policy substructure fields are defined as follows:</t> <t>The GW policy substructure fields are defined as follows:</t>
<dl spacing="normal" newline="false">
<dt>Protocol (1 octet):</dt><dd><bcp14>MUST</bcp14> be zero. This
value is reserved (see <xref target="IANA"/>) and is never used for
any security protocol, so it is used here to indicate that this
substructure contains policy not related to any specific
protocol.</dd>
<!-- [rfced] Is the space in the parentheses intentional in the text
below, or should "( octet)" be updated as "(0 octet)" per the
description? Note that there are two instances (Sections 4.4.3
and 4.5.3).
<t><list style="symbols"> Original:
<t>Protocol (1 octet) -- <bcp14>MUST</bcp14> be zero. This value is * RESERVED ( octet) - MUST be zero on transmission, MUST be ignored
reserved in <xref target="IANA" /> and is never on receipt.
used for any security protocol, so it is used here to indicate that -->
this substructure contains policy <dt>RESERVED ( octet):</dt><dd><bcp14>MUST</bcp14> be zero on
not related to any specific protocol. transmission and <bcp14>MUST</bcp14> be ignored on receipt.</dd>
</t> <dt>Length (2 octets, unsigned integer):</dt><dd>Length of this
substructure including the header.</dd>
<dt>GW Policy Attributes (variable):</dt><dd>Contains policy
attributes associated with no specific SA. The following sections
describe possible attributes. Any or all attributes may be
optional depending on the group policy.</dd>
</dl>
<t>RESERVED ( octet) -- <bcp14>MUST</bcp14> be zero on transmission, <section anchor="gwp_attr">
<bcp14>MUST</bcp14> be ignored on receipt. <name>GW Policy Attributes</name>
<t>This document creates a new IKEv2 IANA registry for the types
of group-wide policy attributes, which has been initially populate
d as described in <xref target="IANA"/>.
In particular, the following attributes have been added:
</t> </t>
<t>Length (2 octets, unsigned integer) -- Length of this substructur <table>
e including the header. <name></name>
<thead>
<tr>
<th>GW Policy Attributes</th>
<th>Value</th>
<th>Format</th>
<th>Multi-Valued</th>
</tr>
</thead>
<tbody>
<tr>
<td>Reserved</td>
<td colspan="3">0</td>
</tr>
<tr>
<td>GWP_ATD</td>
<td>1</td>
<td>TV</td>
<td>NO</td>
</tr>
<tr>
<td>GWP_DTD</td>
<td>2</td>
<td>TV</td>
<td>NO</td>
</tr>
<tr>
<td>GWP_SENDER_ID_BITS</td>
<td>3</td>
<td>TV</td>
<td>NO</td>
</tr>
</tbody>
</table>
<t>The attributes follow the format defined in the IKEv2 (<xref
target="RFC7296" sectionFormat="of" section="3.3.5"/>). The
"Format" column defines what attribute format is allowed:
Type/Length/Value (TLV) or Type/Value (TV). The "Multi-Valued"
column defines whether multiple instances of the attribute can
appear.
</t> </t>
<section anchor="gwp_attr_atd_dtd">
<t>GW Policy Attributes (variable) -- Contains policy attributes ass <name>GWP_ATD and GWP_DTD Attributes</name>
ociated <t><xref target="RFC5374" sectionFormat="of"
with no specific SA. The following sections describe possible section="4.2.1"/> specifies a key rollover method that
attributes. Any or all attributes may be optional, depending on requires two values be provided to group members: Activation
the group policy.</t> Time Delay (ATD) and Deactivation Time Delay (DTD).
</list></t>
<section anchor="gwp_attr" title="GW Policy Attributes">
<t>This document creates a new IKEv2 IANA registry for the types
of the group-wide policy attributes which is initially filled as d
escribed in <xref target="IANA" />.
In particular, the following attributes are initially added.
<figure>
<artwork align="center"><![CDATA[
GW Policy Attributes Value Format Multi-Valued
Reserved 0
GWP_ATD 1 TV NO
GWP_DTD 2 TV NO
GWP_SENDER_ID_BITS 3 TV NO
]]></artwork>
</figure>
</t>
<t>The attributes follow the format defined in the IKEv2 <xref
target="RFC7296"></xref> section 3.3.5. The "Format" column
defines what attribute format is allowed: Type/Length/Value (TLV)
or Type/Value (TV).
The "Multi-Valued" column defines whether multiple instances of th
e attribute can appear.
</t> </t>
<t>The GWP_ATD attribute (1) allows a GCKS to set the
<section anchor="gwp_attr_atd_dtd" title="GWP_ATD And GWP_DTD Attr
ibutes">
<t>Section 4.2.1 of Multicast Extensions to the Security Archite
cture <xref target="RFC5374" /> specifies a key rollover method that
requires two values be provided to group members -- Activation T
ime Delay (ATD) and
Deactivation Time Delay (DTD).
</t>
<t>The GWP_ATD attribute (1) allows a GCKS to set the
Activation Time Delay for Data-Security SAs of the group. The AT D Activation Time Delay for Data-Security SAs of the group. The AT D
defines how long active members of the group (those who sends tr affic) defines how long active members of the group (those who sends tr affic)
should wait after receiving new SAs before staring sending traff should wait after receiving new SAs before sending traffic over
ic over them. them.
Note, that to achieve smooth rollover passive members of the gro Note that to achieve smooth rollover, passive members of the gro
up should up should
activate the SAs immediately once they receive them. activate the SAs immediately once they receive them.
</t> </t>
<t>The GWP_DTD attribute (2) allows the GCKS to set the
<t>The GWP_DTD attribute (2) allows the GCKS to set the DTD for previously distributed SAs. The
Deactivation Time Delay for previously distributed SAs. The
DTD defines how long after receiving a request to delete Data-Se curity SAs DTD defines how long after receiving a request to delete Data-Se curity SAs
passive group members should wait before actually deleting them. passive group members should wait before actually deleting them.
Note that active members of the group should stop sending traffi c over these old SAs Note that active members of the group should stop sending traffi c over these old SAs
once new replacement SAs are activated (after time specified in the GWP_ATD attribute). once new replacement SAs are activated (after time specified in the GWP_ATD attribute).
</t> </t>
<t>The GWP_ATD and GWP_DTD attributes contain a 16-bit unsigned in
<t>The GWP_ATD and GWP_DTD attributes contain 16 bit unsigned in teger in
teger in a network byte order, specifying the delay in seconds. These attri
network byte order, specifying the delay in seconds. These attri butes are <bcp14>OPTIONAL</bcp14>.
butes are OPTIONAL.
If one of them or both are not sent by the GCKS, then no corresp onding delay If one of them or both are not sent by the GCKS, then no corresp onding delay
should be employed. should be employed.
</t> </t>
</section> </section>
<section anchor="gwp_attr_sid_bits">
<section anchor="gwp_attr_sid_bits" title="GWP_SENDER_ID_BITS Attr <name>GWP_SENDER_ID_BITS Attribute</name>
ibute"> <t>The GWP_SENDER_ID_BITS attribute (3) declares how many bits
<t>The GWP_SENDER_ID_BITS attribute (3) declares how many bits o of the cipher nonce are taken to represent a Sender-ID
f the value. The bits are applied as the most significant bits of the
cipher nonce are taken to represent a Sender-ID value. The bits IV, as shown in Figure 1 of Using Counter Modes with ESP and AH
are to Protect Group Traffic <xref target="RFC6054"/> and as specified
applied as the most significant bits of the IV, as shown in Figu in <xref target="sid-usage"/>. Guidance for a GCKS choosing the
re 1 of value is provided in <xref target="RFC6054"
Using Counter Modes with ESP and AH to Protect Group Traffic <xr sectionFormat="of" section="3"/>. This value is
ef target="RFC6054"></xref> and specified in applied to each Sender-ID value distributed in the KD
<xref target="sid-usage"></xref>. Guidance for a GCKS choosing t payload.</t>
he <t>The GCKS <bcp14>MUST</bcp14> include this attribute if there ar
value is provided in Section 3 of Using Counter Modes with ESP a e more than one senders
nd AH to Protect Group Traffic
<xref target="RFC6054"></xref>. This value is applied to each Se
nder-ID value
distributed in the KD payload.</t>
<t>The GCKS <bcp14>MUST</bcp14> include this attribute if there
are more than one sender
in the group and any of the Data-Security SAs use counter-based in the group and any of the Data-Security SAs use counter-based
cipher mode. The number of Sender-ID bits is represented as 16 b it unsigned integer in cipher mode. The number of Sender-ID bits is represented as a 16 -bit unsigned integer in
network byte order. network byte order.
</t> </t>
</section> </section>
</section> </section>
</section> </section>
</section> </section>
<section anchor="kd_payload">
<section title="Key Download Payload" anchor="kd_payload"> <name>Key Download Payload</name>
<t>The Key Download (KD) payload contains the group keys for the SAs <t>The Key Download (KD) payload contains the group keys for the SAs
specified in the GSA Payload. specified in the GSA payload.
The Payload Type for the Key Download payload is fifty-two (52). The Payload Type for the Key Download payload is fifty-two (52).
</t> </t>
<figure title="Key Download Payload Format" anchor="kd_payload_format"> <figure anchor="kd_payload_format">
<preamble></preamble> <name>Key Download Payload Format</name>
<artwork><![CDATA[ <artwork><![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 | Length | | Next Payload |C| RESERVED | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
~ <Key Bags> ~ ~ <Key Bags> ~
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork> ]]></artwork>
<postamble></postamble>
</figure> </figure>
<t>The Key Download payload fields are defined as follows:</t> <t>The Key Download payload fields are defined as follows:</t>
<dl spacing="normal" newline="true">
<t><list style="symbols"> <!--[rfced] "Length" vs. "Payload Length"
<t>Next Payload, C, RESERVED, Payload Length fields comprise the IKEv2
Generic Payload Header and
are defined in Section 3.2. of <xref target="RFC7296"></xref>.</t>
<t>Key Bags (variable) -- A set of Key Bag substructures. a) We note that Figure 16 uses "Payload Length" whereas
</t> Figures 17, 18, 19, 20, and 21 use "Length". Is this
</list> variance okay, or is an update needed to Figure 16
</t> for consistency?
<section anchor="key_bag" title="Key Bags"> b) In Section 4.5, we note "Length" in Figure 19 but "Payload
<t> Keys are distributed in a substructures called key bags. Each key Length" in the description. We updated the description to
bag contains one or more keys reflect "Length" as shown below. If that is not correct,
that are logically related -- either these are keys for a single SA (D please let us know.
ata-Security SA or Rekey SA)
or these are keys for a single group member (in the latter case beside Original:
s keys the key bag may also Next Payload, C, RESERVED, and Payload Length fields:
Comprise the IKEv2 Generic Payload Header and are defined in
Section 3.2 of [RFC7296].
Current:
Next Payload, C, RESERVED, and Length fields:
Comprise the IKEv2 Generic Payload Header and are defined in
Section 3.2 of [RFC7296].
-->
<dt>Next Payload, C, RESERVED, and Length fields:</dt><dd>
Comprise the IKEv2 Generic Payload Header and are defined in <xref
target="RFC7296" sectionFormat="of" section="3.2"/>.</dd>
<dt>Key Bags (variable):</dt><dd>A set of Key Bag substructures.</dd>
</dl>
<section anchor="key_bag">
<name>Key Bags</name>
<t> Keys are distributed in substructures called key bags. Each key ba
g contains one or more keys
that are logically related -- these are keys for either a single SA (D
ata-Security SA or Rekey SA)
or a single group member (in the latter case, besides keys, the key ba
g may also
contain security parameters for this group member). contain security parameters for this group member).
</t> </t>
<!-- [rfced] May we rephrase the following text to simplify the
sentence structure? Also, does "the following SPI" refer to the
SPI in Figure 20?
<t> For this reason two types of key bags are defined -- Group Key Bag Original:
and Member Key Bag. The type is unambiguously For this reason two types of key bags are defined - Group Key Bag
determined by the first byte of the key bag substructure -- for member and Member Key Bag. The type is unambiguously determined by the first
key bag it is zero and for group byte of the key bag substructure - for member key bag it is zero and
key bag it represents the protocol number, which along with the follow for group key bag it represents the protocol number, which along with
ing SPI, identify the SA associated with the keys in the bag. the following SPI, identify the SA associated with the keys in the
bag.
Perhaps:
For this reason, two types of key bags are defined: Group Key Bag and
Member Key Bag. The type is unambiguously determined by the first byte of
the key bag substructure; for a Member Key Bag, it is zero. The Group Key
Gag is represented by the protocol number, and the protocol number along
with the SPI (see Figure 20) identify the SA that is associated with
the keys in the bag.
-->
<t>
For this reason, two types of key bags are defined: Group Key Bag
and Member Key Bag. The type is unambiguously determined by the first
byte of the key bag substructure. For a Member Key Bag, it is zero, and
for Group Key Bag, it represents the protocol number, which along with
the following SPI, identify the SA associated with the keys in the
bag.
</t> </t>
</section> </section>
<section anchor="group_key_bag">
<section anchor="group_key_bag" title="Group Key Bag Substructure"> <name>Group Key Bag Substructure</name>
<t>The Group Key Bag substructure contains SA key information. This ke y information is associated <t>The Group Key Bag substructure contains SA key information. This ke y information is associated
with some group SAs: either with Data-Security SAs or with group Rekey SA. with some group SAs: either with Data-Security SAs or with a group Rek ey SA.
</t> </t>
<figure title="Group Key Bag Substructure Format" anchor="group_key_ba <figure anchor="group_key_bag_format">
g_format"> <name>Group Key Bag Substructure Format</name>
<preamble></preamble> <artwork ><![CDATA[
<artwork align="center"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Protocol | SPI Size | Length | | Protocol | SPI Size | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
~ SPI ~ ~ SPI ~
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
~ <Group Key Bag Attributes> ~ ~ <Group Key Bag Attributes> ~
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork> ]]></artwork>
<postamble></postamble>
</figure> </figure>
<t><list style="symbols"> <dl spacing="normal" newline="true">
<t>Protocol (1 octet) -- Identifies the security protocol for this k <dt>Protocol (1 octet):</dt><dd>Identifies the security protocol
ey bag. for this key bag. The values are defined in the "IKEv2 Security
The values are defined in the IKEv2 Security Protocol Identifiers in Protocol Identifiers" registry in <xref target="IKEV2-IANA"/>. The v
<xref target="IKEV2-IANA" />. The valid values for this field are: alid
&lt;TBA&gt; (GIKE_UPDATE) for KEK Key packet and 2 (AH) or 3 (ESP) f values for this field are: 6 (GIKE_UPDATE) for KEK Key
or TEK key bag. packet and 2 (AH) or 3 (ESP) for TEK key bag.</dd>
</t> <dt>SPI Size (1 octet):</dt><dd>Size of the
SPI for the corresponding SA. SPI size depends on the security
<t>SPI Size (1 octet) -- Size of Security Parameter Index (SPI) for protocol. It is 16 octets for GIKE_UPDATE and 4 octets for AH and ES
the corresponding SA. P.</dd>
SPI size depends on the security protocol. For GIKE_UPDATE it is 16 <dt>Length (2 octets, unsigned integer):</dt><dd>Length of this subs
octets, while for AH and ESP it is 4 octets. tructure including the header.</dd>
</t> <dt>SPI (variable):</dt><dd>Security Parameter Index for the corresp
onding SA.
<t>Length (2 octets, unsigned integer) -- Length of this substructur
e including the header.
</t>
<t>SPI (variable) -- Security Parameter Index for the corresponding
SA.
The size of this field is determined by the SPI Size field. The size of this field is determined by the SPI Size field.
In case of GIKE_UPDATE the SPI is the IKEv2 Header SPI pair where th e In the case of GIKE_UPDATE, the SPI is the IKEv2 Header SPI pair whe re the
first 8 octets become the "IKE SA Initiator's SPI" field in the first 8 octets become the "IKE SA Initiator's SPI" field in the
G-IKEv2 rekey message IKEv2 HDR, and the second 8 octets become G-IKEv2 rekey message IKEv2 HDR, and the second 8 octets become
the "IKE SA Responder's SPI" in the same HDR. the "IKE SA Responder's SPI" in the same HDR. </dd>
</t> <dt>Group Key Bag Attributes (variable):</dt><dd>Contains Key
information for the corresponding SA.</dd>
<t>Group Key Bag Attributes (variable) -- Contains Key </dl>
information for the corresponding SA.
</t>
</list>
</t>
<t>This document creates a new IKEv2 IANA registry for the types <t>This document creates a new IKEv2 IANA registry for the types
of the Group Key Bag attributes which is initially filled as described of Group Key Bag attributes, which has been initially populated as des
in <xref target="IANA" />. cribed in <xref target="IANA"/>.
In particular, the following attributes are initially added. In particular, the following attributes have been added:
</t>
<figure> <!-- [rfced] Please review Table 7 and let us know if the format appears
<artwork align="center"><![CDATA[ as intended. Specifically, are the "Multi-Valued" and "Used in Protocol"
Group Key Bag columns correctly formatted?
Attributes Value Format Multi-Valued Used in Protocol -->
Reserved 0 <table>
SA_KEY 1 TLV YES* GIKE_UPDATE <name></name>
NO AH, ESP <thead>
]]></artwork> <tr>
</figure> <th>Group Key Bag Attributes</th>
<th>Value</th>
<th>Format</th>
<th>Multi-Valued</th>
<th>Used in Protocol</th>
</tr>
</thead>
<tbody>
<tr>
<td>Reserved</td>
<td colspan="4">0</td>
</tr>
<tr>
<td>SA_KEY</td>
<td>1</td>
<td>TLV</td>
<td>YES*<br/>NO</td>
<td>GIKE_UPDATE<br/>AH, ESP</td>
</tr>
</tbody>
</table>
(*) Multiple SA_KEY attributes may only appear for the GIKE_UPDATE pro <t>Notes:</t>
tocol <dl spacing="normal" newline="false">
<dt>(*):</dt><dd>Multiple SA_KEY attributes may only appear for the GIK
E_UPDATE protocol
in the GSA_REKEY exchange if the GCKS uses the group key management in the GSA_REKEY exchange if the GCKS uses the group key management
method that allows excluding GMs from the group (like LKH). method that allows excluding GMs from the group (like LKH).</dd>
</t> </dl>
<t>The attributes follow the format defined in IKEv2 (<xref
<t>The attributes follow the format defined in the IKEv2 <xref target="RFC7296" sectionFormat="of" section="3.3.5"/>). The
target="RFC7296"></xref> section 3.3.5. The "Format" column "Format" column defines what attribute format is allowed:
defines what attribute format is allowed: Type/Length/Value (TLV) or T Type/Length/Value (TLV) or Type/Value (TV). The "Multi-Valued"
ype/Value (TV). column defines whether multiple instances of the attribute can
The "Multi-Valued" column defines whether multiple instances of the at appear. The "Used in Protocol" column lists the security protocols,
tribute can appear. for which the attribute can be used.
The "Used in Protocol" column lists the security protocols, for which
the attribute can be used.
</t> </t>
<section anchor="gkd_attr_group_key">
<section anchor="gkd_attr_group_key" title="SA_KEY Attribute"> <name>SA_KEY Attribute</name>
<t>The SA_KEY attribute (1) contains a keying material for the corre sponding SA. <t>The SA_KEY attribute (1) contains a keying material for the corre sponding SA.
The content of the attribute is formatted according to The content of the attribute is formatted according to
<xref target="wrapped_key" /> with a precondition that the Key ID fi eld <bcp14>MUST</bcp14> always be zero. <xref target="wrapped_key"/> with a precondition that the Key ID fie ld <bcp14>MUST</bcp14> always be zero.
The size of the keying material <bcp14>MUST</bcp14> be equal to the total size of the keys needed to be taken The size of the keying material <bcp14>MUST</bcp14> be equal to the total size of the keys needed to be taken
from this keying material (see <xref target="group_sa_keys" />) for the corresponding SA. from this keying material (see <xref target="group_sa_keys"/>) for t he corresponding SA.
</t> </t>
<t>If the key bag is for a Data-Security SA (AH or ESP protocols), <t>If the key bag is for a Data-Security SA (AH or ESP protocols),
then exactly one SA_KEY attribute <bcp14>MUST</bcp14> be present wit h both then exactly one SA_KEY attribute <bcp14>MUST</bcp14> be present wit h both
Key ID and KWK ID fields set to zero. Key ID and KWK ID fields set to zero.
</t> </t>
<!-- [rfced] FYI - We rephrased the text below for better sentence
flow. Please let us know of any objections.
<t>If the key bag is for a Rekey SA (GIKE_UPDATE protocol), Original:
then in the GSA_AUTH, GSA_REGISTRATION and GSA_INBAND_REKEY exchange If the key bag is for a Rekey SA (GIKE_UPDATE protocol), then in the
s GSA_AUTH, GSA_REGISTRATION and GSA_INBAND_REKEY exchanges exactly one SA_KEY
exactly one SA_KEY attribute <bcp14>MUST</bcp14> be present. attribute MUST be present.
In the GSA_REKEY exchange at least one SA_KEY attribute <bcp14>MUST<
/bcp14> be present, Current:
If the key bag is for a Rekey SA (GIKE_UPDATE protocol), then exactly
one SA_KEY attribute MUST be present in the GSA_AUTH, GSA_REGISTRATION, and
GSA_INBAND_REKEY exchanges.
-->
<t>If the key bag is for a Rekey SA (GIKE_UPDATE protocol),
then exactly one SA_KEY attribute <bcp14>MUST</bcp14> be present in the GSA_AUTH
, GSA_REGISTRATION, and GSA_INBAND_REKEY exchanges.
In the GSA_REKEY exchange, at least one SA_KEY attribute <bcp14>MUST
</bcp14> be present,
and more attributes <bcp14>MAY</bcp14> be present (depending on the key management method employed by the GCKS). and more attributes <bcp14>MAY</bcp14> be present (depending on the key management method employed by the GCKS).
</t> </t>
</section> </section>
</section> </section>
<section anchor="member_key_bag">
<section anchor="member_key_bag" title="Member Key Bag Substructure" > <name>Member Key Bag Substructure</name>
<t>The Member Key Bag substructure contains keys and other <t>The Member Key Bag substructure contains keys and other
parameters that are specific for a member of the group and are not parameters that are specific for a member of the group and are not
associated with any particular group SA. associated with any particular group SA.
</t> </t>
<figure title="Member Key Bag Substructure Format" anchor="mkd_key_bag <figure anchor="mkd_key_bag">
"> <name>Member Key Bag Substructure Format</name>
<preamble></preamble>
<artwork><![CDATA[ <artwork><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Protocol | RESERVED | Length | | Protocol | RESERVED | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
~ <Member Key Bag Attributes> ~ ~ <Member Key Bag Attributes> ~
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork> ]]></artwork>
<postamble></postamble>
</figure> </figure>
<t>The Member Key Bag substructure fields are defined as follows:</t> <t>The Member Key Bag substructure fields are defined as follows:</t>
<dl spacing="normal" newline="true">
<dt>Protocol (1 octet):</dt><dd><bcp14>MUST</bcp14> be zero. This
value is reserved (see <xref target="IANA"/>) and is never used for
any security protocol, so it is used here to indicate that this
key bag is not associated with any particular SA.</dd>
<dt>RESERVED ( octet):</dt><dd><bcp14>MUST</bcp14> be zero on
transmission and <bcp14>MUST</bcp14> be ignored on receipt.</dd>
<dt>Length (2 octets, unsigned integer):</dt><dd>Length of this
substructure including the header.</dd>
<dt>Member Key Bag Attributes (variable):</dt><dd>Contains Key
information and other parameters exclusively for a particular
member of the group.</dd>
</dl>
<t><list style="symbols"> <t>
<t>Protocol (1 octet) -- <bcp14>MUST</bcp14> be zero. This value is The Member Key Bag substructure contains sensitive information for a s
reserved in <xref target="IANA" /> and is never ingle GM. For this reason,
used for any security protocol, so it is used here to indicate that
this key bag is not associated
with any particular SA.
</t>
<t>RESERVED ( octet) -- <bcp14>MUST</bcp14> be zero on transmission
, <bcp14>MUST</bcp14> be ignored on receipt.
</t>
<t>Length (2 octets, unsigned integer) -- Length of this substructur
e including the header.
</t>
<t>Member Key Bag Attributes (variable) -- Contains Key
information and other parameters exclusively for a particular member
of the group.
</t>
</list>
The member Key Bag substructure contains sensitive information for a s
ingle GM, for this reason
it <bcp14>MUST NOT</bcp14> be sent in GSA_REKEY messages and <bcp14>MU ST</bcp14> only be sent via unicast it <bcp14>MUST NOT</bcp14> be sent in GSA_REKEY messages and <bcp14>MU ST</bcp14> only be sent via unicast
SA at the time the GM registers to the group (in either GSA_AUTH or GS A_REGISTRATION exchanges). SA at the time the GM registers to the group (in either GSA_AUTH or GS A_REGISTRATION exchanges).
</t> </t>
<t>This document creates a new IKEv2 IANA registry for the types <t>This document creates a new IKEv2 IANA registry for the types
of the Member Key Bag attributes which is initially filled as describe of Member Key Bag attributes, which has been initially populated as de
d in <xref target="IANA" />. scribed in <xref target="IANA"/>.
In particular, the following attributes are initially added. In particular, the following attributes have been added:
<figure>
<artwork align="center"><![CDATA[
Member Key Bag
Attributes Value Format Multi-Valued
Reserved 0
WRAP_KEY 1 TLV YES
AUTH_KEY 2 TLV NO
GM_SENDER_ID 3 TLV YES
]]></artwork>
</figure>
</t> </t>
<t>The attributes follow the format defined in the IKEv2 <xref <table>
target="RFC7296"></xref> section 3.3.5. The "Format" column <name></name>
defines what attribute format is allowed: Type/Length/Value (TLV) or T <thead>
ype/Value (TV). <tr>
The "Multi-Valued" column defines whether multiple instances of the at <th>Member Key Bag Attributes</th>
tribute can appear. <th>Value</th>
</t> <th>Format</th>
<th>Multi-Valued</th>
</tr>
</thead>
<tbody>
<tr>
<td>Reserved</td>
<td colspan="3">0</td>
</tr>
<tr>
<td>WRAP_KEY</td>
<td>1</td>
<td>TLV</td>
<td>YES</td>
</tr>
<tr>
<td>AUTH_KEY</td>
<td>2</td>
<td>TLV</td>
<td>NO</td>
</tr>
<tr>
<td>GM_SENDER_ID</td>
<td>3</td>
<td>TLV</td>
<td>YES</td>
</tr>
</tbody>
</table>
<section anchor="mkd_attr_kwk" title="WRAP_KEY Attribute"> <t>The attributes follow the format defined in the IKEv2 (<xref
target="RFC7296" sectionFormat="of" section="3.3.5"/>). The
"Format" column defines what attribute format is allowed:
Type/Length/Value (TLV) or Type/Value (TV). The "Multi-Valued"
column defines whether multiple instances of the attribute can
appear.
</t>
<section anchor="mkd_attr_kwk">
<name>WRAP_KEY Attribute</name>
<t>The WRAP_KEY attribute (1) contains a key that is used <t>The WRAP_KEY attribute (1) contains a key that is used
to encrypt other keys. One or more these to encrypt other keys. One or more of these
attributes are sent to GMs if the GCKS key management method attributes are sent to GMs if the GCKS key management method
relies on some key hierarchy (e.g. LKH). relies on some key hierarchy (e.g., LKH).
This attribute <bcp14>MUST NOT</bcp14> be used if inband rekey (via the GSA_INBAND_REKEY exchange) is employed by the GCKS for the GM. This attribute <bcp14>MUST NOT</bcp14> be used if inband rekey (via the GSA_INBAND_REKEY exchange) is employed by the GCKS for the GM.
</t> </t>
<t>The content of the attribute has a format defined in <xref target
<t>The content of the attribute has a format defined in <xref target ="wrapped_key"/>
="wrapped_key" />
with a precondition that the Key ID field <bcp14>MUST NOT</bcp14> be zero. with a precondition that the Key ID field <bcp14>MUST NOT</bcp14> be zero.
The algorithm associated with the key is defined by the Key Wrap Alg orithm transform The algorithm associated with the key is defined by the Key Wrap Alg orithm transform
for the SA the WRAP_KEY attributes was sent in. for the SA the WRAP_KEY attributes was sent in.
The size of the attribute data <bcp14>MUST</bcp14> be equal to the k ey size for this key wrap algorithm. The size of the attribute data <bcp14>MUST</bcp14> be equal to the k ey size for this key wrap algorithm.
</t> </t>
<t>Multiple instances of the WRAP_KEY attributes <bcp14>MAY</bcp14> be present in the key bag. <t>Multiple instances of the WRAP_KEY attributes <bcp14>MAY</bcp14> be present in the key bag.
</t> </t>
</section> </section>
<section anchor="mkd_attr_auth_key">
<section anchor="mkd_attr_auth_key" title="AUTH_KEY Attribute"> <name>AUTH_KEY Attribute</name>
<t>The AUTH_KEY attribute (2) contains the key that is used to authe nticate <t>The AUTH_KEY attribute (2) contains the key that is used to authe nticate
the GSA_REKEY messages. The content of the attribute depends on the authentication the GSA_REKEY messages. The content of the attribute depends on the authentication
method the GCKS specified in the Group Controller Authentication Met hod transform in the GSA payload. method the GCKS specified in the Group Controller Authentication Met hod transform in the GSA payload.
<list style="symbols"> </t>
<t>If digital signatures are used for the GSA_REKEY message authen <!-- [rfced] In Section 4.5.3.2, since there is only one list item in
tication this unordered list, would it be appropriate to remove the bullet
then the content of the AUTH_KEY attribute is a public key used and make it into a paragraph?
for digital signature authentication. The public key <bcp14>MUST</
bcp14> be represented Original:
as DER-encoded ASN.1 object SubjectPublicKeyInfo, defined in Secti * If digital signatures are used for the GSA_REKEY message
on authentication then the content of the AUTH_KEY attribute is a
4.1.2.7 of Internet X.509 Public Key Infrastructure Certificate an public key used for digital signature authentication. The public
d CRL Profile <xref target="RFC5280" />. key MUST be represented as DER-encoded ASN.1 object
The algorithm field inside the SubjectPublicKeyInfo object <bcp14> SubjectPublicKeyInfo, defined in Section 4.1.2.7 of "Internet
MUST</bcp14> match the X.509 Public Key Infrastructure Certificate and Certificate
content of the Signature Algorithm Identifier attribute in the Gro Revocation List (CRL) Profile" [RFC5280]. The algorithm field
up Controller Authentication Method transform. inside the SubjectPublicKeyInfo object MUST match the content of
When the id-RSASSA-PSS object identifier appears in the algorithm the Signature Algorithm Identifier attribute in the Group
field of the SubjectPublicKeyInfo object, Controller Authentication Method transform. When the id-RSASSA-
then the parameters field <bcp14>MUST</bcp14> include the RSASSA-P PSS object identifier appears in the algorithm field of the
SS-params structure. SubjectPublicKeyInfo object, then the parameters field MUST
</t> include the RSASSA-PSS-params structure.
</list>
Perhaps:
If digital signatures are used for the GSA_REKEY message
authentication, then the content of the AUTH_KEY attribute is a
public key used for digital signature authentication. The public
key MUST be represented as DER-encoded ASN.1 object
SubjectPublicKeyInfo, defined in Section 4.1.2.7 of
[RFC5280]. The algorithm field inside the SubjectPublicKeyInfo
object MUST match the content of the Signature Algorithm
Identifier attribute in the Group Controller Authentication Method
transform. When the id-RSASSA-PSS object identifier appears in
the algorithm field of the SubjectPublicKeyInfo object, then the
parameters field MUST include the RSASSA-PSS-params structure.
-->
<ul spacing="normal">
<li>
<t>If digital signatures are used for the GSA_REKEY message
authentication, then the content of the AUTH_KEY attribute is a
public key used for digital signature authentication. The
public key <bcp14>MUST</bcp14> be represented as DER-encoded
ASN.1 object SubjectPublicKeyInfo, defined in <xref
target="RFC5280" sectionFormat="of" section="4.1.2.7"/>. The alg
orithm field inside the
SubjectPublicKeyInfo object <bcp14>MUST</bcp14> match the
content of the Signature Algorithm Identifier attribute in the
Group Controller Authentication Method transform. When the
id-RSASSA-PSS object identifier appears in the algorithm field
of the SubjectPublicKeyInfo object, then the parameters field
<bcp14>MUST</bcp14> include the RSASSA-PSS-params structure.
</t>
</li>
</ul>
<t>
Multiple instances of the AUTH_KEY attributes <bcp14>MUST NOT</bcp14 > be sent. Multiple instances of the AUTH_KEY attributes <bcp14>MUST NOT</bcp14 > be sent.
</t> </t>
</section> </section>
<section anchor="mkd_attr_gm_sid">
<section anchor="mkd_attr_gm_sid" title="GM_SENDER_ID Attribute"> <name>GM_SENDER_ID Attribute</name>
<t>The GM_SENDER_ID attribute (3) is used to download one or more Se nder-ID <t>The GM_SENDER_ID attribute (3) is used to download one or more Se nder-ID
values for the exclusive use of a group member. One or more of this attributes <bcp14>MUST</bcp14> be values for the exclusive use of a group member. One or more of thes e attributes <bcp14>MUST</bcp14> be
sent by the GCKS if the GM informed the GCKS that it would be a send er (by including sent by the GCKS if the GM informed the GCKS that it would be a send er (by including
the GROUP_SENDER notification to the request) and at least one of th the GROUP_SENDER notification to the request) and if at least one of
e Data-Security SAs the Data-Security SAs
included in the GSA payload uses counter-based mode of encryption. included in the GSA payload uses a counter-based mode of encryption.
</t> </t>
<t>If the GMs have requested multiple Sender-ID values in the GROUP_
<t>If the GMs has requested multiple Sender-ID values in the GROUP_S SENDER notification, then the GCKS <bcp14>SHOULD</bcp14>
ENDER notification, then the GCKS <bcp14>SHOULD</bcp14>
provide it with the requested number of Sender-IDs by sending multip le instances of the GM_SENDER_ID provide it with the requested number of Sender-IDs by sending multip le instances of the GM_SENDER_ID
attribute. The GCKS <bcp14>MAY</bcp14> send fewer values than reques ted by the GM (e.g. if it is running out of Sender-IDs), attribute. The GCKS <bcp14>MAY</bcp14> send fewer values than reques ted by the GM (e.g., if it is running out of Sender-IDs),
but it <bcp14>MUST NOT</bcp14> send more than requested. but it <bcp14>MUST NOT</bcp14> send more than requested.
</t> </t>
<t>This attribute <bcp14>MUST NOT</bcp14> appear in the rekey operat ions (in the GSA_REKEY or GSA_INBAND_REKEY exchanges). <t>This attribute <bcp14>MUST NOT</bcp14> appear in the rekey operat ions (in the GSA_REKEY or GSA_INBAND_REKEY exchanges).
</t> </t>
</section> </section>
</section> </section>
<section anchor="wrapped_key">
<section anchor="wrapped_key" title="Key Wrapping"> <name>Key Wrapping</name>
<t>Symmetric keys in G-IKEv2 are never sent in clear inside G-IKEv2 me ssages. <t>Symmetric keys in G-IKEv2 are never sent in clear inside G-IKEv2 me ssages.
They are always protected with other symmetric keys. This protection i s called key wrapping. They are always protected with other symmetric keys. This protection i s called key wrapping.
Algorithms used for key wrapping are usually based on generic encrypti on algorithms, Algorithms used for key wrapping are usually based on generic encrypti on algorithms,
but their mode of operation is optimized for protecting short high-ent ropy data with minimal additional overhead. but their mode of operation is optimized for protecting short high-ent ropy data with minimal additional overhead.
While in general key wrap algorithms can be generic, in practice they While key wrap algorithms can be generic in general, they are often ti
are often tied to the underlying ed to the underlying
encryption algorithms. For example, AES Key Wrap with Padding Algorith encryption algorithms in practice. For example, AES Key Wrap with Padd
m <xref target="RFC5649" /> defines key wrapping using AES, ing Algorithm <xref target="RFC5649"/> defines key wrapping using AES,
and Key Wrapping Constructions using SipHash and ChaCha <xref target=" and Key Wrapping Constructions using SipHash and ChaCha <xref target="
ARX-KW" /> defines key wrapping using Chacha20. ARX-KW"/> define key wrapping using Chacha20.
</t> </t>
<t>In G-IKEv2, the key wrap algorithm <bcp14>MUST</bcp14> be negotiate
<t> In G-IKEv2 the key wrap algorithm <bcp14>MUST</bcp14> be negotiate d in the IKE_SA_INIT
d in the IKE_SA_INIT exchange so that the GCKS is able to send encrypted keys to the GM in
exchange, so that the GCKS be able to send encrypted keys to the GM in the GSA_AUTH exchange.
the GSA_AUTH exchange.
In addition, if the GCKS plans to use the multicast Rekey SA for group rekey, then it <bcp14>MUST</bcp14> In addition, if the GCKS plans to use the multicast Rekey SA for group rekey, then it <bcp14>MUST</bcp14>
specify the key wrap algorithm in the GSA payload. Note that key wrap algorithms specify the key wrap algorithm in the GSA payload. Note that key wrap algorithms
for these cases <bcp14>MAY</bcp14> be different - for the unicast SA t for these cases <bcp14>MAY</bcp14> be different. For the unicast SA, t
he key wrap algorithms is negotiated he key wrap algorithm is negotiated
between the GM and the GCKS, while for the multicast Rekey SA the key between the GM and the GCKS, while for the multicast Rekey SA, the key
wrap algorithm wrap algorithm
is provided by the GCKS to the group members as part of the group poli cy. is provided by the GCKS to the group members as part of the group poli cy.
If SAg payload is included in the GSA_AUTH request, then it <bcp14>MUS If an SAg payload is included in the GSA_AUTH request, then it <bcp14>
T</bcp14> indicate which key wrap algorithms are supported by the GM. MUST</bcp14> indicate which key wrap algorithms are supported by the GM.
In all these cases the key wrap algorithm is specified in a Key Wrap A In all these cases, the key wrap algorithm is specified in a Key Wrap
lgorithm transform <xref target="wrapping_alg"/>. Algorithm transform (see <xref target="wrapping_alg"/>).
</t> </t>
<t> The format of the wrapped key is shown in <xref target="key_format
<t> The format of the wrapped key is shown in <xref target="key_format "/>.
" />.
</t> </t>
<figure title="Wrapped Key Format" anchor="key_format"> <figure anchor="key_format">
<preamble></preamble> <name>Wrapped Key Format</name>
<artwork align="center"><![CDATA[ <artwork ><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Key ID | | Key ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| KWK ID | | KWK ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
~ Encrypted Key ~ ~ Encrypted Key ~
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork> ]]></artwork>
<postamble></postamble>
</figure> </figure>
<t>The Wrapped Key fields are defined as follows:</t> <t>The Wrapped Key fields are defined as follows:</t>
<dl spacing="normal" newline="true">
<t><list style="symbols"> <dt>Key ID (4 octets):</dt><dd>ID of the encrypted key. The value
<t>Key ID (4 octets) -- ID of the encrypted key. The value zero mea zero means that the encrypted key contains SA keys (in the form of
ns that the encrypted key keying material; see <xref target="group_sa_keys"/>). Otherwise,
contains SA keys (in the form of keying material, see <xref target= it contains some intermediate key.</dd>
"group_sa_keys" />)), otherwise it contains some intermediate key.</t> <dt>KWK ID (4 octets):</dt><dd>ID of the key that was used to
<t>KWK ID (4 octets) -- ID of the key that was used to encrypt key encrypt the key with a specified Key ID. The value zero means that
with specified Key ID. the
The value zero means that the default KWK was used to encrypt the k default KWK was used to encrypt the key. Otherwise, some
ey, otherwise some intermediate intermediate key was used.</dd>
key was used.</t> <dt>Encrypted Key (variable):</dt><dd>The encrypted key bits. These
<t>Encrypted Key (variable) -- The encrypted key bits. These bits c bits comprise either a single encrypted key or a result of
omprise either a single encryption of a concatenation of keys (key material) for several
encrypted key or a result of encryption of a concatenation of keys algorithms. The format of this field is determined by the key
(key material) for several algorithms. wrap algorithm for the SA the wrapped key is sent over.</dd>
The format of this fields is determined by the key wrap algorithm f </dl>
or the SA the wrapped key is sent over.
</t>
</list>
</t>
</section> </section>
</section> </section>
<section anchor="delete">
<section anchor="delete" title="Delete Payload"> <name>Delete Payload</name>
<t> Delete payload is used in G-IKEv2 when the GCKS wants to <t>Delete payload is used in G-IKEv2 when the GCKS wants to
delete Data-Security and Rekey SAs. The interpretation of the Protocol delete Data-Security and Rekey SAs. The interpretation of the Protocol
field in the Delete payload is extended, so that zero protocol field in the Delete payload is extended so that zero protocol
indicates deletion of whole Group SA (i.e. all Data-Security SAs and Rek indicates deletion of whole Group SA (i.e., all Data-Security SAs and th
ey SA). e Rekey SA).
See <xref target="deletion" /> for detail. See <xref target="deletion"/> for detail.
</t> </t>
</section> </section>
<section anchor="notify">
<section anchor="notify" title="Notify Payload"> <name>Notify Payload</name>
<t>G-IKEv2 uses the same Notify payload as specified in <xref <t>G-IKEv2 uses the same Notify payload as specified in <xref target="RF
target="RFC7296"></xref>, section 3.10. C7296" sectionFormat="of" section="3.10"/>.
</t> </t>
<t>There are additional Notify Message types introduced by G-IKEv2 to <t>There are additional Notify Message types introduced by G-IKEv2 to
communicate error conditions and status (see <xref target="IANA" />). communicate error conditions and status (see <xref target="IANA"/>).
</t> </t>
<section anchor="inv_gr_id">
<section anchor="inv_gr_id" title="INVALID_GROUP_ID Notification"> <name>INVALID_GROUP_ID Notification</name>
<t>INVALID_GROUP_ID (45) is a new error type notification that indicat es that <t>INVALID_GROUP_ID (45) is a new error type notification that indicat es that
the group ID sent during the registration process is invalid. the group ID sent during the registration process is invalid.
The Protocol ID and SPI Size fields in the Notify payload <bcp14>MUST< /bcp14> be zero. The Protocol ID and SPI Size fields in the Notify payload <bcp14>MUST< /bcp14> be zero.
There is no data associated with this notification and the content of the There is no data associated with this notification and the content of the
Notification Data field <bcp14>MUST</bcp14> be ignored on receipt. Notification Data field <bcp14>MUST</bcp14> be ignored on receipt.
</t> </t>
</section> </section>
<section anchor="autz_failed">
<section anchor="autz_failed" title="AUTHORIZATION_FAILED Notification"> <name>AUTHORIZATION_FAILED Notification</name>
<t>AUTHORIZATION_FAILED (46) is a new error type notification that is sent in <t>AUTHORIZATION_FAILED (46) is a new error type notification that is sent in
the response to a GSA_AUTH or GSA_REGISTRATION message when authorizat ion failed. the response to a GSA_AUTH or GSA_REGISTRATION message when authorizat ion failed.
The Protocol ID and SPI Size fields in the Notify payload <bcp14>MUST< /bcp14> be zero. The Protocol ID and SPI Size fields in the Notify payload <bcp14>MUST< /bcp14> be zero.
There is no data associated with this notification and the content of the There is no data associated with this notification and the content of the
Notification Data field <bcp14>MUST</bcp14> be ignored on receipt. Notification Data field <bcp14>MUST</bcp14> be ignored on receipt.
</t> </t>
</section> </section>
<section anchor="reg_failed">
<section anchor="reg_failed" title="REGISTRATION_FAILED Notification"> <name>REGISTRATION_FAILED Notification</name>
<t>REGISTRATION_FAILED (&lt;TBA&gt;) is a new error type notification <t>REGISTRATION_FAILED (49) is a new error type notification that is s
that is sent ent
by the GCKS when the GM registration request cannot be satisfied by the GCKS when the GM registration request cannot be satisfied
for the reasons not related to this particular GM, for example if for reasons not related to this particular GM, e.g., if
the capacity of the group is exceeded. the capacity of the group is exceeded.
The Protocol ID and SPI Size fields in the Notify payload <bcp14>MUST< /bcp14> be zero. The Protocol ID and SPI Size fields in the Notify payload <bcp14>MUST< /bcp14> be zero.
There is no data associated with this notification and the content of the There is no data associated with this notification and the content of the
Notification Data field <bcp14>MUST</bcp14> be ignored on receipt. Notification Data field <bcp14>MUST</bcp14> be ignored on receipt.
</t> </t>
</section> </section>
<section anchor="sender">
<section anchor="sender" title="GROUP_SENDER Notification"> <name>GROUP_SENDER Notification</name>
<t>GROUP_SENDER (16429) is a new status type notification that is sent in <t>GROUP_SENDER (16429) is a new status type notification that is sent in
the GSA_AUTH or the GSA_REGISTRATION exchanges to indicate that the GM the GSA_AUTH or the GSA_REGISTRATION exchanges to indicate that the GM
intends to be sender of data traffic. The data includes a count of intends to be sender of data traffic. The data includes a count of
how many Sender-ID values the GM desires. The count <bcp14>MUST</bcp14 > be 4 octets long how many Sender-ID values the GM desires. The count <bcp14>MUST</bcp14 > be 4 octets long
and contain the big endian representation of the number of and contain the big-endian representation of the number of
requested Sender-IDs. The Protocol ID and SPI Size fields in the Notif y payload <bcp14>MUST</bcp14> be zero. requested Sender-IDs. The Protocol ID and SPI Size fields in the Notif y payload <bcp14>MUST</bcp14> be zero.
</t> </t>
</section> </section>
</section> </section>
<section>
<section title="Authentication Payload"> <name>Authentication Payload</name>
<t>G-IKEv2 uses the same Authentication payload as specified in <xref <t>G-IKEv2 uses the same Authentication payload as specified in <xref
target="RFC7296"></xref>, section 3.8, to authenticate the rekey message target="RFC7296" sectionFormat="of" section="3.8"/> to
. authenticate the rekey message. However, if it is used in the
However, if it is used in the GSA_REKEY messages the content of the payl GSA_REKEY messages, the content of the payload is computed differently
oad as described in <xref target="gsa_rekey_auth"/>.
is computed differently, as described in <xref target="gsa_rekey_auth" /
>.
</t> </t>
</section> </section>
</section> </section>
<section anchor="restrictions">
<section anchor="restrictions" title="Using G-IKEv2 Attributes"> <name>Using G-IKEv2 Attributes</name>
<t>G-IKEv2 defines a number of attributes, that are used to convey informa <t>G-IKEv2 defines a number of attributes that are used to convey informat
tion ion
from GCKS to GMs. There are some restrictions on where and when these attr from the GCKS to GMs. There are some restrictions on where and when these
ibutes attributes
can appear in G-IKEv2 messages, which are defined when the attributes are introduced. can appear in G-IKEv2 messages, which are defined when the attributes are introduced.
For convenience these restrictions are summarized in <xref target="mcast_a For convenience, these restrictions are summarized in <xref target="mcast_
ttr" /> (for attr"/> (for
multicast rekey operations) and <xref target="inband_attr" /> (for inband multicast rekey operations) and <xref target="inband_attr"/> (for inband r
rekey operations) below. ekey operations) below.
</t>
<t>The following notations are used:
</t> </t>
<dl newline="false" spacing="normal" indent="5">
<dt>S</dt>
<dd>
A single attribute of this type <bcp14>MUST</bcp14> be present.
</dd>
<dt>M</dt>
<dd>
Multiple attributes of this type <bcp14>MAY</bcp14> be present.
</dd>
<dt>[]</dt>
<dd>
Attribute is <bcp14>OPTIONAL</bcp14>.
</dd>
<dt>-</dt>
<dd>
Attribute <bcp14>MUST NOT</bcp14> be present.
</dd>
</dl>
<t>
<!-- [rfced] The following sentence is hard to parse. Would either of
the following proposals improve readability and retain the
sentence's original meaning?
<t>The following notation is used: Original:
<list style="hanging" hangIndent="6" > Note, that the restrictions are defined per a substructure
<t hangText = "S" > corresponding attributes are defined for and not per whole G-IKEv2
A single attribute of this type <bcp14>MUST</bcp14> be present message.
</t>
<t hangText = "M" > Perhaps A:
Multiple attributes of this type <bcp14>MAY</bcp14> be present Note that the restrictions are defined per a substructure
</t> corresponding to the attributes that are defined and not
<t hangText = "[]" > per a whole G-IKEv2 message.
Attribute is <bcp14>OPTIONAL</bcp14>
</t> or
<t hangText = "-" > Perhaps B:
Attribute <bcp14>MUST NOT</bcp14> be present Note that the restrictions are defined per a substructure for which
</t> corresponding attributes are defined and not per a whole
</list> G-IKEv2 message.
Note, that the restrictions are defined per a substructure corresponding a -->
ttributes Note that the restrictions are defined per a substructure corresponding at
tributes
are defined for and not per whole G-IKEv2 message. are defined for and not per whole G-IKEv2 message.
</t> </t>
<table anchor="mcast_attr"> <table anchor="mcast_attr">
<name>Attributes in G-IKEv2 exchanges with multicast rekey operations</n ame> <name>Attributes in G-IKEv2 Exchanges with Multicast Rekey Operations</n ame>
<thead> <thead>
<tr> <tr>
<th>Attributes</th> <th>Attributes</th>
<th align="center">GSA_AUTH GSA_REGISTRATION</th> <th >GSA_AUTH GSA_REGISTRATION</th>
<th align="center">GSA_REKEY</th> <th >GSA_REKEY</th>
<th>Notes</th> <th>Notes</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<th colspan="4" align="center">GSA Attributes (<xref target="gsa_att r" />)</th> <th colspan="4" >GSA Attributes (<xref target="gsa_attr"/>)</th>
</tr> </tr>
<tr> <tr>
<td>GSA_KEY_LIFETIME</td> <td>GSA_KEY_LIFETIME</td>
<td align="center">S</td> <td >S</td>
<td align="center">S</td> <td >S</td>
<td align="center"></td> <td />
</tr> </tr>
<tr> <tr>
<td>GSA_INITIAL_MESSAGE_ID</td> <td>GSA_INITIAL_MESSAGE_ID</td>
<td align="center">[S]</td> <td >[S]</td>
<td align="center">[S]</td> <td >[S]</td>
<td align="center"></td> <td />
</tr> </tr>
<tr> <tr>
<td>GSA_NEXT_SPI</td> <td>GSA_NEXT_SPI</td>
<td align="center">[M]</td> <td >[M]</td>
<td align="center">[M]</td> <td >[M]</td>
<td align="center"></td> <td />
</tr> </tr>
<tr> <tr>
<th colspan="4" align="center">GW Policy Attributes (<xref target="g wp_attr" />)</th> <th colspan="4" >GW Policy Attributes (<xref target="gwp_attr"/>)</t h>
</tr> </tr>
<tr> <tr>
<td>GWP_ATD</td> <td>GWP_ATD</td>
<td align="center">[S]</td> <td >[S]</td>
<td align="center">[S]</td> <td >[S]</td>
<td align="center"></td> <td />
</tr> </tr>
<tr> <tr>
<td>GWP_DTD</td> <td>GWP_DTD</td>
<td align="center">[S]</td> <td >[S]</td>
<td align="center">[S]</td> <td >[S]</td>
<td align="center"></td> <td />
</tr> </tr>
<tr> <tr>
<td>GWP_SENDER_ID_BITS</td> <td>GWP_SENDER_ID_BITS</td>
<td align="center">S</td> <td >S</td>
<td align="center">-</td> <td >-</td>
<td align="center">1</td> <td >1</td>
</tr> </tr>
<tr> <tr>
<th colspan="4" align="center">Key Bag Attributes (<xref target="key _bag" />)</th> <th colspan="4" >Key Bag Attributes (<xref target="key_bag"/>)</th>
</tr> </tr>
<tr> <tr>
<td>SA_KEY</td> <td>SA_KEY</td>
<td align="center">S</td> <td >S</td>
<td align="center">S[M]</td> <td >S[M]</td>
<td align="center">2</td> <td >2</td>
</tr> </tr>
<tr> <tr>
<td>WRAP_KEY</td> <td>WRAP_KEY</td>
<td align="center">[M]</td> <td >[M]</td>
<td align="center">[M]</td> <td >[M]</td>
<td align="center">3</td> <td >3</td>
</tr> </tr>
<tr> <tr>
<td>AUTH_KEY</td> <td>AUTH_KEY</td>
<td align="center">S</td> <td >S</td>
<td align="center">[S]</td> <td >[S]</td>
<td align="center">4</td> <td >4</td>
</tr> </tr>
<tr> <tr>
<td>GM_SENDER_ID</td> <td>GM_SENDER_ID</td>
<td align="center">S[M]</td> <td >S[M]</td>
<td align="center">-</td> <td >-</td>
<td align="center">1</td> <td >1</td>
</tr> </tr>
</tbody> </tbody>
<tfoot>
<tr>
<td colspan="4">
<t>
Notes:
<list style="hanging" hangIndent="6" >
<t hangText = "(1)" >
The GWP_SENDER_ID_BITS attribute <bcp14>MUST</bcp14> be pres
ent if the GCKS policy includes at least one
cipher in counter mode of operation and the GM included the
GROUP_SENDER notify into the registration request.
Otherwise it <bcp14>MUST NOT</bcp14> be present. At least on
e GM_SENDER_ID attribute <bcp14>MUST</bcp14> be present
in the former case (and more <bcp14>MAY</bcp14> be present i
f the GM requested more Sender-IDs)
and it <bcp14>MUST NOT</bcp14> be present in the latter case
.
</t>
<t hangText="(2)" >
For a Data-Security SA exactly one SA_KEY attribute <bcp14>M
UST</bcp14> be present.
For a Rekey SA one SA_KEY attribute <bcp14>MUST</bcp14> be p
resent in all cases and
more these attributes <bcp14>MAY</bcp14> be present in GSA_R
EKEY exchange.
</t>
<t hangText = "(3)" >
The WRAP_KEY attributes <bcp14>MUST</bcp14> be present if th
e GCKS employs key management
method that relies on key tree (like LKH).
</t>
<t hangText = "(4)" >
The AUTH_KEY attribute <bcp14>MUST</bcp14> be present in the
GSA_AUTH / GSA_REGISTRATION exchanges
if the GCKS employs authentication method of rekey operation
s based on digital signatures and <bcp14>MUST NOT</bcp14> be present
if implicit authentication is employed. The AUTH_KEY attribu
te <bcp14>MUST</bcp14> be present
in the GSA_REKEY exchange if the GCKS employs authentication
method
based on digital signatures and wants to change the public k
ey for the following multicast rekey
operations.
</t>
</list>
</t>
</td>
</tr>
</tfoot>
</table> </table>
<t>Notes:</t>
<dl newline="false" spacing="normal" indent="6">
<dt>(1):</dt>
<dd>The GWP_SENDER_ID_BITS attribute <bcp14>MUST</bcp14> be present
if the GCKS policy includes at least one cipher in counter mode of
operation and if the GM included the GROUP_SENDER notify into the
registration request. Otherwise, it <bcp14>MUST NOT</bcp14> be
present. At least one GM_SENDER_ID attribute <bcp14>MUST</bcp14> be
present in the former case (and more <bcp14>MAY</bcp14> be present if
the GM requested more Sender-IDs), and it <bcp14>MUST NOT</bcp14> be
present in the latter case.</dd>
<dt>(2):</dt>
<!--[rfced] How may we update this sentence to clarify "and more these
attributes MAY be present"? Perhaps "one or more SA_KEY
attributes MAY be present in a GSA_REKEY exchange"?
Current:
For a Data-Security SA, exactly one SA_KEY attribute MUST be
present. For a Rekey SA, one SA_KEY attribute MUST be present in all
cases and more these attributes MAY be present in a GSA_REKEY exchange.
Perhaps:
For a Data-Security SA, exactly one SA_KEY attribute MUST be
present. For a Rekey SA, one SA_KEY attribute MUST be present in all
cases and one or more SA_KEY attributes MAY be present in a GSA_REKEY
exchange.
-->
<dd>For a Data-Security SA, exactly one SA_KEY attribute
<bcp14>MUST</bcp14> be present. For a Rekey SA, one SA_KEY attribute
<bcp14>MUST</bcp14> be present in all cases and more these attributes
<bcp14>MAY</bcp14> be present in a GSA_REKEY exchange.</dd>
<dt>(3):</dt>
<dd>The WRAP_KEY attribute <bcp14>MUST</bcp14> be present if the
GCKS employs a key management method that relies on a key tree (like LKH
).</dd>
<dt>(4):</dt>
<dd>The AUTH_KEY attribute <bcp14>MUST</bcp14> be present in the
GSA_AUTH and GSA_REGISTRATION exchanges if the GCKS employs
an authentication method of rekey operations based on digital signatures
and <bcp14>MUST NOT</bcp14> be present if implicit authentication is
employed. The AUTH_KEY attribute <bcp14>MUST</bcp14> be present in the
GSA_REKEY exchange if the GCKS employs an authentication method based on
digital signatures and wants to change the public key for the
following multicast rekey operations.</dd>
</dl>
<table anchor="inband_attr"> <table anchor="inband_attr">
<name>Attributes in G-IKEv2 exchanges with inband rekey operations</name > <name>Attributes in G-IKEv2 Exchanges with Inband Rekey Operations</name >
<thead> <thead>
<tr> <tr>
<th>Attributes</th> <th>Attributes</th>
<th align="center">GSA_AUTH GSA_REGISTRATION</th> <th >GSA_AUTH GSA_REGISTRATION</th>
<th align="center">GSA_INBAND_REKEY</th> <th >GSA_INBAND_REKEY</th>
<th>Notes</th> <th>Notes</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<th colspan="4" align="center">GSA Attributes (<xref target="gsa_att r" />)</th> <th colspan="4" >GSA Attributes (<xref target="gsa_attr"/>)</th>
</tr> </tr>
<tr> <tr>
<td>GSA_KEY_LIFETIME</td> <td>GSA_KEY_LIFETIME</td>
<td align="center">[S]</td> <td >[S]</td>
<td align="center">[S]</td> <td >[S]</td>
<td align="center"></td> <td />
</tr> </tr>
<tr> <tr>
<td>GSA_INITIAL_MESSAGE_ID</td> <td>GSA_INITIAL_MESSAGE_ID</td>
<td align="center">-</td> <td >-</td>
<td align="center">-</td> <td >-</td>
<td align="center"></td> <td />
</tr> </tr>
<tr> <tr>
<td>GSA_NEXT_SPI</td> <td>GSA_NEXT_SPI</td>
<td align="center">-</td> <td >-</td>
<td align="center">-</td> <td >-</td>
<td align="center"></td> <td />
</tr> </tr>
<tr> <tr>
<th colspan="4" align="center">GW Policy Attributes (<xref target="g wp_attr" />)</th> <th colspan="4" >GW Policy Attributes (<xref target="gwp_attr"/>)</t h>
</tr> </tr>
<tr> <tr>
<td>GWP_ATD</td> <td>GWP_ATD</td>
<td align="center">[S]</td> <td >[S]</td>
<td align="center">[S]</td> <td >[S]</td>
<td align="center"></td> <td />
</tr> </tr>
<tr> <tr>
<td>GWP_DTD</td> <td>GWP_DTD</td>
<td align="center">[S]</td> <td >[S]</td>
<td align="center">[S]</td> <td >[S]</td>
<td align="center"></td> <td />
</tr> </tr>
<tr> <tr>
<td>GWP_SENDER_ID_BITS</td> <td>GWP_SENDER_ID_BITS</td>
<td align="center">S</td> <td >S</td>
<td align="center">-</td> <td >-</td>
<td align="center">1</td> <td >1</td>
</tr> </tr>
<tr> <tr>
<th colspan="4" align="center">Key Bag Attributes (<xref target="key _bag" />)</th> <th colspan="4" >Key Bag Attributes (<xref target="key_bag"/>)</th>
</tr> </tr>
<tr> <tr>
<td>SA_KEY</td> <td>SA_KEY</td>
<td align="center">S</td> <td >S</td>
<td align="center">S</td> <td >S</td>
<td align="center"></td> <td />
</tr> </tr>
<tr> <tr>
<td>WRAP_KEY</td> <td>WRAP_KEY</td>
<td align="center">-</td> <td >-</td>
<td align="center">-</td> <td >-</td>
<td align="center"></td> <td />
</tr> </tr>
<tr> <tr>
<td>AUTH_KEY</td> <td>AUTH_KEY</td>
<td align="center">-</td> <td >-</td>
<td align="center">-</td> <td >-</td>
<td align="center"></td> <td />
</tr> </tr>
<tr> <tr>
<td>GM_SENDER_ID</td> <td>GM_SENDER_ID</td>
<td align="center">S[M]</td> <td >S[M]</td>
<td align="center">-</td> <td >-</td>
<td align="center">1</td> <td >1</td>
</tr> </tr>
</tbody> </tbody>
<tfoot>
<tr>
<td colspan="4">
<t>
Notes:
<list style="hanging" hangIndent="6" >
<t hangText = "(1)" >
The GWP_SENDER_ID_BITS attribute <bcp14>MUST</bcp14> be pr
esent if the GCKS policy includes at least one
cipher in counter mode of operation and the GM included th
e GROUP_SENDER notify into the registration request.
Otherwise it <bcp14>MUST NOT</bcp14> be present. At least
one GM_SENDER_ID attribute <bcp14>MUST</bcp14> be present
in the former case (and more <bcp14>MAY</bcp14> be present
if the GM requested more Sender-IDs)
and it <bcp14>MUST NOT</bcp14> be present in the latter ca
se.
</t>
</list>
</t>
</td>
</tr>
</tfoot>
</table> </table>
</section> <t>Notes:</t>
<dl newline="false" spacing="normal" indent="6">
<dt>(1):</dt>
<dd>The GWP_SENDER_ID_BITS attribute <bcp14>MUST</bcp14> be present if
the GCKS policy includes at least one cipher in counter mode of
operation and the GM included the GROUP_SENDER notify into the
registration request. Otherwise, it <bcp14>MUST NOT</bcp14> be
present. At least one GM_SENDER_ID attribute <bcp14>MUST</bcp14> be
present in the former case (and more <bcp14>MAY</bcp14> be present if
the GM requested more Sender-IDs), and it <bcp14>MUST NOT</bcp14> be
present in the latter case.</dd>
</dl>
<section title="Interaction with IKEv2 and ESP Extensions" anchor="ike_ext" </section>
> <section anchor="ike_ext">
<t>A number of IKEv2 and ESP extensions is defined that can be used to ext <name>Interaction with IKEv2 and ESP Extensions</name>
end <t>A number of IKEv2 and ESP extensions are defined that can be used to ex
tend
protocol functionality. G-IKEv2 is compatible with most of them. protocol functionality. G-IKEv2 is compatible with most of them.
In particular, EAP authentication defined in <xref target="RFC7296" /> can In particular, EAP authentication defined in <xref target="RFC7296"/> can
be used be used
to establish registration IKE SA, as well as EAP-only authentication <xref to establish registration IKE SA, as well as EAP-only authentication <xref
target="RFC5998" /> and target="RFC5998"/> and
Secure Password authentication <xref target="RFC6467" />. secure password authentication <xref target="RFC6467"/>.
G-IKEv2 is compatible with and can use IKEv2 Redirect Mechanism <xref targ G-IKEv2 is compatible with and can use IKEv2 Redirect Mechanism <xref targ
et="RFC5685" /> and et="RFC5685"/> and
IKEv2 Session Resumption <xref target="RFC5723"></xref>. IKEv2 Session Resumption <xref target="RFC5723"/>.
G-IKEv2 is also compatible with Multiple Key Exchanges in IKEv2 G-IKEv2 is also compatible with Multiple Key Exchanges in the IKEv2
framework, defined in <xref target="RFC9370" />. framework, as defined in <xref target="RFC9370"/>.
</t> </t>
<t>The above list of compatible IKEv2 extensions is not exhaustive. Howeve
<t>The above list of compatible IKEv2 extensions is not exhaustive, howeve r, some IKEv2
r some IKEv2
extensions require special handling if used in G-IKEv2. extensions require special handling if used in G-IKEv2.
</t> </t>
<section>
<section title="Implicit IV for Counter-Based Ciphers in ESP"> <name>Implicit IV for Counter-Based Ciphers in ESP</name>
<t> Using implicit IV for counter-based encryption modes in ESP is defin <t> Using implicit IV for counter-based encryption modes in ESP is defin
ed in <xref target="RFC8750" />. ed in <xref target="RFC8750"/>.
This extension relies on the uniqueness of ESP sequence numbers. Thus, i t cannot be used for multi-sender This extension relies on the uniqueness of ESP sequence numbers. Thus, i t cannot be used for multi-sender
multicast SAs. However, it is possible to use implicit IV extension for a single-sender multicast ESP SA. multicast SAs. However, it is possible to use implicit IV extension for a single-sender multicast ESP SA.
Note, that while implicit IVs can be used with ESN, using ESN is prohibi Note that while implicit IVs can be used with ESN, using ESN is prohibit
ted ed
in multicast SAs (see <xref target="antireplay" />). in multicast SAs (see <xref target="antireplay"/>).
</t> </t>
</section> </section>
<section>
<section title="Mixing Preshared Keys in IKEv2 for Post-quantum Security"> <name>Mixing Preshared Keys in IKEv2 for Post-Quantum Security</name>
<t> G-IKEv2 can take advantage of the protection provided by <t>G-IKEv2 can take advantage of the protection provided by
Postquantum Preshared Keys (PPK) for IKEv2 <xref Post-quantum Preshared Keys (PPKs) for IKEv2 <xref target="RFC8784"/>. H
target="RFC8784"></xref>. However, the use of owever, the use of
PPK leaves the initial IKE SA susceptible to quantum PPKs leaves the initial IKE SA susceptible to quantum
computer (QC) attacks. Group SA keys are protected with computer (QC) attacks. Group SA keys are protected with
the default KWK (GSK_w), which is derived from SK_d and thus the default KWK (GSK_w), which is derived from SK_d and thus
cannot be broken even by attacker equipped with a QC. cannot be broken even by an attacker equipped with a QC.
However, other data sent over the initial IKE SA may However, other data sent over the initial IKE SA may
be susceptible to an attacker equipped with a QC of a sufficient size. S uch an attacker can store all the traffic be susceptible to an attacker equipped with a QC of a sufficient size. S uch an attacker can store all the traffic
until it obtains such a QC and then decrypt it (Store Now Decrypt Later until it obtains such a QC and then decrypt it (i.e., Store Now Decrypt
attack). Later attack).
See Section 6 of <xref target="RFC8784" /> for details. See <xref target="RFC8784" sectionFormat="of" section="6"/> for details.
</t> </t>
<t>While the group keys are protected with PPK and thus are immune to QC , GCKS implementations that care about other data sent over initial IKE SA <t>While the group keys are protected with PPK and thus are immune to QC , GCKS implementations that care about other data sent over initial IKE SA
<bcp14>MUST</bcp14> rely on IKEv2 extensions that protect even initial I KE SA against QC <bcp14>MUST</bcp14> rely on IKEv2 extensions that protect even initial I KE SA against QC
(like <xref target="I-D.ietf-ipsecme-ikev2-qr-alt" />). (like <xref target="I-D.ietf-ipsecme-ikev2-qr-alt"/>).
</t> </t>
</section> </section>
<section>
<section title="Aggregation and Fragmentation Mode for ESP"> <name>Aggregation and Fragmentation Mode for ESP</name>
<t> Aggregation and fragmentation mode for ESP is defined in <xref targe <t>Aggregation and fragmentation mode for ESP is defined in <xref target
t="RFC9347" />. This mode allows IP packets to ="RFC9347"/>. This mode allows IP packets to
be split over several ESP packets, or several IP packets to be aggregate be split over several ESP packets or several IP packets to be aggregated
d in a single ESP packet. in a single ESP packet.
This mode can only be used with ESP tunnel mode and relies on monotonica lly increasing sequence numbers This mode can only be used with ESP tunnel mode and relies on monotonica lly increasing sequence numbers
in the incoming packets. Thus, it is impossible to use this mode for mul ti-sender multicast SAs. in the incoming packets. Thus, it is impossible to use this mode for mul ti-sender multicast SAs.
Since multicast Data-Security SAs are unidirectional, the congestion con trol feature of aggregation and fragmentation mode cannot be used. Since multicast Data-Security SAs are unidirectional, the congestion con trol feature of aggregation and fragmentation mode cannot be used.
</t> </t>
<t> It is possible to use the aggregation and fragmentation mode without congestion control for a single-sender multicast ESP SA created in tunnel mode. <t> It is possible to use the aggregation and fragmentation mode without congestion control for a single-sender multicast ESP SA created in tunnel mode.
GMs supporting this mode can send the USE_AGGFRAG notification in the re gistration request along with the SAg payload. GMs supporting this mode can send the USE_AGGFRAG notification in the re gistration request along with the SAg payload.
If the Data-Security SA(s) to be installed on GMs use the aggregation an d fragmentation mode, the GCKS would indicate it by including If the Data-Security SA(s) to be installed on GMs uses the aggregation a nd fragmentation mode, the GCKS would indicate it by including
the USE_AGGFRAG notification along with the GSA payload in its response. the USE_AGGFRAG notification along with the GSA payload in its response.
</t> </t>
</section> </section>
</section> </section>
<section anchor="gdoi_ext">
<section title="GDOI Protocol Extensions" anchor="gdoi_ext"> <name>GDOI Protocol Extensions</name>
<t> Few extensions were defined for GDOI protocol <xref target="RFC6407" <t> Few extensions were defined for the GDOI protocol <xref target="RFC640
/>, like 7"/>, like
GDOI Support for IEC 62351 Security Services <xref target="RFC8052" /> o GDOI Support for IEC 62351 Security Services <xref target="RFC8052"/> or
r GDOI GROUPKEY-PUSH Acknowledgement Message <xref target="RFC8263" />. the GDOI GROUPKEY-PUSH Acknowledgement Message <xref target="RFC8263"/>.
It is expected that these extensions will be redefined for G-IKEv2 in se parate documents, if needed. It is expected that these extensions will be redefined for G-IKEv2 in se parate documents, if needed.
</t> </t>
</section> </section>
<section>
<section title="Security Considerations"> <name>Security Considerations</name>
<t> When an entity joins the group and becomes a group member, it has to <t> When an entity joins the group and becomes a group member, it has to
trust the GCKS that only authorized entities are admitted to the group and trust that the GCKS only authorized entities that are admitted to the grou
has to trust other group members that they will not leak the information s p and
hared within the group. has to trust that other group members will not leak the information shared
within the group.
</t> </t>
<section>
<section title="GSA Registration and Secure Channel"> <name>GSA Registration and Secure Channel</name>
<t>G-IKEv2 registration exchange uses IKEv2 IKE_SA_INIT protocols, <t>G-IKEv2 registration exchange uses IKEv2 IKE_SA_INIT protocols,
inheriting all the security considerations documented in the Section 5 o inheriting all the security considerations documented in <xref target="R
f <xref target="RFC7296"/>, FC7296" sectionFormat="of" section="5"/>,
including authentication, confidentiality, protection against man-in-the including authentication, confidentiality, protection against man-in-the
-middle, -middle attacks,
protection against replay/reflection attacks, and denial of service protection against replay/reflection attacks, and denial-of-service
protection. The GSA_AUTH and GSA_REGISTRATION exchanges also take protection. The GSA_AUTH and GSA_REGISTRATION exchanges also take
advantage of those protections. In addition, G-IKEv2 brings in the advantage of those protections. In addition, G-IKEv2 brings in the
capability to authorize a particular group member regardless of capability to authorize a particular group member regardless of
whether they have the IKEv2 credentials.</t> whether they have the IKEv2 credentials.</t>
</section> </section>
<section>
<section title="GSA Maintenance Channel"> <name>GSA Maintenance Channel</name>
<t>The GSA maintenance channel is cryptographically and integrity <t>The GSA maintenance channel is cryptographically and integrity
protected using the cryptographic algorithm and key negotiated in the protected using the cryptographic algorithm and key negotiated in the
GSA member registration exchange.</t> GSA member registration exchange.</t>
<section>
<section title="Authentication/Authorization"> <name>Authentication/Authorization</name>
<t>The authentication key is distributed during the GM registration, <t>The authentication key is distributed during the GM registration
and the receiver of the rekey message uses that key to verify the mess age came and the receiver of the rekey message uses that key to verify the mess age came
from the authorized GCKS. An implicit authentication can also be used, from the authorized GCKS.
in which case the ability of the GM to decrypt and to verify ICV
<!--[rfced] How may we clarify this sentence? Is the sender proven to
be a member of the group when the GM "decrypts and verifies the
ICV"?
Original:
An implicit authentication can also be used, in which case,
the ability of the GM to decrypt and to verify ICV of the
received message proved that a sender of the message is a
member of the group.
Perhaps:
An implicit authentication can also be used, in which case
the GM decrypts and verifies the ICV of the received
message to prove that a sender of the message is a
member of the group.
-->
An implicit authentication can also be used,
in which case, the ability of the GM to decrypt and to verify ICV
of the received message proved that a sender of the message is a membe r of the group. of the received message proved that a sender of the message is a membe r of the group.
However, implicit authentication doesn't provide source origin authent ication, so the GM cannot be sure However, implicit authentication doesn't provide source origin authent ication, so the GM cannot be sure
that the message came from the GCKS. For this reason using implicit that the message came from the GCKS. For this reason, using implicit
authentication is <bcp14>NOT RECOMMENDED</bcp14> authentication is <bcp14>NOT RECOMMENDED</bcp14>
unless used with a small group of trusted parties. unless used with a small group of trusted parties.
</t> </t>
</section> </section>
<section>
<section title="Confidentiality"> <name>Confidentiality</name>
<t>Confidentiality is provided by distributing a confidentiality key <t>Confidentiality is provided by distributing a confidentiality key
as part of the GSA member registration exchange.</t> as part of the GSA member registration exchange.</t>
</section> </section>
<section>
<section title="Man-in-the-Middle Attack Protection"> <name>Man-in-the-Middle Attack Protection</name>
<t>GSA maintenance channel is integrity protected by using a digital <t>The GSA maintenance channel is integrity protected by using a digit
al
signature.</t> signature.</t>
</section> </section>
<section>
<section title="Replay/Reflection Attack Protection"> <name>Replay/Reflection Attack Protection</name>
<t>The GSA_REKEY message includes a monotonically increasing <t>The GSA_REKEY message includes a monotonically increasing
sequence number to protect against replay and reflection attacks. A sequence number to protect against replay and reflection attacks. A
group member will recognize a replayed message by comparing the group member will recognize a replayed message by comparing the
Message ID number to that of the last received rekey message, any Message ID number to that of the last received rekey message. Any
rekey message containing a Message ID number less than or equal to rekey message containing a Message ID number less than or equal to
the last received value <bcp14>MUST</bcp14> be discarded. Implementati ons should the last received value <bcp14>MUST</bcp14> be discarded. Implementati ons should
keep a record of recently received GSA rekey messages for this keep a record of recently received GSA rekey messages for this
comparison.</t> comparison.</t>
<t>The strict role separation between the GCKS and the GMs and, as a c onsequence, <t>The strict role separation between the GCKS and the GMs and, as a c onsequence,
the limitation for Rekey SA to be outbound/inbound only, helps to prev ent reflection attack. the limitation for a Rekey SA to be outbound/inbound only, helps to pr event reflection attack.
</t> </t>
</section> </section>
</section> </section>
</section> </section>
<section anchor="IANA">
<name>IANA Considerations</name>
<section>
<name>New Registries</name>
<t>Per this document, new registries have been created for G-IKEv2 under
the "Internet Key Exchange Version 2 (IKEv2) Parameters" registry group <xref t
arget="IKEV2-IANA"/>. The terms
Reserved, Expert Review, and Private Use are as defined
in <xref target="RFC8126"/>.</t>
<section anchor="IANA" title="IANA Considerations"> <!-- [rfced] We have included some specific questions about the IANA
<section title="Note for Reviewers"> text below. In addition to responding to those questions, please
<t> **** RFC Editor, please DELETE this Section prior to publication! review all of the IANA-related updates carefully, including the
**** IANA values in the running text, and let us know if any further
</t> updates are needed.
<t> While reviewing the document please note, that some of the codepoi Please refer to the following URL to view the IANA registries:
nts, that this draft claims <https://www.iana.org/assignments/ikev2-parameters/>
to have allocated, in fact have been allocated by its predecessor, dra
ft-yeung-g-ikev2-07 in 2013,
as part of the early codepoint assignment. This documents makes use of
these already allocated
codepoints, renames one of them and allocates additional codepoints. N
ote also, that the semantics
of the codepoints allocated by draft-yeung-g-ikev2-07 is preserved, in
cluding for the renamed one.
</t>
</section>
<section title="New Registries"> a) For Tables 3-7 and 11-16, may we order the "Value" columns first to match
<t>A new set of registries is created for G-IKEv2 on IKEv2 the corresponding IANA registries?
parameters page <xref target="IKEV2-IANA" />. The terms
Reserved, Expert Review and Private Use are to be applied as defined
in <xref target="RFC8126"></xref>.</t>
<ol> b) FYI: For Tables 11-16, we updated "Private Use" to "Reserved
<li> for Private Use" to match the corresponding IANA registries.
<t>This document creates a new IANA registry "Transform Type &lt;TBA&gt;
-- Key Wrap Algorithm Transform IDs".
The initial values of the new registry are:
<figure>
<preamble></preamble>
<artwork align="left"><![CDATA[
Key Wrap Algorithm Value
Reserved 0
KW_5649_128 1
KW_5649_192 2
KW_5649_256 3
KW_ARX 4
Unassigned 5-1023
Private Use 1024-65535
]]></artwork>
</figure>
Changes and additions to the unassigned range of this registry are by
the Expert Review Policy <xref target="RFC8126" />.</t>
</li>
<li> c) Please clarify the text below. Was "new registrations" perhaps
<t>This document creates a new IANA registry "Transform Type &lt;TBA&gt; intended rather than "changes and additions to the unassigned range"?
-- Group Controller Authentication Method Transform IDs". Note that there are multiple instances.
The initial values of the new registry are:
<figure>
<preamble></preamble>
<artwork align="left"><![CDATA[
Group Controller Authentication Method Value
Reserved 0
Implicit 1
Digital Signature 2
Unassigned 3-1023
Private Use 1024-65535
]]></artwork>
</figure>
Changes and additions to the unassigned range of this registry are by
the Expert Review Policy <xref target="RFC8126" />.</t>
</li>
<li> Original:
<t>This document creates a new IANA registry "GSA Attributes". The initi Changes and additions to the unassigned range of this registry
al values of the new registry are: are by the Expert Review Policy [RFC8126].
<figure>
<preamble></preamble>
<artwork align="left"><![CDATA[
GSA Attributes Value Format Multi-Valued Used in Protocol
Reserved 0
GSA_KEY_LIFETIME 1 TLV NO GIKE_UPDATE, AH, ESP
GSA_INITIAL_MESSAGE_ID 2 TLV NO GIKE_UPDATE
GSA_NEXT_SPI 3 TLV YES GIKE_UPDATE, AH, ESP
Unassigned 5-16383
Private Use 16384-32767
]]></artwork>
</figure>
Changes and additions to the unassigned range of this registry are by
the Expert Review Policy <xref target="RFC8126" />.</t>
</li>
<li> Perhaps:
<t>This document creates a new IANA registry "Group-wide Policy Attribut In this registry, new registrations are to be made by Expert
es". The initial values of the new registry are: Review [RFC8126].
<figure>
<preamble></preamble>
<artwork align="left"><![CDATA[
GW Policy Attributes Value Format Multi-Valued
Reserved 0
GWP_ATD 1 TV NO
GWP_DTD 2 TV NO
GWP_SENDER_ID_BITS 3 TV NO
Unassigned 4-16383
Private Use 16384-32767
]]></artwork>
</figure>
Changes and additions to the unassigned range of this registry are by
the Expert Review Policy <xref target="RFC8126" />.</t>
</li>
<li> d) May we update the title of the "Group-wide Policy Attributes" registry
<t>This document creates a new IANA registry "Group Key Bag Attributes". to "Group-Wide Policy Attributes" (i.e., make "wide" uppercase as it's an
The initial values of the new registry are: adjective within a hyphenated compound)?
<figure>
<preamble></preamble> e) FYI: For clarity, we added the "Reference" column to Table 19 to show
<artwork align="left"><![CDATA[ that the "Security Association" Payload Type was registered by RFC 7296.
Group Key Bag If this is not desired, please let us know.
Attributes Value Format Multi-Valued Used in Protocol
Reserved 0 f) Is it helpful for the reader if the history of the SENDER_REQUEST_ID
SA_KEY 1 TLV YES GIKE_UPDATE registration is included? If so, should an informative reference to
NO AH, ESP "draft-yeung-g-ikev2-07" (e.g., "[G-IKEV2]") be added (option A)? Or
Unassigned 2-16383 if the history isn't necessary, is option B preferred?
Private Use 16384-32767
]]></artwork> Original:
</figure> The Notify type with the value 16429 was allocated earlier in the
Changes and additions to the unassigned range of this registry are by development of G-IKEv2 document in the "IKEv2 Notify Message
the Expert Review Policy <xref target="RFC8126" />.</t> Status Types" registry with the name SENDER_REQUEST_ID. This document
</li> renames it as follows:
Perhaps A:
An earlier draft of this document [G-IKEV2] registered the Notify
type 16429 with the name SENDER_REQUEST_ID. Per this document,
IANA has updated the "IKEv2 Notify Message Status Types" registry
as follows:
or
Perhaps B:
IANA has registered the following in the "IKEv2 Notify Message Status
Types" registry:
-->
<ol type="1" spacing="normal">
<li> <li>
<t>This document creates a new IANA registry "Member Key Bag Attributes" <t>IANA has created the "Transform Type 13 - Key Wrap Algorithm Transf
. The initial values of the new registry are: orm IDs" registry.
<figure> Changes and additions to the unassigned range of this registry are to be made th
<preamble></preamble> rough Expert Review <xref target="RFC8126"/>. The initial values of the registry
<artwork align="left"><![CDATA[ are as follows:</t>
Member Key Bag
Attributes Value Format Multi-Valued <table>
Reserved 0 <name></name>
WRAP_KEY 1 TLV YES <thead>
AUTH_KEY 2 TLV NO <tr>
GM_SENDER_ID 3 TLV YES <th>Key Wrap Algorithm</th>
Unassigned 4-16383 <th>Value</th>
Private Use 16384-32767 </tr>
]]></artwork> </thead>
</figure> <tbody>
Changes and additions to the unassigned range of this registry are by <tr>
the Expert Review Policy <xref target="RFC8126" />.</t> <td>Reserved</td>
<td>0</td>
</tr>
<tr>
<td>KW_5649_128</td>
<td>1</td>
</tr>
<tr>
<td>KW_5649_192</td>
<td>2</td>
</tr>
<tr>
<td>KW_5649_256</td>
<td>3</td>
</tr>
<tr>
<td>KW_ARX</td>
<td>4</td>
</tr>
<tr>
<td>Unassigned</td>
<td>5-1023</td>
</tr>
<tr>
<td>Reserved for Private Use</td>
<td>1024-65535</td>
</tr>
</tbody>
</table>
</li> </li>
</ol> <li>
<t>IANA has created the "Transform Type
14 - Group Controller Authentication Method Transform
IDs" registry. Changes and additions to the unassigned range of thi
s registry are to be made through
Expert Review <xref target="RFC8126"/>. The initial values of the regis
try are as follows:</t>
<section title="Guidance for Designated Experts"> <table>
<t> In all cases of Expert Review Policy described here, <name></name>
the Designated Expert (DE) is expected to ascertain the existence of <thead>
suitable <tr>
documentation (a specification) as described in <xref target="RFC8126 <th>Group Controller Authentication Method</th>
" /> and to <th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Reserved</td>
<td>0</td>
</tr>
<tr>
<td>Implicit</td>
<td>1</td>
</tr>
<tr>
<td>Digital Signature</td>
<td>2</td>
</tr>
<tr>
<td>Unassigned</td>
<td>3-1023</td>
</tr>
<tr>
<td>Reserved for Private Use</td>
<td>1024-65535</td>
</tr>
</tbody>
</table>
</li>
<li>
<t>IANA has created the "GSA Attributes" registry. Changes and addi
tions to the unassigned range of this registry are to be made through
Expert Review <xref target="RFC8126"/>. The initial values of the regist
ry are as follows:
</t>
<table>
<name></name>
<thead>
<tr>
<th>GSA Attributes</th>
<th>Value</th>
<th>Format</th>
<th>Multi-Valued</th>
<th>Used in Protocol</th>
</tr>
</thead>
<tbody>
<tr>
<td>Reserved</td>
<td>0</td>
<td colspan="3"></td>
</tr>
<tr>
<td>GSA_KEY_LIFETIME</td>
<td>1</td>
<td>TLV</td>
<td>NO</td>
<td>GIKE_UPDATE, AH, ESP</td>
</tr>
<tr>
<td>GSA_INITIAL_MESSAGE_ID</td>
<td>2</td>
<td>TLV</td>
<td>NO</td>
<td>GIKE_UPDATE</td>
</tr>
<tr>
<td>GSA_NEXT_SPI</td>
<td>3</td>
<td>TLV</td>
<td>YES</td>
<td>GIKE_UPDATE, AH, ESP</td>
</tr>
<tr>
<td>Unassigned</td>
<td>5-16383</td>
<td colspan="3"></td>
</tr>
<tr>
<td>Reserved for Private Use</td>
<td>16384-32767</td>
<td colspan="3"></td>
</tr>
</tbody>
</table>
</li>
<li>
<t>IANA has created the "Group-wide Policy Attributes" registry. C
hanges and additions to the unassigned range of this registry are to be made thr
ough
Expert Review <xref target="RFC8126"/>. The initial values of the regist
ry are as follows:
</t>
<table>
<name></name>
<thead>
<tr>
<th>GW Policy Attributes</th>
<th>Value</th>
<th>Format</th>
<th>Multi-Valued</th>
</tr>
</thead>
<tbody>
<tr>
<td>Reserved</td>
<td>0</td>
<td colspan="2"></td>
</tr>
<tr>
<td>GWP_ATD</td>
<td>1</td>
<td>TV</td>
<td>NO</td>
</tr>
<tr>
<td>GWP_DTD</td>
<td>2</td>
<td>TV</td>
<td>NO</td>
</tr>
<tr>
<td>GWP_SENDER_ID_BITS</td>
<td>3</td>
<td>TV</td>
<td>NO</td>
</tr>
<tr>
<td>Unassigned</td>
<td>4-16383</td>
<td colspan="2"></td>
</tr>
<tr>
<td>Reserved for Private Use</td>
<td>16384-32767</td>
<td colspan="2"></td>
</tr>
</tbody>
</table>
</li>
<li>
<t>IANA has created the "Group Key Bag Attributes" registry. Change
s and additions to the unassigned range of this registry are to be made through
Expert Review <xref target="RFC8126"/>. The initial values of the regist
ry are as follows:
</t>
<table>
<name></name>
<thead>
<tr>
<th>Group Key Bag Attributes</th>
<th>Value</th>
<th>Format</th>
<th>Multi-Valued</th>
<th>Used in Protocol</th>
</tr>
</thead>
<tbody>
<tr>
<td>Reserved</td>
<td>0</td>
<td colspan="3"></td>
</tr>
<tr>
<td>SA_KEY</td>
<td>1</td>
<td>TLV</td>
<td>YES<br/>NO</td>
<td>GIKE_UPDATE<br/>AH, ESP</td>
</tr>
<tr>
<td>Unassigned</td>
<td>2-16383</td>
<td colspan="3"></td>
</tr>
<tr>
<td>Reserved for Private Use</td>
<td>16384-32767</td>
<td colspan="3"></td>
</tr>
</tbody>
</table>
</li>
<li>
<t>IANA has created the "Member Key Bag Attributes" registry. Chang
es and additions to the unassigned range of this registry are to be made through
Expert Review <xref target="RFC8126"/>. The initial values of the regist
ry are as follows:
</t>
<table>
<name></name>
<thead>
<tr>
<th>Member Key Bag Attributes</th>
<th>Value</th>
<th>Format</th>
<th>Multi-Valued</th>
</tr>
</thead>
<tbody>
<tr>
<td>Reserved</td>
<td>0</td>
<td colspan="2"></td>
</tr>
<tr>
<td>WRAP_KEY</td>
<td>1</td>
<td>TLV</td>
<td>YES</td>
</tr>
<tr>
<td>AUTH_KEY</td>
<td>2</td>
<td>TLV</td>
<td>NO</td>
</tr>
<tr>
<td>GM_SENDER_ID</td>
<td>3</td>
<td>TLV</td>
<td>YES</td>
</tr>
<tr>
<td>Unassigned</td>
<td>4-16383</td>
<td colspan="2"></td>
</tr>
<tr>
<td>Reserved for Private Use</td>
<td>16384-32767</td>
<td colspan="2"></td>
</tr>
</tbody>
</table>
</li>
</ol>
<section>
<name>Guidance for Designated Experts</name>
<t> In all cases of Expert Review described in this section,
the designated expert (DE) is expected to ascertain the existence of
suitable
documentation (a specification) as described in <xref target="RFC8126
"/> and
verify that the document is permanently and publicly available. The verify that the document is permanently and publicly available. The
DE is also expected to check the clarity of purpose and use of the DE is also expected to check the clarity of purpose and use of the
requested code points. Last, the DE must verify that any specificatio n produced outside the IETF does not requested code points. Lastly, the DE must verify that any specificat ion produced outside the IETF does not
conflict with work that is active or already published within the IET F. conflict with work that is active or already published within the IET F.
</t> </t>
</section> </section>
</section> </section>
<section>
<section title="Changes in the Existing IKEv2 Registries"> <name>Changes in the Existing IKEv2 Registries</name>
<ol> <ol>
<li> <li>
<t>This document defines new Exchange Types in the "IKEv2 Exchange Types <t>In the "IKEv2 Exchange Types" registry, IANA has updated the references for
" registry: the following entries to point to this document and has registered "GSA_INBAND_R
<figure align="center"> EKEY":
<artwork align="left"><![CDATA[ </t>
Value Exchange Type <table>
39 GSA_AUTH <thead>
40 GSA_REGISTRATION <tr><th>Value</th><th>Exchange Type</th></tr>
41 GSA_REKEY </thead>
<TBA> GSA_INBAND_REKEY <tbody>
]]></artwork> <tr><td>39</td><td>GSA_AUTH</td></tr>
</figure> <tr><td>40</td><td>GSA_REGISTRATION</td></tr>
</t> <tr><td>41</td><td>GSA_REKEY</td></tr>
</li> <tr><td>42</td><td>GSA_INBAND_REKEY</td></tr>
</tbody>
</table>
<li> </li>
<t>This document defines new Payload Types in the "IKEv2 Payload Types" <li>
registry: <t>In the "IKEv2 Payload Types" registry, IANA has listed this docume
<figure align="center"> nt as a reference for the following entries:
<artwork align="left"><![CDATA[ </t>
Value Next Payload Type Notation
50 Group Identification IDg
51 Group Security Association GSA
52 Key Download KD
]]></artwork>
</figure>
</t>
</li>
<table>
<thead>
<tr>
<th>Value</th>
<th>Next Payload Type</th>
<th>Notation</th>
</tr>
</thead>
<tbody>
<tr>
<td>50</td>
<td>Group Identification</td>
<td>IDg</td>
</tr>
<tr>
<td>51</td>
<td>Group Security Association</td>
<td>GSA</td>
</tr>
<tr>
<td>52</td>
<td>Key Download</td>
<td>KD</td>
</tr>
</tbody>
</table>
</li>
<li> <li>
<t>This document also updates definition of Payload Type 33 in the "IKEv <t>In the "IKEv2 Payload Types" registry, IANA has updated the definitio
2 Payload n of Payload Type 33 and added a reference to this document as follows:</t>
Types" registry by adding an alternative name and notation for it refere
ncing
this document:
<figure align="center"> <table>
<artwork align="left"><![CDATA[ <thead>
Value Next Payload Type Notation <tr>
33 Security Association SA <th>Value</th>
Security Association - GM Supported Transforms SAg <th>Next Payload Type</th>
]]></artwork> <th>Notation</th>
</figure> <th>Reference</th>
</t> </tr>
</thead>
<tbody>
<tr>
<td rowspan="2">33</td>
<td>Security Association</td>
<td>SA</td>
<td><xref target="RFC7296"/></td>
</tr>
<tr>
<td>Security Association - GM Supported Transforms</td>
<td>SAg</td>
<td>RFC 9838</td>
</tr>
</tbody>
</table>
</li> </li>
<li> <li>
<t>This document makes the following changes in the "Transform Type Valu <t>In the "Transform Type Values" registry, IANA has made the following changes:
es" registry: </t>
<list style="symbols" >
<t>Defines two new transform types -- "Key Wrap Algorithm (KWA)" and "
Group Controller Authentication Method (GCAUTH)";</t>
<t>Changes the "Used In" column for the values 1 and 3 as follows;</t>
<t>Appends reference to this document to the values 1 and 3;</t>
</list>
<figure align="center">
<artwork align="left"><![CDATA[
Type Description Used In
1 Encryption Algorithm (ENCR) (IKE, GIKE_UPDATE and ESP)
3 Integrity Algorithm (INTEG) (IKE, GIKE_UPDATE, AH,
optional in ESP)
<TBA> Key Wrap Algorithm (KWA) (IKE, GIKE_UPDATE)
<TBA> Group Controller
Authentication Method (GCAUTH) (GIKE_UPDATE)
]]></artwork>
</figure>
</t>
</li>
<li> <ul spacing="normal">
<t>This document defines a new Attribute Type in the "IKEv2 Transform At <li>Registered "Key Wrap Algorithm (KWA)" and "Group Controller Au
tribute Types" registry: thentication Method (GCAUTH)".</li>
<figure align="center"> <li>
<artwork align="left"><![CDATA[ <t>Updated the "Used In" column for values 1 and 3 and listed th
Value Attribute Type Format is document as an additional reference.</t>
<TBA> Signature Algorithm Identifier TLV </li>
]]></artwork> </ul>
</figure>
</t>
</li>
<li> <table>
<t>This document defines a new value in the "Transform Type 5 - Sequence <thead>
Numbers Transform IDs" registry: <tr>
<figure align="center"> <th>Type</th>
<artwork align="left"><![CDATA[ <th>Description</th>
Number Name <th>Used In</th>
<TBA> 32-bit Unspecified Numbers </tr>
]]></artwork> </thead>
</figure> <tbody>
</t> <tr>
</li> <td>1</td>
<td>Encryption Algorithm (ENCR)</td>
<td>(IKE, GIKE_UPDATE, ESP)</td>
</tr>
<tr>
<td>3</td>
<td>Integrity Algorithm (INTEG)</td>
<td>(IKE, GIKE_UPDATE, AH, optional in ESP)</td>
</tr>
<tr>
<td>13</td>
<td>Key Wrap Algorithm (KWA)</td>
<td>(IKE, GIKE_UPDATE)</td>
</tr>
<tr>
<td>14</td>
<td>Group Controller Authentication Method (GCAUTH)</td>
<td>(GIKE_UPDATE)</td>
</tr>
</tbody>
</table>
<li> </li>
<t>This document defines new Notify Message types in the "IKEv2 Notify M <li>
essage Error Types" registry: <t>In the "IKEv2 Transform Attribute Types" registry, IANA has added
<figure align="center"> the following entry:
<artwork align="left"><![CDATA[ </t>
Value Notify Message Error Type
45 INVALID_GROUP_ID
46 AUTHORIZATION_FAILED
<TBA> REGISTRATION_FAILED
]]></artwork>
</figure>
</t>
</li>
<li> <table>
<t>The Notify type with the value 16429 was allocated earlier in the dev <thead>
elopment of G-IKEv2 document <tr>
<th>Value</th>
<th>Attribute Type</th>
<th>Format</th>
</tr>
</thead>
<tbody>
<tr>
<td>18</td>
<td>Signature Algorithm Identifier</td>
<td>TLV</td>
</tr>
</tbody>
</table>
</li>
<li>
<t>In the "Transform Type 5 - Sequence Numbers Transform IDs" regist
ry, IANA has added the following entry:
</t>
<table>
<thead>
<tr>
<th>Number</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>2</td>
<td>32-bit Unspecified Numbers</td>
</tr>
</tbody>
</table>
</li>
<li>
<t>In the "IKEv2 Notify Message Error Types" registry, IANA has made
the following changes:
</t>
<ul>
<li>Registered "REGISTRATION_FAILED".</li>
<li>Updated the references for "INVALID_GROUP_ID" and "AUTHORIZATIO
N_FAILED" to point to this document.</li>
</ul>
<table>
<thead>
<tr>
<th>Value</th>
<th>Notify Message Error Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>45</td>
<td>INVALID_GROUP_ID</td>
</tr>
<tr>
<td>46</td>
<td>AUTHORIZATION_FAILED</td>
</tr>
<tr>
<td>49</td>
<td>REGISTRATION_FAILED</td>
</tr>
</tbody>
</table>
</li>
<li>
<t>The Notify type with the value 16429 was allocated earlier in the
development of G-IKEv2 document
in the "IKEv2 Notify Message Status Types" registry with the name SENDER _REQUEST_ID. in the "IKEv2 Notify Message Status Types" registry with the name SENDER _REQUEST_ID.
This document renames it as follows: This document renames it as follows:
<figure align="center"> </t>
<artwork align="left"><![CDATA[
Value Notify Message Status Type
16429 GROUP_SENDER
]]></artwork>
</figure>
</t>
</li>
<li> <table>
<t>This document defines a new Security Protocol Identifier in the "IKEv <thead>
2 Security Protocol Identifiers" registry: <tr>
<figure align="center"> <th>Value</th>
<artwork align="left"><![CDATA[ <th>Notify Message Status Type</th>
Protocol ID Protocol </tr>
<TBA> GIKE_UPDATE </thead>
]]></artwork> <tbody>
</figure> <tr>
</t> <td>16429</td>
</li> <td>GROUP_SENDER</td>
</ol> </tr>
</tbody>
</table>
</li>
<li>
<t>In the "IKEv2 Security Protocol Identifiers" registry, IANA has a
dded the following entry:
</t>
<table>
<thead>
<tr>
<th>Protocol ID</th>
<th>Protocol</th>
</tr>
</thead>
<tbody>
<tr>
<td>6</td>
<td>GIKE_UPDATE</td>
</tr>
</tbody>
</table>
</li>
</ol>
</section> </section>
</section> </section>
</middle>
<back>
<displayreference target="I-D.ietf-ipsecme-ikev2-qr-alt" to="IPSEC-IKEV2-QR-ALT"
/>
<references>
<name>References</name>
<references>
<name>Normative References</name>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6
054.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.4
301.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
302.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
303.xml"/>
<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.8
126.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.7
427.xml"/>
<section anchor="Acknowledgements" title="Acknowledgements"> <!-- [RFC9827] draft-ietf-ipsecme-ikev2-rename-esn-05; companion doc RFC 9827 is
<t>The authors thank Lakshminath Dondeti and Jing Xiang for first in AUTH48-DONE as of 09/11/25 and is waiting for this doc for PUB.
exploring the use of IKEv2 for group key management and providing the -->
basis behind the protocol. Mike Sullenberger and Amjad Inamdar were
instrumental in helping resolve many issues in several versions of the
document.</t>
<t>The authors are grateful to Tero Kivinen, Daniel Migault, Gorry Fairhur <reference anchor="RFC9827" target="https://www.rfc-editor.org/info/rfc9827">
st, Robert Sparks, Russ Housley and Paul Wouters <front>
for their careful reviews and valuable proposals for improving the documen <title>Renaming the Extended Sequence Numbers (ESN) Transform Type in the In
t quality. ternet Key Exchange Protocol Version 2 (IKEv2)</title>
</t> <author initials="V." surname="Smyslov" fullname="Valery Smyslov">
</section> <organization>ELVIS-PLUS</organization>
</author>
<date month='September' year='2025'/>
</front>
<seriesInfo name="RFC" value="9827"/>
<seriesInfo name="DOI" value="10.17487/RFC9827"/>
</reference>
<section anchor="Contributers" title="Contributors"> </references>
<t>The following individuals made substantial contributions to early <references>
versions of this memo.</t> <name>Informative References</name>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2
409.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2
627.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3
740.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
046.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6
407.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3
686.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
106.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
309.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
543.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5
374.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5
685.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5
998.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5
723.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6
467.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7
383.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7
634.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
784.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3
948.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
242.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
329.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
750.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
347.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
370.xml"/>
<t><figure> <!-- [I-D.ietf-ipsecme-ikev2-qr-alt] draft-ietf-ipsecme-ikev2-qr-alt-06; IESG
<preamble></preamble> State: in RFC-EDITOR as of 09/11/25
-->
<xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.
ietf-ipsecme-ikev2-qr-alt.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
052.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
263.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5
649.xml"/>
<artwork><![CDATA[ <reference anchor="ARX-KW" target="https://eprint.iacr.org/2020/059.pdf"
Sheela Rowles >
Cisco Systems <front>
]]></artwork> <title>ARX-KW, a family of key wrapping constructions using SipHash
</figure> and ChaCha</title>
<figure> <author fullname="" initials="S." surname="Shinichi"/>
<artwork><![CDATA[ <date month="January" year="2020"/>
Aldous Yeung </front>
Cisco Systems <refcontent>Cryptology ePrint Archive, Paper 2020/059</refcontent>
Email: cyyeung@cisco.com </reference>
]]></artwork>
</figure>
<figure>
<artwork><![CDATA[
Paulina Tran
Cisco Systems
]]></artwork>
</figure>
<figure>
<artwork><![CDATA[
Yoav Nir
Dell EMC
Email: ynir.ietf@gmail.com
]]></artwork>
</figure></t>
</section>
</middle>
<back> <reference anchor="OFT" target="https://pdfs.semanticscholar.org/d24c/7b
<references title="Normative References"> 41f7bcc2b6690e1b4d80eaf8c3e1cc5ee5.pdf">
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.60 <front>
54.xml"?> <title>Key Establishment in Large Dynamic Groups Using One-Way Funct
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.72 ion Trees</title>
96.xml"?> <author fullname="" initials="D." surname="McGrew">
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.43 <organization/>
01.xml"?> </author>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.43 <author fullname="" initials="A." surname="Sherman">
02.xml"?> <organization/>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.43 </author>
03.xml"?> <date month="May" year="1998"/>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.21 </front>
19.xml"?> <seriesInfo name="DOI" value="10.1109/TSE.2003.1199073"/>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.81 <refcontent>IEEE Transactions on Software Engineering, vol. 29, no. 5,
74.xml"?> pp. 444-458</refcontent>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.81 </reference>
26.xml"?>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.52
80.xml"?>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.74
27.xml"?>
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference
.I-D.ietf-ipsecme-ikev2-rename-esn.xml"?>
</references>
<references title="Informative References"> <reference anchor="NNL" target="http://www.wisdom.weizmann.ac.il/~naor/P
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.24 APERS/2nl.pdf">
09.xml"?> <front>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.26 <title>Revocation and Tracing Schemes for Stateless Receivers</title
27.xml"?> >
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.37 <author fullname="" initials="D." surname="Naor">
40.xml"?> <organization/>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.40 </author>
46.xml"?> <author fullname="" initials="M." surname="Naor">
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.64 <organization/>
07.xml"?> </author>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.36 <author fullname="" initials="J." surname="Lotspiech">
86.xml"?> <organization/>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.41 </author>
06.xml"?> <date month="" year="2001"/>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.43 </front>
09.xml"?> <seriesInfo name="DOI" value="10.1007/3-540-44647-8_3"/>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.45 <refcontent>Advances in Cryptology - CRYPTO 2001, Lecture Notes in Com
43.xml"?> puter Science, vol. 2139, pp. 41-62</refcontent>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.53 </reference>
74.xml"?>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.56
85.xml"?>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.59
98.xml"?>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.57
23.xml"?>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.64
67.xml"?>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.73
83.xml"?>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.76
34.xml"?>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.87
84.xml"?>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.39
48.xml"?>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.92
42.xml"?>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.93
29.xml"?>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.87
50.xml"?>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.93
47.xml"?>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.93
70.xml"?>
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference
.I-D.ietf-ipsecme-ikev2-qr-alt.xml"?>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.80
52.xml"?>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.82
63.xml"?>
<?rfc include="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.56
49.xml"?>
<reference anchor="ARX-KW"
target="https://eprint.iacr.org/2020/059.pdf">
<front>
<title>ARX-KW, a family of key wrapping constructions using SipHash an
d ChaCha</title>
<author fullname="" initials="S." surname="Shinichi"></author>
<date month="January" year="2020" />
</front>
</reference>
<reference anchor="OFT"
target="https://pdfs.semanticscholar.org/d24c/7b41f7bcc2b6690e1
b4d80eaf8c3e1cc5ee5.pdf">
<front>
<title>Key Establishment in Large Dynamic Groups Using One-Way Functio
n Trees</title>
<author fullname="" initials="D." surname="McGrew">
<organization></organization>
</author>
<author fullname="" initials="A." surname="Sherman">
<organization></organization>
</author>
<date month="" year="1998" />
</front>
<seriesInfo name="Manuscript, "
value="submitted to IEEE Transactions on Software Engineerin
g" />
</reference>
<reference anchor="NNL"
target="http://www.wisdom.weizmann.ac.il/~naor/PAPERS/2nl.pdf">
<front>
<title>Revocation and Tracing Schemes for Stateless Receivers</title>
<author fullname="" initials="D." surname="Naor">
<organization></organization>
</author>
<author fullname="" initials="M." surname="Noal">
<organization></organization>
</author>
<author fullname="" initials="J." surname="Lotspiech">
<organization></organization>
</author>
<date month="" year="2001" />
</front>
<seriesInfo name="Advances in Cryptology, Crypto '01, "
value="Springer-Verlag LNCS 2139, 2001, pp. 41-62" />
</reference>
<reference anchor="IKEV2-IANA"
target="http://www.iana.org/assignments/ikev2-parameters/ikev2-
parameters.xhtml">
<front>
<title>Internet Key Exchange Version 2 (IKEv2) Parameters</title>
<author>
<organization>IANA</organization>
</author>
<date />
</front>
</reference>
</references>
<section anchor="lkh_key_management" title="Use of LKH in G-IKEv2"> <reference anchor="IKEV2-IANA" target="http://www.iana.org/assignments/i
<t>Section 5.4 of <xref target="RFC2627"></xref> describes the LKH kev2-parameters">
architecture, and how a GCKS uses LKH to exclude group members. This <front>
<title>Internet Key Exchange Version 2 (IKEv2) Parameters</title>
<author>
<organization>IANA</organization>
</author>
<date/>
</front>
</reference>
</references>
</references>
<section anchor="lkh_key_management">
<name>Use of LKH in G-IKEv2</name>
<t><xref target="RFC2627" sectionFormat="of" section="5.4"/> describes the
LKH
architecture and how a GCKS uses LKH to exclude group members. This
section clarifies how the LKH architecture is used with G-IKEv2.</t> section clarifies how the LKH architecture is used with G-IKEv2.</t>
<section anchor="lkh_notation">
<section anchor="lkh_notation" title="Notation"> <name>Notation</name>
<t>In this section we will use the notation X{Y} <t>In this section, we will use the notation X{Y},
where a key with ID Y is encrypted with the key with ID X. where a key with ID Y is encrypted with the key with ID X.
The notation GSK_w{Y} means that the default wrap key GSK_w (with zero K WK ID)is used The notation GSK_w{Y} means that the default wrap key GSK_w (with zero K WK ID)is used
to encrypt key Y, and the notation X{K_sa} means key X is used to encrypt key Y, and the notation X{K_sa} means key X is used
to encrypt the SA key K_sa (wich always has zero Key ID). Note, that GSK to encrypt the SA key K_sa (which always has a Key ID of zero). Note tha
_w{K_sa} means that t GSK_w{K_sa} means that
the SA key is encrypted with the default wrap key, in which case both KW the SA key is encrypted with the default wrap key, in which case, both K
K ID and Key ID are zero. WK ID and Key ID are zero.
</t> </t>
<t>The content of the KD payload will be shown as a sequence <t>The content of the KD payload will be shown as a sequence
of key bags. The Group Key Bag substructure will be denoted as GP(SAn)() of key bags. The Group Key Bag substructure will be denoted as GP(SAn)()
, when n is an SPI for the SA and the Member Key Bag substructure
when n is an SPI for the SA, and the Member Key Bag substructure
will be denoted as MP(). The content of the key bags will be denoted as MP(). The content of the key bags
is shown as SA_KEY and WRAP_KEY attributes with the notation is shown as SA_KEY and WRAP_KEY attributes with the notation
described above. For simplicity the type of the attribute will not be sh own, described above. For simplicity, the type of the attribute will not be s hown
because it is implicitly defined by the type of key bag. because it is implicitly defined by the type of key bag.
</t> </t>
<t>Below is the example of a KD payload:</t>
<t> Here is the example of KD payload. <figure>
<figure align="center"> <artwork ><![CDATA[
<artwork align="center"><![CDATA[
KD(GP(SA1)(X{K_sa}),MP(Y{X},Z{Y},GSK_w{Z}) KD(GP(SA1)(X{K_sa}),MP(Y{X},Z{Y},GSK_w{Z})
]]></artwork> ]]></artwork>
</figure> </figure>
For simplicity any other attributes in the KD payload are omitted. <t>
For simplicity, any other attributes in the KD payload are omitted.
</t> </t>
<t>We will also use the notation X-&gt;Y-&gt;Z <t>We will also use the notation X-&gt;Y-&gt;Z
to describe the Key Path. In this case key Y is needed to decrypt key X to describe the Key Path. In this case, key Y is needed to decrypt key X
and key Z is needed to decrypt key Y. and key Z is needed to decrypt key Y.
In the example above the keys had the following relation: K_sa-&gt;X-&gt In the example above, the keys had the following relation: K_sa-&gt;X-&g
;Y-&gt;Z-&gt;GSK_w. t;Y-&gt;Z-&gt;GSK_w.
</t> </t>
</section> </section>
<section>
<section title="Group Creation"> <name>Group Creation</name>
<t>When a GCKS forms a group, it creates a key tree as shown in the <t>When a GCKS forms a group, it creates a key tree as shown in
figure below. The key tree contains logical keys (which are represented <xref target="initial-tree"/>. The key tree contains logical keys (which
as are represented as
the values of their Key IDs in the figure) and a private key shared with only a single GM the values of their Key IDs in the figure) and a private key shared with only a single GM
(the GMs are represented as letters followed by the corresponding (the GMs are represented as letters followed by the corresponding
key ID in parentheses in the figure). The root of the tree contains the key ID in parentheses in the figure). The root of the tree contains the
multicast Rekey SA key (which is represented as SAn(K_san). The figure b elow assumes that the Key IDs multicast Rekey SA key (which is represented as SAn(K_san). The figure b elow assumes that the Key IDs
are assigned sequentially; this is not a requirement and only used are assigned sequentially; this is not a requirement and only used
for illustrative purposes. The GCKS may create a complete tree as shown, or a partial tree which is for illustrative purposes. The GCKS may create a complete tree as shown or a partial tree, which is
created on demand as members join the group. created on demand as members join the group.
</t> </t>
<figure align="center" anchor="initial-tree" title="Initial LKH tree"> <figure anchor="initial-tree">
<artwork align="center"><![CDATA[ <name>Initial LKH Tree</name>
<artwork ><![CDATA[
SA1(K_sa1) SA1(K_sa1)
+------------------------------+ +------------------------------+
1 2 1 2
+---------------+ +---------------+ +---------------+ +---------------+
3 4 5 6 3 4 5 6
+-------+ +-------+ +--------+ +--------+ +-------+ +-------+ +--------+ +--------+
A(7) B(8) C(9) D(10) E(11) F(12) G(13) H(14) A(7) B(8) C(9) D(10) E(11) F(12) G(13) H(14)
]]></artwork> ]]></artwork>
</figure> </figure>
<t>When GM A joins the group, the GCKS provides it <t>When GM A joins the group, the GCKS provides it
with the keys in the KD payload of the GSA_AUTH or with the keys in the KD payload of the GSA_AUTH or
GSA_REGISTRATION exchange. Given the tree shown in figure above, the GSA_REGISTRATION exchange. Given the tree shown in figure above, the
KD payload will be: KD payload will be:
<figure align="center" title="KD Payload for the Group Member A"> </t>
<artwork align="center"><![CDATA[ <figure>
<name>KD Payload for the Group Member A</name>
<artwork ><![CDATA[
KD(GP(SA1)(1{K_sa1}),MP(3{1},7{3},GSK_w{7}) KD(GP(SA1)(1{K_sa1}),MP(3{1},7{3},GSK_w{7})
]]></artwork> ]]></artwork>
</figure> </figure>
<t>
From these attributes the GM A will construct From these attributes, the GM A will construct
the Key Path K_sa1-&gt;1-&gt;3-&gt;7-&gt;GSK_w and since it the Key Path K_sa1-&gt;1-&gt;3-&gt;7-&gt;GSK_w. Since it
ends up with GSK_w, it will use all the WRAP_KEY attributes ends up with GSK_w, it will use all the WRAP_KEY attributes
present in the path as its Working Key Path: 1-&gt;3-&gt;7. present in the path as its Working Key Path: 1-&gt;3-&gt;7.
</t> </t>
<!-- [rfced] May we replace "so after all" with "and thus" in the
sentence below for improved clarity?
<t>Similarly, when other GMs will be joining the group they will be prov Current:
ided with the corresponding Similarly, when other GMs will be joining the group, they will be
keys, so after all the GMs will have the following Working Key Paths: provided with the corresponding keys, so after all, the GMs will have
<figure align="center"> the following Working Key Paths:
<artwork align="left"><![CDATA[
Perhaps:
Similarly, when other GMs join the group, they will be
provided with the corresponding keys and thus the GMs
will have the following Working Key Paths:
-->
<t>Similarly, when other GMs will be joining the group, they will be pro
vided with the corresponding
keys, so after all, the GMs will have the following Working Key Paths:
</t>
<figure>
<artwork align="left"><![CDATA[
A: 1->3->7 B: 1->3->8 C: 1->4->9, D: 1->4->10 A: 1->3->7 B: 1->3->8 C: 1->4->9, D: 1->4->10
E: 2->5->11 F: 2->5->12 G: 2->6->13 H: 2->6->14 E: 2->5->11 F: 2->5->12 G: 2->6->13 H: 2->6->14
]]></artwork> ]]></artwork>
</figure> </figure>
</t>
</section>
<section title="Simple Group SA Rekey"> </section>
<section>
<name>Simple Group SA Rekey</name>
<t>If the GCKS performs a simple SA rekey without changing group members hip, <t>If the GCKS performs a simple SA rekey without changing group members hip,
it will only send group key bag in the KD payload with a new it will only send a Group Key Gag in the KD payload with a new
SA key encrypted with the default KWK. SA key encrypted with the default KWK.
</t>
<figure align="center" title="KD Payload for the Simple Group SA Rekey"> <figure>
<artwork align="center"><![CDATA[ <name>KD Payload for the Simple Group SA Rekey</name>
<artwork ><![CDATA[
KD(GP(SA2)(GSK_w{K_sa2})) KD(GP(SA2)(GSK_w{K_sa2}))
]]></artwork> ]]></artwork>
</figure> </figure>
<t>
All the GMs will be able to decrypt it and no changes in their Working K ey Paths will happen. All the GMs will be able to decrypt it and no changes in their Working K ey Paths will happen.
</t> </t>
</section> </section>
<section>
<section title="Group Member Exclusion"> <name>Group Member Exclusion</name>
<t>If the GKCS has reason to believe that a GM should be excluded, <t>If the GCKS has reason to believe that a GM should be excluded,
then it can do so by sending a GSA_REKEY message that includes a set then it can do so by sending a GSA_REKEY message that includes a set
of GM_KEY attributes which would allow all GMs except for the excluded o ne of GM_KEY attributes, which would allow all GMs, except for the excluded one,
to get a new SA key. to get a new SA key.
</t> </t>
<t>In the example below, the GCKS excludes GM F. For this purpose,
<t>In the example below the GCKS excludes GM F. For this purpose it changes the key tree as follows, replacing key 2 with key 15 and
it changes the key tree as follows, replacing the key 2 with the key 15 key 5 with key 16. It also generates a new SA key for a new SA3.
and
the key 5 with the key 16. It also generates a new SA key for a new SA3.
</t> </t>
<figure align="center" anchor="updated-tree" <figure anchor="updated-tree">
title="LKH tree after F has been excluded"> <name>LKH Tree after F Has Been Excluded</name>
<artwork align="center"><![CDATA[ <artwork ><![CDATA[
SA3(K_sa3) SA3(K_sa3)
+------------------------------+ +------------------------------+
1 15 1 15
+---------------+ +---------------+ +---------------+ +---------------+
3 4 16 6 3 4 16 6
+-------+ +-------+ +---- +--------+ +-------+ +-------+ +---- +--------+
A(7) B(8) C(9) D(10) E(11) F(12) G(13) H(14) A(7) B(8) C(9) D(10) E(11) F(12) G(13) H(14)
]]></artwork> ]]></artwork>
</figure> </figure>
<t>Then it sends the following KD payload for the new Rekey SA3: <t>Then it sends the following KD payload for the new Rekey SA3:
</t>
<figure align="center" title="KD Payload for the Group Member F"> <figure>
<artwork align="center"><![CDATA[ <name>KD Payload for the Group Member F</name>
<artwork ><![CDATA[
KD(GP(SA3)(1{K_sa3},15{K_sa3}),MP(6{15},16{15},11{16}) KD(GP(SA3)(1{K_sa3},15{K_sa3}),MP(6{15},16{15},11{16})
]]></artwork> ]]></artwork>
</figure> </figure>
While processing this KD payload: <t>
<list style="symbols"> While processing this KD payload:</t>
<t>GMs A, B, C and D will be able to decrypt the SA_KEY attribute 1{K_ <ul spacing="normal">
sa3} by using <li>
<t>GMs A, B, C, and D will be able to decrypt the SA_KEY attribute 1
{K_sa3} by using
the "1" key from their key path. Since no new GM_KEY attributes are in the new the "1" key from their key path. Since no new GM_KEY attributes are in the new
Key Path, they won't update their Working Key Paths. Key Path, they won't update their Working Key Paths.
</t> </t>
<t>GMs G and H will construct new Key Path 15-&gt;6 and will be able t </li>
o decrypt <li>
the intermediate key 15 using the key 6 from their Working Key Paths. <t>GMs G and H will construct new Key Path 15-&gt;6 and will be able
So, they will to decrypt
update their Working Key Paths replacing their beginnings up to the ke the intermediate key 15 using key 6 from their Working Key Paths. So,
y 6 they will
update their Working Key Paths replacing their beginnings up to key 6
with the new Key Path (thus replacing the key 2 with the key 15). with the new Key Path (thus replacing the key 2 with the key 15).
</t> </t>
<t>GM E will construct new Key Path 16-&gt;15-&gt;11 and will be able </li>
to decrypt <li>
the intermediate key 16 using the key 11 from its Working Key Path. So <t>GM E will construct a new Key Path 16-&gt;15-&gt;11 and will be a
, it will ble to decrypt
update its Working Key Path replacing its beginnings up to the key 11 the intermediate key 16 using key 11 from its Working Key Path. So, it
with the new Key Path (thus replacing the key 2 with the key 15 and th will
e key 5 with the key 16). update its Working Key Path replacing its beginnings up to key 11
</t> with the new Key Path (thus replacing key 2 with key 15 and key 5 with
<t>GM F won't be able to construct any Key Path leading to any key he key 16).
possesses, </t>
so it will be unable to decrypt the new SA key for the SA3 and thus it </li>
will be excluded <li>
<t>GM F won't be able to construct any Key Path leading to any key i
t possesses,
so it will be unable to decrypt the new SA key for the SA3. Thus, it w
ill be excluded
from the group once the SA3 is used. from the group once the SA3 is used.
</t> </t>
</list> </li>
</ul>
<t>Finally, the GMs will have the following Working Key Paths:
</t> </t>
<t>Finally, the GMs will have the following Working Key Paths: <figure>
<figure align="center"> <artwork align="left"><![CDATA[
<artwork align="left"><![CDATA[
A: 1->3->7 B: 1->3->8 C: 1->4->9, D: 1->4->10 A: 1->3->7 B: 1->3->8 C: 1->4->9, D: 1->4->10
E: 15->16->11 F: excluded G: 15->6->13 H: 15->6->14 E: 15->16->11 F: excluded G: 15->6->13 H: 15->6->14
]]></artwork> ]]></artwork>
</figure> </figure>
</t>
</section> </section>
</section> </section>
<section anchor="Acknowledgements" numbered="false">
<name>Acknowledgements</name>
<t>The authors thank <contact fullname="Lakshminath Dondeti"/> and
<contact fullname="Jing Xiang"/> for first exploring the use of IKEv2
for group key management and providing the basis behind the
protocol. <contact fullname="Mike Sullenberger"/> and <contact
fullname="Amjad Inamdar"/> were instrumental in helping resolve many
issues in several draft versions of the document.</t>
<t>The authors are grateful to <contact fullname="Tero Kivinen"/>,
<contact fullname="Daniel Migault"/>, <contact fullname="Gorry
Fairhurst"/>, <contact fullname="Robert Sparks"/>, <contact
fullname="Russ Housley"/>, and <contact fullname="Paul Wouters"/> for
their careful reviews and valuable proposals for improving the document
quality.
</t>
</section>
<section anchor="Contributors" numbered="false">
<name>Contributors</name>
<t>The following individuals made substantial contributions to earlier
draft versions of this document.</t>
<contact fullname="Sheela Rowles">
<organization>Cisco Systems</organization>
</contact>
<contact fullname="Aldous Yeung">
<organization>Cisco Systems</organization>
<address>
<email>cyyeung@cisco.com</email>
</address>
</contact>
<contact fullname="Paulina Tran">
<organization>Cisco Systems</organization>
</contact>
<contact fullname="Yoav Nir">
<organization>Dell EMC</organization>
<address>
<email>ynir.ietf@gmail.com</email>
</address>
</contact>
</section>
<!-- [rfced] Abbreviations
a) FYI - We have added expansions for abbreviations upon first use
per Section 3.6 of RFC 7322 ("RFC Style Guide"). Please review each
expansion in the document carefully to ensure correctness.
b) We note that some abbreviations are expanded multiple times
throughout the document. If there are no objections, we will update terms
to use their abbreviations after their first expansions for consistency.
One example (see the document for more examples):
Group Member -> GM
-->
<!-- [rfced] Terminology
a) Please review the following terms for capitalization and let us know which
form you prefer (uppercase or lowercase) for consistency.
Data-Security vs. data-security
[Note: Only two instances of "data-security" are lowercase;
should they be uppercase?]
Group Member vs. group member
Group Receiver vs. group receiver
Group Sender vs. group sender
Group-wide policy vs. group-wide policy
GSA registration exchange vs. GSA_REGISTRATION exchange
Header vs. header (when referring to specific headers, e.g., Payload Header vs.
IKE header)
Key Bag vs. key bag
Key information vs. key information
Key Wrap Algorithm vs. key wrap algorithm
Notify Message vs. Notify message vs. notify message
Security Association vs. security association
[Note: should the security association policy be uppercase
(e.g., "Security Association policy")?
Transform(s) vs. transform(s)
Transform ID vs. transform ID
b) We note that the following terms are used inconsistently. Please review and
let us know which form you prefer to use throughout the document.
Data-Security GSA TEK vs. GSA TEK vs. Data-Security SA policy (GSA TEK)
[Note: Are any of these terms the same?]
group key management vs. group key management protocol
Multicast Security (MSEC) Group Key Management Architecture vs.
Multicast Security (MSEC) key management architecture
c) FYI: We updated the text to reflect the forms on the right for consistency.
Please let us know of any objections.
G-IKEv2 Rekey -> G-IKEv2 rekey
GKCS -> GCKS
group key bag -> Group Key Bag
group security association -> Group Security Association
GSA Policy -> GSA policy=
IKEv2 Intermediate exchange -> IKEv2 Intermediate Exchange (per RFC 9242)
member Key Bag and member key bag -> Member Key Bag
NO_PROPOSAL_CHOSEN Notification -> NO_PROPOSAL_CHOSEN notification
protocol ID -> Protocol ID
Rekey message -> rekey message
rekey SA -> Rekey SA
Security Association Payload -> Security Association payload (per RFC 7296)
Secure Password authentication -> secure password authentication (per RFC 6467)
-->
<!-- [rfced] Some figures and tables were updated during the
formatting process and do not have titles. Would you like to add
titles to the figures and tables below for consistency throughout
the document? If so, please let us know the desired text.
Current:
Figure 10
Figure 15
Figure 16
Figure 24
Figure 27
Figure 31
Tables 3-8
Tables 11-25
-->
<!-- [rfced] Please review the "Inclusive Language" portion of the online
Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language>
and let us know if any changes are needed. Updates of this nature typically
result in more precise language, which is helpful for readers.
For example, please consider whether the term "man-in-the-middle" should be
updated. -->
</back> </back>
</rfc> </rfc>
 End of changes. 642 change blocks. 
2584 lines changed or deleted 3517 lines changed or added

This html diff was produced by rfcdiff 1.48.