安全的密碼很難記?不妨寫首小詩

安全的密碼很難記?不妨寫首小詩
夏宇〈押韻〉節錄(《備忘錄》p.110)

我們想讓你知道的是

很多人使用容易破解的密碼,而安全的密碼往往很難記住。南加洲大學的研究人員發現,把密碼轉化成韻句,相對來說較容易讓人記住,也能確保密碼強度。

雖然大家都知道密碼應該要長以及難以猜中,但仍然很多人使用如“12345”及“password”等過於簡單的密碼。原因大概是,要記住又長又隨機生成的密碼,像是”m5J&VhiKJL3$RzdQOJk”等,對一般人而言非常困難。

這是設計密碼的兩難︰易記得的密碼不安全,安全的密碼很難記。

網絡漫畫啟發密碼研究

南加州大學資計算機科學系的教授Kevin Knight及博士生Marjan Ghazvininejad,針對這個問題,嘗試找出如何設計易記又安全的密碼。他們的研究源自xkcd這幅關於密碼的漫畫︰

Image Credit: xkcd, CC BY-NC 2.5

Image Credit: xkcd, CC BY-NC 2.5

漫畫的作者Randall Munroe認為,與其使用難以讓人記住、卻容易給電腦破解的密碼,我們應該隨機找四個常見英文字作密碼,易記之餘,長度足以讓電腦難以破解。

把隨機字串轉化成字句

在Knight及Ghazvininejad的研究中,他們用電腦隨機產生一個60位長的01字串(以0及1組成的字串)作為密碼,再用不同方法轉化成一些英文字句,在實驗中讓參與者記住。他們使用的方法有以下5個︰

(1)xkcd方法︰使用一個含有32,768個英文字的字典檔,從而使得任何15位長、由0及1組成的字串,都對應着一個獨特的英文字(因為215=32,768,兩者一一對應)。再把60位長的密碼分成4個15位長的字串,轉換成4個英文字,給參與者記住。

(2)首字母方法︰把26個字母對應到16個由0、1組成的4位字串(0000, 0001, 0010…如此類推),再將60位長的密碼切成15個4位長的字串,轉換成15個字母。再用電腦搜尋出合文法的句字,使得每個字的第一個字母,可以變回原本的密碼。參與者需要記住電腦找出來的句子。

(3)所有字母方法︰把26個字母分派到0或1,然後用電腦找出合適的字句,對應60位長的密碼。參與者需要記住電腦找出來的句子。

(4)頻率方法︰把高使用頻率的英文字對應較短的01字串,然後把60位密碼轉成句子,讓參與者記住。

(5)詩︰把60位密碼轉換成2句每句8個音節的押韻句子,作者表示,這個想法跟隨古時以詩去方便背誦記憶的傳統。在解決了若干技術問題(例如單音節字的輕重音)和文學問題(電腦會產出一些很差的句子)後,產生的句子會給參與者記住。

哪個方法比較易記?

研究人員找了62名測試對象,隨機分配用第(1)、(3)、(4)及(5)項方法產生的字句給他們,要求他們記住,2天後再回去測試能否準確背誦字句。(由於在早期測試中,首字母方法的表現不佳,研究人員決定不測試這個方法。)

結果62人當中,只有44人在2天後出現,剛好一半的22人能夠完全背出密碼。以詩作記憶法的組別成功率最高(61.5%),xkcd法(記住4個隨機英文字)緊隨其後(58.3%),兩者均有約6成人能準確覆述;使用第(4)及第(3)項方法的參與者,則分別只有40%及33.3%人完全記得密碼。

有趣的是,研究人員也記錄了參與者會希望使用哪個方法記住密碼,最多人選取的是最少人成功的兩個方法,各有近4成參與者選擇,19%人會有望用詩,只有5%人會用xkcd法。

兩名作者認為,數據反映了參與者高估自己記住10至12個英文字的能力,使得他們較傾向選擇的方法,成功率反而比較低。而且使用這兩個方法的參與者,通常記得句子的意思,但無法逐字背出句子。實驗後的訪談顯示,這個現象有部份源自參與者的過份自信。

相比之下,使用xkcd法的參與者,需要主動透過想像、建立故事來記住4個無關的單字,以致表現更佳。而以韻句生成的密碼,整體來說比較短,也較容易記住。

如何改一個好密碼?

然而讀者需要注意,上述實驗的樣本數量只得44人。此外,4種方法把一個60位長的隨機01字串,是以各自的編碼方式轉換成英文字句,跟平日使用的密碼不同。例如xkcd法在日常使用中,可能會較易破解。

要是自己寫一首短詩,可能還不錯。不懂寫詩的話也不用怕,兩位作者設計了一個小工具,讓電腦替你設計一個密碼再傳給你。目前網站比較繁忙,需要較長等候時間,讀者也可以在其網站上看看已生成的密碼及詩句(僅作參考,為安全起見,不應用作密碼)。

唯一問題是,現時的網站或有長度限制,而不能使用太長的密碼。要是想用較安全的密碼,因洩露中情局監控計劃而被美國追補的斯諾登(Edward Snowden),建議大家使用詞組去構成密碼,易記之餘有足夠強度︰