class="post_content" itemprop="articleBody">
一個優秀的密碼的兩個方面分別是安全性和可用性:一個是好記,一個是不好破解。 該如何如何平衡呢?
每次互聯網上發生了重大的安全性漏洞的時候我都要考慮這個問題。 Heartbleed 漏洞發生的時候,唯一行之有效的使用者端應變措施,就是在你所有帳號的服務方打了補丁之後立刻修改密碼。 好吧,時至今日,我還在各個網站更換我的密碼,但這樣肯定不是長久之計。
我在想,總有一天駭客會黑到我的頭上,總有一天,我得花時間和精力把握所有最常用的密碼全部都換掉。
我希望你也跟我有過同樣的想法。
當然,如果你已經是一位「密碼大師」,專門使用某種密碼系統來生成和保管一些獨特的、隨機的無法破解的密碼,那麼我要向你致敬了——全世界大約有 8% 的使用者瞭解和使用這種系統,他們從來不會重複使用某個密碼。
而還有 92% 的使用者找不到一個行之有效的解決方案,每個人都想打造一個獨一無二的密碼,但結果是你的密碼或許早就存在與某些駭客的密碼詞典裡。
究竟怎樣才能夠真的創建一個完全隨機的密碼,而且還要在需要記起的時候,有效喚醒記憶呢? 我總結了一些經驗,或許有你想要知道。
不可破解的密碼
密碼越長,破解越難。 你應該考慮一個至少 12 位的密碼;
需要排除的欄位:名字、地點,一切有可能出現在詞典中的單詞;
混合起來:隨機地改變大小寫,打亂數位和拼寫,改變單詞的拼音。
遵守這三條原則,能夠讓你的密碼在面對即便是最優秀的駭客時都能顯著地提升破解的難度,即便他們的破解策略已經強大到你無法理解。
電腦安全性專家 Bruce Schneier 給我們展示了目前的密碼破解技術的發展程度:
破解者可以使用不同的詞典,比如英語單詞、名字、外文單詞、拼音模式等等作為密碼根;兩位數、日期、符號等等作為附屬。 破解過程還可以加入各種常見的字母符號替換,比如$換 s、@ 換 a、1 換 l,等等。 這種破解策略能夠很快破解全世界大約 2/3 的密碼。
Adobe 使用單一金鑰加密了所有密碼,導致整個密碼資料庫被暴力破解,大約洩露了 1.5 億使用者密碼。 讓我們來看一下洩露的部分常用密碼結果:
123456
123456789
password
admin
12345678
qwerty
1234567
111111
photoshop
123123
1234567890
000000
abc123
1234
adobe1
macromedia
azerty
iloveyou
aaaaaa
654321
如果你對於自己的密碼的安全程度感興趣,網上有不少線上的密碼偵查工具來檢測安全性,比如 OnlineDomainTools 這個網站。 這個網站能夠為大家展示密碼的安全性,通過各種破解方式大約需要的時間。
譯者用自己常用的 16 位密碼測試了一下,結果是這樣的
可以看到,我的密碼使用標準 PC 的運算能力暴力破解需要大約 310 億年破解,而通過一個中等規模僵屍網路中所有的運算能力破解,大約需要 31 萬年。
而文章作者舉出的隨機密碼:bre7E$ret98:!aZ,最快的破解速度仍需要 20 億年。
四種方法助你創建一個無法破解的密碼
文章作者舉出的隨機密碼儘管安全性極高,但使用中最大的問題在於——太難記了。 如果你坐在電腦前,完全胡亂打出一排字元,的確破解者很難破解,但你也同樣無法記住。
那麼,相對可行一點的解決方案就是用一個看起來稍微有一點隨機性的密碼,或者使用一段對於你自己有特定意義的字元,但破解軟體在詞典中從未見過的。
Bruce Schineier 方法
Bruce Schneier 早在 2008 年就提出了一種密碼思路,直到今天他仍然推薦這個思路:找一個句子,然後將它轉變為一個密碼。
這句話可以是任何一句話,可以對你個人來說好記,或者有特別的意義。 從句子中把每一個單詞找出來,然後將這些單詞縮略為一個字母,然後通過獨特的方式組合成為一段密碼。 我舉個例子:
WOO! TPwontSB——Woohoo! The Packers won the Super Bowl!
PPupmoarT@O@tgs——Please pick up more Toasty O’s at the grocery store.
1tubuupshhh...imj——I tuck button-up shirts into my jeans
W?ow?imp::ohth3r——Where oh where is my pear? Oh, there
Electrum 錢包法
如果你知道比特幣,玩過比特幣,或許你知道錢包的「密碼」——位址,是怎樣形成的。 Electrum 是一個比特幣錢包服務,能夠為使用者的比特幣錢包位址,通過雜湊機制轉換為一個 12 個單片語成的助記碼。 比如下圖這樣的:
這種助記碼也叫做 Pass Phrase(密碼短語),它為使用者提供了一種在創建密碼時的新思路:與其使用難記的隨機字串,不如用一堆沒有組合意義的詞拼出一個長句。
首先,先寫出 12 個隨機的單詞,或者哪怕寫出一個稍微有意義的句子,只要這句話用搜尋引擎搜不到即可,比如:
Pantry duck cotton ballcap tissue airplane snore oar Christmas puddle log charisma。
所以如果你把這 12 個詞扔到測試機裡,即便使用僵屍網路,也要花費大約 238378158171207 * 10 的 123 次方年才能夠破解。
PAO 法
卡耐基梅隆大學的電腦科學家建議使用一種名為「人-動作-物品」(Person-Action-Object,PAO)的密碼助記方法來創建和記憶高強度的密碼。 這個方法因為在 Joshua Foer 的著作《與愛因斯坦月球漫步》中被提到而獲得了關注。
PAO 法大概是這樣的,我舉個例子:
找一個有趣的地方的一張照片(中關村)
找一個你熟悉的人或名人的照片(劉強東)
想像這個人在這個地方做的一件事。 (劉強東在中關村賣電腦。 Liu Qiangdong sells computers in ZhongGuanCun)
賣電腦——sells computer——selcom
完成了,現在你已經有了一個隨機的 6 位密碼,視你的密碼要求決定,你可以再多設計 2-3 個場景,創建不同長度的密碼。
PAO 法的意義同樣是創建隨機密碼,但方式新穎且好用的一點在於:人們對於圖像的記憶比文字的記憶要深刻。
發音和肌肉記憶法
我已經自己研究出了一套生成隨機密碼的方法,個人也是非常喜歡這個方法。 這個方法和發音以及肌肉記憶有關:
隨便找一個密碼產生器
生成至少 20 個至少 10 位長的密碼,要至少包括數位和字母
反復流覽這些生成的密碼,找到一些和單詞類似的發音結構,找到那些勉強能夠發音出來的密碼,而且能夠大概寫成短句的,比如
drEnaba5Et(doctor enaba 5 E.T.)
BragUtheB5(brag you the V5)
將當中你認為你能夠法印出來的密碼敲到一個文字文件裡。 反復地敲,大概記下每個密碼用鍵盤打出來的速度和容易程度。 你需要找到最容易打出來的那個,因為這個最容易被你的手部肌肉熟悉,這個就是你的發音&肌肉記憶密碼。
最終,不論你使用哪種方法,你都要一個又一個地把你所有註冊了的網站和服務的密碼都換成這個。 這是你逃避不掉的過程,但在這個過程中,你會逐漸熟悉這個密碼,它既隨機,又能夠被你通過反復敲打鍵盤而記住。
還沒完! 接下來你需要做的事情
我接下來要說的事情,可能會抵消掉大部分已經看到這裡的朋友去更換密碼的熱情:沒錯,永遠不要重複使用一個密碼。
我能理解你們,創建和記住一個隨機密碼已經夠辛苦了,每一個網站都要重新創建一個密碼? 大部分人都註冊了至少 10 種線上服務,不論是社交網站、郵箱、即時通訊軟體。
對於我自己來說,由於工作原因我幾乎每天都要在一個新的網站或服務上註冊,也就是每個月我都要創建並且記住 30 個新的密碼? 總有一天我的大腦會爆掉......
擺在我面前的任務:記住每一個獨特密碼,並且每一個網站都使用一個密碼,登陸的時候能夠快速輸入,不用點忘記密碼......
這就是安全性和可用性的衝突矛盾所在。 還好,總是有一些簡單的方法可以採取的。
註冊一個密碼管理工具
最簡單的方法就是找一個密碼管理工具來管理密碼,比如 LastPass 或者 1Password。 密碼管理工具的功能無非儲存密碼,不過也有一些能夠幫你產生隨機密碼。
也就是說你唯一需要記住的密碼。 其實就是這個密碼管理工具的密碼...... 而且很多優秀的密碼管理工具能夠和瀏覽器甚至是行動裝置進行很好地融合,同時工具中存儲的資料也是經過最高級的加密處理的。
因此,在任何情況下我都會推薦你使用密碼管理工具,無論你按照我剛才所說的密碼產生方法做了,還是依然按照你自己的習慣使用密碼,密碼管理工具都是最方便的小夥伴——除了當你用了一台陌生的設備試圖登陸的時候。
專密專用,不要太過浪費記憶
你可以在重要的網站服務上使用隨機密碼,比如微博、微信、Facebook、Twitter、Gmail、支付工具;其他一些不太重要的,比如不常登陸的網購服務、訂餐軟體什麼的,用你常用的簡單密碼就好。
當然,有人破解了你的簡單密碼,然後在百度上發你購買的情趣娃娃的記錄就不太好了...... 所以,因地制宜吧。
因地制宜
所以,你可以仍然對於每個註冊的網站服務都使用高隨機性的獨特密碼,然後記住那些常用的網站的密碼,把其他的密碼留給密碼管理工具。