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

Russ Housley <housley@vigilsec.com> Tue, 16 May 2017 15:35 UTC

Return-Path: <housley@vigilsec.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 4A35612EB06 for <tls@ietfa.amsl.com>; Tue, 16 May 2017 08:35:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, URIBL_BLOCKED=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 y0s2IV-UxtAU for <tls@ietfa.amsl.com>; Tue, 16 May 2017 08:35:32 -0700 (PDT)
Received: from mail.smeinc.net (mail.smeinc.net [209.135.209.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0460C12EB12 for <tls@ietf.org>; Tue, 16 May 2017 08:31:31 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mail.smeinc.net (Postfix) with ESMTP id 5FAD8300568 for <tls@ietf.org>; Tue, 16 May 2017 11:31:30 -0400 (EDT)
X-Virus-Scanned: amavisd-new at mail.smeinc.net
Received: from mail.smeinc.net ([127.0.0.1]) by localhost (mail.smeinc.net [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id JpQwqmzkPRcb for <tls@ietf.org>; Tue, 16 May 2017 11:31:27 -0400 (EDT)
Received: from a860b60074bd.home (pool-108-45-101-150.washdc.fios.verizon.net [108.45.101.150]) by mail.smeinc.net (Postfix) with ESMTPSA id 9EDC7300567; Tue, 16 May 2017 11:31:27 -0400 (EDT)
From: Russ Housley <housley@vigilsec.com>
Message-Id: <45BECF9F-0BBD-4E2D-B517-77709C0EAC9F@vigilsec.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_7D75D168-4206-4CE8-97DA-1B1FD326B7AD"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Date: Tue, 16 May 2017 11:31:27 -0400
In-Reply-To: <CABcZeBPnLSbNySpRoGd8gQNBDf9jAEzX8eG6WC96MTmoqdpJHA@mail.gmail.com>
Cc: Kathleen Moriarty <kathleen.moriarty.ietf@gmail.com>, IETF TLS <tls@ietf.org>
To: Eric Rescorla <ekr@rtfm.com>
References: <CAHbuEH4PXU5569RYJ1uPcriQruCewmRrXUU3MVBZ+GtpyceiAw@mail.gmail.com> <CABcZeBMMQ8kNWUA4Y6ssMw7h54fPbBxrLbgZtxSkYc7-fzypSA@mail.gmail.com> <9C0E15E5-E852-47E0-B9A6-F807034ECFB8@vigilsec.com> <CABcZeBPGK9BguF6OJo=QT3Sx1mLwBQJhh4JiBkAmws5umvctSg@mail.gmail.com> <0ED5F216-365D-432E-B390-D95014ED5676@vigilsec.com> <CABcZeBPnLSbNySpRoGd8gQNBDf9jAEzX8eG6WC96MTmoqdpJHA@mail.gmail.com>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/Ebo1U3hp-1ccZOieJ0oH6PhI4Sc>
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: Tue, 16 May 2017 15:35:34 -0000

> On May 16, 2017, at 11:23 AM, Eric Rescorla <ekr@rtfm.com> wrote:
> 
> 
> 
> On Tue, May 16, 2017 at 8:17 AM, Russ Housley <housley@vigilsec.com <mailto:housley@vigilsec.com>> wrote:
> 
>> On May 15, 2017, at 7:01 PM, Eric Rescorla <ekr@rtfm.com <mailto:ekr@rtfm.com>> wrote:
>> 
>> 
>> 
>> On Mon, May 15, 2017 at 12:38 PM, Russ Housley <housley@vigilsec.com <mailto:housley@vigilsec.com>> wrote:
>> Just commenting on Section 4.2 …
>> 
>> >
>> > > 3. Section 4.2.
>> > >
>> > >    "In general, detailed certificate validation procedures are out of
>> > >    scope for TLS (see [RFC5280]).  This section provides TLS-specific
>> > >    requirements."
>> > >
>> > > I don't see an explanation of why it is out-of-scope.  The reference
>> > > is just to RFC5280, which seems odd.  I would expect the reference to
>> > > be to something that explains why it is out-of-scope.
>> 
>> I think the the separation of certificate path validation from the TLS protocol is correct, but perhaps this can be explained differently.  Perhaps the approach should be that TLS depends upon certificate path validation as described in RFC 5280.
>> 
>> > In general, TLS's policy (dating back to TLS 1.0) has been that the
>> > job of TLS is to carry the certificates and other authentication
>> > material but to leave it up to other parts of the system to
>> > interpret them. It's been a long time since that decision was made,
>> > but from my perspective, there are a number of major reasons:
>> >
>> > 1. Most of PKI processing (path construction, etc.) is generic and
>> >    not specific to TLS. What is specific to TLS is:
>> >
>> >    * How to indicate what your PKI capabilities are
>> >      (see, e.g, S 4.2.4 and 4.3.2)
>> >    * How to stuff the PKI material into the protocol
>> >      (principally S 4.4.2)
>> >    * How to determine whether a given certificate is suitable for
>> >      use in TLS 4.4.4.2 and 4.3.2.1).
>> >
>> >    So we want to outsource the generic PKI part
>> >
>> >
>> > 2. It matches the software architecture that people often use,
>> >    which is to have a TLS stack but separate PKI validation. For
>> >    instance, Firefox uses NSS for TLS but moz::pkix for
>> >    validation. Similarly, Chrome uses BoringSSL for TLS
>> >    but the system PKI libraries for validation.
>> >
>> >
>> > In this case, I think that this text was more intended to
>> > say "and go read 5280 to learn how to do this". To that end,
>> > I suggest we say"
>> >
>> >
>> >     "In general detailed certificate validation procedures are out of
>> >     scope for TLS. [RFC5280] provides general procedures for
>> >     certificate validation. This section provides TLS-specific
>> >     requirements.”
>> 
>> I agree with the reasoning, however the dependency on RFC 5280 should be called out in a MUST statement.  I suggest something like:
>> 
>>     "TLS depends on certificate path validation, and a conformant
>>     TLS implementation MUST implement certificate paths validation
>>     in a manner that achieves the same result as [RFC5280]. This
>>     section provides TLS-specific requirements.”
>> 
>> Note that RFC 5280 is already a normative reference.
>> 
>> A MUST here would be a pretty material change to historical TLS practice.
>> As Viktor says, there are TLS-using applications that just don't validate
>> the cert via 5280 at all.
> 
> I think we want to say that if the certificates are used, then the certification path MUST be validated in a manner that is compatible with Internet X.509 certificate profile [RFC5280]; however, other approaches to validation of the public key, such as the DANE TLSA resource record [RFC6698], are also acceptable.
> 
> I can see how you would want to say that, but it's not really consistent either
> with historical practice or with the way that other standards track RFCs use TLS
> with certificates (see RFC 5763).

Actually, that is a great example.  I accept the need for loose coupling.

Russ