信息安全之弱口令和社工弱口令規律,及其反制措施(第一章)
本文只用於討論和學習,由alittlemc完全原創,若需要轉載引用請在先與我聯繫,若有疑問或者錯誤的觀點也可以評論區發言,謝謝。
本文研究數據來源於:國內網上常見密碼字典(China)、中國高校大學生群體問卷調查(對學生密碼規律的研究
//docs.qq.com/form/page/DSHRWeUFHbGNvTm5F)。研究密碼對象為使用的社交賬號。只代表本人研究的群體。
開頭
早在我學計算機之初,看到那些自稱會盜QQ號的小黑子就莫名的害怕,生怕他們偷了我的號,我還有2.5Q幣的餘額呢。
圖1.小黑子幫我盜QQ
早期的騰訊安全體系不是很完善,很容易被他人盜號,現在賬號基本上都綁定了手機號,有一些可疑的操作都直接要輸入短訊驗證碼確認,所以其實不是那麼好破解滴。
話說,現在的認證大多數都是使用賬號+密碼的體制,甚至還需要配合短訊驗證。信息安全中最薄弱的環節就是人,哪怕你用幾十萬的防火牆,然後密碼是默認密碼,這不是給小黑子刷積分嘛。
為了獲取到賬號密碼這些小黑子也是不擇手段,常見的套路:
- 釣魚站點:在小黑子開設釣魚站點輸入正確的信息,輸入的數據直接提交給小黑子,可不就是直接號沒了。(如果點贊多了會開坑)
- 病毒木馬:點到郵箱裏面什麼非法鏈接、瀏覽什麼奇怪的網站等等,都可以被莫名其妙下載了一些可疑的文件。這些木馬病毒,可能加殼、寄生於正常的軟件,有內鬼在電腦裏面,裡應外合的盜號豈不是很簡單。(如果點贊多了會開坑)
- 不安全的網絡:有時候小黑子在網絡中的角落抓着你的流量包,如果是http、ftp、telnet這些不加密的報文,密碼就明文顯示在其中。即使是加密的報文也可以跑密碼本。
- 撞庫:如果你好幾個站點用的密碼恰好都一樣,如果一個站點內密碼暴露了,另一個站點的賬號也不攻自破。
- 暴力破解:最簡單的那就使用窮極法,因為賬號基本上是公開的信息,所以只需要猜測的密碼,憑藉的密碼本,拼你使用的賬號是弱口令!
基本概念
弱口令和密碼本
- 所謂弱口令可以理解就是簡單、人盡皆知、默認的密碼,比如使用純數字密碼、admin、123等密碼。
- 為此專門有一些別有用心的人會收集起來這些弱口令整理起來,弱口令的集合稱之為密碼字典。
針對於不同的目標,密碼字典也要對症下藥,密碼字典也要有所選擇:
- 登錄平台的密碼規範:比如WLAN密碼是8位起步的,那就8位以內的密碼本大可不試。
- 通過特徵針對性生成:比如知道對方的手機號、姓名、生日、英文名、習慣性使用的數字等,密碼內就可能包含這些,當然也不一定。
探索密碼規律性
密碼的元素
根據對拖庫的密碼研究以及問卷調查,大致上可以整理出一些常見的規律:
一般情況下,密碼大多數由於以下字符元素組成:
- 英文字母
- 小寫字母:
abcdefghijklmnopqrstuvwxyz
- 大寫字母:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 小寫字母:
- 數字
- 阿拉伯數字:
0123456789
- 阿拉伯數字:
- 字符
- 鍵盤上常見的英文字符:
!@#$%^&*()_-+={[}];:'"<>,./|\
- 鍵盤上常見的中文字符(少用):
!?¥,……()——【】:、《》
- 鍵盤上常見的英文字符:
其他特殊情況下
- 如果是狠人可能會直接使用一些少見的、難以在鍵盤上獲取的字符比如:漢字、希臘字母等,因為不方便記憶或者輸入。登錄平台也可能會另外有現在,考慮到編碼的問題,一些平台設置密碼時候是只能使用常見字符作為元素。如果遇到這些狠人自然也是沒辦法解決了的。
- 特殊情況就很難所涉及到範圍太大了,基本上無解,不在本次討論範圍。
密碼的規律特點
有時候太長密碼、太複雜的密碼往往是防本人,搬起石頭砸自己的腳。這裡只以平常人的記憶密碼作為研究的切入點。
圖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.密碼位數
- 密碼中含大部分包含字母、數字、符號元素字符。(這裡的密碼元素總數是對全部收集的密碼進行匯總分析)
- 因為現在絕大多數平台都要求8位密碼即以上
圖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
、也可以將首字母變為大寫Zhangsan1234
、L
- 使用符號分割:大部分情況為一個但是也不排除有特殊情況
分組的之間的規律
大部分的密碼都是使用英文字母+數字分組。其中英文字母較為有可能是姓名相關,首字母可能大寫、也可能全部大寫,數字則可能是電話號碼、QQ號、生日、常見數字等。
進階情況下還有英文字母+符號+數字。
給讀者建議
對於小黑子來說,一個純數字密碼很難破解,但是只要引入英文字母和符號,每多一個字母、符號難度也是指數級的上升。更何況現在要錯誤次數太多會鎖定的對策,所以破解密碼變得異常的困難了,所以大家也不必過分的擔心密碼被暴露破解,反而是要注意個人隱私。這就是社會工程學在信息安全中的應用。
比如從你的微信號很容易了解到你個人的密碼規律、密碼內容。比如某人微信號為zhangsan0819,其中zhangsan極有可能是姓名、0819極有可能是生日。
又或者說不同平台的密碼盡量要不一致、並且設定不同的規律,因為倘若一個站點被攻破,你的密碼可以就被竊取,如果密碼相同其他的賬號就岌岌可危、或者有特定規律的密碼比如張三的郵箱密碼被竊取了密碼為zhangsan@mail,那麼qq號就極有可能為zhangsan@qq。
- 強烈建議:密碼要足夠長、元素盡量要有數字、字符、大寫字母、小寫字母容易三種。
- 不同平台密碼不要相似。
- 公共平台密碼盡量不要太與自己信息相關,因為管理員可能可以看到保存的密碼,也不要吧密碼規律暴露在微信號、抖音號上。
- 盡量使用掃碼登錄、短訊驗證碼登錄,特別是在公共電腦和公共網絡上。
- 強烈推薦使用一句話密碼,你可以記憶一條你的語句,即方便記憶也不以破解。
更新計劃
2022年09月17日22:01:02(周六)
- 完成密碼字典的收集工作
- 因為我長期(四年)幫他人刷網課,所以手頭上有大量的密碼數據。
2022年10月12日12:45:54(周六)
- 完成絕50%的內容,完成密碼統計的lua腳本
2022年11月14日19:49:58(周一)
- 絕大多數內容
- 預計下周會分享出統計密碼規律的腳本
如果本篇文字對您有所幫助,可以分享給您的好友!