RFC3547 - The Group Domain of Interpretation(2)

时间:2005-02-17 来源: 作者: 点击:
SIG_HASH_SHA1 2 RESERVED 3-127 Private Use 128-255 SIG_HASH_ALGORITHM is not required if the SIG_ALGORITHM is SIG_ALG_DSS or SIG_ALG_ECDSS, which imply SIG_HASH_SHA1. 5.3.7. SIG_ALGORITHM The SIG_ALG
  
SIG_HASH_SHA1 2
RESERVED 3-127
Private Use 128-255

SIG_HASH_ALGORITHM is not required if the SIG_ALGORITHM is
SIG_ALG_DSS or SIG_ALG_ECDSS, which imply SIG_HASH_SHA1.

5.3.7. SIG_ALGORITHM

The SIG_ALGORITHM class specifies the SIG payload signature
algorithm. Defined values are specified in the following table.

Algorithm Type Value
-------------- -----
RESERVED 0
SIG_ALG_RSA 1
SIG_ALG_DSS 2
SIG_ALG_ECDSS 3
RESERVED 4-127
Private Use 128-255

A GDOI implementation MUST support the following algorithm attribute:
SIG_ALG_RSA.

5.3.7.1. SIG_ALG_RSA

This algorithm specifies the RSA digital signature algorithm as
described in [RSA].

5.3.7.2. SIG_ALG_DSS

This algorithm specifies the DSS digital signature algorithm as
described in [FIPS186-2].

5.3.7.3. SIG_ALG_ECDSS

This algorithm specifies the Elliptic Curve digital signature
algorithm as described in [FIPS186-2].

5.3.8. SIG_KEY_LENGTH

The SIG_KEY_LENGTH class specifies the length of the SIG payload key.

5.3.9. KE_OAKLEY_GROUP

The KE_OAKLEY_GROUP class defines the OAKLEY Group used to compute
the PFS secret in the optional KE payload of the GDOI GROUPKEY-PULL
exchange. This attribute uses the values assigned to Group
Definitions in the IANA IPsec-registry [IPSEC-REG].

5.4. SA TEK Payload

The SA TEK (SAT) payload contains security attributes for a single
TEK associated with a group.

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
! Next Payload ! RESERVED ! Payload Length !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
! Protocol-ID ! TEK Protocol-Specific Payload ~
+-+-+-+-+-+-+-+-+ ~
~ ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!

The SAT Payload fields are defined as follows:

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 another SAT Payload or
zero to indicate there are no more security association
attributes.

o RESERVED (1 octet) -- Must be zero.

o Payload Length (2 octets) -- Length of this payload, including
the TEK Protocol-Specific Payload.

o Protocol-ID (1 octet) -- Value 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 ! RFC2407 SA Attributes ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!

The SAT Payload fields are defined as follows:

o Protocol (1 octet) -- Value describing an IP protocol ID (e.g.,
UDP/TCP). A value of zero means that the Protocol field should
be ignored.

o 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 SRC ID Port
field should be ignored.

o SRC ID Data Len (1 octet) -- Value specifying the length of the
SRC Identification Data field.

o SRC Identification Data (variable length) -- Value, as
indicated by the SRC ID Type. Set to three bytes of zero for
multiple-source multicast groups that use a common TEK for all
senders.

o DST ID Type (1 octet) -- Value describing the identity
information found 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 is 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 RFC2407 Attributes -- ESP Attributes from RFC2407 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 in GDOI.

5.4.2. Other Security Protocols

Besides ESP, GDOI should serve to establish SAs for secure groups
needed by other Security Protocols that operate at the transport,
application, and internetwork layers. These other Security
Protocols, however, are in the process of being developed or do not
yet exist.

The following information needs to be provided for a Security
Protocol to the GDOI.

o The Protocol-ID for the particular 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 specification for that protocol.
Definitions for the support of those Security Protocols in GDOI will
be specified in separate documents.

