TLS 1.3 0-RTT的规范提到了攻击者可能意识到的以下威胁:
网络攻击者利用客户端重试行为安排服务器接收应用程序消息的多个副本。这种威胁在某种程度上已经存在,因为重视稳健性的客户端通过尝试重试请求来响应网络错误。但是,0-RTT 为任何不保持全局一致服务器状态的服务器系统增加了一个额外的维度。 具体来说,如果服务器系统有多个区域,区域 B 中不接受来自区域 A 的票证,则攻击者可以将用于 A 的 ClientHello 和早期数据复制到 A 和 B. 在 A 处,数据将在 0-RTT 中被接受,但在 B 处,服务器将拒绝 0-RTT 数据并强制进行完全握手。如果攻击者阻止了来自 A 的 ServerHello,那么客户端将完成与 B 的握手并可能重试请求,从而导致整个服务器系统上的重复。
我的问题是:攻击在哪里?归根结底,攻击者也可以将他的 ClientHello 副本传递到区域 B 并获得相同的结果(完全握手)。我错过了什么?