<?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.8 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-lamps-okubo-certdiscovery-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.0 -->
  <front>
    <title abbrev="TODO - Abbreviation">A Mechanism for X.509 Certificate Discovery</title>
    <seriesInfo name="Internet-Draft" value="draft-lamps-okubo-certdiscovery-01"/>
    <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>
    <date year="2024" month="April" day="23"/>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 50?>

<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 59?>

<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 181?>

<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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

-->

</rfc>