A Security Protocol MAY protect traffic at any level of the network
stack. However, in all cases applications of the Security Protocol
MUST protect traffic which MAY be shared by more than two entities.

5.5. Key Download Payload

The Key Download Payload contains group keys for the group specified
in the SA Payload. These key download payloads can have several
security attributes applied to them based upon the security policy of
the group as defined by the associated SA Payload.

When included as part of the Re-key SA with an optional KE payload,
The Key Download Payload will be xor'ed with the new Diffie-Hellman
shared secret. The xor operation will begin at the "Number of Key
Packets" field.

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
! Next 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.

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
RESERVED 4-127
Private Use 128-255

"KEK" is a single key whereas LKH is 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, including the Key Packet header.

o SPI Size (1 octet) -- Value specifying the length in octets of
the SPI as defined by the Protocol-Id.

o SPI (variable length) -- Security Parameter Index which matches
a SPI previously sent in an SAK or SAT Payload.

o Key Packet Attributes (variable length) -- Contains Key
information. The format of this field is specific to the value
of the KD Type field. The following sections describe the
format of each KD Type.

5.5.1. TEK Download Type

The following attributes may be present in a TEK Download Type.
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 defined as TV are
marked as Basic (B); attributes 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 Registration KD payload, the
group member can expect to receive the TEK as part of a Re-key SA.
At least one TEK must be included in each Re-key KD payload.
Multiple TEKs may be included if multiple streams associated 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.

In the case that the algorithm requires multiple keys (e.g., 3DES),
all keys will be included in one attribute.

DES keys will consist of 64 bits (the 56 key bits with parity bit).
Triple DES keys will be specified as a single 192 bit attribute
(including parity bits) in the order that the keys are to be used for
encryption (e.g., DES_KEY1, DES_KEY2, DES_KEY3).

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. 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

The following attributes may be present in a KEK Download Type.
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 defined as TV are
marked as Basic (B); attributes 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 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 defined as TV are
marked as Basic (B); attributes defined as TLV are marked as Variable
(V).

KEK Class Value Type
--------- ----- ----
RESERVED 0
LKH_DOWNLOAD_ARRAY 1 V
LKH_UPDATE_ARRAY 2 V
SIG_ALGORITHM_KEY 3 V
RESERVED 4-127
Private Use 128-255

If an LKH key packet is included in the KD payload, there must be
only one present.

5.5.3.1. LKH_DOWNLOAD_ARRAY

This attribute is used to download a set of keys to a group member.
It MUST NOT be included in a GROUPKEY-PUSH message KD payload if the
GROUPKEY-PUSH is sent to more than the group member. If an
LKH_DOWNLOAD_ARRAY attribute is included in a KD payload, there must
be only one present.

This attribute consists of a header block, followed by one or more
LKH keys.

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! LKH Version ! # of LKH Keys ! RESERVED !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! LKH Keys !
~ ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The KEK_LKH attribute fields are defined as follows:

o LKH version (1 octet) -- Contains the version of the LKH
protocol which the data is formatted in. Must be one.

o Number of LKH Keys (2 octets) -- This value is the number of
distinct LKH keys in this sequence.

o RESERVED (1 octet) -- Unused, set to zero. Each LKH Key is
defined as follows:

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! LKH ID ! Key Type ! RESERVED !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Key Creation Date !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Key expiration Date !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Key Handle !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! !
~ Key Data ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

o LKH ID (2 octets) -- This is the position of this key in the
binary tree structure used by LKH.

o Key Type (1 octet) -- This is the encryption algorithm for
which this key data is to be used. This value is specified in
Section 5.3.3.

o RESERVED (1 octet) -- Unused, set to zero.

o Key Creation Date (4 octets) -- This is the time value of when
this key data was originally generated. A time value of zero
indicates that there is no time before which this key is not
valid.

o Key Expiration Date (4 octets) -- This is the time value of
when this key is no longer valid for use. A time value of zero
indicates that this key does not have an expiration time.

