SSL與TLS之https憑證系統秘辛

概論[編輯]

TLS協定採用主從式架構模型,用於在兩個應用程式間透過網路建立起安全的連線,防止在交換資料時受到竊聽及篡改。

TLS協定的優勢是與高層的應用層協定(如HTTPFTPTelnet等)無耦合。應用層協定能透明地執行在TLS協定之上,由TLS協定進行建立加密通道需要的協商和認證。應用層協定傳送的資料在通過TLS協定時都會被加密,從而保證通訊的私密性。

TLS協定是可選的,必須組態客戶端和伺服器才能使用。主要有兩種方式實現這一目標:一個是使用統一的TLS協定通訊埠(例如:用於HTTPS的埠443);另一個是客戶端請求伺服器連接到TLS時使用特定的協定機制(例如:郵件、新聞協定和STARTTLS)。一旦客戶端和伺服器都同意使用TLS協定,他們通過使用一個交握過程協商出一個有狀態的連接以傳輸資料[1]。通過交握,客戶端和伺服器協商各種參數用於建立安全連接:

  • 當客戶端連接到支援TLS協定的伺服器要求建立安全連接並列出了受支援的密碼組合(加密密碼演算法和加密雜湊函式),交握開始。
  • 伺服器從該列表中決定加密和雜湊函式,並通知客戶端。
  • 伺服器發回其數位憑證,此憑證通常包含伺服器的名稱、受信任的憑證頒發機構(CA)和伺服器的公鑰。
  • 客戶端確認其頒發的憑證的有效性。
  • 為了生成對談金鑰用於安全連接,客戶端使用伺服器的公鑰加密隨機生成的金鑰,並將其傳送到伺服器,只有伺服器才能使用自己的私鑰解密。
  • 利用亂數,雙方生成用於加密和解密的對稱金鑰。這就是TLS協定的交握,交握完畢後的連接是安全的,直到連接(被)關閉。如果上述任何一個步驟失敗,TLS交握過程就會失敗,並且斷開所有的連接。