奔跑中的奶酪

泄露事件頻發,一篇文章把密碼管理說清楚

導讀

泄露事件頻發,一篇文章把密碼管理說清楚

最近,京東公司的發展可謂不太平,公司頻發各類新聞事件,近日又有傳言“京東泄露5千萬用戶數據”一事,京東方面對此進行了緊急辟謠,確認這些數據并非京東數據。固然,泄露的數據并非是京東的,但數據泄漏的事情實實在在發生了。

自"CSDN密碼外泄門"事件發生后,國內就不斷發生數據泄露的事件,涉及的網站也越來越大,我們用戶的數據安全頻頻受到威脅。奶酪就此打算談談如何做好密碼管理。

一、你的密碼是如何被盜的?

一般來說,要破解密碼,最笨的方法是“暴力破解”,就是通過窮舉一定長度的字符組合來破解密碼。為了提高成功率,黑客們還會使用“字典破解”,也就是將已破解了的密碼編輯成一本“密碼字典”,使用這份密碼字典進行暴力破解的幾率會大大提高。可盡管如此,成功率還是不如意,于是黑客們就會在下面三個階段進行做文章,盜取你的密碼。

一是用戶輸入密碼時,比如監聽鍵盤記錄的盜號木馬。二是密碼傳送到服務器時,比如仿造的釣魚網站,比如公共WIFI抓包。第三是破解網站的密碼數據庫,比如“CSDN密碼外泄門”就是密碼數據庫的泄露。

(釣魚網站 ↑)

對于第一種情況,我們只需要使用安全軟件就能避免,當年那種盜號木馬猖獗的現象也已經不復存在。第二種情況也只要提高防范意識,注意甄別網站的真實鏈接,不使用公共WIFI也能避免。

如果說前面兩種情況,用戶還是有主動權的,第三種情況則完全被動,你把帳號密碼交給了網站,如果網站保管不當,就會被黑客攻擊,你的密碼就會泄漏出去。業界通常把竊取網站密碼數據庫的行為稱為“拖庫”。

密碼數據庫一旦被攻陷,如果該網站的密碼數據庫未經加密,那你的密碼就等同于裸露在黑客面前,之前爆出的“CSDN密碼外泄門”就是明文儲存密碼,可即使網站做了加密處理,也同樣有被破解的風險。

(竊取網站密碼數據庫 ↑)

通常來說,大多數網站的密碼數據庫都會使用 MD5 加密,MD5 加密是將用戶密碼散列成32位字符的方法進行加密,比如「123456」會被加散列為「E10ADC3949BA59ABBE56E057F20F883E」,這個過程是單向不可逆的,理論上是無法通過密文倒推出原始密碼來。

但 MD5 只是一種哈希算法,嚴格來說它算不上是一種加密算法。因此 MD5 破解難不倒黑客,一些經常被人們使用的密碼,比如 123456,黑客們就會對這些密碼進行枚舉破解,并把得到密文做成一個索引表,由此來反推原始密碼,這個索引表也被稱之為“彩虹表”。業界通常把黑客破解密碼數據庫的行為叫做“洗庫”。

在很多 MD5 解密查詢的網站上(比如 www.cmd5.com),如果你的密碼很簡單,加密后的 MD5 密文都能反查出原始密碼來。

MD5解密

(MD5解密 ↑)

你可能會問了,這是不是意味著所有網站的密碼數據庫都不安全了呢?并不是的,有社會責任擔當的網站都會使用 MD5+Salt (俗稱加鹽)的方法來進行雙重加密,其過程為:MD5( MD5 ( 你的密碼 ) + Salt )

就是將你的密碼算出一個MD5值,接著會加上一個 Salt 隨機數,然后再得出一個新的MD5值,這樣的處理可以大大增高安全性。一些網站還會使用 SHA-256、SHA-512、bcrypt 等安全性更高的加密方式,但對于大部分中小網站來說,MD5+Salt 已經足夠安全,除非你犯了下面兩個錯誤。

二、你的密碼被盜的原因是什么?

你的密碼之所以被盜,簡單來說,是因為:密碼太簡單 + 多個網站使用同樣的密碼。

密碼太簡單的安全隱患是顯而易見的,黑客非常容易就能破解你的密碼,從而“洗庫”成功。國外有一家叫 SplashData 的網站,每年都會從已遭泄漏的密碼數據中取樣分析出一個“最差密碼”的排行榜來。結尾不出意外,「123456」和「password」繼續蟬聯了榜單的第一二名,其他的密碼也主要是單詞和數字序列,都是易記但爛大街的密碼。

2018最差密碼排行榜

2018最差密碼排行榜 ↑)

密碼被盜的另外一個重要原因,是在多個網站上使用同樣的密碼。

這就好比一把鑰匙可以開很多扇門。如果某個網站的密碼數據庫泄漏了,又或者黑客們先找一些容易攻破的網站下手,得到這些網站的密碼數據庫,然后黑客們就會拿著你在這些網站上的帳號密碼,去其他的網站上測試登錄,業界把這個行為稱之為“撞庫”。