o Key Handle (4 octets) -- This is the randomly generated value
to uniquely identify a key within an LKH ID.

o Key Data (variable length) -- This is the actual encryption key
data, which is dependent on the Key Type algorithm for its
format. If the mode of operation for the algorithm requires an
Initialization Vector (IV), an explicit IV MUST be included in
the Key Data field before the actual key.

The Key Creation Date and Key expiration Dates MAY be zero. This is
necessary in the case where time synchronization within the group is
not possible.

The first LKH Key structure in an LKH_DOWNLOAD_ARRAY attribute
contains the Leaf identifier and key for the group member. The rest
of the LKH Key structures contain keys along the path of the key tree
in order from the leaf, culminating in the group KEK.

5.5.3.2. LKH_UPDATE_ARRAY

This attribute is used to update the keys for a group. It is most
likely to be included in a GROUPKEY-PUSH message KD payload to rekey
the entire group. This attribute consists of a header block,
followed by one or more LKH keys, as defined in Section 5.5.3.1

There may be any number of UPDATE_ARRAY attributes included in a KD
payload.

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! LKH Version ! # of LKH Keys ! RESERVED !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! LKH ID ! RESERVED2 !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Key Handle !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! LKH Keys !
~ ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

o LKH version (1 octet) -- Contains the version of the LKH
protocol which the data is formatted in. Must be one.

o Number of LKH Keys (2 octets) -- This value is the number of
distinct LKH keys in this sequence.

o RESERVED (1 octet) -- Unused, set to zero.

o LKH ID (2 octets) -- This is the node identifier associated
with the key used to encrypt the first LKH Key.

o RESERVED2 (2 octets) -- Unused, set to zero.

o Key Handle (4 octets) -- This is the value to uniquely identify
the key within the LKH ID which was used to encrypt the first
LKH key.

The LKH Keys are as defined in Section 5.5.3.1. The LKH Key
structures contain keys along the path of the key tree in order from
the LKH ID found in the LKH_UPDATE_ARRAY header, culminating in the
group KEK. The Key Data field of each LKH Key is encrypted with the
LKH key preceding it in the LKH_UPDATE_ARRAY attribute. The first
LKH Key is encrypted under the key defined by the LKH ID and Key
Handle found in the LKH_UPDATE_ARRAY header.

5.5.3.3. SIG_ALGORITHM_KEY

The SIG_ALGORITHM_KEY class declares that the public key for this SPI
is contained in the Key Packet Attribute, which may be useful when no
public key infrastructure is available. The signature algorithm that
will use this key was specified in the SAK payload.

5.6. Sequence Number Payload

The Sequence Number Payload (SEQ) provides an anti-replay protection
for GROUPKEY-PUSH messages. Its use is similar to the Sequence
Number field defined in the IPsec ESP protocol [RFC2406].

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Next Payload ! RESERVED ! Payload Length !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Sequence Number !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The Sequence Number Payload fields are defined as follows:

o Next Payload (1 octet) -- Identifier for the payload type of
the next payload in the message. If the current payload is the
last in the message, then this field will be zero.

o RESERVED (1 octet) -- Unused, set to zero.

o Payload Length (2 octets) -- Length in octets of the current
payload, including the generic payload header.

o Sequence Number (4 octets) -- This field contains a
monotonically increasing counter value for the group. It is
initialized to zero by the GCKS, and incremented in each
subsequently-transmitted message. Thus the first packet sent
for a given Rekey SA will have a Sequence Number of 1. The
GDOI implementation keeps a sequence counter as an attribute
for the Rekey SA and increments the counter upon receipt of a
GROUPKEY-PUSH message. The current value of the sequence
number must be transmitted to group members as a part of the
Registration SA SA payload. A group member must keep a sliding
receive window. The window must be treated as in the ESP
protocol [RFC2406] Section 3.4.3.

5.7. Proof of Possession

