Re: [TLS] A flags extension

Hubert Kario <hkario@redhat.com> Tue, 26 March 2019 17:49 UTC

Return-Path: <hkario@redhat.com>
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 D792412077D for <tls@ietfa.amsl.com>; Tue, 26 Mar 2019 10:49:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.901
X-Spam-Level:
X-Spam-Status: No, score=-6.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, 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 yhtAY7Wny-nn for <tls@ietfa.amsl.com>; Tue, 26 Mar 2019 10:49:53 -0700 (PDT)
Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 73D00120792 for <tls@ietf.org>; Tue, 26 Mar 2019 10:49:53 -0700 (PDT)
Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id AF7868123E; Tue, 26 Mar 2019 17:49:52 +0000 (UTC)
Received: from pintsize.usersys.redhat.com (unknown [10.34.246.36]) by smtp.corp.redhat.com (Postfix) with ESMTP id EABA3179CD; Tue, 26 Mar 2019 17:49:51 +0000 (UTC)
From: Hubert Kario <hkario@redhat.com>
To: Yoav Nir <ynir.ietf@gmail.com>
Cc: tls@ietf.org
Date: Tue, 26 Mar 2019 18:49:50 +0100
Message-ID: <1708317.SzMvUCQ6tO@pintsize.usersys.redhat.com>
In-Reply-To: <C39ECEA3-3BE1-4A31-AC04-E4A295851675@gmail.com>
References: <A7EC005E-3463-406B-930F-925B4D2338E4@gmail.com> <1570216.1kCOWNXRrC@pintsize.usersys.redhat.com> <C39ECEA3-3BE1-4A31-AC04-E4A295851675@gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="nextPart3763080.GkUS1SilVk"; micalg="pgp-sha512"; protocol="application/pgp-signature"
X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Tue, 26 Mar 2019 17:49:52 +0000 (UTC)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/h_IVOCDGFWYD0-tkbH6AC1XhFPg>
Subject: Re: [TLS] A flags extension
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.29
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: Tue, 26 Mar 2019 17:49:57 -0000

On Tuesday, 26 March 2019 16:38:11 CET Yoav Nir wrote:
> > On 26 Mar 2019, at 14:45, Hubert Kario <hkario@redhat.com> wrote:
> > 
> > On Monday, 25 March 2019 22:09:35 CET Yoav Nir wrote:
> >> Hi.  Today at the TLS meeting, there was a discussion at the mic about
> >> 1-bit extensions that only serve to indicate support for an optional
> >> feature. EKR commented that such extensions take 4 bytes each and that
> >> maybe we need to replace them with a flags extension.
> >> 
> >> So I threw together a quick -00 draft with an extension that does just
> >> that
> >> [1].
> >> 
> >> Comments are welcome.
> > 
> > I don't think that "penny-pinching" the 4 bytes necessary to send a flag
> > is
> > worth the interoperability problems, and increased complexing of parsing
> > Client Hello. Especially if we go the route of actual bit flags.
> 
> Right. Which is why I went with a 1-byte encoding rather than a bitstring.
> 
> > I think the likelihood of bugs in that code over the possible bytes saved
> > makes it a net negative.
> 
> I don’t think so. My encoding is not all that complex.
> 
> > yes, TLS is quite chatty protocol, it could encode values much more
> > tightly, but I think we all remember the bugs related to ASN.1 parsing
> > from inside of PKCS#1 v1.5 signatures
> 
> Complexity is on a spectrum.  DER encoding is pretty far on this spectrum. 
> A list of 1-octet identifiers is on the other end. A bitstring is more
> complex than the identifier list, but not anywhere near DER.

1-octet identifiers may not be considered extensible enough
(yes, you can add another extension, but the first extension to use it will be 
paying an additional price of 2 bytes on top of the extension overhead; same 
if you just need to use only one flag, then you are paying the same price for 
every connection)

2-octet identifiers asymptotically approach 2-octet saved per flag, which is 
about 50% saved per flag, I don't see it as much

to approach it from another way: while I think we will, sometime in the 
future, reach a situation when we have few hundred flag extensions *defined* , 
I do not see a future in which we will need to *use* more than few dozen flag 
extensions in any real world client. So we are talking about a possible saving 
of around 100 bytes in ClientHello (36 extensions * 3 bytes saved) in this 
proposal

won't this be completely erased by any post-quantum key share?

> I don’t think we should project the failings of DER parsing to the parsing
> of much simpler structures.

yes, that was an extreme example; I was replying to all sent messages so far

-- 
Regards,
Hubert Kario
Senior Quality Engineer, QE BaseOS Security team
Web: www.cz.redhat.com
Red Hat Czech s.r.o., Purkyňova 115, 612 00  Brno, Czech Republic