大數據分析300萬樣本中的弱密碼規律:你的密碼安全嗎?

2021-02-18 大數據科學

近日,烏雲漏洞報告平臺宣布網易郵箱漏洞過億數據洩漏,我去,據說有億級別的用戶密碼流出..

現在網易官方還在和烏雲互掐,真相估計還要時間,但小編反問,你的密碼設計合理嗎?

2011年起有一系列重大網站密碼洩露,csdn社區、人人網、多玩網、微博的部分密碼數據都被掛到了網上(數據請自行google,本文討論思路,展示結果,不洩露信息)。

我們以當時微博的3315156條用戶名密碼數據,開始分析之旅。

(可以選擇略過這段!)

而我們下載到的文件類似於csv(逗號分隔) 或tsv格式(空格分隔)數據,如下:


數據很大,需要的查詢可能很複雜,純腳本處理很難勝任,我們需要資料庫, 本文用mongoDB。

我們可以在命令行裡使用mongoimport命令導入數據,也可以使用腳本(我用node.js)導入,腳本更靈活。導完後,可以直接在命令行(如mac的terminal)查詢:


以上,括號裡面的叫查詢條件,這在本文中很重要,我們可以在查詢條件裡插入正則表達式(網上資料大大的),讓查詢變得更複雜:


最後,有時候我們要統計,比如密碼以a、b、c、d..,各有多少,這時我們需要用mapreduce進行累加。

嘿嘿,工具只是手段,白貓黑貓,能抓老鼠的就是好貓。

讓我們啟程!

首先跑出重複率前100的密碼, 以下是前20:


很容易發現規律,俺將密碼主人分五大派系:

這3萬多同學真是懶的令人髮指,也刷新了哥的常識,喝喝...


那時候微博竟然能通過一個字的密碼。

password也是老外的高頻詞,我不知道是不是某些網站輸入框裡password提示詞,或是很多設備默認密碼是這個。

單字重複型,如 11111,讓我們深入發掘下。

最有意思的是163.com和@qq.com出現的頻率,而這1000多用戶,密碼=用戶名後半部分... 醉了

極懶派:一字重複n次

統計形如 『aa』, 『11111』, 'ssssssss』這類若干個相同單字的密碼總數:


我統計了 1、2、3、4、5、6、7、8、9、0、q、a、z、w、s、d的頻率分布,其中用』11111』型的用戶最多 這些密碼總計6w多人 佔2%。


極懶派:用戶名=密碼

上述統計不包含用戶名和密碼相同的密碼,這部分密碼共有多少呢?

以abcd@qq.com 為例,我們統計這3種模式的數量之和:

abcd@qq.com

abcd

@qq.com

99671個人,有點意外,整整佔了3%呢!

密碼太長,能在鍵盤上排成一種形狀,記憶成本就大大壓縮,在密碼排行榜上,和圖形有關的密碼是哪些? 123456云云者,勉強算吧,在數字鍵盤劃一字。同理qwerty開頭的也是這個原理。


對此,我看到一位老外很牛逼地總結了20種模式:

這個模式很牛逼,圖上是鍵盤密碼。但11年已經有很多人用手機上微博了。有不少這種手機鍵盤:


因此很多密碼的原理就迎刃而解了:


記住一串數字的規律,我們就可以把一串簡單的數字演繹成複雜密碼,而你記住規則就好。

很勉強,123456就是個等差數列 fn = n 而 13579是 fn = 2*n-1

很多人會用疊詞 如123123,112233,或疊加後對稱 123321 。

高分密碼有這些:


可以引申下,同樣是數列,用了中學知識就不一樣啦,假設我們讓 fn = n^2, 我們就可以構造一個數列了:

1 2 3 4 5 6 -> 1 4 9 16 25 36…

我查詢了含有1491625的所有密碼,共找到30幾個,真是海內存知己(因為曾經我也是這麼設計的)

同理 1 8 27 64 125 的只有3個人,高手啊

如果你拿12345開根號、取三角函數、取對數,忘記密碼,在手機計算機裡算一遍(別忘了公式)。

