加载中...
0-RTT 是 TLS 1.3 引入的一项加速特性,允许客户端在重新连接曾访问过的服务器时,无需等待握手完成即可发送应用数据,从而节省一个往返时延。它以牺牲一定安全性为代价换取速度。

| 中文名 | 零往返时间早期数据 |
| 所属协议 | TLS 1.3 |
| 前提条件 | 会话恢复与预共享密钥 |
| 主要收益 | 节省一个握手往返 |
| 主要风险 | 重放攻击 |
0-RTT(Zero Round Trip Time,零往返时间)是 TLS 1.3 提供的一种早期数据发送机制,当客户端与服务器曾建立过会话并保存了预共享密钥时,客户端可以在发送首个握手消息的同时就携带加密的应用数据,把连接建立到发出请求之间的等待时延降为零。
常规的 TLS 握手需要在传输数据前完成密钥协商,即便 TLS 1.3 已将握手压缩到一个往返,重复访问同一站点时这个往返仍是可省去的开销。0-RTT 利用上次会话遗留的会话票据和预共享密钥,让客户端在恢复连接时立即发送早期数据,非常适合追求极致速度的场景。
0-RTT 对于频繁重连的移动端应用、内容分发网络的边缘节点以及短连接密集的接口非常有价值,能显著改善首字节时间和页面加载体验。QUIC 与 HTTP/3 也借鉴了同样的思想来降低连接建立成本。
问:0-RTT 为什么存在重放风险?答:由于早期数据在服务器完整验证前就被发出,攻击者可以截获并重复发送同一份早期数据。因此规范要求只对幂等且无副作用的请求使用 0-RTT,敏感操作应拒绝早期数据。
问:所有请求都能用 0-RTT 吗?答:不应该。像下单、转账这类会改变服务器状态的请求必须避免使用,服务器通常会将早期数据延后到握手完成后再处理,或直接拒绝。

| 中文名 | 零往返时间早期数据 |
| 所属协议 | TLS 1.3 |
| 前提条件 | 会话恢复与预共享密钥 |
| 主要收益 | 节省一个握手往返 |
| 主要风险 | 重放攻击 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