view Side-By-Side changes
Internet Engineering Task Force Mark Baugher(Cisco) INTERNET-DRAFT Thomas Hardjono (Verisign)Document: draft-ietf-msec-gdoi-04.txtCategory: Standards Track Hugh Harney (Sparta)Expires: August, 2002Document: draft-ietf-msec-gdoi-05.txt Brian Weis (Cisco)February 26,Expires: January, 2002 July, 2002 The Group Domain of Interpretation<draft-ietf-msec-gdoi-04.txt><draft-ietf-msec-gdoi-05.txt> Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract This document presents an ISAMKP Domain of Interpretation (DOI) for group key management to support secure group communications. The "GDOI" incorporates the definition of a Phase 1 SA of the Internet DOI, and proposes new payloads and exchanges according to the ISAKMP standard. The GDOI manages group security associations, which are used by IPSEC and potentially other data security protocols running at the IP or application layers. These security associations protect one or more key-encrypting keys, traffic-encrypting keys, or data shared by group members. Comments on this document should be sent to msec@securemulticast.org. Baugher, et. al. Standards Track - ExpiresAugust,January, 2002 1 The GDOI Domain of InterpretationFebruary,July, 2002 Table of Contents 1.0 Introduction......................................................3 1.1 GDOIApplications..............................................4Applications...............................................5 1.2 ExtendingGDOI.................................................5GDOI..................................................5 2.0 ISAKMP Phase 1 protocol...........................................5 2.1 DOI value.....................................................52. 22.2 UDPport.....................................................5port......................................................6 3.0 GROUPKEY-PULLExchange............................................5Exchange............................................6 3.1Authorization...................................................5Authorization...................................................6 3.2 Messages........................................................6 3.2.1 Perfect ForwardSecrecy.....................................7Secrecy.....................................8 3.2.2 ISAKMP Header Initialization................................8 3.3 Initiator Operations............................................8 3.4 Receiver Operations.............................................9 4.0 GROUPKEY-PUSHMessage.............................................9Message............................................10 4.1 Perfect Forward Secrecy(PFS)..................................10(PFS)..................................11 4.2 Forward and Backward AccessControl............................10Control............................11 4.2.1 Forward Access Control Requirements........................11 4.3 Delegation of KeyManagement...................................11Management...................................12 4.4 Use of signaturekeys..........................................11keys..........................................12 4.5 ISAKMP HeaderInitialization...................................11Initialization...................................12 4.6 Deletion ofSAs................................................11SAs................................................13 4.7 GCKSOperations................................................12Operations................................................13 4.8 Group MemberOperations........................................12Operations........................................14 5.0 Payloads and DefinedValues......................................13Values......................................14 5.1 IdentificationPayload.........................................13Payload.........................................15 5.1.1 Identification TypeValues.................................14Values.................................15 5.2 Security AssociationPayload...................................14Payload...................................16 5.2.1 Payloads following the SApayload..........................15payload..........................16 5.3 SA KEKpayload.................................................16payload.................................................17 5.3.1 KEKAttributes.............................................17Attributes.............................................19 5.3.2KEK_MANAGEMENT_ALGORITHM...................................18KEK_MANAGEMENT_ALGORITHM...................................19 5.3.3KEK_ALGORITHM..............................................18KEK_ALGORITHM..............................................20 5.3.4KEK_KEY_LENGTH.............................................19KEK_KEY_LENGTH.............................................20 5.3.5KEK_KEY_LIFETIME...........................................19KEK_KEY_LIFETIME...........................................20 5.3.6SIG_HASH_ALGORITHM.........................................19SIG_HASH_ALGORITHM.........................................21 5.3.7SIG_ALGORITHM..............................................19SIG_ALGORITHM..............................................21 5.3.8SIG_KEY_LENGTH.............................................20SIG_KEY_LENGTH.............................................21 5.3.9KE_OAKLEY_GROUP............................................20KE_OAKLEY_GROUP............................................22 5.4 SA TEKPayload.................................................20Payload.................................................22 5.4.1PROTO_IPSEC_ESP............................................21PROTO_IPSEC_ESP............................................22 5.4.2 Other SecurityProtocols...................................22Protocols...................................24 5.5 Key DownloadPayload...........................................23Payload...........................................24 5.5.1 TEK DownloadType..........................................24Type..........................................26 5.5.2 KEK DownloadType..........................................25Type..........................................27 5.5.3 LKH DownloadType..........................................26 5.6 Sequence Number Payload........................................28Type..........................................28 Baugher, et. al. Standards Track - ExpiresJuly,January, 2002 2 The GDOI Domain of InterpretationFebruary,July, 2002 5.6 Sequence Number Payload........................................31 5.7 Proof ofPossession............................................28Possession............................................31 5.8Nonce..........................................................29 7.0Nonce..........................................................32 6.0 SecurityConsiderations..........................................29 8.0Considerations..........................................32 6.1 ISAKMP Phase 1.................................................32 6.1.1 Authentication.............................................33 6.1.2 Confidentiality............................................33 6.1.3 Man-in-the-Middle Attack Protection........................33 6.1.4 Replay/Reflection Attack Protection........................33 6.1.5 Denial of Service Protection...............................33 6.2 GROUPKEY-PULL Exchange.........................................33 6.2.1 Authentication.............................................34 6.2.2 Confidentiality............................................34 6.2.3 Man-in-the-Middle Attack Protection........................34 6.2.4 Replay/Reflection Attack Protection........................34 6.2.5 Denial of Service Protection...............................34 6.2.5 Authorization..............................................35 6.3 GROUPKEY-PUSH Exchange.........................................35 6.3.1 Authentication.............................................35 6.3.2 Confidentiality............................................35 6.3.3 Man-in-the-Middle Attack Protection........................35 6.3.4 Replay/Reflection Attack Protection........................35 6.3.5 Denial of Service Protection...............................36 6.3.6 Forward Access Control.....................................36 7.0 IANAConsiderations..............................................29 8.1Considerations..............................................36 7.1 ISAKMPDOI.....................................................29 8.2DOI.....................................................36 7.2 PayloadTypes..................................................29 8.3Types..................................................37 7.3 NewNamespaces.................................................30 8.3Name spaces................................................37 7.4 UDPPort.......................................................30Port.......................................................37 8.0 Acknowledgements.................................................37 9.0Acknowledgements.................................................30 10.0 References......................................................30 10.1References.......................................................37 9.1 NormativeReferences..........................................30 10.2References...........................................37 9.2 InformativeReferences........................................31References.........................................38 AuthorsAddresses....................................................32Addresses....................................................39 1.0 Introduction This document presents an ISAMKP Domain of Interpretation (DOI) for group key management called the?Group"Group Domain ofInterpretation?Interpretation" (GDOI). In this group key management model, the GDOI protocol is run between a group member and a?group"group controller/keyserver?server" (GCKS), which establishes security associations [Section 4.6.2 RFC2401] among authorized group members. ISAKMP defines two "phases" of negotiation [p.16 RFC2408]. The GDOI incorporates the Phase 1 security association (SA) definition from the Internet DOI [RFC2407, RFC2409]. The Phase 2 exchange is defined in this document, and proposes new payloads and exchanges according to the ISAKMP standard [p. 14 RFC2408]. Baugher, et. al. Standards Track - Expires January, 2002 3 The GDOI Domain of Interpretation July, 2002 There are six new payloads: 1) GDOI SA 2) SA KEK (SAK) which follows the SA payload 3) SA TEK (SAT) which follows the SA payload 4) Key Download Array (KD) 5) Sequence number (SEQ) 6) Proof of Possession (POP) There are two new exchanges. 1) A Phase 2 exchange creates Re-key and Data-Security Protocol SAs. The new Phase 2 exchange, called "GROUPKEY-PULL," downloads keys for agroup?s ?Re-key?group's "Re-key" SA and/or?Data-security?"Data-security" SA. The Re-key SA includes a key encrypting key, or KEK, common to the group; a Data- security SA includes a data encryption key, or TEK, used by a data- security protocol to encrypt or decrypt data traffic [Section 2.1 RFC2407]. The SA for the KEK or TEK includes authentication keys, encryption keys, cryptographic policy, and attributes. The GROUPKEY- PULL exchange uses "pull" behavior since the member initiates the retrieval of these SAs from a GCKS.Baugher, et. al. Standards Track - Expires July, 2002 3 The GDOI Domain of Interpretation February, 20022) A datagram subsequently establishes additional Rekey and/or Data- Security Protocol SAs. The GROUPKEY-PUSH datagram is "pushed" from the GCKS to the members to create or update a Re-key or Data-security SA. A Re-key SA protects GROUPKEY-PUSH messages. Thus, a GROUPKEY-PULL is necessary to establish at least one Re-key SA in order to protect subsequent GROUPKEY-PUSH messages. The GCKS encrypts the GROUPKEY-PUSH message using the KEK Re-key SA. GDOI accommodates the use of arrays of KEKs for group key management algorithms using the Logical Key Hierarchy (LKH) algorithm to efficiently add and remove group members [RFC2627]. Implementation of the LKH algorithm is OPTIONAL. Although the GROUPKEY-PUSH specified by this document can be used to refresh a Re-key SA, the most common use of GROUPKEY-PUSH is to establish a Data-security SA for a data security protocol. GDOI can accommodate future extensions to support a variety of data security protocols. This document only specifies data-security SAs for one security protocol, IPsec ESP. A separate RFC will specify support for other data security protocols such as a future secure Real-time Transport Protocol. A security protocol uses the TEK and "owns" the data-security SA in the same way that IPsec ESP uses the IKE Phase 2 keys and owns the Phase 2 SA; for GDOI, IPsec ESP uses the TEK. GDOI uses the Phase 1 exchanges defined in [RFC2409] and definitions and an ISAKMP-compliant header from [RFC2408]. "GDOI" is the declared domain of interpretation in the header used in the Phase 1 and subsequent GDOI Phase 2 (GROUPKEY-PULL) exchanges. Baugher, et. al. Standards Track - Expires January, 2002 4 The GDOI Domain of Interpretation July, 2002 Thus, GDOI is a group security association management protocol: All GDOI messages are used to create, maintain, or delete security associations for a group. As described above, these security associations protect one or more key-encrypting keys, traffic- encrypting keys, or data shared by group members for multicast and groups-security applications. The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appear in this document, are to be interpreted as described in RFC 2119 [RFC2119]. 1.1 GDOI Applications Secure multicast applications include video broadcast and multicast file transfer. In a business environment, many of these applications require network security and may use IPsec ESP to secure their data traffic. Section 5.4.1 specifies how GDOI carries the needed SA parameters for ESP. In this way, GDOI supports multicast ESP with group authentication of ESP packets using the shared, group key (authentication of unique sources of ESP packets is not possible). GDOI can also secure group applications that do not use multicast transport such as video-on-demand. For example, the GROUPKEY-PUSHBaugher, et. al. Standards Track - Expires July, 2002 4 The GDOI Domain of Interpretation February, 2002message may establish a pair-wise IPsec ESP SA for a member of a subscription group without the need for key management exchanges and costly asymmetric cryptography. 1.2 Extending GDOI Not all secure multicast or multimedia applications can use IPsec ESP. Many Real Time Transport Protocol applications, for example, require security above the IP layer to preserve RTP header compression efficiencies and transport-independence [RFC1889]. A future RTP security protocol may benefit from using GDOI to establish group SAs for multicast and unicast security services. In order to add a new data security protocol, a new RFC MUST specify the data- security SA parameters conveyed by GDOI for that security protocol; these parameters are listed in section 5.4.2 of this document. 2.0 ISAKMP Phase 1 protocol The GDOI uses ISAKMP phase 1 exchanges as defined in [RFC2409]. The following sections define characteristics which are unique for these exchanges when used for GDOI. 2.1 DOI value The Phase 1 SA payload has a DOI value. That value MUST be the GDOI DOI value as defined later in this document.2. 2Baugher, et. al. Standards Track - Expires January, 2002 5 The GDOI Domain of Interpretation July, 2002 2.2 UDP port. GDOI MUST NOT run on port 500 (the port commonly used for IKE). A new port number MUST be defined by IANA for GDOI. 3.0 GROUPKEY-PULL Exchange The goal of the GROUPKEY-PULL exchange is to establish a Re-key and/or Data-security SAs at the member for a particular group. A Phase 1 SA (as defined in [RFC2407]) protects the GROUPKEY-PULL; there MAY be multiple GROUPKEY-PULL exchanges for a given Phase 1 SA. The GROUPKEY-PULL exchange downloads the data security keys (TEKs) and/or group key encrypting key (KEK) or KEK array under the protection of the Phase 1 SA. 3.1 Authorization There are two alternative means for authorizing the GROUPKEY-PULL message. First, the Phase 1 identity can be used to authorize the Phase 2 (GROUPKEY-PULL) request for a group key. Second, a new identity can be passed in the GROUPKEY-PULL request. The new identity could be specific to the group and use a certificate that is signed by the group owner to identify the holder as an authorized group member. The Proof-of-Possession payload validates that the holder possesses the secret key associated with the Phase 2 identity.Baugher, et. al. Standards Track - Expires July, 2002 5 The GDOI Domain of Interpretation February, 20023.2 Messages The GROUPKEY-PULL is a Phase 2 exchange. Phase 1 computes SKEYID_a from the DH keying material exchanged in Phase 1. SKEYID_a is the "key" in the keyed hash used in the GROUPKEY-PULL HASH payloads. As with the IKE HASH payload generation [RFC 2409 section 5.5], each GROUPKEY-PULL message hashes a uniquely defined set of values. Nonces permute the HASH and provide some protection against replay attacks. Replay protection is important to protect the GCKS from attacks that a key management server will attract. The GROUPKEY-PULL uses nonces to guarantee "liveliness", or against replay of a recent GROUPKEY-PULL message. The replay attack is only useful in the context of the current Phase 1. If a GROUPKEY-PULL message is replayed based on a previous Phase 1, the HASH calculation will fail due to a wrong SKEYID_a. The message will fail processing before the nonce is ever evaluated. In order for either peer to get the benefit of the replay protection it must postpone as much processing as possible until it receives the message in the protocol that proves the peer is live. For example, the Responder MUST NOT compute the shared Diffie-Hellman number (if KE payloads were included) or install the new SAs until it receives a message with Nr included properly in the HASH payload. Nonces require an additional message in the protocol exchange to ensure that the GCKS does not add a group member until it proves liveliness. The GROUPKEY-PULL member-initiator expects to find its Baugher, et. al. Standards Track - Expires January, 2002 6 The GDOI Domain of Interpretation July, 2002 nonce, Ni, in the HASH of a returned message. And the GROUPKEY-PULL GKCS responder expects to see its nonce, Nr, in the HASH of a returned message before providing group-keying material as in the following exchange. Initiator (Member) Responder (GCKS) ------------------ ---------------- HDR*, HASH(1), Ni, ID --> <-- HDR*, HASH(2), Nr, SA HDR*, HASH(3) [,KE_I] --> [,CERT] [,POP_I] <-- HDR*, HASH(4),[KE_R,][SEQ,] KD [,CERT] [,POP_R] Hashes are computed as follows: HASH(1) = prf(SKEYID_a, M-ID | Ni | ID) HASH(2) = prf(SKEYID_a, M-ID | Ni_b | Nr | SA) HASH(3) = prf(SKEYID_a, M-ID | Ni_b | Nr_b [ | KE_I][] [ | CERT ] [ | POP_I ]) HASH(4) = prf(SKEYID_a, M-ID | Ni_b | Nr_b [ | KE_R ] [ | SEQ | ] KD [ | CERT ] [ | POP_R]) POP payload is constructed as described in Section 5.7. * Protected by the Phase 1 SA, encryption occurs after HDRBaugher, et. al. Standards Track - Expires July, 2002 6 The GDOI Domain of Interpretation February, 2002HDR is an ISAKMP header payload that uses the Phase 1 cookies and a message identifier (M-ID) as in IKE [RFC2409]. Note that nonces are included in the first two exchanges, with the GCKS returning only the SA policy payload before liveliness is proven. The HASH payloads [RFC2409] prove that the peer has the Phase 1 secret (SKEYID_a) and the nonce for the exchange identified by message id, M-ID. Once liveliness is established, the last message completes the real processing of downloading the KD payload. In addition to the Nonce and HASH payloads, the member-initiator identifies the group it wishes to join through the ISAKMP ID payload. The GCKS responder informs the member of the current value of the sequence number in the SEQ payload; the sequence number orders the GROUPKEY-PUSH datagrams (section 4); the member MUST check to see that the sequence number is greater than in the previous SEQ payload the member holds for the group (if it holds any) before installing any new SAs . The SEQ payload MUST be present if the SA payload contains an SA KEK attribute. The GCKS responder informs the member of the cryptographic policies of the group in the SA payload, which describes the DOI, KEK and/or TEK keying material, and authentication transforms. The SPIs are also determined by the GCKS and downloaded in the SA payload chain (see section 5.2). The SA KEK attribute contains the ISAKMP cookie pair for the Re-key SA, which is not negotiated but downloaded. The SA TEK attribute contains an SPI as defined in section 5.4 of this document. The second message downloads this SA payload. If a Re-key SA is defined in the SA payload, then KD will contain the KEK; if one or more Data-security SAs are defined in the SA payload, KD will contain the TEKs. This is Baugher, et. al. Standards Track - Expires January, 2002 7 The GDOI Domain of Interpretation July, 2002 useful if there is an initial set of TEKs for the particular group and can obviate the need for future TEK GROUPKEY-PUSH messages (described in section 4). As described above, the member may establish an identity in the GROUPKEY-PULL exchange in an optional CERT payload that is separate from the Phase 1 identity. When the member passes a new CERT, a proof of possession (POP) payload accompanies it. The POP payload demonstrates that the member or GCKS has used the very secret that authenticates it. POP_I is an ISAKMP SIG payload containing a hash including the nonces Ni and Nr signed by the member, when the member passes a CERT, signed by the Group Owner to prove its authorization. POP_R contains the hash including the concatenated nonces Ni and Nr signed by the GCKS, when the GCKS passes a CERT, signed by the group owner, to prove its authority to provide keys for a particular group. The use of the nonce pair for the POP payload, transformed through a pseudo-random function (prf) and encrypted, is designed to withstand compromise of the Phase 1 key. Implementation of the CERT and POP payloads is OPTIONAL. 3.2.1 Perfect Forward Secrecy If PFS is desired and the optional KE payload is used in the exchange, then both sides compute a DH secret and use it to protect the new keying material contained in KD. The GCKS responder will xorBaugher, et. al. Standards Track - Expires July, 2002 7 The GDOI Domain of Interpretation February, 2002the DH secret with the KD payload and send it to the member Initiator, which recovers the KD by repeating this operation as in the Oakley IEXTKEY procedure [RFC2412]. Implementation of the KE payload is OPTIONAL. 3.2.2 ISAKMP Header Initialization Cookies are used in the ISAKMP header as a weak form of denial of service protection. The GDOI GROUPKEY-PULL exchange uses cookies according to ISAKMP [RFC2408]. Next Payload identifies an ISAKMP or GDOI payload (see Section 5.0). Major Version is 1 and Minor Version is 0 according to ISAKMP [RFC2408, Section 3.1]. The Exchange Type has value24032 for the GDOI GROUPKEY-PULL exchange. Flags, Message ID, and Length are according to ISAKMP [RFC2408, Section 3.1] 3.3 Initiator Operations Before a group member (GDOI initiator) contacts the GCKS, it must determine the group identifier and acceptable Phase 1 policy via an out-of-band method such as SDP. Phase 1 is initiated using the GDOI DOI in the SA payload. Once Phase 1 is complete the initiator state machine moves to the GDOI protocol. Baugher, et. al. Standards Track - Expires January, 2002 8 The GDOI Domain of Interpretation July, 2002 To construct the first GDOI message the initiator chooses Ni and creates a nonce payload, builds an identity payload including the group identifier, and generates HASH(1). Upon receipt of the second GDOI message, the initiator validates HASH(2), extracts the nonce Nr, and interprets the SA payload. If the policy in the SA payload is acceptable (e.g., the security protocol and cryptographic protocols can be supported by the initiator), the initiator continues the protocol. If the group policy uses certificates for authorization, the initiator generates a hash including Ni and Nr and signs it. This becomes the contents of the POP payload. If necessary, a CERT payload is constructed which holds the public key corresponding to the private key used to sign the POP payload. The initiator constructs the third GDOI message by including the CERT and POP payloads (if needed) and creating HASH(3). Upon receipt of the fourth GDOI messages, the initiator validates HASH(4). If the responder sent CERT and POP_R payloads, the POP signature is validated.Baugher, et. al. Standards Track - Expires July, 2002 8 The GDOI Domain of Interpretation February, 2002If a SEQ payload is present, the sequence number in the SEQ payload must be checked against any previously received sequence number for this group. If it is less than the previously received number, it should be considered stale and ignored. This could happen if two GROUPKEY-PULL messages happened in parallel, and the sequence number changed between the times the results of two GROUPKEY-PULL messages were returned from the GCKS. The initiator interprets the KD key packets, matching the SPIs in the key packets to SPIs previously sent in the SA payloads identifying particular policy. For TEKs, once the keys and policy are matched, the initiator is ready to send or receive packets matching the TEK policy. (If policy and keys had been previously received for this TEK policy, the initiator may decide instead to ignore this TEK policy in case it is stale.) If this group has a KEK, the KEK policy and keys are marked as ready for use. 3.4 Receiver Operations The GCKS (responder) passively listens for incoming requests from group members. The Phase 1 authenticates the group member and sets up the secure session with them. Upon receipt of the first GDOI message the GCKS validates HASH(1), extracts the Nr and group identifier in the ID payload. It verifies that its database contains the group information for the group identifier.The GCKS constructs the second GDOI message, includingBaugher, et. al. Standards Track - Expires January, 2002 9 The GDOI Domain of Interpretation July, 2002 The GCKS constructs the second GDOI message, including a nonce Nr, and the policy for the group in an SA payload, followed by SA TEK payloads for traffic SAs, and SA KEK policy (if the group controller will be sending Re-key messages to the group). Upon receipt of the third GDOI message the GCKS validates HASH(3). If the initiator sent CERT and POP_I payloads, the POP signature is validated. The GCKS constructs the fourth GDOI message, including the SEQ payload (if the GCKS sends rekey messages), the KD payload containing keys corresponding to policy previously sent in the SA TEK and SA KEK payloads, and the CERT and POP payloads (if needed). 4.0 GROUPKEY-PUSH Message GDOI sends control information securely using group communications. Typically this will be using IP multicast distribution of a GROUPKEY- PUSH message but it can also be "pushed" using unicast delivery if IP multicast is not possible. The GROUPKEY-PUSH message replaces a Re- key SA KEK or KEK array, and/or creates a new Data-security SA (see section 1.3).Baugher, et. al. Standards Track - Expires July, 2002 9 The GDOI Domain of Interpretation February, 2002Member GCKS or Delegate ------ ---------------- <---- HDR*, SEQ, SA, KD, [CERT,] SIG * Protected by the Re-key SA KEK; encryption occurs after HDR HDR is defined below. The SEQ payload is defined in the Payloads section. The SA defines the policy (e.g. protection suite) and attributes (e.g. SPI) for a Re-key and/or Data-security SAs. The GCKS or delegate optionally provides a CERT payload for verification of the SIG. KD is the key download payload as described in the Payloads section. The SIG payload is a signature of a hash of the entire message before encryption (including the header and excluding the SIG payload itself), prefixed with the string "rekey". The prefixed string ensures that the signature of the Rekey datagram cannot be used for any other purpose in the GDOI protocol. If the SA defines an LKH KEK array or single KEK, KD contains a KEK or KEK array for a new Re-key SA, which has a new cookie pair. When the KD payload carries a new SA KEK attribute (section 5.3), a Re-key SA is replaced with a new SA having the same group identifier (ID specified in message 1 of section 3.1) and incrementing the same sequence counter, which is initialized in message 4 of section 3.1. If the SA defines an SA TEK payload, this informs the member that a Baugher, et. al. Standards Track - Expires January, 2002 10 The GDOI Domain of Interpretation July, 2002 new Data-security SA has been created, with keying material carried in KD (Section 5.5). If the SA defines a large LKH KEK array (e.g., during group initialization and batched rekeying), parts of the array MAY be sent in different unique GROUPKEY-PUSH datagrams. However, each of the GROUPKEY-PUSH datagrams MUST be a fully formed GROUPKEY-PUSH datagram. This results in each datagram containing a sequence number and the policy in the SA payload which corresponds to the KEK array portion sent in the KD payload. 4.1 Perfect Forward Secrecy (PFS) The GROUPKEY-PUSH message is protected by the group KEK though in all cases, the GROUPKEY-PUSH message carries new key downloads, among other information. A freshly generated secret must protect the key download for the GROUPKEY-PUSH message to have PFS. This issue is for further study. 4.2 Forward and Backward Access Control Through GROUPKEY-PUSH, the GDOI supports algorithms such as LKH that have the property of denying access to a new group key by a member removed from the group (forward access control) and to an old group key by a member added to the group (backward access control). An unrelated notion to PFS, "forward access control" and "backwardBaugher, et. al. Standards Track - Expires July, 2002 10 The GDOI Domain of Interpretation February, 2002access control" have been called "perfect forward security" and "perfect backward security" in the literature [RFC2627]. Group management algorithms providing forward and backward access control other than LKH have been proposed in the literature, including OFT [OTF]and[NNL].Subset Difference[NNL]. These algorithms could be used with GDOI, but are not specified as a part of this document.4.3 Delegation of Key Management GDOI supports delegation of GROUPKEY-PUSH datagrams through the delegation capabilities of the PKI. However, GDOI does not explicitly specify how the GCKS identifies delegates, but leaves this to the PKI thatSupport for group management algorithms isused by a particular GDOI implementation. 4.4 Use of signature keys The GCKS SHOULD NOT use the same key to signsupported via theSIG payloadKEY_MANAGEMENT_ALGORITHM attribute which is sent in theGROUPKEY-PUSH message as wasSA_KEK payload. GDOI specifies one method by which LKH can be used forauthorization in the GROUPKEY- PULL POP payload. If the same key mustforward and backward access control. Other methods of using LKH, as well as other group management algorithms such as OFT or Subset Difference, may beused,added to GDOI as part of adifferent hash function SHOULDlater document. Any such addition MUST beuseddue to a Standards Action as defined in [RFC2434]. 4.2.1 Forward Access Control Requirements When group membership is altered using abase forgroup management algorithm new SA_TEKs (and their associated keys) are usually also needed. New SAs and keys ensure that members who were denied access can no longer participate in thePOP payload thangroup. If forward access control isused asabase fordesired property of theSIG payload. 4.5 ISAKMP Header Initialization Unlike ISAKMP or IKE, the cookie pair is completely determined bygroup, new SA_TEKs and theGCKS. The cookie pairassociated key packets in theGDOI ISAKMP header identifies the Re-key SA to differentiate the secure groups managed by a GCKS. Thus, GDOI uses the cookie fields as an SPI Next Payload identifies an ISAKMP or GDOIKD payload(see Section 5.0). Major Version is 1 and Minor Version is 0 according to ISAKMP [RFC2408, Section 3.1]. The Exchange Type has value 241 for the GDOI GROUPKEY-PUSH message. Flags MUST have the Encryption bit set according to [RFC2008, Section 3.1]. All other bits MUST be set to zero. Message IDMUST NOT beset to zero. Length is according to ISAKMP [RFC2408, Section 3.1] 4.6 Deletion of SAs There are times the GCKS may want to signal to receivers to delete SAs, for example at the end of a broadcast. Deletion of keys may be accomplished by sending an ISAKMP Delete payload [RFC2408, Section 3.15] as part of a GDOI GROUPKEY-PUSH message. One or more Delete payloads MAY be placed following the SEQ payloadincluded in a GROUPKEY-PUSHmessage. If a GCKS has no further SAs to send tomessage which changes group membership. Baugher, et. al. Standards Track - ExpiresJuly,January, 2002 11 The GDOI Domain of InterpretationFebruary,July, 2002group members,This is required because theSASA_TEK policy andKD payloads MUST be omitted fromthemessage. The following fields ofassociated key packets in theDelete PayloadKD payload arefurther defined as follows: o The Domain of Interpretation field containsnot protected with theGDOI DOI. o The Protocol-Id field contains TEK protocol id values defined in Section 5.4 of this document. To delete a KEK SA,new KEK. A second GROUPKEY-PUSH message can deliver thevalue of zero MUSTnew SA_TEKS and their associated keys because it will beused asprotected with theprotocol id. Note that only one protocol id value cannew KEK, and thus will not bedefined in a Delete payload.visible to the members who were denied access. Ifa TEK SA and aforward access control policy for the group includes keeping group policy changes from members that are denied access to the group, then two sequential GROUPKEY-PUSH messages changing the group KEKSA must be deleted, they mustMUST be sentin different Delete payloads. 4.7 GCKS Operations GCKS or its delegate may initate a Rekeyby the GCKS. The first GROUPKEY-PUSH message creates a new KEK forone of several reasons, e.g.thegroup membership has changed or keysgroup. Group members which areduedenied access will not be able toexpire. To beginaccess therekey datagramnew KEK, but will see theGCKS builds an ISAKMP HDR withgroup policy since thecorrect cookie pair, and a SEQ payload that includes a sequence number whichGROUPKEY-PUSH message isone greater thanprotected under theprevious rekey datagram. An SA payload is then added. This is identical in structurecurrent KEK. A subsequent GROUPKEY-PUSH message containing the changed group policy andmeaning to a SA payload sent in a GROUPKEY-PULL exchange. If there are changes toagain changing the KEK(inallows complete forward access control. A GROUPKEY-PUSH message MUST NOT change thecase ofpolicy without creating astatic KEK)new KEK. If other methods of using LKH orinother groupmembership (in the case of LKH) an SA_KEK attribute ismanagement algorithms are added to GDOI, those methods MAY remove theSA. If there are one or more new TEKs then SA_TEK attributes are addedabove restrictions requiring multiple GROUPKEY-PUSH messages, providing those methods specify how forward access control policy is maintained within a single GROUPKEY-PUSH message. 4.3 Delegation of Key Management GDOI supports delegation of GROUPKEY-PUSH datagrams through the delegation capabilities of the PKI. However, GDOI does not explicitly specify how the GCKS identifies delegates, but leaves this todescribethe PKI thatpolicy. A KD payload is then added. Thisisidentical in structure and meaning toused by aKDparticular GDOI implementation. 4.4 Use of signature keys The GCKS SHOULD NOT use the same key to sign the SIG payloadsent in a GROUPKEY-PULL exchange. If an SA_KEK attribute was includedin theSA payload then corresponding KEK keys (or a KEK array) is included. TEK keys are sentGROUPKEY-PUSH message as was used foreach SA_TEK attribute includedauthorization in theSAGROUPKEY- PULL POP payload.The payloads followingIf theHDR are then encrypted usingsame key must be used, a different hash function SHOULD be used as a base for thecurrent KEK encryption key. A CERTPOP payload than isadded if the initiator needs to provide its certificate. Finally, the initiator hashesused as a base for thestring "rekey" followed bySIG payload. 4.5 ISAKMP Header Initialization Unlike ISAKMP or IKE, thekey management message already formed. The hashcookie pair issigned, placed in a SIG payload and added tocompletely determined by thedatagram.GCKS. Thedatagram can now be sent. 4.8 Group Member Operations A group member receiving the GROUPKEY-PUSH datagram matches thecookie pair in the GDOI ISAKMPHDRheader identifies the Re-key SA to differentiate the secure groups managed by a GCKS. Thus, GDOI uses the cookie fields as anexisting SA. The messageSPI Next Payload identifies an ISAKMP or GDOI payload (see Section 5.0). Major Version isdecrypted,1 andthe form of the datagramMinor Version isvalidated. This weeds out obvious ill-formed messages (which may be sent as part of a Denial of Service attack on0 according to ISAKMP [RFC2408, Section 3.1]. The Exchange Type has value 33 for thegroup).GDOI GROUPKEY-PUSH message. Baugher, et. al. Standards Track - ExpiresJuly,January, 2002 12 The GDOI Domain of InterpretationFebruary,July, 2002The signature of the decrypted message is then validated, possibly usingFlags MUST have theCERT payload if itEncryption bit set according to [RFC2008, Section 3.1]. All other bits MUST be set to zero. Message ID MUST be set to zero. Length isincluded. The sequence number inaccording to ISAKMP [RFC2408, Section 3.1] 4.6 Deletion of SAs There are times theSEQ payload is validatedGCKS may want toensure that it is greater thansignal to receivers to delete SAs, for example at thepreviously received sequence number, and that it fits withinend of awindowbroadcast. Deletion of keys may be accomplished by sending an ISAKMP Delete payload [RFC2408, Section 3.15] as part ofacceptable values. The SA and KD payloads are processed which results inanewGDOIRekey SA (ifGROUPKEY-PUSH message. One or more Delete payloads MAY be placed following theSASEQ payloadincluded an SA_KEK attribute) and/or new IPsecin a GROUPKEY-PUSH message. If a GCKS has no further SAsbeing addedto send to group members, thesystem. 5.0 PayloadsSA andDefined Values This document specifies use of several ISAKMP payloads, which are defined in accordance with RFC2408.KD payloads MUST be omitted from the message. The followingpayloads are extended or further specified. Nextfields of the Delete PayloadType Value ----------------- ----- Security Association (SA) 1 Identification (ID) 5 Nonce (N) 10 Several new payload formatsarerequired in the group security exchanges.further defined as follows: o ThePayload types forDomain of Interpretation field contains thenew headers areGDOI DOI. o The Protocol-Id field contains TEK protocol id values defined inthe ISAKMP "Private USE" range. Next Payload Type Value ----------------- ----- RESERVED 128 - 129 SASection 5.4 of this document. To delete a KEKPayload (SAK) 130 SA TEK Payload (SAT) 131 Key Download (KD) 132 Sequence Number (SEQ) 133 ProofSA, the value ofPossession (POP) 134 RESERVED 135 - 200 GDOI Private Use 201 - 255 5.1 Identification Payload The Identification Payload iszero MUST be usedto identify a group identityas the protocol id. Note thatwill lateronly one protocol id value can beassociated with Security Associations for the group. A group identity may map todefined in aspecific IP multicast group,Delete payload. If a TEK SA and a KEK SA must be deleted, they must be sent in different Delete payloads. 4.7 GCKS Operations GCKS or its delegate mayspecifyinitiate amore general identifier, such asRekey message for onethat represents a setofrelated multicast streams. The Identification Payload is defined as follows: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+several reasons, e.g. the group membership has changed or keys are due to expire. To begin the rekey datagram the GCKS builds an ISAKMP HDR with the correct cookie pair, and a SEQ payload that includes a sequence number which is one greater than the previous rekey datagram. An SA payload is then added. This is identical in structure and meaning to a SA payload sent in a GROUPKEY-PULL exchange. If there are changes to the KEK (in the case of a static KEK) or in group membership (in the case of LKH) an SA_KEK attribute is added to the SA. If there are one or more new TEKs then SA_TEK attributes are added to describe that policy. A KD payload is then added. This is identical in structure and meaning to a KD payload sent in a GROUPKEY-PULL exchange. If an SA_KEK attribute was included in the SA payload then corresponding KEK keys (or a KEK array) is included. TEK keys are sent for each SA_TEK attribute included in the SA payload. Baugher, et. al. Standards Track - ExpiresJuly,January, 2002 13 The GDOI Domain of InterpretationFebruary,July, 2002! Next Payload ! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! ID Type ! RESERVE2 ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Identification Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The Identification Payload fields are defined as follows: o Next Payload (1 octet) - Identifier for theA CERT payloadtype ofis added if thenext payload ininitiator needs to provide its certificate. In themessage. Ifpenultimate step thecurrent payload isinitiator hashes thelast instring "rekey" followed by themessage, this field will be zero (0). o RESERVED (1 octet) - Unused, must be zero (0). o Payload Length (2 octets) - Length,key management message already formed. The hash is signed, placed inoctets, of the identification data, includinga SIG payload and added to thegeneric header. o Identification Type (1 octet) - Value describingdatagram. Lastly theidentity information found inpayloads following theIdentification Data field. o RESERVED2 (2 octets) - Unused, must be zero (0). O Identification Data (variable length) - Value, as indicated byHDR are encrypted using theIdentification Type. 5.1.1 Identification Type Valuescurrent KEK encryption key. Thefollowing table listsdatagram can now be sent. 4.8 Group Member Operations A group member receiving theassigned values forGROUPKEY-PUSH datagram matches theIdentification Type field foundcookie pair in theIdentification Payload. ID Type Value ------- ----- RESERVED 0 - 10 ID_KEY_ID 11 RESERVED 12 - 127 Private Use 128 - 255 5.1.1.1 ID_KEY_ID InISAKMP HDR to an existing SA. The message is decrypted, and thecontextform of the datagram is validated. This weeds out obvious ill-formed messages (which may be sent as part of aGDOI ID payload, ID_KEY_ID specifies a four (4)- octet group identifier. 5.2 Security Association PayloadDenial of Service attack on the group). TheSecurity Associationsignature of the decrypted message is then validated, possibly using the CERT payload if it isdefinedincluded. The sequence number inRFC 2408. FortheGDOI,SEQ payload is validated to ensure that it isused bygreater than theGCKS to assert security attributes for both Re-keypreviously received sequence number, andData-securitythat it fits within a window of acceptable values. The SA and KD payloads are processed which results in a new GDOI Rekey SA (if the SA payload included an SA_KEK attribute) and/or new IPsec SAs being added to the system. 5.0 Payloads and Defined Values This document specifies use of several ISAKMP payloads, which are defined in accordance with RFC2408. The following payloads are extended or further specified. Next Payload Type Value ----------------- ----- Security Association (SA) 1 Identification (ID) 5 Nonce (N) 10 Several new payload formats are required in the group security exchanges. The Payload types for the new headers are defined in the ISAKMP "Private USE" range. Next Payload Type Value ----------------- ----- RESERVED 128 - 129 SA KEK Payload (SAK) 130 SA TEK Payload (SAT) 131 Key Download (KD) 132 Sequence Number (SEQ) 133 Proof of Possession (POP) 134 Baugher, et. al. Standards Track - Expires January, 2002 14 The GDOI Domain of Interpretation July, 2002 RESERVED 135 - 200 GDOI Private Use 201 - 255 5.1 Identification Payload The Identification Payload is used to identify a group identity that will later be associated with Security Associations for the group. A group identity may map to a specific IP multicast group, or may specify a more general identifier, such as one that represents a set of related multicast streams. The Identification Payload is defined as follows: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! Next Payload ! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Baugher, et. al. Standards Track - Expires July, 2002 14 The GDOI Domain of Interpretation February, 2002!DOIID Type !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Situation ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! SA Attribute Next Payload ! RESERVED2RESERVE2 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Identification Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TheSecurity AssociationIdentification Payload fields are defined as follows: o Next Payload (1 octet) -IdentifiesIdentifier for the payload type of the next payloadforin theGROUPKEY-PULL ormessage. If theGROUPKEY-PUSH message as defined above. The nextcurrent payloadMUST NOT be a SAK Payload or SAT Payload type, butis thenext non-Security Association type payload.last in the message, this field will be zero (0). o RESERVED (1 octet) -MustUnused, must bezero.zero (0). o Payload Length (2 octets)is the octet length- Length, in octets, of thecurrent payloadidentification data, including the genericheader and all TEK and KEK payloads. o DOI (4 octets) - Is the GDOI, which is value 196 pending assignment by the IANA. o Situation (4 octets) - Must be zero.header. oSA Attribute Next PayloadIdentification Type (1 octet) -Must be either a SAK Payload or a SAT Payload. See section 5.3.2 for a description of which circumstances are required for each payload type to be present.Value describing the identity information found in the Identification Data field. oRESERVEDRESERVED2 (2 octets) -MustUnused, must bezero. 5.2.1 Payloadszero (0). O Identification Data (variable length) - Value, as indicated by the Identification Type. 5.1.1 Identification Type Values The following table lists theSA payload Payloads that define specific security association attributesassigned values for theKEK and/or TEKs used by the group MUST followIdentification Type field found in theSA payload. How manyIdentification Payload. ID Type Value ------- ----- RESERVED 0 - 10 ID_KEY_ID 11 RESERVED 12 - 127 Baugher, et. al. Standards Track - Expires January, 2002 15 The GDOI Domain ofeach payload is dependant upon the group policy. There may be zero or one SAK Payloads, and zero or more SAT Payloads, where either one SAK or SAT payload MUST be present. This latitude allows for various group policies to be accommodated. For example if the group policy does not requireInterpretation July, 2002 Private Use 128 - 255 5.1.1.1 ID_KEY_ID In theusecontext of aRe-key SA, the GCKS would not need to send an SA KEK attribute to the group member since all SA updates would be performed using the Registration SA. Alternatively, group policy might use a Re-key SA but choose to downloadGDOI ID payload, ID_KEY_ID specifies aKEK to thefour (4)- octet groupmember only as part of the Registration SA. Therefore, the KEK policy (in the SA KEK attribute) would not be necessary as part ofidentifier. 5.2 Security Association Payload The Security Association payload is defined in RFC 2408. For theRe-key SA message SA payload. Specifying multiple SATs allows multiple sessions to be part ofGDOI, it is used by thesame group and multiple streamsGCKS tobe associated with a session (e.g., video, audio, and text) but each with individual security association policy. Baugher, et. al. Standards Track - Expires July, 2002 15 The GDOI Domain of Interpretation February, 2002 5.3 SA KEK payload The SA KEK (SAK) payload containsassert security attributes forthe KEK method for a group and parameters specific to the GROUPKEY-PULL operation. The sourceboth Re-key anddestination identities describe the identities used for the GROUPKEY-PULL datagram.Data-security SAs 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Next Payload ! RESERVED ! Payload Length !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ !ProtocolDOI !SRC ID Type ! SRC ID Port ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! !SRC ID Data Len! SRC Identification Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! DST ID Type ! DST ID Port !DST ID Data Len! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! DST Identification Data ~+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! !! ~ SPI ~ !Situation ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! !POP AlgorithmSA Attribute Next Payload !POP Key LengthRESERVED2 ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!~ KEK Attributes ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!TheSAKSecurity Association Payload fields are defined as follows: o Next Payload (1 octet) - Identifies the next payload for the GROUPKEY-PULL or the GROUPKEY-PUSHmessage.message as defined above. Theonly validnext payloadtypes for this message areMUST NOT be aSATSAK Payload orzero to indicate there is no SA TEKSAT Payload type, but the next non-Security Association type payload. o RESERVED (1 octet) - Must be zero. o Payload Length (2 octets)- Lengthis the octet length ofthis payload,the current payload including the generic header and all TEK and KEKattributes.payloads. oProtocol (1 octet)DOI (4 octets) -Value describing an IP protocol ID (e.g., UDP/TCP) forIs therekey datagram.GDOI, which is value 196 pending assignment by the IANA. oSRC ID TypeSituation (4 octets) - Must be zero. o SA Attribute Next Payload (1 octet) -Value describing the identity information found in the SRC Identification Data field. Defined values are specified by the IPSEC Identification TypeMust be either a SAK Payload or a SAT Payload. See sectionin the IANA isakmpd-registry [ISAKMP-REG].5.3.2 for a description of which circumstances are required for each payload type to be present. oSRC ID PortRESERVED (2 octets) -Value specifying a port associated withMust be zero. 5.2.1 Payloads following thesource Id. A value of zero meansSA payload Payloads that define specific security association attributes for theSRC ID Port field should be ignored. Baugher, et. al. Standards Track - Expires July,KEK and/or TEKs used by the group MUST follow the SA payload. How many of each payload is dependant upon the group policy. There may be Baugher, et. al. Standards Track - Expires January, 2002 16 The GDOI Domain of InterpretationFebruary,July, 2002o SRC ID Data Len (1 octet) - Value specifyingzero or one SAK Payloads, and zero or more SAT Payloads, where either one SAK or SAT payload MUST be present. This latitude allows for various group policies to be accommodated. For example if thelengthgroup policy does not require the use of a Re-key SA, theSRC Identification Data field. o SRC Identification Data (variable length) - Value, as indicated byGCKS would not need to send an SA KEK attribute to theSRC ID Type. o DST ID Type (1 octet) - Value describinggroup member since all SA updates would be performed using theidentity information found inRegistration SA. Alternatively, group policy might use a Re-key SA but choose to download a KEK to theDST Identification Data field. Defined values are specified bygroup member only as part of theIPSEC Identification Type section inRegistration SA. Therefore, theIANA isakmpd-registry [ISAKMP-REG]. o DST ID Prot (1 octet) - Value describing an IP protocol ID (e.g., UDP/TCP). o DST ID Port (2 octets) - Value specifying a port associated withKEK policy (in thesource Id. o DST ID Data Len (1 octet) - Value specifyingSA KEK attribute) would not be necessary as part of thelengthRe-key SA message SA payload. Specifying multiple SATs allows multiple sessions to be part of theDST Identification Data field. o DST Identification Data (variable length) - Value, as indicated bysame group and multiple streams to be associated with a session (e.g., video, audio, and text) but each with individual security association policy. 5.3 SA KEK payload The SA KEK (SAK) payload contains security attributes for theDST ID Type. o SPI (16 octets) - Security Parameter IndexKEK method for a group and parameters specific to theKEK.GROUPKEY-PULL operation. TheSPI must besource and destination identities describe theISAKMP Header cookie pair whereidentities used for thefirstGROUPKEY-PULL datagram. 0 1 2 3 0 1 2 3 4 5 6 7 8octets become the "Initiator Cookie" field of the GROUPKEY-PUSH message ISAKMP HDR, and the second9 0 1 2 3 4 5 6 7 8octets become the "Responder Cookie" in the same HDR. As described above, these cookies are assigned by the GCKS. o POP Algorithm (2 octets) - The POP payload algorithm. Defined values are specified in the following table. If no POP algorithm is defined by the KEK policy this field must be zero. Algorithm Type Value -------------- ----- RESERVED9 0POP_ALG_RSA1POP_ALG_DSS2POP_ALG_ECDSS3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Next Payload ! RESERVED4-127 Private Use 128-255 o POP Key Length (2 octets) -! Payload Lengthof the POP payload key. If no POP algorithm is defined in the KEK policy this field must be zero. o KEK Attributes - Contains KEK policy attributes associated with the group. The following sections describe the possible attributes. Any or all attributes may be optional, depending on the group policy. 5.3.1! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Protocol ! SRC ID Type ! SRC ID Port ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! !SRC ID Data Len! SRC Identification Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! DST ID Type ! DST ID Port !DST ID Data Len! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! DST Identification Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! ! ~ SPI ~ ! ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! POP Algorithm ! POP Key Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ KEK Attributes ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! The SAK Payload fields are defined as follows: o Next Payload (1 octet) - Identifies the next payload for the GROUPKEY-PULL or the GROUPKEY-PUSH message. The only valid next payload types for this message are a SAT Payload or zero to indicate there is no SA TEK payload. Baugher, et. al. Standards Track - ExpiresJuly,January, 2002 17 The GDOI Domain of InterpretationFebruary,July, 2002The following attributes mayo RESERVED (1 octet) - Must bepresent in a SAK Payload. The attributes must followzero. o Payload Length (2 octets) - Length of this payload, including theformat definedKEK attributes. o Protocol (1 octet) - Value describing an IP protocol ID (e.g., UDP/TCP) for the rekey datagram. o SRC ID Type (1 octet) - Value describing the identity information found inISAKMP [RFC2408] section 3.3. Inthetable, attributes that are defined as TV are marked as Basic (B); attributes that are defined as TLVSRC Identification Data field. Defined values aremarked as Variable (V).specified by the IPSEC Identification Type section in the IANA isakmpd-registry [ISAKMP-REG]. o SRC IDClassPort (2 octets) - ValueType -------- ----- ---- RESERVED 0 KEK_MANAGEMENT_ALGORITHM 1 B KEK_ALGORITHM 2 B KEK_KEY_LENGTH 3 B KEK_KEY_LIFETIME 4 V SIG_HASH_ALGORITHM 5 B SIG_ALGORITHM 6 B SIG_KEY_LENGTH 7 B KE_OAKLEY_GROUP 10 B The following attributes may only be included inspecifying aGROUPKEY-PULL message: KEK_MANAGEMENT_ALGORITHM, KE_OAKLEY_GROUP. 5.3.2 KEK_MANAGEMENT_ALGORITHM The KEK_MANAGEMENT_ALGORITHM class specifiesport associated with thegroup KEK management algorithm used to provide forward or backward access control (i.e., used to exclude group members). Defined values are specified insource Id. A value of zero means that thefollowing table. KEK ManagementSRC ID Port field should be ignored. o SRC ID Data Len (1 octet) - Value specifying the length of the SRC Identification Data field. o SRC Identification Data (variable length) - Value, as indicated by the SRC ID Type. o DST ID Type (1 octet) - Value------------------- ----- RESERVED 0 LKH 1 RESERVED 2-127 Private Use 128-255 5.3.3 KEK_ALGORITHM The KEK_ALGORITHM class specifiesdescribing theencryption algorithm using withidentity information found in theKEK.DST Identification Data field. Defined values are specifiedinby thefollowing table. AlgorithmIPSEC Identification Type section in the IANA isakmpd-registry [ISAKMP-REG]. o DST ID Prot (1 octet) - Value-------------- ----- RESERVED 0 KEK_ALG_DES 1 KEK_ALG_3DES 2 KEK_ALG_AES 3 RESERVED 4-127 Private Use 128-255 ]. A GDOI implementation MUST supportdescribing an IP protocol ID (e.g., UDP/TCP). o DST ID Port (2 octets) - Value specifying a port associated with thefollowing algorithm attribute KEK_ALG_3DES. Baugher, et. al. Standards Tracksource Id. o DST ID Data Len (1 octet) -Expires July, 2002 18 The GDOI DomainValue specifying the length ofInterpretation February, 2002 5.3.3.1 KEK_ALG_DES This algorithm specifies DES usingtheCipher Block Chaining (CBC) mode as described in [FIPS81]. 5.3.3.2 KEK_ALG_3DES This algorithm specifies 3DES using three independent keys as described in "Keying Option 1" in [FIPS46-3]. 5.3.3.3 KEK_ALG_AES This algorithm specifies AES as described in [FIPS197]. The mode of operation for AES is Cipher Block Chaining (CBC)DST Identification Data field. o DST Identification Data (variable length) - Value, asrecommended in [AES- MODES]. 5.3.4 KEK_KEY_LENGTH The KEK_KEY_LENGTH class specifies the KEK Algorithm key length (in bits). 5.3.5 KEK_KEY_LIFETIME The KEK_KEY_LIFETIME class specifiesindicated by themaximum timeDST ID Type. o SPI (16 octets) - Security Parameter Index forwhichtheKEK is valid.KEK. TheGCKS may refreshSPI must be theKEK at any time beforeISAKMP Header cookie pair where theendfirst 8 octets become the "Initiator Cookie" field of thevalid period. The value is a four (4) octet number defining a valid time periodGROUPKEY-PUSH message ISAKMP HDR, and the second 8 octets become the "Responder Cookie" inseconds. 5.3.6 SIG_HASH_ALGORITHM SIG_HASH_ALGORITHM specifiestheSIG payload hash algorithm. The following tables definesame HDR. As described above, these cookies are assigned by thealgorithms for SIG_HASH_ALGORITHM.GCKS. o POP AlgorithmType Value -------------- ----- RESERVED 0 SIG_HASH_MD5 1 SIG_HASH_SHA1 2 RESERVED 3-127 PRIVATE USE 128-255 SIG_HASH_ALGORITHM is not required if the SIG_ALGORITHM is SIG_ALG_DSS or SIG_ALG_ECDSS, which imply SIG_HASH_SHA1. 5.3.7 SIG_ALGORITHM(2 octets) - TheSIG_ALGORITHM class specifies the SIGPOP payloadsignaturealgorithm. Defined values are specified in the following table. If no POP algorithm is defined by the KEK policy this field must be zero. Algorithm Type Value -------------- ----- Baugher, et. al. Standards Track - ExpiresJuly,January, 20021918 The GDOI Domain of InterpretationFebruary,July, 2002 RESERVED 0SIG_ALG_RSAPOP_ALG_RSA 1SIG_ALG_DSSPOP_ALG_DSS 2SIG_ALG_ECDSSPOP_ALG_ECDSS 3 RESERVED 4-127 Private Use 128-255]. A GDOI implementation MUST supporto POP Key Length (2 octets) - Length of thefollowingPOP payload key. If no POP algorithmattribute: SIG_ALG_RSA. 5.3.7.1 SIG_ALG_RSA This algorithm specifies the RSA digital signature algorithm as describedis defined in[RSA]. 5.3.7.2 SIG_ALG_DSS This algorithm specifiestheDSS digital signature algorithm as described in [FIPS186-2]. 5.3.7.3 SIG_ALG_ECDSS This algorithm specifiesKEK policy this field must be zero. o KEK Attributes - Contains KEK policy attributes associated with theElliptic Curve digital signature algorithm as described in [FIPS186-2]. 5.3.8 SIG_KEY_LENGTHgroup. TheSIG_KEY_LENGTH class specifiesfollowing sections describe thelength ofpossible attributes. Any or all attributes may be optional, depending on theSIG payload key. 5.3.9 KE_OAKLEY_GROUPgroup policy. 5.3.1 KEK Attributes TheKE_OAKLEY_GROUP class defines the OAKLEY Group used to compute the PFS secretfollowing attributes may be present in a SAK Payload. The attributes must follow theoptional KE payload of the GDOI GROUPKEY-PULL exchange. This attribute uses the values assigned to Group Definitionsformat defined in ISAKMP [RFC2408] section 3.3. In theIANA IPsec-registry [IPSEC-REG]. 5.4 SA TEK Payload The SA TEK (SAT) payload contains securitytable, attributesfor a single TEK associated with a group. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9that are defined as TV are marked as Basic (B); attributes that are defined as TLV are marked as Variable (V). ID Class Value Type -------- ----- ---- RESERVED 0 KEK_MANAGEMENT_ALGORITHM 1 B KEK_ALGORITHM 2 B KEK_KEY_LENGTH 3 B KEK_KEY_LIFETIME 4 V SIG_HASH_ALGORITHM 5 B SIG_ALGORITHM 6 B SIG_KEY_LENGTH 7 B KE_OAKLEY_GROUP 89 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Next Payload ! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Protocol-ID ! TEK Protocol-Specific Payload ~ +-+-+-+-+-+-+-+-+ ~ ~ ~B The following attributes may only be included in a GROUPKEY-PULL message: KEK_MANAGEMENT_ALGORITHM, KE_OAKLEY_GROUP. 5.3.2 KEK_MANAGEMENT_ALGORITHM The KEK_MANAGEMENT_ALGORITHM class specifies the group KEK management algorithm used to provide forward or backward access control (i.e., used to exclude group members). Defined values are specified in the following table. KEK Management Type Value ------------------- ----- RESERVED 0 LKH 1 RESERVED 2-127 Private Use 128-255 Baugher, et. al. Standards Track - ExpiresJuly,January, 20022019 The GDOI Domain of InterpretationFebruary,July, 2002+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!5.3.3 KEK_ALGORITHM TheSAT Payload fields are defined as follows: o Next Payload (1 octet) - Identifies the next payload forKEK_ALGORITHM class specifies theGROUPKEY-PULL orencryption algorithm using with theGROUPKEY-PUSH message. The only valid next payload types for this message are another SAT Payload or zero to indicate thereKEK. Defined values areno more security association attributes. o RESERVED (1 octet) - Must be zero. o Payload Length (2 octets) - Length of this payload, including the TEK Protocol-Specific Payload. o Protocol-ID (1 octet) - Value specifyingspecified in theSecurity Protocol. Thefollowingtable defines values for the Security Protocol Protocol IDtable. Algorithm Type Value------------------------- ----- RESERVED 0GDOI_PROTO_IPSEC_ESPKEK_ALG_DES 1 KEK_ALG_3DES 2 KEK_ALG_AES 3 RESERVED2-127 PRIVATE USE4-127 Private Use 128-255o TEK Protocol-Specific Payload (variable) - PayloadA GDOI implementation MUST support the KEK_ALG_3DES algorithm attribute. If a KEK_MANAGEMENT_ALGORITHM is defined whichdescribesdefines multiple keys (e.g., LKH), and if theattributes specificmanagement algorithm does not specify the algorithm for those keys, then theProtocol-ID. 5.4.1 PROTO_IPSEC_ESP The TEK Protocol-Specific payloadalgorithm defined by the KEK_ALGORITHM attribute MUST be used forESP isall keys which are included asfollows: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Protocol ! SRC ID Type ! SRC ID Port ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! !SRC ID Data Len! SRC Identification Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! DST ID Type ! DST ID Port !DST ID Data Len! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! DST Identification Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Transform ID ! SPI ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! SPI ! RFC 2407 SA Attributes ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!part of the management. 5.3.3.1 KEK_ALG_DES This algorithm specifies DES using the Cipher Block Chaining (CBC) mode as described in [FIPS81]. 5.3.3.2 KEK_ALG_3DES This algorithm specifies 3DES using three independent keys as described in "Keying Option 1" in [FIPS46-3]. 5.3.3.3 KEK_ALG_AES This algorithm specifies AES as described in [FIPS197]. TheSAT Payload fields are definedmode of operation for AES is Cipher Block Chaining (CBC) asfollows: o Protocol (1 octet) - Value describing an IP protocol ID (e.g., UDP/TCP). A valuerecommended in [AES- MODES]. 5.3.4 KEK_KEY_LENGTH The KEK_KEY_LENGTH class specifies the KEK Algorithm key length (in bits). 5.3.5 KEK_KEY_LIFETIME The KEK_KEY_LIFETIME class specifies the maximum time for which the KEK is valid. The GCKS may refresh the KEK at any time before the end ofzero means thattheProtocol field should be ignored.valid period. The value is a four (4) octet number defining a valid time period in seconds. Baugher, et. al. Standards Track - ExpiresJuly,January, 20022120 The GDOI Domain of InterpretationFebruary,July, 2002o SRC ID Type (1 octet) - Value describing the identity information found in5.3.6 SIG_HASH_ALGORITHM SIG_HASH_ALGORITHM specifies theSRC Identification Data field.SIG payload hash algorithm. The following tables define the algorithms for SIG_HASH_ALGORITHM. Algorithm Type Value -------------- ----- RESERVED 0 SIG_HASH_MD5 1 SIG_HASH_SHA1 2 RESERVED 3-127 Private Use 128-255 SIG_HASH_ALGORITHM is not required if the SIG_ALGORITHM is SIG_ALG_DSS or SIG_ALG_ECDSS, which imply SIG_HASH_SHA1. 5.3.7 SIG_ALGORITHM The SIG_ALGORITHM class specifies the SIG payload signature algorithm. Defined values are specifiedby the IPSEC Identification Type sectionin theIANA isakmpd-registry [ISAKMP-REG]. o SRC ID Port (2 octets) -following table. Algorithm Type Valuespecifying a port associated with the source Id.-------------- ----- RESERVED 0 SIG_ALG_RSA 1 SIG_ALG_DSS 2 SIG_ALG_ECDSS 3 RESERVED 4-127 Private Use 128-255 Avalue of zero means thatGDOI implementation MUST support theSRC ID Port field should be ignored. o SRC ID Data Len (1 octet)following algorithm attribute: SIG_ALG_RSA. 5.3.7.1 SIG_ALG_RSA This algorithm specifies the RSA digital signature algorithm as described in [RSA]. 5.3.7.2 SIG_ALG_DSS This algorithm specifies the DSS digital signature algorithm as described in [FIPS186-2]. 5.3.7.3 SIG_ALG_ECDSS This algorithm specifies the Elliptic Curve digital signature algorithm as described in [FIPS186-2]. 5.3.8 SIG_KEY_LENGTH Baugher, et. al. Standards Track -Value specifyingExpires January, 2002 21 The GDOI Domain of Interpretation July, 2002 The SIG_KEY_LENGTH class specifies the length of theSRC Identification Data field. o SRC Identification Data (variable length) - Value, as indicated bySIG payload key. 5.3.9 KE_OAKLEY_GROUP The KE_OAKLEY_GROUP class defines theSRC ID Type. SetOAKLEY Group used tothree bytes of zero for multiple-source multicast groups that use a common TEK for all senders. o DST ID Type (1 octet) - Value describingcompute theidentity information foundPFS secret in theDST Identification Data field. Defined values are specified byoptional KE payload of theIPSEC Identification Type sectionGDOI GROUPKEY-PULL exchange. This attribute uses the values assigned to Group Definitions in the IANAisakmpd-registry [ISAKMP-REG].IPsec-registry [IPSEC-REG]. 5.4 SA TEK Payload The SA TEK (SAT) payload contains security attributes for a single TEK associated with a group. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Next Payload ! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Protocol-ID ! TEK Protocol-Specific Payload ~ +-+-+-+-+-+-+-+-+ ~ ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! The SAT Payload fields are defined as follows: oDST ID ProtNext Payload (1 octet) -Value describing an IP protocol ID (e.g., UDP/TCP). A value of zero means thatIdentifies theDST Id Prot field shouldnext payload for the GROUPKEY-PULL or the GROUPKEY-PUSH message. The only valid next payload types for this message are another SAT Payload or zero to indicate there are no more security association attributes. o RESERVED (1 octet) - Must beignored.zero. oDST ID PortPayload Length (2 octets) -Value specifying a port associated with the source Id. A valueLength ofzero means thatthis payload, including theDST ID Port field should be ignored.TEK Protocol-Specific Payload. oDST ID Data LenProtocol-ID (1 octet) - Value specifying thelength of the DST Identification Data field. o DST Identification Data (variable length) - Value, as indicated bySecurity Protocol. The following table defines values for theDST ID Type. o TransformSecurity Protocol Protocol ID(1 octet) -Valuespecifying which ESP transform is to be used. The list of valid values are defined in the IPSEC ESP Transform Identifiers section of the IANA isakmpd-registry [ISAKMP- REG]. o SPI (4 octets) - Security Parameter Index for ESP.----------- ----- RESERVED 0 GDOI_PROTO_IPSEC_ESP 1 RESERVED 2-127 Private Use 128-255 oRFC 2407 AttributesTEK Protocol-Specific Payload (variable) -ESP Attributes from RFC 2407 Section 4.5. The GDOI supports all IPSEC DOI SA Attributes for PROTO_IPSEC_ESP excluding the Group Description [RFC2407, section 4.5],Payload whichMUST NOT be sent by a GDOI implementation and is ignored by a GDOI implementation if received. All mandatory IPSEC DOIdescribes the attributesare mandatory in GDOI PROTO_IPSEC_ESP. The Authentication Algorithm attribute ofspecific for theIPSEC DOIProtocol-ID. 5.4.1 PROTO_IPSEC_ESP The TEK Protocol-Specific payload for ESP isgroup authentication in GDOI. 5.4.2 Other Security Protocolsas follows: Baugher, et. al. Standards Track - ExpiresJuly,January, 2002 22 The GDOI Domain of InterpretationFebruary,July, 2002Besides ESP, GDOI should serve to establish SAs for secure groups needed by other Security Protocols that operate at the transport, application, and internetwork layers. These other Security Protocols, however, are in the process of being developed or do not yet exist. The following information needs to be provided for a Security Protocol to the GDOI. o The Protocol-ID for the particular Security0 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Protocolo The SPI Size o The method of SPI generation o The transforms, attributes and keys needed by the Security Protocol All Security Protocols must provide the information in the bulleted list above to guide the GDOI implementation for that protocoland will be specified in separate documents. 5.5 Key Download Payload The Key Download Payload contains group keys for the group specified in the SA Payload. These key download payloads can have several security attributes applied to them based upon the security policy of the group as defined by the associated SA Payload. When included as part of the Re-key SA with an optional KE payload, The Key Download Payload will be xor'ed with the new Diffie-Hellman shared secret. The xor operation will begin at the "Number of Key Packets" field. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!!Next PayloadSRC ID Type !RESERVEDSRC ID Port !Payload Length+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! !SRC ID Data Len! SRC Identification Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! DST ID Type ! DST ID Port !DST ID Data Len! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! !Number of Key PacketsDST Identification Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! !RESERVED2Transform ID ! SPI ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!~ Key Packets! SPI ! RFC 2407 SA Attributes ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! TheKey DownloadSAT Payload fields are defined as follows: oNext PayloadProtocol (1 octet) -Identifier for the payload typeValue describing an IP protocol ID (e.g., UDP/TCP). A value of zero means that thenext payload in the message. If the current payload is the last in the message, then thisProtocol fieldwillshould bezero.ignored. oRESERVEDSRC ID Type (1 octet) -Unused, set to zero.Value describing the identity information found in the SRC Identification Data field. Defined values are specified by the IPSEC Identification Type section in the IANA isakmpd-registry [ISAKMP-REG]. oPayload LengthSRC ID Port (2 octets) -LengthValue specifying a port associated with the source Id. A value of zero means that the SRC ID Port field should be ignored. o SRC ID Data Len (1 octet) - Value specifying the length of the SRC Identification Data field. o SRC Identification Data (variable length) - Value, as indicated by the SRC ID Type. Set to three bytes of zero for multiple-source multicast groups that use a common TEK for all senders. o DST ID Type (1 octet) - Value describing the identity information found inoctetsthe DST Identification Data field. Defined values are specified by the IPSEC Identification Type section in the IANA isakmpd-registry [ISAKMP-REG]. o DST ID Prot (1 octet) - Value describing an IP protocol ID (e.g., UDP/TCP). A value of zero means that thecurrent payload, includingDST Id Prot field should be ignored. o DST ID Port (2 octets) - Value specifying a port associated with thegeneric payload header.source Id. A value of zero means that the DST ID Port field should be ignored. o DST ID Data Len (1 octet) - Value specifying the length of the DST Identification Data field. Baugher, et. al. Standards Track - ExpiresJuly,January, 2002 23 The GDOI Domain of InterpretationFebruary,July, 2002 oNumber of Key Packets (2 octets) -- ContainsDST Identification Data (variable length) - Value, as indicated by thetotal number of both TEK and Rekey arrays being passed in this data block. o Key Packets Several types of key packets are defined. Each Key Packet has the following format. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! KD Type ! RESERVED ! KD Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! SPI Size ! SPI (variable) ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ Key Packet Attributes ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!DST ID Type. oKey Download (KD) TypeTransform ID (1 octet)-- Identifier for the Key Data field of this Key Packet. Key Download Type- Value----------------- ----- RESERVED 0 TEK 1 KEK 2 LKH 3 RESERVED 4-127 Private Use 128-255 "KEK" is a single key whereas LKHspecifying which ESP transform isan array of key-encrypting keys. o RESERVED (1 octet) - Unused, settozero. o Key Download Length (2 octets) -- Length in octetsbe used. The list ofthe Key Packet data following this field. o SPI Size (1 octet) - Value specifying the lengthvalid values are defined inoctets oftheSPI as defined byIPSEC ESP Transform Identifiers section of theProtocol-Id.IANA isakmpd-registry [ISAKMP- REG]. o SPI(variable length)(4 octets) - Security Parameter Indexwhich matches a SPI previously sent in an SAK or SAT Payload.for ESP. oKey PacketRFC 2407 Attributes(variable length) -- Contains Key information.- ESP Attributes from RFC 2407 Section 4.5. Theformat of this field is specific toGDOI supports all IPSEC DOI SA Attributes for PROTO_IPSEC_ESP excluding thevalue of the KD Type field.Group Description [RFC2407, section 4.5], which MUST NOT be sent by a GDOI implementation and is ignored by a GDOI implementation if received. All mandatory IPSEC DOI attributes are mandatory in GDOI PROTO_IPSEC_ESP. Thefollowing sections describeAuthentication Algorithm attribute of theformatIPSEC DOI is group authentication in GDOI. 5.4.2 Other Security Protocols Besides ESP, GDOI should serve to establish SAs for secure groups needed by other Security Protocols that operate at the transport, application, and internetwork layers. These other Security Protocols, however, are in the process ofeach KD Type. 5.5.1 TEK Download Typebeing developed or do not yet exist. The followingattributes mayinformation needs to bepresent inprovided for aSAT Payload. Exactly one attribute matching each type sent inSecurity Protocol to theSAT payload MUST be present.GDOI. o The Protocol-ID for the particular Security Protocol o The SPI Size o The method of SPI generation o The transforms, attributes and keys needed by the Security Protocol All Security Protocols mustfollowprovide theformat definedinformation inISAKMP [RFC2408] Baugher, et. al. Standards Track - Expires July, 2002 24 Thethe bulleted list above to guide the GDOIDomain of Interpretation February, 2002 section 3.3. Inimplementation for that protocoland will be specified in separate documents. 5.5 Key Download Payload The Key Download Payload contains group keys for thetable,group specified in the SA Payload. These key download payloads can have several security attributeswhich are defined as TV are markedapplied to them based upon the security policy of the group asBasic (B); attributes which aredefinedas TLV are marked as Variable (V). TEK Class Value Type --------- ----- ---- RESERVED 0 TEK_ALGORITHM_KEY 1 V TEK_INTEGRITY_KEY 2 V TEK_SOURCE_AUTH_KEY 3 V If no TEK key packets are included in a Registration KD payload, the group member can expect to receiveby theTEKassociated SA Payload. When included as part ofa Re-key SA. At least one TEK must be included in each Re-key KD payload. Multiple TEKs may be included if multiple streams associated withthe Re-key SAare to be rekeyed. 5.5.1.1 TEK_ALGORITHM_KEYwith an optional KE payload, TheTEK_ALGORITHM_KEY class declares that the encryption key for this SPI is contained as theKeyPacket Attribute. The encryption algorithm that will use this key was specified in the SAT payload. In the case that the algorithm requires multiple keys (e.g., 3DES), all keysDownload Payload will beincluded in one attribute. DES keys will consist of 64 bits (the 56 key bitsxor'ed withparity bit). Triple DES keys will be be specified as a single 192 bit attribute (including parity bits) in the order thatthekeys are to be used for encryption (e.g., DES_KEY1, DES_KEY2, DES_KEY3). 5.5.1.2 TEK_INTEGRITY_KEYnew Diffie-Hellman shared secret. TheTEK_INTEGRITY_KEY class declares that the integrity key for this SPI is contained asxor operation will begin at the "Number of KeyPacket Attribute.Packets" field. Baugher, et. al. Standards Track - Expires January, 2002 24 Theintegrity algorithm that will use this key was specified in the SAT payload. ThusGDOIassumes that both the symmetric encryption and integrity keys are pushed to the member. SHA keys will consistDomain of160 bits, and MD5 keys will consistInterpretation July, 2002 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Next Payload ! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Number of128 bits. 5.5.1.3 TEK_SOURCE_AUTH_KEY The TEK_SOURCE_AUTH_KEY class declares that the source authentication key for this SPI is contained in theKeyPacket Attribute.Packets ! RESERVED2 ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ Key Packets ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Thesource authentication algorithm that will use this key was specified in the SAT payload. 5.5.2 KEKKey DownloadType Baugher, et. al. Standards TrackPayload fields are defined as follows: o Next Payload (1 octet) -Expires July, 2002 25 The GDOI Domain of Interpretation February, 2002 The following attributes may be present in a SAK Payload. Exactly one attribute matching each type sent inIdentifier for theSAKpayloadMUST be present. The attributes must followtype of theformat definednext payload inISAKMP [RFC2408] section 3.3. Inthetable, attributes which are defined as TV are marked as Basic (B); attributes which are defined as TLV are marked as Variable (V). KEK Class Value Type --------- ----- ---- RESERVED 0 KEK_ALGORITHM_KEY 1 V SIG_ALGORITHM_KEY 2 Vmessage. If theKEK key packetcurrent payload isincluded, there MUST be only one present in the KD payload. 5.5.2.1 KEK_ALGORITHM_KEY The KEK_ALGORITHM_KEY class declarestheencryption key for this SPI is containedlast in theKey Packet Attribute. The encryption algorithm that will usemessage, then thiskey was specified in the SAK payload. If the mode of operation for the algorithm requires an Initialization Vector (IV), an explicit IV MUSTfield will beincludedzero. o RESERVED (1 octet) - Unused, set to zero. o Payload Length (2 octets) - Length in octets of theKEK_ALGORITHM_KEY beforecurrent payload, including theactual key. 5.5.2.2 SIG_ALGORITHM_KEY The SIG_ALGORITHM_KEY class declares thatgeneric payload header. o Number of Key Packets (2 octets) -- Contains thepublic key for this SPI is containedtotal number of both TEK and Rekey arrays being passed in this data block. o Key Packets Several types of key packets are defined. Each Key Packet has the following format. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! KD Type ! RESERVED ! KD Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! SPI Size ! SPI (variable) ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ Key PacketAttribute, which may be useful when no public key infrastructure is available. The signature algorithm that will use this key was specified inAttributes ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! o Key Download (KD) Type (1 octet) -- Identifier for theSAK payload. 5.5.3 LKHKey Data field of this Key Packet. Key Download TypeTheValue ----------------- ----- RESERVED 0 TEK 1 KEK 2 LKHkey packet3 RESERVED 4-127 Private Use 128-255 "KEK" iscomprised of attributes representing different leaves in the LKHa single keytree. The following attributes are used to pass anwhereas LKHKEKis an arrayin the KD payload. The attributes mustof key-encrypting keys. Baugher, et. al. Standards Track - Expires January, 2002 25 The GDOI Domain of Interpretation July, 2002 o RESERVED (1 octet) - Unused, set to zero. o Key Download Length (2 octets) -- Length in octets of the Key Packet data, including the Key Packet header.. o SPI Size (1 octet) - Value specifying the length in octets of the SPI as defined by the Protocol-Id. o SPI (variable length) - Security Parameter Index which matches a SPI previously sent in an SAK or SAT Payload. o Key Packet Attributes (variable length) -- Contains Key information. The format of this field is specific to the value of the KD Type field. The following sections describe the format of each KD Type. 5.5.1 TEK Download Type The following attributes may be present in a SAT Payload. Exactly one attribute matching each type sent in the SAT payload MUST be present. The attributes must follow the format defined in ISAKMP [RFC2408] section 3.3. In the table, attributes which are defined as TV are marked as Basic (B); attributes which are defined as TLV are marked as Variable (V).KEKTEK Class Value Type --------- ----- ---- RESERVED 0KEK_LKHTEK_ALGORITHM_KEY 1 VRESERVED 2-127 PRIVATE USE 128-255 Baugher, et. al. Standards Track - Expires July, 2002 26 The GDOI Domain of Interpretation February, 2002TEK_INTEGRITY_KEY 2 V TEK_SOURCE_AUTH_KEY 3 V Ifan LKHno TEK keypacket ispackets are included inthea Registration KD payload,there must be only one present. 5.5.3.1 KEK_LKH This attribute consiststhe group member can expect to receive the TEK as part of aheader block, followed byRe-key SA. At least oneor more LKH keys. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! LKH Version ! Leaf ID ! Number of ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ LKH Keys ! ! +-+-+-+-+-+-+-+-+ LKH Keys ! ~ ~ +---------------------------------------------------------------+ The KEK_LKH attribute fields are defined as follows: o LKH version (1 octet) - Contains the version of the LKH protocol which the data is formatted in. MustTEK must beone. o Leaf ID (2 octets) -- This is the Leaf Node ID of the LKH sequence containedincluded inthis Key Packet Data block. o Number of LKH Keys (2 octets) -- This value iseach Re-key KD payload. Multiple TEKs may be included if multiple streams associated with thenumber of distinct LKH keys inSA are to be rekeyed. 5.5.1.1 TEK_ALGORITHM_KEY The TEK_ALGORITHM_KEY class declares that the encryption key for thissequence. Each LKH KeySPI isdefinedcontained asfollows: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! LKH ID ! Key Type ! ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Key Creation Date ! ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Key expiration Date ! ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Key Handle ! ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ! ! ! ~ Key Data ~ +---------------------------------------------------------------+ o LKH ID (2 octets) -- This is the position of this key inthebinary tree structure used by LKH. oKeyType (1 octet) -- This is thePacket Attribute. The encryption algorithmfor whichthat will use this keydata is to be used. This value iswas specified inSection 5.3.3.the SAT payload. In the case that the algorithm requires multiple keys (e.g., 3DES), all keys will be included in one attribute. DES keys will consist of 64 bits (the 56 key bits with parity bit). Triple DES keys will be specified as a single 192 bit attribute (including parity bits) in the order that the keys are to be used for encryption (e.g., DES_KEY1, DES_KEY2, DES_KEY3). Baugher, et. al. Standards Track - ExpiresJuly,January, 20022726 The GDOI Domain of InterpretationFebruary,July, 2002o Key Creation Date (4 octets) -- This is5.5.1.2 TEK_INTEGRITY_KEY The TEK_INTEGRITY_KEY class declares that thetime value of when thisintegrity keydata was originally generated. o Key Expiration Date (4 octets) -- Thisfor this SPI is contained as thetime value of whenKey Packet Attribute. The integrity algorithm that will use this keyis no longer valid for use. o Key Handle (4 octets) -- This iswas specified in therandomly generated value to uniquely identify a key. o Key Data (variable length) -- This isSAT payload. Thus GDOI assumes that both theactualsymmetric encryption and integrity keys are pushed to the member. SHA keys will consist of 160 bits, and MD5 keys will consist of 128 bits. 5.5.1.3 TEK_SOURCE_AUTH_KEY The TEK_SOURCE_AUTH_KEY class declares that the source authentication keydata, whichfor this SPI isdependent oncontained in the KeyType algorithm for its format. 5.6 Sequence Number PayloadPacket Attribute. TheSequence Number Payload (SEQ) provides an anti-replay protection for GROUPKEY-PUSH messages. Itssource authentication algorithm that will useis similar to the Sequence Number field definedthis key was specified in theIPsec ESP protocol [RFC2406]. 0 1 2 3SAT payload. 5.5.2 KEK Download Type The following attributes may be present in a SAK Payload. Exactly one attribute matching each type sent in the SAK payload MUST be present. The attributes must follow the format defined in ISAKMP [RFC2408] section 3.3. In the table, attributes which are defined as TV are marked as Basic (B); attributes which are defined as TLV are marked as Variable (V). KEK Class Value Type --------- ----- ---- RESERVED 0 KEK_ALGORITHM_KEY 1 V SIG_ALGORITHM_KEY 23 4 5 6 7 8 9 0V If the KEK key packet is included, there MUST be only one present in the KD payload. 5.5.2.1 KEK_ALGORITHM_KEY The KEK_ALGORITHM_KEY class declares the encryption key for this SPI is contained in the Key Packet Attribute. The encryption algorithm that will use this key was specified in the SAK payload. If the mode of operation for the algorithm requires an Initialization Vector (IV), an explicit IV MUST be included in the KEK_ALGORITHM_KEY before the actual key. 5.5.2.2 SIG_ALGORITHM_KEY The SIG_ALGORITHM_KEY class declares that the public key for this SPI is contained in the Key Packet Attribute, which may be useful when no public key infrastructure is available. The signature algorithm that will use this key was specified in the SAK payload. Baugher, et. al. Standards Track - Expires January, 2002 27 The GDOI Domain of Interpretation July, 2002 5.5.3 LKH Download Type The LKH key packet is comprised of attributes representing different leaves in the LKH key tree. The following attributes are used to pass an LKH KEK array in the KD payload. The attributes must follow the format defined in ISAKMP [RFC2408] section 3.3. In the table, attributes which are defined as TV are marked as Basic (B); attributes which are defined as TLV are marked as Variable (V). KEK Class Value Type --------- ----- ---- RESERVED 0 LKH_DOWNLOAD_ARRAY 1 V LKH_UPDATE_ARRAY 2 V SIG_ALGORITHM_KEY 3 V RESERVED 4-127 Private Use 128-255 If an LKH key packet is included in the KD payload, there must be only one present. 5.5.3.1 LKH_DOWNLOAD_ARRAY This attribute is used to download a set of keys to a group member. It MUST NOT be included in a GROUPKEY-PUSH message KD payload if the GROUPKEY-PUSH is sent to more than the group member. If an LKH_DOWNLOAD_ARRAY attribute is included in a KD payload, there must be only one present. This attribute consists of a header block, followed by one or more LKH keys. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! LKH Version ! # of LKH Keys ! RESERVED ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! LKH Keys ! ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The KEK_LKH attribute fields are defined as follows: o LKH version (1 octet) - Contains the version of the LKH protocol which the data is formatted in. Must be one. o Number of LKH Keys (2 octets) -- This value is the number of distinct LKH keys in this sequence. Baugher, et. al. Standards Track - Expires January, 2002 28 The GDOI Domain of Interpretation July, 2002 o RESERVED (1 octet) - Unused, set to zero. Each LKH Key is defined as follows: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! LKH ID ! Key Type ! RESERVED ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Key Creation Date ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Key expiration Date ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Key Handle ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! ! ~ Key Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ o LKH ID (2 octets) -- This is the position of this key in the binary tree structure used by LKH. o Key Type (1 octet) -- This is the encryption algorithm for which this key data is to be used. This value is specified in Section 5.3.3. o RESERVED (1 octet) - Unused, set to zero. o Key Creation Date (4 octets) -- This is the time value of when this key data was originally generated. A time value of zero indicates that there is no time before which this key is not valid. o Key Expiration Date (4 octets) -- This is the time value of when this key is no longer valid for use. A time value of zero indicates that this key does not have an expiration time. o Key Handle (4 octets) -- This is the randomly generated value to uniquely identify a key within an LKH ID. o Key Data (variable length) -- This is the actual encryption key data, which is dependent on the Key Type algorithm for its format. If the mode of operation for the algorithm requires an Initialization Vector (IV), an explicit IV MUST be included in the Key Data field before the actual key. The Key Creation Date and Key expiration Dates MAY be zero. This is necessary in the case where time synchronization within the group is not possible. Baugher, et. al. Standards Track - Expires January, 2002 29 The GDOI Domain of Interpretation July, 2002 The first LKH Key structure in an LKH_DOWNLOAD_ARRAY attribute contains the Leaf identifier and key for the group member. The rest of the LKH Key structures contain keys along the path of the key tree in order from the leaf, culminating in the group KEK. 5.5.3.2 LKH_UPDATE_ARRAY This attribute is used to update the keys for a group. It is most likely to be included in a GROUPKEY-PUSH message KD payload to rekey the entire group. This attribute consists of a header block, followed by one or more LKH keys, as defined in Section 5.5.3.1 There may be any number of UPDATE_ARRAY attributes included in a KD payload. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! LKH Version ! # of LKH Keys ! RESERVED ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! LKH ID ! RESERVED2 ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! Key Handle ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! LKH Keys ! ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ o LKH version (1 octet) - Contains the version of the LKH protocol which the data is formatted in. Must be one. o Number of LKH Keys (2 octets) -- This value is the number of distinct LKH keys in this sequence. o RESERVED (1 octet) - Unused, set to zero. o LKH ID (2 octets) - This is the node identifier associated with the key used to encrypt the first LKH Key. o RESERVED2 (2 octets) - Unused, set to zero. o Key Handle (4 octets) - This is the value to uniquely identify the key within the LKH ID which was used to encrypt the first LKH key. The LKH Keys are as defined in Section 5.5.3.1. The LKH Key structures contain keys along the path of the key tree in order from the LKH ID found in the LKH_UPDATE_ARRAY header, culminating in the group KEK. The Key Data field of each LKH Key is encrypted with the LKH key preceding it in the LKH_UPDATE_ARRAY attribute. The first LKH Key is encrypted under the key defined by the LKH ID and Key Handle found in the LKH_UPDATE_ARRAY header. Baugher, et. al. Standards Track - Expires January, 2002 30 The GDOI Domain of Interpretation July, 2002 5.5.3.3 SIG_ALGORITHM_KEY The SIG_ALGORITHM_KEY class declares that the public key for this SPI is contained in the Key Packet Attribute, which may be useful when no public key infrastructure is available. The signature algorithm that will use this key was specified in the SAK payload. 5.6 Sequence Number Payload The Sequence Number Payload (SEQ) provides an anti-replay protection for GROUPKEY-PUSH messages. Its use is similar to the Sequence Number field defined in the IPsec ESP protocol [RFC2406]. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! Next Payload ! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! Sequence Number ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The Sequence Number Payload fields are defined as follows: o Next Payload (1 octet) - Identifier for the payload type of the next payload in the message. If the current payload is the last in the message, then this field will be zero. o RESERVED (1 octet) - Unused, set to zero. o Payload Length (2 octets) - Length in octets of the current payload, including the generic payload header. o Sequence Number (4 octets) - This field contains a monotonically increasing counter value for the group. It is initialized to zero by the GCKS, and incremented in each subsequently-transmitted message. Thus the first packet sent for a given Rekey SA will have a Sequence Number of 1. The GDOI implementation keeps a sequence counter as an attribute for the Rekey SA and increments the counter upon receipt of a GROUPKEY-PUSH message. The current value of the sequence number must be transmitted to group members as a part of the Registration SA SA payload. A group member must keep a sliding receive window. The window must be treated as in the ESP protocol [RFC2406] Section 3.4.3. 5.7 Proof of Possession The Proof of Possession Payload is used as part of group membership authorization during a GDOI exchange. The Proof of Possession Payload is identical to an ISAKMP SIG payload. However, the usage is entirely different. The GCKS, GCKS delegate or member signs a hash of the following values: Baugher, et. al. Standards Track - Expires January, 2002 31 The GDOI Domain of Interpretation July, 2002 POP_HASH = hash("pop" | Ni | Nr) Where hash() is the hash function used with the signature. The "pop" prefix ensures that the signature of the POP payload cannot be used for any other purpose in the GDOI protocol. 5.8 Nonce The data portion of the Nonce payload (i.e., Ni_b and Nr_b included in the HASHs) MUST be a value between 8 and 128 bytes. 6.0 Security Considerations GDOI is a security association (SA) management protocol for groups of senders and receivers. Unlike a data security protocol, SA management includes a key establishment protocol to securely establish keys at communication endpoints. This protocol performs entity authentication of the GDOI member or Group Controller/Key Server (GCKS), it provides confidentiality of key management messages, and it provides source authentication of those messages. This protocol also uses best-known practices for defense against man-in-middle, connection hijacking, replay, reflection, and denial- of-service (DOS) attacks on unsecured networks [STS, RFC2522, SKEME]. GDOI assumes the network is not secure and may be under the complete control of an attacker. GDOI assumes that the host computer is secure even though the network is insecure. GDOI ultimately establishes keys among members of a group, which MUST be trusted to use those keys in an authorized manner according to group policy. The security of GDOI, therefore, is as good as the degree to which group members can be trusted to protect authenticators, encryption keys, decryption keys, and message authentication keys. There are three phases of GDOI: an ISAKMP Phase 1 protocol, a new exchange called GROUPKEY-PULL which is protected by the ISAKMP Phase 1 protocol, and a new message called GROUPKEY-PUSH. Each phase is considered separately below. 6.1 ISAKMP Phase 1 GDOI uses the Phase 1 exchanges defined in [RFC2409] to protect the GROUPKEY-PULL exchange. Therefore all security properties and considerations of those exchanges (as noted in [RFC2409]) are relevant for GDOI. GDOI may inherit the problems of its ancestor protocols [FS00], such as identity exposure, absence of unidirectional authentication, or stateful cookies [PK01]. GDOI could benefit, however, from improvements to its ancestor protocols just as it benefits from years of experience and work embodied in those protocols. To reap the benefits of future IKE improvements, however, GDOI would need to Baugher, et. al. Standards Track - Expires January, 2002 32 The GDOI Domain of Interpretation July, 2002 be revised in a future standards-track RFC, which is beyond the scope of this specification. 6.1.1 Authentication Authentication is provided via the mechanisms defined in [RFC2409], namely Pre-Shared Keys or Public Key encryption. 6.1.2 Confidentiality Confidentiality is achieved in Phase 1 through a Diffie-Hellman exchange that provides keying material, and through negotiation of encryption transforms. The Phase 1 protocol will be protecting encryption and integrity keys sent in the GROUPKEY-PULL protocol. The strength of the encryption used for Phase 1 SHOULD exceed that of the keys send in the GROUPKEY-PULL protocol. 6.1.3 Man-in-the-Middle Attack Protection A successful man-in-the-middle or connection-hijacking attack foils entity authentication of one or more of the communicating entities during key establishment. GDOI relies on Phase 1 authentication to defeat man-in-the-middle attacks. 6.1.4 Replay/Reflection Attack Protection In a replay/reflection attack, an attacker captures messages between GDOI entities and subsequently forwards them to a GDOI entity. Replay and reflection attacks seek to gain information from a subsequent GDOI message response or seek to disrupt the operation of a GDOI member or GCKS entity. GDOI relies on the Phase 1 nonce mechanism in combination with a hash-based message authentication code to protect against the replay or reflection of previous key management messages. 6.1.5 Denial of Service Protection A denial of service attacker sends messages to a GDOI entity to cause that entity to perform unneeded message authentication operations. GDOI uses the Phase 1 cookie mechanism to identify spurious messages prior to cryptographic hash processing. This is a "weak" form of denial of service protection in that the GDOI entity must check for good cookies, which can be successfully imitated by a sophisticated attacker. The Phase 1 cookie mechanism is stateful, and commits memory resources for cookies, but stateless cookies are a better defense against denial of service attacks. 6.2 GROUPKEY-PULL Exchange Baugher, et. al. Standards Track - Expires January, 2002 33 The GDOI Domain of Interpretation July, 2002 The GROUPKEY-PULL exchange allows a group member to request SAs and keys from a GCKS. It runs as a "phase 2" protocol under protection of the Phase 12 3 4 5 6 7 8 9 0security association. 6.2.1 Authentication Peer authentication is not required in the GROUPKEY-PULL protocol. It is running in the context of the Phase 12 3 4 5 6 7 8 9 0protocol, which has previously authenticated the identity of the peer. Message authentication is provided by HASH payloads in each message, where the HASH is defined to be over SKEYID_a (derived in the Phase 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! Next Payload ! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! Sequence Number ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+exchange), the ISAKMP Message-ID, and all payloads in the message. Because only the two endpoints of the exchange know the SKEYID_a value, this provides confidence that the peer sent the message. 6.2.2 Confidentiality Confidentiality is provided by the Phase 1 security association, after the manner described in [RFC2409]. 6.2.3 Man-in-the-Middle Attack Protection Message authentication (described above) includes a secret known only to the group member and GCKS when constructing a HASH payload. This prevents man-in-the-middle and connection-hijacking attacks because an attacker would not be able to change the message undetected. 6.2.4 Replay/Reflection Attack Protection Nonces provide freshness of the GROUPKEY-PULL exchange. The group member and GCKS exchange nonce values first two messages. These nonces are included in subsequent HASH payload calculations. The Group member and GCKS MUST NOT perform any computationally expensive tasks before receiving a HASH with its own nonce included. The GCKS MUST NOT update the group management state (e.g., LKH key tree) until it receives the third message in the exchange with a valid HASH payload including its own nonce. Implementations SHOULD keep a record of recently received GROUPKEY- PULL messages and reject messages that have already been processed. This enables an early discard of the replayed messages. 6.2.5 Denial of Service Protection A GROUPKEY-PULL message identifies its messages using a cookie pair from the Phase 1 exchange that precedes it. TheSequence Number Payload fields are definedcookies provide a weak form of denial of service protection asfollows: o Next Payload (1 octet) - Identifier fordescribed above, in thepayload typeBaugher, et. al. Standards Track - Expires January, 2002 34 The GDOI Domain of Interpretation July, 2002 sense that a GROUPKEY-PULL message with invalid cookies will be discarded. The replay protection mechanisms described above provide thenextbasis for denial of service protection. 6.2.5 Authorization The CERT payload in a GROUPKEY-PULL exchange allows a group member or GCKS to submit a certificate containing authorization attributes to themessage. If the currentpeer as well as identifying = a public/private key pair. The GROUPKEY-PULL POP payload enables authorization to be accomplished where the authorization infrastructure is different than thelastGROUPKEY-PULL authentication infrastructure by proving that it is in possession of themessage, then this field willprivate key 6.3 GROUPKEY-PUSH Exchange The GROUPKEY-PUSH exchange is a single message that allows a GCKS to send SAs and keys to group members. This is likely to bezero. o RESERVED (1 octet) - Unused, setsent tozero. o Payload Length (2 octets) - Length in octets of the current payload, including the generic payload header. o Sequence Number (4 octets) -all members using an IP multicast group. Thisfield containsprovides an efficient rekey and group membership adjustment capability. 6.3.1 Authentication The GROUPKEY-PULL exchange identifies amonotonically increasing counter valuepublic key that is used forthe group. Itmessage authentication. The GROUPKEY-PUSH message isinitialized to zerodigitally signed using the corresponding private key held by theGCKS, and incremented in each subsequently-transmittedGCKS or its delegate. This digital signature provides source authentication for the message.ThusThus, GDOI protects thefirst packet sent for a given Rekey SA will have a Sequence Number of 1.GCKS from impersonation in group environments. 6.3.2 Confidentiality TheGDOI implementation keeps a sequence counter asGCKS encrypts the GROUPKEY-PUSH message with anattribute forencryption key that was established by theRekey SAGROUPKEY-PULL exchange. 6.3.3 Man-in-the-Middle Attack Protection This combination of confidentiality andincrementsmessage authentication services protects thecounter upon receipt of aGROUPKEY-PUSHmessage.message from man-in-middle and connection-hijacking attacks. 6.3.4 Replay/Reflection Attack Protection Thecurrent value of theGROUPKEY-PUSH message includes a monotonically increasing sequence numbermust be transmittedtogroup members as a part of the Registration SA SA payload.protect against replay and reflection attacks. A group membermust keepwill recognize a replayed message by comparing the sequence number to a slidingreceive window. The window must be treated aswindow, in the same manner as the ESP protocol[RFC2406] Section 3.4.3. 5.7 Proof of Possessionuses sequence numbers. Baugher, et. al. Standards Track - ExpiresJuly,January, 20022835 The GDOI Domain of InterpretationFebruary,July, 2002 Implementations SHOULD keep a record of recently received GROUPKEY- PUSH messages and reject messages which have already been processed. This enables an early discard of the replayed messages. 6.3.5 Denial of Service Protection A cookie pair identifies the security association for the GROUPKEY- PUSH message. TheProofcookies thus serve as a weak form ofPossession Payload isdenial-of- service protection for the GROUPKEY-PUSH message. The digital signature usedas partfor message authentication has a much greater computational cost than a message authentication code and could amplify the effects ofgroup membership authorization duringa denial of service attack on GDOIexchange.members who process GROUPKEY-PUSH messages. TheProofadded cost ofPossession Payloaddigital signatures isidenticaljustified by the need toan ISAKMP SIG payload. However,prevent GCKS impersonation: If a shared symmetric key were used for GROUPKEY- PUSH message authentication, then GCKS source authentication would be impossible and any member would be capable of GCKS impersonation The potential of the digital signature amplifying a denial of service attack is mitigated by theusageorder of operations a group member takes, where the least expensive cryptographic operation isentirely different.performed first. TheGCKS, GCKS delegate orgroup membersignsfirst decrypts the message using ahash ofsymmetric cipher. If it is a validly formed message then thefollowing values: POP_HASH = hash("pop" | Ni | Nr) Where hash()sequence number is checked against thehash function used withreplay window. Only if thesignature. The "pop" prefix ensures thatsequence number is valid is the digital signature verified. Thus in order for a denial ofthe POP payload cannotservice attack to be mounted, an attacker would need to know both the symmetric encryption key used forany other purpose in the GDOI protocol. 5.8 Nonce The data portion of the Nonce payload (i.e., Ni_bconfidentiality, andNr_b included in the HASHs) MUST beavalue between 8 and 128 bytes. 7.0 Security Considerations GDOI isvalid sequence number. Generally speaking this means only current group members can effectively deploy asecurity association (SA) protocol for groups of senders and receivers. This protocol uses best-known practices for defense against man-in-middle, connection hijacking, replay, reflection, and denial-of-service (DOS) attacks. GDOI may inherit the problemsdenial ofits ancestors, ISAKMP [RFC2408] and Internet Key Exchange [RFC2409]. Some problems remain to be addressed in ISAKMP and IKE [FS00]. GDOI should benefit, however, from improvements to its ancestor protocols justservice attack. 6.3.6 Forward Access Control If a group management algorithm (such asit benefits from years of experience and work embodied in those protocols Of course, GDOI supports secure groups and differs from ISAKMP and IKE in authorization, policy, SA structure, and exchanges. The SA structure is more complex than ISAKMP and IKE. ComplexityLKH) isbad for a Security Protocol because it makes correctness analysis more difficult thanused, forward access control may not be ensured if some cases. This can happen if some group members are denied access to the group ina simpler protocolthe same GROUPKEY-PUSH message as new policy andmay leadTEKs are delivered toimplementation problems. The distribution of keying material using multicast techniques, moreover, is novel. Novelty is bad for a key management protocol because itthe group. As discussed in Section 4.2.1, forward access control cancontain unexpected resultsbe maintained by sending multiple GROUPKEY-PUSH messages, where the group membership changes are sent from the GCKS separate from the new policy andproblems. 8.0TEKs. 7.0 IANA Considerations8.17.1 ISAKMP DOI A new ISAKMP DOI number needs to be assigned to GDOI. RFC 2407 indicates that the namespace for DOI values is in STD-2, although that does not yet exist such as section there. The present documentis in accordance with the "Supported Security Protocols" section in [RFC2408]. 8.2 Payload TypesBaugher, et. al. Standards Track - ExpiresJuly,January, 20022936 The GDOI Domain of InterpretationFebruary,July, 2002 is in accordance with the "Supported Security Protocols" section in [RFC2408]. 7.2 Payload Types New ISAKMP Next Payload types need to be allocated for GDOI payload types. No ISAKMP registry for payload types currently exists, but the Private Use payload type namespace can be further partitioned for the GDOI DOI. See Section 5.0 for the payloads defined in this document.8.37.3 NewNamespacesName spaces The present document describes many newnamespacesname spaces for use in the GDOI payloads. Those may be found in subsections under Section 5.0. A new GDOI registry should be created for thesenamespaces. 8.3name spaces. Portions of name spaces marked "RESERVED" are reserved for IANA allocation. New values MUST be added due to a Standards Action as defined in [RFC2434]. Portions of name spaces marked "Private Use" may be allocated by implementations for their own purposes. 7.4 UDP Port A new UDP port is required for GDOI.9.08.0 Acknowledgements The authors thank Ran Canetti, Cathy Meadows, Andrea Colegrove, and Lakshminath Dondeti. Ran has advised the authors on secure group cryptography, which has led to changes in the exchanges and payload definitions. Cathy identified several problems in previous versions of this document, including a replay attack against the proof of possession exchange, as well as several man-in-the-middle attacks. Andrea has contributed to the group policy section of this draft. Lakshminath identified several protocol issueswhichthat needed further specification and helped to resolve them.10.09.0 References10.19.1 Normative References [AES-MODES] "Recommendation for Block Cipher Modes of Operation", United States of American, National Institute of Science and Technology, NIST Special Publication 800-38A 2001 Edition, December 2001. [FIPS46-3] "Data Encryption Standard (DES)", United States of American, National Institute of Science and Technology, Federal Information Processing Standard (FIPS) 46-3, October 1999. Baugher, et. al. Standards Track - Expires January, 2002 37 The GDOI Domain of Interpretation July, 2002 [FIPS81] "DES Modes of Operation", United States of American, National Institute of Science and Technology, Federal Information Processing Standard (FIPS) 81, December 1980. [FIPS186-2] "Digital Signature Standard (DSS)", United States of American, National Institute of Science and Technology, Federal Information Processing Standard (FIPS) 186-2, January 2000. [FIPS197] "Advanced Encryption Standard (AES)", United States of American, National Institute of Science and Technology, Federal Information Processing Standard (FIPS) 197, November 2001. [IPSEC-REG] http://www.iana.org/assignments/ipsec-registryBaugher, et. al. Standards Track - Expires July, 2002 30 The GDOI Domain of Interpretation February, 2002[ISAKMP-REG] http://www.iana.org/assignments/isakmp-registry [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Level", BCP 14, RFC 2119, March 1997. [RFC2401] S. Kent, R. Atkinson,Security"Security Architecture for the InternetProtocol,Protocol", November 1998 [RFC2406] S. Kent, R. Atkinson,IP"IP Encapsulating Security Payload(ESP),(ESP)", November 1998. [RFC2407] D. Piper,The"The Internet IP Domain of Interpretation forISAKMP,ISAKMP", November 1998. [RFC2408] D. Maughan, M. Shertler, M. Schneider, J. Turner,Internet"Internet Security Association and Key ManagementProtocol,Protocol", November 1998. [RFC2409] D. Harkins, D. Carrel,The"The Internet Key Exchange(IKE),(IKE)", November, 1998. [RFC2412] H. Orman,The"The OAKLEY Key DeterminationProtocol,Protocol", November 1998. [RFC24334] T. Narten, H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", October, 1998. [RFC2522] Karn, P., and Simpson, W., "Photuris: Session-Key Management Protocol", March 1999. [RFC2627] D. M. Wallner, E. Harder, R. C. Agee,Key"Key Management for Multicast: Issues andArchitectures,Architectures", September 1998. [RSA] RSA Laboratories, "PKCS #1 v2.0: RSA Encryption Standard", October 1998.10.29.2 Informative References Baugher, et. al. Standards Track - Expires January, 2002 38 The GDOI Domain of Interpretation July, 2002 [FS00] N. Ferguson and B. Schneier,A"A Cryptographic Evaluation of IPsec,CounterPane,CounterPane", http://www.counterpane.com/ipsec.html. [NNL] D. Naor, M. Naor and J. Lotspiech,Revocation"Revocation and Tracing Schemes for StatelessReceivers,Receivers", Advances in Cryptology, Crypto?01,'01, Springer-Verlag LNCS 2139, 2001, pp. 41-62. A full version of the paper appears in http://www.wisdom.weizmann.ac.il/~naor/. [OFT] D. Mcgrew and A. Sherman,Key"Key Establishment in Large Dynamic Groups Using One-Way FunctionTrees,Trees", Manuscript submitted to IEEE Transactions on Software Engineering. A full version of the paper appears in http://download.nai.com/products/media/pgp/misc/oft052098.ps, 1998 [PK01] R.Perlman, C.Kaufman, "Analysis of the IPsec Key Exchange Standard", WET-ICE conference, 2001. http://sec.femto.org/wetice- 2001/papers/radia-paper.pdf [RFC1889] H. Schulzrinne, S. Casner, R. Frederick, V. Jacobson,RTP:"RTP: A Transport Protocol for Real-TimeApplications,Applications", January 1996. [RFC2093] Harney, H., and Muckenhirn, C., "Group Key Management Protocol (GKMP) Specification," RFC 2093, July 1997.Baugher, et. al. Standards Track - Expires July, 2002 31 The GDOI Domain of Interpretation February, 2002[RFC2094] Harney, H., and Muckenhirn, C., "Group Key Management Protocol (GKMP) Architecture," RFC 2094, July 1997. [RFC2367] D. McDonald, C. Metz, B. Phan,PF_KEY"PF_KEY Key Management API, Version2,2", July 1998. [SKEME] H. Krawczyk, "SKEME: A Versatile Secure Key Exchange Mechanism for Internet", ISOC Secure Networks and Distributed Systems Symposium, San Diego, 1996. [STS] Diffie, P. van Oorschot, M. J. Wiener,Authentication"Authentication and Authenticated Key Exchanges, Designs, Codes andCryptography,Cryptography", 2,107- 125107-125 (1992), Kluwer Academic Publishers. Authors Addresses Mark Baugher Cisco Systems 5510 SW Orchid Street Portland, OR 97219, USA (503) 245-4543 mbaugher@cisco.com Thomas Hardjono VeriSign 401 Edgewater Place, Suite 280 Wakefield, MA 01880 Tel: 781-245-6996 Email: thardjono@verisign.com Baugher, et. al. Standards Track - Expires January, 2002 39 The GDOI Domain of Interpretation July, 2002 Hugh Harney Sparta 9861 Broken Land Parkway Columbia, MD 21046 (410) 381-9400 x203 hh@sparta.com Brian Weis Cisco Systems 170 W. Tasman Drive, San Jose, CA 95134-1706, USA (408) 526-4796 bew@cisco.com Baugher, et. al. Standards Track - ExpiresJuly,January, 20023240 ----