本文只用於討論和學習,由alittlemc完全原創,若需要轉載參照請在先與我聯絡,若有疑問或者錯誤的觀點也可以評論區發言,謝謝。
本文研究資料來源於:國內網上常見密碼字典(China)、中國高校大學生群體問卷調查(對學生密碼規律的研究
https://docs.qq.com/form/page/DSHRWeUFHbGNvTm5F)。研究密碼物件為使用的社交賬號。只代表本人研究的群體。
開頭
早在我學計算機之初,看到那些自稱會盜QQ號的小黑子就莫名的害怕,生怕他們偷了我的號,我還有2.5Q幣的餘額呢。
圖1.小黑子幫我盜QQ
早期的騰訊安全體系不是很完善,很容易被他人盜號,現在賬號基本上都繫結了手機號,有一些可疑的操作都直接要輸入簡訊驗證碼確認,所以其實不是那麼好破解滴。
話說,現在的認證大多數都是使用賬號+密碼的體制,甚至還需要配合簡訊驗證。資訊保安中最薄弱的環節就是人,哪怕你用幾十萬的防火牆,然後密碼是預設密碼,這不是給小黑子刷積分嘛。
為了獲取到賬號密碼這些小黑子也是不擇手段,常見的套路:
- 釣魚站點:在小黑子開設釣魚站點輸入正確的資訊,輸入的資料直接提交給小黑子,可不就是直接號沒了。(如果點贊多了會開坑)
- 病毒木馬:點到郵箱裡面什麼非法連結、瀏覽什麼奇怪的網站等等,都可以被莫名其妙下載了一些可疑的檔案。這些木馬病毒,可能加殼、寄生於正常的軟體,有內鬼在電腦裡面,裡應外合的盜號豈不是很簡單。(如果點贊多了會開坑)
- 不安全的網路:有時候小黑子在網路中的角落抓著你的流量包,如果是http、ftp、telnet這些不加密的報文,密碼就明文顯示在其中。即使是加密的報文也可以跑密碼本。
- 撞庫:如果你好幾個站點用的密碼恰好都一樣,如果一個站點內密碼暴露了,另一個站點的賬號也不攻自破。
- 暴力破解:最簡單的那就使用窮極法,因為賬號基本上是公開的資訊,所以只需要猜測的密碼,憑藉的密碼本,拼你使用的賬號是弱口令!
基本概念
弱口令和密碼本
- 所謂弱口令可以理解就是簡單、人盡皆知、預設的密碼,比如使用純數位密碼、admin、123等密碼。
- 為此專門有一些別有用心的人會收集起來這些弱口令整理起來,弱口令的集合稱之為密碼字典。
針對於不同的目標,密碼字典也要對症下藥,密碼字典也要有所選擇:
- 登入平臺的密碼規範:比如WLAN密碼是8位元起步的,那就8位元以內的密碼本大可不試。
- 通過特徵針對性生成:比如知道對方的手機號、姓名、生日、英文名、習慣性使用的數位等,密碼內就可能包含這些,當然也不一定。
探索密碼規律性
密碼的元素
根據對拖庫的密碼研究以及問卷調查,大致上可以整理出一些常見的規律:
一般情況下,密碼大多數由於以下字元元素組成:
- 英文字母
- 小寫字母:
abcdefghijklmnopqrstuvwxyz
- 大寫字母:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 數位
- 字元
- 鍵盤上常見的英文字元:
!@#$%^&*()_-+={[}];:'"<>,./|\
- 鍵盤上常見的中文字元(少用):
!?¥,……()——【】:、《》
其他特殊情況下
- 如果是狠人可能會直接使用一些少見的、難以在鍵盤上獲取的字元比如:漢字、希臘字母等,因為不方便記憶或者輸入。登入平臺也可能會另外有現在,考慮到編碼的問題,一些平臺設定密碼時候是隻能使用常見字元作為元素。如果遇到這些狠人自然也是沒辦法解決了的。
- 特殊情況就很難所涉及到範圍太大了,基本上無解,不在本次討論範圍。
密碼的規律特點
有時候太長密碼、太複雜的密碼往往是防本人,搬起石頭砸自己的腳。這裡只以平常人的記憶密碼作為研究的切入點。
圖2.我的密碼絕對安全,因為複雜得我也忘記了
在對大量學生進行採訪,可以大概整理出以下特點:
- 需要經常手動輸入密碼的平臺和公共平臺,相對來說密碼往往會簡單一些。
- 設密碼是為了保護個人隱私,但是如果需要頻繁的手動登入、或者登入的平臺是公共的平臺,那麼密碼相對來說會簡單一些。
- 頻繁登入:比如每天都要登入到Windows的密碼往往就比自家WiFi密碼來得簡單。因為Windows每天每次都要登入,但是WiFi密碼只需要輸入一次即可自動記錄。
- 公共平臺:一些人辦公中使用的賬號往往不包含太多個人隱私資訊,所以往往密碼會比較隨意以方便記憶,並且賬號密碼可以要交接與他人,所以密碼中也不會帶有個人太多資訊,甚至設定密碼是因為平臺要求而非自願
密碼帶有個人特徵或者常見的規律欄位組成(即社工密碼+弱口令)。詳見下一章密碼分組\組的組成
- 個人資訊:密碼中帶有一些本人可以理解的規律和資訊
-
比如自己或他人的姓名
、手機號
、生日
、學號or工號
、身份證號
、QQ號
等等
- 弱口令輔助:因為人從本質上來說就不想設定太複雜的密碼,但是因為登入平臺對密碼的長度、大小寫等限制有,所以需要新增一些輔助性質的常見方便記憶的規律字元(弱口令)用於輔助填充。
-
比如常見單詞admin
、password
、love
;常見數位123
、520
、666
;連續字母abc
、zxcvb
(在鍵盤上連續)等
- 一個人有幾套密碼用於全部的登入平臺,或者密碼之間具有至少60%的相似程度。
- 密碼相似性:現如今人們需要登入的平臺極多,密碼可能經常弄混,所以為了方便記憶密碼,要麼直接密碼統一,要麼不同密碼之間往往有著60%的相似程度,只需要記憶簡短不同相似性的密碼即可。
-
比如張三的qq密碼和微信密碼分別為:Zhangsan@qq
、Zhangsan@wx
- 沒有頻繁更改密碼的習慣。
- 如果一個人在短期頻繁更換密碼應該是忘記密碼了重置後又忘記了。
- 受(計算機)教育程度與密碼難度成正比。
- 密碼複雜度和學歷有關:小學初中文化<高中中職文化<大專本科研究生文化<大專本科研究生文化(計算機專業)。正在觀看本篇文章的部落格園大佬密碼想必是不簡單的。
- 密碼和學科有關係:理科生的密碼往往比文科生複雜。
- 重要密碼長度普遍在8-16位元的範圍之間。但是具體多少位是沒有特定的規律的。
- 因為現在絕大多數平臺都要求8位元密碼即以上,所以8位元及其以下的密碼實際上是沒有了的,所以這裡只是象徵性的列出而已。
圖3、4.密碼位數
- 密碼中含大部分包含字母、數位、符號元素字元。(這裡的密碼元素總數是對全部收集的密碼進行彙總分析)
圖5、6.密碼元素
解釋一下其中其他字元0.03%,使用中文名字作為密碼的大牛哈哈。
密碼分組
結合大量的密碼資料可以推倒出大部分人記憶密碼的方式來看是以組為單位的記憶方式。所以可以對密碼拆分為若干組來研究。
比如:zhangsan@123456
就可以分為zhangsan
、@
、123456
三組
同組特點
同組中,往往具有一定的特點:
- 同組中往往元素都是同型別的,比如均為字母、數位
- 一組中內容為帶有個人特徵或者常見的規律欄位組成
- 特殊:因為平臺限制密碼樣式(比如要求英文大小寫數位符號任意三種組合),密碼元素中的符號往往作為組之間過渡使用比如zhangsan@qq中的@用於分割名字組和平臺特徵組。
組的組成
常見的組的內容有是帶有個人特徵或者常見的規律欄位組成:
- 姓名:一般情況為姓名拼音,如果文化程度較高的人可能會設定個英文名。(以張三為例)
- 姓名拼音首字母:
zs
- 姓名或姓全拼:
zhangsan
、zhang
- 英文名:
three
- *帶有大小寫特點的(往往是第一個字母大寫):
ZS
、Zhang
、Zhangsan
、ZhangSan
等
- 當然姓名不只是侷限於本人,往往也會有人用自己戀人、偶像、家人等的姓名作為密碼的內容。比如張三520李四zhangsan520lisi、蔡徐坤真愛粉cxk
- 號碼、賬號:平臺的賬號、號碼、工號學號這些都是隨機的而且需要記憶、所以也常用於密碼中。
- 一般情況尾號是4位元(因為點外賣和快遞保留4位元的號碼),開頭則有可能為6位對應密碼
- 手機號(常用*****):
13633883388
、尾號3388
、開頭16
- 常用平臺的號碼、工號學號(常用*****):比如QQ號
818742197
、尾號2197
、開頭818747
;不只侷限於qq,其他註冊後會生成不可預期數位賬號的都屬於,微信是不會生成賬號所以不屬於。
- 身份證號(較常用****):身份證號後6位常常用在一些初始密碼中,也是密碼中的常客,後6位中出生日是可以確定的,但是後四位從某種程度來說是接近隨機,範圍
01xxxx
到31xxxx
- 生日、節假日等特殊日期:可能是受到銀行卡的支付密碼是6位的影響,大部分都會將密碼設定為生日。
- 生日(常用*****):年月日
20000816
、年月日六位000816
、月日0816
、只有年2000
,有時候也會和身份證後四位連起來200008166074
- 特殊日期(常用*****):就比如一些公共的密碼會使用建立賬號時或者修改密碼的年份來作為密碼的內容,比如
2022
、2019
等特殊的日期,往往用年。當然有一些會用結婚紀念日、第一次見面的日期作為密碼,具體的密碼構成可以參考生日的格式。
- 節假日(罕見**):
1001
、0501
等,其實這方面的規律出現在我統計比較少的,我都懷疑是不是其生日剛剛好在節假日的錯覺。
- 易記、易得的字元(弱口令):有時候為了滿足登入平臺對密碼長度的要求,往往會使用一些有特定易記、易得的作為字串的補充。
- 有規律的數位、字母(非常常用******):可能是連續的重複的數位、字母,主要是方便記憶。
- 順序數位
12345
、54321
;
- 諧音
666
、88888
、520
、1314
、5201314
;
- 梗類
3838438
(很遠古的梗)、2333
、www
、114514
(臭密碼),yyds
(永遠單身);
- 順序字母
abc
、xyz
(數學常用);
- 鍵盤上字元(較常用****):
qwerty
、asdfg
、zxcvb
,!@#$
(按上shift點選1234)看起來挺複雜但是其實是就是從鍵盤上同行的字串。
- 直接和登入平臺相關:平臺的簡寫wx、qq、bili;平臺使用的賬號,
admin
、root
、QQ號
- 簡單單詞(常用*****):
- 如果對方是接觸計算機的密碼也可能包含計算機賬號相關的字元
admin
、administrator
、user
、root
、toor
、mysql
、pass
、passwd
、password
- 當然也可以是自己喜歡的單詞
security
、Ethereal
、Hi
、vip
、qq
、svip
- 學業上知識(稀少***一般情況下破解難度就異常的高了):一般受計算機教育程度越高的人有可能會使用,簡單數學π
3.14159
、e2.71828
、埠號最大值65535
、喜歡的數位1024
、網路IP192.168.1.1
- 一句話的拼音(稀少***基本上無解):一般情況文科生會選擇一句話拼音首字母作為密碼,這句話可以是美句也可以是沒有意義的,枯藤老樹昏鴉,小橋流水人家
ktlshyxqlsrj
、吾日三省吾身wrsxws
、蔡徐坤打籃球cxkdlq
- 輔助:在組之間填充特殊符號可以大大強化密碼難度。比如
zhangsan@com
、lisi@123
- 使用符號分割:大部分情況為一個但是也不排除有特殊情況
.
、!
、@
、#
、$
、%
、&
- 區別於前後兩個組的字元:比較也可能是數位、當然和可以是符號
zhangsan0lisi
- 補充多樣性:因平臺要求英文大小寫符號等,所以使用可能會作為補充使用單字母
123456a,
補充的字母也可能是姓氏拼音123456z,也可以將首字母變為大寫Zhangsan1234
、
分組的之間的規律
大部分的密碼都是使用英文字母+數位分組。其中英文字母較為有可能是姓名相關,首字母可能大寫、也可能全部大寫,數位則可能是電話號碼、QQ號、生日、常見數位等。
進階情況下還有英文字母+符號+數位、數位+英文字母+符號。
給讀者建議
對於小黑子來說,一個純數位密碼很難破解,但是隻要引入英文字母和符號,每多一個字母、符號難度也是指數級的上升。更何況現在要錯誤次數太多會鎖定的對策,所以破解密碼變得異常的困難了,所以大家也不必過分的擔心密碼被暴露破解,反而是要注意個人隱私。這就是社會工程學在資訊保安中的應用。
比如從你的微訊號很容易瞭解到你個人的密碼規律、密碼內容。比如某人微訊號為zhangsan0819,其中zhangsan極有可能是姓名、0819極有可能是生日。
又或者說不同平臺的密碼儘量要不一致、並且設定不同的規律,因為倘若一個站點被攻破,你的密碼可以就被竊取,如果密碼相同其他的賬號就岌岌可危、或者有特定規律的密碼比如張三的郵箱密碼被竊取了密碼為zhangsan@mail,那麼qq號就極有可能為zhangsan@qq。
- 強烈建議:密碼要足夠長、元素儘量要有數位、字元、大寫字母、小寫字母容易三種。
- 不同平臺密碼不要相似。
- 公共平臺密碼儘量不要太與自己資訊相關,因為管理員可能可以看到儲存的密碼,也不要吧密碼規律暴露在微訊號、抖音號上。
- 儘量使用掃碼登入、簡訊驗證碼登入,特別是在公共電腦和公共網路上。
- 強烈推薦使用一句話密碼,你可以記憶一條你的語句,即方便記憶也不以破解。
更新計劃
2022年09月17日22:01:02(週六)
- 完成密碼字典的收集工作
- 因為我長期(四年)幫他人刷網課,所以手頭上有大量的密碼資料。
2022年10月12日12:45:54(週六)
2022年11月14日19:49:58(週一)
- 絕大多數內容
- 預計下週會分享出統計密碼規律的指令碼
若本篇文章對您有所幫助,可以分享給您的好友!