Wifi加密方式及其破解簡單原理


Wifi加密方式 

一種數據加密算法,用於提供等同於有線局域網的保護能力。它的安全技術源自於名為RC4的RSA數據加密技術,是無線局域網WLAN的必要的安全防護層。

目前常見的是64位WEP加密和128位WEP加密。

 WPA(WiFiProtectedAccess ,WiFi網絡安全存取)。

WPA協議是一種保護無線網絡(WiFi)安全的系統,它是在前一代有線等效加密(WEP)的基礎上產生的,解決了前任WEP的缺陷問題,
它使用TKIP(臨時密鑰完整性)協議,是IEEE 802.11i標准中的過渡方案 。其中WPA-PSK主要面向個人用戶。 

WPA2,即WPA加密的升級版。

它是WiFi聯盟驗證過的IEEE 802.11i標准的認證形式,WPA2實現了802.11i的強制性元素,
特別是Michael算法被公認徹底安全的CCMP(計數器模式密碼塊鏈消息完整碼協議)訊息認證碼所取代、而RC4加密算法也被AES(高級加密)所取代。

 WPA-PSK+WPA2-PSK。

從字面便可以看出,很明顯,最后一種是兩種加密算法的組合,可以說是強強聯手。
WPA-PSK 也叫做 WPA-Personal(WPA個人)。WPA-PSK使用TKIP加密方法把無線設備和接入點聯系起來.
WPA2-PSK使用AES加密方法把無線設備和接入點聯系起來。   

1、聊勝於無的WEP   

WEP作為一種老式的加密手段,它的特點是使用一個靜態的密鑰來加密所有的通信 ,
這就意味着,網管人員如果想更新密鑰,必須親自訪問每台主機,並且其所采用的RC4的RSA數據加密技術具有可預測性,
對於入侵者來說很容易截取和破解加密密鑰,使用戶的安全防護形同虛設,因此如非迫不得已,不建議選擇此種安全模式。  

2、升級后的WPA   

繼WEP之后,人們將期望轉向了其升級后的WPA,與之前WEP的靜態密鑰不同,WPA需要不斷的轉換密鑰。
WPA采用有效的密鑰分發機制,可以跨越不同廠商的無線網卡實現應用。
它作為WEP的升級版,在安全的防護上比WEP更為周密,主要體現在身份認證、加密機制和數據包檢查等方面,而且它還提升了無線網絡的管理能力。

 

查看安卓手機已連接過的wifi密碼

需要的工具就是RE文件管理器(Root Explorer)或者ES文件瀏覽器就是能查看系統文件的文件瀏覽器。 

步驟: 

1、安裝Root Explorer(或者ES文件瀏覽器,不會用的自行百度)
2、打開Root Explorer,進入data/misc/wifi ata/misc/wifi為明文密碼的保存路徑 ,目錄里有個wpa_supplicant.conf(或者其他文件名以.conf結尾的文件)打開看到明文密碼了

基礎補充:

首先大家要明白一種數學運算,它叫做哈希算法(hash),這是一種不可逆運算,你不能通過運算結果來求解出原來的未知數是多少,

有時我們還需要不同的未知數通過該算法計算后得到的結果不能相同,即你不太可能找到兩個不同的值通過哈希得到同一個結果。

哈希是一類算法的統稱,通常哈希算法都是公開的,比如MD5,SHA-1等等。

我們平時說的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),tkip之所以被破解和這個mic有很大關系。

四次握手包中含有以上的哪些東西呢?

客戶端的MAC地址,AP的BSSID,A-NONCE,S-NONE,MIC,最關鍵的PMK和PTK是不包含在握手包里的! 


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

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

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

簡單來說就是:
1.psk+ssid加密生成pmk(密碼和賬戶進行加密)。
2.再將pmk+mac+bssid+隨機時間,加密生成PTK。
3.然后再對PTK進行加密生成MIC。
4.將mac,bssid,隨機時間,mic傳遞給路由器驗證。
(也就說抓包只有傳遞這些數據)
需要破解的地方:
1.生成pmk(一般用現成的數據詞典,因為消耗資源大)
2.用可能pmk生成ptk
3.用可能ptk生成mic
4.用可能mic和抓包的mic匹配

最近出來的tkiptun-ng只是可以解開使用tkip加密了的數據包,並不是說能夠快速算出PMK或PSK。

那么也就簡化ptk到mic,直接得到真確的ptk

wpa_supplicant套件中有個小工具,叫做wpa_passphrase,它和airolib-ng的作用差不多,都是用來生成PMK,在backtrack中應該自帶這個工具。

比如有個ssid為TP-LINK,PSK是12345678,那么生成PMK的方法就是wpa_passphrase TP-LINK 12345678,結果應該是這樣: 

network={     
ssid="TP-LINK" #psk="12345678" psk=1eecc652f354863e9f985a96d48545c4994e0d21b04955432b60c2600c0743da

psk=1eecc652f354863e9f985a96d48545c4994e0d21b04955432b60c2600c0743da其實就是PMK了,

一般在電腦上運行查看無線密碼的軟件就是得到這個,把1eecc652f354863e9f985a96d48545c4994e0d21b04955432b60c2600c0743da直接輸入到無線客戶端中

就可以連上該ssid,相當於輸入了12345678,

生成PMK的過程是不可逆的,即無法通過1eecc652f354863e9f985a96d48545c4994e0d21b04955432b60c2600c0743da來逆推得到12345678。

可以看到同樣是psk是12345678,如果ssid名字改變,那么pmk就會發生改變,這就是為什么用airolib-ng建表是只能按ssid生成。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM