On Sun, May 22, 2016 at 12:33 PM, Ilari Liusvaara <ilariliusva...@welho.com>
wrote:

> On Sun, May 22, 2016 at 11:30:10AM -0700, Eric Rescorla wrote:
> > On Sun, May 22, 2016 at 8:59 AM, Ilari Liusvaara <
> ilariliusva...@welho.com>
> > wrote:
> >
> > > Actually, looking at it, I didn't find how EDI context is
> > > determined. And EDI context needs to be fit into cookies because
> > > it isn't retransmitted on 2nd CH.
> > >
> >
> > I don't understand what you're saying here. Here is my claim:
> >
> > 1. The second ClientHello doesn't come with EDI.
> > 2. The Cookie (if used for this) needs to contain the entire hash
> >     state, which means it includes the ClientHello w/ EDI transitively.
> > 3. Therefore you can recover the hash state no matter how much
> >     the client changes the ClientHello (though we forbid a lot of
> >     changes)
> >
> > If I'm wrong here, would definitely like to know. Can you explain?
>
> That would require hash implementation supporting freezing/thawing
> (I have seen only one, and that used MD5), which is even more exotic
> than forking checkpointable hash implementations.
>

This is a bit of an irritation, I agree. However, it's only required for
stateless implementations, so not your average TLS stack. If you
have a better suggestion, I'd love to have it, thought!


Also, SHA-384 states are so big (the state at arbitrary point is 208
> bytes!) that putting one into cookie leaves space VERY cramped (if
> all necressary things fit at all).
>

Good point. I just made the editor's copy have 2^16-1 thought it didn't
make it into draft-13.


> > Also while looking at 0-RTT:
> > >
> > > It occured to me how to determine the ciphersuite used for 0-RTT.
> > > Then it occured to me that the symmetric parts are determined by the
> > > provisioned context and asymmetric parts don't matter. But I think
> > > this is quite non-obvious.
> > >
> >
> > "All of the parameters for the 0-RTT data (symmetric cipher suite,
> > ALPN, etc.) MUST be those which were negotiated in the connection
> > which established the PSK. "
> >
> > Would be happy to have clarifications.
>
> I would phrase the thing as what various values are, not what they
> must be (there is no way negotiate those, which is good).
>
> > And clock errors being small outside of gross corrections? Clock
> > > first-order errors can be pretty large with unsynchronized clocks
> > > (I have personally seen FO errors on order of 1s per day on some
> > > bit bad piece of kit), and those would absolutely show up as errors
> > > in ticket age. And if you have synchronized clock, the zeroth-order
> > > errors (wrong time) will be small too (can be <10ms). And have fun
> > > with leap seconds. :-)
> >
> >
> > Yes. Those people basically won't be able to use 0-RTT.
>
> Even if ticket timestamp mismatch error has fallback in spec, will it
> actually fallback properly with real-world implementations?
>

I hope so. We plan to test it.



> > Also, the extension negotiation matching stuff with 0-RTT talking
> > > about padding? Padding just plain can't be negotiated. And "negotiated
> > > in ServerHello"? None of the extensions that can presently be
> > > negotiated there are any of any interest with 0-RTT. To me the text
> > > looks really confused.
> >
> > I'll take a look at it, but PRs welcome. Right now I have an open issue
> > marker,
>
> Here is what I think should match (going through all currently known
> values and excetions):
>

Thanks for this. Ill try to work up a PR from the below.

Best,
-Ekr


>
> - Version
> - Ciphersuite Protection+PRF, key exchange in allowed values.
> - What to do with server_name???
> - Status_request presence (but not contents)???
> - Status_request_v2 presence (but not contents)???
> - Signed_certificate_timestamp presence (but not contents)???
> - ALP can not be negotiated by any means.
> - 0-RTT Protection+PRF+ALP can not be negotiated.
>
> (I think status_request and status_request_v2 should mirror whatever
> signed_certificate_timestamp does).
>
> Also, that server_name is just its own kind of mess, where what is
> the proper thing isn't at all obvious.
>
>
> And here is the list of extensions that are allowed to be negotiated
> with 0-RTT (parenthesis denotes extensions where things depend on exact
> handling discussed above).
>
> - (server_name)
> - max_framgment_length
> - (status_request)
> - supported_groups
> - use_srtp
> - heartbeat
> - (status_request_v2)
> - (signed_certificate_timestamp)
> - token_binding [I-D stage]
> - cached_info?
> - key_share
> - pre_shared_key
> - early_data (required for obvious reasons)
>
>
> (Note: application_layer_protocol_negotiation is not on this list,
> very much intentionally, since negotiation of ALP is not possible
> in presence of 0-RTT. Don't even try).
>
>
>
> -Ilari
>
_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to