<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-keyusage-crl-validation-03" category="std" consensus="true" submissionType="IETF" updates="5280" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="CRL validation clarification">Clarification to processing Key Usage values during CRL validation</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-keyusage-crl-validation-03"/>
    <author fullname="Corey Bonnell">
      <organization>DigiCert, Inc.</organization>
      <address>
        <email>corey.bonnell@digicert.com</email>
      </address>
    </author>
    <author fullname="伊藤 忠彦" asciiFullname="Tadahiko Ito">
      <organization>SECOM CO., LTD.</organization>
      <address>
        <email>tadahiko.ito.public@gmail.com</email>
      </address>
    </author>
    <author fullname="大久保 智史" asciiFullname="Tomofumi Okubo">
      <organization>Penguin Securities Pte. Ltd.</organization>
      <address>
        <email>tomofumi.okubo+ietf@gmail.com</email>
      </address>
    </author>
    <date year="2025" month="November" day="18"/>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 50?>

<t>RFC 5280 defines the profile of X.509 certificates and certificate
revocation lists (CRLs) for use in the Internet. Section 4.2.1.3 of
RFC 5280 requires CRL issuer certificates to contain the <tt>keyUsage</tt>
extension with the <tt>cRLSign</tt> bit asserted. However, the CRL validation
algorithm specified in Section 6.3 of RFC 5280 does not explicitly
include a corresponding check for the presence of the <tt>keyUsage</tt>
certificate extension. This document updates RFC 5280 to require
that check.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://CBonnell.github.io/ietf-lamps-keyusage-crl-validation-clarification/draft-ietf-lamps-keyusage-crl-validation.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-lamps-keyusage-crl-validation/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/CBonnell/lamps-keyusage-crl-validation-clarification"/>.</t>
    </note>
  </front>
  <middle>
    <?line 61?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="RFC5280"/> defines the profile of X.509 certificates and certificate
revocation lists (CRLs) for use in the Internet. Section 4.2.1.3 of
<xref target="RFC5280"/> requires CRL issuer certificates to contain the <tt>keyUsage</tt>
extension with the <tt>cRLSign</tt> bit asserted. However, the CRL validation
algorithm specified in Section 6.3 of <xref target="RFC5280"/> does not explicitly
include a corresponding check for the presence of the <tt>keyUsage</tt>
certificate extension. This document updates <xref target="RFC5280"/> to require
that check.</t>
      <t><xref target="the-issue"/> describes the security concern that motivates this update.</t>
      <t><xref target="crl-validation-algo-amendment"/> updates the CRL validation algorithm
to resolve this concern.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="the-issue">
      <name>The risk of trusting CRLs signed with non-certified keys</name>
      <t>In some Public Key Infrastructures, entities are delegated by
Certification Authorities to sign CRLs. CRLs whose scope encompasses
certificates that have not been signed by the CRL issuer are known as
"indirect CRLs".</t>
      <t>Applications which consume CRLs follow the validation algorithm as
specified in Section 6.3 of <xref target="RFC5280"/>. In particular, Section 6.3.3
contains the following step for CRL validation:</t>
      <ul empty="true">
        <li>
          <t>(f) Obtain and validate the certification path for the issuer of
    the complete CRL.  The trust anchor for the certification
    path <bcp14>MUST</bcp14> be the same as the trust anchor used to validate
    the target certificate.  If a <tt>keyUsage</tt> extension is present
    in the CRL issuer's certificate, verify that the <tt>cRLSign</tt> bit
    is set.</t>
        </li>
      </ul>
      <t>This step does not explicitly specify a check for the presence of the
<tt>keyUsage</tt> extension itself.</t>
      <t>Similarly, the certificate profile in <xref target="RFC5280"/> does not require
the inclusion of the <tt>keyUsage</tt> extension in a certificate if the
certified public key is not used for verifying the signatures of other
certificates or CRLs.</t>
      <t>Certification Authorities can delegate the issuance of CRLs
