关于成对密钥与组密钥的结构 1.成对密钥 PMK 是基本元素 然后通过 supplicant MAC(SA), supplicant nouces(SN),authenticator MAC(AA),authenticator nouces(AN) 进行扩展获得PTK (Pairwise Transient Key) 成对传输密码 公式如下: PTK=SHA1_PRF(PMK,Len(PMK),"Pairwise key expansion",MIN(AA,SA)||MAX(AA,SA)||MIN(AN,SN)||MAX(AN,SN))
公式参考了:
http://blog.csdn.net/gueter/article/details/4812822
PTK 有两种格式,TKIP,和CCMP, 其中TKIP是动态WEP所用RC4+Michael完整性校验的组成 CCMP是全新的组密码AES方式

TKIP和CCMP的PTK被分成下面部分 1.EAPOL KCK(key confirmation key) 密钥确认密钥,用来计算密钥生成消息的完整性 2.EAPOL KEK(key Encryption key) 密钥加密密钥,用来加密密钥生成消息 3.TKIP TK(CCMP TK) 这部分是正真用来进行数据加密的 4.TKIP MIC key 用于Michael完整性校验的(只有TKIP有)
2.组密钥 GMK主组密钥(group master key)以作为临时密钥的基础 和成对密钥一样扩展获得GTK (groupTransient Key) 公式如下: GTK=PRF-X(GMK,"Group key expansion",AA||GN) GN - Authenticator生成的 Nonce AA - Authenticator MAC地址 注意和成对密钥扩展不同的是没有supplicant的 AA,AN
其中并没有密钥确认密钥,和密钥加密密钥,因为密钥交换是 以成对EAPOL密钥,来分配密钥的
更新成对密钥的4次握手
在更新成对密钥前需要进行4次握手,成对密钥是用来加密单播帧的(就是AP与工作站之间的通讯帧), 4次握手就是为了完成密钥的交换,成对密钥只有1个,通过交换让双方都知道 在WPA-PSK中 PMK=PSK 由ssid,和密码等导出,公式如下: PMK=PSK= pdkdf2_SHA1(passphrase,SSID,SSID lenth,4096) 所以第1次Autenticator 将自己的nonce 传给supplicant ,这时候 supplicatn 就可以计算PTK了
接下来supplicant 将自己的nonce和第1次和网络关联是所取得的 安全参数传给Authenticator, 这样Authenticator 获得了supplicant 的nonce ,就可以计算PTK了 注意第2步的整个消息是用EAPOL 密钥确认密钥(KCK)来进行完整性校验 值校验的,如果authenticator根据已经算出的PTK中的KCK对整个消息 进行完整性校验未成功,握手就失败了 这时消息还不能通过KEK加密,是因为还没有计算出PTK
到了第3步双方的PTK都已经就绪,这时authenticator将一个消息传送 给supplicant,次消息包含成对密钥的序列号,(可能是生成TK的次数?) 并且包含GTK(组临时密钥),注意这时authenticator已经可以生成GTK了 GTK 通过EAPOL KEK加密,然后整个消息通过KCK来认证
第4步supplicant 再次确认,并告诉authenticator已经接收到密钥生成消息, 可以开始使用TK了,次消息通过KCK认证(因为是ACK,不需要再用KEK加密了)
更新组密钥握手: 1.Authenticator送出GTK,这个GTK是利用前面成对密钥4次握手的成果PTK中 的EPAOL KEK 来加密,EAPOL KCK 来验证 2. supplicant 送出ACK消息,此消息通过KCK 验证
PTK的生成元素中的PMK获得 1. WPA-PSK PMK=PSK= pdkdf2_SHA1(passphrase,SSID,SSID lenth,4096) 其中passphrase,SSID ,是身份验证前authenticator,和supplicant 都应该知道的
2. 802.1X+EAP中 PMK =L(MSK, 0, 256) MSK 需要通过802.1X交换获得
其中EAP-Request/Method 中Method 表示EAP认证的方式,如下: 4 - MD5 Challenge EAP 中类似CHAP的认证方式 6 - GTC 原本打算与RSA SecurID之类的token card 一起使用 13 - EAP-TLS 以数字证书相互认证 21 - TTLS 隧道式TLS;以TLS加密保护较弱的身份验证方式 25 - PEAP 防护型EAP;以TLS加密保护较弱的EAP验证方式 18 - EAP-SIM SIM卡方式进行身份验证 29 - MS-CHAP-V2 Method 之后如果认证成功,authenticator会发出EAP-Success表示授权使用连接端口 再接下来AP就可以立即使用EAPOL-Key消息将MSK发给supplicant,以后就和WPA-PSK 一样用MSK最终导出PTK(MSK,PMK就是PTK的密钥生成密钥)
其中EAPOL(EAP over lan)的帧格式如下
------------------------------------------------------------------------------- | 802.11 header | SNAP header | Ethernet Type (88-8E) | Version |Packet Type | ------------------------------------------------------------------------------- EAPOL 是EAP 的扩展,除了P156相关EAP信息,EAPOL还加入了一些额外的消息 让EAP 能够适用于基于连接端口的LAN环境
EAPOL 消息的类型: EAP-Packet 包含了1个经过封装的 EAP帧
EAPOL-Start 申请者可以主动送出EAPOL-Start帧,不必等候来自认证者的质询 信息,认证者会送出1个 EAP-Request/Identity帧作为响应 EAPOL-Logoff 当某个系统不再需要使用网络时,便可以发出1个EAPOL-Logoff帧 让连接端口回到未授权状态 EAPOL-Key EAPOL 可以用来交换加密密钥信息 (0000 0011) EAPOL-Encap-sulated-ASF-Alert
|