TLS 版本之间有什么区别?

信息安全 密码学 tls
2021-08-17 05:47:32

如果我错了,请纠正我,但我的理解是 SSLv3 和 TLSv1 只是早期协议的重命名......但 TLSv1 增加了在同一端口上拥有安全和不安全流量的能力。

所有新的 TLS 规范有什么区别和好处?

2个回答

我喜欢yaSSL的这篇博客文章,描述了这些差异: http ://www.yassl.com/yaSSL/Blog/Entries/2010/10/7_Differences_between_SSL_and_TLS_Protocol_Versions.html

我将博客中的关键片段复制到这里:

" SSL 3.0 [..] SSL 3.0 在 SSL 2.0 上的一些主要改进是:

  • 将数据传输与消息层分离
  • 即使在使用导出密码时也使用完整的 128 位密钥材料
  • 客户端和服务器发送证书链的能力,从而允许组织使用超过两个证书深度的证书层次结构。
  • 实施通用密钥交换协议,允许 Diffie-Hellman 和 Fortezza 密钥交换以及非 RSA 证书。
  • 允许记录压缩和解压缩
  • 遇到 2.0 客户端时能够回退到 SSL 2.0

TLS 1.0 [..] 这是对 SSL 3.0 的升级,差异并不显着,但它们足够重要,以至于 SSL 3.0 和 TLS 1.0 不能互操作。SSL 3.0 和 TLS 1.0 之间的一些主要区别是:

  • 密钥导出函数不同
  • MAC 不同 - SSL 3.0 使用早期 HMAC 的修改,而 TLS 1.0 使用 HMAC。
  • 完成的消息是不同的
  • TLS 有更多警报
  • TLS 需要 DSS/DH 支持

TLS 1.1 [..] 是对 TLS 1.0 的更新。主要变化是:

  • 隐式初始化向量 (IV) 被替换为显式 IV,以防止密码块链接 (CBC) 攻击。
  • 填充错误的处理更改为使用 bad_record_mac 警报而不是 decryption_failed 警报来防止 CBC 攻击。
  • IANA 注册管理机构是为协议参数定义的
  • 过早关闭不再导致会话不可恢复。

TLS 1.2 [..] 基于 TLS 1.1,TLS 1.2 包含改进的灵活性。主要区别包括:

  • 伪随机函数 (PRF) 中的 MD5/SHA-1 组合已替换为密码套件指定的 PRF。
  • 数字签名元素中的 MD5/SHA-1 组合已替换为单个哈希。签名元素包括一个明确指定使用的哈希算法的字段。
  • 对客户端和服务器指定它们将接受哪些散列和签名算法的能力进行了大量清理。
  • 添加了对具有其他数据模式的经过身份验证的加密的支持。
  • TLS 扩展定义和 AES 密码套件被合并。
  • 更严格地检查 EncryptedPreMasterSecret 版本号。
  • 许多要求被收紧
  • verify_data 长度取决于密码套件
  • Bleichenbacher/Dlima 攻击防御的描述已清理。

根据维基百科的文章(如果可以信任的话):

  • TLS 1.1 版:
    • 增加了对密码块链接 (CBC) 攻击的保护。
    • 隐式初始化向量 (IV) 已替换为显式 IV。
    • 更改填充错误的处理。
    • 支持参数的 IANA 注册。
  • TLS 1.2 版
    • 伪随机函数 (PRF) 中的 MD5-SHA-1 组合已替换为 SHA-256,并可选择使用密码套件指定的 PRF。
    • Finished 消息哈希中的 MD5-SHA-1 组合已替换为 SHA-256,并可选择使用密码套件特定的哈希算法。
    • 数字签名元素中的 MD5-SHA-1 组合已替换为握手期间协商的单个哈希,默认为 SHA-1。
    • 增强客户端和服务器指定它们将接受哪些哈希和签名算法的能力。
    • 扩展对经过身份验证的加密密码的支持,主要用于高级加密标准加密的 Galois/Counter 模式 (GCM) 和 CCM 模式。
    • 添加了 TLS 扩展定义和高级加密标准密码套件。