
關(guān)于密碼有很多已經(jīng)知道。大部分容易破解,并且短和簡(jiǎn)單。但是一個(gè)人在心里上為什么選擇它做密碼卻很少人知道。我們分析了1000w個(gè)人(從CEO到科學(xué)家)來(lái)找出密碼好記和難以猜測(cè)其中的奧秘。
1000w小窗口
誰(shuí)是你第一個(gè)想到的超級(jí)英雄?選一個(gè)1到10之間的數(shù)字?最后選一個(gè)明亮的色彩。快速選擇并且把這三個(gè)字符連接起來(lái)。
下面是猜測(cè)時(shí)間。
它是不是Superman7red?還是Batman3Orange?如果我們猜中了其中,那么原因就是人類是可預(yù)測(cè)的。這也是密碼遇到的問(wèn)題。事實(shí)是,我們通過(guò)一些不常見(jiàn)的問(wèn)題增強(qiáng)了密碼的強(qiáng)度,但是還是比不上工業(yè)級(jí)的針對(duì)密碼破解的軟件。舉例來(lái)說(shuō),HashCat每秒鐘可以進(jìn)行300,000次猜解,因此盡管你使用了“Hawkeye6yellow”這樣的密碼,也會(huì)在不久之后被破解。
密碼通常情況下都是單詞和數(shù)字的組合,因此容易被猜解。我們希望探索這個(gè),并且找出人們的思維規(guī)律。
兩套數(shù)據(jù)集,多重警示
第一個(gè)數(shù)據(jù)集是從俄羅斯一個(gè)比特幣交易平臺(tái)泄漏出來(lái)的500w賬號(hào)密碼。他們大部分是Gmail賬號(hào)(和一些Yandex.ru賬號(hào))。大部分是老的 Gmail賬號(hào)(不再活躍)或者是密碼不正確的Gmail賬號(hào)。不管怎樣,WordPress重置了10w賬號(hào),并聲稱還有60w賬號(hào)存在風(fēng)險(xiǎn)。這個(gè)脫下來(lái)的褲子看上去是從多個(gè)來(lái)源,多種方法收集得來(lái)的。從學(xué)術(shù)角度來(lái)說(shuō),這個(gè)并不影響。這些密碼全部從Gmail賬號(hào)中選出,因?yàn)槠渲?8%都不再使用,我們認(rèn)為可以安全地使用它們。
我們把這些數(shù)據(jù)稱為“Gmail褲子”,為了解答人口統(tǒng)計(jì)學(xué)的問(wèn)題。我們從這5百萬(wàn)數(shù)據(jù)中提取信息。比如如果有一個(gè)郵件地址是 John.Smith1984@gmail.com,就會(huì)被標(biāo)記為一個(gè)出生在1984年的男性。這種方式需要一定的技巧,但這里我們不會(huì)涉及過(guò)多的技術(shù)細(xì)節(jié)。最終,我們獲得了485,000個(gè)性別信息,220,000年齡信息。在這里,就出現(xiàn)了一個(gè)問(wèn)題,“這些使用生日和姓的用戶跟不使用這些信息的用戶會(huì)不會(huì)選擇使用不同的密碼?”。從直覺(jué)上來(lái)講存在這種可能。我們會(huì)在之后討論。
下面是出生年份和性別的統(tǒng)計(jì)圖。

第二個(gè)數(shù)據(jù)集,也是產(chǎn)出最多結(jié)果的數(shù)據(jù)集,是由安全顧問(wèn)Mark Burnett放出(xato.net)。它包含1000w密碼,多年來(lái)從互聯(lián)網(wǎng)的各個(gè)角落收集而來(lái)。Mark收集了公開(kāi)的,泄漏的和開(kāi)放的列表,從上千個(gè)源頭組成了這個(gè)完整的列表。
我們不會(huì)花過(guò)多的時(shí)間在統(tǒng)計(jì)學(xué)上。我們先來(lái)看一下使用最多的50個(gè)密碼,接著我們?cè)龠M(jìn)入更有趣的領(lǐng)域。


