科普文:HTTP2.0 及HTTPS协议【TLS 1.2 和TLS 1.3 异同】

概叙

科普文:HTTP2.0 及HTTPS协议【TLS/SSL 握手协议】-CSDN博客

前面详细梳理了TLS协议的原理和类型,这里我们看看当前https运行环境中的TLS 1.2 和TLS 1.3 异同,推荐优先配置使用TLS 1.3。 

对比项TLS 1.2TLS 1.3
握手速度较慢(2-RTT或1-RTT)更快(1-RTT或0-RTT)
安全性依赖配置(可能不安全)强制前向保密,更安全
加密套件支持多种(含弱算法)仅支持现代AEAD套件
兼容性广泛支持部分旧设备不支持

TLS 1.3 是更安全、更高效的协议,推荐在新系统中优先使用。

TLS(传输层安全协议)是确保互联网通信安全的核心协议,广泛应用于HTTPS网站、电子邮件加密等领域。随着网络安全需求的不断提升,TLS协议经历了多个版本的迭代更新。

TLS 1.2 和TLS 1.3 的相同点

  • 目标‌:两者都旨在提供安全的互联网通信,保护数据免受窃听和篡改。
  • 应用场景‌:都广泛应用于HTTPS、电子邮件、即时通讯等需要加密通信的领域。

TLS 1.2 和TLS 1.3 的不同点

主要差异对比表

特性TLS 1.2TLS 1.3
握手往返次数完整握手需要2次往返(2-RTT)默认1次往返(1-RTT),支持0-RTT
加密套件支持大量传统加密算法仅保留现代安全算法
前向安全性依赖密钥交换方式强制前向安全性
密钥交换单独的消息阶段集成在Client/Server Hello中
会话恢复Session ID或Session Ticket仅支持PSK(预共享密钥)方式
加密开始时间握手完成后才开始加密握手早期就开始加密部分内容
证书请求明确的消息阶段合并到扩展中
密钥派生使用PRF函数使用HKDF
密码套件结构包含密钥交换、认证、加密和MAC算法仅包含加密和哈希算法

1. 握手过程对比

  • TLS 1.2

    • 2-RTT握手:ClientHello → ServerHello → Certificate → ServerKeyExchange → ServerHelloDone → ClientKeyExchange → Finished。
    • 密钥交换:支持静态RSA(无前向安全)或DH(需额外消息)。
  • TLS 1.3

    • 1-RTT握手:ClientHello(含密钥共享参数) → ServerHello(直接生成密钥) → Finished。
    • 0-RTT模式:对之前访问过的服务器可发送加密数据(首条消息),但需注意重放攻击风险。

TLS 1.2 握手流程

  1. Client Hello
  2. Server Hello
  3. Certificate (服务器证书)
  4. Server Key Exchange (可选)
  5. Certificate Request (可选)
  6. Server Hello Done
  7. Client Certificate (可选)
  8. Client Key Exchange
  9. Certificate Verify (可选)
  10. Change Cipher Spec
  11. Finished
  12. Change Cipher Spec
  13. Finished

TLS 1.3 简化握手流程

  1. Client Hello (包含密钥共享信息)
  2. Server Hello (包含密钥共享信息)
  3. Change Cipher Spec
  4. Finished
  5. Change Cipher Spec
  6. Finished

TLS 1.2 握手(4次往返,RTT)

1. Client Hello:客户端发送支持的加密套件、随机数(Client Random)。

2. Server Hello:服务器选择加密套件、返回随机数(Server Random)、证书。

3. 密钥交换

  • 客户端生成预主密钥(Pre-Master Secret),用服务器公钥加密后发送。
  • 服务器用私钥解密获取预主密钥。

4. Finished:双方计算会话密钥,验证握手完整性。

特点

  • 需要2-RTT(如果使用RSA密钥交换)。
  • 支持静态RSA/DH密钥交换(不支持前向保密)。

