傳輸層安全


傳輸層安全 (简体)

Free Web Hosting with Website Builder

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

目錄

介紹

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

TLS包含三個基本階段:

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

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

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

工作方式

雙向證書認證的SSL握手過程。

以下簡要介紹SSL協議的工作方式。客戶端要收發幾個握手信號:

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

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

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

  • 所有的記錄層數據均被編號,用於消息驗證碼效驗。

外部連結

  • 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