將近有420,000(8.4%)的賬號(hào)在結(jié)尾使用了0~99之間的一個(gè)數(shù)字。其中五分之一的用戶使用1作為結(jié)尾。也許他們認(rèn)為這是最容易記住的數(shù)字。或者他們注冊(cè)的站點(diǎn)要求他們至少使用一位數(shù)字。其他最常用的數(shù)字為2,3,12,7等。因此你要求一個(gè)人快速說(shuō)出1~10之間的數(shù)字,他很有可能說(shuō)出7或者 3.
分析密碼的熵
簡(jiǎn)單來(lái)說(shuō),密碼的熵越高,密碼強(qiáng)度越高。熵隨著密碼長(zhǎng)度的增長(zhǎng)和字符變化的頻率而增長(zhǎng)。然而字符變化對(duì)熵的貢獻(xiàn)不大,密碼的長(zhǎng)度成為熵的主要因素。

“Gmail褲”中的平均密碼長(zhǎng)度為8,男性的密碼長(zhǎng)度跟女性的密碼長(zhǎng)度沒(méi)有明顯的區(qū)別。
那么熵呢?熵是反映密碼強(qiáng)度的一個(gè)指標(biāo)。
“Gmail褲”的平均熵為21.6。這個(gè)值很抽象難以理解。上面的圖片中可以看出男女的密碼長(zhǎng)度沒(méi)有多少區(qū)別。下面的圖可以看出有很多密碼接近熵0,有少部分大于60。

這里有很多方法可以計(jì)算熵,很多方法是很基本的。最常見(jiàn)的假設(shè)就是,密碼只可能通過(guò)猜解所有字符組合獲得。而一個(gè)聰明的方法是通過(guò)人類的常用模式。基于模式去嘗試密碼可以明顯地提升破解的速度。Dan Wheeler發(fā)明了一個(gè)熵評(píng)估器,叫做Zxcvbn。
可以在此獲得細(xì)節(jié)https://blogs.dropbox.com/tech/2012/04/zxcvbn-realistic-password-strength-estimation/
簡(jiǎn)單來(lái)說(shuō),它能夠“知曉”人們?cè)趺丛跓o(wú)意識(shí)中在密碼中包含了特定的模式,而一個(gè)好的密碼破解器會(huì)發(fā)現(xiàn)其中的模式。舉例來(lái)說(shuō),”password”在樸素的評(píng)估下,熵為37.6。然而Zxcvbn會(huì)給出熵0(最低的熵)。
他還會(huì)給一些看上去是隨機(jī)的密碼一個(gè)很低的熵。“qaz2wsx”(第30常見(jiàn)的密碼),看上去是隨機(jī)的吧?事實(shí)上,他是鍵盤(pán)上的模式。Zxcvbn也是按這個(gè)模式命名的。
我們從1000w密碼中提取出來(lái)20個(gè)最常見(jiàn)的鍵盤(pán)模式。我們排除了常見(jiàn)數(shù)字組合,例如123456。

以上是20種常見(jiàn)的鍵盤(pán)模式。前19種都很容易看出,但是除了最后一個(gè)adgjmptw。你可以猜出為什么嗎?
盡管我們?cè)陂_(kāi)始非常困惑。我們沒(méi)找到這種鍵盤(pán)布局跟前19種的相似之處。但它確實(shí)排在20位。
“我在密碼中加入數(shù)字來(lái)變得復(fù)雜”
也許你還沒(méi)發(fā)現(xiàn),它其實(shí)是智能手機(jī)上從2按到9。

這個(gè)模式也令我們產(chǎn)生了一個(gè)有趣的問(wèn)題。人們?cè)谟|摸設(shè)備上輸入密碼是怎樣的。
當(dāng)然,鍵盤(pán)模式對(duì)于好的密碼破解器是不成問(wèn)題的。passpat http://digi.ninja/projects/passpat.php 使用了多個(gè)鍵盤(pán)布局和一個(gè)算法來(lái)計(jì)算密碼可能是從哪種鍵盤(pán)輸入的。市面上也存在通過(guò)一個(gè)鍵盤(pán)布局去省城數(shù)百萬(wàn)的鍵盤(pán)輸入模式,然后使用他們作為一個(gè)列表去破解。
大部分人不使用鍵盤(pán)模式,他們還是使用老式并且不安全的方法來(lái)選擇一個(gè)隨機(jī)詞組。

