如何記住超複雜密碼

類別: 新奇

如何記住超複雜密碼

要對隱私的資料進行加密並不是那麼難:iPhone手機已經能加密大量個人資訊,Mac和Windows 8.1的電腦硬碟已經能自動鎖定,甚至連Facebook也靠開放共享發了一筆財。但是如果你不知道怎麼想出一個安全度高的密碼,這些技術還是不能提供足夠的保護。

口令和密碼一樣,但是它比密碼更長、更安全。從本質上看,它是個你能記住的加密金鑰。一旦你開始關心起自己的隱私想要養成提高電腦安全性的習慣,你會碰到的第一個問題就是建立密碼,雖然有密碼不一定等於完全安全,但是沒有密碼你的資訊就一定不會安全。

比如,當你給一個硬碟驅動器、U盤或是計算機加密的時候,磁碟加密和口令一樣重要。一旦你使用網頁瀏覽器的密碼資料庫或密碼保護功能,你會想要弄一個更強大的主密碼來保護這些密碼。而如果你想用PGP加密電子郵件,你要用口令來保護私鑰。Edward Snowden給Laura Poitras寫的第一封郵件裡寫道:“請確認沒有別人複製過你的私人金鑰,它的功能可以相當於口令。哪怕你的對手可以在一秒鐘裡猜一萬億組密碼。”

在這片文章中,我將列出一個簡單的方法來記住一些容易記住但是非常安全的口令。事實證明,一個人想一個好密碼是非常困難的,如果你的對手真的能夠在一秒內猜一萬億種,你很有可能在密碼上讓他鑽空子。如果使用完全隨機的字元序列可能是非常安全的,但記起來卻非常麻煩。而且,說實話很浪費腦力。

但幸運的是,易用性與安全性之間的平衡關係並不是越容易越不安全。有一個辦法可以生成既利於人們記憶又幾乎不可能被強大的敵人猜到的密碼。這個方法被稱為Diceware隨機密碼,這串密碼由很簡單的數字組成。

你取密碼的方式也能不很明智

人們經常從流行文化(一首歌、一部電影或者一本書)中間稍微拆開重組或改變一點點、新增標點符號或是一句話每個字的第一個字母來做密碼,這些口令似乎安全度很高、很難猜到,但是不要顧及那些致力於猜口令的人的能力。

加入你的對手找來了所有歌曲的歌詞,每個電影、電視劇的指令碼,每本有電子書的書籍txt,維基百科每一頁的文字,每一種語言版本,試想一下,如果他們把這些作為資料庫組合密碼,你的密碼還能有用嗎?

如果你只是想選一個好密碼,那你很有可能想出不足以對抗你的敵人的密碼,例如“To be or not to be/ THAT is the Question?”我敢保證你不是第一個改動莎士比亞名句做密碼的人,攻擊你的黑客應該也知道這一點。

原因是莎士比亞的名句缺少“熵值”,你可以把熵值理解為隨機性,是密碼學的重要概念。事實證明,人是模式化物種,沒辦法在真正隨機的情況下做任何事。即使你不用隱喻而是直接在腦袋裡構造一個短語,你的短語還是離隨機很遠因為語言是可預測的。曾經有個研究做過這方面調查,發現使用者無法從真正隨機的字詞裡面選出短句,而會受自然語言中一個可能出現過的片語影響。所以不管使用者如何自行選擇,這個搭配出來的口令都沒你想像的熵值高。你的大腦傾向於繼續使用常用成語和語法,儘量地減少隨意性。比如,參加調查的人中有非常大的比例會選擇用副詞和動詞搭配,或是把“聚會/節日”和“灌腸”這樣會日常生活中會聯絡在一起的詞放在一起。來源於流行文化、你的真實生活或是任何從你腦海中直接蹦出來的口令,比你想象的隨機性要弱得多。

# 這有個很有創意的資訊加密方式,用0和1傳遞資訊

用Diceware設定一個安全口令

現在你如果意識到自己的舊口令沒想象的安全,就來準備學習Diceware技術。

第一步,搞一本Diceware字詞表[PDF]的影印本,包含7776個英語單詞。拿到以後你會發現每個字元都是五位數字,每一個數字都在1~6之間。下面是擷取的一小部分:

24456 eo
24461 ep
24462 epa
24463 epic
24464 epoch

接下來,拿一個六面的骰子,實體的一般骰子,然後隨便丟幾次,記下數字。你需要連丟五次才能得出你的密碼的第一個字。接下來你要做的就是生成資訊熵再提取真正隨機的、來自自然的東西變成數字。比如你第一次擲骰子出來的第一個數字是2,然後是4、4、6、3,那你看看Diceware字表裡對應的短語是“epic”,那就是你的口令開頭。然後又重複擲骰子,如果你害怕國家安全域性有一天可能要破解你的密碼調取你的私人資訊,你可以擲出7個字的骰子。

通過Diceware你完成了你的口令設計(比如cap liz donna demon self、bang vivo thread duct knob train)等等毫無邏輯關係的單詞組合,想要讓自己的密碼越強可以多丟幾次多設定幾個單詞。

Diceware口令的安全性又多強?

Diceware密碼強度取決於長度如果你在7776個詞裡面只隨機丟出了一個,那麼黑客第一次嘗試破解就猜出的概率是1/7776,猜出你的密碼所需嘗試次數最少1次最多7776次,平均3888次。