多個網站使用同樣的密碼

多個網站使用同樣的密碼 ↑)

在黑市市場里,黑客還會將破解的密碼數據庫出售或者互換,久而久之形成的“社工庫”會非常龐大,撞庫成功的幾率就會非常高,你的密碼被盜也就不奇怪了。

黑客活動環節

黑客活動環節 ↑)

三、如何讓保障你的密碼安全?

想要保障密碼的安全,不被黑客攻擊,我們就需要使用復雜密碼來防止洗庫。為了防止撞庫,我們就要對密碼進行分級,在不同網站使用不同的密碼

1,使用復雜密碼。

密碼的強度與密碼長度、字符范圍、隨機性相關。密碼長度自然是越長強度越高,8位是基本的要求。字符范圍是指是否包括大寫字母、小寫字母、數字和特殊字符,每增加一種字符,密碼強度就會成幾何倍數增加。隨機性指的是密碼不具有明顯的特征,比如 123456,password,iloveyou 這類密碼。

在網站 HowSecureIsMyPassword 中測試 123456asd 、123456asdF、123456asdF! 的暴力破解難度分別為 42分鐘、8個月和400年。

howsecureismypassword

(42分鐘暴力破解密碼 123456asd ↑)


2,密碼分級,在不同網站使用不同的密碼。

對密碼進行分級,在不同網站使用不同的密碼最大的好處是,即使 A 網站發生了密碼泄漏,我們在 B 網站上的密碼也不受影響。根據密碼的使用場景,我們可以把密碼分為三個級別:財產級密碼、重要級密碼、一般性密碼。

財產級密碼:
與財產相關的密碼。通常只能用數字做為密碼,比如銀行卡密碼、支付密碼、手機PIN碼、保險箱密碼等。
重要級密碼
與重要隱私相關的密碼。比如郵箱、門戶網站、社交網站、購物網站、密碼管理工具主密碼、加密文件密碼等。
一般性密碼:
財產級和重要級密碼之外的密碼都可以歸為這類。包括小眾網站、小眾論壇,臨時帳號、共享帳號、寬帶WIFI等。

密碼分級

(密碼分級 ↑)

四、如何讓你的密碼安全又好記?

為了保障密碼的安全,人們通常會使用更長更復雜的密碼,其結果是導致經常記不往密碼,每次登錄都要使用“找回密碼”功能,這時人們又會開始轉向于使用簡單的密碼,又會在多個網站上使用同樣的密碼,密碼的安全性和易記性往往很難兼得。所以,密碼管理,首先是策略的選擇問題。

財產級密碼,通常只有 6-8 位數字密碼,簡單不容易忘記,我們完全可以用大腦去記,即使忘記了也可以用身份證找回。只要別使用生日/電話做為密碼就行,而且這類密碼都有很強的防范機制,輸入錯誤幾次后就會鎖定,還有短信提醒之類的。

一般性密碼,通常是不怎么重要,即使丟失被盜也沒啥大不了的密碼。這就解釋了為什么“最差密碼排行榜”第 13 名會是"welcome",像是在和黑客隔空喊話,說你快來盜我的密碼吧,因為這類密碼沒什么重要的。還有這類密碼的防范措施通常較弱,黑客是能輕易破解的。

所以,對于這類一般性密碼,我們完全可以使用一個通用的密碼,比如 123456asdF

密碼管理分級

(管理管理分級 ↑)

而我們真正需要管理的密碼是重要級密碼

重要級密碼,通常是那些可以信任的大公司,這些大公司網站會有較強的密碼保護機制,比如驗證碼登錄,異地IP登錄提醒,手機短信驗證等。我們要做的就是,確保在這些網站上使用的是復雜密碼,而且每個網站都不一樣。而為了能輕松記住這些密碼,我們可以設計一套密碼規則:「基礎密碼 + 變化規則

1、選定一個基礎密碼。

選擇一句對自己有意義又能容易記住的話,它可以是一句古詩,一段歌詞,一句名人名言,又或者是你生編硬造的話,只要你能記住就行,然后取這句話的拼音或者英文單詞首字母做為基本密碼。比如“Nothing Gonna Change My Love For You”縮短為"ngcmlfy",又比如“人帥也要多讀書”縮短為“rsyydds”。

我們以“高效方法論2019”轉換為基礎密碼“gxffl2019”來舉例。

2、變形這個基礎密碼。

密碼的復雜度很重要,密碼是否包含有大小寫字母、數字、特殊符號的差別是巨大的。特殊符號因為沒有意義,加入到密碼中來會提高記憶難度,一個好的應對方法是:對原有密碼里的字母進行變形,使用相似的特殊字符來替代部分字母。比如

