view Side-By-Side changes
Internet Engineering Task Force Mark Baugher(Cisco)
INTERNET-DRAFT Thomas Hardjono (Verisign)
Document: draft-ietf-msec-gdoi-03.txt Hugh Harney (Sparta)
Expires: July, 2002 Brian Weis (Cisco)
November 21, 2001
January 16, 2002
The Group Domain of Interpretation
<draft-ietf-msec-gdoi-02.txt>
<draft-ietf-msec-gdoi-03.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 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" borrows definitions from GSAKMP, 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 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 - Expires July, 2002 1
The GDOI Domain of Interpretation January, 2002
Table of Contents
1.0 Introduction Introduction......................................................3
1.1 GDOI Applications...............................................4
1.2 Extending GDOI..................................................5
2.0 Motivation for Using ISAKMP
2.1 Disadvantages of using ISAKMP
2.2 Advantages of using ISAMKP
2.3 Overview of IKE
2.4 Use of IKE Phase 1 as a Secure Channel
2.4.1 IKE Phase 1 SA Payload
2.4.2 Use of the IKE protocol...........................................5
2.1 DOI value.....................................................5
2. 2 UDP port. port.....................................................5
3.0 GROUPKEY-PULL Exchange Exchange............................................5
3.1 ACL-based Versus Credential-based Authorization Authorization...................................................5
3.2 Messages Messages........................................................5
3.2.1 Perfect Forward Secrecy Secrecy.....................................7
3.2.2 ISAKMP Header Initialization Initialization................................8
3.3 Initiator Operations Operations............................................8
3.4 Receiver Operations
3.5 Use of Data Security Protocols for the Secure Channel Operations.............................................9
4.0 GROUPKEY-PUSH Message Message.............................................9
4.1 Perfect Forward Secrecy (PFS) (PFS)..................................10
4.2 Forward and Backward Access Control Control............................10
4.3 Delegation of Key Management Management...................................10
4.4 Use of signature keys..........................................10
4.5 ISAKMP Header Initialization
4.5 Initialization...................................11
4.6 Deletion of SAs SAs................................................11
4.7 Initiator Operations...........................................11
4.8 Receiver Operations............................................12
5.0 Payloads and Defined Values Values......................................12
5.1 Identification Payload Payload.........................................13
5.1.1 Identification Type Values
5.1.1.1 ID_KEY_ID Values.................................13
5.2 Security Association Payload Payload...................................14
5.2.1 Payloads following the SA payload payload..........................14
5.3 SA KEK payload payload.................................................15
5.3.1 KEK Attributes Attributes.............................................17
5.3.2 KEK_MANAGEMENT_ALGORITHM KEK_MANAGEMENT_ALGORITHM...................................17
5.3.3 KEK_ALGORITHM KEK_ALGORITHM..............................................17
5.3.4 KEK_KEY_LENGTH KEK_KEY_LENGTH.............................................18
5.3.5 KEK_KEY_LIFETIME KEK_KEY_LIFETIME...........................................18
5.3.6 SIG_HASH_ALGORITHM SIG_HASH_ALGORITHM.........................................18
5.3.7 SIG_ALGORITHM SIG_ALGORITHM..............................................19
5.3.8 SIG_KEY_LENGTH SIG_KEY_LENGTH.............................................19
5.3.9 KE_OAKLEY_GROUP KE_OAKLEY_GROUP............................................19
5.4 SA TEK Payload Payload.................................................19
5.4.1 PROTO_IPSEC_ESP PROTO_IPSEC_ESP............................................20
5.4.2 Other Security Protocols Protocols...................................22
5.5 Key Download Payload Payload...........................................22
5.5.1 TEK Download Type Type..........................................23
5.5.2 KEK Download Type Type..........................................24
5.5.3 LKH
5.5.4 OFT Download Type..........................................25
5.6 Sequence Number Payload Payload........................................27
Baugher, et. al. Standards Track - Expires July, 2002 2
The GDOI Domain of Interpretation January, 2002
5.7 Proof of Possession Possession............................................27
5.8 Nonce
6.0 Application Scenarios
6.1 Data Broadcast
6.2 Video-on-demand
6.3 Summary Nonce..........................................................28
7.0 Security Considerations Considerations..........................................28
8.0 IANA Considerations Considerations..............................................28
8.1 ISAKMP DOI DOI.....................................................28
8.2 Payload Types Types..................................................28
8.3 New Namespaces Namespaces.................................................29
8.3 UDP Port.......................................................29
9.0 Acknowledgements Acknowledgements.................................................29
10.0 References References......................................................29
Authors Address:
Appendix A: Sample GDOI definitions for MESP and AMESP
A.1 SA TEK bindings
A.2 MESP/AMESP SA TEK Attributes
A.2.1 GS_ORDER
A.2.2 GS_PROTOCOL
A.2.3 GS_TRANSFORM
A.2.4 GS_TRANSFORM_KEY_LENGTH
A.2.5 GS_TRANSFORM_KEY_LIFETYPE
A.2.6 GA_ORDER
A.2.7 GA_PROTOCOL
A.2.8 GA_TRANSFORM
A.2.9 SrA_ORDER
A.2.10 SrA_PROTOCOL
A.2.11 SrA_ALGORITHM
A.3 TESLA SA TEK Attributes
A.3.1 SOURCE_ID
A.3.2 DIRECT_SYNCHRONIZATION
A.3.3 SENDERS_CERT_TYPE
A.3.4 SENDERS_CERT
A.3.5 HMAC_TYPE
A.3.6 KEY_CHAIN_PRF
A.3.7 INTERVAL_TIME
A.3.9 INTERVAL_DURATION
A.3.10 KEY_DISCLOSURE_DELAY
Appendix B: LKH Data Key Download Definitions
B.1 LKH Key Data (KD) Payload definitions
B.1.1 KEK_LKH
Appendix C: Sample GDOI Definitions for SRTP
C.1 SRTP Namespace: SA TEK Bindings
C.2 SRTP Namespace: SA TEK Attributes
C.2.1 SSRC
C.2.2 DESTINATION_ADDRESS
C.2.3 DESTINATION_RTP_PORT
C.2.4 DESTINATION_RTCP_PORT
C.2.5 ROLLOVER_COUNTER
C.2.6 CIPHER
C.2.7 CIPHER_MODE
C.2.8 CIPHER_KEY_LENGTH
C.2.9 SALT_KEY_LENGTH
C.2.10 AUTHENTICATION_ALGORITHM
C.2.11 WINDOW_SIZE
C.2.12 SRTCP_INDEX Addresses....................................................30
1.0 Introduction
This document presents an ISAMKP Domain of Interpretation (DOI) for
group key management [GKMARCH]. called the ?Group Domain of Interpretation?
(GDOI). In this group key management model, the GDOI protocol is run
between a group member and a ?group controller/key 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 SA
of security
association (SA) definition from the Internet DOI [RFC2407, RFC2409], RFC2409].
The Phase 2 exchange is defined in this document, and proposes new
payloads and exchanges according to the ISAKMP standard [p. 14 RFC2408,].
RFC2408].
There are several 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, or Key Download in GSAKMP) (KD)
5) Sequence number (SEQ)
6) Proof of Possession (POP)
There are two new exchanges.
1) A Phase 2 exchange creates Category-2 or Category-3 Re-key and Data-Security Protocol SAs.
The new Phase 2 exchange, called "GROUPKEY-PULL," downloads keys for group key management (an
a group?s ?Re-key? SA and/or ?Data-security? SA. The Re-key SA that
includes a key encrypting key, or KEK, common to the group) or for group; a Data-
security protocols [Section 2.1
RFC2407], which consist of an SA that includes a data encryption key, or TEK. The SA [Section 4.6.2 RFC2401] for the KEK or TEK includes 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 specific to the data security protocol (see Appendices of
this document). attributes. The GROUPKEY-PULL GROUPKEY-
PULL exchange uses "pull" behavior since the Member member initiates the
retrieval of these SAs from a group
controller and key server ("GCKS"). The Member is aware of the Group
through some out-of-band announcement scheme (such as Session
Description Protocol) and initiates the pull. GCKS.
2) A datagram creates or modifies Category-2 and Category-3 subsequently establishes additional Rekey and/or Data-
Security Protocol SAs.
Baugher, et. al. Standards Track - Expires July, 2002 3
The GDOI Domain of Interpretation January, 2002
The GROUPKEY-PUSH datagram is "pushed" from the GCKS to the Members.
A KEK members
to create or KEK array protects the GROUPKEY-PUSH message, which creates update a
new Category-2 Re-key or Category 3 Data-security SA. A Category-2 Re-key SA
protects GROUPKEY-
PUSH messages (i.e. it contains the group KEK). A Category-3 SA is GROUPKEY-PUSH messages. Thus, a
Data Security protocol GROUPKEY-PULL is necessary
to establish at least one Re-key SA - in order to protect subsequent
GROUPKEY-PUSH messages. The GDOI passes this information sender 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]. Although the
particular Data Security Protocol (IPsec, SRTP, AMESP). Multiple
Category-3 SAs GROUPKEY-PUSH specified by this document can
be specified through the SAT. The GCKS or Delegate
creates each Category-3 SA with used to refresh a TEK (carried in KD) on behalf Re-key SA, the most common use of GROUPKEY-PUSH
is to establish a
Security Protocol, which secures Data-security SA for a new data session (e.g., IP
multicast file transfer). 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 Security Protocol 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 Category-3 data-security SA in the same way that IPsec ESP uses the
IKE Phase 2 keys and owns the Phase 2 SA. When the GROUPKEY-PUSH message carries
a KEK array, it creates a new Category-2 SA. The GKCS or Delegate
creates a new Category-2 SA with a KEK array in order to add or remove
group members using a membership management protocol [RFC2627, GSAKMP,
OFT]. Alternatively, membership may expire when the KEK expires
[MARKS] and the GROUPKEY-PUSH message is not used to create Category-2
SAs SA; for GDOI, IPsec ESP uses
the particular Group. Use of LKH-style membership management
is an option in the GDOI.
The GROUPKEY-PULL exchange resembles the GSAKMP Group Establishment
procedure and gthe GROUPKEY-PUSH resembles GSAKMP Re-key [GSAKMP].
Unlike GSAKMP, TEK.
GDOI uses IKE exchanges (the the Phase 1 exchanges) exchanges defined in [RFC2409] and definitions
and
definitions. GDOI uses an IKE-compliant ISAKMP-compliant header in which from [RFC2408]. "GDOI" is the
declared domain of interpretation in the header used in the IKE Phase 1
and subsequent GDOI Phase 2 (GROUPKEY-PULL) exchanges.
Thus
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.
2.0 Motivation members for Using ISAKMP multicast and
groups-security applications.
The ISAKMP protocol is 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 key management framework for transferring key business environment, many of these applications
require network security and authentication may use IPsec ESP to secure their data independent
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 generation process
[Section 1 RFC2408]. ISAKMP defines a set
(authentication of protocol exchanges that
set up a unique sources of ESP packets is not possible).
GDOI can also secure channel for key management, as well group applications that do not use multicast
transport such as video-on-demand. For example, the exchange GROUPKEY-PUSH
message may establish a pair-wise IPsec ESP SA for a member of
key and authentication data.
Generalized payloads a
subscription group without the need for exchanging key generation management exchanges and authentication
data are defined by ISAKMP. These payloads are combined with a
costly asymmetric cryptography.
Baugher, et. al. Standards Track - Expires July, 2002 4
The GDOI Domain of Interpretation (DOI), which defines the specifics of key exchange
protocol.
ISAKMP is intended to support the negotiation of SAs for Security
Protocols at January, 2002
1.2 Extending GDOI
Not all layers of the network stack, although in practice it
is commonly used at secure multicast or multimedia applications can use IPsec
ESP. Many Real Time Transport Protocol applications, for example,
require security above the network layer.
2.1 Disadvantages of using ISAKMP IP layer to preserve RTP header
compression efficiencies and transport-independence [RFC1889]. A generalized protocol such as ISAMKP has a tendency towards
complexity. This complicates
future RTP security reviews of the protocol [FS00].
Protocol complexity may also lead to implementation errors.
2.2 Advantages of benefit from using ISAMKP
The IKE protocol is GDOI to establish
group SAs for multicast and unicast security services. In order to
add a widely-deployed key exchange protocol that
supports new DOIs [Section 4 RFC2409]. It is primarily used as data security protocol, a key
exchange protocol for IPSEC, but can be used new RFC MUST specify the data-
security SA parameters conveyed by GDOI for other that security
protocols as well. IPSEC protocols have been deployed protocol;
these parameters are listed in the majority section 5.4.2 of all internetworking devices as well as end-user host products. As
IPSEC support has grown, support for the IKE this document.
2.0 ISAKMP Phase 1 protocol has proliferated
The GDOI uses ISAKMP phase 1 exchanges as well. As a measure of IPsec deployment, 70 vendors participated defined in
the IKE interoperability testing at the most recent VPN
interoperability conference.
There [RFC2409]. The
following sections define characteristics which are many advantages to making use of this existing support unique for
ISAKMP as a key management framework and IKE these
exchanges when used for the secure channel
that is our Category-1 GDOI.
2.1 DOI value
The Phase 1 SA of Figure 2:
a. Re-using much of the existing key management protocol promotes payload has a
single key management framework.
b. Systems that provide network-layer protection of unicast data will
have DOI value. That value MUST be the same market needs to provide network-layer protection for
multicast data.
c. Using the same underlying protocol will reduce both complexity and
size of the key management code.
d. Implementation can be achieved more expediently.
2.3 Overview of IKE
IKE is logically divided into two exchanges, referred to GDOI
DOI value as Phase 1
and Phase defined later in this document.
2. 2 UDP port.
GDOI MUST NOT run on port 500 (the port commonly used for IKE). A Phase 1 exchange must new
port number MUST be completed before any Phase 2
exchanges are attempted. Once defined by IANA for GDOI.
3.0 GROUPKEY-PULL Exchange
The goal of the Phase 1 GROUPKEY-PULL exchange has completed,
there is no limit to establish a Re-key
and/or Data-security SAs at the number of member for a particular group. A
Phase 2 exchanges that can take
place, and 1 SA (as defined in [RFC2407]) protects the GROUPKEY-PULL;
there may be simultaneous Phase 2 multiple GROUPKEY-PULL exchanges occurring
between IKE peers.
In Phase 1, two peers establish a bi-directional secure authenticated
channel using payloads and semantics defined in ISAKMP. Several
different authentication methods are defined for use in IKE, i.e.
manually shared keys, digital signatures, or public key encryption.
The two peers negotiate a mutually-acceptable set of cryptographic
policies, and derive keying material using given Phase 1 SA.
The GROUPKEY-PULL exchange downloads the Diffie-Hellman or
public group key encryption algorithms. At encrypting key
(KEK) or KEK array under the end protection of Phase 1, the two peers
have fully authenticated each other and have exchanged adequate keying
material used to create a secure authenticated channel for Phase 1 and
Phase 2.
In Phase 2, the SA.
3.1 Authorization
There are two peers negotiate Security Associations on behalf of
IPSEC (or other security protocols if another DOI has been defined).
IKE alternative means for authorizing the GROUPKEY-PULL
message. First, the Phase 1 provides identity can be used to authorize the following protections for any defined
Phase 2
protocol:
a. Confidentiality. All messages are protected using an encryption
protocol negotiated during Phase 1.
b. Integrity. Each message contains (GROUPKEY-PULL) request for a per-message authentication
obtained with the use of an HMAC protocol which signs hashes taken
over group key. Second, a new
identity can be passed in the Phase 2 payloads GROUPKEY-PULL request. The new
identity could be specific to the group and other relevant data.
c. Replay protection. If 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 protocol uses nonces, they can
be included in the hashed data for identity.
3.2 Messages
The GROUPKEY-PULL is an Phase 2 messages.
d. Generation of key exchange protocol keying material. If the key
exchange protocol requires keying material to be generated, it can be
generated using exchange. Phase 1 computes SKEYID_a
from the DH keying material exchanged during in Phase 1.
2.4 Use SKEYID_a is the
Baugher, et. al. Standards Track - Expires July, 2002 5
The GDOI Domain of Interpretation January, 2002
"key" in the keyed hash used in the GROUPKEY-PULL HASH payloads. As
with the IKE Phase 1 as HASH payload generation [RFC 2409 section 5.5], each
GROUPKEY-PULL message hashes a Secure Channel
The secure channel uniquely defined by an IKE Phase 1 protects GDOI keying
material. It can directly provide confidentiality set of values.
Nonces permute the HASH and integrity. IKE
exchanges protect provide some protection against man-in-the middle, connection hijacking,
reflection and replay
attacks. IKE offers some Replay protection against
denial-of-service attacks as well. GDOI uses the IKE Phase 1 is important to protect the GCKS from
attacks that a new Phase 2 exchange called "GROUPKEY-PULL", which is
defined below.
2.4.1 IKE Phase 1 SA Payload key management server will attract.
The IKE Phase 1 SA payload has GROUPKEY-PULL uses nonces to guarantee "liveliness", or against
replay of a DOI value. That value MUST be the
GDOI DOI value as defined later recent GROUPKEY-PULL message. The replay attack is only
useful in this document.
2.4.2 Use the context of the IKE UDP port.
GDOI does not extend IKE, but current Phase 1. If a GROUPKEY-PULL
message is replayed based on a companion protocol to it. Therefore
the IKE previous Phase 1 exchange and GDOI ("phase 2") exchange SHOULD NOT use 1, the UDP port used by IKE. This allows a GDOI implementation HASH calculation
will fail due to be
written independent of an IKE implementation.
3.0 GROUPKEY-PULL Exchange a wrong SKEYID_a. The goal of message will fail processing
before the GROUPKEY-PULL exchange nonce is ever evaluated. In order for either peer to establish a Category-2
and/or Category-3 SAs at get
the Member for a particular Group. An IKE
Phase 1 SA protects benefit of the GROUPKEY-PULL; there may be multiple GROUPKEY-
PULL exchanges for a given Phase 1 SA. The GROUPKEY-PULL exchange
downloads replay protection it must postpone as much
processing as possible until it receives the Group key encrypting key (KEK) or KEK array under message in the
protection of protocol
that proves the Category 1 (IKE Phase 1) SA.
3.1 ACL-based Versus Credential-based Authorization
The GROUPKEY-PULL exchange supports two authorization models. If peer is live. For example, the
GCKS authorizes access to Responder MUST NOT
compute the Group KEK using shared Diffie-Hellman number (if KE payloads were
included) or install the new SAs until it receives a mechanism such as message with Nr
included properly in the HASH payload.
Nonces require an
access control List (ACL), then a single Member identity may suffice
and additional message in the GROUPKEY-PULL protocol exchange will not include additional credential
(CERT) and authentication data. If to
ensure that the GCKS uses does not add a more sophisticated
credential-based authorization mechanism, then group member until it proves
liveliness. The GROUPKEY-PULL member-initiator expects to find its
nonce, Ni, in the Member may have HASH of a
separate identity for each Group and the GROUPKEY-PULL exchange does
this securely [STS].
In ACL-based authorization, returned message. And the GCKS keeps a list of members for every
Group, and GROUPKEY-PULL
GKCS responder expects to see its nonce, Nr, in the identity HASH of a
returned message before providing group-keying material as in the Member
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 ][ | POP_I ])
HASH(4) = prf(SKEYID_a, M-ID | Ni_b | Nr_b [ | KE_R ] [ | SEQ | ]
KD [ | POP_R])
POP payload is contained constructed as described in Section 5.7.
* Protected by the Phase 1 SA, encryption occurs after HDR
HDR is an ISAKMP header payload that uses the Phase 1 cookies and a
message identifier (M-ID) as in IKE
ID payload. The [RFC2409]. Note that nonces are
included in the first two exchanges, with the GCKS forwards returning only the ID
SA policy payload before liveliness is proven. The HASH payloads from
[RFC2409] prove that the Member to peer has the
authorization application program (see Figure 3) to check Phase 1 secret (SKEYID_a) and
the ACL
before nonce for the exchange identified by message id, M-ID. Once
Baugher, et. al. Standards Track - Expires July, 2002 6
The GDOI Domain of Interpretation January, 2002
liveliness is established, the last message completes the real
processing of downloading the KD payload (section 5.5) payload.
In addition to the Member. There
are no cryptographic data passed in the GROUPKEY-PULL exchange for
ACL-based Authorization beyond SA Nonce and KD HASH payloads, and nonces for
replay protection (see section 5.2).
Credential-based authorization uses public-key cryptography, which is
probably the most scalable authentication technology for key
management [SKEME]. In the credential-based authorization model, a
much smaller list of signing authorities will be kept by member-initiator
identifies the GCKS
authorization application. The Member can use up to one CERT payload
for each KEK or KEK array group it requests (through a Phase 2 wishes to join through the ISAKMP ID payload). payload.
The GCKS authenticates this identity as part of the GROUPKEY-PULL
exchange.
3.2 Messages
The GROUPKEY-PULL is an IKE Phase 2 exchange. IKE Phase 1 computes
SKEYID_a from responder informs the DH keying material exchanged in Phase 1. SKEYID_a is member of the "key" in current value of the keyed hash used
sequence number in the GROUPKEY-PULL HASH payloads.
As with SEQ payload; the IKE HASH payload generation [RFC 2409 section 5.5], each
GROUPKEY-PULL message hashes a uniquely-defined set of values. Nonces
permute sequence number orders the HASH and provide some protection against replay attacks.
Replay protection is important to protect
GROUPKEY-PUSH datagrams (section 4); the GCKS from attacks that a
key management server will attract.
The GROUPKEY-PULL uses nonces member MUST check to guarantee "liveliness", or see
that
someone is not replaying a recent GROUPKEY-PULL message. The replay
attack the sequence number is only useful greater than in the context of the current Phase 1. If a
GROUPKEY-PULL message is replayed based on a previous IKE Phase 1, the
HASH calculation will fail due to a wrong SKEYID_a. The message will
fail processing before SEQ payload
the nonce is ever evaluated. In order member holds for
either peer to get the benefit of the replay protection it must
postpone as much processing as possible until group (if it receives holds any) before installing
any new SAs . The SEQ payload MUST be present if the message
in SA payload
contains an SA KEK attribute. The GCKS responder informs the protocol that proves member
of the peer is live. For example, cryptographic policies of the
Responder MUST NOT compute group in the shared Diffie-Hellman number (if KE
payloads were included) or install SA payload, which
describes the new SAs until it receives a
message with Nr included properly in DOI, KEK and/or TEK keying material, and authentication
transforms. The SPIs are also determined by the HASH payload.
Nonces require an additional message GCKS and downloaded
in the protocol exchange to
ensure that SA payload chain (see section 5.2). The SA KEK attribute
contains the GCKS does ISAKMP cookie pair for the Re-key SA, which is not add a group member until it proves
liveliness.
negotiated but downloaded. The GROUPKEY-PULL Member-Initiator expects to find its
nonce, Ni, SA TEK attribute contains an SPI as
defined in the HASH section 5.4 of this document. The second message
downloads this SA payload. If a returned message. And the GROUPKEY-PULL
GKCS Responder expects to see its nonce, Nr, Re-key SA is defined in the HASH of a returned
message before providing Group-keying material as SA
payload, then KD will contain the KEK; if one or more Data-security
SAs are defined 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,] payload, 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 ][ | POP_I ])
HASH(4) = prf(SKEYID_a, M-ID | Ni_b | Nr_b [ | KE_R ] [ | SEQ | ]
KD
[ | POP_R])
POP payload will contain the TEKs. This is constructed from prf(Ni | Nr)
* Protected by IKE Phase 1 SA, encryption occurs after HDR
HDR
useful if there is an ISAKMP header payload that uses initial set of TEKs for the Phase 1 cookies particular group
and a
message identifier (M-ID) as can obviate the need for future TEK GROUPKEY-PUSH messages
(described in IKE [RFC2409]. Note that nonces are
included section 4).
As described above, the member may establish an identity in the first two exchanges, with
GROUPKEY-PULL exchange in an optional CERT payload that is separate
from the GCKS returning only Phase 1 identity. When the
SA policy member passes a new CERT, a
proof of possession (POP) payload before liveliness is proven. accompanies it. The HASH payloads
[RFC2409] prove POP payload
demonstrates that the peer member or GCKS has used the Phase 1 very secret (SKEYID_a) and
the nonce for that
authenticates it. POP_I is an ISAKMP SIG payload containing a hash
including the exchange identified nonces Ni and Nr signed by message id, M-ID. Once
liveliness is established, the last message completes member, when the real
processing of downloading member
passes a CERT, signed by the KD payload.
In addition Group Owner to prove its authorization.
POP_R contains the Nonce and HASH payloads, hash including the Member Initiator
identifies concatenated nonces Ni and Nr
signed by the Group it wishes to join through GCKS, when the ISAKMP ID payload.
The GCKS Responder informs passes a CERT, signed by the Member of the current value group
owner, to prove its authority to provide keys for a particular group.
The use of the
sequence number in the SEQ payload; the sequence number orders the
GROUPKEY-PUSH datagrams (section 4); nonce pair for the member MUST check POP payload, transformed through a
pseudo-random function (prf) and encrypted, is designed to see that withstand
compromise of the sequence number Phase 1 key.
3.2.1 Perfect Forward Secrecy
If PFS is greater than in desired and the previous SEQ optional KE payload is used in the
member holds for the group (if
exchange, then both sides compute a DH secret and use it holds any) before installing any KEK
SA. The SEQ payload MUST be present if to protect
the SA payload contains a KEK
SA payload. new keying material contained in KD. The GCKS Responder informs the Member of responder will xor
the cryptographic
policies of DH secret with the Group in KD payload and send it to the SA payload, member
Initiator, which describes recovers the DOI, KEK
and/or TEK keying material, and authentication transforms. The SPIs
are also determined KD by the GCKS and downloaded repeating this operation as in
the SA payload chain
(see section 5.2). The KEK SA contains the Oakley IEXTKEY procedure [RFC2412].
3.2.2 ISAKMP cookie pair for the
Category-2 SA, which is not negotiated but downloaded. Header Initialization
Baugher, et. al. Standards Track - Expires July, 2002 7
The TEK SA
contains an SPI as defined in section 5.3 GDOI Domain of this document. The
second message downloads this SA payload. If a Category-2 SA is
defined in the SA payload, then KD will contain the KEK; if one or
more Category-3 SAs Interpretation January, 2002
Cookies are defined used in the SA payload, KD will contain the
TEKs. This is useful if there is an initial set ISAKMP header as a weak form 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 denial of
service protection. The GDOI GROUPKEY-PULL exchange in uses cookies
according to ISAKMP [RFC2408].
Next Payload identifies an optional CERT ISAKMP or GDOI payload that (see Section 5.0).
Major Version is separate
from the Phase 1 identity. When the Member Responder passes a new
CERT, a proof of possession (POP) payload accompanies it. and Minor Version is 0 according to ISAKMP
[RFC2408, Section 3.1].
The POP
payload demonstrates that the Member or GCKS principal Exchange Type has used the
very secret that authenticates that principal (i.e., value 240 for the principal's
private key that corresponds GDOI GROUPKEY-PULL exchange.
Flags, Message ID, and Length are according to the public key used in the CERT
payload). POP_I is an ISAKMP SIG payload containing [RFC2408,
Section 3.1]
3.3 Initiator Operations
Before a hash of group member (GDOI initiator) contacts the
concatenated nonces Ni GCKS, it must
determine the group identifier and Nr signed by acceptable Phase 1 policy via an
out-of-band method such as SDP. Phase 1 is initiated using the Member, when GDOI
DOI in the Member
passes a CERT, signed by SA payload. Once Phase 1 is complete the Group Owner initiator state
machine moves to prove its authorization.
POP_R contains the hash of GDOI protocol.
To construct the concatenated nonces first GDOI message the initiator chooses Ni and Nr signed by
the GCKS, when the GCKS passes
creates a CERT, signed by nonce payload, builds an identity payload including the Group owner, to
prove its authority to provide keys for a particular Group. The use
group identifier, and generates HASH(1).
Upon receipt of the nonce pair for second GDOI message, the POP payload, transformed through initiator validates
HASH(2), extracts the IKE
prf, is designed to withstand compromise of nonce Nr, and interprets the Category 1 (IKE Phase
1) key.
3.2.1 Perfect Forward Secrecy SA payload. If PFS is desired and the optional KE
policy in the SA payload is used in acceptable (e.g., the exchange,
then both sides compute a DH secret security protocol
and use it to protect cryptographic protocols can be supported by the new
keying material contained in KD. The GCKS Responder will xor initiator), the DH
secret with
initiator continues the KD payload protocol.
If the group policy uses certificates for authorization, the
initiator generates a hash including Ni and send it to Nr and signs it. This
becomes the Member Initiator, contents of the POP payload. If necessary, a CERT payload
is constructed which
recovers holds the KD by repeating this operation as in public key corresponding to the Oakley IEXTKEY
procedure [RFC2412].
3.2.2 ISAKMP Header Initialization
Cookies are
private key used in to sign the ISAKMP header as a weak form of denial of
service protection. POP payload.
The initiator constructs the third GDOI GROUPKEY-PULL exchange uses cookies
according to ISAKMP message by including the CERT
and IKE [RFC2527, RFC2408, RFC2409].
Next Payload identifies an ISAKMP or GDOI payload (see Section 5.0).
Major Version is 1 POP payloads (if needed) and Minor Version is 0 according to ISAKMP
[RFC2408, Section 3.1].
The Exchange Type has value 240 for creating HASH(3).
Upon receipt of the GDOI GROUPKEY-PULL exchange.
Flags, Message ID, and Length are according to ISAKMP [RFC2408,
Section 3.1]
3.3 Initiator Operations
Before an group member (GDOI initiator) contacts the GCKS, it must
determine the group identifier and acceptable IKE Phase 1 policy via a
unspecified method. IKE Phase 1 is initated using the GDOI DOI in the
SA payload. Once IKE Phase 1 is complete, the initator state machine
moves to the GDOI protocol.
To construct the first GDOI message the initiator chooses Ni and
creates a nonce payload, builds an identity payload including the
group identifer, 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 initator), the
initiator continutes the protocol.
If the group policy is to use certificates for authorization, the
initiator generates a hash of the Ni and Nr and signs it. This
becaomes 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 initator constructs the third GDOI message by including the CERT
and POP payloads (if needed) and creating HASH(3).
Upon receipt of the fourth fourth GDOI messages, the initiator validates
HASH(4). If the responder sent CERT and POP_R payloads, the POP
signature is validated.
If 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 This could happen if two
GROUPKEY-PULL messages happened in parallel, and the sequence number
changed between the time times the results of two GROUPKEY-PULL messages
were returned from the GCKS.
Baugher, et. al. Standards Track - Expires July, 2002 8
The GDOI Domain of Interpretation January, 2002
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 TEK SAs, TEKs, once the keys and policy are matched,
the initiator is ready to send or receive packets matching the TEK SA.
policy. (If policy and keys had been previously received for this
TEK SA, policy, the
initator initiator may decide instead to ignore this TEK SA
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 IKE 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 it's its database contains the group information for the group
identifier.
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 rekey 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 group controller will besending 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).
3.5 Use of Data Security Protocols for the Secure Channel
The IKE Phase 1 is used as a Secure Channel for the "registration" of
a Member to a Group whereby the Member authenticates itself to the
GCKS and receives keying material. In principle, a variety of means
might be used to protect the registration and pulling of keys such as
IPSEC ESP or SSL. There are advantages to that approach, moreover, in
simplicity of implementation and robustness of operation. Web
servers, for example, support SSL, which might serve as a convenient
means of securely downloading keys from the GCKS to the Member.
There is no requirement that GROUPKEY-PULL be the means by which the
GDOI SAD is initialized. It is possible that GDOI GROUPKEY-PUSH
datagrams (described below) use keying material obtained by means
other than a GROUPKEY-PULL. The GDOI, however, does not define these
other means since it is intended to be an extension to IKE for group
key management. Although the GDOI could specify a mode of operation
for GROUPKEY-PULL other than over an IKE Phase 1 SA, this is not done
in the interests of simplicity of the specification.
4.0 GROUPKEY-PUSH Message
Following the model described in [HBH00], GDOI sends control
information securely using group communications, i.e. using IP
multicast distribution
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 GROUPKEY-
PUSH message (which but it can also be "pushed" using unicast delivery). delivery if IP
multicast is not possible. The GROUPKEY-PUSH message replaces a Category-2 Re-
key SA KEK or KEK array, and/or creates a new Category-3 Data-security SA (see
section 1.3).
Member GCKS or Delegate
------ ----------------
<---- HDR*, SEQ, SA, KD, [CERT,] SIG
* Protected by the Category-2 Re-key SA KEK; encryption occurs after HDR
Baugher, et. al. Standards Track - Expires July, 2002 9
The GDOI Domain of Interpretation January, 2002
HDR is defined below. The SEQ payload is defined in the Payloads
section. The SA defines the policy (e.g. crypto protection suite) and
attributes (e.g. SPI) for a Category-2 Re-key and/or Category-3 Data-security SAs. The
GCKS or
Delegate delegate optionally provides a CERT payload for verification
of the
SIG, which 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). KD is
itself), prefixed with the key download payload as described string "rekey". The prefixed string
ensures that the signature of the Rekey datagram cannot be used for
any other purpose in the Payloads
section. GDOI protocol.
If the SA defines an LKH-style KEK array or single KEK, KD contains a
KEK or KEK array for a new Category-2 Re-key SA, which has a new cookie pair.
When the KD payload carries a new KEK SA KEK attribute (section 5.3), a Category-2
Re-key SA is replaced with a new SA having the same Group 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
new
Category-3 Data-security SA has been created, with keying material carried
in KD (Section 5.5).
4.1 Perfect Forward Secrecy (PFS)
The GROUPKEY-PUSH message is protected by the Group 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 and
OFT 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 "backward
access control" have been called "perfect forward security" and
"perfect backward security" in the literature [RFC2627, GSAKMP, CP00,
OFT]. [RFC2627].
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
that is used by a particular GDOI implementation.
4.4 Use of signature keys
The GCKS SHOULD NOT use the same key to sign the SIG payload in the
GROUPKEY-PUSH message as was used for authorization in the GROUPKEY-
PULL POP payload. Doing so may contribute to an attack by a dishonest
group member where be can unwittingly cause the GCKS to sign a validly
formed GROUPKEY-PUSH message masquerading as Ni. If If the same key must be used, a different hash
Baugher, et. al. Standards Track - Expires July, 2002 10
The GDOI Domain of Interpretation January, 2002
function SHOULD be used as a base for the POP payload than is used as
a base for the SIG payload.
4.4
4.5 ISAKMP Header Initialization
Unlike ISAKMP or IKE, the cookie pair is completely determined by the
GCKS. The cookie pair in the GDOI ISAKMP header identifies the
Category-2 Re-key
SA to differentiate the secure groups managed by a GCKS. Thus, GDOI
uses the cookie fields as an SPI. Use of the cookie as an
anti-clogging token [RFC2522, RFC2408] is for further study. SPI
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 value 241 for the GDOI GROUPKEY-PUSH message.
Flags, Message ID, and Length are according to ISAKMP [RFC2408,
Section 3.1]
4.5
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 as part of a GDOI
GROUPKEY-PUSH message.
5.0 Payloads and Defined Values
This document specifies use
4.7 Initiator Operations
An initiator (GCKS or delegate) may initate a Rekey message for one
of 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 payloads, 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
defined changes to the KEK (in the case of a static KEK) or in accordance with RFC2408. The following payloads group
membership (in the case of LKH) an SA_KEK attribute is added to the
SA. If there are
extended one or further specified.
Next Payload Type Value
----------------- -----
Security Association (SA) 1
Identification (ID) 5
Nonce (N) 10
Several more new TEKs then SA_TEK attributes are
added to describe that policy.
A KD payload formats 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 required sent for each
SA_TEK attribute included in the group security
exchanges. SA payload.
The Payload types for payloads following the new headers HDR are defined in then encrypted using the
ISAKMP "Private USE" range.
Next Payload Type Value
----------------- -----
RESERVED 128 - 129
SA current
KEK Payload (SAK) 130 encryption key.
Baugher, et. al. Standards Track - Expires July, 2002 11
The GDOI Domain of Interpretation January, 2002
A CERT payload is added if the initiator needs to provide its
certificate.
Finally, the initiator hashes the string "rekey" followed by the key
management message already formed. The hash is signed, placed in a
SIG payload and added to the datagram. The datagram can now be sent.
4.8 Receiver Operations
A group member receiving the GROUPKEY-PUSH datagram matches the
cookie pair in the ISAKMP HDR to an existing SA. The message is
decrypted, and the form of the datagram is validated. This weeds out
obvious ill-formed messages (which may be sent as part of a Denial of
Service attack on the group).
The signature of the decrypted message is then validated, possibly
using the CERT payload if it is included.
The sequence number in the SEQ payload is validated to ensure that it
is greater than the previously received sequence number, and that 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
RESERVED 135 - 200
GDOI Private Use 201 - 255
5.1 Identification Payload
The
Baugher, et. al. Standards Track - Expires July, 2002 12
The GDOI Domain of Interpretation January, 2002
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 !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! ID Type ! RESERVE2 !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Identification Data ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: Identification Payload Format
The Identification 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, this field will be zero (0).
o RESERVED (1 octet) - Unused, must be zero (0).
o Payload Length (2 octets) - Length, in octets, of the
identification data, including the generic header.
o Identification Type (1 octet) - Value describing the identity
information found in the Identification Data field.
o RESERVED2 (2 octets) - Unused, must be zero (0).
O Identification Data (variable length) - Value, as indicated by
the Identification Type.
5.1.1 Identification Type Values
The following table lists the assigned values for the Identification
Type field found in the Identification Payload.
ID Type Value
------- -----
RESERVED 0 - 10
ID_KEY_ID 11
RESERVED 12 - 127
Private Use 128 - 255
Baugher, et. al. Standards Track - Expires July, 2002 13
The GDOI Domain of Interpretation January, 2002
5.1.1.1 ID_KEY_ID
In the context of a GDOI ID payload, ID_KEY_ID specifies a four (4)-
octet group identifier.
5.2 Security Association Payload
The Security Association payload is defined in RFC 2408. For the
GDOI, it is used by the GCKS to assert security attributes for both
Category-2
Re-key and Category-3 SAs. In the GDOI, this payload may also be
called a GSA Payload. 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 !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! DOI !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
! SA Attribute Next Payload ! RESERVED2 !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
The Security Association Payload fields are defined as follows:
o Next Payload (1 octet) - Identifies the next payload for the
GROUPKEY-PULL or the GROUPKEY-PUSH message as defined above. The next
payload MUST NOT be a SAK Payload or SAT Payload type, but the next
non-Security Association type payload.
o RESERVED (1 octet) - Must be zero.
o Payload Length (2 octets) is the octet length of the current
payload including the generic header and all TEK and KEK payloads.
o DOI (4 octets) - Is the GDOI, which is value 196 pending
assignment by the IANA.
o SA Attribute Next Payload (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.
o RESERVED (2 octets) - Must be zero.
5.2.1 Payloads following the SA payload
Payloads that define specific security association attributes for the
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
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 require the use of a
Category-2 Re-key
SA, the GCKS would not need to send a KEK an SA payload KEK attribute to the group
member since all SA updates would be performed using the
Category-1 Registration
Baugher, et. al. Standards Track - Expires July, 2002 14
The GDOI Domain of Interpretation January, 2002
SA. Alternatively, group policy might use a Category-2 Re-key SA but choose to
download a KEK to the group member only as part of the
Category-1 Registration
SA. Therefore, the KEK policy (in the SA KEK payload) attribute) would not be
necessary as part of the Category-2 Re-key SA message SA payload.
Specifying multiple SATs allows multiple sessions to be part of the
same 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 the KEK
method for a Group group and parameters specific to the GROUPKEY-PULL
operation. The source and destination identities describe the
identities used for the GROUPKEY-PULL datagram.
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 ! 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.
o RESERVED (1 octet) - Must be zero.
o Payload Length (2 octets) - Length of this payload, including
the KEK attributes.
o SPI (16 octets) Protocol (1 octet) - Security Parameter Index Value describing an IP protocol ID (e.g.,
UDP/TCP) for the KEK. rekey datagram.
Baugher, et. al. Standards Track - Expires July, 2002 15
The SPI
must be the ISAKMP Header cookie pair where the first 8 octets become
the "Initiator Cookie" field GDOI Domain of Interpretation January, 2002
o SRC ID Type (1 octet) - Value describing the GROUPKEY-PUSH message ISAKMP HDR,
and the second 8 octets become the "Responder Cookie" identity
information found in the same HDR.
As described above, these cookies are assigned by the GCKS.
o POP Algorithm (2 octets) - The POP payload algorithm. SRC Identification Data field. Defined
values are specified in the following table. If no POP algorithm is
defined by the KEK policy this field must be zero.
Algorithm IPSEC Identification Type Value
-------------- -----
RESERVED 0
POP_ALG_RSA 1
POP_ALG_DSS 2
POP_ALG_ECDSS 3
RESERVED 4-127
Private Use 128-255 section in the
IANA isakmpd-registry [ISAKMP-REG].
o POP Key Length SRC ID Port (2 octets) - Length Value specifying a port associated
with the source Id. A value of zero means that the POP payload key. If no
POP algorithm is defined in the KEK policy this SRC ID Port field must
should be zero. ignored.
o KEK Attributes SRC ID Data Len (1 octet) - 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 KEK Attributes
The following attributes may be present in a SAK Payload. The
attributes must follow Value specifying the format defined in ISAKMP [RFC2408] section
3.3. In length of the table, attributes that are defined as TV are marked as
Basic (B); attributes that are defined as TLV are marked
SRC Identification Data field.
o SRC Identification Data (variable length) - Value, as Variable
(V). indicated
by the SRC ID Type.
o DST 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 10 B
The following attributes may only be included (1 octet) - Value describing the identity
information found 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). DST Identification Data field. Defined
values are specified in by the
following table.
KEK Management IPSEC Identification Type Value
------------------- -----
RESERVED 0
LKH 1
OFT 2
RESERVED 3-127
Private Use 128-255
5.3.3 KEK_ALGORITHM
The KEK_ALGORITHM class specifies the encryption algorithm using with
the KEK. Defined values are specified section in the following table.
Algorithm Type Value
-------------- -----
RESERVED 0
KEK_ALG_DES 1
KEK_ALG_3DES 2
KEK_ALG_TWOFISH 3
KEK_ALG_AES 4
RESERVED 5-127
Private Use 128-255
5.3.4 KEK_KEY_LENGTH
The KEK_KEY_LENGTH class specifies
IANA 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
with the source Id.
o DST ID Data Len (1 octet) - Value specifying the KEK Algorithm key length (in
bits).
5.3.5 KEK_KEY_LIFETIME
The KEK_KEY_LIFETIME class specifies of the maximum time
DST Identification Data field.
o DST Identification Data (variable length) - Value, as indicated
by the DST ID Type.
o SPI (16 octets) - Security Parameter Index for which the
KEK is valid. KEK. The GCKS may refresh SPI
must be the KEK at any time before ISAKMP Header cookie pair where the end first 8 octets become
the "Initiator Cookie" field of the valid period. The value is a four (4) octet number defining a
valid time period GROUPKEY-PUSH message ISAKMP HDR,
and the second 8 octets become the "Responder Cookie" in seconds.
5.3.6 SIG_HASH_ALGORITHM
SIG_HASH_ALGORITHM specifies the SIG payload hash algorithm. The
following tables define same
HDR. As described above, these cookies are assigned by the algorithms for SIG_HASH_ALGORITHM. GCKS.
o POP 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 (2 octets) - The SIG_ALGORITHM class specifies the SIG POP payload signature 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
-------------- -----
RESERVED 0
SIG_ALG_RSA
POP_ALG_RSA 1
SIG_ALG_DSS
POP_ALG_DSS 2
SIG_ALG_ECDSS
POP_ALG_ECDSS 3
RESERVED 4-127
Private Use 128-255
5.3.8 SIG_KEY_LENGTH
Baugher, et. al. Standards Track - Expires July, 2002 16
The SIG_KEY_LENGTH class specifies the length GDOI Domain of Interpretation January, 2002
o POP Key Length (2 octets) - Length of the SIG POP payload key.
5.3.9 KE_OAKLEY_GROUP
The KE_OAKLEY_GROUP class defines the OAKLEY Group used to compute the
PFS secret If
no POP algorithm is defined in the optional KE payload of KEK policy this field must be
zero.
o KEK Attributes - Contains KEK policy attributes associated with
the GDOI GROUPKEY-PULL
exchange. This attribute uses group. The following sections describe the values assigned to Group
Definitions in possible attributes.
Any or all attributes may be optional, depending on the IANA ipsec-registry [IPSEC-REG].
5.4 SA TEK Payload group policy.
5.3.1 KEK Attributes
The SA TEK (SAT) payload contains security following attributes for a single TEK
SA associated with may be present in 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 SAK Payload. The
attributes must follow the format defined in ISAKMP [RFC2408] section
3.3. In the table, attributes that 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 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
! Next Payload ! RESERVED ! Payload Length !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
! Protocol-ID ! TEK Protocol-Specific Payload ~
+-+-+-+-+-+-+-+-+ ~
~ ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! B
KE_OAKLEY_GROUP 10 B
The SAT Payload fields are defined as follows:
o Next Payload (1 octet) - Identifies the next payload for the following attributes may only be included in a GROUPKEY-PULL or the GROUPKEY-PUSH message.
message: KEK_MANAGEMENT_ALGORITHM, KE_OAKLEY_GROUP.
5.3.2 KEK_MANAGEMENT_ALGORITHM
The only valid next
payload types for this message are another SAT Payload KEK_MANAGEMENT_ALGORITHM class specifies the group KEK management
algorithm used to provide forward or zero backward access control (i.e.,
used to
indicate there exclude group members). Defined values are no more security association attributes.
o RESERVED (1 octet) - Must be zero.
o Payload Length (2 octets) - Length of this payload, including specified in the TEK Protocol-Specific Payload.
o Protocol-ID (1 octet) -
following table.
KEK Management Type Value specifying the Security Protocol.
------------------- -----
RESERVED 0
LKH 1
RESERVED 2-127
Private Use 128-255
5.3.3 KEK_ALGORITHM
The following table defines KEK_ALGORITHM class specifies the encryption algorithm using with
the KEK. Defined values for are specified in the Security Protocol
Protocol ID following table.
Algorithm Type Value
-----------
-------------- -----
RESERVED 0
GDOI_PROTO_IPSEC_ESP
Baugher, et. al. Standards Track - Expires July, 2002 17
The GDOI Domain of Interpretation January, 2002
KEK_ALG_DES 1
GDOI_PROTO_MESP
KEK_ALG_3DES 2
GOI_PROTO_AMESP
KEK_ALG_AES 3
GDOI_PROTO_SRTP 4
RESERVED 5-127
PRIVATE USE 4-127
Private Use 128-255
o TEK Protocol-Specific Payload (variable) - Payload which
describes
5.3.3.1 KEK_ALG_DES
This algorithm specifies DES using the attributes specific 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]. The mode of
operation for AES is Cipher Block Chaining (CBC) as recommended in [AES-
MODES].
5.3.4 KEK_KEY_LENGTH
The KEK_KEY_LENGTH class specifies the Protocol-ID.
5.4.1 PROTO_IPSEC_ESP KEK Algorithm key length (in
bits).
5.3.5 KEK_KEY_LIFETIME
The TEK Protocol-Specific payload KEK_KEY_LIFETIME class specifies the maximum time for ESP which the
KEK is as follows:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
! 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 ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! valid. The SAT Payload fields are defined as follows:
o Protocol (1 octet) - Value describing an IP protocol ID (e.g.,
UDP/TCP). A value GCKS may refresh the KEK at any time before the end
of zero means that the SRC Id Prot field should be
ignored.
o SRC ID valid period. The value is a four (4) octet number defining a
valid time period in seconds.
5.3.6 SIG_HASH_ALGORITHM
SIG_HASH_ALGORITHM specifies the SIG payload hash algorithm. The
following tables define the algorithms for SIG_HASH_ALGORITHM.
Algorithm Type (1 octet) - Value describing
-------------- -----
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 identity
information found in SIG_ALGORITHM is
SIG_ALG_DSS or SIG_ALG_ECDSS, which imply SIG_HASH_SHA1.
Baugher, et. al. Standards Track - Expires July, 2002 18
The GDOI Domain of Interpretation January, 2002
5.3.7 SIG_ALGORITHM
The SIG_ALGORITHM class specifies the SRC Identification Data field. SIG payload signature
algorithm.
Defined values are specified by in the IPSEC Identification following table.
Algorithm Type section Value
-------------- -----
RESERVED 0
SIG_ALG_RSA 1
SIG_ALG_DSS 2
SIG_ALG_ECDSS 3
RESERVED 4-127
Private Use 128-255
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 IANA
isakmpd-registry [ISAKMP-REG].
o SRC ID Port (2 octets) - Value specifying a port associated with DSS digital signature algorithm as
described in [FIPS186-2].
5.3.7.3 SIG_ALG_ECDSS
This algorithm specifies the source Id. A value Eliptic Curve digital signature algorithm
as described in [FIPS186-2].
5.3.8 SIG_KEY_LENGTH
The SIG_KEY_LENGTH class specifies the length of zero means that the SRC ID Port field should
be ignored.
o SRC ID Data Len (1 octet) - Value specifying SIG payload key.
5.3.9 KE_OAKLEY_GROUP
The KE_OAKLEY_GROUP class defines the length OAKLEY Group used to compute
the PFS secret in the optional KE payload of the
SRC Identification Data field.
o SRC Identification Data (variable length) - Value, as indicated
by GDOI GROUPKEY-PULL
exchange. This attribute uses the SRC ID Type. Set values assigned to three bytes of zero Group
Definitions in the IANA IPsec-registry [IPSEC-REG].
5.4 SA TEK Payload
The SA TEK (SAT) payload contains security attributes for multiple-source
multicast groups that use a common single
TEK for all senders. 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 !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
Baugher, et. al. Standards Track - Expires July, 2002 19
The GDOI Domain of Interpretation January, 2002
! Protocol-ID ! TEK Protocol-Specific Payload ~
+-+-+-+-+-+-+-+-+ ~
~ ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
The SAT Payload fields are defined as follows:
o DST ID Type Next Payload (1 octet) - Value describing the identity
information found in Identifies the DST Identification Data field. Defined values
are specified by next payload for the IPSEC Identification Type section in
GROUPKEY-PULL or the IANA
isakmpd-registry [ISAKMP-REG]. 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 DST ID Prot RESERVED (1 octet) - Value describing an IP protocol ID
(e.g., UDP/TCP). A value Must be zero.
o Payload Length (2 octets) - Length of this payload, including
the TEK Protocol-Specific Payload.
o Protocol-ID (1 octet) - Value specifying the Security Protocol.
The following table defines values for the Security Protocol
Protocol ID Value
----------- -----
RESERVED 0
GDOI_PROTO_IPSEC_ESP 1
RESERVED 2-127
PRIVATE USE 128-255
o TEK Protocol-Specific Payload (variable) - Payload which
describes the attributes specific for the Protocol-ID.
5.4.1 PROTO_IPSEC_ESP
The TEK Protocol-Specific payload for ESP is 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
! 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 ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
The SAT Payload fields are defined as follows:
Baugher, et. al. Standards Track - Expires July, 2002 20
The GDOI Domain of Interpretation January, 2002
o Protocol (1 octet) - Value describing an IP protocol ID (e.g.,
UDP/TCP). A value of zero means that the DST SRC Id Prot field should be
ignored.
o DST SRC ID Type (1 octet) - 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].
o SRC ID Port (2 octets) - Value specifying a port associated
with the source Id. A value of zero means that the DST SRC ID Port field
should be ignored.
o DST SRC ID Data Len (1 octet) - Value specifying the length of the
DST
SRC Identification Data field.
o DST SRC Identification Data (variable length) - Value, as indicated
by the DST SRC ID Type.
o Transform ID (1 octet) - Value specifying which ESP transform is Set to be used. The list 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 in the 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 the DST Id Prot field
should be ignored.
o DST ID Port (2 octets) - Value specifying a port associated
with the 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.
o DST Identification Data (variable length) - Value, as indicated
by the DST ID Type.
o Transform ID (1 octet) - Value specifying 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.
o RFC 2407 Attributes - 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], 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. The Authentication Algorithm
attribute of the IPSEC DOI is group authentication [AMESP] in GDOI.
Baugher, et. al. Standards Track - Expires July, 2002 21
The GDOI Domain of Interpretation January, 2002
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 of being developed or do not
yet exist.
MESP and AMESP are two related secure multicast protocols being
developed under the auspices of the IRTF Secure Multicast Group
[AMESP]. These Security Protocols must be defined in the context of
the GDOI.
The following information needs to be provided for a Security
Protocol to the 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 must provide the information in the bulleted
list above to guide the GDOI implementation for that protocol. If and
when the GDOI progresses on an IETF standards track, other Security
Protocols operating within its framework protocoland
will be specified in separate
standards track documents. To exemplify the structure and content of
GDOI security-protocol specifications, Appendix A contains a
specification for the SMuG Security Protocols, MESP and AMESP (see
Appendix A).
5.5 Key Download Payload
The Key Download Payload contains group keys for the Group 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 Category-2 Re-key SA with an optional KE payload,
The Key Download Payload will be xor'ed with the new Diffie-
Hellman Diffie-Hellman
shared secret. The xor operation will begin at the "Number of Key
Packets" field.
If the "Number of Key Packets" is zero, the group member is expected
to delete all keys associated with the ID. This type of KD payload
will only be sent by the GCKS when a group is deleted.
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 of Key Packets ! RESERVED2 !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
~ Key Packets ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
The Key Download 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.
Baugher, et. al. Standards Track - Expires July, 2002 22
The GDOI Domain of Interpretation January, 2002
o Payload Length (2 octets) - Length in octets of the current
payload, including the generic payload header.
o Number of Key Packets (2 octets) -- Contains the total 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 ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
o Key Download (KD) Type (1 octet) -- Identifier for the Key
Data field of this Key Packet.
Key Download Type Value
----------------- -----
RESERVED 0
TEK 1
KEK 2
LKH 3
OFT 4
RESERVED 5-127 4-127
Private Use 128-255
"KEK" is a single key whereas LKH and OFT are arrays of key-
encrypting keys. The definition for LKH is given in the appendix. an array of key-encrypting
keys
o RESERVED (1 octet) - Unused, set to zero.
o Key Download Length (2 octets) -- Length in octets of the Key
Packet data following this field.
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
Baugher, et. al. Standards Track - Expires July, 2002 23
The GDOI Domain of Interpretation January, 2002
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).
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 Category-1 Registration KD payload, the
group member can expect to receive the TEK as part of a Category-2 Re-key SA. At
least one TEK must be included in each Category-2 Re-key KD payload. Multiple TEKs
may be included if multiple streams associated with the SA are to be
rekeyed.
5.5.1.1 TEK_ALGORITHM_KEY
The TEK_ALGORITHM_KEY class declares that the encryption key for this
SPI is contained as the Key Packet Attribute. The encryption
algorithm that will use this key was specified in the SAT payload.
DES keys will consist of 64 bits (the 56 key bits with parity bit).
Triple DES keys will be be specified as 64 bits (including parity
bits) in the order that they are to be used for encryption (e.g.,
DES_KEY1, DES_KEY2, DES_KEY3).
5.5.1.2 TEK_INTEGRITY_KEY
The TEK_INTEGRITY_KEY class declares that the integrity key for this
SPI is contained as the Key Packet Attribute. The integrity algorithm
that will use this key was specified in the SAT payload. Thus GDOI
assumes that both the symmetric encryption and integrity keys are
pushed to the Member. 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
key for this SPI is contained in the Key Packet Attribute. The source
authentication algorithm that will use this key was specified in the
SAT payload.
5.5.2 KEK Download Type
Baugher, et. al. Standards Track - Expires July, 2002 24
The GDOI Domain of Interpretation January, 2002
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 2 V
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.
5.5.3 LKH Download Type
The LKH key packet is comprised of attributes representing different
leaves in the LKH key tree.
The format of those following attributes are
described used to pass an LKH KEK array in Appendix B.
5.5.4 OFT the KD
payload. The OFT key packet is comprised of attributes representing different
leaves in must follow the OFT key tree. The format of those defined in ISAKMP
[RFC2408] section 3.3. In the table, attributes which are TBD.
5.6 Sequence Number Payload
The Sequence Number Payload (SEQ) provides 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_LKH 1 V
If an anti-replay protection
for GROUPKEY-PUSH messages. Its use LKH key packet is similar to the Sequence Number
field defined included in the IPsec ESP protocol [RFC2406]. KD payload, there must be
only one present.
Baugher, et. al. Standards Track - Expires July, 2002 25
The GDOI Domain of Interpretation January, 2002
5.5.3.1 KEK_LKH
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Next Payload ! RESERVED LKH Version ! Payload Length Leaf ID ! Number of ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ LKH Keys ! Sequence Number !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+ LKH Keys !
~ ~
+---------------------------------------------------------------+
The Sequence Number Payload KEK_LKH attribute fields are defined as follows:
o Next Payload LKH version (1 octet) - Identifier for Contains the payload type version of the
next payload in the message. If LKH
protocol which the current payload data is the last in
the message, then this field will be zero.
o RESERVED (1 octet) - Unused, set to zero. formatted in.
o Payload Length Leaf ID (2 octets) - Length in octets of -- This is the current
payload, including Leaf Node ID of the generic payload header. LKH
sequence contained in this Key Packet Data block.
o Sequence Number (4 of LKH Keys (2 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 Cat-2 SA will have a Sequence
Number number of 1. The GDOI implementation keeps a sequence counter
distinct LKH keys in this sequence.
Each LKH Key is defined as an
attribute for Cat-2 SA and increments 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 ! ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Key Creation Date ! ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Key expiration Date ! ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Key Handle ! !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- !
! !
~ Key Data ~
+---------------------------------------------------------------+
o LKH ID (2 octets) -- This is the counter upon receipt of a
GROUPKEY-PUSH message. The current value position of this key in the sequence number must
be transmitted
binary tree structure used by LKH.
o Key Type (1 octet) -- This is the encryption algorithm for
which this key data is to group members as a part of be used. This value is specified in the Cat-1 SA SA payload.
A group member must keep a sliding receive window. The window must be
treated as in
Policy Token.
o Key Creation Date (4 octets) -- This is the ESP protocol [RFC2406] Section 3.4.3.
5.7 Proof time value of Possession when
this key data was originally generated.
Baugher, et. al. Standards Track - Expires July, 2002 26
The Proof of Possession Payload is used as part of group membership
authorization during a GDOI exchange. The Proof Domain of Possession Payload
is identical to an ISAKMP SIG payload. However, the usage Interpretation January, 2002
o Key Expiration Date (4 octets) -- This is entirely
different as the GCKS, GCKS delegate or Member signs a prf (i.e., RFC
2409 keyed MAC) of the concatenated nonces, Ni and Nr.
5.8 Nonce
The data portion of the Nonce payload (i.e., Ni_b and Nr_b included in the HASHs) MUST be a time value between 8 and 128 bytes.
6.0 Application Scenarios
This section considers two uses of GDOI
when this key is no longer valid for data broadcast and video-
on-demand applications. In these applications, a "content provider"
may be a studio, such as one of use.
o Key Handle (4 octets) -- This is the seven major U.S. movie studios, or randomly generated value
to uniquely identify a regional, national or international broadcast station. There key.
o Key Data (variable length) -- This is
also a "distributor," who the actual encryption
key data, which is dependent on the Key Type algorithm for its
format.
5.6 Sequence Number Payload
The Sequence Number Payload (SEQ) provides delivery an anti-replay protection
for GROUPKEY-PUSH messages. Its use is similar to homes and business. A
"distributor" may be a cable, telco, terrestrial broadcast network or
direct-to-home satellite operator. There are more than a dozen major
network distributors the Sequence Number
field defined in the U.S. that serve digital data to homes and
businesses. These distributors increasingly provide data services
such a multimedia stream and file delivery broadcasted to groups of
subscribers (e.g., using single source IP multicast) or delivered on
demand to a single subscriber.
A typical data broadcast may be a multicast file transfer or a stream
of a live sports event that is sent as part of a subscription or a
pay-per-view session. A typical video-on-demand application may be a
movie that is streamed or downloaded to an authenticated customer who
belongs to a subscription group, for example. 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 customer
authentication may use a smart card, pass phrases, network
authentication, tamper-resistant software, and other means. These
means Sequence Number Payload fields are beyond defined as follows:
o Next Payload (1 octet) - Identifier for the scope payload type of this document though the ID and GID
next payload fields convey the needed authorization information in the GDOI
Phase 1 and GROUPKEY-PULL exchanges. Each application scenario message. If the current payload is
discussed the last in a separate section below.
6.1 Data Broadcast
In
the message, then this scenario, a wide-area broadcaster is sending a multicast data
feed. This feed is from a live sporting event that is streamed from field will be zero.
o RESERVED (1 octet) - Unused, set to zero.
o Payload Length (2 octets) - Length in octets of the event location. This broadcaster is also current
payload, including the content provider who
sends generic payload header.
o Sequence Number (4 octets) - This field contains a
monotonically increasing counter value for the feed, which group. It is received
initialized to zero by authorized customers of
metropolitan-area network distributors. The network distributor also
has a GCKS that acts on its behalf the GCKS, and has distributed KEKs to incremented in each
subsequently-transmitted message. Thus the
Group first packet sent for a
given Rekey SA will have a Sequence Number of customers who are authorized to receive the sporting-event
feed. Our network distributor delivers 1. The GDOI
implementation keeps a sequence counter as an attribute for the broadcast data encrypted
by Rekey
SA and increments the TEK, which is sent via IP Multicast in counter upon receipt of a GROUPKEY-PUSH
message. The customers who have the KEK or KEK array for current value of the network-
distributor's Group will sequence number must be able transmitted
to decrypt group members as a part of the GROUPKEY-PUSH messages
that contain Registration SA SA payload. A
group member must keep a sliding receive window. The window must be
treated as in the TEK for 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
Baugher, et. al. Standards Track - Expires July, 2002 27
The GDOI Domain of Interpretation January, 2002
is identical to an ISAKMP SIG payload. However, the sporting event. In this way, usage is entirely
different.
The GCKS, GCKS delegate or member signs a prf (i.e., RFC 2409 keyed
MAC) of the network
distributor controls access to following values:
POP_HASH = prf("pop" | Ni | Nr)
The "pop" prefix ensures that the TEK by its customers independently signature of the broadcaster, who encrypts each stream once POP payload
cannot be used for re-distribution
through any number of network distributors.
At other purpose in the end GDOI protocol.
5.8 Nonce
The data portion of the data broadcast, each network distributor will have
its GCKS instruct Group members to destroy Nonce payload (i.e., Ni_b and Nr_b included
in the Category-3 SA HASHs) MUST be a value between 8 and its
TEK. This is done through a GROUPKEY-PUSH message.
6.2 Video-on-demand
In this scenario, a movie studio has mastered a movie file, and sends
it to network distributors who offer video-on-demand (VOD) service to
their customers. The content provider may choose to encrypt the file
or not. In this scenario, the network distributor has a GCKS that
acts on its behalf and has distributed KEKs to the Group of customers
who are authorized to download VOD movie files or view VOD streams.
There are many applications where the encryption needs to be unique to
the receiving device of the Group Member. So the network distributor
encrypts the file (after first decrypting it if it were previously
encrypted by the content provider). Thus the movie file is encrypted
at the point of distribution in QuickTime format, for example, in a
manner such that it can be decrypted and played by a QuickTime player.
Such a player fulfills the role of "Security Protocol" in Figure 3.
In contrast to the previous example, both the TEK and the KEK are
under the control of the network distributor owing to the need of
unique encryption of the VOD feed. The previous scenario, however,
allowed the GCKS to control the TEK and the network distributor to
control of the KEK. In some VOD applications, it may make sense for
the content provider to control the KEK and the network distributor to
control the TEK if the content provider owns the customer relationship
and the TEK is always distributed encrypted in the KEK. The use of
the KEK group secret eliminates the need for point-to-point key
establishment procedures for a 1:1 VOD session.
6.3 Summary
GDOI securely establishes keys for unicast and multicast data. As
further illustrated in the two scenaria, GDOI is suitable to manage
keys for on-demand unicast and multicast streams as well as file
download. Besides supporting 1:N and 1:1 groups, GDOI should be
effective in securing M:N applications, such as teleconferencing,
using LKH-style membership management [RFC2627]. Use of LKH-style
membership management is specified in the appendix.
7.0 Security Considerations
GDOI 128 bytes.
7.0 Security Considerations
GDOI is a security association (SA) protocol for groups of senders
and receivers. This protocol must use uses best-known practices for defense
against man-in-middle, connection hijacking, replay, reflection, and
denial-of-service (DOS) attacks. Further work is needed to establish
whether this draft version of GDOI uses best-known practices for key
management.
GDOI may inherit the problems of its 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 just as it benefits from
years of experience and work embodied in those protocols. Further work is
needed to establish whether GDOI uses ISKAMP and IKE in a good way. 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. Complexity is bad for
a Security Protocol because it makes correctness analysis more
difficult than in a simpler protocol and may lead to implementation
problems. The distribution of keying material using multicast
techniques, moreover, is novel. Novelty is bad for a key management
protocol because it can contain unexpected results and problems. Further work
is needed to determine that this version of GDOI successfully employs
novel techniques such as multicast key distribution without
compromising Group security (as defined by Group policy).
8.0 IANA Considerations
8.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 document
is in accordance with the "Supported Security Protocols" section in
[RFC2408].
8.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.
Baugher, et. al. Standards Track - Expires July, 2002 28
The GDOI Domain of Interpretation January, 2002
8.3 New Namespaces
The present document describes many new namespaces for use in the
GDOI payloads. Those may be found in subsections under Section 5.0. A
new GDOI registry should be created for these namespaces.
8.3 UDP Port
A new UDP port is required for GDOI.
9.0 Acknowledgements
The authors thank Ran Canetti, Cathy Meadows and Andrea Colegrove.
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 a previous version versions of this draft, document,
including a replay attack against the proof of possession exchange,
as well as man-in-the-middle attacks which could occur if the nonce size
was not bounded. several man-in-the-middle. Andrea has contributed to the
group policy section of this draft.
10.0 References
[CP00] R. Canetti, B. Pinkas, A taxonomy
[AES-MODES] "Recommendation for Block Cipher Modes of multicast security issues,
http://www.ietf.org/internet-drafts/draft-irtf-smug-taxonomy-01.txt,
Work in Progress, August 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.
[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.
[FS00] N. Ferguson and B. Schneier, A Cryptographic Evaluation of
IPsec, CounterPane, http://www.counterpane.com/ipsec.html.
[GKMARCH] M.Baugher, R.Canetti, L.Dondeti, Group Key Management
Architecture, http://search.ietf.org/internet-drafts/draft-ietf-msec-
gkmarch-00.txt, Work in Progress, June 2000.
[GSAKMP] H. Harney, A. Colegrove, E. Harder, U. Meth, R. Fleischer,
Group Secure Association Key Management Protocol,
http://search.ietf.org/internet-drafts/draft-ietf-msec-gsakmp-sec-
00.txt, June 2000, Work in Progress.
[HBH] H. Harney, M. Baugher, T. Hardjono, GKM Building Block: Group
Security Association (GSA) Definition,
http://www.ietf.org/internet-drafts/draft-irtf-smug-gkmbb-gsadef-
00.txt, Work in Progress 2000.
[HCBD] T. Hardjono, R. Canetti, M. Baugher, P. Dinsmore, Secure IP
Multicast: Problem areas, Framework, and Building Blocks,
http://www.ietf.org/internet-drafts/draft-irtf-smug-framework-00.txt,
Work in Progress 1999.
[IPSEC-REG] http://www.iana.org/assignments/ipsec-registry
[ISAKMP-REG] http://www.iana.org/assignments/isakmp-registry
[MARKS] B. Briscoe, MARKS: Zero Side Effect Multicast Key Management
using Arbitrarily Revealed Key Sequences, Proceedings of NGC'99,
rbriscoe@bt.co.uk.
[AMESP] R. Canetti, P. Rohatgi, Pau-Chen Cheng, Multicast Data
Security Transformations: Requirements, Considerations, and Prominent
Choices, http://search.ietf.org/internet-drafts/draft-irtf-smug-data-
transforms.txt, Work In Progress, 2000.
[NAI] http://www.nai.com/media/pdf/products/tns/6_PGP_VPN_001.pdf
[OFT] D. Balenson, D. McGrew, A. Sherman, Key Management for Large
Dynamic Groups: One-Way Function Trees and Amortized Initialization,
http://www.ietf.org/internet-drafts/draft-balenson-groupkeymgmt-oft-
00.txt, February 1999, Work in Progress.
Baugher, et. al. Standards Track - Expires July, 2002 29
The GDOI Domain of Interpretation January, 2002
[RFC1889] H. Schulzrinne, S. Casner, R. Frederick, V. Jacobson, RTP:
A Transport Protocol for Real-Time Applications, January 1996.
[RFC2093] Harney, H., and Muckenhirn, C., "Group Key Management
Protocol (GKMP) Specification," RFC 2093, July 1997.
[RFC2094] Harney, H., and Muckenhirn, C., "Group Key Management
Protocol (GKMP) Architecture," RFC 2094, July 1997.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Level", BCP 14, RFC 2119, March 1997.
[RFC2327] M. Handley, V. Jacobson, SDP: Session Description Protocol,
April 1998.
[RFC2367] D. McDonald, C. Metz, B. Phan, PF_KEY Key Management API,
Version 2, July 1998.
[RFC2401] S. Kent, R. Atkinson, Security Architecture for the
Internet Protocol, November 1998
[RFC2406] S. Kent, R. Atkinson, IP Encapsulating Security Payload
(ESP), November 1998.
[RFC2407] D. Piper, The Internet IP Domain of Interpretation for
ISAKMP, November 1998.
[RFC2408] D. Maughan, M. Shertler, M. Schneider, J. Turner, Internet
Security Association and Key Management Protocol, November 1998.
[RFC2409] D. Harkins, D. Carrel, The Internet Key Exchange (IKE),
November, 1998.
[RFC2412] H. Orman, The OAKLEY Key Determination Protocol, November
1998.
[RFC2522] P. Karn, W. Simpson, Photuris: Session-Key Management
Protocol, March 1999.
[RFC2627] D. M. Wallner, E. Harder, R. C. Agee, Key Management for
Multicast: Issues and Architectures, September 1998.
[SKEME] H. Krawczyk, SKEME: A Versatile Secure Key Exchange Mechanism
for Internet, ISOC Secure Networks and Distributed Systems Symposium,
San Diego, 1996.
[SRTP] R.Blom, E.Carrara, D.McGrew, M.Nasland, K.Norrman, D. Oran, The
Secure Real Time Transport Protocol, http://www.ietf.org/internet-
drafts/draft-ietf-avt-srtp-00.txt, February 2001, Work in Progress.
[RSA] RSA Laboratories, "PKCS #1 v2.0: RSA Encryption Standard",
October 1998.
[STS] Diffie, P. van Oorschot, M. J. Wiener, Authentication and
Authenticated Key Exchanges, Designs, Codes and Cryptography, 2, 107-
125 (1992), Kluwer Academic Publishers.
Authors Address: Addresses
Mark Baugher
Cisco Systems
5510 SW Orchid Street
Portland, OR 97219, USA
Baugher, et. al. Standards Track - Expires July, 2002 30
The GDOI Domain of Interpretation January, 2002
(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
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
Appendix A: Sample GDOI definitions for MESP and AMESP
Among the Security Protocols that may use the GDOI are MESP and AMESP,
which together are a protocol framework for group secrecy, group
authentication, and group source authentication [AMESP]. This
framework is to support a variety of algorithms for source
authentication and operate at the internetwork, transport or
applications layers. The MESP and AMESP protocols do not provide
source authentication; they provide a framework for source
authentication algorithms such as TESLA, which is a group source
authentication algorithm that is suitable for transport/application
layer service. Thus, if source authentication service is desired for
MESP and AMESP, then one or more group source authentication
algorithms must be defined along with MESP and AMESP. We choose to
use TESLA for this example. As mentioned above (section 5.4.2), the
GDOI definitions for group Security Protocols such as MESP and AMESP
are to have separate documents from the GDOI document. This appendix,
therefore, offers an example for Security Protocol GDOI documents.
In the model of Figure 3, the MESP/AMESP Security Protocol
implementation invokes GDOI to establish necessary security
associations for its services. The needed information is communicated
in the SA TEK payload and MESP/AMESP SA TEK attributes. These are
defined in A.1 and A.2. MESP/AMESP, moreover, specifies source-
specific information for multicast group senders so there may be
information contained in the SA TEK that is specific to a sender. The
sender-specific information is sent in a set of Extended Attributes
that are particular to the algorithm that is used. These are defined
in A.3. In both the single-sender and multiple-sender cases, the
GROUPKEY-PUSH message containing the SA TEK payload may originate from
the GCKS or from another source such as the sender or senders to the
multicast group (section 4.3).
A.1 SA TEK bindings
A GDOI implementation must initialize the SA TEK payload information
for MESP/AMESP. The reader may refer to the SA TEK payload section
5.4 for the MESP/AMESP bindings, which follow.
o SPI size is 4 octets
o SPI is a pseudo-random number created by the GCKS
A.2 MESP/AMESP SA TEK Attributes
The following attributes may be present in an MESP/AMESP SAT Payload.
These attributes are followed by attributes for the TESLA source
authentication algorithm. The attributes must follow the format
defined in ISAKMP [RFC2408] section 3.3. In the table, attributes that
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
GS_ORDER 1 B
GS_PROTOCOL 2 B
GS_XFORM_TYPE 3 B
GS_XFORM_KEY_LENGTH 4 B
GS_XFORM_KEY_LIFETIME 5 B
GA_ORDER 6 B
GA_PROTOCOL 7 B
GA_TRANSFORM 8 B
SrA_ORDER 9 B
SrA_PROTOCOL 10 B
SrA_ALGORITHM 11 B
RESERVED 12-63
AUTHENTICATION ALGORITHM 64-128
PRIVATE USE 129-255
A.2.1 GS_ORDER
This is the order in which the transform is applied relative to the
other transforms. The ordering is from outer (1) to inner. If
GS_ORDER is zero then group secrecy is not employed. If it is one
(1), then GS is the first transform applied by the receiver. If
GS_ORDER is greater than GA_ORDER and SrA_ORDER, then GS is the first
transform applied by the sender. GDOI does nothing with this ordering
beyond communicating it to the MESP/AMESP implementation across the
interface shown in Figure 3 between GDOI and the Security Protocol.
A.2.2 GS_PROTOCOL
This is set to one (1) if MESP is used or two (2) if AMESP is used.
GDOI does nothing with this layering information beyond communicating
it to the MESP/AMESP implementation across the interface shown in
Figure 3 between GDOI and the Security Protocol.
A.2.3 GS_TRANSFORM
Transform Type Value
-------------- -----
RESERVED 0
GS_XFORM_DES 1
GS_XFORM_3DES 2
GS_XFORM_TWOFISH 3
GS_XFORM_AES 4
RESERVED 5-127
Private Use 128-255
A.2.4 GS_TRANSFORM_KEY_LENGTH
The length of the key in bits.
A.2.5 GS_TRANSFORM_KEY_LIFETYPE
The GS_TRANSFORM_KEY_LIFETIME specifies the maximum time for which the
key is valid. The GCKS may refresh the key at any time before the end
of the valid period. The value is a four (4) octet number defining a
valid time period in seconds.
A.2.6 GA_ORDER
See A.2.1.
A.2.7 GA_PROTOCOL
See A.2.2.
A.2.8 GA_TRANSFORM
Transform Type Value
-------------- -----
RESERVED 0
GA_XFORM_DES_MAC 1
GA_XFORM_HMAC_MD5 2
GA_XFORM_HMAC_SHA1 3
RESERVED 4-127
Private Use 128-255
A.2.9 SrA_ORDER
See A.2.1.
A.2.10 SrA_PROTOCOL
See A.2.2.
A.2.11 SrA_ALGORITHM
Algorithm Type Value
-------------- -----
RESERVED 0
SrA_TESLA 1
RESERVED 2-127
Private Use 128-255
A.3 TESLA SA TEK Attributes
The attributes for the source authentication algorithm follow the
MESP/AMESP SA TEK attributes. These are for TESLA.
ID Class Value Type
-------- ----- ----
RESERVED 0
SOURCE_ID 64 B
DIRECT_SYNCHRONIZATION 65 B
SENDERS_CERT_TYPE 66 B
SENDERS_CERT 67 V
HMAC_TYPE 68 B
KEY_CHAIN_PRF 69 B
INTERVAL_TIME 70 V
INTERVAL_NUMBER 71 V
INTERVAL_DURATION 72 V
KEY_DISCLOSURE_DELAY 73 V
KEY_CHAIN_COMMITMENT_VALUE 74 V
KEY_CHAIN_EXPIRATION_VALUE 75 V
A.3.1 SOURCE_ID
This is 32-bit number that uniquely identifies the source.
A.3.2 DIRECT_SYNCHRONIZATION
This is set to one if Direct Synchronization is desired and zero
otherwise.
A.3.3 SENDERS_CERT_TYPE
ID Class Value Type
-------- ----- ----
RESERVED 0
X.509 1 B
SPKI 2 B
PGP 3 B
RESERVED 4-127
Private Use 128-255
A.3.4 SENDERS_CERT
This is the sender's certificate.
A.3.5 HMAC_TYPE
This is the hashed message authentication code used for TESLA
messages.
HMAC Type Value
--------- -----
RESERVED 0
TESLA_HMAC_MD5 1
TESLA_HMAC_SHA1 2
TESLA_HMAC_RIPEMD160 3
RESERVED 4-127
Private Use 128-255
A.3.6 KEY_CHAIN_PRF
The PRF used for computing the key chain.
KEY_CHAIN_PRF Value
--------- -----
RESERVED 0
TESLA_PRF_MD5 1
TESLA_PRF_SHA1 2
TESLA_PRF_RIPEMD160 3
RESERVED 4-127
Private Use 128-255
A.3.7 INTERVAL_TIME
The beginning time of the current interval.
A.3.8 INTERVAL_NUMBER
The identifier of the current interval.
A.3.9 INTERVAL_DURATION
The fixed interval of time (Tint) during which a message source sends
zero or more packets may be set once for the session or may be
dynamically changed during the session. If group policy dictates that
the time interval is to be invariant, then INTERVAL_DURATION is the
number of seconds of the time interval. If INTERVAL_DURATION is not
present, then the time interval will be dynamically set by the source
authentication protocol and may vary over the lifetime of the session.
A.3.10 KEY_DISCLOSURE_DELAY
KEY_DISCLOSURE_DELAY is the number of intervals (d) before an
authentication key is disclosed. KEY_DISCLOSURE_DELAY is used if the
number of intervals must be fixed for a given session or if the sender
chooses not to vary this interval during the session. Otherwise, if
the KEY_DISCLOSURE_DELAY attribute is not present, then the key
disclosure delay may be set dynamically by the source authentication
protocol.
A.3.11 KEY_CHAIN_COMMITMENT_VALUE
The PRF value for the start of a new key chain.
A.3.12 KEY_CHAIN_EXPIRATION_VALUE
The INTERVAL_NUMBER that will be the last interval of the current key
chain.
Appendix B: LKH Data Key Download Definitions
This section contains attribute definitions used by a GCKS to transmit
a LKH KEK array to group members. These definitions are compatible
with the GSAKMP protocol [GSAKMP].
B.1 LKH Key Data (KD) Payload definitions
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
KEK_LKH 1 V
If an LKH key packet is included in the KD payload, there must be only
one present.
B.1.1 KEK_LKH
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 ! 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.
o Leaf ID (2 octets) -- This is the Leaf Node ID of the LKH
sequence contained in this Key Packet Data block.
o Number of LKH Keys (2 octets) -- This value is the number of
distinct LKH keys in this sequence.
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 ! ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ 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 the
Policy Token.
o Key Creation Date (4 octets) -- This is the time value of when
this key data was originally generated.
o Key Expiration Date (4 octets) -- This is the time value of
when this key is no longer valid for use.
o Key Handle (4 octets) -- This is the randomly generated value
to uniquely identify a key.
o Key Data (variable length) -- This is the actual encryption key
data, which is dependent on the Key Type algorithm for its format.
Appendix C: Sample GDOI Definitions for SRTP
As described above, Security Protocols may use GDOI to establish their
security associations (Section 5.4.2). Designers of the security
protocol should develop a draft document that describes the
information needs of their security protocol for security association
(SA) attributes and cryptographic policy. This appendix outlines a
specification for GDOI support of SRTP [SRTP].
SRTP, Secure Real Time Transport Protocol, provides authentication,
integrity, and confidentiality services for Real Time Transport
Protocol [RFC1889]. Thus SRTP is an application-layer security
protocol that operates above the TCP/IP services (sockets) interface.
SRTP communicates with GDOI using an API [we will investigate use of
PF_KEY for IPC communication]. Through the API, SRTP requests SA
establishment and GDOI updates SRTP's security association database
(SAD) for maintenance of its cryptographic context [SRTP]. The KDC or
the SRTP sender acting on behalf of the KDC provides the cryptographic
policy and other attributes through the SA TEK payload
and SRTP SA TEK attributes.
C.1 SRTP Namespace: SA TEK Bindings
A GDOI implementation must initialize the SA TEK payload information
for SRTP. The reader may refer to the SA TEK payload section 5.4 for
the description of SA TEK bindings, which follow.
o SPI size is 2 octets
o SPI the RTP 32-bit sequence number that is sent on the wire.
The receiver(s) will immediately compute the "real" SPI as the "packet
index" of SPI + rollover-counter * 2^32 and use this value with the
SSRC and Transport address to identify the SRTP cryptographic context.
Thus, a cryptographic context is identified by the RTP packet index,
the SSRC and the Transport Address. This packet index is the first
number in a sequence of RTP packets that will use the given
cryptographic context. For a given SSRC and Transport Address, a new
cryptographic context is identified by a packet index number in which
all RTP packets that equal or exceed that packet index will use the
new cryptographic context. A compliant SRTP implementation,
therefore, must compute and check the packet index to see if it
matches a new cryptographic context for a given SSRC, Transport
Address pair. At any given time, there should be at most two
cryptographic contexts available for a given SSRC, Transport Address
pair - this is how new cryptographic contexts are installed and the
key is changed for an RTP session.
C.2 SRTP Namespace: SA TEK Attributes
The following attributes are encoded according to Section 3.3, RFC
2408 [RFC2408].
ID Class Type Length
-------- ----- ------
RESERVED 0
SSRC 1 V
DESTINATION_ADDRESS 2 V
DESTINATION_RTP_PORT 3 V
DESTINATION_RTCP_PORT 4 V
ROLLOVER_COUNTER 5 V
CIPHER 6 V
CIPHER_MODE 7 V
CIPHER_KEY_LENGTH 8 V
SALT_KEY_LENGTH 9 V
AUTHENTICATION_ALGORITHM 10 B
REPLAY_WINDOW_SIZE 11 V
SRTCP_INDEX 12 V
RESERVED 13-128
C.2.1 SSRC
A 32-bit unsigned integer that identifies the SSRC of the sender.
C.2.2 DESTINATION_ADDRESS
The network address on which RTP and RTCP packets are received and
sent.
C.2.3 DESTINATION_RTP_PORT
The port number on which RTP packets are received.
C.2.4 DESTINATION_RTCP_PORT
The port number on which RTCP packets are received and sent.
C.2.5 ROLLOVER_COUNTER
The 32-bit counter that is incremented each time the sequence number
(SRTP SPI) rolls over.
C.2.6 CIPHER
The algorithm used to encipher and decipher SRTP payloads. AES is the
default.
Algorithm Type Value
-------------- -----
RESERVED 0
AES 1
RESERVED 2-127
Private Use 128-255
C.2.7 CIPHER_MODE
The mode of the cipher used to encipher and decipher SRTP payloads.
Counter_Mode_AES is the default.
Cipher Mode Value
-------------- -----
RESERVED 0
Counter_Mode_AES 1
f8_Mode_AES 2
RESERVED 3-127
Private Use 128-255
C.2.8 CIPHER_KEY_LENGTH
The length of the encryption key. 128 is the default for AES.
C.2.9 SALT_KEY_LENGTH
The length of key used for salt. 128-bit is the default for AES
Counter Mode.
C.2.10 AUTHENTICATION_ALGORITHM
The type of authentication used for SRTP.
Authentication Value
-------------- -----
RESERVED 0
UMAC 1
RESERVED 2-127
Private Use 128-255
C.2.11 WINDOW_SIZE
Replay window size defaults to 64 when not specified.
C.2.12 SRTCP_INDEX
The value of the SRTCP index which will be used in the next SRTCP
packet.
Baugher, et. al. Standards Track - Expires July, 2002 31
----