海內無知己,天涯只有你,你贏了!

使用自己和親人的生日、電話、手機做密碼,已是我對普通密碼的印象了,這部分人究竟多不多?

用手機做密碼,一開始我設置了11位的數字的條件,但是有很多錯誤的結果。好在網上有對手機號碼檢測的正則表達式,包含了2013年前所有的手機欄位:

移動:139 138 137 136 135 134 147 150 151 152 157 158 159 178 182 183 184 187 188

聯通: 130 131 132 155 156 185 186 145 176

電信: 133 153 177 180 181 189

虛擬運營商:170

因此大哥整理了一個可以查詢手機號的正則表達式:



親測有效哦,出來的密碼幾乎都是手機號, 172418個同學用手機號做密碼 佔比5%。

我們查詢所有包含年份的密碼,這些年份都以19和20開頭,且有4位連續數字, 考慮到5201314(我愛你一生一世)也是高頻密碼,且密碼數據的時間為2011年,此時2013不該出現,所以排除2011年以後的年份,我們得到如下結果:


543559個密碼使用了年份,佔總量的18%。 真不是小數字,但數據還是很複雜,有大量年份和字母,符號混合的,也不一定就是年份。那我們縮小範圍,如果包含生日的有多少人?

月份比較複雜,1月1日出生的,也許寫11,也許寫0101,也有1.1、1-1的。但後者其實比較少,且在在一篇分析人人和csdn密碼的文章裡看到YYMMDD型的生日是最多的:



那我們的查詢如下:


318022個密碼符合條件 佔總量的10%。

這批密碼還是頗為複雜,因為很多人在字母和其他數字後加入生日的,僅以生日作為密碼的人會有多少?



答案是137697, 4%的人用自己生日做密碼,而其中,也有些奇葩的答案,如好幾個』19190504』 我去,這是xx團委的公眾號麼…

寫一句有含義的密碼,寫什麼重複率最高?



情感派:因為愛情

現實裡壓抑的我們難得一說我愛你,不論國內國外,都有很多人對著伺服器許願,說出 wo ai xx,這些我愛你型密碼的總數讓我非常震驚。

這份密碼數據裡,woaini 以2659次重複榮居意義型密碼榜首,iloveyou則不到woaini的一半。 但事實上文字版的都弱爆了,位居第五名的5201314(我愛你一生一世)有15000個人同時使用,還有各種變體…其中第13名最缺愛 7758521(親親我吧愛我吧)

除了我愛你,我還愛誰? 讓我們查詢任何含有 woai(我愛)的密碼,還是基本都是在各種愛你… 偶爾有woaiwojia woaishui woainima… 有意思的是我愛我家,這中介公司的名字取得真是合理。


如果我們查詢含有 'wo』字的密碼,也會發現我最喜歡做的事情就是愛xx… 除了愛你,我還愛誰呢,老公、老婆、媽媽、爸爸?…

woailaopo + laopowoai 的人數有291人 。

laogongwoai和woailaogong的人數有98人。

這些都是少數派密碼了。

我們試試 我愛媽媽(201)和我愛爸爸(60)的比例,竟然也是3:1。

出於好奇,我又統計了密碼裡包含』laopo』的和包含』laogong』的比例:

老公: 454

老婆: 1118

包含老公的密碼基本都是形如: 『zuiailaogong』、 『qinaidelaogong』、 『pplaogong』,我擦看不下去了,真是一部show恩愛寶典…

愛老婆的數量還是完勝,可惜,這是一組良莠不齊的密碼, 還是有不少形如laopo38、 laoposhizhu choulaopo laopocaolei sblaopo777 的密碼…(總數還是不算多)

相反,罵人的人比例很少,fuck shit cao說的人都不算多。而這其中,也有些有趣的點:

魯迅在雜文《論他媽的》中說他媽的是中國的國罵,但是時代變了,也許是受了上古十大神獸草泥馬(當年暴走漫畫王尼瑪還沒火吧),nima的頻率2714次遠高於tama 101次。也完勝 『fuck』、 『shit』、 'wocao』這些 400-500次之間的詞。

