4. GROUPKEY-PUSH Message (GROUPKEY-PUSH消息)
GDOI使用群组通信安全地发送控制信息。通常这将使用IP多播分发GROUPKEY-PUSH消息,但如果IP多播不可用,也可以使用单播传送"推送"。GROUPKEY-PUSH消息替换重密钥SA KEK或KEK数组,和/或创建新的数据安全SA。
消息格式:
Member GCKS or Delegate
------ ----------------
<---- HDR*, SEQ, SA, KD, [CERT,] SIG
* 受重密钥SA KEK保护; 加密发生在HDR之后
HDR定义如下。SEQ载荷在载荷部分定义。SA定义重密钥和/或数据安全SA的策略 (例如,保护套件) 和属性 (例如,SPI)。GCKS或委托方可选地提供CERT载荷用于验证SIG。KD是密钥下载载荷,如载荷部分所述。
SIG载荷是加密前整个消息的哈希签名 (包括头部,不包括SIG载荷本身),并以字符串"rekey"为前缀。前缀字符串确保重密钥数据报的签名不能用于GDOI协议中的任何其他目的。
4.1. Perfect Forward Secrecy (PFS) (完美前向保密性)
GROUPKEY-PUSH消息由群组KEK保护,但在所有情况下,GROUPKEY-PUSH消息携带新的密钥下载等信息。必须使用新生成的密钥来保护密钥下载,GROUPKEY-PUSH消息才具有PFS。此问题有待进一步研究。
4.2. Forward and Backward Access Control (前向和后向访问控制)
通过GROUPKEY-PUSH,GDOI支持诸如LKH之类的算法,这些算法具有拒绝已从群组中移除的成员访问新群组密钥 (前向访问控制, Forward Access Control) 以及拒绝添加到群组的成员访问旧群组密钥 (后向访问控制, Backward Access Control) 的特性。
4.2.1. Forward Access Control Requirements (前向访问控制要求)
当使用群组管理算法更改群组成员资格时,通常还需要新的SA_TEK (及其关联的密钥)。新的SA和密钥确保被拒绝访问的成员不能再参与群组。
如果前向访问控制是群组的期望属性,则新的SA_TEK和KD载荷中的关联密钥数据包禁止 (MUST NOT) 包含在更改群组成员资格的GROUPKEY-PUSH消息中。这是必需的,因为SA_TEK策略和KD载荷中的关联密钥数据包不受新KEK保护。第二条GROUPKEY-PUSH消息可以 (CAN) 传递新的SA_TEK及其关联密钥,因为它将受新KEK保护,因此对被拒绝访问的成员不可见。
4.3. Delegation of Key Management (密钥管理的委托)
GDOI通过PKI的委托功能支持GROUPKEY-PUSH数据报的委托。但是,GDOI没有明确指定GCKS如何识别委托方,而是将其留给特定GDOI实现使用的PKI。
4.4. Use of Signature Keys (签名密钥的使用)
GCKS不应该 (SHOULD NOT) 使用与GROUPKEY-PULL POP载荷中用于授权的相同密钥来签署GROUPKEY-PUSH消息中的SIG载荷。如果必须 (MUST) 使用相同的密钥,则应该 (SHOULD) 使用不同的哈希函数作为POP载荷的基础,而不是用作SIG载荷的基础。
4.5. ISAKMP Header Initialization (ISAKMP头初始化)
与ISAKMP或IKE不同,cookie对完全由GCKS确定。GDOI ISAKMP头中的cookie对标识重密钥SA,以区分GCKS管理的安全群组。因此,GDOI使用cookie字段作为SPI。
Next Payload标识ISAKMP或GDOI载荷 (参见第5.0节)。
Major Version为1,Minor Version为0,根据ISAKMP [RFC2408第3.1节]。
Exchange Type对于GDOI GROUPKEY-PUSH消息的值为33。
Flags必须 (MUST) 根据 [RFC2008第3.1节] 设置加密位。所有其他位必须 (MUST) 设置为零。
4.6. Deletion of SAs (SA的删除)
GCKS可以 (MAY) 通过发送包含删除载荷 (Delete Payload) 的GROUPKEY-PUSH消息来删除SA。删除载荷标识要删除的SA的SPI。
4.7. GCKS Operations (GCKS操作)
GCKS根据其群组策略和成员资格变化生成GROUPKEY-PUSH消息。GCKS必须 (MUST) 为每条GROUPKEY-PUSH消息递增序列号。
4.8. Group Member Operations (群组成员操作)
群组成员接收GROUPKEY-PUSH消息并验证其完整性和真实性。成员必须 (MUST) 检查序列号是否大于先前接收的序列号。如果序列号检查通过,成员处理载荷并安装新的SA和密钥。