9. 安全考虑
QUIC 使用 TLS 的安全属性, 但也引入了若干需要独立分析的问题. Session resumption 可能使服务器把原连接和恢复连接关联起来, 从而影响隐私; 客户端可以选择不启用恢复, 并且不应重复使用 ticket.
0-RTT 数据可能被重放. 应用协议必须定义哪些请求可以安全地在 0-RTT 中发送, 并避免让重放触发不可接受的副作用. 服务器也需要根据保存的参数判断是否接受 0-RTT.
在地址验证前, QUIC 服务器受到放大攻击限制. TLS certificate chain、transport parameters 和握手消息大小都会影响服务器在未验证客户端地址前可发送的数据量. 控制证书链大小和 ClientHello 大小对性能和抗滥用都很重要.
Header protection 提供对 Packet Number 和 Key Phase 等字段的机密性保护, 但这些字段最终通过 packet protection 的 associated data 获得认证. 实现必须避免在移除 header protection、恢复 packet number、解保护 packet、处理 key update 时产生 timing side channel.
QUIC 使用与 TLS 记录层不同的标签派生 packet protection key、IV 和 header protection key, 以维持跨协议密钥分离. 新 QUIC 版本应定义新的派生标签和 Initial secret salt. QUIC 还依赖端点生成安全随机数, 包括 connection ID 以及 TLS 间接使用的随机值.