The Proof of Possession Payload is used as part of group membership
authorization during a GDOI exchange. The Proof of Possession
Payload is identical to an ISAKMP SIG payload. However, the usage is
entirely different.

The GCKS, GCKS delegate or member signs a hash of the following
values:
POP_HASH = hash("pop" | Ni | Nr)
Where hash() is the hash function used with the signature.

The "pop" prefix ensures that the signature of the POP payload cannot
be used for any other purpose in the GDOI protocol.

5.8. Nonce

The data portion of the Nonce payload (i.e., Ni_b and Nr_b included
in the HASHs) MUST be a value between 8 and 128 bytes.

6. Security Considerations

GDOI is a security association (SA) management protocol for groups of
senders and receivers. Unlike a data security protocol, SA
management includes a key establishment protocol to securely
establish keys at communication endpoints. This protocol performs
entity authentication of the GDOI member or Group Controller/Key
Server (GCKS), it provides confidentiality of key management
messages, and it provides source authentication of those messages.
This protocol also uses best-known practices for defense against

man-in-middle, connection hijacking, replay, reflection, and
denial-of-service (DOS) attacks on unsecured networks [STS, RFC2522,
SKEME]. GDOI assumes the network is not secure and may be under the
complete control of an attacker.

GDOI assumes that the host computer is secure even though the network
is insecure. GDOI ultimately establishes keys among members of a
group, which MUST be trusted to use those keys in an authorized
manner according to group policy. The security of GDOI, therefore,
is as good as the degree to which group members can be trusted to
protect authenticators, encryption keys, decryption keys, and message
authentication keys.

There are three phases of GDOI as described in this document: an
ISAKMP Phase 1 protocol, a new exchange called GROUPKEY-PULL which is
protected by the ISAKMP Phase 1 protocol, and a new message called
GROUPKEY-PUSH. Each phase is considered separately below.

6.1. ISAKMP Phase 1

As described in this document, GDOI uses the Phase 1 exchanges
defined in [RFC2409] to protect the GROUPKEY-PULL exchange.
Therefore all security properties and considerations of those
exchanges (as noted in [RFC2409]) are relevant for GDOI.

GDOI may inherit the problems of its ancestor protocols [FS00], such
as identity exposure, absence of unidirectional authentication, or
stateful cookies [PK01]. GDOI could benefit, however, from
improvements to its ancestor protocols just as it benefits from years
of experience and work embodied in those protocols. To reap the
benefits of future IKE improvements, however, GDOI would need to be
revised in a future standards-track RFC, which is beyond the scope of
this specification.

6.1.1. Authentication

Authentication is provided via the mechanisms defined in [RFC2409],
namely Pre-Shared Keys or Public Key encryption.

6.1.2. Confidentiality

Confidentiality is achieved in Phase 1 through a Diffie-Hellman
exchange that provides keying material, and through negotiation of
encryption transforms.

The Phase 1 protocol will be protecting encryption and integrity keys
sent in the GROUPKEY-PULL protocol. The strength of the encryption
used for Phase 1 SHOULD exceed that of the keys send in the
GROUPKEY-PULL protocol.

6.1.3. Man-in-the-Middle Attack Protection

A successful man-in-the-middle or connection-hijacking attack foils
entity authentication of one or more of the communicating entities
during key establishment. GDOI relies on Phase 1 authentication to
defeat man-in-the-middle attacks.

6.1.4. Replay/Reflection Attack Protection

In a replay/reflection attack, an attacker captures messages between
GDOI entities and subsequently forwards them to a GDOI entity.
Replay and reflection attacks seek to gain information from a
subsequent GDOI message response or seek to disrupt the operation of
a GDOI member or GCKS entity. GDOI relies on the Phase 1 nonce
mechanism in combination with a hash-based message authentication
code to protect against the replay or reflection of previous key
management messages.

6.1.5. Denial of Service Protection

