解密千萬(wàn)密碼:透過(guò)密碼看人性
對(duì)于密碼,我們已經(jīng)知道了不少。比如,多數(shù)密碼短小、簡(jiǎn)單、且容易破解。但我們對(duì)一個(gè)人選擇某個(gè)密碼的心理原因卻所知甚少。在本文中,我們分析了包括企業(yè)CEO、科學(xué)家在內(nèi)的1000萬(wàn)人們的密碼選擇,來(lái)看看密碼背后所揭示的意義。
1000萬(wàn)個(gè)小窗口
你腦海中浮現(xiàn)出的第一個(gè)超級(jí)英雄是誰(shuí)?從1到10你首先會(huì)想到哪個(gè)數(shù)字?最后一個(gè)問(wèn)題,你會(huì)選擇哪種鮮艷的色彩?快速想出答案,然后將它們組合成一個(gè)短語(yǔ)。
現(xiàn)在,輪到我們猜測(cè)這個(gè)密碼了。
是Superman7red?不對(duì)不對(duì)。那是Batman30range?如果我們都能正確地猜到每個(gè)問(wèn)題的答案,那是因?yàn)槿祟愂强深A(yù)知的。而這恰恰就是密碼存在的問(wèn)題。我們?cè)谶x擇這些密碼時(shí)確實(shí)很小心謹(jǐn)慎,但跟已成產(chǎn)業(yè)規(guī)模且特意構(gòu)建的密碼破解軟件相比,未免小巫見(jiàn)大巫。比如HashCat可以在一秒時(shí)間內(nèi)猜測(cè)30萬(wàn)次密碼(次數(shù)取決于哈希方式),因此即使你的密碼是Hawkeye6yellow,也遲早會(huì)被破解。
密碼之所以經(jīng)常會(huì)被猜中,是因?yàn)槲覀兒芏嗳藭?huì)想到顯而易見(jiàn)的詞語(yǔ)、數(shù)字并將它們簡(jiǎn)單組合。本文探索了這個(gè)概念,并借此了解當(dāng)人們以特定的順序組合詞語(yǔ)、數(shù)字及(希望如此)符號(hào)時(shí),大腦是如何運(yùn)作的。
我們首先選擇了兩個(gè)數(shù)據(jù)集進(jìn)行分析。
兩個(gè)數(shù)據(jù)集,幾個(gè)說(shuō)明
第一個(gè)數(shù)據(jù)集我們稱之為“Gmaildump”,它是2014年9月出現(xiàn)在俄羅斯比特幣論壇上的500萬(wàn)個(gè)憑證。這些憑證似乎是Gmail賬戶(有一些是Yandex.ru),但經(jīng)過(guò)進(jìn)一步的調(diào)查發(fā)現(xiàn),雖然其中的郵件地址多為有效的Gmail地址,但大多數(shù)明文密碼或者老舊不再被使用或者密碼跟郵箱地址不匹配。但WordPress.com重設(shè)了10萬(wàn)個(gè)賬戶并表示還有60萬(wàn)個(gè)賬戶存在風(fēng)險(xiǎn)。盡管這些數(shù)據(jù)是在幾年時(shí)間里通過(guò)多種方式從多個(gè)地方收集起來(lái)的密碼,但對(duì)于我們的學(xué)術(shù)研究來(lái)講,絲毫沒(méi)有問(wèn)題。而且這些密碼曾被Gmail賬戶擁有者使用過(guò),即使不是他們自己在使用,并且鑒于98%的密碼不再有效,我們可以安全地一探究竟。
我們利用這些數(shù)據(jù)集回答一些人口統(tǒng)計(jì)學(xué)的問(wèn)題(尤其是與密碼選擇有關(guān)的性別及年齡問(wèn)題)。我們從500萬(wàn)個(gè)郵件地址中提取出了包含名字及出生日期的地址。比如,如果郵件地址是John.Smith1984@gmail.com,那么我們就會(huì)解讀為男性,出生于1984年。我們從500萬(wàn)個(gè)地址中解讀出了48.5萬(wàn)個(gè)性別、22萬(wàn)個(gè)年齡。這時(shí)候,我們就應(yīng)該想一個(gè)問(wèn)題,“這些將名字跟出生日期包含在郵件地址中的人會(huì)選擇跟別人不同的密碼嗎?”因?yàn)閺睦碚撋蟻?lái)講答案有可能是肯定的。我們稍后分析。
如下,我們按照出生日期跟性別對(duì)用戶進(jìn)行了分類。
22萬(wàn)被攻陷憑證(按出生日期分類)
48.5萬(wàn)被攻陷憑證(按性別分類)
Gmail dump顯示,或者至少是將名字跟/或出生日期包含在郵件地址中的人群多為80后男性。這可能是因?yàn)檫@些被攻陷網(wǎng)站的人口概況導(dǎo)致的。在這個(gè)dump中查找包含“+”標(biāo)志(Gmail用戶用來(lái)追蹤站點(diǎn)對(duì)郵件地址的用途)的地址后發(fā)現(xiàn),大量憑證來(lái)自File Dropper、eHarmony、以及Friendster。
我們的多數(shù)結(jié)果是通過(guò)第二個(gè)數(shù)據(jù)集收集到的,詳情可參見(jiàn)安全咨詢Mark Burnett的網(wǎng)站。這個(gè)數(shù)據(jù)集由100萬(wàn)個(gè)密碼組成,它們是在幾年的時(shí)間里從網(wǎng)絡(luò)中搜刮到的。
我們不會(huì)花費(fèi)太長(zhǎng)時(shí)間來(lái)說(shuō)明這個(gè)數(shù)據(jù)集的基礎(chǔ)概念,因?yàn)橹耙延胁簧偃俗鲞^(guò)很多次這種工作。讓我們看一下這1000萬(wàn)個(gè)數(shù)據(jù)中最為常用的50種密碼。然后我們?cè)儆懻撘恍└佑腥さ臇|西。#p#
50種最常用的密碼
我們可以發(fā)現(xiàn),或者早就知道,這些最為常見(jiàn)的密碼都是網(wǎng)站要求人們創(chuàng)建密碼時(shí),瞬間映入腦海的選擇。這些密碼極其容易記住而且對(duì)于字典攻擊來(lái)說(shuō)簡(jiǎn)直是小菜一碟。不過(guò),現(xiàn)在使用這種密碼的人比之前要少。用戶有點(diǎn)意識(shí)到如何設(shè)置強(qiáng)密碼的問(wèn)題了。比如在文本后添加一兩個(gè)數(shù)字就會(huì)讓強(qiáng)度提高,是不是?
“我會(huì)添加一個(gè)數(shù)字讓密碼更安全。”
42萬(wàn)密碼末尾中最常用的數(shù)字(0-99)
密碼末尾最常用的數(shù)字(0-99)
密碼末尾最不常用的數(shù)字(0-99)
在這1000萬(wàn)個(gè)密碼中,幾乎有50萬(wàn)密碼(或42萬(wàn)密碼,8.4%)以0-99的數(shù)字結(jié)尾。其中超過(guò)1/5的人選擇了1?;蛟S他們認(rèn)為1最容易記住。也可能是因?yàn)榫W(wǎng)站要求在已選詞語(yǔ)之后添加一個(gè)數(shù)字做出的即時(shí)反應(yīng)。其他最常見(jiàn)的數(shù)字是2、3、12(這里的“12”是1跟2的組合,而不是單獨(dú)一個(gè)數(shù)字)、7等等。有研究顯示,當(dāng)有人讓你說(shuō)出1到10中的一個(gè)數(shù)字時(shí),多數(shù)人會(huì)說(shuō)3跟7,而且人們似乎對(duì)質(zhì)數(shù)的選擇存在偏好。這可能行得通。但也有可能人們是為了用這些個(gè)位數(shù)替代曾使用過(guò)且還想繼續(xù)使用的密碼,這樣就不會(huì)“攻陷”在其他網(wǎng)站上的憑證了。
盡管存在爭(zhēng)議,但你可以想想,一個(gè)密碼破解高手可以輕易將一個(gè)數(shù)字或幾千個(gè)數(shù)字添加到字典里或者蠻力破解方式中。所以,一個(gè)密碼的強(qiáng)度就取決于它的熵。#p#
評(píng)估密碼熵
簡(jiǎn)單來(lái)說(shuō),密碼的熵越大,強(qiáng)度就越大。熵會(huì)隨著密碼長(zhǎng)度及字符變化而增加。然而,雖然字符變化確實(shí)會(huì)影響熵的分值(以及密碼被猜到的難度),但密碼的長(zhǎng)度更為重要。這是因?yàn)殡S著密碼長(zhǎng)度增加,數(shù)字的組合方式會(huì)呈指數(shù)式增長(zhǎng),因此也就難以被猜到。
48.5萬(wàn)密碼長(zhǎng)度的分類
Gmail dump中的密碼平均長(zhǎng)度為8個(gè)字符(如password),而且男性與女性在密碼平均長(zhǎng)度的選擇上沒(méi)有太大差別。
48.5萬(wàn)個(gè)男性跟女性密碼的熵
從密碼熵的角度來(lái)講,Gmaildump的密碼平均熵為21.6。而男性跟女性在這一點(diǎn)上的區(qū)別也非常微小。但熵為0的密碼要多于熵超過(guò)60的密碼。
這些示例密碼以一兩個(gè)不同字符區(qū)分作為熵的范圍。一般來(lái)講,熵會(huì)隨著長(zhǎng)度的變化而變化,不過(guò)添加數(shù)字、大寫(xiě)字母及符號(hào)也會(huì)增加字符的范圍。
那么,熵是如何計(jì)算出來(lái)的?方法很多,而且效果各異。不過(guò)最為基本的假設(shè)是,只能通過(guò)嘗試字符的每種組合才會(huì)猜到密碼。但一種更加聰明的方法意識(shí)到人類對(duì)模式情有獨(dú)鐘,所以針對(duì)人類的多數(shù)密碼進(jìn)行了某些假設(shè)。隨后基于這些假設(shè)制定一些猜測(cè)密碼的規(guī)則,從從而加快破解密碼的速度。這些方法都很聰明。它們都是由Dan Wheeler創(chuàng)建的Zxcvbn而來(lái)。
簡(jiǎn)單來(lái)說(shuō),熵構(gòu)建了一種“知識(shí)”,可以知道人們是如何在潛意識(shí)中將密碼中的模式包含到一個(gè)密碼破解高手需要確定這些模式的猜測(cè)中。比如,password的熵為37.6位。但Zxcvbn給出的分?jǐn)?shù)是0(最低最差勁的熵分?jǐn)?shù)),因?yàn)槊艽a破解者所用的詞匯表包含password這個(gè)詞。另外Zxcvbn也給另外一些常用密碼打分:第一眼看上去,這些密碼是隨機(jī)設(shè)置的,但熵值為0。比如qaz2wsx(在最常用的密碼中排名30)看起來(lái)非常具有隨機(jī)性是吧?但實(shí)際上它是一種鍵盤(pán)模式(從一個(gè)鍵重復(fù)“走”到另一個(gè)鍵很容易)。而Zxcvbn本身也是通過(guò)這種模式命名的。
我們從1000萬(wàn)個(gè)密碼數(shù)據(jù)集中提取出了20中最常見(jiàn)的鍵盤(pán)模式,但并未包含123456等數(shù)字模式,因?yàn)檫@些模式只是一種鍵盤(pán)步法,而且它們已經(jīng)占據(jù)最常用密碼列表的半壁江山,在這里我們來(lái)看看更有趣的密碼。
在這20種鍵盤(pán)模式中,有19種如你所想的那樣可被猜到,除了最后一個(gè)Adgjmptw。你能猜到為什么會(huì)把它列到最常用的模式中嗎?
試試智能手機(jī)上從2到9的撥號(hào)薄,將每個(gè)鍵盤(pán)數(shù)字對(duì)應(yīng)的第一個(gè)字母進(jìn)行組合。這個(gè)模式引出一個(gè)有趣的問(wèn)題:隨著更多的人會(huì)通過(guò)觸摸設(shè)備創(chuàng)建密碼讓選擇某些字符比使用普通的鍵盤(pán)更難,密碼選擇是如何改變的呢?
當(dāng)然,對(duì)于鍵盤(pán)模式來(lái)說(shuō),尤其是上述鍵盤(pán)模式對(duì)于密碼破解高手來(lái)講并非難事。但多數(shù)人并不會(huì)使用鍵盤(pán)模式,而是會(huì)使用古典的且經(jīng)常不安全的方式即隨機(jī)詞語(yǔ)來(lái)作為密碼。
1000萬(wàn)密碼中最常見(jiàn)的詞語(yǔ)選擇
現(xiàn)在,你知道為什么文章開(kāi)頭會(huì)猜Batman及Superman了吧:它們是這1000萬(wàn)密碼數(shù)據(jù)集中最常用的超級(jí)英雄名字。但上述列表中反映出的一個(gè)重要事實(shí)是,有時(shí)候很難知道人們?cè)谶x擇密碼時(shí)是基于什么考慮。比如在“顏色”列表中,black有時(shí)候可能指的是姓氏Black。為了減少這個(gè)問(wèn)題的困擾,我們?cè)诮y(tǒng)計(jì)上述詞語(yǔ)頻率時(shí),對(duì)每個(gè)列表都進(jìn)行了單獨(dú)的研究。比如,對(duì)于“顏色”來(lái)說(shuō),只有當(dāng)密碼以顏色開(kāi)頭并且以數(shù)字或記號(hào)結(jié)尾時(shí),我們才會(huì)統(tǒng)計(jì)進(jìn)來(lái)。這樣就會(huì)避免在Alfred中統(tǒng)計(jì)red等。通過(guò)這種方式意味著我們錯(cuò)過(guò)了很多合法的顏色名稱,但知道上面的列表只包含“限定詞”似乎更好。其它列表中也有各自的規(guī)則。比如,只有當(dāng)所使用的名詞跟動(dòng)詞出現(xiàn)在我們平常使用的詞語(yǔ)中排名前1000時(shí),我們才會(huì)統(tǒng)計(jì)它們,否則這些列表會(huì)充滿諸如password等名詞以及l(fā)ove等動(dòng)詞了。
并不是說(shuō)love這個(gè)詞不好,其實(shí)人們以驚人的頻率使用它作為密碼的一部分。我們?cè)?000萬(wàn)個(gè)密碼中發(fā)現(xiàn)了4萬(wàn)次,在500萬(wàn)個(gè)Gmail憑證中也發(fā)現(xiàn)很多。而且通過(guò)分析用戶名時(shí),80后及90后使用的次數(shù)要比其他年代的人多。而且女性使用love的頻率是男性的兩倍。
按出生年代劃分的“Love”使用情況
土豪、高端人士們都使用哪些密碼?
Mark Burnett指出,密碼泄露極其嚴(yán)重。我們感到好奇的是,Gmail數(shù)據(jù)是如何確定高級(jí)別人群的呢?換句話說(shuō),這些被公開(kāi)的密碼是誰(shuí)的?我們通過(guò)Full Contact的人物API提取出一個(gè)郵件地址列表并且通過(guò)幾家主要的社交網(wǎng)絡(luò)站點(diǎn)如Twitter、LinkedIn及Google+運(yùn)行這些地址。此外,它還提供了一些所找到的數(shù)據(jù)點(diǎn)如年齡、性別及職業(yè)。
我們已經(jīng)知道可從Gmaildump中找到一些高級(jí)別人士。不過(guò)我們沒(méi)有想到Full Contact會(huì)列出這么多人。
在我們所找到的7.8萬(wàn)個(gè)匹配中,我們發(fā)現(xiàn)了上千名高級(jí)別人士。我們選擇了最有名的40位。有幾個(gè)點(diǎn)需要注意:
1、我們有意沒(méi)有指出這些人的名字。
2、公司logo只是表示這些人現(xiàn)在的工作地點(diǎn),但不意味著他們?cè)谥皢挝还ぷ鲿r(shí)也用了相同的密碼。
3、我們無(wú)法知道這些密碼最初的用途??赡苁撬麄冏约旱膫€(gè)人Gmail密碼,但作為File Dropper等網(wǎng)站密碼的可能性更大。因此,許多弱密碼并不意味著這些人現(xiàn)在在工作場(chǎng)所或其他場(chǎng)所也使用這些密碼。
谷歌確認(rèn)當(dāng)這些列表被公布時(shí),少于2%(10萬(wàn))的密碼可能跟所使用的Gmail地址匹配。而且所有受影響的賬戶所有者被要求重設(shè)密碼。換句話說(shuō),下面的密碼雖然具有教育意義,但不再被使用。他們可能換了其它密碼,希望這些密碼更安全吧。
然而,如果這些密碼沒(méi)有被重設(shè),就更該引起人們的重視了。一些研究指出許多人會(huì)在不同的服務(wù)中使用相同的密碼。而且鑒于下表涉及一些CEO、很多記者、一名Justin Bieber及Ariana Grande天才管理公司的身居高位的人士,這個(gè)dump可能會(huì)引發(fā)一些關(guān)注。希望不會(huì)出現(xiàn)這種情況,不過(guò)現(xiàn)在這種情況也不會(huì)出現(xiàn)了。
從上面密碼中可看到,如果使用離線破解進(jìn)程,很多密碼都非常容易猜到。最強(qiáng)的密碼屬于一名GitHub開(kāi)發(fā)人員(ns8vfpobzmx098bf4co),熵為96,密碼看起來(lái)太具有隨機(jī)性了,可能是用隨機(jī)密碼生成器或密碼管理器生成的。最弱的密碼屬于IBM一名高級(jí)管理(123456),看起來(lái)太基礎(chǔ),可能是在某個(gè)地方隨機(jī)注冊(cè)設(shè)置的。其它很多人都在復(fù)雜度及簡(jiǎn)單度上做了平衡,看得出公司所有人非常重視密碼安全問(wèn)題。
在文末,我們來(lái)說(shuō)說(shuō)幾個(gè)很有趣的點(diǎn):
美國(guó)國(guó)務(wù)院處長(zhǎng)使用linco1n(Lincoln)作為密碼,而Huffington Post的作家使用trustno1作為密碼。更有意思的是,這么多高級(jí)別人士所做的跟我們當(dāng)中的很多人沒(méi)有什么兩樣:將姓名、出生日期、簡(jiǎn)單詞語(yǔ)跟一組數(shù)字組合成一個(gè)糟糕的密碼。但我們覺(jué)得這也是情有可原的。即使是美國(guó)總統(tǒng)奧巴馬最近也承認(rèn)自己曾使用1234567作為密碼。熵值更高的一個(gè)密碼是PoTuS.1776。然而對(duì)于一個(gè)聰明的破解者來(lái)說(shuō),這也有點(diǎn)太顯而易見(jiàn)了。
那么,你的密碼如何呢?在讀這篇文章的時(shí)候,你可能會(huì)想到自己,“會(huì)有人猜到我的網(wǎng)上銀行密碼、郵件密碼或博客密碼嗎?”如果你使用的是大的郵件提供商如Gmail,你不必太擔(dān)心你的密碼會(huì)被蠻力破解。Gmail會(huì)立即阻止非法嘗試行為。你的在線銀行密碼也得到了類似的保護(hù)。但是如果你有博客,情況就復(fù)雜了,因?yàn)楣粽邥?huì)有更多方法來(lái)入侵,所以每個(gè)人都應(yīng)該采取主動(dòng)防御措施。