但是如果你的密碼有兩個詞,相應的口令字表詞數也要成倍增加。猜對第一個詞的概率還是1/7776,但第二個詞的猜測還需要從7776箇中間一個個試,並且黑客在猜出完整密碼之前不能確定自己猜的第一個詞是不是正確的。這意味著,他嘗試的次數最少是77762次,最多達到60466176。平均下來,一個2個詞的口令有可能在3千萬次嘗試後被破解。而相應的,如果擲骰子25次,得出5位詞的口令,那麼就有77765種待選口令,平均需要嘗試14(後面18個0)次才能破解出來。

一個密碼(或是加密金鑰等等保護資訊的密碼)的不確定性由熵值衡量,你的密碼強度可以由熵值包含多少位數來確定,Diceware字表裡每一個詞都含12.92位熵值,所以如果你選擇7個詞,那你的口令安全性就是90.5熵值。換句話說,如果黑客知道你用的是7個詞的Diceware隨機密碼,他們會從Diceware字表裡隨機挑選7個詞出來組合嘗試破解密碼,他們一次性成功的機率是1/1,719,070,799,748,422,591,028,658,176。就算每秒能試一萬億個密碼,平均下來也需要花兩千七百萬年破解這個密碼。

看起來這個密碼一定要很難記才會這麼難猜,但實際上一個類似“bolt vat frisky fob land hazy rigid”的密碼組合並不南極,大多數人都能記住。比起“d07;oj7MgLz’%v”這樣的隨機密碼,7位詞的Diceware密碼不僅安全性高,而且明顯也更好記。

相對的,一個5位詞口令可能平均只需要6個月就能被破解,而6位需要3505年,嘗的頻率為每秒一萬億個。請牢記摩爾定律,計算機正變得越來越強大,可能不久以後每秒一萬次的速度就會變成龜速,所以還是需要給你的安全口令多留許多空間。

有了這樣一個系統,你完全不用擔心選出來這個密碼是不是很大眾化,甚至字表中詞的位數也沒有多少影響,2個字母的單詞和6個字母組成的單詞安全性是一樣的。唯一有影響的就是單詞的多少,在這個字表裡的每個單詞都是獨一無二的。用Diceware字表設的密碼被猜中的概率比你用一些現存事實設的密碼要小得多,有些甚至永遠都不會被人猜中。

我是不是非用真實的骰子不可?

這個說來話長,但長話短說的答案是:使用實質存在的骰子可以保證不會有一絲差錯,但是這個過程又費時間又無聊,一般來說用電腦生成的隨機5位數字已經夠用了。

不過遺憾的是,沒有很貼心的幫助生成Diceware口令的軟體,只有GitHub上有各種Diceware的命令列指令供高階使用者檢視。

怎樣記住你的口令

你生成了密碼的下一步就是把它記住。

我(原作者)建議你把新密碼寫在紙上,隨身帶著它,直到你不再需要為止。每次輸入密碼的時候都先試試能不能靠記憶把它打出來,不過如果記不住可以看看紙條。如果你一天打它幾次,那你應該不到兩三天就能把它記住不再需要紙條,這時你就要把它銷燬掉。輸入密碼時要間隔重複的辦法鞏固記憶。

現在你知道了口令,接下來是不需要用的情況

Diceware密碼在給電腦某些磁碟、硬碟驅動器、PGP祕鑰或密碼庫解密方面很有用,但你在登陸網站或是其他網上的東西時沒有必要用這麼高階的加密方式。因為你的高熵值密碼獲得的利益很少,黑客不會在伺服器與網路通訊時還以每秒1萬億次的速度猜密碼。在某些情況下,黑客會通過遠端伺服器直接在你輸入密碼併發送的同時獲取你的密碼,不管你的密碼是強還是弱。

在登入到網站或其他伺服器的時候用密碼資料庫登,我個人比較喜歡KeePassX,因為免費、開源、多平臺而且資訊也不儲存在雲端。然後把所有密碼放在裡面,再用Diceware的方法生成密碼鎖住。每次登入網站時都用密碼生成器隨機生成並儲存不同的密碼。

我們如何用Diceware保護資源

The Intercept執行的是SecureDrop伺服器,它是一個開源的匿名資訊提交系統,在獲取、提交匿名資源時更簡單、安全。

一旦有新資源訪問SecureDrop網站,他們都會擁有7個隨機單片語成的代名,提交完資訊和檔案之後,還能用這個代名重新登入進來檢視資源反饋。

在這種模式下,代名扮演著資源的加密口令角色,並且是以Diceware隨機生成的,而且還有隨機數字加密生成器,不需要骰子。SecureDrop的字典裡只有6800字詞(開發者從原字表中刪除了一些粗俗無禮的短語),於是每個詞包含的熵值大概變成了12.73。不過這個強度也足以讓任何人輕而易舉地猜中哪個資源對應的代名,除非他們有大量計算資源和幾百萬年的時間。

這些簡單、隨機的口令能像保護間諜一樣地保護好你的膝上型電腦。不過很遺憾,我們生活在一個普通市民的資訊都需要保護的世界裡,幸好有Diceware系統能夠讓我們免受CIA的煩擾。

[小笨 via FirstLook]

如何記住超複雜密碼原文請看這裡

推薦文章