A denial of service attacker sends messages to a GDOI entity to cause
that entity to perform unneeded message authentication operations.
GDOI uses the Phase 1 cookie mechanism to identify spurious messages
prior to cryptographic hash processing. This is a "weak" form of
denial of service protection in that the GDOI entity must check for
good cookies, which can be successfully imitated by a sophisticated
attacker. The Phase 1 cookie mechanism is stateful, and commits
memory resources for cookies, but stateless cookies are a better
defense against denial of service attacks.

6.2. GROUPKEY-PULL Exchange

The GROUPKEY-PULL exchange allows a group member to request SAs and
keys from a GCKS. It runs as a "phase 2" protocol under protection
of the Phase 1 security association.

6.2.1. Authentication

Peer authentication is not required in the GROUPKEY-PULL protocol.
It is running in the context of the Phase 1 protocol, which has
previously authenticated the identity of the peer.

Message authentication is provided by HASH payloads in each message,
where the HASH is defined to be over SKEYID_a (derived in the Phase 1
exchange), the ISAKMP Message-ID, and all payloads in the message.
Because only the two endpoints of the exchange know the SKEYID_a
value, this provides confidence that the peer sent the message.

6.2.2. Confidentiality

Confidentiality is provided by the Phase 1 security association,
after the manner described in [RFC2409].

6.2.3. Man-in-the-Middle Attack Protection

Message authentication (described above) includes a secret known only
to the group member and GCKS when constructing a HASH payload. This
prevents man-in-the-middle and connection-hijacking attacks because
an attacker would not be able to change the message undetected.

6.2.4. Replay/Reflection Attack Protection

Nonces provide freshness of the GROUPKEY-PULL exchange. The group
member and GCKS exchange nonce values first two messages. These
nonces are included in subsequent HASH payload calculations. The
Group member and GCKS MUST NOT perform any computationally expensive
tasks before receiving a HASH with its own nonce included. The GCKS
MUST NOT update the group management state (e.g., LKH key tree) until
it receives the third message in the exchange with a valid HASH
payload including its own nonce.

Implementations SHOULD keep a record of recently received
GROUPKEY-PULL messages and reject messages that have already been
processed. This enables an early discard of the replayed messages.

6.2.5. Denial of Service Protection

A GROUPKEY-PULL message identifies its messages using a cookie pair
from the Phase 1 exchange that precedes it. The cookies provide a
weak form of denial of service protection as described above, in the
sense that a GROUPKEY-PULL message with invalid cookies will be
discarded.

The replay protection mechanisms described above provide the basis
for denial of service protection.

6.2.6. Authorization

The CERT payload in a GROUPKEY-PULL exchange allows a group member or
GCKS to submit a certificate containing authorization attributes to
the peer as well as identifying a public/private key pair. The
GROUPKEY-PULL POP payload enables authorization to be accomplished
where the authorization infrastructure is different than the
GROUPKEY-PULL authentication infrastructure by proving that it is in
possession of the private key.

6.3. GROUPKEY-PUSH Exchange

The GROUPKEY-PUSH exchange is a single message that allows a GCKS to
send SAs and keys to group members. This is likely to be sent to all
members using an IP multicast group. This provides an efficient
rekey and group membership adjustment capability.

6.3.1. Authentication

The GROUPKEY-PULL exchange identifies a public key that is used for
message authentication. The GROUPKEY-PUSH message is digitally
signed using the corresponding private key held by the GCKS or its
delegate. This digital signature provides source authentication for
the message. Thus, GDOI protects the GCKS from impersonation in
group environments.

6.3.2. Confidentiality

The GCKS encrypts the GROUPKEY-PUSH message with an encryption key
that was established by the GROUPKEY-PULL exchange.

6.3.3. Man-in-the-Middle Attack Protection

This combination of confidentiality and message authentication
services protects the GROUPKEY-PUSH message from man-in-middle and
connection-hijacking attacks.

6.3.4. Replay/Reflection Attack Protection

