Skip to main content

RFC 9001 - 使用 TLS 保护 QUIC

发布日期: 2021年5月
状态: 标准跟踪协议 (Standards Track)
作者: M. Thomson (Mozilla), S. Turner (sn3rd)


摘要 (Abstract)

本文档描述了如何使用传输层安全协议 (Transport Layer Security, TLS) 来保护 QUIC.


本备忘录的状态 (Status of This Memo)

这是一份互联网标准跟踪文档.

本文档是互联网工程任务组 (Internet Engineering Task Force, IETF) 的产品. 它代表了 IETF 社区的共识. 它已经过公开审查,并由互联网工程指导组 (Internet Engineering Steering Group, IESG) 批准发布. 有关互联网标准的更多信息,请参阅 RFC 7841 的第2节.

有关本文档的当前状态、勘误表以及如何提供反馈的信息,可访问 https://www.rfc-editor.org/info/rfc9001.


Copyright (c) 2021 IETF Trust 及文档作者. 保留所有权利.

本文档受 BCP 78 和 IETF Trust 关于 IETF 文档的法律条款 (https://trustee.ietf.org/license-info) 的约束,这些条款在本文档发布之日有效. 请仔细阅读这些文档,因为它们描述了您对本文档的权利和限制. 从本文档中提取的代码组件必须包含简化的 BSD 许可证文本,如 Trust Legal Provisions 第4.e节所述,并且不提供简化的 BSD 许可证中所述的保证.


目录 (Table of Contents)

  • 1. Introduction (简介)
  • 2. Notational Conventions (符号约定)
    • 2.1. TLS Overview (TLS 概述)
  • 3. Protocol Overview (协议概述)
  • 4. Carrying TLS Messages (承载 TLS 消息)
    • 4.1. Interface to TLS (TLS 接口)
      • 4.1.1. Handshake Complete (握手完成)
      • 4.1.2. Handshake Confirmed (握手确认)
      • 4.1.3. Sending and Receiving Handshake Messages (发送和接收握手消息)
      • 4.1.4. Encryption Level Changes (加密级别变化)
      • 4.1.5. TLS Interface Summary (TLS 接口摘要)
    • 4.2. TLS Version (TLS 版本)
    • 4.3. ClientHello Size (ClientHello 大小)
    • 4.4. Peer Authentication (对等方认证)
    • 4.5. Session Resumption (会话恢复)
    • 4.6. 0-RTT
      • 4.6.1. Enabling 0-RTT (启用 0-RTT)
      • 4.6.2. Accepting and Rejecting 0-RTT (接受和拒绝 0-RTT)
      • 4.6.3. Validating 0-RTT Configuration (验证 0-RTT 配置)
    • 4.7. HelloRetryRequest
    • 4.8. TLS Errors (TLS 错误)
    • 4.9. Discarding Unused Keys (丢弃未使用的密钥)
      • 4.9.1. Discarding Initial Keys (丢弃初始密钥)
      • 4.9.2. Discarding Handshake Keys (丢弃握手密钥)
      • 4.9.3. Discarding 0-RTT Keys (丢弃 0-RTT 密钥)
  • 5. Packet Protection (数据包保护)
    • 5.1. Packet Protection Keys (数据包保护密钥)
    • 5.2. Initial Secrets (初始密钥)
    • 5.3. AEAD Usage (AEAD 使用)
    • 5.4. Header Protection (包头保护)
      • 5.4.1. Header Protection Application (包头保护应用)
      • 5.4.2. Header Protection Sample (包头保护采样)
      • 5.4.3. AES-Based Header Protection (基于 AES 的包头保护)
      • 5.4.4. ChaCha20-Based Header Protection (基于 ChaCha20 的包头保护)
    • 5.5. Receiving Protected Packets (接收受保护的数据包)
    • 5.6. Use of 0-RTT Keys (使用 0-RTT 密钥)
    • 5.7. Receiving Out-of-Order Protected Packets (接收乱序受保护数据包)
    • 5.8. Retry Packet Integrity (重试数据包完整性)
  • 6. Key Update (密钥更新)
    • 6.1. Initiating a Key Update (发起密钥更新)
    • 6.2. Responding to a Key Update (响应密钥更新)
    • 6.3. Timing of Receive Key Generation (接收密钥生成时机)
    • 6.4. Sending with Updated Keys (使用更新密钥发送)
    • 6.5. Receiving with Different Keys (使用不同密钥接收)
    • 6.6. Limits on AEAD Usage (AEAD 使用限制)
    • 6.7. Key Update Error Code (密钥更新错误代码)
  • 7. Security of Initial Messages (初始消息的安全性)
  • 8. QUIC-Specific Adjustments to the TLS Handshake (QUIC 特定的 TLS 握手调整)
    • 8.1. Protocol Negotiation (协议协商)
    • 8.2. QUIC Transport Parameters Extension (QUIC 传输参数扩展)
    • 8.3. Removing the EndOfEarlyData Message (移除 EndOfEarlyData 消息)
    • 8.4. Prohibit TLS Middlebox Compatibility Mode (禁止 TLS 中间盒兼容模式)
  • 9. Security Considerations (安全考虑)
    • 9.1. Session Linkability (会话可链接性)
    • 9.2. Replay Attacks with 0-RTT (0-RTT 重放攻击)
    • 9.3. Packet Reflection Attack Mitigation (数据包反射攻击缓解)
    • 9.4. Header Protection Analysis (包头保护分析)
    • 9.5. Header Protection Timing Side Channels (包头保护时序侧信道)
    • 9.6. Key Diversity (密钥多样性)
    • 9.7. Randomness (随机性)
  • 10. IANA Considerations (IANA 考虑)
  • 11. References (参考文献)
    • 11.1. Normative References (规范性参考文献)
    • 11.2. Informative References (信息性参考文献)

附录 (Appendices)


相关资源