WIFI的認證與加密方式

認證方式/通訊數據加密算法

路由器web端輸入的的SSID的中文都是UTF8編碼
因此使用Android或者IOS這些默認UTF8編碼的系統可以正常顯示,但是在Windows(ANSI)環境下顯示亂碼

開放方式:

Open/Open【無】
Open/WEP【WEP開放認證】(接入時不需要密鑰認證,但實際數據通訊仍然需要正確密鑰才能進行)
WEP/WEP【WEP共享密鑰】

一般WEP的密鑰可以設置4個認證密鑰,每個密鑰可以使用64bit或者128bit,可選擇ASCI或者十六進制填入
選擇64bit時,ASCII密鑰長度爲5Bytes,十六進制長度爲10Bytes
選擇128bit時,ASCII密鑰長度爲13Byte,十六進制長度爲26Bytes
在四個認證密鑰中,可以選擇一個加密密鑰,因此實際還是隻有一個密鑰可以使用。


過渡版本:

WPA(802.1X,EAP)/TKIP,WEP【WPA-企業】
PSK1/TKIP,WEP【WPA-個人】

使用802.1x或者EAP進行驗證的就是WPA,使用Personal Key(PSK)的成爲個人版WPA


先進版本:

WPA2(802.1X,EAP)/CCMP(AES-CCMP),TKIP,WEP【WPA2-企業】
PSK2/CCMP(AES-CCMP),TKIP,WEP【WPA2-個人】

WPA2除了認證方式有改進,也增加有AES通訊加密


終結版本:

WPA-mixed/CCMP(AES-CCMP),TKIP,WEP【WPA/WPA2混合-企業】
PSK-mixed/CCMP(AES-CCMP),TKIP,WEP【WPA/WPA2混合-個人】

可以參考
https://wiki.openwrt.org/doc/uci/wireless#wpa_modes
中介紹的WPA Mode

關於WPA的破解方法

我們平時說的WPA密碼其實叫PSK(pre-shared key),長度一般是8-63字節,它加上ssid通過一定的算法可以得到PMK(pairwise master key)。PMK=SHA-1(ssid,psk) ,PMK的長度是定長的,都是64字節。由於計算PMK的過程開銷比較大,是我們破解花費時間長的關鍵,所以採用以空間換時間的原則把PMK事先生成好,這個事先生成好的表就是常說的HASH表(生成PMK的算法是一種哈希),這個工作就是用airlib-ng這個工具來完成的,我們的快速破解就是這麼來的。

認證的時候會生成一個PTK(pairwise temporary), 這是一組密鑰,具體細節不詳細說了,它的生成方法也是採用的哈希,參數是連接的客戶端MAC地址、AP的BSSID、A-NONCE、S-NONCE、 PMK,其中A-NONCE和S-NONCE是兩個隨機數,確保每次連接都會生成不同的PTK。PTK的計算消耗很小。PTK加上報文數據採用一定的算法 (AES或TKIP),得到密文,同時會得到一個簽名,叫做MIC(message integrality check)

認證的原理是在獲得以上的所有參數後,客戶端算出一個MIC,把原文連同MIC一起發給AP,AP採用相同的參數與算法計算出MIC,並與客戶端發過來的比較,如果一致,則認證通過,否則失敗。

目前的破解方法是我們獲得握手包後,用我們字典中的PSK+ssid先生成PMK(如果有HASH表則略過),然後結合握手包中的(客戶端MAC,AP的 BSSID,A-NONCE,S-NONCE)計算PTK,再加上原始的報文數據算出MIC並與AP發送的MIC比較,如果一致,那麼該PSK就是密鑰。

發佈了57 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章