泡泡網新聞頻道5月30日 今天小編在煎蛋網發現一篇長文,用玩家的話說「我……歷來沒有在煎蛋上見到那麼長的東西……除了邊欄廣告……」,這篇文章題目《用戶密碼薄如紙》,看過之 後你會相信現世界上部分黑客猜密碼的時候都會試試「對馬電池訂書釘(correcthorsebatterystaple)」。詳情請謄出40分鐘看下 文。html
Password:對馬電池訂書釘(correcthorsebatterystaple)算法
前情提要:可能各位煎蛋蛋友看了題圖和這句話後,會有點懵。其實「對馬電池訂書釘」出自XFCD發表的漫畫名爲「密碼強度」:數據庫
可是……這幅漫畫顯然過低估黑客們的實力了:安全
本週,Ars網站邀請了三位黑客破解了16,000多個hash過的密碼-成功率90%!OK,這多是煎蛋史上最臭最長的文章,翻譯君爲了體量諸位蛋友 的耐心,先上一個刪減版把這事兒說清楚:黑客告訴你,你的密碼不是由於又臭又長就安全,而是由於沒人惦記你,因此暫時安全。網絡
請來黑客測試安全性測試
--------------------------------------------------------------------優化
咳,而後是獻給好學蛋友們的正文:網站
3月,博客做者Nate Anderson,下載了一份側漏的暴庫密碼錶,內含超過16,000個hash過的真實密碼,通過百度知道的簡單培訓,結果只花了大概能煎3個蛋的功 夫,破解了其中一半的密碼。這給全部人提了一個警醒:若是一個沒有通過任何訓練的蛋友,就能達到這個程度,想一下一個職業黑客能搞出多大動靜。雲計算
不用自行腦補了,咱們請來了三位職業黑客,使出渾身解數,來破解Anderson練手的那份密碼錶,展開了終極PK。你會看到包括數字,大小寫,標點符號的長密碼是如何被快速破處出的。加密
這份密碼錶裏總共有16,449個hash過(MD5)的密碼。任何負責的網站,都不會明文存儲用戶的密碼信息,而是用MD5加密,這種加密過程是不可逆 的,也就是說,就算拿到MD5密文,也不可能直接「反求」出原文。好比「passwd」被hash過之後,密文是 「5f4dcc3b5aa765d61d8327deb882cf99」。
雖然Anderson的47%破解率已經很是不錯,但對於職業黑客來講,仍是不足掛齒。爲了證實這點,咱們請來他們來演示一下,說真的,他們沒有讓咱們失 望。就算三個裏成績最差的一個——他用最弱的硬件,花了一個小時,用最小的字典,中間還接受了一次採訪,也搞定62%的密碼,而最好成績是90%。
這個三人黑客團隊包括一名密碼破解軟件專家,一名安全顧問,和一名匿名自由黑客。其中最牛的一名黑客是來自S.C.G., 使用一臺只配置一塊AMD 7970 GPU的家用電腦, 花了20小時破解了90%,共14,734個密碼。免費GPU密碼破解軟件OclHashcat-Plus(參加測試的黑客都使用這款軟件)的開發負責 人,Jens Steube 也取得了不俗的成績,他在一個多小時的時間裏,用一臺雙AMD HD6990 GPU的機器,搞定了 13,486個密碼,佔所有的82%!另一名諢號 moniker radix的黑客,用一塊AMD 7970,搞定62%的密碼,也差很少花了1個小時,若是不是被咱們打擾接受採訪,他應該能取得更好的成績。
黑客窮舉破解密碼所用的「字典」裏,包括了不少密碼明文,這些經常使用的密碼字符組合,來自於不少大型網站的用戶數據中,包括像「123456」,「password」之類,這些屬於弱暴了的密碼,還有稍微好一點的,像「p@$$word」、「123456789j」、「LETMEin3」等也一樣不堪一擊。在這些字典裏,你還能找到一些理論上強悍的密碼,好比「LOL1313le」、「1368555av」、「Oscar+emmy2」之類:
截圖裏展現了一部分黑客字典中的密碼組合。像此次參與PK的黑客手裏的字典,有接近1億種常見密碼。但像「momof3G8kids」、「Coneyisland9/」這樣的密碼,雖然不在他們的字典裏,同樣沒能倖免,他們是怎麼作到的呢?答案來自於兩個方面:網站沒能保護用戶密碼的MD5信息,和用戶沒有使用足夠強壯的密碼。
嗖嗖地,妥妥的
「這些弱暴的密碼」radix說道,他不肯意透露真名,「說明他們真的不是很在意本身的密碼安全,別用MD5加密,這對他們來講其實並不難」。
MD5算法,是一種快速簡單的的「報文編譯」方法,由它生成的密文,也是黑客最喜歡拿來練手的對象,一塊GPU顯卡,就能在1秒鐘內遍歷8億個字符組合,比較起來看,加密過程就費時費力的多,好比在蘋果Mac OSX系統,和大多數基於Unix的系統上採用的SHA512加密算法,一個明文密碼須要通過5,000次hash。這點小障礙也就讓一塊GPU每秒少跑了2,000次而已,相似的還有bcrypt,scrypt,和 PDKDF2。
另一個漏洞就是用戶本身,選擇好記的單詞看成密碼,好記就表明容易被破,好比「momof3G8kids」看上去好記又難猜,但實際上,「mom」、「kids」都是每個黑客手裏必備的破解詞彙。愈來愈彪悍的硬件和軟件,能讓黑客垂手可得地不斷嘗試這些詞彙的各類組合,除非用戶細心設計,不然好記的密碼就是正中黑客下懷。
並且必須指出,此次三名黑客並不知道這份密碼錶是從哪一個網站得來的,這就等於封殺了他們的一項技能。通常,當獲得一份hash過的密碼錶後,他們第一個步 就是「去那個網站看看他們的密碼設置要求和強度」radix說道,若是黑客知道這個網站的密碼強度和其它約定,這就大大減少了他們的工做強度,讓黑客能夠 有針對性地採起破解策略。
破解步驟
要細說他們是如何破解強密碼的,那就須要對他們三我的的方法和策略進行比較分析,由於他們的硬件和方法都不太同樣,也不能說得哪一個人的水平更高一些,打個 比方,這是一場遊戲通關,那麼一關定比一關難,第一輪破解,通常能搞定其中50%的密碼,後面的成功率就愈來愈少,到最後的階段,他們只能純靠運氣,獲得 幾百個密碼明文。
舉例來說,在Goseney動手的第一階段,只花了16分鐘,就幹掉了10,233個hash密文,也就是62%的樣子。他先用6位之內的密碼開路,用暴 力窮舉法對付1~6個字符的密碼組合由95個字符組成的密碼,包括26個小寫,26個大寫,10個數字,33個符號。猜完一輪這樣的排列組合(956 + 955 + 954 + 953 + 952 + 95 個),只花了2分32秒就獲得了1,316個正確結果。
當密碼長度超過6位,Gosney開始改變策略,用精心挑選的字典進行窮舉。由於隨着密碼長度的增長,字符組合成指數級增加。1小時能搞定全部6位密碼,但要遍歷更長的密碼,可能要花費數週,甚至數年。因此,對於暴力窮舉破解的方法,有一種說法叫:「長度防火牆」:
暴力窮舉能夠很好地對付6位如下的密碼,但對於8位以上的密碼,就算開動Amazon的EC2雲計算也無能爲力。
黑客固然不會一條道走到黑,Gosney下一步的暴力窮舉將只針對7~8位,全小寫字母的狀況。這將大大減小窮舉所需時間,並且收穫也很多,成功破解 1,618個密碼。接着他繼續嘗試7~8位全大寫的狀況,又獲得了708個結果。由於他們的排列組合是268+267,每一步只許41秒。最後,他嘗試全 部由數字組成長度從1~12位的狀況,獲得312個密碼,耗時3分21秒。
用光了以上入門級暴力破解法,黑客Gosney這纔開始拉開架勢,拿出本身潛心調教多年的「字典」,經過在HashCat軟件中內置的「best64」規 則(一種基於密碼統計學的破解行爲模式),他能在9分04秒內,跑完了6,228個hash密文,而後他利用上一步破解所獲得的全部明文密碼,經過另外一組 名叫「d3ad0ne」的規則過濾得到「字符組合特徵」,讓他在一秒鐘內,又獲得了51個密碼明文。
「正常狀況下,我先用暴力窮舉法,完成1~6位的密碼破解,由於就算是單GPU,也能幾乎瞬間完成用MD5加密的密碼」。Gosney在郵件中解釋道:
由於這一步很快就能完成,因此,個人字典幾乎都是6位以上的密碼組合。這可讓我節省很多磁盤 空間,也能夠利用GPU的蠻力,加快我以後用字典破解的速度。對於數字組合也是這樣,我能夠很快破解純數字的密碼,因此在個人字典裏沒有任何數字組成的密 碼,而後纔是個人字典文件+bast64規則文件。咱們的目的就是先挑軟柿子捏。
從簡單密碼下手對於被「摻鹽」(cryptographic salt)的密碼特別有用。「摻鹽」是用來對付黑客的「彩虹表」(一種明文和密文對應的窮舉表)和相似的字典技術,摻鹽就是在用戶密碼後面,再加上隨機字 符,而後再hash的技術。除了防護彩虹表,摻鹽也減慢了暴力窮舉法的破解速度。
但「摻鹽」的關鍵在於,只有在摻入不一樣的鹽巴(字符)狀況下,才能明顯減慢破解速度。這就意味着,摻鹽的效果,會隨着破解的進行而逐漸下降。黑客能夠經過破解簡單密碼的結果,逐漸排除鹽巴的干擾。固然,此次PK活動使用的密碼沒有被摻鹽。
通過第一輪的摧枯拉朽,10,233個hash密文已經告破,進入第二個階段,黑客開始採用「混合破解的策略」。就和以前提到的遊戲通關的比喻同樣,隨着 難度的增大,第二階段須要花費的時間會大大增長,並且戰果也會減小,準確的說,只有2,702個密碼告破,耗時5小時又12分鐘。
就和名字同樣「混合破解法」,結合了暴力窮舉和字典破解兩種路數,這大大拓展的字典所涵蓋的組合種類,而且把組合數量控制在能接受的範圍裏。第一輪,黑客 在全部字典條目的後面,加上兩個隨機字符包括符號和數字,這樣在11分25秒內,有破獲585個密碼。第二輪加上3個隨機字符,耗時58分鐘,獲得527 個結果,第三輪再接再礪,加上四個隨機數字,25分鐘內又獲得435個密碼明文,第四輪,加上四個隨機字符包括一個數字和三個小寫字母,再斬獲451個密 碼明文。
面對可觀的戰果,Gosney認爲,這隻用了一張GPU卡的結果而已。
「你注意到咱們只加上了2~3個長度的隨機字符,但到4個長度,咱們只能用數字了,由於只有1塊顯卡的GPU,想要跑完+4位隨機字符和數字的組合會耗費很長時間,因此我只能放棄。」
毫無疑問,說這話的Gosney,已經用這臺25GPU交火的怪獸機搞過更長的密碼,他在去年10月透露了這臺名叫「鐳池」機器:
由於GPU的並行運算能力是隨着運算單元的增長而線性增加,這讓Gosney很好地利用這些資源,讓他能在每秒得到350億次的運算速度,去挑戰微軟的NTLM加密算法。
第二階段,Gosney繼續採起差很少的戰術。在這個階段結束的時候,他總共斬獲 12,935個密碼明文,也就是完成了78.6%的破解工做,總共耗時5小時28分鐘。
不少黑客都知道有一個有趣的現象,就是在同一個網站下,用戶的密碼會很是類似...儘管這些用戶互天南海北,互相都不認識。經過已經獲得大部分的密碼,黑 客開始分析這個未知網站的密碼特徵,來模仿這個網站用戶的行爲,去破解餘下的密碼。經過Markov Chains(一種統計學模型),黑客用HashCat生成了一份新的密碼詞典,Gosney認爲,這本字典是高度優化和智能的,大大縮減了所需的字符組 合數量。
初級的暴力窮舉詞典包含像「aaa」,「abb」這樣的組合。但通過Markov Chains調教過的字典,經過分析已有密碼明文,列舉出了最有可能的密碼組合。「Markov破解法」,能夠把7位字符組合難度從 957下降到657,大概能夠節省7個小時。通常來講,字符組合有「首字母大寫,中間小寫,數字在尾部」等顯著特色,Markov破解法的命中率,幾乎可 以和暴力窮舉的命中率同樣高。
「這讓你的破解方法更具針對性,由於你對於具體的網站,有了具體的目標」,Gosney說道,當你得到了這些組合特徵,你就能順藤摸瓜直搗黃龍。
Gosney花了14小時59分鐘,完成了第三階段的破解工做,獲得了1699個密碼。有趣的是,在這個階段,前962個密碼花費了大概3個小時,但後面的737個密碼卻花費了12個小時。
黑客radix手裏有2009年,線遊戲服務商RockYou的被SQL注入攻擊後,暴出的數據庫,內含140萬個密碼明文,另外還有一份貨真價實的更大的密碼詞典,但魔術師不會輕易透露機關,PK中radix也沒有拿出這份字典。
獵殺哈希
光用RockYou的暴庫數據,radix就能取得和新手Anderson差很少的戰績,得到4900個密碼明文,大概佔總量的30%。接着,他用這份數 據,切掉後四位,加上四位隨機數字,HashCat預估須要2個小時才能跑完,這要比radix預計的長,但他跑了20分鐘之後,也獲得了2,136個密 碼明文。接着他又嘗試了1~3位數字的組合,再次獲得259個結果。
「分析,直覺,加一點點魔法」,radix說道,「提取模式,測試組合,把結果放入字典繼續嘗試,等等」,若是你知道你手裏的密文的來源網站,你就能猜到和那個網站有關的領域裏的詞彙,而後你就能搞到你想要的結果。
因而radix從已經獲得的7,295個密碼分析,發現了一些明顯的特徵,好比三分之一的密碼由8個字符組成,19%的是9個字符,16%有6個字符,69%由「字母+數字」組成,他還發現62%的密碼全是小寫字母和數字組成。
這些信息給了他繼續破解的階梯。後面,他採用「掩碼破解法」,這和以前的「混合破解法」頗爲類似,但要比暴力窮舉節約大量時間,嘗試「全小寫字母+數字」 的1~6位密碼組合,獲得341個密碼。但8位「全小寫+數字」的組合所需時間,仍是超出radix的指望,雖然複雜程度從528減到了268,就 radix手頭的機器來講,這就是6小時和1個小時的區別,但他仍是跳過了這一步。
因而radix改變了策略,使用HashCat內置的5,120種特殊規則,例如把「e」替換成「3」,刪掉每個單詞的第一個字母,或者每隔一個字母加一個數字……在38秒以內,又破了1,940個密碼。
「這就是黑客的樂趣所在」他說,「就像打獵,但你找的不是動物,而是哈希密文」。但他也認可密碼破解技術的陰暗面,遊走在道德的邊境,若是多走一步,後果嚴重。
當另外一位黑客Steube發現了一個密碼組合:「momof3g8kids」的時候,忍不住說道:「這就是用戶的密碼邏輯,但咱們並不知道這種邏輯,這給了我一些靈感,這就是咱們爲何要盯着屏幕看結果」。
「momof3g8kids」被破解的緣由是,Steube採用了「詞典聯合破解法」,他用多本詞典的種的條目組合,發現了這個密碼,其中,「momof3g」在一本1110萬的大詞典中收錄,而「8kids」在另一本較小的詞典中。
「這太酷了!」他引用了本文開頭,xkcd的那副著名的漫畫說道:「告訴「對馬電池訂書釘」,這不靈」。
PK過程當中,最讓人驚異的就是某些破獲的密碼明文,包括:「k1araj0hns0n」,「Sh1a- labe0uf」,「Apr!1221973」,「Qbesancon321」,「DG091101%」……甚至包括了像「all of the light」這樣包含空格的密碼。Steube還在結果中看到了「Philippians4:6-7」和「qeadzcwrsfxv1331」,他表 示:「若是不是用暴力窮舉,是不可能猜到這些密碼的」。
GPU通用計算出現之後,不多有黑客在攻擊中採用「彩虹表」(rainbow tables),這種過期的方,須要容量巨大的表文件。
當Reputation.com看到從本身網站被攻擊後泄露的用戶信息後表示,雖然看上去用戶的密碼加密信息不可能被破解,但咱們仍是當即通知用戶更改本身的密碼。
全部公司都應該認識到,就算用戶密碼被hash過,但發生信息泄露之後,用戶應該當即更換密碼,特別是那些在不一樣網站,卻用相同密碼的用戶。黑客一般能從被暴庫的密文中,破解60%~90%的密碼。
必須認可,採用「摻鹽」hash用戶密碼的的網站確實能減緩大量hash信息被破解速度,但「摻鹽」並不能阻擋對單個hash密文和少許密文的破解,換句話說,若是黑客針對的是具體的某個賬戶,好比銀行經理,某位名流,「摻鹽」也無能爲力。
這三位黑客的高超技藝,也指出用戶須要增強本身的密碼保護意識。許多世界500強企業,都對僱員郵件賬號,和訪問公司網絡的密碼有嚴格的規定,這大大增長了黑客攻擊的難度。
「在企業行業領域,這確實不容易」,radix說道,「當我給一家企業作密碼安全漏洞檢查的時候,那簡直了,我可能跑三天三夜也得不到一個字符。」
若是網站能夠像那些大企業同樣採起相同的安全策略,那用戶密碼就會安全不少。但這對於用戶來講,要去記住11位的隨機密碼確實有點痛苦。
黑客破解hash密文的效率,與網站得知用戶信息被泄露之後的反應,造成鮮明的對比。就在上個月,LivingSocial披露黑客攻破了他們的數據庫,暴出了了5千萬個用戶姓名,地址和密碼信息的hash內容,但網站負責人顯然低估了這所帶來的風險。
網站CEO Tim說:「雖然用戶的密碼已經被加密,並且很難被破解,咱們的預防措施也能保證用戶的數據是安全的,但咱們仍是通知你們,更新本身的網站密碼」。
事實上,幾乎沒有什麼能阻止黑客去解密hash信息。LivingSocial所用的SHA1算法,在黑客面前不堪一擊。雖然他們也宣傳用戶的hash是被「摻鹽」的,這也沒法保證用戶信息的安全。
由此可件,Intel最近上線的一個網站,宣稱能測試你的密碼強度,是多麼的不靠譜,它居然評估說「BandGek2014」須要6年時間才能被破解,好笑的是,這個密碼可能在黑客手裏,大概是被首先拿下的。問題的關鍵在與,大部分網站的密碼強度要求,正好落在黑客的能力範圍以內。
「大家已經看到了,咱們在1小時以內破出了82%的密碼,意味着有13,000人沒有選擇一個好密碼,他們總覺得本身選了一個好密碼,但正相反,那些密碼太糟糕了」。
抓緊把密碼改了吧騷年
編輯總結:
相信看完每段的人並很少,不少人都但願立刻知道結論:我該如何設置密碼才安全?小編總結:20個字符以上很安全。 至於這20多個字符是常見用語,仍是隨機字符影響都不大。而較勁腦汁想出的6-8位「字母+大小寫+符號+數字」的密碼組合真的很脆弱,很脆弱。網站保存 的用戶名和密碼都不會用明文(直接顯示出),而是用加密後的方式保存,即使這樣,幾個水平較高的黑客徹底能夠在幾小時內破解90%用戶的密碼,你開始改密 碼了嗎