【IT168專稿】對於無線WPA加密環境,在獲得了WPA握手驗證包後,攻擊者會通過暴力破解模式來進行WPA密碼破解,同時也可以通過事先建立有針對性的字典,然後再進行字典破解(攻擊)。對於大多數無線接入點AP而言,這將會是個行之有效的方法。因為事實證明:絕大部分的管理員、維護人員、家庭用戶的安全意識並沒有他們自己認為的那麼高,至少過去的一年多時間裡,筆者已經遇到了無數設置為生日或者簡單單詞的WPA-PSK密碼。
那麼,是不是可以說,只要有足夠空間、考慮周全的字典,破解WPA實際也就主要是時間的問題了。真的只是這樣麼?不知道大家仔細留意過沒有,按照現在主流單機環境配置,在WPA破解速率上也就維持在100~~300k/s(k/s指的是破解時每秒調用的key數量),以這樣的破解速率,要把一個以小寫字母和數字組合的5位WPA密碼破開,我們來以基本的概率論知識估算一下:(圖1所示)
(26+10)?= 60466176;
該5位數WPA密碼可能性為:
破解所有花費的時間將會是:
60466176/(3600×300)~~ 60466176/(3600×100),即花費55.987~~167.962小時。
若是換算成天數的話,大概需要2~~7天。這還只是5位數WPA密碼,若是採用WPA密碼為純小寫字母且長度在10位數以上,則最快需要時間是5446261 天,也就是14921年!!真的是天位數字啊!!若是密碼組合採用大小寫字母+數字+特殊字符的話,恐怕連看到這裡的你都會說:還是不用考慮破解了吧?
所以,前面講述的獲得到WPA握手後,進行的破解實際上只適用於是在對方採用簡單密碼的情況,也就是說,因為破解速率太慢,所以在對方採用稍微複雜的密碼之後,這個常規方法就沒有太多的實戰能力甚至徹底失去破解意義。
圖1 密碼可能包含的組合內容
若有人對概率知識稍有欠缺,或者覺得計算破解時間太麻煩的話,可以到下面這個網址上看看,這上面提供一個在線估算密碼破解時間的服務,很方便。網址:http://lastbit.com/pswcalc.asp,可以看到一個明顯的Password Calculator標題,即密碼估算。
在下面的欄目中,可以輸入要計算密碼的可能長度、使用計算機的破解速率、被用於破解的計算機數量、密碼的組合可能(大小寫字母、數字、通配符或全部),填寫完畢,點擊下方的Calculate(計算),在其下方就可以給出暴力破解的估算時間了。如下圖2,可以看到估算出採用小寫字母和數字組成的5位數密碼,在單機以30k/s的速率破解需要時間為24天!!
圖2 密碼估算服務設置內容
看到這裡,也許有的讀者會想到:可以升級硬體設備啊,比如CPU、內存之類。不錯,升級硬體確實可以在一定程度上提升破解,但那也是很有限的,比如就目前而言,普通獨立計算機下內存最大也就能升級到4G,CPU無非就是最新的高緩存四核處理器。這樣的配置對於剛才我們舉例的10位WPA密碼,破解時間還是以年來計算的!!
那麼,那些高級黑客們又是怎麼做的呢?難道只是靠單純地提升硬體麼?這裡我們在揭開高速破解之前,先講述一些概念:
Tables
可以說長期進行密碼學研究的人很少有不知道這個的。在很多年前,國外的黑客們就發現單純地通過導入字典,採用和目標同等算法破解,其速度其實是非常緩慢的,就效率而言根本不能滿足實戰需要。之後通過大量的嘗試和總結,黑客們發現如果能夠實現直接建立出一個數據文件,裡面事先記錄了採用和目標採用同樣算法計算後生成的Hash散列數值,在需要破解的時候直接調用這樣的文件進行比對,破解效率就可以大幅度地,甚至成百近千近萬倍地提高,這樣事先構造的Hash散列數據文件在安全界被稱之為Table表(文件)。
Rainbow Tables
最出名的Tables是Rainbow Tables,即安全界中常提及的彩虹表,它是以Windows的用戶帳戶LM/NTLM散列為破解對象的。簡單說明一下,在 Windows2000/XP/2003系統下,帳戶密碼並不是明文保存的,而是通過微軟所定義的算法,保存為一種無法直接識別的文件,即通常所說的SAM文件,這個文件在系統工作時因為被調用所以不能夠被直接破解。但我們可以將其以Hash即散列的方式提取,以方便導入到專業工具破解,提取出來的密碼散列類似於下面:
Administrator:500:96e95ed6bad37454aad3b435b51404ee:64e2d1e9b06cb8c8b05e42f0e6605c74:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
user1:1001:732b2c9a2934e481cd0a8808b19097ef:778620d5d5de064154e689fa4790129f:::
user2:1002:a042f67a99758fd727b99b2375d829f9:6127ee12a83da34fc19953e538e4d580:::
若是以傳統破解方式而言,無論是本地,還是內網在線破解,效率都不是很高。據實際測試,單機環境下,破解一個14位長包含大小寫字母以及數字的無規律密碼,一般是需要3~~9小時的,這個時間值會隨著密碼的複雜度及計算機性能差異提升到幾天甚至數月不等。雖然說大部分人都不會使用這樣複雜的密碼,但對於目前很多密碼足夠複雜並且長度超過10位的密碼比如「Y1a9n7g9z0h7e」,還是會令黑客們頭痛不已。
2003年7月瑞士洛桑聯邦技術學院Philippe Oechslin公布了一些實驗結果,他及其所屬的安全及密碼學實驗室(LASEC)採用了時間內存替換的方法,使得密碼破解的效率大大提高。作為一個例子,他們將一個常用作業系統的密碼破解速度由1分41秒,提升到13.6秒。這一方法使用了大型查找表對加密的密碼和由人輸入的文本進行匹配,從而加速了解密所需要的計算。這種被稱作「內存-時間平衡」的方法意味著使用大量內存的黑客能夠減少破解密碼所需要的時間。
於是,一些受到啟發的黑客們事先製作出包含幾乎所有可能密碼的字典,然後再將其全部轉換成NTLM Hash文件,這樣,在實際破解的時候,就不需要再進行密碼與Hash之間的轉換,直接就可以通過文件中的Hash散列比對來破解Windows帳戶密碼,節省了大量的系統資源,使得效率能夠大幅度提升。當然,這只是簡單的表述,採用的這個方法在國際上就被稱為Time-Memory Trade-Off ,即剛才所說的「內存-時間平衡」法,有的地方也會翻譯成「時間—內存交替運算法」。其原理可以理解為以內存換取時間,可由下圖3表示:
圖3 著名的「內存-時間平衡」法運算原理圖
具體算法方面的內容本文就不再涉及,對於想進行更高深層次探究的讀者,可以仔細參考2003年的這篇詳細文檔《Making a Faster Crytanalytical Time-Memory Trade-Off》以及2005年的文檔《Time-Memory Trade-Offs: False Alarm Detection Using Checkpoints》,在本節後面會給出連結。
正是由於Rainbow Tables的存在,使得普通電腦在5分鐘內破解14位長足夠複雜的Windows帳戶密碼成為可能。
圖4 對Windows帳戶進行Rainbow Tables破解
如上圖4可以看到,類似於c78j33c6hnws、yemawangluo178、38911770這樣的Windows帳戶密碼幾乎全部在180秒即3分鐘內破出,最短只用了5秒,個別稍長的密碼破解開也沒有超過3分鐘。
由於這裡我們討論的是無線安全部分,所以本文就Windows下的Tables技術不再深入舉例。有興趣的讀者可以從本文後面列出的網址查看更多的相關資料。
WPA-PSK Hash Tables
現在,在理解了「內存-時間平衡」法和Table的存在意義後,讓我們回到無線領域,破解WPA-PSK也是同樣的意思。在2006年舉行的RECON 2006安全會議上,一位來自Openciphers組織的名為David Hulton的安全人員詳細演示了使用WPA-PSK Hash Tables破解的技術細節,給與會者極大的震動。
下面所示的為會議上引用的WPA加密以及主密鑰對匹配等建立WPA Tables所需理念的原理圖,其中,MK為密碼原文,PMK就是通過PBKDF2運算所得出的數值,PTK就是在PMK的基礎上進行預運算產生的WPA Hash,這個Hash將用來和WPA 握手包中的值對照,若匹配即為密碼。
圖5 針對WPA加密Tables破解的原理圖
這種採用了類似Rainbow Tables原理,通過Pre-Compute即預運算的方式,來進行提前運算以生成WPA-PSK加密Hash,從而建立起來的WPA-PSK Hash Tables,可以如事先設想般有效地大幅度提升破解效率。一般來說,可以將以前的100~~300 key/s的普通單機破解速率,提升到30,000~~100,000 key/s,提升了近300~~1000倍!!!這才是國內外無線黑客目前使用的破解技術,就一些地下組織而言,甚至個別秉持執著、探求本質精神的黑客通過改進優化代碼等方式使得破解速率突破了150,000k/s,而且還有提升空間。這個速度意味著什麼,如果再換置成最新的硬體配置呢?聰明的你一定明白。
下圖6即為在cowpatty裡對獲取的WPA握手包進行WPA Table破解界面,可以看到在導入Table之後,破解速率達到了6,5228 pass/second。
圖6 在Cowpatty裡進行WPA Tables破解界面
我想,對於很多無線用戶來說,這才是真正的噩夢。古希臘哲學家蘇格拉底曾說過這麼一句話: 「認識你自己。」 ,但實際上很多時候都是黑客背地猖獗,而很多網絡及安全管理人員要麼對攻擊者的技術僅是略知皮毛,要麼就根本一無所知,而且甚至不知道自己在經過所謂安全配置後的網絡架構,將實際面臨什麼樣的風險。
雖然說公開一些技術也許反而會引起個別心懷惡意的人注意,不過出於對無線安全理念的普及及深入理解,幫助很多已經完成或者正在進行無線網絡規劃的軍警政機構、大中型企業及特殊部門,更清楚地認識到無線網絡的風險,從而儘可能地完善自身的不足,避免不必要的損失,才是本書的出發點。
當然,要說明的是,Tables的建立並沒有想像的那麼容易,就建立本身而言,其效率非常低下,加上需要指定預攻擊AP的SSID,想要建立一套針對所有常見接入點,並採用簡單密碼的WPA-PSK Hash Tables,其生成文件佔據的硬碟空間最少也要1~~3G。需要深入了解WPA Table的讀者,可以到這個名為The Church of Wifi的無線黑客組織了解更多內容,該組織官方站點為http://www.churchofwifi.org,該組織在過去的兩年裡成功建立了龐大的WPA Table庫,並將其簡化的WPA-PSK Hash Table版本提供免費下載,對很多無線黑客而言,這確實是個福音,但遺憾的是,即便是簡化版本,其大小也已經超過了30G。
感興趣的讀者可以到http://umbra.shmoo.com:6969去下載這個簡化版本的Table種子文件,該Table全部下載回來大小有33.54GB,需要說明的是,生成該Table所依據的字典雖然經過黑客組織的篩選,但是由於國情不同,所以裡面部分內容可能並不適合國內情況的使用。比如雖然都會有人使用姓名作為密碼,在國外可能是類似於BruceLee這樣的英文名稱,但是到了國內就可能是Lilianjie這樣的拼音了。
圖7 30G WPA Hash下載頁面
不過,對於無線網絡管理員,並不能因此鬆一口氣,真正的噩夢才剛剛開始,因為這個方法也同樣適用於破解WPA2加密。而且,國外一些地下高級黑客組織,也已經建立了高達500G的詳盡WPA/WPA2攻擊Table庫,甚至一些基本完善的WPA-PSK Hash Tables已經在黑客網站上開始公開出售,只需要支付120美金左右,就會有8張包含WPA-PSK Hash Tables 的DVD光碟通過Fedex直接送到你的手上。