Red Hat 資料安全(三)

非對稱加密 (Asymmetric Encryption)

加密和解密的金鑰 (key) 是不一樣的,會有兩把 key,一把負責加密、一把負責解密。

公開/私密金鑰

=========================================

方法一:

接收者:產生兩把金鑰,一把是公開金鑰(public key),一把是私密金鑰(private key)妥善保管,將 public key 傳送給對方,要對方以這把 public key 將傳送的資料加密。

傳送者:以收到的 public key 將資料加密 Public Key(Data),開始傳送給接收者。就算有人 sniffer 也沒有解密金鑰,拿到 public key 也無法解密。

接收者:收到加密過的資料,用自已的 private key 將資料解密。Data = Private Key ( Public Key (Data))。

資料:Data

公開金鑰:Public Key

私密金鑰:Private Key

=========================================

方法二:

傳送者:產生兩把金鑰,一把是公開金鑰(public key),一把是私密金鑰(private key),將 public key 傳送給對方,然後將資料以 private key 加密後,傳送給對方。Private Key(Data) 。同時給予一個數位簽章,即 md5sum 檔案。

接收者:收到 public key 和加密過的資料,用 md5sum 來確定原始資料沒被竄改,用 public key 將之解密。Data = Public Key ( Private Key (Data))。

=========================================

HTTPS 加密機制

1. 客戶 ----(要求 https 連線)---> WebServer

2. 客戶 <---(給予 Public Key)---- WebServer

3. 客戶產生 https 連線的 Session Key,用 Public Key 加密。

4. 客戶 ----(傳送 Public Key(Session Key))---> WebServer

5. WebServer 解出 Session Key = Private Key ( Public Key (Session Key))

6. 客戶 <---(以 Session Key 加密連線)---> WebServer

在此過程中,客戶要確定 Public Key 沒有被竄改,所以 WebServer 要一併公佈 Public Key 的 fingerprint,但是這個 WebServer 到底是不是客戶真正要去的 WebServer,這時就要有第三方認證機制,也就是 CA 憑證 (Certificate Authority)。