TLS 1.3 握手(1-RTT 或 0-RTT)

1. Client Hello:客户端发送随机数(Client Random)、支持的加密套件(仅限TLS 1.3支持的套件)、密钥共享参数(如ECDHE公钥)

2. Server Hello:服务器选择加密套件、返回随机数(Server Random)、自己的密钥共享参数(如ECDHE公钥)、证书。

3. Finished:双方计算会话密钥,直接开始加密通信(1-RTT)。

0-RTT模式(快速恢复连接):

  • 客户端缓存上次会话的密钥,直接发送加密数据(但可能面临重放攻击风险)。

特点

  • 强制前向保密(PFS),仅支持ECDHE密钥交换(RSA密钥交换被移除)。
  • 握手更快(1-RTT或0-RTT)。
  • 简化加密套件(仅保留AES-GCM、ChaCha20-Poly1305等现代算法)。

 

2. 加密套件对比

TLS 1.2 支持的算法

  • 密钥交换:RSA, DH, ECDH, DHE, ECDHE
  • 加密:AES-CBC, AES-GCM, Camellia, 3DES, RC4
  • 哈希:SHA-1, SHA-256, SHA-384
  • MAC:HMAC-SHA256等

TLS 1.3 支持的算法(大幅精简)

  • 密钥交换:仅ECDHE(椭圆曲线DH)
  • 加密:仅AES-GCM, ChaCha20-Poly1305
  • 哈希:仅SHA-256, SHA-384
  • 不再单独使用MAC,改用AEAD(认证加密)

  • TLS 1.2

    • 支持不安全的算法:RC4、SHA1、CBC模式(易受Padding Oracle攻击)、静态RSA密钥交换。
    • 需显式协商加密套件(如TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256)。
  • TLS 1.3

    • 仅AEAD加密:如AES-GCM、ChaCha20-Poly1305,删除CBC等不安全模式。
    • 密钥交换与加密套件合并,简化协商(如TLS_AES_128_GCM_SHA256)。