字母變為特殊符號:
把 a 變成 @,b 變成 &,c 變成 (,h 變成 #,s 變成 $,l 變成 !,x 變成 * 等。

如果密碼中有數字序列,也會導致密碼有明顯的特征,比如 2019 代表的就是年份,應對方法是:對原有密碼里的數字進行變形,使用字母來替代部分數字。比如

數字變為字母:
把 2 變成 z,3 變成 e,4 變成 a,5 變成 s,7 變成 t,9 變成 g 等。(3,4,7 與大寫字母 E,A,T 相似)

基礎密碼轉換過程:
高效方法論2019 --> gxffl2019 --> g*ff!2019--> g*ff!z01g

3、基礎密碼加入網站標識。

取網站域名的第1、2位字母和第3、4位字母,分別加入到基礎密碼的開頭和結尾
比如 baidu.com 就是 bag*ff!z01gid,google.com 就是 gog*ff!z01gog。

接著使用駝峰式大小寫,把密碼的第 2 位字母和倒數第 2 位字母變成大寫字母,
也就是 bAg*ff!z01gId 和 gOg*ff!z01gOg。

基礎密碼轉換過程:
高效方法論2019 --> gxffl2019 --> g*ff!2019 --> g*ff!z01g --> bag*ff!z01g9id --> bAg*ff!z01gId

密碼轉換

(基礎密碼轉換過程 ↑)

到目前為止,我們就得到了一份可以應用于多個網站,看似亂碼,但極為安全且容易記的密碼清單了。

五、密碼管理工具可以取代人工管理嗎?

現在開始流行一種使用工具來做密碼管理的方法,思路是將所有密碼交由工具管理,我們只需要記住一個主密碼,而且生成密碼、記憶密碼和填寫密碼都由工具來自動完成。比如有 Lastpass、KeePass 和 1PassWord。就安全性而言,這些密碼管理工具鼓勵使用隨機密碼,也有多個網站使用同樣密碼的測試提醒,配合 AES-256 的加密算法,完全沒有破解的可能。

LastPass 是一款將密碼保存在云端的密碼管理工具,KeePass 則是將密碼保存在本地,開源免費,但上手難度較大,1PassWord 可以說是前兩者的結合體,綜合了兩者的優點,但價格較貴,價格大約需要20元一個月。總的來說,免費且易用的密碼管理工具,LastPass 是目前更好的選擇。

(LastPass ↑)

那把密碼放在 LastPass 的服務器上安全嗎?

答案是安全的。LastPass 的加密方法是把帳號和主密碼通過算法得到一個值,然后再用個值去加密用戶的各個密碼,然后儲存在服務器上。所以不用擔心,黑客即使攻破了 LastPass 的服務器(有過被攻破的記錄),因為無法破解數據庫,黑客除了把你的密碼數據庫刪除外,其他什么都做不了,況且 LastPass 加密解密的過程都是在本地進行。

那密碼管理工具能完全取代人工管理密碼嗎?

答案是不能的。首先,密碼管理工具都是要收費的,這類工具目前還不是一種基礎性的工具。1PassWord 需要大約 20元一個月,KeePass 雖然免費,但上手難度高。LastPass 雖然也免費,但要在多個設備上同步就需要付費了,LastPass 的這種免費策略可以理解為一種變相的收費策略。

還有一個問題就是,在一些安全性要求高的網站,密碼工具的自動填寫功能會失效,也無法直接復制粘貼密碼,這時你需要手動輸入一長串隨機的復雜字符,想必你一定會抓狂吧。

所以,使用基礎密碼變形為主,密碼管理工具為輔的密碼管理方法更為明智。

結尾

1,本文由 奔跑中的奶酪 原創創作,歡迎 打賞,歡迎轉載,但要注明出處,歡迎訂閱關注,歡迎留言評論。
2,歡迎關注奶酪 公眾號(ID: runningcheese01)訂閱博客里沒有的內容,以及奶酪所有原創資源下載。
3,歡迎訂閱我的 “奶酪書簽專業版”。(15年沉淀,超過3000多個分類井條有序的好用實用網站 html 書簽)

注:本文由 奔跑中的奶酪 作者:奔跑中的奶酪 發表,其版權均為作者所有,如需轉載,請注明作者名字以及文章來源。
23
lwj6855leehome1988

評論:

7 條評論,訪客:7 條,站長:0 條
  1. 奔跑的??
    奔跑的??發布于: 

    last pass不7是免費同步了嗎?

  2. 一個平凡人
    一個平凡人發布于: 

    從入門到熟練:KeePass全網最詳使用指南:https://post.m.smzdm.com/p/713042/

    這是在網上看到的很詳細的KeePass介紹!

  3. 麥坤
    麥坤發布于: 

    文章最后一句話,讓我對密碼管理變得瞬間簡單了。 基礎密碼告訴他,我是帥哥,讓他琢磨去吧,哈哈

  4. Jesse
    Jesse發布于: 

    最近換了Bitwarden,感覺還不錯啊

  5. FL
    FL發布于: 

    那么enpass是不是等同于1password?

      • FL
        FL發布于: 

        我說的是密碼數據處理的方式,兩家應該是差不多吧,還是enpass安全性差很多?

發表評論

分分彩哪个平台正规