to other entities by issuing to the entity a certificate that asserts
the <tt>cRLSign</tt> bit in the <tt>keyUsage</tt> extension. The Certification
Authority will then sign certificates that fall within the scope of the
indirect CRL by including the <tt>crlDistributionPoints</tt> extension and
specifying the distinguished name ("DN") of the CRL issuer in the
<tt>cRLIssuer</tt> field of the corresponding distribution point.</t>
      <t>The CRL issuer signs CRLs that assert the <tt>indirectCRL</tt> boolean within
the <tt>issuingDistributionPoint</tt> extension.</t>
      <t>The allowance for the issuance of certificates without the <tt>keyUsage</tt>
extension and the lack of a check for the inclusion of the <tt>keyUsage</tt>
extension during CRL verification can manifest in a security issue. A
concrete example is described below.</t>
      <ol spacing="normal" type="1"><li>
          <t>The Certification Authority signs an end-entity CRL issuer
certificate to subject <tt>X</tt> that certifies key <tt>A</tt> for signing CRLs by
explicitly including the <tt>keyUsage</tt> extension and asserting the
<tt>cRLSign</tt> bit in accordance with Section 4.2.1.3 of <xref target="RFC5280"/>.</t>
        </li>
        <li>
          <t>The Certification Authority signs one or more certificates that
include the crlDistributionPoints extension with the DN for subject
<tt>X</tt> included in the <tt>cRLIssuer</tt> field. This indicates that the
CRL-based revocation information for these certificates will be
provided by subject <tt>X</tt>.</t>
        </li>
        <li>
          <t>The Certification Authority signs an end-entity certificate to
