> It's actually impossible because a 0RTT request may be retried as a 1RTT 
> request and there's no way to correlate the two. So when the 1RTT request 
> shows up, we can't go "This might be a repeat" - for example the X- header 
> trick doesn't work in this case. It's subtle, which makes it even more likely 
> to trip on it. 

That also assumes that the 0RTT data will be a completely self-contained 
request.  I share the concern that Kyle and others have pointed out, that a 
single request will span the boundaries.

> I think the only approach that actually rigorously works is the client-side 
> one

Attackers will not use well-behaved clients; does your approach still work?

>The second problem is that middle-boxes can break any signaling. For example a 
>CDN or TLS accelerator may enable 0-RTT towards the back-end origin without 
>enabling it to the original client. In this model, the client has *no* way to 
>reason about retries or replay.

A CDN is not a middlebox.  As far as the client is concerned a CDN *is* the 
origin.  The agreement in-place between the CDN and the origin is out of scope 
here.  A TLS accelerator, which is a tool to help an origin with its *local* 
performance, or other lower-layer (in the L3 L5 etc sense) assist is within 
scope.  Does that make sense?

> That's really very broken and a serious violation of the transport layer 
> contract.

Only if you believe CDN is a middlebox.  The transport layer contract is 
overridden by legal contracts or EULA :)

        /r$

_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to