關于密碼有很多已經知道。大部分容易破解,并且短和簡單。但是一個人在心里上為什么選擇它做密碼卻很少人知道。我們分析了1000w個人(從CEO到科學家)來找出密碼好記和難以猜測其中的奧秘。
1000w小窗口
誰是你第一個想到的超級英雄?選一個1到10之間的數字?最后選一個明亮的色彩。快速選擇并且把這三個字符連接起來。
下面是猜測時間。
它是不是Superman7red?還是Batman3Orange?如果我們猜中了其中,那么原因就是人類是可預測的。這也是密碼遇到的問題。事實是,我們通過一些不常見的問題增強了密碼的強度,但是還是比不上工業級的針對密碼破解的軟件。舉例來說,HashCat每秒鐘可以進行300,000次猜解,因此盡管你使用了“Hawkeye6yellow”這樣的密碼,也會在不久之后被破解。
密碼通常情況下都是單詞和數字的組合,因此容易被猜解。我們希望探索這個,并且找出人們的思維規律。
兩套數據集,多重警示
第一個數據集是從俄羅斯一個比特幣交易平臺泄漏出來的500w賬號密碼。他們大部分是Gmail賬號(和一些Yandex.ru賬號)。大部分是老的 Gmail賬號(不再活躍)或者是密碼不正確的Gmail賬號。不管怎樣,WordPress重置了10w賬號,并聲稱還有60w賬號存在風險。這個脫下來的褲子看上去是從多個來源,多種方法收集得來的。從學術角度來說,這個并不影響。這些密碼全部從Gmail賬號中選出,因為其中98%都不再使用,我們認為可以安全地使用它們。
我們把這些數據稱為“Gmail褲子”,為了解答人口統計學的問題。我們從這5百萬數據中提取信息。比如如果有一個郵件地址是 [email protected],就會被標記為一個出生在1984年的男性。這種方式需要一定的技巧,但這里我們不會涉及過多的技術細節。最終,我們獲得了485,000個性別信息,220,000年齡信息。在這里,就出現了一個問題,“這些使用生日和姓的用戶跟不使用這些信息的用戶會不會選擇使用不同的密碼?”。從直覺上來講存在這種可能。我們會在之后討論。
下面是出生年份和性別的統計圖。
第二個數據集,也是產出最多結果的數據集,是由安全顧問Mark Burnett放出(xato.net)。它包含1000w密碼,多年來從互聯網的各個角落收集而來。Mark收集了公開的,泄漏的和開放的列表,從上千個源頭組成了這個完整的列表。
我們不會花過多的時間在統計學上。我們先來看一下使用最多的50個密碼,接著我們再進入更有趣的領域。
將近有420,000(8.4%)的賬號在結尾使用了0~99之間的一個數字。其中五分之一的用戶使用1作為結尾。也許他們認為這是最容易記住的數字。或者他們注冊的站點要求他們至少使用一位數字。其他最常用的數字為2,3,12,7等。因此你要求一個人快速說出1~10之間的數字,他很有可能說出7或者 3.
分析密碼的熵
簡單來說,密碼的熵越高,密碼強度越高。熵隨著密碼長度的增長和字符變化的頻率而增長。然而字符變化對熵的貢獻不大,密碼的長度成為熵的主要因素。
“Gmail褲”中的平均密碼長度為8,男性的密碼長度跟女性的密碼長度沒有明顯的區別。
那么熵呢?熵是反映密碼強度的一個指標。
“Gmail褲”的平均熵為21.6。這個值很抽象難以理解。上面的圖片中可以看出男女的密碼長度沒有多少區別。下面的圖可以看出有很多密碼接近熵0,有少部分大于60。
這里有很多方法可以計算熵,很多方法是很基本的。最常見的假設就是,密碼只可能通過猜解所有字符組合獲得。而一個聰明的方法是通過人類的常用模式。基于模式去嘗試密碼可以明顯地提升破解的速度。Dan Wheeler發明了一個熵評估器,叫做Zxcvbn。
可以在此獲得細節https://blogs.dropbox.com/tech/2012/04/zxcvbn-realistic-password-strength-estimation/
簡單來說,它能夠“知曉”人們怎么在無意識中在密碼中包含了特定的模式,而一個好的密碼破解器會發現其中的模式。舉例來說,”password”在樸素的評估下,熵為37.6。然而Zxcvbn會給出熵0(最低的熵)。
他還會給一些看上去是隨機的密碼一個很低的熵。“qaz2wsx”(第30常見的密碼),看上去是隨機的吧?事實上,他是鍵盤上的模式。Zxcvbn也是按這個模式命名的。
我們從1000w密碼中提取出來20個最常見的鍵盤模式。我們排除了常見數字組合,例如123456。
以上是20種常見的鍵盤模式。前19種都很容易看出,但是除了最后一個adgjmptw。你可以猜出為什么嗎?
盡管我們在開始非常困惑。我們沒找到這種鍵盤布局跟前19種的相似之處。但它確實排在20位。
“我在密碼中加入數字來變得復雜”
也許你還沒發現,它其實是智能手機上從2按到9。
這個模式也令我們產生了一個有趣的問題。人們在觸摸設備上輸入密碼是怎樣的。
當然,鍵盤模式對于好的密碼破解器是不成問題的。passpat http://digi.ninja/projects/passpat.php 使用了多個鍵盤布局和一個算法來計算密碼可能是從哪種鍵盤輸入的。市面上也存在通過一個鍵盤布局去省城數百萬的鍵盤輸入模式,然后使用他們作為一個列表去破解。
大部分人不使用鍵盤模式,他們還是使用老式并且不安全的方法來選擇一個隨機詞組。
現在你可以知道為什么我們在開頭選擇了Batman和Superman,他們是最常用的超級英雄名稱。值得一提的是上面的列表很難知道人們在使用時的語義。舉例來說,在顏色列表中Black在一些情況下可能指人名Black。
盡管Love不是一個有趣的詞。它卻經常在密碼中出現,我們發現一百萬密碼中就出現了4萬次。在Gmail賬號密碼中也出現很多。
我們計算了Love這個密碼出現的頻率,我們可以推測出,80后和90后比老一輩人更喜歡使用這個詞。
在 Gmail數據中,1.4%的女性密碼中有love,而男性只占了0.7%。換句話來說,女性使用love這個詞的次數是男性的兩倍。這個發現符合了另外一個最近的研究。一個在安大略理工大學的研究顯示ilove[男性名字]是ilove[女性名字]的四倍;iloveyou是iloveme的十倍;<3是第二常見的符號與數字組合。
有錢和有權人的密碼
Mark Burnett發現他的網站上的褲子出現得十分頻繁。他通過爬蟲抓取新的褲子組成1000萬的密碼集。然而,攻擊高價值目標的名人或者企業的事件更令人擔心。就像Jennifer Lawrence et al. 和 Sony的事件。我們也好奇這些Gmail數據中能發現多少高價值的目標。我們通過Full Contact的API,它可以通過幾個主要的社交網絡API(Twitter, LinkedIn,Google+)來匹配郵件地址列表,然后輸出他們的年齡,性別和職位。
在78,000個匹配中,我們找到上百個高價值的目標。下面我們選出了40個最著名的人,我們來看看他們的密碼。
值得注意的是,上面有很多密碼是多么容易被破解。最強的密碼是github的開發者(ns8vfpobzmx098bf4coj)熵達到了96。看上去完全隨機,可能是隨機密碼生成器生成的。最弱的密碼是IBM經理(123456),它可能是為了注冊一次性使用的密碼。其他的密碼都在復雜和好記之間找到一個平衡點。說明這些用戶關心他們賬號的安全。
以一個杰出人士結尾:美國國務院的處長的密碼是linco1n(Lincoln)。赫芬頓郵報的編輯也使用了類似規律選擇用Mulder (X檔案)的trustno1作為密碼。總的來說,這些高價值的人群跟其他人使用密碼的方式相同: 使用姓名,出生年月,簡單詞組和一些數字來組成密碼。我們認為這是合理的。甚至奧巴馬總理最近都承認使用過1234567作為密碼。