Re: [TLS] AD Review of draft-ietf-tls-tls13

Nico Williams <nico@cryptonector.com> Mon, 22 May 2017 20:43 UTC

Return-Path: <nico@cryptonector.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 3B4DF128A32 for <tls@ietfa.amsl.com>; Mon, 22 May 2017 13:43:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.299
X-Spam-Level:
X-Spam-Status: No, score=-4.299 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8, RCVD_IN_SORBS_SPAM=0.5, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cryptonector.com
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 1gnSRO7q154z for <tls@ietfa.amsl.com>; Mon, 22 May 2017 13:43:32 -0700 (PDT)
Received: from homiemail-a107.g.dreamhost.com (sub4.mail.dreamhost.com [69.163.253.135]) (using TLSv1.1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7AEBF12702E for <tls@ietf.org>; Mon, 22 May 2017 13:43:31 -0700 (PDT)
Received: from homiemail-a107.g.dreamhost.com (localhost [127.0.0.1]) by homiemail-a107.g.dreamhost.com (Postfix) with ESMTP id 18C5020051C26; Mon, 22 May 2017 13:43:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=cryptonector.com; h=date :from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to; s=cryptonector.com; bh=bSyymB5orI/gsv +tbgi4mz6rt+8=; b=sUKJduDgFyWIbWYZH8uZsF2BpFokmA0ud3f8fr5y+UV/UV cgIJCsscK70Jym2fXwv+enTXJY1I6aqiotyYYRVdhjeRtH/sroKaNEZnkfWaKi+u J9KCCcSHuc/tR9v3PpJCHzL5usoXGACs3DLzOIv23mCbAgayaqs1zE44hHt9M=
Received: from localhost (cpe-70-123-158-140.austin.res.rr.com [70.123.158.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: nico@cryptonector.com) by homiemail-a107.g.dreamhost.com (Postfix) with ESMTPSA id C745820051C24; Mon, 22 May 2017 13:43:30 -0700 (PDT)
Date: Mon, 22 May 2017 15:43:26 -0500
From: Nico Williams <nico@cryptonector.com>
To: Eric Rescorla <ekr@rtfm.com>
Cc: TLS WG <tls@ietf.org>
Message-ID: <20170522204326.GP10188@localhost>
References: <20170520054117.GM10188@localhost> <80AB5C55-41BA-471E-A55A-86E98299B652@dukhovni.org> <f262447d-5bd1-68c8-dac6-ad2224733235@akamai.com> <35E448DD-7F74-4563-9707-DFAB66125FAA@dukhovni.org> <89704888-5f4d-0021-74cb-4cea28c773bd@akamai.com> <ac704db142c04e7b8a836df711e9bc7f@usma1ex-dag1mb1.msg.corp.akamai.com> <1A619330-282A-44F0-871B-DF6D15850394@dukhovni.org> <CABcZeBOvRGar9ZLTo=tu+oUxRWtMucwr5Bk1dPY8C1mAa9asTg@mail.gmail.com> <20170522201729.GO10188@localhost> <CABcZeBMx5wbfchzonxQ5E6N2cOSAXSFX5JpEdTQMMaTnoCb7Dg@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <CABcZeBMx5wbfchzonxQ5E6N2cOSAXSFX5JpEdTQMMaTnoCb7Dg@mail.gmail.com>
User-Agent: Mutt/1.5.24 (2015-08-30)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/fJ5DL_bUJHoi2-K9pn8V2oS1p4Y>
Subject: Re: [TLS] AD Review of draft-ietf-tls-tls13
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.22
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: Mon, 22 May 2017 20:43:33 -0000

On Tue, May 23, 2017 at 05:26:28AM +0900, Eric Rescorla wrote:
> On Tue, May 23, 2017 at 5:17 AM, Nico Williams <nico@cryptonector.com>
> wrote:
> > > In any case, I think there are two issues:
> > > 1. Forbid TLS 1.3 implementations from accepting MD5 and SHA-1.
> > > 2. Require a specific failure if the peer presents such a certificate.
> > >
> > > There was pretty strong consensus to do #1 and I don't support removing
> > > it. That seems like a pretty modest layering violation. If people think
> > that
> > > the mandate for this specific alert is too onerous, I could live with
> > > removing
> > > that.
> >
> > I don't understand how you can have (1) and not (2).
> 
> As Ilari suggests, you could just treat the algorithms as unknown.

How does that square with (1)?

> > Instead of altogether forbidding certs with MD5 signatures, forbid them
> > when the application expects TLS to authenticate the server [with PKIX,
> > as opposed to certain DANE usage values, or with pre-shared certs,
> > etc.].  I.e., a server authentication security level knob is needed.
> 
> I don't think that the current text prohibits that, because of :

That takes care of DANE and pre-shared cert uses, but not of
opportunistic use.  And maybe not of TOFU either: since on first use the
server's cert won't be known to the client, it's not a "trust anchor"
yet and cannot fall under this safe-harbor.

>    The signatures on certificates that are self-signed or certificates
>    that are trust anchors are not validated since they begin a
>    certification path (see [RFC5280], Section 3.2).  A certificate that
>    begins a certification path MAY use a signature algorithm that is not
>    advertised as being supported in the "signature_algorithms"
>    extension.
> 
> In this case, I think one can argue are treating this as a trust
> anchor.  Feel free to propose new text that you think makes that
> clearer.

Proposal:

   Clients SHOULD/MUST NOT accept server certificates, or certificate
   validation paths, where the server certificate or intermediate
   certificates (but not trust anchors) are signed with "weak" signature
   algorithms, unless the client is not expecting TLS to strongly
   authenticate the server (e.g., for opportunistic use) or where the
   client has previously learned and cached the server's certificate.

   A "weak" signature algorithm is any of <list1>, or any that isn't on
   <list2> and was introduced prior to publication date of this
   document.

The last is a way to eliminate any old hash.  List some of them in
<list1>, list all the allowable ones that we know about today in
<list2>, and the publication date will take care of any that should have
been on <list1> but was not listed in it, while future-proofing <list2>.

Nico
--