<?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.27 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-certdiscovery-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="TODO - Abbreviation">A Mechanism for X.509 Certificate Discovery</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-certdiscovery-00"/>
    <author initials="T." surname="Okubo" fullname="Tomofumi Okubo">
      <organization>Penguin Securities Pte. Ltd.</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="2025" month="April" day="09"/>
    <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-ietf-lamps-certdiscovery.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-lamps-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 play 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 algorithm 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 algorithm 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 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 uniformResourceIdentifier which is an IA5String that has the URL reference to the Secondary Certificate. The signatureAlgorithm which indicates the signature algorithm used in the Secondary Certificate. Finally, the publicKeyAlgorithm 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 signatureAlgorithm and publicKeyAlgorithm to determine whether the Secondary Certificate has the signature algorithm and certificate public key algorithm it can process. If the software understands the signature algorithm and certificate public key algorithm, the software fetches the certificate from the URI specified in the relatedCertificateLocation and attempts 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 {
           uniformResourceIdentifier IA5String,
           signatureAlgorithm   [0] IMPLICIT AlgorithmIdentifier OPTIONAL,
           publicKeyAlgorithm   [1] IMPLICIT AlgorithmIdentifier OPTIONAL
   }
]]></artwork>
      <t>The semantics of other id-ad-certDiscovery accessLocation name forms are not defined.</t>
      <t>Note:  For a description of uniformResourceIdentifier consult section 4.2.2.1 of [!RFC5280].</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 certificates, 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 attempts 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 195?>

<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 {
           uniformResourceIdentifier IA5String,
           signatureAlgorithm   [0] IMPLICIT AlgorithmIdentifier OPTIONAL,
           publicKeyAlgorithm   [1] IMPLICIT AlgorithmIdentifier OPTIONAL
   }

   END
]]></artwork>
    </section>
  </back>
  <!-- ##markdown-source:
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
gf5/enESWoX/BlSz2NKiOQAA

-->

</rfc>
