密碼保護

當我們把帳號密碼都存在資料庫當中,有個最大的隱憂就是,一旦資料庫遭駭,駭客就可以拿到所有的帳號密碼,造成資訊安全上的危害。

以下簡單簡介常見的幾種密碼保護方式:

編碼

編碼,encode;解碼,decode

編碼並不會修改資料、也沒有任何加密的效果,單純就是換個方式來表達資料而已。最常見的就是摩斯密碼。

對資訊安全,一點幫助都沒有。

加密

加密,encryption

資料加密之前叫做「明文 plaintext」,加密之後叫做「密文 ciphertext」。「加密」是明文變密文,「解密」是密文變明文。

加密有幾個特性:

  • 加密是一對一的關係,也就是說密文在固定加密演算法下,只會對應到一個明文。因而衍伸加密的重要特性,可以解密
  • 需要密鑰 (key) 才可以進行加密及解密。
  • 分為對稱加密及不對稱加密。
    • 對稱加密只會有一把密鑰。常見的對稱加密法是 AES。
    • 不對稱加密會有兩把密鑰,一把公鑰 ( public key ) 一把私鑰 ( private key ),公鑰負責加密,私鑰負責解密。常見的不對稱加密法是 RSA。

雜湊

雜湊,Hash function,又稱雜湊函式或是雜湊演算法

雜湊有幾個特性:

  • 是單向函式 / 演算法,不能從輸出還原出原本的輸入。
  • 同樣的輸入經過雜湊後,一定會得到同樣的輸出。
  • 不同長度的輸入,會得到固定長度的輸出。
  • 類似鴿籠原理,因為是固定長度的輸出,所以不同輸入可能會產生同個輸出。這樣的情況稱為碰撞 Collision。但一般知名的雜湊發生碰撞的機率很低。
  • 通常會加鹽 (salting)。加鹽通常會自動幫使用者產生一段亂碼,可以穿插放在雜湊前中後,有資安概念的可能會每個人都加上一樣的鹽,厲害點的可以每個人的鹽都不同。一般鹽會由亂數產生,然後把鹽也存在資料庫中,這樣就能有更高的防範,

常見的雜湊演算法:

  • MD5 ( 已被證實不安全 )
  • SHA-1 ( 已被證實不安全 )
  • SHA-256 ( 比 MD5 還強、安全性更高的雜湊函數,但對於伺服器來說,越安全、也代表速度越慢 )

但雜湊也不是說不能解,其實就有一張彩虹表(rainbow table),用原本已經做好字串與雜湊值對照的表格,去強硬破解資料庫裡的密碼。所以由此就可以知道加鹽的重要性。

加密及雜湊兩個在資訊領域中,都是對資料的處理方法,兩者最大的差別就在於

加密可以進行解密(可逆),但雜湊不行還原(不可逆)。

除此之外, hash 也常用在檢查檔案的完整性,許多軟體會提供 hash 過後的文字(校驗碼),讓使用者下載過後可以自行驗證檔案是否有被更改或加料過。

資料來源

推薦閱讀

評論

無法加載 Disqus 評論系統,請確保您的網絡能夠正常訪問。