Re: [pkix] [Technical Errata Reported] RFC5280 (6414)

Benjamin Kaduk <kaduk@mit.edu> Thu, 28 January 2021 16:46 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 A86083A0AC5 for <pkix@ietfa.amsl.com>; Thu, 28 Jan 2021 08:46:48 -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 rWYJBsOEwNXu for <pkix@ietfa.amsl.com>; Thu, 28 Jan 2021 08:46:46 -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 ECE213A0ABB for <pkix@ietf.org>; Thu, 28 Jan 2021 08:46:45 -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 10SGkLpY003213 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 28 Jan 2021 11:46:26 -0500
Date: Thu, 28 Jan 2021 08:46:21 -0800
From: Benjamin Kaduk <kaduk@mit.edu>
To: Russ Housley <housley@vigilsec.com>
Cc: Rob Stradling <rob@sectigo.com>, "Roman D. Danyliw" <rdd@cert.org>, Stephen Kent <kent@bbn.com>, IETF PKIX <pkix@ietf.org>, Stefan Santesson <stefan@aaa-sec.com>, David Cooper <david.cooper@nist.gov>, "wpolk@nist.gov" <wpolk@nist.gov>, Stephen Farrell <stephen.farrell@cs.tcd.ie>
Message-ID: <20210128164621.GX21@kduck.mit.edu>
References: <20210128154420.4B40EF40715@rfc-editor.org> <B9FCFEBF-78B0-4C82-9902-67D4E832C0C7@vigilsec.com> <MW3PR17MB41222702CF6B9D8440B468D3AABA9@MW3PR17MB4122.namprd17.prod.outlook.com> <A077CE9B-35E3-4FF2-BA3A-213122D59843@vigilsec.com> <MW3PR17MB412259BEBBCC54B30D86DFC5AABA9@MW3PR17MB4122.namprd17.prod.outlook.com> <1342CD21-C794-4E39-9DD0-93F52DF48708@vigilsec.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
In-Reply-To: <1342CD21-C794-4E39-9DD0-93F52DF48708@vigilsec.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/pkix/5p0wJ8RAEXDTKbDxd7LUlKS8820>
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:46:49 -0000

I agree with Russ -- in my reading, this text is not adding any new
requirements on what combinations of keyUsage bits are "permitted" by the
spec.  Its primary purpose is to note that if you have a keyUsage at all,
you have to have at laest one of those bits set in order for the EKU in
question to be usable.  As a secondary purpose it may be providing
commentary on what combinations of keyUsage bits make sense to apply given
currently existing key types, but that commentary does not seem to have
normative force, to me.

-Ben