The GROUPKEY-PUSH message includes a monotonically increasing
sequence number to protect against replay and reflection attacks. A
group member will recognize a replayed message by comparing the
sequence number to a sliding window, in the same manner as the ESP
protocol uses sequence numbers.

Implementations SHOULD keep a record of recently received
GROUPKEY-PUSH messages and reject duplicate messages. This enables
an early discard of the replayed messages.

6.3.5. Denial of Service Protection

A cookie pair identifies the security association for the
GROUPKEY-PUSH message. The cookies thus serve as a weak form of
denial-of-service protection for the GROUPKEY-PUSH message.

The digital signature used for message authentication has a much
greater computational cost than a message authentication code and
could amplify the effects of a denial of service attack on GDOI
members who process GROUPKEY-PUSH messages. The added cost of
digital signatures is justified by the need to prevent GCKS
impersonation: If a shared symmetric key were used for
GROUPKEY-PUSH message authentication, then GCKS source authentication
would be impossible and any member would be capable of GCKS
impersonation.

The potential of the digital signature amplifying a denial of service
attack is mitigated by the order of operations a group member takes,
where the least expensive cryptographic operation is performed first.
The group member first decrypts the message using a symmetric cipher.
If it is a validly formed message then the sequence number is checked
against the replay window. Only if the sequence number is valid is
the digital signature verified. Thus in order for a denial of
service attack to be mounted, an attacker would need to know both the
symmetric encryption key used for confidentiality, and a valid
sequence number. Generally speaking this means only current group
members can effectively deploy a denial of service attack.

6.3.6. Forward Access Control

If a group management algorithm (such as LKH) is used, forward access
control may not be ensured in some cases. This can happen if some
group members are denied access to the group in the same
GROUPKEY-PUSH message as new policy and TEKs are delivered to the
group. As discussed in Section 4.2.1, forward access control can be
maintained by sending multiple GROUPKEY-PUSH messages, where the
group membership changes are sent from the GCKS separate from the new
policy and TEKs.

7. IANA Considerations

7.1. ISAKMP DOI

An ISAKMP DOI number is needed to identify an SA payload as a GDOI SA
payload. The IANA has assigned the value 2 to represent GDOI.

7.2. Payload Types

The present document defines new ISAKMP Next Payload types. See
Section 5.0 for the payloads defined in this document, including the
Next Payload values defined by the IANA to identify these payloads.

7.3. New Name spaces

The present document describes many new name spaces for use in the
GDOI payloads. Those may be found in subsections under Section 5.0.
A new GDOI registry has been created for these name spaces.

Portions of name spaces marked "RESERVED" are reserved for IANA
allocation. New values MUST be added due to a Standards Action as
defined in [RFC2434].

Portions of name spaces marked "Private Use" may be allocated by
implementations for their own purposes.

7.4. UDP Port

The IANA has assigned port 848 for use by GDOI.

8. Intellectual Property Rights Statement

The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; neither does it represent that it
has made any effort to identify any such rights. Information on the
IETF's procedures with respect to rights in standards-track and
standards-related documentation can be found in BCP-11. Copies of
claims of rights made available for publication and any assurances of
licenses to be made available, or the result of an attempt made to
obtain a general license or permission for the use of such
proprietary rights by implementors or users of this specification can
be obtained from the IETF Secretariat.

The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights which may cover technology that may be required to practice
this standard. Please address the information to the IETF Executive
Director.

9. Acknowledgements

The authors thank Ran Canetti, Cathy Meadows, Andrea Colegrove, and
Lakshminath Dondeti. Ran has advised the authors on secure group
cryptography, which has led to changes in the exchanges and payload
definitions. Cathy identified several problems in previous versions
of this document, including a replay attack against the proof of
possession exchange, as well as several man-in-the-middle attacks.
Andrea contributed to the group policy section of this document.
Lakshminath identified several protocol issues that needed further
specification and helped to resolve them.

