關(guān)于成對(duì)密鑰與組密鑰的結(jié)構(gòu) 1.成對(duì)密鑰 PMK 是基本元素 然后通過(guò) supplicant MAC(SA), supplicant nouces(SN),authenticator MAC(AA),authenticator nouces(AN) 進(jìn)行擴(kuò)展獲得PTK (Pairwise Transient Key) 成對(duì)傳輸密碼 公式如下: 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是動(dòng)態(tài)WEP所用RC4+Michael完整性校驗(yàn)的組成 CCMP是全新的組密碼AES方式

TKIP和CCMP的PTK被分成下面部分 1.EAPOL KCK(key confirmation key) 密鑰確認(rèn)密鑰,用來(lái)計(jì)算密鑰生成消息的完整性 2.EAPOL KEK(key Encryption key) 密鑰加密密鑰,用來(lái)加密密鑰生成消息 3.TKIP TK(CCMP TK) 這部分是正真用來(lái)進(jìn)行數(shù)據(jù)加密的 4.TKIP MIC key 用于Michael完整性校驗(yàn)的(只有TKIP有)
2.組密鑰 GMK主組密鑰(group master key)以作為臨時(shí)密鑰的基礎(chǔ) 和成對(duì)密鑰一樣擴(kuò)展獲得GTK (groupTransient Key) 公式如下: GTK=PRF-X(GMK,"Group key expansion",AA||GN) GN - Authenticator生成的 Nonce AA - Authenticator MAC地址 注意和成對(duì)密鑰擴(kuò)展不同的是沒(méi)有supplicant的 AA,AN
其中并沒(méi)有密鑰確認(rèn)密鑰,和密鑰加密密鑰,因?yàn)槊荑交換是 以成對(duì)EAPOL密鑰,來(lái)分配密鑰的
更新成對(duì)密鑰的4次握手
在更新成對(duì)密鑰前需要進(jìn)行4次握手,成對(duì)密鑰是用來(lái)加密單播幀的(就是AP與工作站之間的通訊幀), 4次握手就是為了完成密鑰的交換,成對(duì)密鑰只有1個(gè),通過(guò)交換讓雙方都知道 在WPA-PSK中 PMK=PSK 由ssid,和密碼等導(dǎo)出,公式如下: PMK=PSK= pdkdf2_SHA1(passphrase,SSID,SSID lenth,4096) 所以第1次Autenticator 將自己的nonce 傳給supplicant ,這時(shí)候 supplicatn 就可以計(jì)算PTK了
接下來(lái)supplicant 將自己的nonce和第1次和網(wǎng)絡(luò)關(guān)聯(lián)是所取得的 安全參數(shù)傳給Authenticator, 這樣Authenticator 獲得了supplicant 的nonce ,就可以計(jì)算PTK了 注意第2步的整個(gè)消息是用EAPOL 密鑰確認(rèn)密鑰(KCK)來(lái)進(jìn)行完整性校驗(yàn) 值校驗(yàn)的,如果authenticator根據(jù)已經(jīng)算出的PTK中的KCK對(duì)整個(gè)消息 進(jìn)行完整性校驗(yàn)未成功,握手就失敗了 這時(shí)消息還不能通過(guò)KEK加密,是因?yàn)檫沒(méi)有計(jì)算出PTK
到了第3步雙方的PTK都已經(jīng)就緒,這時(shí)authenticator將一個(gè)消息傳送 給supplicant,次消息包含成對(duì)密鑰的序列號(hào),(可能是生成TK的次數(shù)?) 并且包含GTK(組臨時(shí)密鑰),注意這時(shí)authenticator已經(jīng)可以生成GTK了 GTK 通過(guò)EAPOL KEK加密,然后整個(gè)消息通過(guò)KCK來(lái)認(rèn)證
第4步supplicant 再次確認(rèn),并告訴authenticator已經(jīng)接收到密鑰生成消息, 可以開(kāi)始使用TK了,次消息通過(guò)KCK認(rèn)證(因?yàn)槭茿CK,不需要再用KEK加密了)
更新組密鑰握手: 1.Authenticator送出GTK,這個(gè)GTK是利用前面成對(duì)密鑰4次握手的成果PTK中 的EPAOL KEK 來(lái)加密,EAPOL KCK 來(lái)驗(yàn)證 2. supplicant 送出ACK消息,此消息通過(guò)KCK 驗(yàn)證
PTK的生成元素中的PMK獲得 1. WPA-PSK PMK=PSK= pdkdf2_SHA1(passphrase,SSID,SSID lenth,4096) 其中passphrase,SSID ,是身份驗(yàn)證前authenticator,和supplicant 都應(yīng)該知道的
2. 802.1X+EAP中 PMK =L(MSK, 0, 256) MSK 需要通過(guò)802.1X交換獲得
其中EAP-Request/Method 中Method 表示EAP認(rèn)證的方式,如下: 4 - MD5 Challenge EAP 中類(lèi)似CHAP的認(rèn)證方式 6 - GTC 原本打算與RSA SecurID之類(lèi)的token card 一起使用 13 - EAP-TLS 以數(shù)字證書(shū)相互認(rèn)證 21 - TTLS 隧道式TLS;以TLS加密保護(hù)較弱的身份驗(yàn)證方式 25 - PEAP 防護(hù)型EAP;以TLS加密保護(hù)較弱的EAP驗(yàn)證方式 18 - EAP-SIM SIM卡方式進(jìn)行身份驗(yàn)證 29 - MS-CHAP-V2 Method 之后如果認(rèn)證成功,authenticator會(huì)發(fā)出EAP-Success表示授權(quán)使用連接端口 再接下來(lái)AP就可以立即使用EAPOL-Key消息將MSK發(fā)給supplicant,以后就和WPA-PSK 一樣用MSK最終導(dǎo)出PTK(MSK,PMK就是PTK的密鑰生成密鑰)
其中EAPOL(EAP over lan)的幀格式如下
------------------------------------------------------------------------------- | 802.11 header | SNAP header | Ethernet Type (88-8E) | Version |Packet Type | ------------------------------------------------------------------------------- EAPOL 是EAP 的擴(kuò)展,除了P156相關(guān)EAP信息,EAPOL還加入了一些額外的消息 讓EAP 能夠適用于基于連接端口的LAN環(huán)境
EAPOL 消息的類(lèi)型: EAP-Packet 包含了1個(gè)經(jīng)過(guò)封裝的 EAP幀
EAPOL-Start 申請(qǐng)者可以主動(dòng)送出EAPOL-Start幀,不必等候來(lái)自認(rèn)證者的質(zhì)詢 信息,認(rèn)證者會(huì)送出1個(gè) EAP-Request/Identity幀作為響應(yīng) EAPOL-Logoff 當(dāng)某個(gè)系統(tǒng)不再需要使用網(wǎng)絡(luò)時(shí),便可以發(fā)出1個(gè)EAPOL-Logoff幀 讓連接端口回到未授權(quán)狀態(tài) EAPOL-Key EAPOL 可以用來(lái)交換加密密鑰信息 (0000 0011) EAPOL-Encap-sulated-ASF-Alert
|