不卡AV在线|网页在线观看无码高清|亚洲国产亚洲国产|国产伦精品一区二区三区免费视频

學(xué)習(xí)啦>學(xué)習(xí)電腦>網(wǎng)絡(luò)知識>無線網(wǎng)絡(luò)>

無線網(wǎng)絡(luò)密碼WPAWPA2基礎(chǔ)知識講解

時間: 恒輝636 分享

首先大家要明白一種數(shù)學(xué)運算,它叫做哈希算法(hash),這是一種不可逆運算,你不能通過運算結(jié)果來求解出原來的未知數(shù)是多少,有時我們還需要不同的未知數(shù)通過該算法計算后得到的結(jié)果不能相同,即你不太可能找到兩個不同的值通過哈希得到同一個結(jié)果。哈希是一類算法的統(tǒng)稱,通常哈希算法都是公開的,比如MD5,SHA-1等等。;

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

認(rèn)證的時候會生成一個PTK(pairwise temporary),這是一組密鑰,具體細(xì)節(jié)不詳細(xì)說了,它的生成方法也是采用的哈希,參數(shù)是連接的客戶端MAC地址、AP的BSSID、A-NONCE、S-NONCE、PMK,其中A-NONCE和S-NONCE是兩個隨機(jī)數(shù),確保每次連接都會生成不同的PTK。PTK的計算消耗很小。PTK加上報文數(shù)據(jù)采用一定的算法(AES或TKIP),得到密文,同時會得到一個簽名,叫做MIC(message integrality check),tkip之所以被解除和這個mic有很大關(guān)系。

四次握手包中含有以上的哪些東西呢?客戶端的MAC地址,AP的BSSID,A-NONCE,S-NONE,MIC,最關(guān)鍵的PMK和PTK是不包含在握手包里的!

8 A2 m6 T& }) U2 J認(rèn)證的原理是在獲得以上的所有參數(shù)后,客戶端算出一個MIC,把原文連同MIC一起發(fā)給AP,AP采用相同的參數(shù)與算法計算出MIC,并與客戶端發(fā)過來的比較,如果一致,則認(rèn)證通過,否則失敗。

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

目前最耗時的就是算PMK,可謂解除的瓶頸。即使搞定了運算量的問題,海量的密鑰存儲也是個問題(PMK都是64字節(jié)長度)!

最近出來的tkiptun-ng只是可以解開使用tkip加密了的數(shù)據(jù)包,并不是說能夠快速算出PMK或PSK。如果感興趣,可以到書店看看講哈希的書,說不定你把這些HASH算法都解除出來了。

wpa_supplicant套件中有個小工具,叫做wpa_passphrase,它和airolib-ng的作用差不多,都是用來生成PMK,在backtrack中應(yīng)該自帶這個工具。比如有個ssid為TP-LINK,PSK是12345678,那么生成PMK的方法就是wpa_passphrase TP-LINK 12345678,結(jié)果應(yīng)該是這樣:

network={ ssid="TP-LINK"

#psk="12345678"

psk=1eecc652f354863e9f985a96d48545c4994e0d21b04955432b60c2600c0743da

psk=1eecc652f354863e9f985a96d48545c4994e0d21b04955432b60c2600c0743da其實就是PMK了,一般在電腦上運行查看無線密碼的軟件就是得到這個,把1eecc652f354863e9f985a96d48545c4994e0d21b04955432b60c2600c0743da直接輸入到無線客戶端中就可以連上該ssid,相當(dāng)于輸入了12345678,生成PMK的過程是不可逆的,即無法通過1eecc652f354863e9f985a96d48545c4994e0d21b04955432b60c2600c0743da來逆推得到12345678??梢钥吹酵瑯邮莗sk是12345678,如果ssid名字改變,那么pmk就會發(fā)生改變,這就是為什么用airolib-ng建表是只能按ssid生成

167951