10. References

10.1. Normative References

[AES-MODES] "Recommendation for Block Cipher Modes of Operation",
United States of American, National Institute of Science
and Technology, NIST Special Publication 800-38A 2001
Edition, December 2001.

[FIPS46-3] "Data Encryption Standard (DES)", United States of
American, National Institute of Science and Technology,
Federal Information Processing Standard (FIPS) 46-3,
October 1999.

[FIPS81] "DES Modes of Operation", United States of American,
National Institute of Science and Technology, Federal
Information Processing Standard (FIPS) 81, December
1980.

[FIPS186-2] "Digital Signature Standard (DSS)", United States of
American, National Institute of Science and Technology,
Federal Information Processing Standard (FIPS) 186-2,
January 2000.

[FIPS197] "Advanced Encryption Standard (AES)", United States of
American, National Institute of Science and Technology,
Federal Information Processing Standard (FIPS) 197,
November 2001.

[IPSEC-REG] http://www.iana.org/assignments/ipsec-registry

[ISAKMP-REG] http://www.iana.org/assignments/isakmp-registry

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Level", BCP 14, RFC2119, March 1997.

[RFC2401] Kent, S. and R. Atkinson, "Security Architecture for the
Internet Protocol", RFC2401, November 1998

[RFC2406] Kent, S. and R. Atkinson, "IP Encapsulating Security
Payload (ESP)", RFC2406, November 1998.

[RFC2407] Piper, D., "The Internet IP Domain of Interpretation for
ISAKMP", RFC2407, November 1998.

[RFC2408] Maughan, D., Shertler, M., Schneider, M. and J. Turner,
"Internet Security Association and Key Management
Protocol", RFC2408, November 1998.

[RFC2409] Harkins, D. and D. Carrel, "The Internet Key Exchange
(IKE)", RFC2409, November 1998.

[RFC2412] Orman, H., "The OAKLEY Key Determination Protocol", RFC
2412, November 1998.

[RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC2434,
October 1998.

[RFC2522] Karn, P. and W. Simpson, "Photuris: Session-Key
Management Protocol", RFC2522, March 1999.

[RFC2627] Wallner, D., Harder, E. and R. Agee, "Key Management for
Multicast: Issues and Architectures", RFC2627,
September 1998.

[RSA] RSA Laboratories, "PKCS #1 v2.0: RSA Encryption
Standard", October 1998.

10.2. Informative References

[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, F. Lindholm, "Group
Key Management Architecture", Work in Progress.

[IKEv2] D. Harkins, et. al., "Proposal for the IKEv2 protocol",
Work In Progress.

[KINK] M. Thomas, J. Vilhuber, "Kerberized Internet Negotiation
of Keys (KINK)", Work in Progress.

[NNL] D. Naor, M. Naor and J. Lotspiech, "Revocation and
Tracing Schemes for Stateless Receivers", Advances in
Cryptology, Crypto '01, Springer-Verlag LNCS 2139, 2001,
pp. 41-62. A full version of the paper appears in
http://www.wisdom.weizmann.ac.il/~naor/.

[OFT] D. Mcgrew and A. Sherman, "Key Establishment in Large
Dynamic Groups Using One-Way Function Trees", Manuscript
submitted to IEEE Transactions on Software Engineering.
A full version of the paper
appears in http://class/download.nai.com/products/media/nai/
misc/oft052098.ps, 1998

[PK01] R.Perlman, C.Kaufman, "Analysis of the IPsec Key
Exchange Standard", WET-ICE conference, 2001.
http://sec.femto.org/wetice-2001/papers/radia-paper.pdf

[RFC2093] Harney, H., and C. Muckenhirn, "Group Key Management
Protocol (GKMP) Specification," RFC2093, July 1997.

[RFC2094] Harney, H. and C. Muckenhirn, "Group Key Management
Protocol (GKMP) Architecture," RFC2094, July 1997.

[RFC2367] McDonald, D., Metz, C. and B. Phan, "PF_KEY Key
Management API, Version 2", RFC2367, July 1998.

[RFC3550] Schulzrinne, H., Casner, S., Jacobson, V. and R.
Frederick, "RTP: A Transport Protocol for Real-Time
Applications", RFC3550, June 2003.

[SKEME] H. Krawczyk, "SKEME: A Versatile Secure Key Exchange
Mechanism for Internet", ISOC Secure Networks and
Distributed Systems Symposium, San Diego, 1996.

[STS] Diffie, P. van Oorschot, M. J. Wiener, "Authentication
and Authenticated Key Exchanges, Designs, Codes and
Cryptography", 2, 107-125 (1992), Kluwer Academic
Publishers.

Appendix A: Alternate GDOI Phase 1 protocols

This section describes a manner in which other protocols could be
used as GDOI Phase 1 protocols in place of the ISAKMP Phase 1
protocol. However, they are not specified as a part of this
document. A separate document MUST be written in order for another
protocol to be used as a GDOI Phase 1 protocol.

Other possible phase 1 protocols are also described in [GKMARCH].

Any GDOI phase 1 protocol MUST satisfy the requirements specified in
Section 2 of this document.

A.1. IKEv2 Phase 1 protocol

Version 2 of the IKE protocol (IKEv2) is a work in progress [IKEv2].
That protocol seeks to simplify the IKE Phase 1 and Phase 2
protocols, and improve the security of the IKE protocol. An IKEv2
Phase 1 negotiates an IPSEC SA during phase 1, which was not possible
in IKE. However, IKEv2 also defines a phase 2 protocol. The phase 2
protocol is protected by the Phase 1, similar in concept to how IKE
Quick Mode is protected by the IKE Phase 1 protocols in [RFC2409].

IKEv2 may not include a DOI value in the SA payload. However, since
GDOI uses a unique port, choice of a phase 2 protocol in the SA
payload using a GDOI value is not necessary. It is expected that an
IKEv2 Phase 1 protocol definition could be run on the GDOI port. The
SA payload in the protocol would be specific to GDOI, or omitted if
not needed at all.

The GROUPKEY-PULL protocol would follow the IKEv2 Phase 1 protocol in
the same manner as described in this document.

A.2. KINK Protocol

A work in progress [KINK] has defined a method of encapsulating an
IKE Quick Mode [RFC2409] encapsulated in Kerberos KRB_AP_REQ and
KRB_AP_REP payloads. KINK provides a low-latency, computationally
inexpensive, easily managed, and cryptographically sound method of
setting up IPSec security associations.

The KINK message format includes a GDOI field in the KINK header.
The [KINK] document defines the DOI for the IPSEC DOI.

A new DOI for KINK could be defined which would encapsulate a
GROUPKEY-PULL exchange in the Kerberos KRB_AP_REQ and KRB_AP_REP
payloads. As such, GDOI would benefit from the computational
efficiencies of KINK.

Authors' Addresses

Mark Baugher
Cisco Systems
5510 SW Orchid Street
Portland, OR 97219, USA

Phone: (503) 245-4543
EMail: mbaugher@cisco.com

Thomas Hardjono
VeriSign
401 Edgewater Place, Suite 280
Wakefield, MA 01880

Phone: 781-245-6996
EMail: thardjono@verisign.com

Hugh Harney
Sparta
9861 Broken Land Parkway
Columbia, MD 21046

Phone: (410) 381-9400 x203
EMail: hh@sparta.com

Brian Weis
Cisco Systems
170 W. Tasman Drive,
San Jose, CA 95134-1706, USA

Phone: (408) 526-4796
EMail: bew@cisco.com

Full Copyright Statement

Copyright (C) The Internet Society (2003). All Rights Reserved.

This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.

The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Acknowledgement

Funding for the RFCEditor function is currently provided by the
Internet Society.

------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容