iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0
自我挑戰組

網路通訊輕鬆聊系列 第 26

初探網路安全(一):密碼大小事,存在伺服器的密碼安全嗎?

在每個要求你註冊會員的新網站,都必須要想一組莫名複雜的密碼,不但長度要夠長、更要包含一堆有的沒的字元。搞的在一個新網站註冊時想密碼的環節都會焦頭爛額,有些人索性就想一組密碼用在所有網站了。

註冊所需的密碼
*註冊所需的密碼

但這樣做安全嗎?顯然所有網站都用同樣的帳號密碼不太妥當,被知道了其中一組,其它組也就不攻自破了。

要了解怎麼做比較好,我們先從一個網站的伺服器是怎麼儲存你的密碼開始吧!

密碼是怎麼被儲存的?存在伺服器的密碼安全嗎?

一般的網站在儲存密碼時,其實都不會將你的密碼以「明文」的方式儲存,而是被打亂了儲存。

例如你有一組密碼叫做 password123,經過一種叫做雜湊(Hash)的演算法打亂之後,會變成一組亂碼如 cbfdac6008f9cab4083784cbd1874f76618d2a97,而網站在儲存你的密碼時就會存下這組亂碼,而不是你原本的密碼原文。

這樣做有什麼好處呢?

首先,就算伺服器不幸被駭客入侵,你的密碼也不會真的被洩漏出來,因為儲存的是密碼經過 Hash 運算後的結果,基本上沒有辦法透過這個結果反推出你的真實密碼為何。

密碼的雜湊運算
*密碼的雜湊運算

那麼當你登入時,網站怎麼知道這組密碼是正確的呢?這就要談到 Hash 的特性了:同一組密碼經過 Hash 的結果,會得到同一組亂數。也就是說網站能夠驗證你的密碼是否正確,但同時又不知道你的真實密碼為何,是不是很神奇呢?

但,不是所有網站都這麼做的

幾年前有個網站叫做我的網站沒加密,就是將一些沒把密碼做 Hash 的網站放上來,讓大家知道在這個網站註冊會員時,密碼是以明文被儲存的。當這個網站的會員資料被竊取時,駭客所拿到的密碼並不是亂數,而是真真實實的密碼呢,如果有人在所有網站都取相同的密碼,就真的慘了!

如何知道密碼是否儲存為明文?

因此在沒幫你密碼加密的網站,最好不要註冊,逼不得已的話,也要有密碼被公開的心理準備,取密碼時最好不要和其它網站的有重複。

但在此之前,我們要如何知道哪些網站用明文儲存你的密碼呢?

可以用忘記密碼來做測試,一般網站由於 Hash 過你的密碼,在你忘記密碼時只能夠讓你輸入新密碼重設。因此當你收到的確認信不是要你重設密碼,而是直接告訴你密碼時,可能就得注意了!

雖然這個網站或許沒有用 Hash 的方式處理你的密碼,也可能是幫你加密後儲存,但這樣也代表當這個網站加密用的金鑰被竊取後,你的密碼還是會被洩漏出去。

如果要人不洩漏秘密,最好的辦法就是不要知道。

參考資料

  1. 我的網站沒加密

上一篇
理解 HTTP(三):透過 HTTP 上網安全嗎?淺談網路安全、HTTPS、中間人攻擊
下一篇
初探網路安全(二):密碼怎麼被「試」出來的
系列文
網路通訊輕鬆聊30

尚未有邦友留言

立即登入留言