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