On Thu, Jan 28, 2021 at 11:42:21AM -0500, Russ Housley wrote:
> Rob:
> 
> I worry that the rewording will lead to similar discussions of the "and/or".  We really want any combination of digitalSignature, keyEncipherment, and keyAgreement bits that is consistent with the public key.
> 
> Russ
> 
> 
> > On Jan 28, 2021, at 11:27 AM, Rob Stradling <rob@sectigo.com> wrote:
> > 
> > > In my example, neither the keyEncipherment nor the keyAgreement bit is set.
> > 
> > Hi Russ.  I realize that, and I still say that my Proposed Text is compatible with your example.
> > 
> > My Proposed Text is:
> > >   -- Key usage bits that may be consistent: digitalSignature
> > >   -- and/or (keyEncipherment or keyAgreement)
> > 
> > The "and/or" part means that you can choose between these two options:
> > 
> > Option 1: digitalSignature and (keyEncipherment or keyAgreement)
> > Option 2: digitalSignature or (keyEncipherment or keyAgreement)
> > 
> > Setting just the digitalSignature bit, without keyEncipherment and without keyAgreement, is consistent with Option 2.
> > 
> > From: Russ Housley <housley@vigilsec.com <mailto:housley@vigilsec.com>>
> > Sent: 28 January 2021 16:18
> > To: Rob Stradling <rob@sectigo.com <mailto:rob@sectigo.com>>
> > Cc: Roman D. Danyliw <rdd@cert.org <mailto:rdd@cert.org>>; Ben Kaduk <kaduk@mit.edu <mailto:kaduk@mit.edu>>; Stephen Kent <kent@bbn.com <mailto:kent@bbn.com>>; IETF PKIX <pkix@ietf.org <mailto:pkix@ietf.org>>; Stefan Santesson <stefan@aaa-sec.com <mailto:stefan@aaa-sec.com>>; David Cooper <david.cooper@nist.gov <mailto:david.cooper@nist.gov>>; wpolk@nist.gov <mailto:wpolk@nist.gov><wpolk@nist.gov <mailto:wpolk@nist.gov>>; Stephen Farrell <stephen.farrell@cs.tcd.ie <mailto:stephen.farrell@cs.tcd.ie>>
> > Subject: Re: [Technical Errata Reported] RFC5280 (6414)
> >  
> > CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
> > 
> > Rob:
> > 
> > In my example, neither the keyEncipherment nor the keyAgreement bit is set.
> > 
> > Russ
> > 
> >> On Jan 28, 2021, at 11:17 AM, Rob Stradling <rob@sectigo.com <mailto:rob@sectigo.com>> wrote:
> >> 
> >> Hi Russ.
> >> 
> >> I'm afraid I don't understand your objection.  Your use case of setting only the digitalSignature bit is permitted both by the Original Text and by my Proposed Text.  (With my Proposed Text, you would choose the "or" option of the "and/or" instead of the "and" option).
> >> 
> >> The reason for the erratum is that neither digitalSignature+keyEncipherment nor digitalSignature+keyAgreement seem to be permitted by the Original Text.
> >> 
> >> From: Russ Housley <housley@vigilsec.com <mailto:housley@vigilsec.com>>
> >> Sent: 28 January 2021 16:07
> >> To: Rob Stradling <rob@sectigo.com <mailto:rob@sectigo.com>>
> >> Cc: Roman D. Danyliw <rdd@cert.org <mailto:rdd@cert.org>>; Ben Kaduk <kaduk@mit.edu <mailto:kaduk@mit.edu>>; Stephen Kent <kent@bbn.com <mailto:kent@bbn.com>>; IETF PKIX <pkix@ietf.org <mailto:pkix@ietf.org>>; Stefan Santesson <stefan@aaa-sec.com <mailto:stefan@aaa-sec.com>>; David Cooper <david.cooper@nist.gov <mailto:david.cooper@nist.gov>>; wpolk@nist.gov <mailto:wpolk@nist.gov><wpolk@nist.gov <mailto:wpolk@nist.gov>>; Stephen Farrell <stephen.farrell@cs.tcd.ie <mailto:stephen.farrell@cs.tcd.ie>>
> >> Subject: Re: [Technical Errata Reported] RFC5280 (6414)
> >>  
> >> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
> >> 
> >> 
> >> Rob:
> >> 
> >> The proposed rewording of the comment is not correct.  Consider an ECDSA key that will be used with TLS 1.3.  In that case, only the digitalSignature key usage would be set.
> >> 
> >> I think the original OR is correct.
> >> 
> >> Russ
> >> 
> >> 
> >> > On Jan 28, 2021, at 10:44 AM, RFC Errata System <rfc-editor@rfc-editor.org <mailto:rfc-editor@rfc-editor.org>> 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://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.rfc-editor.org%2Ferrata%2Feid6414&amp;data=04%7C01%7Crob%40sectigo.com%7Cdce250f148ea4d995db108d8c3a6ce56%7C0e9c48946caa465d96604b6968b49fb7%7C0%7C0%7C637474468512413977%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=8hy5qssHrRM%2BEOM2NX8rEJSJqGV%2FWhu7top4hdmsXgU%3D&amp;reserved=0 <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.rfc-editor.org%2Ferrata%2Feid6414&data=04%7C01%7Crob%40sectigo.com%7Ccbc3b1b2afb94a84540d08d8c3a86002%7C0e9c48946caa465d96604b6968b49fb7%7C0%7C0%7C637474475235070735%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=CzxiKY%2FEqSGRdy9AlPZzJb68MFfkiIbQmR2tL24VCUA%3D&reserved=0>
> >> >
> >> > --------------------------------------
> >> > Type: Technical
> >> > Reported by: Rob Stradling <rob@sectigo.com <mailto: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://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fzmap%2Fzlint%2Fissues%2F553&amp;data=04%7C01%7Crob%40sectigo.com%7Cdce250f148ea4d995db108d8c3a6ce56%7C0e9c48946caa465d96604b6968b49fb7%7C0%7C0%7C637474468512413977%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=Kf06%2FZ9o9VIMBcNRiCOk2L%2FUNA7dlgCP6ywIYJZH37I%3D&amp;reserved=0 <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fzmap%2Fzlint%2Fissues%2F553&data=04%7C01%7Crob%40sectigo.com%7Ccbc3b1b2afb94a84540d08d8c3a86002%7C0e9c48946caa465d96604b6968b49fb7%7C0%7C0%7C637474475235080682%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=5et7x5%2F7VXWEh6OwZLlWFkpMPScvHFC4tkPPOf3E%2FDM%3D&reserved=0> 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.
> >> >
> >> > Instructions:
> >> > -------------
> >> > This erratum is currently posted as "Reported". If necessary, please
> >> > use "Reply All" to discuss whether it should be verified or
> >> > rejected. When a decision is reached, the verifying party
> >> > can log in to change the status and edit the report, if necessary.
> >> >
> >> > --------------------------------------
> >> > RFC5280 (draft-ietf-pkix-rfc3280bis-11)
> >> > --------------------------------------
> >> > Title               : Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
> >> > Publication Date    : May 2008
> >> > Author(s)           : D. Cooper, S. Santesson, S. Farrell, S. Boeyen, R. Housley, W. Polk
> >> > Category            : PROPOSED STANDARD
> >> > Source              : Public-Key Infrastructure (X.509)
> >> > Area                : Security
> >> > Stream              : IETF
> >> > Verifying Party     : IESG
>