我不是黑客,不知破解算法是怎麼做的,但只要鍵入一個字,就讓你的密碼與眾不同,你會怎麼敲? 我們對密碼裡用到的所有字進行統計,得出下圖

1是第一名,被300多萬用戶累計輸入300多萬次,1是一個很有趣的數字,超過60%的人密碼會用到1,而30%的人會以1作為密碼開頭, 可以看到』.』 『@』 等特殊字符,在符號裡排名很靠前。曾經看到說用』_『在密碼裡較為安全,因為比』-『少,事實上也的確如此,但你何必按shift打_號呢,』,'的比例比前面所有的標點符號都少。

我們可以看到,數據下降非常快速,有規律可循嗎?將柱狀圖的大小全部取對數,那麼四大陣營的階梯形一覽無餘: 1-9排在了所有的字母之前,幾乎所有的字母排在了大寫字母之前



最後,糾正一個數據錯誤,我們看到 『E』 和 『+』 的比例非常異常,他們理應沒有那麼多,為什麼?



好,看到這裡,你應該覺得很熟悉, 5201314,123456, 都是熟悉的密碼,而E+13這種也很熟悉。excel裡輸入一個長度超過11位的純數字,excel會自動將數字轉化為這個樣子的。這份數據應該是被誰用excel打開後又保存了,所以,大寫字母最多的應該是 『A』,而 '+'的用量也排不到符號類的第二名。

回到2011年,我在微博上找一個郵箱,然後破解你的密碼,哥成功的概率有多大?

前100名的密碼,第一名的密碼123456共165882條,佔5%。前10名的密碼有316085條,佔10%,而前100條密碼共442555條,佔 15%

累計15%的人能被這100個密碼破解。

用戶名和密碼匹配(包含之前提到的前綴相同,後綴相同和 後綴+@相同)共99671人。

累計計18%的用戶都會在103次窮舉後被破解。

近100年的生日有365*100個,如果我遍歷那麼多次,總有一個是對的,這樣我可以破解4%的密碼。

累計22%的人已經被破解。

倘若我知道你的手機號碼,5%的人的密碼會被破解,累計27%

如果我知道你的名字(這份數據無法分析你的名字和密碼的關係) 這個比例會更高。

2011年,1/3的人密碼是不安全的。

你覺得你的密碼設計的科學嗎?

