hash不可逆加密
【資安議題】網站中的帳號密碼安全嗎?hash不可逆加密|天矽科技網頁設計
目錄:
➤ 帳號密碼與資安
➤ 不可逆的加密方式
➤ 除了你自己 沒人知道你的密碼
➤ 網站帳號密碼要注意什麼
帳號密碼與資安
我們都知道,要在網站中建立資料,都會先設定一組帳號密碼,才能將必要的資料記錄在網站中,並達到輕鬆的登入及編輯資料。
如今資安意識普及,企業網站有義務保護好每一組帳號密碼及每一個客戶的個人資料,以避免資料外洩與個資盜用,但是企業網站要怎麼保護好這些帳號密碼?
也許有些人會認為「只是」一組帳號密碼,被盜了,只要發通知給我、再去更改密碼就好了,但是事情可不是這麼簡單!我們很多人為了方便記憶,都會使用同一組帳號和同一組密碼,設定在不同的網站與社群軟體上,比如Google的帳號密碼,很可能就跟你的Facebook、Twitter或是某個購物網站的帳號密碼是同一組,那麼…一組帳號密碼被知道了,也就等於其他帳號也都一起被盜了。
在過去,帳號密碼通常會直接以明碼的方式儲存在資料庫中,只要駭客想辦法得到資料庫,帳號密碼就會遭到外洩,比如我儲存在資料庫的密碼是tsg1234,那麼資料庫顯示的就一樣是tsg1234。
因此,如果密碼在儲存到資料庫之前,有使用「不可逆的加密方式」進行加密的話,就算資料庫被駭客取得,他所得到的資料也會是加密過後的狀態,根本無法使用,比如我儲存在資料庫的密碼是tsg1234,那麼加密過後就會變成SlsKLfa1EYDPUKRw7oq4btBQNcD8HCvd這種樣子,而不可逆加密就是沒有辦法將加密過後的狀態回推變回tsg1234。
不可逆的加密方式
加密是什麼?加密就是將明文資訊改變為難以讀取的密文內容,使之不可讀的過程。而加密與解密是成對的,通常可以加密就可以解密、知道密文跟密鑰,就可以知道明文,但hash不是,它是一種不可逆的加密方式,簡單來說,你知道hash的演算法和結果,但卻沒有辦法回推原本輸入的明文是什麼。
客戶註冊帳號密碼,系統會將hash過後的密碼紀錄進資料庫,之後當客戶登入密碼,系統會把輸入的密碼hash過,再跟資料庫比對,如此系統就知道密碼是不是正確的了。所以就算駭客偷走資料庫,他也沒有辦法回推原本的密碼之明碼,如此就無法使用了。
這個hash加密方式,也是最常見的密碼儲存機制,像我們天矽科技也是使用此加密方式,提升資訊安全的保護性。
除了你自己 沒人知道你的密碼
除了你自己,沒有人會知道你的密碼,包括網站及開發者本身,都不會知道!為什麼?
這是因為,密碼加密方式不可逆,hash過後儲存在資料庫的密碼沒有辦法回推為原本輸入的明文,而資料庫更不會儲存你的原始密碼,所以…這個密碼資料庫不會知道、開發者不會知道,沒有辦法還原的密碼,只有帳號密碼所有者自己會知道。
就像先前舉例的,我設定的明文密碼是tsg1234,經過加密後就會變成SlsKLfa1EYDPUKRw7oq4btBQNcD8HCvd而不是tsg1234,並且使用hash加密方式,更無法將此加密過後的帳號回推為明文。
既然只有自己知道這組密碼,還不能回推回來,這樣忘記密碼怎麼辦?
忘記密碼
既然你的密碼資料庫不會知道、開發者不知道,也沒有辦法回推還原密碼,那麼忘記密碼的時候,在沒辦法「找回密碼」的情狀下,就只能麻煩你「重設密碼」了。
以天矽科技的例子來說,使用密碼的規則會是這樣:
- 使用hash雜湊 512 位元編碼。
- 使用者送出忘記密碼需求後,網站自動發出一組新密碼到使用者信箱。
- 使用者使用新密碼登入會員專區後,可再自行修改成一組自己好記的新密碼(這組密碼一樣只有你會知道)。
網站帳號密碼要注意什麼
其實有很多的網站在個人資料保護上做得相當不健全也相當的脆弱,有些駭客只要簡單改個網址就能輕鬆獲得帳號密碼與資料,或是安全性不佳的網站,想要拿到資料庫也不是一件很困難的事情。
所以如果有一天,你忘記了某個網站的密碼,並且這個網站可以輕鬆的「找回密碼」,也就是這個網站會提供你原本設定的那個舊密碼,那你就要當心了;網站可以輕鬆的找回密碼,就表示當駭客竊取並破解該網站的資料庫時,會一併得到你的詳細的帳號密碼資料,資訊安全堪憂!
如果你在某個網站選擇忘記密碼,並且沒有辦法找回原本設定的那個密碼,問開發者能不能協助取回也沒有辦法時,不要生氣,這是因為該網站有做足資安,資料庫不會儲存你的密碼、開發者也沒有辦法從加密後的密文中回推原本輸入的明碼,這時只能重新設定密碼再登入囉!
參考資料:
✔ Cymetrics Tech Blog|為什麼忘記密碼時只能重設,不把舊密碼告訴我?
✔ 維基百科|加密