On Fri, Oct 27, 2017 at 5:25 AM, Ilari Liusvaara <ilariliusva...@welho.com>
wrote:

> On Fri, Oct 27, 2017 at 04:56:08AM -0700, Eric Rescorla wrote:
> > On Thu, Oct 26, 2017 at 10:37 PM, Ilari Liusvaara <
> ilariliusva...@welho.com>
> > wrote:
> >
> > > On Thu, Oct 26, 2017 at 04:37:47PM -0700, Eric Rescorla wrote:
> > > > Hi folks,
> > > >
> > > > Building on our discussion in Prague I've posted two PRs for
> shrinking
> > > the
> > > > header size:
> > > >
> > > > https://github.com/tlswg/dtls13-spec/pull/16
> > > > - This introduces a shortened header format that just has a truncated
> > > > sequence
> > > > number and epoch but no length so it has to be packet one per
> datagram
> > > >
> > > > https://github.com/tlswg/dtls13-spec/pull/20
> > > > - This builds on top of PR#16 to reduce the long header format,
> removing
> > > the
> > > > version number and shortening the epoch/sequence number.
> > > >
> > >
> > > How does the latter one interact with the stuff in "Establishing New
> > > Associations with Existing Parameters"? The initial packets are
> > > distinguishable yes, but that subsection talks about possibly doing
> > > full handshake before discarding old state, which could prove rather
> > > messy.
> >
> >
> > I'm not sure I understand your concern here. Is it that you would
> > have packets from both connections in the short format and not be
> > able to know which is which? That seems like it's a problem now too
> > just made a bit worse by the reduced epoch/seq. The real answer
> > here is, of course, conn-id.
>
> Yes, the problem is not being able to tell apart epochs 0-2 used by
> the handshake and epochs 3- used by established connection.
>
> And with regards to conn-id, unless the server just aborts every
> connection attempt without conn-id extension, you can get situations
> where one of the overlapping connections has conn-id and the other
> not.


Sure, this was already sort of an issue with epoch=1 for DTLS 1.2
connections,
though content type helped. I'll add some text with suggestions

> > Also, I think that due to DTLS 1.2 compatiblity, only record type 23
> > > (and 25) can use new record format. In practicular, I think 21 and 22
> > > can not, since existing DTLS 1.2 libraries use those without
> > > negotiation.
> > >
> >
> > Sorry, I'm not following you here: this is only for DTLSCipherText, so
> > the external type will always be 23. All the other external types will
> > be using the old format, so easily distinguishable.
>
> "
> Implementations can distinguish the two header formats by examining
> the first byte, which in the DTLSCiphertext header represents the
> content type. The only valid values for the content type are
> alert(21), handshake(22), application_data(23), and ack(25),
> with application_data actually
> representing protected data with the true content type being
> encrypted. If any of these values is present, then the record MUST be
> handled as DTLSCiphertext.
> "
>
> That seems to imply that records starting with 22 have 32-bit
> shortened RSN, which obviously is not correct.
>

Oh, I see. Yes, I got stuck in QUIC-think and forgot that in DTLS we
use "DTLSPlaintext" here. I'll fix that.


> Also, on fast transmission, loss burst of ~2000 packets doesn't take
> > > much time. Such loss burst could result, e.g., from transient routing
> > > failure. One might want to discuss how to prevent desyncs from those.
> > >
> >
> > Sure. The answer for this is to use the longer header :)
>
> Might put a note that if one should use longer header if there can be
> more than about 2000 consequtive lost packets.
>

Yes, thanks.

-Ekr


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

Reply via email to