Re: [TLS] Certificate keyUsage enforcement question (new in RFC8446 Appendix E.8)
Viktor Dukhovni <ietf-dane@dukhovni.org> Thu, 08 November 2018 04:26 UTC
Return-Path: <ietf-dane@dukhovni.org>
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 5A8BE1276D0 for <tls@ietfa.amsl.com>; Wed, 7 Nov 2018 20:26:46 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-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 diBXhA1Sajay for <tls@ietfa.amsl.com>; Wed, 7 Nov 2018 20:26:44 -0800 (PST)
Received: from straasha.imrryr.org (straasha.imrryr.org [100.2.39.101]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CB92D124C04 for <tls@ietf.org>; Wed, 7 Nov 2018 20:26:43 -0800 (PST)
Received: from [192.168.1.161] (unknown [192.168.1.161]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by straasha.imrryr.org (Postfix) with ESMTPSA id 6D9CE7571E for <tls@ietf.org>; Wed, 7 Nov 2018 23:26:41 -0500 (EST)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 12.1 \(3445.101.1\))
From: Viktor Dukhovni <ietf-dane@dukhovni.org>
In-Reply-To: <m2y3a4ebau.fsf@localhost.localdomain>
Date: Wed, 07 Nov 2018 23:26:40 -0500
Content-Transfer-Encoding: quoted-printable
Reply-To: "<tls@ietf.org>" <tls@ietf.org>
Message-Id: <FF305E4A-B304-4C72-9D70-0D65116DD8B9@dukhovni.org>
References: <79CF87E7-E263-4457-865E-F7BE8251C506@dukhovni.org> <m236seg80v.fsf@localhost.localdomain> <DE213706-285A-4FF4-BA25-3DFC69966BE6@dukhovni.org> <m2y3a4ebau.fsf@localhost.localdomain>
To: "<tls@ietf.org>" <tls@ietf.org>
X-Mailer: Apple Mail (2.3445.101.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/cr--XfdAq1qvwM-EwJ9BW8OYiWs>
Subject: Re: [TLS] Certificate keyUsage enforcement question (new in RFC8446 Appendix E.8)
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: Thu, 08 Nov 2018 04:26:46 -0000
> On Nov 7, 2018, at 6:07 PM, Geoffrey Keating <geoffk@geoffk.org> wrote: > > n general, though, what you're asking is "The CA signing this key has > instructed that I do not accept signatures made with it. Is it OK to > accept signatures made with it?" It's really hard to see how the > answer to that could generally be 'yes'. Thanks for everyone's input, this has been very helpful. The approach I'm inclined to take is as follows: 1. Always enforce key usage for your own certificate, ensuring key separation as provisioned at the time of key/certificate creation. This also maximizes opportunities for problems to be detected early and fixed. 2. Always enforce peer certificate key usage (separation) for ECDSA. ECDSA keys are more brittle when misused. 3. Enforce RSA peer certificate key usage when RSA key transport is locally disabled, allowing only (EC)DHE-RSA. This is always the case with TLS 1.3, but for TLS <= 1.2 subject to the enabled ciphers. The rationale for 3 is as follows: * The primary responsibility for doing key separation right falls on the key holder (as in 1). If that's always done correctly, the peer has nothing to second-guess. * If the key holder has no key separation, and makes key recovery possible through some sort of side-channel, then the attacker who recovers the key can always misuse that key via whichever key exchange is allowed by the certificate, when all are accepted by the client. Therefore, if the client supports both RSA key exchange and (EC)DHE-RSA, the attacker wins regardless of any effort by the client to enforce key usages. Which leaves the case where the client only accepts (EC)DHE-RSA (as with TLS 1.3 or TLS 1.2 with the RSA key exchange features disabled). In that case, if the attacker is able to compromise a server key constrained to "keyEncipherment", but cannot obtain a fraudulent certificate, then he'd have a certificate for just "keyEncipherment" which the client will refuse to honour for "digitalSignature". And so the client actually gets some measure of protection by doing keyUsage enforcement. This approach also has the advantage that legacy cases continue to (mis)behave like they always did, but the strictness rises to match the client's protocol preferences wether through use of TLS 1.3 (fresh start, fresh constraints) or by restricting TLS 1.2 ciphers in a way that makes keyUsage enforcement a practical counter-measure to at least some potential attacks. -- Viktor.
- [TLS] Certificate keyUsage enforcement question (… Viktor Dukhovni
- Re: [TLS] Certificate keyUsage enforcement questi… Geoffrey Keating
- Re: [TLS] Certificate keyUsage enforcement questi… Viktor Dukhovni
- Re: [TLS] Certificate keyUsage enforcement questi… Martin Rex
- Re: [TLS] Certificate keyUsage enforcement [whose… Viktor Dukhovni
- Re: [TLS] Certificate keyUsage enforcement questi… David Benjamin
- Re: [TLS] Certificate keyUsage enforcement questi… Geoffrey Keating
- Re: [TLS] Certificate keyUsage enforcement [whose… Peter Gutmann
- Re: [TLS] Certificate keyUsage enforcement [whose… Blumenthal, Uri - 0553 - MITLL
- Re: [TLS] Certificate keyUsage enforcement questi… Viktor Dukhovni
- Re: [TLS] Certificate keyUsage enforcement questi… Blumenthal, Uri - 0553 - MITLL
- Re: [TLS] Certificate keyUsage enforcement questi… Peter Gutmann
- Re: [TLS] Certificate keyUsage enforcement questi… Viktor Dukhovni
- Re: [TLS] Certificate keyUsage enforcement questi… Peter Gutmann
- Re: [TLS] Certificate keyUsage enforcement questi… Viktor Dukhovni
- Re: [TLS] Certificate keyUsage enforcement questi… Yoav Nir
- Re: [TLS] Certificate keyUsage enforcement questi… Viktor Dukhovni
- Re: [TLS] Certificate keyUsage enforcement questi… Tony Putman
- Re: [TLS] Certificate keyUsage enforcement questi… Viktor Dukhovni
- Re: [TLS] Certificate keyUsage enforcement questi… Andrei Popov
- Re: [TLS] Certificate keyUsage enforcement questi… Nikos Mavrogiannopoulos