Re: [TLS] Deprecate SHA1 for signatures in TLS 1.3 (was Re: TLS 1.3 draft-07 sneak peek)

Dave Garrett <davemgarrett@gmail.com> Sat, 11 July 2015 19:36 UTC

Return-Path: <davemgarrett@gmail.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A296B1AC40D for <tls@ietfa.amsl.com>; Sat, 11 Jul 2015 12:36:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] autolearn=ham
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 yHZJUYab_v1r for <tls@ietfa.amsl.com>; Sat, 11 Jul 2015 12:36:53 -0700 (PDT)
Received: from mail-qk0-x22c.google.com (mail-qk0-x22c.google.com [IPv6:2607:f8b0:400d:c09::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B6F601AC40C for <tls@ietf.org>; Sat, 11 Jul 2015 12:36:53 -0700 (PDT)
Received: by qkcl188 with SMTP id l188so44861226qkc.1 for <tls@ietf.org>; Sat, 11 Jul 2015 12:36:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:user-agent:cc:references:in-reply-to :mime-version:content-type:content-transfer-encoding:message-id; bh=NIrWPwXdN9zjPn/dukwWiHe09z/qEPPIdGh9Y7WFNo0=; b=ZdlVAw8nbj/cFSLWSIVjJCQjCp9g8LZFt+RIFF5SRNjKlgEuG8DnihqRcBLx10rLTm hEoNfRtX5UT0q/8CrBt9mb2eAok2X1q5EZha6KPjG/NjnxHaqRCSHciUEQZvIAvxS/OJ T7CgV/Uaj1gIn7YOGwuytqTAGdmple1Brn6LvlIo4YTNXpBzM1DoTZ48fFp3ecOv1r/l 8eO+hO6ER/LuDNJPtqNQ5lTeer8r9X4TFCpSM7Ew1vkg7+2PMitbJ2hZTJf3ccw5WKK5 uFLYajbWbwblVh4NGcO3qg8CfJzfayapqaxzFoDe2MdnrtfURHXG/mwJlYPY1Fx+OGUH 58DQ==
X-Received: by 10.140.98.207 with SMTP id o73mr9815119qge.12.1436643413019; Sat, 11 Jul 2015 12:36:53 -0700 (PDT)
Received: from dave-laptop.localnet (pool-96-245-254-195.phlapa.fios.verizon.net. [96.245.254.195]) by smtp.gmail.com with ESMTPSA id g19sm7868527qkh.18.2015.07.11.12.36.52 (version=TLSv1 cipher=RC4-SHA bits=128/128); Sat, 11 Jul 2015 12:36:52 -0700 (PDT)
From: Dave Garrett <davemgarrett@gmail.com>
To: tls@ietf.org
Date: Sat, 11 Jul 2015 15:36:49 -0400
User-Agent: KMail/1.13.5 (Linux/2.6.32-74-generic-pae; KDE/4.4.5; i686; ; )
References: <CALuAYvbteowTeyWe9VneRHgyvzTRS3LfKdorWt=jmEy2k+wNqw@mail.gmail.com> <201507111432.29731.davemgarrett@gmail.com> <20150711190040.GS28047@mournblade.imrryr.org>
In-Reply-To: <20150711190040.GS28047@mournblade.imrryr.org>
MIME-Version: 1.0
Content-Type: Text/Plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Message-Id: <201507111536.50433.davemgarrett@gmail.com>
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/FZLJFkV4TSGrcwUdtzhttvXn3lQ>
Subject: Re: [TLS] Deprecate SHA1 for signatures in TLS 1.3 (was Re: TLS 1.3 draft-07 sneak peek)
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.15
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: Sat, 11 Jul 2015 19:36:55 -0000

On Saturday, July 11, 2015 03:00:40 pm Viktor Dukhovni wrote:
> On Sat, Jul 11, 2015 at 02:32:29PM -0400, Dave Garrett wrote:
> > ==============================
> > If a server receives a ClientHello, but the server cannot produce a valid
> > end-entity certificate using the hash/signature pairs known to be supported by
> > the client (via this extension or the defaults assumed in its absence),
> > then the server MUST send an "unsupported_certificate" alert message and
> > close the connection.
> 
> The signature of the leaf certificate is just as irrelevant as
> signatures up the chain.  With pinned leaf certificates, DANE-EE(3),
> opportunistic TLS, ... even the leaf (end-entity) certificate
> signature algorithm is of no consequence and is ignored by the
> client.

I was going based on Ilari's comments here:
https://www.ietf.org/mail-archive/web/tls/current/msg17022.html

The only scenario where having an EE cert that can't sign anything would be useful is opportunistic encryption. Using anon ciphers sounds better, but I guess attempting auth allows trust on first use so I agree that transmitting certs could be useful here.

> If at all possible, the server SHOULD choose a chain all of whose
> signatures (excluding any self-signed root CAs) match the client's
> signature algorith list.  If that's not possible, it SHOULD send
> a default chain (often the only chain it has) with a compatible
> public key.

We don't really have an official definition of what constitutes a "default" chain here.

> As above: s/RECOMMENDED/SHOULD/.  It is NOT up to the server to decide
> which chains the client can accept.  The server has insufficient
> information, and therefore SHOULD NOT preempt the client's decision
> of whether the chain works or not.

I was also going with RECOMMENDED/MAY language based on ekr's recent comments.

> > The server MAY instead choose to simply send an
> > "unsupported_certificate" alert message and close the connection.
> 
> No, the server SHOULD NOT preempt the client's decision.  I'd
> personally prefer MUST NOT, but there are arguably servers whose
> clients are all known to never use trust on first use certificate
> pinning, DANE, unauthenticated opportunistic TLS, ...
> 
> If we need to weasel out and give some servers the choice to lock
> out all clients that do anything remotely unorthodox, then SHOULD
> NOT provides some rope.  I think such weaseling out is likely to
> do more harm than good, but I'm open to concede the rope if need
> be.
> 
> On the public Internet, such servers will be few and far between,

I think the rope, as you put it, needs to be there in some form. On the public Internet, yes, I can see your point. In a more tightly controlled system with a potentially constrained environment, I don't see the point in forcing the server to send down certs that the admin can 100% know will just waste bandwidth and processing. So, SHOULD/RECOMMENDED is the level that I think this'll need to be at.

I think I understand all of your argued reasons better now. I'll come up with some replacement language that takes them into account.


Dave