逼3.3億用戶改密碼的漏洞長啥樣兒?

逼3.3億用戶改密碼的漏洞長啥樣兒?

小辣椒今天登陸 Twitter 的時候,跳出來這麼一條信息。

逼3.3億用戶改密碼的漏洞長啥樣兒?

難道說,我的密碼未經加密處理就被 Twitter 赤果果的記錄下來了?那 Twitter 不是知道我的賬戶密碼了麼?

隨後,Twitter 密碼存儲出現 bug 的新聞果然迅速傳開。

各大網站對此事件的報道

逼3.3億用戶改密碼的漏洞長啥樣兒?

“ 重大安全漏洞 ”、“ 3.3億用戶 ”,事情被各大新聞媒體形容的還真挺嚴重的。。。很容易就讓人忽視了 Twitter 官方消息的後半部分 ——

bug 已經被修復,且目前沒有查出洩露、盜用的跡象。

逼3.3億用戶改密碼的漏洞長啥樣兒?

不過這次到底是個什麼 bug ?真的會讓用戶的密碼被輕易查看到麼?

這要從事件的起因說起 —— 密碼儲存

現在的科技互聯網公司,用戶量動不動就過億,儲存每一個用戶的密碼,並且不把他們相互混淆可不是件容易事,而

哈希算法( Hashing,又稱散列算法 )能近乎完美的解決這些風險。

逼3.3億用戶改密碼的漏洞長啥樣兒?

逼3.3億用戶改密碼的漏洞長啥樣兒?

聽上去高大上,其實一點不復雜!

哈希算法裡有幾個關鍵的組成部分:Key( 密匙 )、Value( 存儲信息 )、Table( 檢索表 )、Index( 編號 )。

我們把整個驗證登錄的過程想象成去銀行取錢的步驟就很好理解了。

逼3.3億用戶改密碼的漏洞長啥樣兒?

登錄密碼( 即 Value )就是用戶的存款,這些錢隨時可能被用戶要求核實,並且不能被搞混。

而我們的登錄密碼( 即 Value )被算法加密後,會被存儲到一個類似於保險櫃的地方,這個保險櫃就被稱為哈希檢索表 ( Hash Table ),每個保險櫃都會用數字進行編碼 ( 即 Index )。

唯一不同的地方在於,因為被加密過,所以 “ 銀行 ” 並不知道用戶 “ 存款 ” ( 即 Value )的具體情況。

逼3.3億用戶改密碼的漏洞長啥樣兒?

這就是為什麼在我們註冊賬戶時,需要用獨一無二的用戶名、或者註冊郵箱、電話號碼。

這些獨一無二的註冊信息就是我們的 Key,只有有了這個 Key 我們才有權利進到自己的保險櫃。

密碼驗證流程

逼3.3億用戶改密碼的漏洞長啥樣兒?

但因為經過了加密, 所以存儲的密碼具體是什麼並不會被系統記錄,驗證時更多的是驗證吻合度。

在哈希算法裡,密碼經過加密後,會變成一個 Hash

但 Hash 是無法逆向變回密碼的,所以系統並不知道用戶的密碼具體是什麼

用戶在登錄時,系統只需要驗證被輸入的 Hash 是否和保險櫃中的 Hash 吻合就可以了

逼3.3億用戶改密碼的漏洞長啥樣兒?

這也是為什麼,我們在忘記密碼後,系統並不能提供原密碼給我們,因為系統也不知道密碼到底是什麼。

逼3.3億用戶改密碼的漏洞長啥樣兒?

系統能做的只有提供一些列驗證方法,先通過 Key 驗證出你就是賬戶的擁有者,然後讓你重置密碼。把保險櫃裡的東西全部都換咯。

以 QQ 郵箱的找回方式為例

逼3.3億用戶改密碼的漏洞長啥樣兒?

因為運用了加密算法,每個用戶的保險櫃內部情況系統都無法獲取。也就是說,每個用戶的登錄密碼都是受到保護的,連繫統都不知道。

但這次 Twitter 的事件中,很有可能是保險櫃裡出了問題,所有保險櫃裡的密碼情況都被直接、未加密的寫進了系統編程日誌中,只要日誌被黑,密碼就處於沒有保護的狀態,隨時被黑客獲取。

逼3.3億用戶改密碼的漏洞長啥樣兒?

說白了,還真是你的密碼真的會被直接看到。

這問題就很特麼嚴重了。。。不過好在,官方說並沒有發生安全問題。就好比一個人裸體夢遊,突然驚醒發現自己沒有穿衣服,不幸中的萬幸是,沒有任何人看到他裸過。。。

逼3.3億用戶改密碼的漏洞長啥樣兒?

逼3.3億用戶改密碼的漏洞長啥樣兒?

不過話說回來,遇到這種比較容易引起用戶恐慌,並且已經得到解決的 bug,有些公司會當什麼都沒發生悄咪咪的混過去。

Twitter 這次不但沒隱瞞,還出來自曝,不管是不是被最近 Facebook 的事情搞怕了,在小辣椒看來還真是挺聰明的。。。


分享到:


相關文章: