<?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.17 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-lamps-okubo-certdiscovery-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="TODO - Abbreviation">A Mechanism for X.509 Certificate Discovery</title>
    <seriesInfo name="Internet-Draft" value="draft-lamps-okubo-certdiscovery-02"/>
    <author initials="T." surname="Okubo" fullname="Tomofumi Okubo">
      <organization>DigiCert, Inc.</organization>
      <address>
        <email>tomofumi.okubo+ietf@gmail.com</email>
      </address>
    </author>
    <author initials="C." surname="Bonnell" fullname="Corey Bonnell">
      <organization>DigiCert, Inc.</organization>
      <address>
        <email>corey.bonnell@digicert.com</email>
      </address>
    </author>
    <author initials="J." surname="Gray" fullname="John Gray">
      <organization>Entrust</organization>
      <address>
        <email>john.gray@entrust.com</email>
      </address>
    </author>
    <author initials="M." surname="Ounsworth" fullname="Mike Ounsworth">
      <organization>Entrust</organization>
      <address>
        <email>mike.ounsworth@entrust.com</email>
      </address>
    </author>
    <author initials="J." surname="Mandel" fullname="Joe Mandel">
      <organization>AKAYLA, Inc.</organization>
      <address>
        <email>joe@akayla.com</email>
      </address>
    </author>
    <date year="2024" month="July" day="08"/>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 62?>

