802.11i密钥层次结构
链路层加密协议使用了两种密钥。成对密钥(pairwise key)用来保护工作站和AP之间往来的数据。组密钥(group key)用来保护AP至所关联的工作站之间的广播或组播数据。
密钥生成从主密钥开始。在成对密钥体系中,主密钥称为成对主密钥(pairwise master key,简称PMK).
长度为256位。
TKIP和CCMP均会使用伪随机函数将256位的PMK展开成为临时密钥(pairwise transient key,简称PTK)。
在TKIP和CCMP体系中,临时密钥的两组128位块在分配过程中被用来包含临时密钥。
这两种密钥体系均始于两个EAPOL-Key消息来包含密钥材料的传送安全。其中使用了两个128位的密钥。第一个是EAPOL密钥确认密钥(EAPOL Key Confirmation Key, 简称KCK),用来计算密钥生成消息(keying message)的完整性校验值。第二个是EAPOL 密钥加密密钥(EAPOL Key Encryption Key, 简称KEK),用来加密密钥生成消息。
更新成对密钥:四次握手
成对(pairwise)或单播(unicast)密钥是通过所谓的四次握手(four-way handshake)加以分配。
更新组密钥:组密钥握手
在进行组密钥握手之前,四次握手必须已经完成。包含了两个步骤:
(1)认证者送出组临时密钥(GTK)以成对密钥层次结构中的密钥加密密钥进行加密。此消息也经过密钥确认密钥计算出来的校验值的认证。
(2)申请者送出确认消息,告诉认证者开始使用新的组密钥。此消息也是使用密钥确认密钥进行认证的。