@Ineverleft
2年前 提问
1个回答

SSL和TLS之间的主要区别是什么?

在下炳尚
2年前

SSL和TLS之间的主要区别如下:

  • 版本号不同:TLS记录格式与SSL记录格式相同,但版本号的值不同,TLS的版本1.0使用的版本号为SSLv3.1。

  • 报文鉴别码不同:SSL v3.0 和 TLS 的 MAC 算法及 MAC 计算的范围不同。TLS 使用了 RFC-2140 定义的 HMAC 算法。HMAC 算法采用的是异或运算。SSL v3.0 中,填充字节与密钥之间采用的是连接运算

  • 伪随机函数不同:TLS使用了PRF伪随机函数将秘钥扩展成数据块,PRF使用两种散列算法保证其安全性,只有两种算法都暴露数据才会不安全。

  • 报警代码不同:TLS 支持几乎所有的 SSL v3.0 报警代码,而且 TLS 还补充定义了很多报警代码。如解密失败(decryption_failed)、记录溢出(record_overflow)、未知CA(unknown_ca)、拒绝访问(access_denied)等

  • 密文族和客户证书不同:SSL v3.0 和 TLS 存在少量差别,即 TLS 不支持 Fortezza 密钥交换、加密算法和客户证书。

  • certificate_verify 和 finished消息不同:SSLv3.0 和 TLS 在用 certificate_verifyfinished 消息计算 MD5 和 SHA-1 散列码时,计算的输入有少许差别,但安全性相当。

  • 加密计算不同:TLS 与 SSLv3.0 在计算主密值(master secret)时采用的方式不同。

  • 填充不同:用户数据加密之前需要增加的填充字节。在 SSL 中,填充后的数据长度要达到密文块长度的最小整数倍。而在 TLS 中,填充后的数据长度可以是密文块长度的任意整数倍(但填充的最大长度为255字节),这种方式可以防止基于对报文长度进行分析的攻击。