Security

SSL 和 TLS 之間的確切協議級別差異是什麼?

  • October 15, 2014

在提出這個概述問題之後,這是一次技術性的深入探討。

SSL 和 TLS 之間的協議區別是什麼?

真的有足夠的差異來保證改名嗎?(對於較新版本的 TLS,將其稱為“SSLv4”或 SSLv5)

SSLv2 和 SSLv3 完全不同(現在兩者都被認為是不安全的)。SSLv3 和 TLSv1.0 非常相似,但有一些區別。

您可以將 TLSv1.0 視為 SSLv3.1(實際上這就是交換記錄中發生的情況)。將TLSv1.0TLSv1.1TLSv1.2進行比較更容易,因為它們都已在 IETF 中進行了編輯,並且或多或少遵循相同的結構。SSLv3 由不同的機構 (Netscape) 編輯,這使得發現差異變得更加困難。

以下是一些差異,但我懷疑我可以將它們全部列出:

  • ClientHello消息(客戶端發送的第一條消息,用於啟動握手)中,版本{3,0}為 SSLv3、{3,1}TLSv1.0 和{3,2}TLSv1.1。
  • ClientKeyExchange不同的。
  • MAC/HMAC 不同(TLS 使用 HMAC,而 SSL 使用早期版本的 HMAC)。
  • 密鑰派生不同。
  • Finished在 SSLv3 中發送 SSL/TLS 消息後,可以直接發送客戶端應用程序數據。在 TLSv1 中,它必須等待伺服器的Finished消息。
  • 密碼套件列表不同(其中一些已從SSL_*to重命名TLS_*,保持相同的 ID 號)。
  • 關於新的重新談判延期也存在分歧。

我強烈推薦Eric Rescorla 的書 - SSL and TLS: Designing and Building Secure Systems , Addison-Wesley, 2001 ISBN 0-201-61598-3,如果你真的想要更多細節的話。我從這本書中了解到了上面提到的一些要點。作者在解釋一些 SSL/TLS 消息時偶爾會提到 SSLv3 和 TLS 之間的區別(僅在本書編寫時為 v1.0),但您確實需要這些消息的背景說明才能有機會理解(此處不適合從本書中複製/粘貼)。

引用自:https://serverfault.com/questions/178561