Re: [TLS] Draft 18 review : Message splitting and interleaving
Olivier Levillain <olivier.levillain@ssi.gouv.fr> Wed, 23 November 2016 09:08 UTC
Return-Path: <olivier.levillain@ssi.gouv.fr>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F3A841295B5 for <tls@ietfa.amsl.com>; Wed, 23 Nov 2016 01:08:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.398
X-Spam-Level:
X-Spam-Status: No, score=-3.398 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-1.497, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mNzSbEd3ojLR for <tls@ietfa.amsl.com>; Wed, 23 Nov 2016 01:08:36 -0800 (PST)
Received: from smtp.ssi.gouv.fr (smtp.ssi.gouv.fr [86.65.182.16]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 57D8E12945B for <tls@ietf.org>; Wed, 23 Nov 2016 01:08:36 -0800 (PST)
Received: from smtp-switch.internet.local (smtp-switch [192.168.3.9]) by smtp.ssi.gouv.fr (Postfix) with ESMTP id EF3B890B920; Wed, 23 Nov 2016 10:08:34 +0100 (CET)
To: Eric Rescorla <ekr@rtfm.com>, David Benjamin <davidben@chromium.org>
References: <20161122190822.GH19978@neoplankton.picty.org> <CAF8qwaDxGH0xEPE7600yCnkJgLG51yJAyjVx2irNfhvptdT9Dw@mail.gmail.com> <CABcZeBPTD13hrS1oFVMikBeXWHgLjwqBbZZmR9LvxN-2fYSJ1Q@mail.gmail.com>
From: Olivier Levillain <olivier.levillain@ssi.gouv.fr>
X-Enigmail-Draft-Status: N1110
Message-ID: <58355C92.8070504@ssi.gouv.fr>
Date: Wed, 23 Nov 2016 10:08:34 +0100
User-Agent:
MIME-Version: 1.0
In-Reply-To: <CABcZeBPTD13hrS1oFVMikBeXWHgLjwqBbZZmR9LvxN-2fYSJ1Q@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/58olalvKSp2CSP9iQsAltDRB8RY>
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] Draft 18 review : Message splitting and interleaving
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls/>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 23 Nov 2016 09:08:38 -0000
Le 23/11/2016 00:24, Eric Rescorla a écrit : > On Tue, Nov 22, 2016 at 2:18 PM, David Benjamin <davidben@chromium.org> > wrote: > >> On Tue, Nov 22, 2016 at 2:05 PM Olivier Levillain < >> olivier.levillain@ssi.gouv.fr> wrote: >> >>> Hi list, >>> >>> I am sorry for the very late answer concerning draft 18, but we >>> (ANSSI) have several remarks after proof-reading the current >>> specification. >>> >>> We are sorry for the multiple long messages. >>> >>> If the WG is interested by some of our concerns/proposals, we would be >>> glad to propose some PRs. >>> >>> >>> = Message splitting and interleaving = >>> >>> How to split and interleave subprotocols in TLS has not been clearly >>> specified in the past, and it would be useful to be crystal clear on >>> this point. >>> >>> In the specification, the subject is first presented in 4.5 (P.61): >>> Handshake messages sent after the handshake MUST NOT be interleaved >>> with other record types. That is, if a message is split over two or >>> more handshake records, there MUST NOT be any other records between >>> them. >>> But I am wondering why this text only concern "messages after the >>> handshake". It should always be the case! I don't know what is your take on this first point, but I think I will propose something in the PR. I will try to add/move some text so the information is all present in section 5. >> +1. We (BoringSSL) and I believe NSS already forbid this for alerts at all >> versions. >> >> This rule is actually implied by TLS 1.3 already, because we've gotten rid >> of warning alerts. All alerts terminate the connection, except for >> end_of_early_data, and end_of_early_data immediately signals a key change. >> So it is not legal to send two alerts in the same epoch, much less in the >> same record. (Being explicit about this is good, of course.) >> > This seems fine. I would take a PR for this. Will do. > - incidentally, the default behaviour would apply to Heartbeat, as >>> was the intent of the specification; >>> - ApplicationData should be considered as a stream with possibly >>> 0-length records >>> - Handshake messages should either come as a sequence of multiple >>> *entire* messages, or as a fraction of *one* message. That is, >>> the number of HS messages inside one record should either be a >>> round number or strictly less than 1. >>> >> What simplifications were you expecting out of this? It seems to me this >> would be a nuisance to both enforce as a receiver and honor as a sender. >> >> Our implementation doesn't try to pack handshake messages into records, >> but I believe NSS does. NSS folks should confirm, but I expect such >> implementations just buffer the messages up and flush when the buffer >> exceeds the records size. That means all kinds of splits are plausible: >> >> [EncryptedExtensions Certifi] >> [cateRequest Certificate Cer] >> [tificateVerify Finished] >> > Yeah, that's how this works in NSS. > > I'm not seeing a real benefit in prohibiting this behavior. The expected benefit was that it was a way to enforce the rule from section 4.6 (P.64), stating that a Handshake message should not span key changes. That is why the receiver already had to do some work, and my proposal was to restrict it even more. Yet I see your point that from the sender's point of view, this is more complex. After re-reading the 4.6 part, I find it sufficient. Sorry for the noise about this. olivier
- [TLS] Draft 18 review : Message splitting and int… Olivier Levillain
- Re: [TLS] Draft 18 review : Message splitting and… David Benjamin
- Re: [TLS] Draft 18 review : Message splitting and… Eric Rescorla
- Re: [TLS] Draft 18 review : Message splitting and… Martin Thomson
- Re: [TLS] Draft 18 review : Message splitting and… Eric Rescorla
- Re: [TLS] Draft 18 review : Message splitting and… Olivier Levillain
- Re: [TLS] Draft 18 review : Message splitting and… Olivier Levillain