傳輸層安全


傳輸層安全 (简体)

安全套接層(SSL)及其繼任者傳輸層安全(TLS)是在網際網路上提供安全保密的通訊協議,為諸如網站電子郵件、網上傳真等等數據傳輸進行保密。SSL 3.0和TLS 1.0有輕微差別,但兩種規範其實大致相同。

目錄

介紹

TLS利用密鑰演算法網際網路上提供端點身份認證通訊保密,其基礎是公鑰基礎設施(PKI)。不過在實現的典型例子中,只有網路服務者被可靠身份驗證,而其客戶端則不一定。這是因為公鑰基礎設施普遍商業運營,電子簽名證書要花大錢購買,普通大眾很難買的起證書。協議的設計在某種程度上能夠使客戶端/伺服器應用程序通訊本身預防竊聽、干擾(Tampering)、和消息偽造。

TLS包含三個基本階段:

  1. 對等協商支持的密鑰演算法
  2. 基於公鑰加密交換對稱密鑰和基於證書的身份認證
  3. 基於對稱密鑰的數據傳輸保密

在第一階段,客戶端與伺服器協商所用密碼演算法。 當前廣泛實現的演算法選擇如下:

  • 公鑰加密系統:RSA、Diffie-Hellman、DSA及Fortezza;
  • 對稱密鑰系統:RC2、RC4、IDEADES、Triple DES及AES
  • 單向散列函數:MD5SHA

工作方式

双向证书认证的SSL握手过程。  (准确性存疑)
雙向證書認證的SSL握手過程。 (準確性存疑)

首先,TLS的記錄層(Record layer)用於封裝更高層的HTTP等協議。記錄層數據可以被隨意壓縮、加密,與消息驗證碼(MAC)打包在一起。每個記錄層包都有一個content_type段用以記錄更上層用的協議。

客戶端要收發幾個握手信號:

  • 發送一個ClientHello消息,說明它支持的密碼演算法列表、壓縮方法及最高協議版本,也發送稍後將被使用的隨機數。
  • 然後收到一個ServerHello消息,包含伺服器選擇的連接參數,源自客戶端初期所提供的ClientHello
  • 當雙方知道了連接參數,客戶端與伺服器交換證書(依靠被選擇的公鑰系統)。這些證書通常基於X.509,不過已有草案支持以OpenPGP為基礎的證書。
  • 伺服器請求得到客戶端的證書有可能成功,所以連接可以是相互的身份認證。
  • 客戶端與伺服器通過加密通道協商一個共同的「主密鑰」(客戶端與伺服器計算隨機數),這通過精心謹慎設計的偽隨機數函數實現。結果可能使用Diffie-Hellman交換,或簡單的公鑰加密,雙方各自用私鑰解密。所有其他關鍵數據的加密均使用這個「主密鑰」。

TLS/SSL有多樣的安全保護措施:

  • 所有的記錄層數據均被編號,序號用在消息驗證碼(MAC)中。

外部連結

  • SSL/TLS/WTLS原理

參考

本文參考了依GFDL授權發佈的《自由線上電腦詞典》(FOLDOC)。
This article was originally based on material from the Free On-line Dictionary of Computing and is used under the GFDL.

! __







Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History