subject <tt>X</tt> that certifies key <tt>B</tt>. This certificate contains no key
usage extension, as the certified key is not intended to be used for
signing CRLs and could be a “mundane” certificate of any type (e.g.,
S/MIME, document signing certificate where the corresponding private
key is stored on the filesystem of the secretary's laptop, etc.).</t>
        </li>
        <li>
          <t>Subject <tt>X</tt> signs a CRL using key <tt>B</tt> and publishes the CRL at the
<tt>distributionPoint</tt> specified in the <tt>crlDistributionPoints</tt>
extension of the certificates signed in step 2.</t>
        </li>
        <li>
          <t>Relying parties download the CRL published in step 4. The CRL
validates successfully according to Section 6.3.3 of <xref target="RFC5280"/>,
as the CRL issuer DN matches, and the check for the presence of the
<tt>cRLSign</tt> bit in the <tt>keyUsage</tt> extension is skipped because the
<tt>keyUsage</tt> extension is absent.</t>
        </li>
      </ol>
    </section>
    <section anchor="crl-validation-algo-amendment">
      <name>Checking the presence of the <tt>keyUsage</tt> extension</name>
      <t>To remediate the security issue described in <xref target="the-issue"/>, this
document specifies the following amendment to step (f) of the CRL
algorithm as found in Section 6.3.3 of <xref target="RFC5280"/>.</t>
      <t><em>OLD:</em></t>
      <ul empty="true">
        <li>
          <t>(f) Obtain and validate the certification path for the issuer of
    the complete CRL.  The trust anchor for the certification
    path <bcp14>MUST</bcp14> be the same as the trust anchor used to validate
    the target certificate.  If a <tt>keyUsage</tt> extension is present
    in the CRL issuer's certificate, verify that the <tt>cRLSign</tt> bit
    is set.</t>
        </li>
      </ul>
      <t><em>NEW:</em></t>
      <ul empty="true">
        <li>
          <t>(f) Obtain and validate the certification path for the issuer of
    the complete CRL.  The trust anchor for the certification
    path <bcp14>MUST</bcp14> be the same as the trust anchor used to validate
    the target certificate.  If the version of the CRL issuer’s
    certificate is version 3 (v3), then verify that the keyUsage
    extension is present and verify that the cRLSign bit is set.</t>
        </li>
      </ul>
      <t>This change ensures that the CRL issuer's key is certified for
CRL signing. However, this check is not performed if the CRL
issuer's key is certified using a version 1 (v1) or version 2 (v2) X.509
certificate, as these versions do not have an <tt>extensions</tt> field where
the key usage extension can be included.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>If a Certification Authority has signed certificates to be used for
CRL verification but do not include the <tt>keyUsage</tt> extension in
accordance with Section 4.2.1.3 of <xref target="RFC5280"/>, then relying party
applications that have implemented the modified verification algorithm
as specified in this document will be unable to verify CRLs signed by
the CRL issuer in question.</t>
      <t>It is strongly <bcp14>RECOMMENDED</bcp14> that Certification Authorities include the
<tt>keyUsage</tt> extension in certificates to be used for CRL verification to
ensure that there are no interoperability issues where updated
applications are unable to verify CRLs.</t>
      <t>If it is not possible to update the profile of CRL issuer certificates,
then the policy management authority of the affected Public Key
Infrastructure <bcp14>SHOULD</bcp14> update the subject naming requirements to ensure
that certificates to be used for different purposes contain unique DNs.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC5280">
        <front>
          <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
          <author fullname="D. Cooper" initials="D." surname="Cooper"/>
          <author fullname="S. Santesson" initials="S." surname="Santesson"/>
          <author fullname="S. Farrell" initials="S." surname="Farrell"/>
          <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
          <author fullname="R. Housley" initials="R." surname="Housley"/>
          <author fullname="W. Polk" initials="W." surname="Polk"/>
          <date month="May" year="2008"/>
          <abstract>
            <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5280"/>
        <seriesInfo name="DOI" value="10.17487/RFC5280"/>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 221?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank the participants on the LAMPS Working Group mailing list for their insightful feedback and comments. In particular, the authors extend sincere appreciation to Carl Wallace, David Hook, Deb Cooley, John Gray, Michael St. Johns, Mike Ounsworth, Russ Housley, Serge Mister, and Tomas Gustavsson for their reviews and suggestions, which greatly improved the quality of this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1aTW8cxxG996/orA4Rld2RKcmJvXBsr0jKZkKKCklBNoIA
7Jnp3e1wdno9PUN6IxjwJZdccgwMxIAPRnLPLUECA/kphhXkZ+RVdc/X7lKR
gQBGkFykmZ7u6upXVa+qejkajURpykyP5WAvU4WZmkSVxuaytHJZ2EQ7Z/KZ
/KleyadOzbS8UlmlnUyrgsb3To9oxKS8aCBUHBf6ioT1PsikK3sg8L+e2WI1
lq5MhUhtkqsFdEgLNS1HRpfTUaYWSze61KuKth0lRTZq5Y1euy9cFS8MtLN5
uVpi7eHB+SMpb0mVOQsFTJ7qpcY/eTkYyoFOTWkLozJ6OZw8xH+2wNPp+aOB
yKtFrIuxgHA9FonNnc5d5cayLCotcJz7AnILrcZycnowwcu1LS5nha2WY/ns
PfkMb4TGezQioDM+p2MhRzLXH5dypnNdsN40VOUmsQU/uqUqLjNamRpXFiau
Sp3KTKczXYgrnVfQ5paUzUb04g/b3xHDC2UymvKu/hjAZTpK7ILGVZHMx3Je
lks3vnu38/EuxEG0KedVTPZ6aPNcZ9ndl+O+ZkcpM0DmSgiot6gFRV50ZOzd
V7BnT+7dV3WDaF4usoGolmQ4mOv1e2+8JoSqyrktCH7oJ+W0yjLvXYM9W8CP
g4ID/mqLmcrNr1jcWO6bmdnTRTmUh3kS8QTtkR0ktDaK/dp3U0xMMJGQHGzs
xG9Sjsfym7/+5p+/+1K++OqLF3/7QxhWLjFmLM9Vqubm0srD0m5R5exg7+RY
7p1EQ3l0vt/TpQwrI7h0tKzizCTvzugTG/1mZV58+cdv/vzrb776XP7js7+8
+O2f1vSxCzutFkaeXFbxNo2e6HxWmVye6QTBXxqwwJNSR/KoTPvqBUGRJUE/
IDN21BO5LRaQeAXNhMmnnTcxGo2kihEJKimFOH20xxaVqZ6aHLuVc02cNDWZ
lnYqP4hef+1NSVbwnoMZKk+7AwJcZAOfZYgwJ2+Dl9yOxK6yclriNCT0MC91
kesyorPx7AfRvWg3uo9tWjUK/VFlCuxC3AbmqXTR3x2UCe4oVZB6Aa9lzrwQ
YAEwCgm+RlT4r8np0ZmZ5RcyNiVs4CBJp5F8317rK10MeVKfRYXKQJoQsABz
6AT7gi28QVjpH7LCssXNQqncllJ/vISPgOZXQDzJqlRLBVULHGZp85SIJJnr
5JJx8ShrUGDCMK8dpXNi2Rwrkudzg6Rgk2oBwpUhIltVAE2AT5RzVfrtIm/x
hUnTTAuwFexQ2LTi0wjx/Pn3sJ6Wf/LJd+wDPVX+W/ygj9937gs9dW7yh+fP
scWIQWWjuwRZMZjded5ZEbjYmcDFyoUFe3jYaVu/G0taSzEE2giEmKekFqTX
im0CLBuABSvqbHalvfywd0TuumdzJGla4L1un3zU8LsQ55AKpKhSSJ0cHD89
O6fSg/6Xj0/4+fTgZ08PTw/26fns/cnRUfMgwoyz90+eHu23T+1KJIfjg8f7
fjFGZW9IDI4nH+ILaTU4eXJ+ePJ4cjTwrt61DWoaMkVMUQD3h6mpAFFO1Miz
Xz3ce/L3L3YfBAve2919E+j5lzd2f/QAL9dznfvdbJ6twitwXQm1XGpVkBSV
ZTJRS1OiQMNcJ93cXudyrgsy152fEzK/GMu34mS5++DtMEAH7g3WmPUGGbPN
kY3FHsQtQ1u2adDsja8h3dd38mHvvca9M/jWO6j2tBztvvHO24JciLykMO6S
g6uoXBmKaqADTgD8zBM5VUg+1jAEr0I03WoDRYjDXDq70PIJFwNcrR/m00Ih
lYJNK3jwUJKnctImo6c60zNFxo5XYq8JY/L9CZdPfip8g/RgjSKv1/XcgjRd
YpeI+RwZfUmc5USfASky5wpBQ5QTa53X54lXTbwF6iR1LnNyBfgdle0ghaTk
zQZwjMmS+Er5KLuem2ROMejgv16fqc0ye81CtwUwCX1VkowAmkRJXpqkQj06
7M6N7ovA6Z4w/LZkLVfqJZNln0NQz7wtb0935EnMmYCCI3zVLCHpob5UsHNN
uQEZJB4qq3iypbq95DNHkt2G3QViE1irWdkTyqtZMIdS7Pd14EAKv3JdBpJh
ShavtWw2L1Ux02U3x0GFwynyRpsLWv6H9iFnlCwhZMHW4t93XVFDiSxnpivv
MxsZ0YtAOCAzE6nSIwG+JZ+FZLiifPayDCa2a106nU2xx5lZGFg/Ww3XEG0L
Dxxpe3JtcxpNQnZl0RuJs7ttTup29jBexzbcfYHPucT4XdhQdDiPHDkhGxaY
KQ522tFiqOhHpfdRhzPeHPGJyhtyaHxRBfBoNWVElt0SSrziWayH5UX8abV2
MjawL3Cc2Cx9NqqlfkkBD+r5dq00so1BZsFSzzFyk4imlHqISMMWnryCM3QJ
h0/CRVGN6QWKiP26N8e2TywSpesaEHEdCKYxBDXzhnolN4ehqAmTtwf7jwc7
tSd02M+rJAiKQx65kLB6ltZT+5VZ2lFFLkmXyFcaHYkEgvPc2EHcn6Y+LL4C
dGszrfKAjLdIsOPGkbvG8Dsq4j92jC5r1Z7SMwJtYKvy5mKYuJE+ZirhTLge
wC8JpY6U7pWU7txkkUsv0MdOtSt9vDWVJEMWyQlxe0LFjww3JBRqbQ0Ua5wV
597d4oiydUSPPHZDjTkKIdAahpisFw7IrVX8S3K9iw8uvK3qqHcc7heTC4aA
5DZ1AfI1tdot66057DaSIXy9G4RpJGIj+lQCZ0vZglx1bPZB/Wwp7r0KHBb1
Ds6wsIXeDE3B+cF3Iezt26JNbuma9h97ZDyAfBxgGESlDZesR1XoTSgMOvwQ
AAG8o1gRt3ZaxuaGAs/BHZ1ed2/QS8wikCCuTOrLnI5xI3H/23tO31dI+r9z
l4cX4XzdpU3VkluaRXL4Kq1FdVhXA70Ss0421Bjkqa8MUEHUuYf16folt922
yihaEGJff/r7RZXDm/TXn37eU4jiO1/xPaa8raNZNCRZZ3ePD48Phm1rUgvv
Lr2mZmELLS4LbgFJTtDclfA36kZ8sYak7VaoGxY1gYABEO6qWKEYydSytEsU
yGUS7UTiQSTPOkAH03AgV3wXHrDmE3NyBs23XWTrTxfpJov2StGXJBgf47Xb
17mg63WhnoYYrofuReL1SJ7qjLMQF7F0S4+yOrMqbbSr9W0XPgieeXpEe9a1
H+RXCV3+0zXiKlBDSPC9qnidFdiYyq2nOcQrggis7oYN27+8SNvGUDdXUdD3
0qDVJO9LFF3r1DJumK5iKlB9G0961Px5821HZ/3zWy+/W0CGpGuDhU5NXUb1
U47s9de9S48ht+iijYPgMettR7MbJxKyJDUbbYEhui0Q1iEY19qfbZQu7pwc
7Y/v/L93+c/3LnceHzz7X0CWO3FddImrxe/rTz9zLKHX8rhmwX15++r+ztCX
8+vg1gbzPzZssZmHc21VsIjnkF4jmcxVTokwd9w0NSt65g4Jpc2NlPxoRkhQ
vZtaFkqsFpLnUhdUPlCYt4F5s2ifX1SDxi7Q2N2RvtPjkXsYubfjr71FzxO9
7VyDPZE/68DXMCgtLhrEXN1jcD4VAdr1soDr5lg3RRVz5VlNY3sQg0rH/6zp
hOCQuqm8masmX61flHdLio3KHSmxPkW3SryhkRbfsoANXlZ0cibfV7bXTe01
lqFAI7bVPnctbOpN1tO3vTamA/dTfffaNVSMsspVnHEnEJy2e/OHQn+zV/yo
QhPjm7BD785lYfMZUnTnVtLrfXOP38HyhruQ9S66Z6fNDgvlqQ+iJobwSPd6
qDn5Yhn9dqFikzUJ0IVazt/Bp33YaeVWaCL2Mx/HHF7WOROmeUnrvw/d8BPN
ULDpebLFxitqEAGCvxRv/DbQl5pO4Uk4fHu9KvrXqzJcI3eUqIt1tP/kXeFm
iDZgPD1eolvGb8UabjYFUFBrWRU4r3bNb0tVbuAOKK0ch+bh5PFkIyz7P8VQ
HMIkPFNxbNBS/hEuRutNUiYJ3cXSnyCwquL52P9xhE5/PJiqzOnBJ6H/Z5Rg
R675M3Op/eWPyi89rnyPapaKDhzq8KPJ8ZOz/t8u8B8u0Bv9NlcnLEO+jjCY
lyg/5VTrlNQLLcaCFdu4qy07OrEnpwgk+q0Gw0vkh8Q0f9eyp4pMPlNZphIQ
575CywYSt5d41jEgtJleDeVP7DyHjgqPxwapQmfyrIx42NEQDnxS5e7aFuV8
KE8r5yCkcrz2TCM3Yg7qssIXvOd2AfDfQ2JVV861zSSOim7T6GvfQblqNvMR
jj38bfes0Ir7/AV1l4F/PqpU1nhox8SR+BebAfHK0iMAAA==

-->

</rfc>
