Re: [pkix] [Technical Errata Reported] RFC5280 (6414)
Benjamin Kaduk <kaduk@mit.edu> Thu, 28 January 2021 16:13 UTC
Return-Path: <kaduk@mit.edu>
X-Original-To: pkix@ietfa.amsl.com
Delivered-To: pkix@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
by ietfa.amsl.com (Postfix) with ESMTP id E655F3A15FC
for <pkix@ietfa.amsl.com>; Thu, 28 Jan 2021 08:13:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.919
X-Spam-Level:
X-Spam-Status: No, score=-1.919 tagged_above=-999 required=5
tests=[BAYES_00=-1.9, RCVD_IN_MSPIKE_H4=-0.01,
RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, 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 g2yc2ZuSpKnN for <pkix@ietfa.amsl.com>;
Thu, 28 Jan 2021 08:13:31 -0800 (PST)
Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
(No client certificate requested)
by ietfa.amsl.com (Postfix) with ESMTPS id 0F0B13A15FA
for <pkix@ietf.org>; Thu, 28 Jan 2021 08:13:30 -0800 (PST)
Received: from kduck.mit.edu ([24.16.140.251]) (authenticated bits=56)
(User authenticated as kaduk@ATHENA.MIT.EDU)
by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id 10SGDJIW021018
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
Thu, 28 Jan 2021 11:13:23 -0500
Date: Thu, 28 Jan 2021 08:13:18 -0800
From: Benjamin Kaduk <kaduk@mit.edu>
To: RFC Errata System <rfc-editor@rfc-editor.org>
Cc: david.cooper@nist.gov, sharon.boeyen@entrust.com, rdd@cert.org,
pkix@ietf.org
Message-ID: <20210128161318.GV21@kduck.mit.edu>
References: <20210128154420.4B40EF40715@rfc-editor.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20210128154420.4B40EF40715@rfc-editor.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/pkix/6xCF6X38Hn3Kp363UHSf8VRVKFE>
Subject: Re: [pkix] [Technical Errata Reported] RFC5280 (6414)
X-BeenThere: pkix@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: PKIX Working Group <pkix.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/pkix>,
<mailto:pkix-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/pkix/>
List-Post: <mailto:pkix@ietf.org>
List-Help: <mailto:pkix-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/pkix>,
<mailto:pkix-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Jan 2021 16:13:33 -0000
On Thu, Jan 28, 2021 at 07:44:20AM -0800, RFC Errata System wrote: > The following errata report has been submitted for RFC5280, > "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile". > > -------------------------------------- > You may review the report below and at: > https://www.rfc-editor.org/errata/eid6414 > > -------------------------------------- > Type: Technical > Reported by: Rob Stradling <rob@sectigo.com> > > Section: 4.2.1.12 > > Original Text > ------------- > id-kp-serverAuth OBJECT IDENTIFIER ::= { id-kp 1 } > -- TLS WWW server authentication > -- Key usage bits that may be consistent: digitalSignature, > -- keyEncipherment or keyAgreement > > Corrected Text > -------------- > id-kp-serverAuth OBJECT IDENTIFIER ::= { id-kp 1 } > -- TLS WWW server authentication > -- Key usage bits that may be consistent: digitalSignature > -- and/or (keyEncipherment or keyAgreement) > > Notes > ----- > In https://github.com/zmap/zlint/issues/553 there's been some disagreement and confusion about how to correctly interpret the "or" in the Original Text. "You can only set one of these three bits" is one interpretation, and it's hard to argue that this interpretation is inconsistent with the Original Text. > > However, digitalSignature+keyEncipherment makes sense for an RSA leaf certificate, and digitalSignature+keyAgreement makes sense for an ECC leaf certificate. Both are widely used, to enable ephemeral and non-ephemeral TLS ciphersuites in conjunction with a single server certificate. > > Given that RFC5480 section 3 explicitly permits digitalSignature+keyAgreement in an ECC leaf certificate, I think it's likely that my proposed Corrected Text conveys the RFC5280 authors' intended meaning. I would be inclined to mark this as "editorial" and "hold for document update". Given that across the list of EKU values both "or" and "and/or" are used, it seems like there was probably some intent to distinguish between them, but I don't see that we will get clear agreement on what wa intended at the time of publication. That said, having looked at the referenced github issue, I'm pretty surprised that there has been so much discussion. My understanding is that keyUsage and extendedKeyUsage both can act to restrict the usability of the certificate, but they do so independently, and either can be absent (in which case the absent extension does not restrict anything). So, if you have an EKU with id-kp-serverAuth and you have a keyUsage with none of the listed three bits set, you're not supposed to actually be able to use that cert for TLS WWW server authentication, since you'd need to use the key for at least one of digital signature, key encipherment, or key agreement, but the particular keyUsage forbids all of those. AFAICT that's the core point that this section is making, in terms of "consistency" between the otherwise independent extensions -- if you want to be able to use the given EKU at all, you either need to not have keyUsage or you're going to need *something* from the given list. But how you pick that "something" and what it is just operates on the normal rules for keyUsage, and there are very few rules that restrict which collections of keyUsage bits can be set at the same time. So I'm not sure how one would argue that there is a lot of exclusive-or going on amongst the listed bits just based on the spec requirements. (The realities of what a given key type can do with a given crypto algorithm is another matter, but I'm not convinced it's terribly relevant for the purposes of interpreting this text.) -Ben
- [pkix] [Technical Errata Reported] RFC5280 (6414) RFC Errata System
- Re: [pkix] [Technical Errata Reported] RFC5280 (6… Russ Housley
- Re: [pkix] [Technical Errata Reported] RFC5280 (6… Benjamin Kaduk
- Re: [pkix] [Technical Errata Reported] RFC5280 (6… Rob Stradling
- Re: [pkix] [Technical Errata Reported] RFC5280 (6… Russ Housley
- Re: [pkix] [Technical Errata Reported] RFC5280 (6… Rob Stradling
- Re: [pkix] [Technical Errata Reported] RFC5280 (6… Stefan Santesson
- Re: [pkix] [Technical Errata Reported] RFC5280 (6… Rob Stradling
- Re: [pkix] [Technical Errata Reported] RFC5280 (6… Russ Housley
- Re: [pkix] [Technical Errata Reported] RFC5280 (6… Benjamin Kaduk
- Re: [pkix] [Technical Errata Reported] RFC5280 (6… Rob Stradling
- Re: [pkix] [Technical Errata Reported] RFC5280 (6… Paul Hoffman
- Re: [pkix] [Technical Errata Reported] RFC5280 (6… Benjamin Kaduk
- Re: [pkix] [Technical Errata Reported] RFC5280 (6… Paul Hoffman
- Re: [pkix] [Technical Errata Reported] RFC5280 (6… Stephen Farrell
- Re: [pkix] [Technical Errata Reported] RFC5280 (6… Dan Harkins
- Re: [pkix] [Technical Errata Reported] RFC5280 (6… Paul Hoffman
- Re: [pkix] [Technical Errata Reported] RFC5280 (6… Benjamin Kaduk
- Re: [pkix] [Technical Errata Reported] RFC5280 (6… Ryan Sleevi