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.
 
> > 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.


 
> 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.


-Ilari

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

Reply via email to