你以為你以為的好密碼就是好密碼?

TP_funny發表於2015-02-11
長度得 8 位以上;需含大小寫字母、數字及符號;不要用任何出現在字典裡面的詞,包括部分替換(如用 p@ssword 或 fai1 也不好)。

只要你的密碼滿足了這些標準,基本上網站都會獎勵你一個綠色的強密碼標示—好密碼。但是實際上你和網站都錯了。為什麼?原因首先要從密碼是如何被破解講起。


黑客如何破解密碼
網站是通過比對輸入的密碼與資料庫中的密碼來驗證使用者的。但是一般這些密碼都不是以明文的方式存放,而是用雜湊演算法對儲存的密碼進行單向加密,輸出的結果是無法逆向工程出來的。比方說“123456”經過 SHA-1 雜湊演算法得出的結果是 7110eda4d09e062aa5e4a390b0a572ac0d2c0220,通過這個結果是無法知道原始密碼的。

然後使用者登入時輸入的密碼也會被利用同樣的雜湊演算法計算出雜湊值,再與存放在資料庫中的正確密碼雜湊值比對,一致則說明輸入密碼正確。

拿到雜湊密碼檔案的黑客可利用暴力破解法比對哪個賬號與哪個密碼相關。他們可以從簡單一點的密碼開始,這些密碼可以從之前的攻擊字典庫查詢,也可以從一般的字典上查詢,然後進行單片語合。

如果密碼長度較短,採用的字符集僅僅是大小寫的話,破解的速度會快很多。黑客可以用彩虹表(預先計算的雜湊值)來加速暴力破解的速度。按理來說上述採用複雜不常見的密碼應該是不錯的選擇(比方說像 Spooning1!,因為生僻,很難被列入彩虹表)。但實際上並非如此。

因為現在的計算能力已經非常強大,用普通計算機結合顯示卡陣列的 GPU 能力,暴力破解法每秒鐘可處理 10 億到千億用 SHA-1 演算法加密的密碼。不過儘管如此,如果密碼有 11、12 位或以上,並且完全是在所有可能的字元中隨機生成出來的話,哪怕有這麼強大的計算能力暴力破解法也是很難破解的。

講故事,設密碼
但問題是大部分人都不是用隨機生成的密碼的。當然,大家不用隨機密碼也是有原因的,因為隨機密碼難記(大腦機制就這樣,很難記住隨機字母數字符號組合)。可麻煩就麻煩在這裡,因為那些“好密碼”規則已經被黑客熟知。Markus Jakobsson指出,其實這就是密碼設定的安全性與可用性的矛盾。

在研究中 Jakobsson 發現,有人因為喜歡蘋果,所以密碼就用了“apples”,但是網站要求有大寫字母,所以他就把第一個字母改成了 A,可能網站說這樣不安全,還必須有數字和字母,通常使用者就會選擇滿足規則的最簡單方式,在後面加個 1 再加個!—“Apples1!”。按照前面密碼的設定規則,“Apples1!”無疑是一個好密碼(至少跟那些糟糕的密碼相比)。

但是黑客在破解時往往也會如法炮製,利用字典加上個別字母替換,以及上述常見的數字、符號擴充套件來縮短破解時間(如利用馬爾可夫鏈技術來預測)。2013 年中三位安全專家就利用了某一洩露的資料庫進行過測試,其 1 小時成功率為 60%,而 20 小時成功率更是達到了 90%。

作為替代,Jakobsson 建議使用者採用所謂的“快速寫詞”法來設定密碼,即用幾個單詞來組織成一個故事,從而構成密碼組合。比方說,跑步時踩到一隻松鼠,可以快速記憶為“running forest squirrel”。這種辦法因為有故事情節所以方便記憶,但是由於所用字元數通常超過了 10 到 12 個,暴力破解法是很難破解的,除非破解者採用單片語合等其他技術。但是單片語合的可能性近乎無限,對於暴力破解來說差不多是無解的。

話雖如此,在設定密碼時故事也不能亂講。研究者發現,用“快速密碼”法設定的密碼的安全性取決於所用組合在語料庫中出現的概率。比方說,常見的“I love you honey”在微軟的語料庫 Web N-gram Services 中的出現頻率為 2/100000000,相對而言這屬於很糟糕的密碼。而講述工作路上不小心踩扁了一隻青蛙的“frog work flat”的出現機率卻只有百萬的 3 次方份之一,強度非常之高。所以,要想取好密碼,關鍵得講好你的故事。

不過密碼專家認為,相對於僅僅在密碼設定上下功夫,更好的辦法是廣泛採用雙因子認證的方式來確保安全,這樣不安全的密碼就不會成為抵禦攻擊的唯一屏障了。

原文:http://www.wired.com/2012/10/passwords-and-hackers-security-and-practicality/
譯文:http://www.36kr.com/p/219573.html譯者: boxi
相關閱讀
評論(2)

相關文章