WPA WPA2金鑰派生與分發

2021-06-07 04:48:07 字數 3319 閱讀 2459

author:   jeffrey.zhu

blog:

1 概述

wpa的金鑰生成、管理系統結合了認證和資料私密功能,具有較強的健壯性,在sta和ap之間認證完成且四次握手成功後,各類金鑰就產生了。在ess網路中,rsna定義了兩類金鑰層次結構:

1)            pairwise key層次結構,用於保護單播流量(unicast traffic),支援ccmp或tkip,通過將傳送位址、接收位址與pairwise key的繫結,可以在解密(decapsulation)過程中,有效地檢測出攻擊者偽造的mpdu,即允許接收端的sta檢測mac欺騙及資料偽造,而gtk則不具備這樣的能力;

2)            group key層次結構,用於保護多播(multicast traffic)和廣播流量(broadcast traffic),由單個金鑰組成。

在ess中,ap的bssid就是ieee 802.1x 認證器的aa(mac 位址),而請求者的mac位址(spa)也就是sta的mac位址,在rsn中,使用ccmp的sta在每個對中,應該至少支援乙個pariwise key,同時可以用來標識pariwise key。

在複雜網路中(ess與ibss混合),當ap同時與使用wep(用共享wep金鑰)的sta以及使用ccmp或tkip(用pairwise key)的sta通訊時,使用wep的sta使用default key 0~3 作為shared wep key,問題在於,若ap設定成使用wep default key 0與使用wep的sta通訊,那些不支援wep default 0但支援tkip或者ccmp的sta將會在rsn capabilites field裡頭指定為no pairwise subfield,由此,ap也會配置成與wep-sta及no pairwise-sta(no pairwise的使用僅為了在rsna中支援wep)通訊,也就是說四次握手的時候ap不會安裝pairwise temporal key,而是在所有型別的通訊流量中使用wep default key 0。

同時不支援tkip和wep default key 0的sta通過設定rsn ie的no pairwise域來廣播這一資訊,在四次握手的message3中,ap將會清除install bit通知sta不要安裝pairwise key,相應地,ap會發乙個wep shared key給sta作為default key 0使用,這個key將會用於sta與ap之間單播幀的傳遞。

在tsn中,支援ccmp的sta將會同時支援pairwise keys和wep default key 0,當配置使用ccmp時,sta協商為no pairwise subfield是無效的。

金鑰層次的描述用到兩個函式:

l  l(str, f, l):從str的左邊開始,抽取從l到l+f-1的f bits;

l  prf-n:產生n bits輸出的偽隨機函式。

pairwise key層次結構如下圖所示:

根據採用的金鑰管理協議(akmp)的不同,pmk的獲取有兩種情況:

l  802.1x+eap模式下,pmk從msk中派生而來,取msk的前256 bits (bits 0–255)用來計算pmk :pmk =l(msk, 0, 256),也就是說,在這種模式下,msk的長度至少要是256bits,且ptk的的生命週期應該短於pmk的生命週期(lifetime),其中生命週期由認證伺服器(as)決定:lifetime = session-timeout + dot1xauthtxperiod 或者取mib裡頭的變數: lifetime = dot11rsnaconfigpmklifetime。

l  wpa-psk模式下,乙個256bits的psk將會直接配置到sta和ap中,或者將pass-phrase(如使用者輸入的密碼)配置到請求端(supplicant)與認證器端(authenticator),關於psk的配置方法不屬於ieee802.11i標準的內容,其中常用的方法是系統與使用者互動來完成psk的配置(且具體實現中,應該為每一對sta之間的通訊生成乙個psk),例如,如果配置了pass-phrase,則256bit的psk將會通過下面方式派生,並當作pmk使用,利用pmk便可以派生出ptk,流程如下圖所示:

l  snonce 是由supplicant端(即sta端)生成的乙個偽隨機數;

l  anonce 是由authenticator端(即ap端)生成的乙個偽隨機數。

其中,pdkdf2_sha1( ),sha1_prf( )

在前述章節有所介紹。根據金鑰套型別(tkip/ccmp),我們將ptk的肢解進行進一步細分:

l  kck,用於4-way handshake中對資料原始性認證進行保障,也就是mic key;

l  kek用於4-way handshake和group key handshake中的eapol-key幀的加解密;

l  tek,也就是tk,用於資料幀的加解密;

l  tmk則是tkip中的mic校驗key。

最後,作者對pairwise key層次結構中不同金鑰資源在不同資訊保安體系中的使用進行了乙個總結:

gmk的獲取在前述章節有所介紹,gtk作為乙個臨時金鑰(tk)應該是乙個偽隨機數,也就是說ap中的gmk(group master key )應該周期性地改變,group key層次結構如下圖所示:

l  group nonce (gnonce) 是乙個由ieee 802.1x認證器生成的偽隨機數;

l  aa是ieee 802.1x 認證器mac 位址;

根據金鑰套選擇的類別,gtk被肢解為不同長度的tk(temporal key)用於保護多播與廣播通訊(multicast / broadcast communication),也就是說,gtk被用於乙個認證器端與多個請求端之間,其中,tkip的x = 256, ccmp的x = 128 ,wep的x = 40或104。

類似地,作者也對group key層次結構中不同金鑰資源在不同資訊保安體系中的使用進行了乙個總結:

peerkey key層次結構如下圖所示:

由於peerkey key用在ibss網路中,所以下面只進行簡單介紹:

l  smk為256bits;

l  stks 用於initiator sta與peer sta之間,即用於ibss中sta與sta之間;

l  tk 用於保護initiator sta與peer sta之間的單播通訊(unicast communication);

l  inonce 是乙個由initiator sta產生的偽隨機數;

l  pnonce 是乙個由peer sta 產生的偽隨機數;

l  skck 用於保護4-way stk handshake中的認證資料;

l  skek 用於保障4-way stk handshake 中eapol-key幀的保密性。

無線安全之破解WPA WPA2 加密 iFi

可以使用無線網路的kali linux 由於古老的 pe加密的wifi已經幾乎沒有了,所以這裡我就不去細說如何破解wpe加密的 ifi了。今天就來聊聊 如何來使用kali linux來破解wpa wpa2加密的wifi。本次破解wifi使用的是kali linux下經典的aircrack ng 首先...

CDLinux破解WPA WPA2無線網路密碼

破解前的準備工作 1 8187 8187l 3070晶元大功率網絡卡一塊 就是我們俗稱的 卡王 2 破解軟體cdlinux 4.1g的u盤或虛擬機器vm 啟動虛擬機器 名稱 這裡選擇中文,你應該知道吧?系統啟動,選擇語言介面,這裡你選擇中文,如果你是外國人,選擇外語,我相信看到這兒都是中國人吧?虛擬...

繼承與派生2

編寫程式,宣告乙個基類shape,再派生出rectangle類和circle,二者都有getarea 函式,計算物件的面積。使用程式rectangle類建立乙個派生類square。includeusing namespace std class shape 圖形類 析構函式 virtual doub...