<t>This document specifies a method to discover a secondary X.509 certificate associated with an X.509 certificate to enable efficient multi-certificate handling in protocols. The objective is threefold: to enhance cryptographic agility, improve operational availability, and accommodate multi-key/certificate usage. The proposed method aims to maximize compatibility with existing systems and is designed to be legacy-friendly, making it suitable for environments with a mix of legacy and new implementations. It includes mechanisms to provide information about the target certificate's signature algorithm, public key algorithm and the location of the secondary X.509 certificate, empowering relying parties to make informed decisions on whether or not to fetch the secondary certificate.</t>
      <t>The primary motivation for this method is to address the limitations of traditional certificate management approaches, which often lack flexibility, scalability, and seamless update capabilities. By leveraging this mechanism, subscribers can achieve cryptographic agility by facilitating the transition between different algorithms or X.509 certificate types. Operational redundancy is enhanced by enabling the use of backup certificates and minimizing the impact of primary certificate expiration or CA infrastructure failures.</t>
      <t>The approach ensures backward compatibility with existing systems and leverages established mechanisms, such as the subjectInfoAccess extension, to enable seamless integration. It does not focus on identity assurance between the primary and secondary certificates, deferring such considerations to complementary mechanisms.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://tomofumiokubo.github.io/certificatediscovery/draft-lamps-okubo-certdiscovery.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-lamps-okubo-certdiscovery/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/tomofumiokubo/certificatediscovery"/>.</t>
    </note>
  </front>
  <middle>
    <?line 71?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The efficient discovery of X.509 certificates plays a critical role in modern cryptographic systems. Traditional certificate management approaches often face challenges in terms of flexibility, scalability, and seamless updates. To address these limitations, this document proposes a novel approach to certificate discovery utilizing the Subject Information Access extension within X.509 certificates.</t>
      <t>The primary objective of this approach is to enable efficient multi-certificate handling in protocols, offering several key benefits. First, it enhances cryptographic agility by facilitating smooth transitions between different algorithms or X.509 certificate types. This is particularly valuable in scenarios where subscribers need to upgrade their cryptographic algorithms or adopt new certificate types while maintaining backward compatibility with existing systems.</t>
      <t>Second, the proposed method improves operational availability by introducing redundancy in certificate usage. It enables the use of secondary certificates that can serve as backups, ensuring seamless continuity of services even in the event of primary certificate expiration or disruptions in the CA infrastructure.</t>
      <t>Finally, the approach accommodates multi-key/certificate usage, allowing for a relying party to obtain certificates to perform cryptographic operations that are not certified by a single certificate.</t>
      <t>The proposed method is designed to maximize compatibility with existing systems, including legacy implementations. It leverages the SIA extension, which is already established in X.509 certificates, and does not require modifications to the referring certificates. This ensures ease of adoption and avoids disruptions to current certificate management practices.</t>
      <t>It's important to note that this specification does not aim to solve or assure the identity (subject) binding between the primary and secondary certificates. Instead, it focuses on providing a mechanism for efficient certificate discovery, while identity assurance can be addressed through complementary mechanisms such as draft-becker-guthrie-cert-binding-for-multi-auth-02.</t>
      <t>In the following sections, we will outline the details of the proposed approach, including the structure of the SIA extension, the modes of operation, and the considerations for secure implementation and deployment.</t>
      <t>By leveraging the capabilities of the SIA extension for certificate discovery, organizations can enhance cryptographic agility, improve operational availability, and accommodate complex multi-key/certificate scenarios, leading to more secure and resilient cryptographic systems.</t>
      <section anchor="use-case-1-cryptographic-agility">
        <name>Use Case 1: Cryptographic Agility</name>
        <t>The first use case is improving cryptographic agility. For example, the Primary Certificate uses a widely adopted cryptographic algorithm while the Secondary Certificate uses the algortihm that is new and not widely adopted yet. The relying party will be presented with the opportunity to try the new algorithms and certificate types. This will be particularly useful when transitioning from one algrithm to another or to a new certificate/credential type.</t>
        <t>In addition, the server may look at the logs to determine how ready the client side is to shift to completely rollover to the new algorithm. This allows the subscriber to gather the metrics necessary to make an informed decision on the the best timing to do an algorithm rollover without relying on third parties or security researchers. This is particularly useful for PKIs that have a wide array of client software and requires careful considerations. #fintech #IoT</t>
      </section>
      <section anchor="use-case-2-operational-redundancy">
        <name>Use Case 2: Operational Redundancy</name>
        <t>The second use case is where the Primary and Secondary Certificate adopts the same cryptographic algorithms but for instance, uses certificates issued by two different CAs or two certificates that has different validity periods. The Secondary Certificate may be used as a backup certificate in case the Primary Certificate validity is about to expire.</t>
        <t>A common issue is when the intermediate CA certificate expires and the subscriber forgets to update the intermediate CA configured on the server. Similar to when some software collects the parent certificate through authorityInfoAccess CA Issuer access method when the intermediate certificate is absent, the peer certificate can be obtained.</t>
        <t>Due to increased adoption of the ACME protocol, the burden of maintaining the availability of a service is shifted to the CA issuance infrastructure and the availability would be dependent on the CA infrastructure. To increase the operational redundancy, this mechanism can be used to point to another set of certificates that are independent from the Primary Certificate to minimize the chance of a failed transaction.</t>
      </section>
      <section anchor="use-case-3-dual-use">
        <name>Use Case 3: Dual Use</name>
        <t>The third use case is where one certificate is used by the named subject for a particular cryptographic operation and a relying party wishes to obtain the public key of the named subject for a different cryptographic operation. For example, the recipient of an email message which was signed using a key that is certified by a single-use signing S/MIME certificate may wish to send an encrypted email to the sender. In this case, the recipient will need the sender's public key used for encryption. A pointer to the named subject's encryption certificate will permit the recipient to send an encrypted reply.</t>
      </section>
    </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 anchor="definitions">
        <name>Definitions</name>
        <t>For conciseness, this section defines several terms that are frequently used throughout this specification.</t>
        <t>Primary Certificate: The X.509 certificate that has the subjectInfoAccess extension with the certDiscovery accessMethod pointing to a Secondary Certificate.</t>
        <t>Secondary Certificate: The X.509 certificate that is referenced by the Primary Certificate in the subjectInfoAccess extension certDiscovery accessMethod</t>
      </section>
    </section>
    <section anchor="certificate-discovery-access-method-certificates">
      <name>Certificate Discovery Access Method Certificates</name>
      <t>This document specifies the new certDiscovery access method for X.509 Subject Information Access (SIA) extension defined in <xref target="RFC5280"/>.
