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

>>>  技術話題—商業文明的嶄新時代  >>> 簡體     傳統


什么是好密碼?幾乎每一個網站都給出了差不多一樣的標準:


長度得 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 次方份之一,強度非常之高。所以,要想取好密碼,關鍵得講好你的故事。


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


[本文編譯自:wired.com]


--------



36氪 2015-08-23 08:45:10

[新一篇] 程序猿的故事,看罷不禁捂緊胸口。。。

[舊一篇] 互聯網圈辦公室戀情那些事
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表