TLS 1.2TLS 1.3
支持多种加密套件(如TLS_RSA_WITH_AES_128_CBC_SHA仅支持AEAD(认证加密)套件,如TLS_AES_256_GCM_SHA384
支持静态RSA/DH密钥交换仅支持ECDHE(前向保密)
可能使用弱算法(如MD5、SHA1)强制使用SHA-256/SHA-384

TLS 1.3 移除的加密套件

  • RSA密钥交换(不支持前向保密)。
  • 静态DH(如TLS_DH_RSA_WITH_AES_256_CBC_SHA)。
  • 弱哈希算法(如MD5、SHA1)。

3. 密钥交换机制

TLS 1.2TLS 1.3
支持RSA、静态DH、ECDHE仅支持ECDHE(前向保密)
预主密钥通过RSA加密传输(可能被中间人攻击)预主密钥通过ECDHE协商(更安全)

TLS 1.3 的改进

  • 移除RSA密钥交换,避免私钥泄露导致历史会话被解密。
  • 1-RTT握手(甚至0-RTT),减少延迟。

4. 安全性对比

TLS 1.3 移除的不安全特性

  1. 移除静态RSA密钥交换‌:不再支持不提供前向安全性的RSA密钥交换
  2. 移除CBC模式加密‌:消除了BEAST等攻击的可能性
  3. 移除SHA-1‌:使用更安全的哈希函数
  4. 移除RC4‌:不再支持不安全的流密码
  5. 移除压缩‌:消除了CRIME攻击的可能性
  6. 移除重协商‌:简化协议并提高安全性
  7. 移除显式IV‌:改为从密钥派生

TLS 1.3 新增安全特性

  1. 0-RTT模式‌:允许在第一个消息中就发送加密数据
  2. 加密扩展‌:保护更多握手信息不被窃听
  3. 密钥分离‌:使用不同的密钥用于不同的目的
  4. 更严格的验证‌:所有握手消息都包含在最终的Finished验证中

  • TLS 1.2:依赖密钥交换方式(如使用RSA则无前向安全)。
  • TLS 1.3:强制使用ECDHE等临时密钥交换,即使私钥泄露,历史会话也无法解密。
安全特性TLS 1.2TLS 1.3
前向保密(PFS)可选(依赖ECDHE)强制支持
抗中间人攻击依赖RSA/静态DH(可能被破解)ECDHE更安全
弱算法支持支持MD5、SHA1等仅支持SHA-256/SHA-384
0-RTT模式不支持支持(但可能有重放攻击风险)

TLS 1.3 的安全优势

  • 移除不安全算法(如RSA密钥交换、CBC模式)。
  • 更强的密钥派生机制(HKDF替代PRF)。
  • 更快的密钥更新(支持KeyUpdate消息)。

5. 性能对比

  • TLS 1.3优势
    • 减少握手延迟(1-RTT提升显著,尤其移动网络)。
    • 0-RTT可加速重复连接(但需权衡重放攻击风险)。
  • TLS 1.2:握手开销较高,但可通过Session Resumption(会话恢复)优化。
性能指标TLS 1.2TLS 1.3
握手延迟2-RTT(RSA)或1-RTT(ECDHE)1-RTT(默认)或0-RTT(快速恢复)
计算开销较高(RSA签名验证较慢)更低(ECDHE更高效)
加密效率CBC模式(易受攻击)仅AEAD(AES-GCM/ChaCha20)

TLS 1.3 的优化

  • 减少握手轮次(1-RTT或0-RTT)。
  • 更快的密钥计算(ECDHE比RSA更快)。
  • 更少的网络往返(减少延迟)。

TLS 1.3 性能优势

  1. 更快的连接建立‌:1-RTT标准握手,0-RTT优化模式
  2. 减少延迟‌:特别有利于移动网络和高延迟环境
  3. 更少的CPU消耗‌:移除了不必要的加密计算步骤
  4. 更小的带宽占用‌:简化的握手过程减少了数据量

0-RTT 潜在风险

虽然0-RTT提高了性能,但需要注意:

  • 重放攻击风险(对非幂等操作)
  • 需要应用层防护措施
  • 不适合敏感操作

6. 兼容性对比

  • TLS 1.2:广泛支持(包括旧系统/设备),但需禁用不安全算法(如BEAST/POODLE缓解)。
  • TLS 1.3:现代浏览器/服务器默认支持(如OpenSSL 1.1.1+、Nginx 1.13+),但旧设备(如Windows 7需更新)可能不兼容。
兼容性TLS 1.2TLS 1.3
旧设备支持广泛支持(旧服务器/客户端)部分旧设备不支持
浏览器支持所有现代浏览器Chrome/Firefox/Edge最新版支持
服务器支持广泛支持Nginx/Apache最新版支持

TLS 1.3 的局限性

  • 某些旧设备(如嵌入式系统)可能不支持。
  • 0-RTT模式可能面临重放攻击风险(需应用层防护)。

应用场景建议

  • 优先TLS 1.3:新系统、高安全要求(如金融、隐私服务)、低延迟场景(如HTTP/2、QUIC)。
  • 降级TLS 1.2:需兼容旧客户端(如IoT设备、旧版Java/Windows)。

升级到TLS 1.3的好处

  1. 更快的网站加载速度
  2. 更强的安全性
  3. 更好的用户体验
  4. 符合最新安全标准

抓包对比示例

  • TLS 1.2:可见明文ClientHello、ServerHello、Certificate等。
  • TLS 1.3:仅ClientHello部分明文,其余握手消息加密。

通过以上对比,TLS 1.3在安全性和性能上显著优于TLS 1.2,但需确保环境兼容性。实际部署时可同时支持两者,并优先协商TLS 1.3。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

01Byte空间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值