[ZIPF分布、PARETO分布和冪律分布](http://blog.csdn.net/arthur503/article/details/8513992)

[CSDN及人人網的用戶密碼分析](https://program-think.blogspot.com/2011/12/csdn-renren-password-analysis.html#head-4)

[最新手機號碼驗證正則表達式](http://blog.csdn.net/fengshi_sh/article/details/12085307)

相關焦點

  • 你的密碼安全嗎?
    像純數字的組合、abc123、qwerty,password簡單密碼是肯定在裡面的了,因此對這樣的密碼加密也是形同虛設。主流的彩虹表都有100G以上的大小,1024個字符體積就1kb,1Gb = 1024 * 1024 kb,可以想像到裡面有多少數據!常用密碼組合,常用單詞都已經囊括在裡面了。
  • Android中修改鎖屏密碼和惡意鎖機樣本原理分析
    最終加密信息保存到本地目錄中:/data/system/gesture.key在上一篇文章中也說到了,為什麼要看鎖機密碼加密算法,因為最近玩王者榮耀,下了一個外掛,結果被鎖機了,太坑了,所以就來分析現在市場中通過鎖機來勒索錢財的樣本製作原理:大部分都是採用了系統的設備管理器來獲取權限進而修改密碼,然後提示你需要重啟設備才能有效
  • 你的密碼能被破解嗎
    這些憑證似乎是Gmail帳戶(有一些是Yandex.ru),但經過進一步的調查發現,雖然其中的郵件地址多為有效的Gmail地址,但大多數明文密碼或者老舊不再被使用或者密碼跟郵箱地址不匹配。但WordPress.com重設了10萬個帳戶並表示還有60萬個帳戶存在風險。儘管這些數據是在幾年時間裡通過多種方式從多個地方收集起來的密碼,但對於我們的學術研究來講,絲毫沒有問題。
  • 看似安全的「ji32k7au4a83」竟然是一個典型弱密碼!
    【ji32k7au4a83】我相信絕大多數人第一眼看到都覺得這應該是一個足夠安全的密碼,即便再讓你多看幾眼……畢竟這個密碼看起來既沒有規律可循、而且英文數字混雜,很符合一個安全密碼的條件部分註冊系統中會對用戶設置的密碼安全程度進行一個初步判定,筆者就利用這個密碼去測試了一下微博的判斷能力。在設置密碼框輸入「ji32k7au4a83」之後,結果反饋「您的密碼很安全」。
  • 基於機器學習的密碼強度檢測
    這是另一個與信息安全和機器學習有關的項目。各公司的密碼強度檢測都不近相同。但所有的這些檢測都是基於規則的。一個密碼在Google這邊可能是強密碼但在Dropbox就變成了弱密碼。我在想我們能否讓機器學習算法來決定一個密碼是弱密碼還是強密碼。於是,這個帖子誕生了。讓我們開始吧。數據收集此次分析所使用的密碼數據來自於000webhost洩漏,此數據可在網上下載。
  • 話題 你的密碼,真的安全嗎?
    今天,官微小編將帶您一起去重新審視自己身邊最親密的夥伴——各種密碼,看看它們究竟存在哪些隱患,通過怎樣的方法可以讓這些「不能說的秘密」變得更加安全可靠。最糟糕的密碼:讓你變成待宰羔羊小夥伴們看明白圖中的內容了嗎?這是美國著名密碼管理應用程式提供商「飛濺數據」(SplashData)公司公布的2013年最糟糕密碼排行榜。飛濺數據公司每年年底都會公布該年度最糟密碼榜單。公司CEO摩根・斯萊恩說:「隨著萬聖節臨近,人們喜歡談論恐怖電影、嚇人服裝等話題,不過真正可怕的是你的網絡身份密碼被盜。」看看這些「和藹可親」的密碼,在大笑之餘有沒有種躺槍的感覺?
  • 文末福利 | 看似安全的「ji32k7au4a83」竟然是一個典型弱密碼!
    【ji32k7au4a83】我相信絕大多數人第一眼看到都覺得這應該是一個足夠安全的密碼,即便再讓你多看幾眼……畢竟這個密碼看起來既沒有規律可循、而且英文數字混雜,很符合一個安全密碼的條件部分註冊系統中會對用戶設置的密碼安全程度進行一個初步判定,利用這個密碼去測試了一下微博的判斷能力。在設置密碼框輸入「ji32k7au4a83」之後,結果反饋「您的密碼很安全」。
  • 密碼漫遊記
    我們以當時微博的3315156條用戶名密碼數據,開始分析之旅。1是第一名,被300多萬用戶累計輸入300多萬次,1是一個很有趣的數字,超過60%的人密碼會用到1,而30%的人會以1作為密碼開頭,可以看到』.』 『@』 等特殊字符,在符號裡排名很靠前。
  • 10萬個最常被黑的密碼公布,你的密碼是否在列?
    更多全球網絡安全資訊盡在E安全官網www.easyaq.com
  • 5201314最具中國特點 這些弱爆了的密碼你還在用嗎
    國內的網際網路安全軟體與網際網路服務公司360的安全專家安楊告訴記者,國內外廠商曾經發布過多次弱密碼榜單,主要是對一些被黑客傳播的網站資料庫以及密碼字典軟體進行統計。雖然這種數據並不全面,但也能從一定程度上體現網際網路用戶設置密碼的習慣。
  • 「ji32k7au4a83」竟然是一個典型弱密碼?
    ,即便再讓你多看幾眼……畢竟這個密碼看起來既沒有規律可循、而且英文數字混雜,很符合一個安全密碼的條件。部分註冊系統中會對用戶設置的密碼安全程度進行一個初步判定,筆者就利用這個密碼去測試了一下微博的判斷能力。在設置密碼框輸入「ji32k7au4a83」之後,結果反饋「您的密碼很安全」。然而,對於這個密碼外媒有著意外發現。網絡上存在一個數據洩露存儲庫Have I Been Pwned(HIBP),而這個「ji32k7au4a83」顯示的洩露頻次超出了大家的預期。
  • 「ji32k7au4a83」竟然是一個典型弱密碼
    ji32k7au4a83我相信絕大多數人第一眼看到都覺得這應該是一個足夠安全的密碼,即便再讓你多看幾眼……畢竟這個密碼看起來既沒有規律可循、而且英文數字混雜,很符合一個安全密碼的條件。部分註冊系統中會對用戶設置的密碼安全程度進行一個初步判定,筆者就利用這個密碼去測試了一下微博的判斷能力。在設置密碼框輸入「ji32k7au4a83」之後,結果反饋「您的密碼很安全」。然而,對於這個密碼外媒有著意外發現。
  • 2015年最弱的密碼,和最強的密碼
    網絡安全公司SplashData如約發布了本年度最不安全的密碼排行榜。
  • 2020年最爛密碼出爐,你中槍了沒?
    現在,我們每一天都離不開密碼從手機開機到軟體登錄,從電子鎖到網絡支付……密碼作為通行證與我們的信息、財產安全息息相關11月19日網絡安全公司NordPass公布了2020年最常用密碼榜單前十排名如下▼數據還顯示,許多人固執地堅持使用弱密碼
  • 解密千萬密碼:透過密碼看人性
    比如,多數密碼短小、簡單、且容易破解。但我們對一個人選擇某個密碼的心理原因卻所知甚少。在本文中,我們分析了包括企業CEO、科學家在內的1000萬人們的密碼選擇,來看看密碼背後所揭示的意義。1000萬個小窗口你腦海中浮現出的第一個超級英雄是誰?從1到10你首先會想到哪個數字?最後一個問題,你會選擇哪種鮮豔的色彩?
  • 網絡安全與密碼危機
    網絡安全相關調查據相關數據顯示,79.3%的網民對網絡安全問題有所了解,但在遭遇問題時不堪一擊,僅有4.5%的人具備解決和防範網絡安全問題的自我應對能力。數據來源:比達諮詢,中商產業研究院整理在網民曾有過的高風險網絡行為調查中,多帳號使用同密碼佔比76.3%排行第一,隨意打開連結、掃描二維碼等高風險網絡行為佔比54.2%排行第二,排行第三的是不安裝安全軟體的行為
  • 【安卓鎖機樣本分析】利用第三方雲服務存儲密碼的鎖機分析
    今天下午看見這篇帖子 http://www.52pojie.cn/thread-553432-1-1.html ,感謝@sumn20提供樣本發現這個鎖機很有趣
  • 個人密碼安全策略
    具體的設置策略如下:  一、將自己常用的網站分類:大網站、小網站、重要網站、普通網站  1、大網站  大網站為可以信任的、安全的網站,例如用戶為數億的幾個門戶網站(騰訊、谷歌等),這類網站理論上安全性較好,常規情況下用戶密碼不易洩漏,並且都會提供綁定手機號功能,這類網站應該不超過十個。
  • 今天是世界密碼日,趕緊看看你的密碼是否安全
    y;}a%@W$\5\b上面並不是亂碼,而是一個標準的 12 字符密碼——根據美國喬治亞理工學院公布的一項研究稱,破解這樣的密碼需要 17134 年之久。今天(5 月 8 日)是第三屆世界密碼日(World Password Day),這值得你好好思考一下,你的密碼安全嗎?
  • 2015年最弱的密碼和最強的密碼
    方槍槍網絡安全公司SplashData如約發布了本年度最不安全的密碼排行榜。根據2015年從各個渠道洩露出來的密碼信息,最弱的密碼被「123456」再次蟬聯。這個「萬年陳釀」的密碼排名第一感覺毫無壓力。奪得第二名的是「password」。中國用戶似乎並不會設置這樣的密碼,難以想像在沒有中國用戶貢獻的情況下,這個密碼居然奪得了第二把交椅。