The certDiscovery access method has 3 components. The relatedCertificateLocation which is a GeneralName that has the pointer to the Secondary Certificate. The relatedCertificateSignatureAlgorithm which indicates the signature algorithm used in the Secondary Certificate. Finally, the relatedCertificatePublicKeyAlgorithm which indicates the public key algorithm used in the Secondary Certificate.</t>
      <t>When the validation of the Primary Certificate fails, the software that understands the SIA extension and the certDiscovery access method uses the information to determine whether or not to fetch the Secondary Certificate. The software will look at the relatedCertificateSignatureAlgorithm and relatedCertificatePublicKeyAlgorithm to determine whether the Secondary Certificate has the signature algorithm and certificate public key algorthm it can process. If the software understands the signature algorithm and certificate public key algorthm, the software fetches the certificate from the URI specified in the relatedCertificateLocation and attempt another validation. Otherwise, the validation simply fails.</t>
      <t>The syntax of subject information access extension syntax is repeated here for convenience:</t>
      <artwork><![CDATA[
   SubjectInfoAccessSyntax  ::=
           SEQUENCE SIZE (1..MAX) OF AccessDescription

   AccessDescription  ::=  SEQUENCE {
           accessMethod          OBJECT IDENTIFIER,
           accessLocation        GeneralName  }
]]></artwork>
      <t>The syntax of the related certificate descriptor is as follows:</t>
      <artwork><![CDATA[
   id-ad  OBJECT IDENTIFIER  ::= {
     iso(1) identified-organization(3) dod(6) internet(1)
     security(5) mechanisms(5) pkix(7) ad(48) }
    id-ad-certDiscovery OBJECT IDENTIFIER ::= { id-ad TBD }

   id-on-relatedCertificateDescriptor OBJECT IDENTIFIER ::= { id-on TBD2 }

   on-RelatedCertificateDescriptor OTHER-NAME ::= {
        RelatedCertificateDescriptor IDENTIFIED BY id-on-relatedCertificateDescriptor
    }

   RelatedCertificateDescriptor ::= SEQUENCE {
           relatedCertificateLocation                              GeneralName,
           relatedCertificateSignatureAlgorithm         [0] IMPLICIT AlgorithmIdentifier OPTIONAL,
           relatedCertificatePublicKeyAlgorithm         [1] IMPLICIT AlgorithmIdentifier OPTIONAL
   }
]]></artwork>
      <t>The semantics of other id-ad-certDiscovery accessLocation name forms are not defined.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This mechanism does not assure the binding of the identity of the subject in the Primary Certificate and the Secondary Certificate. To assure the binding of identities of the two certificate, a confirming CA should adopt a separate mechanism such as draft-becker-guthrie-cert-binding-for-multi-auth-02 for to explicitly express the binding of identities.</t>
      <t>There is a chance the Secondary Certificate may also have the certDiscovery access method. In order to avoid cyclic loops or infinite chaining, the validator should be mindful of how many fetching it allows in one validation.</t>
      <t>The same security considerations for CAIssuer access method outlined in <xref target="RFC5280"/> applies to the certDiscovery access method. In order to avoid recursive certificate validations which involve online revocation checking, untrusted transport protocols (such as plaintext HTTP) are commonly used for serving certificate files. While the use of such protocols avoids issues with recursive certification path validations and associated online revocation checking, it also enables an attacker to tamper with data and perform substitution attacks. Clients fetching certificates using the mechanism specified in this document <bcp14>MUST</bcp14> treat downloaded certificate data as untrusted and perform requisite checks to ensure that the downloaded data is not malicious.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <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>
      <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>
    </references>
    <?line 193?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
    <section numbered="false" anchor="appendix-a-asn1-module">
      <name>Appendix A. ASN.1 Module</name>
      <t>The following ASN.1 module provides the complete definition of the Certificate Discovery access descriptor.</t>
      <artwork><![CDATA[
CertDiscovery { iso(1) identified-organization(3) dod(6) internet(1)
   security(5) mechanisms(5) pkix(7) id-mod(0) id-mod-CertDiscovery(TBD1) }

   DEFINITIONS EXPLICIT TAGS ::=

   BEGIN

   -- EXPORTS ALL --

   IMPORTS
    OTHER-NAME
    FROM PKIX1Implicit-2009
      { iso(1) identified-organization(3) dod(6) internet(1) security(5)
      mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-implicit-02(59) }

    id-pkix, id-ad
    FROM PKIX1Explicit-2009
      { iso(1) identified-organization(3) dod(6) internet(1) security(5)
      mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-explicit-02(51) } ;

   -- Access descriptor OID --

   id-ad-certDiscovery OBJECT IDENTIFIER ::= { id-ad TBD }

   -- Other Name OID Arc --

   id-on OBJECT IDENTIFIER ::= { id-pkix 8 }

   -- Certificate Discovery Access Descriptor --

   id-on-relatedCertificateDescriptor OBJECT IDENTIFIER ::= { id-on TBD2 }

   on-RelatedCertificateDescriptor OTHER-NAME ::= {
        RelatedCertificateDescriptor IDENTIFIED BY id-on-relatedCertificateDescriptor
    }

   RelatedCertificateDescriptor ::= SEQUENCE {
           relatedCertificateLocation                           GeneralName,
           relatedCertificateSignatureAlgorithm         [0] IMPLICIT AlgorithmIdentifier OPTIONAL,
           relatedCertificatePublicKeyAlgorithm         [1] IMPLICIT AlgorithmIdentifier OPTIONAL
   }

   END
]]></artwork>
    </section>
  </back>
  <!-- ##markdown-source:
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
c8IPu335BGgHB7hMF8ZpWb+JQj8HxZ4GKEmPAu7swptVBeQMNR3Va5rHP5Ra
EqtkvG1Uyc4k5fNsWeis+nuuoQNYwq8oihIxs2XlaqQ5H9pFSVfS+ycHIKNe
agnujY5dw0MoBeeWM8ieOrKh/oocErqeZgDIUAcaQpkyBoW0ytuMc2nouwIe
Ls+DdoIWO5NQ3rW+bCuPbIpSfhxgwomY65TV/3klHWZJYUEZc4plqKAYLPge
gAjKqoz7lqPM8Z1l6DSkqA60QaGN3ibUQPKylTX5crUXNZSAyM9P5iq6U7a/
zLFPKy4u/XDsPiTr+9CjIUr/2XNSvNcCOsQQdU5Fodg+KDhykgg0NahJXqmx
QvAlrmhIyvAo4rzu5IzQSqgYdrQcmh4RIGGKZbCelh1QCz2RbiEg0WvGjvdy
tUnMlp7hYG1030T/neIw+T0Gqw8ZfEPwP95Lews/7smOZfk8xbmkVzASkLGq
0AjRg9OAOjteJ74Dqnwi3iGCxxTGZ0Mxbiwbeel97lsQrOByFNFi7cKZOEF0
HRpIhHzfTxG9bd+G6Bo38jxDtgfYFRCB8wg8aE+xD5HCtiqjc4calxrakmls
4ayhHaMDbu2RKFrctirz84lmeWF/n5NfA3qm5ZyGyJsNJac81b4KZRCDHjOP
CpkQu33gqCReR0gQf5EnBInSGg7j8mfNGlmGD+ZVQa00zhJ6dfrUBkBPI6AN
yilwNmLtAxzJRGdluDFwsEjECBBj7oTMwqxhyUkbEQ7sTvG+Mg/CVxmOHu9W
jocevNKt9CKrGpqM9GspjxD5UFIa6gl64AJfNnABA9KGpeSzcU5QmdURmZDQ
ONm8mGHIdHeMQcmYO+4VtWtw2gxV2QdITDqruVMpIBmWxjWFAzAJDYhYDE2K
VEMGJ3egWTmw6h6kG+xIGeTtD9OANlaSIBr7HpCHlQzDCkWid3qQZdhyWabE
YplOM+8NxJMF9a5I9E+mZtYM4ufDxpTgpoSbPop9TWuEscff9fAkGbrDiwMm
GEuud7Jd5fnzPOPTa9RKyounPjIbME2jzHnIlT2YWosxHrG66eEu2F1RbSuX
oqNAyYVJcGRt4jDy7JadXHzOGSKmAik7ZiIMyUkt+5JVyY8c18/3jMfFFFwj
wek79ScLuvW+SPYiJ6VxL+HkHVwd5jGtMIAKlypzvhnistBJzKQLvUTSjwvX
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
OgAA

-->

</rfc>