現(xiàn)在你可以知道為什么我們?cè)陂_(kāi)頭選擇了Batman和Superman,他們是最常用的超級(jí)英雄名稱。值得一提的是上面的列表很難知道人們?cè)谑褂脮r(shí)的語(yǔ)義。舉例來(lái)說(shuō),在顏色列表中Black在一些情況下可能指人名Black。
盡管Love不是一個(gè)有趣的詞。它卻經(jīng)常在密碼中出現(xiàn),我們發(fā)現(xiàn)一百萬(wàn)密碼中就出現(xiàn)了4萬(wàn)次。在Gmail賬號(hào)密碼中也出現(xiàn)很多。
我們計(jì)算了Love這個(gè)密碼出現(xiàn)的頻率,我們可以推測(cè)出,80后和90后比老一輩人更喜歡使用這個(gè)詞。
在 Gmail數(shù)據(jù)中,1.4%的女性密碼中有l(wèi)ove,而男性只占了0.7%。換句話來(lái)說(shuō),女性使用love這個(gè)詞的次數(shù)是男性的兩倍。這個(gè)發(fā)現(xiàn)符合了另外一個(gè)最近的研究。一個(gè)在安大略理工大學(xué)的研究顯示ilove[男性名字]是ilove[女性名字]的四倍;iloveyou是iloveme的十倍;<3是第二常見(jiàn)的符號(hào)與數(shù)字組合。

有錢和有權(quán)人的密碼
Mark Burnett發(fā)現(xiàn)他的網(wǎng)站上的褲子出現(xiàn)得十分頻繁。他通過(guò)爬蟲(chóng)抓取新的褲子組成1000萬(wàn)的密碼集。然而,攻擊高價(jià)值目標(biāo)的名人或者企業(yè)的事件更令人擔(dān)心。就像Jennifer Lawrence et al. 和 Sony的事件。我們也好奇這些Gmail數(shù)據(jù)中能發(fā)現(xiàn)多少高價(jià)值的目標(biāo)。我們通過(guò)Full Contact的API,它可以通過(guò)幾個(gè)主要的社交網(wǎng)絡(luò)API(Twitter, LinkedIn,Google+)來(lái)匹配郵件地址列表,然后輸出他們的年齡,性別和職位。
在78,000個(gè)匹配中,我們找到上百個(gè)高價(jià)值的目標(biāo)。下面我們選出了40個(gè)最著名的人,我們來(lái)看看他們的密碼。

值得注意的是,上面有很多密碼是多么容易被破解。最強(qiáng)的密碼是github的開(kāi)發(fā)者(ns8vfpobzmx098bf4coj)熵達(dá)到了96。看上去完全隨機(jī),可能是隨機(jī)密碼生成器生成的。最弱的密碼是IBM經(jīng)理(123456),它可能是為了注冊(cè)一次性使用的密碼。其他的密碼都在復(fù)雜和好記之間找到一個(gè)平衡點(diǎn)。說(shuō)明這些用戶關(guān)心他們賬號(hào)的安全。
以一個(gè)杰出人士結(jié)尾:美國(guó)國(guó)務(wù)院的處長(zhǎng)的密碼是linco1n(Lincoln)。赫芬頓郵報(bào)的編輯也使用了類似規(guī)律選擇用Mulder (X檔案)的trustno1作為密碼。總的來(lái)說(shuō),這些高價(jià)值的人群跟其他人使用密碼的方式相同: 使用姓名,出生年月,簡(jiǎn)單詞組和一些數(shù)字來(lái)組成密碼。我們認(rèn)為這是合理的。甚至奧巴馬總理最近都承認(rèn)使用過(guò)1234567作為密碼。

