<?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.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-certdiscovery-06" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="Certificate Discovery">A Mechanism for X.509 Certificate Discovery</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-certdiscovery-06"/>
    <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>TurboLight Solutions, LLC</organization>
      <address>
        <email>corey.bonnell@turbolightsolutions.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="2026" month="November" day="02"/>
    <keyword>Algorithm Agility</keyword>
    <keyword>Operational Redundancy</keyword>
    <keyword>Dual Use</keyword>
    <abstract>
      <?line 61?>

<t>This document specifies a method to discover a referenced X.509 certificate associated with the current X.509 certificate. This enables efficient multi-certificate or fallback 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 a URI from which the referenced X.509 certificate can be retrieved as well as information about the target certificate's signature and public key algorithm, empowering relying parties to make informed decisions on whether to retrieve the Referenced Certificate, and a certificate hash to ensure that the correct certificate was retrieved.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://lamps-wg.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/lamps-wg/certificatediscovery"/>.</t>
    </note>
  </front>
  <middle>
    <?line 65?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Cryptographic agility and fallback often feature prominently in cryptographic migrations, whether it's migrating algorithms, infrastructures, keys, or some other aspect. Discovery is a key aspect of agility -- in this case meaning that an application holding an X.509 certificate for a peer can easily learn about and retrieve alternative versions of the certificate they are holding, a space that is under-served by existing X.509 extensions. 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 automatic discovery and use of Referenced Certificates that can serve as fallbacks, ensuring seamless continuity of services even in the event of expiration or revocation of the Current Certificate, or disruptions in the Certification Authority (CA) infrastructure.</t>
      <t>Finally, the approach accommodates multi-key/certificate usage, allowing for a CA to indicate that two (or more) certificates are to be used together.</t>
      <t>The proposed method is designed to maximize compatibility with existing systems, including legacy implementations. It leverages the subjectInfoAccess 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>
    </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>Current Certificate: the X.509 certificate currently being validated, which contains an subjectInfoAccess extension with the certDiscovery accessMethod pointing to a Referenced Certificate, and may also contain a certDiscoverySelfLocation URI referencing itself.</t>
        <t>Referenced Certificate: The X.509 certificate that is referenced by the Current Certificate in the subjectInfoAccess extension certDiscovery accessMethod.</t>
      </section>
    </section>
    <section anchor="certificate-discovery-access-method">
      <name>Certificate Discovery Access Method</name>
      <t>This document specifies the new certDiscovery access method for X.509 Subject Information Access (SIA) extension defined in <xref target="RFC5280"/>.</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>This document defines a new <tt>SubjectInfoAccessSyntax</tt> access method <tt>id-ad-certDiscovery</tt> which is an OBJECT IDENTIFIER that indicates the <tt>accessMethod</tt> is for carrying a certificate discovery description of a Referenced Certificate.</t>
      <artwork><![CDATA[
id-ad-certDiscovery OBJECT IDENTIFIER ::= { id-ad TBD }
]]></artwork>
      <t>The 'accessLocation' is a GeneralName otherName as defined in <xref target="RFC5280"/>. Recall that, in the ASN.1 of Section 14 of <xref target="RFC5912"/>, the type of otherName is defined as:</t>
      <artwork><![CDATA[
OTHER-NAME ::= TYPE-IDENTIFIER
]]></artwork>
      <t>This document defines the <tt>RelatedCertificateDescriptor</tt> type and its corresponding identifier as follows:</t>
      <artwork><![CDATA[
-- Other Name OID Arc --
id-on OBJECT IDENTIFIER ::= { id-pkix 8 }

-- Certificate Discovery Access Descriptor --
id-on-relatedCertificateDescriptor OBJECT IDENTIFIER ::= { id-on TBD }

on-RelatedCertificateDescriptor OTHER-NAME ::= {
      RelatedCertificateDescriptor IDENTIFIED BY id-on-relatedCertificateDescriptor
   }
]]></artwork>
      <t>When the <tt>accessMethod</tt> has a value of <tt>id-ad-certDiscovery</tt>, then the <tt>accessLocation</tt> <bcp14>MUST</bcp14> contain an <tt>otherName</tt> whose <tt>type-id</tt> is <tt>id-on-relatedCertificateDescriptor</tt> and the <tt>value</tt> is <tt>RelatedCertificateDescriptor</tt>.</t>
      <t><tt>RelatedCertificateDescriptor</tt> is defined as follows:</t>
      <artwork><![CDATA[
RelatedCertificateDescriptor ::= SEQUENCE {
   method CertDiscoveryMethod,
   signatureAlgorithm [0] AlgorithmIdentifier{SIGNATURE-ALGORITHM, {...}}
                          OPTIONAL,
   publicKeyAlgorithm [1] AlgorithmIdentifier{PUBLIC-KEY, {...}} OPTIONAL,
   certHash [2] RelatedCertificate OPTIONAL
}
]]></artwork>
      <t>A certificate <bcp14>MAY</bcp14> have any number of <tt>RelatedCertificateDescriptor</tt> SIA <tt>AccessDescriptions</tt>.</t>
      <t>Each component of the <tt>RelatedCertificateDescriptor</tt> is defined below.</t>
      <section anchor="certdiscoverymethod">
        <name>CertDiscoveryMethod</name>
        <t><tt>CertDiscoveryMethod</tt> describes the method by which the Referenced Certificate
can be retrieved.</t>
        <t><tt>CertDiscoveryMethod</tt> is defined by the following:</t>
        <artwork><![CDATA[
CertDiscoveryMethod ::= CHOICE {
   byUri IA5String,
   byInclusion Certificate,
   byLocalPolicy NULL,
   byOther [0] INSTANCE OF OTHER-DISCOVERY-METHOD
}
]]></artwork>
        <t>Depending on the method used, the other optional elements of <tt>RelatedCertificateDescriptor</tt>
can become either mandatory, recommended, or forbidden.</t>
        <section anchor="byuri">
          <name>byUri</name>
          <t>The <tt>byUri</tt> method <bcp14>MUST</bcp14> provide a URI formatted according to <xref target="RFC3986"/> from which the Referenced Certificate can be retrieved.</t>
          <t>When the <tt>CertDiscoveryMethod</tt> is <tt>byUri</tt>, the fields <tt>signatureAlgorithm</tt> and <tt>publicKeyAlgorithm</tt> <bcp14>SHOULD</bcp14> be populated as described below so that an application can decide if the Referenced Certificate is likely to be useful before performing the retrieval. <tt>certHash</tt> <bcp14>MAY</bcp14> be populated. After performing the retrieval, the application <bcp14>MUST</bcp14> check that the populated <tt>signatureAlgorithm</tt>, <tt>publicKeyAlgorithm</tt>, and <tt>certHash</tt> match the retrieved certificate; if any do not match then the retrieval <bcp14>MUST</bcp14> be considered to have failed.</t>
          <t>Note that two (or more) certificates can reference each other in cases where the URIs are pre-allocated prior to certificate issuance, and the certificates to be issued as a batch.</t>
        </section>
        <section anchor="byinclusion">
          <name>byInclusion</name>
          <t>The <tt>byInclusion</tt> method encodes the DER encoding of the Referenced Certificate directly into the Current Certificate. The Referenced Certificate <bcp14>MAY</bcp14> be extracted and used directly as a standalone certificate.</t>
          <t>When the <tt>CertDiscoveryMethod</tt> is <tt>byInclusion</tt>, the fields <tt>signatureAlgorithm</tt>, <tt>publicKeyAlgorithm</tt>, and <tt>certHash</tt> <bcp14>MUST NOT</bcp14> be populated since the content is already present and would be redundant.</t>
        </section>
        <section anchor="bylocalpolicy">
          <name>byLocalPolicy</name>
          <t>The <tt>byLocalPolicy</tt> method signals that the related certificate is available in a repository that is known and accessible to the relying party. The semantics of this method are left out of scope, but applications using this method <bcp14>MUST</bcp14> define the lookup semantics.</t>
        </section>
        <section anchor="byother">
          <name>byOther</name>
          <t>The <tt>byOther</tt> method acts as an extensibility point for adding additional methods in the future.
A new <tt>byOther</tt> method <bcp14>MUST</bcp14> by accompanied by a specification of its wire format and interaction
with the <tt>signatureAlgorithm</tt>, <tt>publicKeyAlgorithm</tt>, and <tt>certHash</tt> fields of <tt>RelatedCertificateDescriptor</tt>.</t>
        </section>
      </section>
      <section anchor="signature-algorithm-and-public-key-algorithm-fields">
        <name>Signature Algorithm and Public Key Algorithm fields</name>
        <t>The <tt>signatureAlgorithm</tt> and <tt>publicKeyAlgorithm</tt> is to allow an application that has rejected the Current Certificate because either the signature or public key algorithm is unrecognized or violates its policy to instead retrieve an acceptable Referenced Certificate.</t>
        <t>If present, the <tt>signatureAlgorithm</tt> <bcp14>MUST</bcp14> match the <tt>signatureAlgorithm</tt> field in the Referenced Certificate.</t>
        <t>If present, the <tt>publicKeyAlgorithm</tt> <bcp14>MUST</bcp14> match the <tt>subjectPublicKeyInfo.algorithm</tt> field in the Referenced Certificate.</t>
      </section>
      <section anchor="certhash">
        <name>certHash</name>
        <t>The <tt>certHash</tt> field is intended primarily as a lookup value for finding the referenced certificate in a repository indexed by certificate hash. When present, it <bcp14>SHOULD</bcp14> also be used to confirm that the correct certificate was retrieved by hashing the retrieved certificate and comparing the hash value. However, it <bcp14>SHOULD NOT</bcp14> be considered a security mechanism because, by itself, it does not convey any intention about why or for what purpose the two certificates are related.</t>
        <t>The <tt>certHash</tt> field uses the <tt>RelatedCertificate</tt> structure, which is defined in <xref target="RFC9763"/> and simply contains the hash of a certificate.
Recall its definition:</t>
        <artwork><![CDATA[
RelatedCertificate ::= SEQUENCE {
  hashAlgorithm DigestAlgorithmIdentifier,
  hashValue     OCTET STRING }
]]></artwork>
        <t>Its semantics mirror those specified in <xref target="RFC9763"/>, repeated here for convenience.</t>
        <t>The <tt>hashAlgorithm</tt> field identifies the hash algorithm used to compute hashValue, which is the digest value obtained from hashing the entire Referenced Certificate.
If there is a hash algorithm explicitly indicated by the related certificate's signature OID (e.g., ecdsa-with-SHA512), that hash algorithm <bcp14>SHOULD</bcp14> also be used here.</t>
        <t>Note that, unlike the <tt>byUri</tt> method, it is not possible to bi-directionally link two (or more) certificates via the <tt>certHash</tt> field.</t>
      </section>
    </section>
    <section anchor="certificate-discovery-self-location-access-method">
      <name>Certificate Discovery Self Location Access Method</name>
      <t>This document defines a new <tt>SubjectInfoAccessSyntax</tt> access method <tt>id-ad-certDiscoverySelfLocation</tt> which is an OBJECT IDENTIFIER that indicates the <tt>accessMethod</tt> is for carrying a certificate discovery self-reference.
In other words, a certificate <bcp14>MAY</bcp14> carry its own URI as a way to further enhance discoverability and validate that the correct certificate was retrieved.</t>
      <artwork><![CDATA[
id-ad-certDiscoverySelfLocation OBJECT IDENTIFIER ::= { id-ad TBD4 }
]]></artwork>
      <t>The SubjectInfoAccessSyntax AccessDescription accessLocation <bcp14>MUST</bcp14> carry a GeneralName uniformResourceIdentifier.</t>
      <t>This access method indicates the URI <xref target="RFC3986"/> where the Current Certificate is located. Applications which have retrieved this certificate using a <tt>byUri</tt> method <bcp14>SHOULD</bcp14> extract this value from the retrieved certificate confirm that the correct certificate was retrieved.</t>
      <t>A certificate <bcp14>MAY</bcp14> have any number of <tt>certDiscoverySelfLocation</tt> SIA <tt>AccessDescriptions</tt>.</t>
    </section>
    <section anchor="expired-revoked-or-untrusted-current-certificate">
      <name>Expired, Revoked, or Untrusted Current Certificate</name>
      <t>In the case that the Current Certificate is unusable, for example because it is expired, revoked, does not chain to a trusted root, or for any other reason, the application <bcp14>MAY</bcp14> still follow the <tt>RelatedCertificateDescriptor</tt> to see if this yields a valid and usable certificate.</t>
      <t>This provides great flexibility in error-recovery scenarios. In addition, this will allow for more pro-active migration to new infrastructures, knowing that applications will be able to follow <tt>RelatedCertificateDescriptor</tt>s to their preferred version of the certificate.</t>
      <t>Since this is merely a mechanism for discovering the existence of the Referenced Certificate, doing so from an untrusted certificate does not pose security issues.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Retrieval of the Referenced Certificate is not sufficient to consider the Referenced Certificate trustworthy. The certification path validation algorithm as defined in section 6 of <xref target="RFC5280"/> <bcp14>MUST</bcp14> be performed for the Referenced Certificate. A reference from a <tt>RelatedCertificateDescriptor</tt>, even in the presence of a <tt>certHash</tt> does not imply any form of endorsement or hierarchical relationship between the two certificates unless the mechanism in this draft is augmented with additional X.509v3 extensions or policies that specify those semantics.</t>
      <t>The use of the self-reference can be used to provide a subject binding between the Current and Referenced Certificates even if their other data such as subject name or public key do not match. However, the procedure for validating subject equivalence <bcp14>MUST</bcp14> be defined by policy and be consistent with the policies of the issuing CA. As a result, validation of subject equivalence is out of scope of this document.</t>
      <t>The Referenced Certificate may also have a certDiscovery access method. In order to avoid cyclic loops or infinite chaining, leading to denial-of-service scenarios, the validator <bcp14>SHOULD</bcp14> employ a maximum depth or cycle-detection algorithm.</t>
      <t>The same security considerations for <tt>caIssuers</tt> 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. Applications retrieving 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>
      <t>Typically, it is unsafe to use any content from a certificate that is expired, revoked, or whose signature cannot be validated. The <tt>RelatedCertificateDescriptor</tt> extension is an exception to this rule since it is intended to bridge across these exact types of failure scenarios and is merely making the application aware of the existence of a Referenced Certificate. Once retrieved, the Referenced Certificate <bcp14>SHOULD</bcp14> be validated independently as if it had been provided as the Current Certificate. However, applications <bcp14>MAY</bcp14> refuse to retrieve URIs from an untrusted, or, to a lesser extent, revoked certificate. In most cases, a <tt>RelatedCertificateDescriptor</tt> URI asserted by the CA at issuance time will remain valid for the lifetime of the certificate, unless an incorrect URI is the reason for revocation, or the certificate was forged by a malicious actor for the explicit purpose of getting a victim application to fetch the malicious URI.</t>
      <t>This specification does not provide a mechanism for identifying the purpose of the cross-reference between certificates. The implied purpose is fallback redundancy. If the purpose is security-related, for example a pair of certificates are only to be used together in a two-certificate protocol, or their revocation status is intertwined as is the case when a signing certificate signs a Certificate Signing Request (CSR) for an encryption certificate, then the CA <bcp14>SHOULD</bcp14> add an additional extension or policy OID to the certificates to further constrain verifier handling.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="module-identifier">
        <name>Module Identifier</name>
        <t>IANA is requested to add the following entry in the "SMI Security for PKIX Module Identifier" (1.3.6.1.5.5.7.0) registry:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Decimal</th>
              <th align="left">Description</th>
              <th align="left">References</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD1</td>
              <td align="left">id-mod-CertDiscovery</td>
              <td align="left">[this-RFC]</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="access-descriptor">
        <name>Access Descriptor</name>
        <t>IANA is requested to add the following entry in the "SMI Security for PKIX Access Descriptor" (1.3.6.1.5.5.7.48) registry:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Decimal</th>
              <th align="left">Description</th>
              <th align="left">References</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD2</td>
              <td align="left">id-ad-certDiscovery</td>
              <td align="left">[this-RFC]</td>
            </tr>
            <tr>
              <td align="left">TBD4</td>
              <td align="left">id-ad-certDiscoverySelfLocation</td>
              <td align="left">[this-RFC]</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="other-name-form">
        <name>Other Name Form</name>
        <t>IANA is requested to add the following entry in the "SMI Security for PKIX Other Name Forms" (1.3.6.1.5.5.7.8) registry:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Decimal</th>
              <th align="left">Description</th>
              <th align="left">References</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD3</td>
              <td align="left">id-on-relatedCertificateDescriptor</td>
              <td align="left">[this-RFC]</td>
            </tr>
          </tbody>
        </table>
      </section>
    </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>
      <reference anchor="RFC5912">
        <front>
          <title>New ASN.1 Modules for the Public Key Infrastructure Using X.509 (PKIX)</title>
          <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
          <author fullname="J. Schaad" initials="J." surname="Schaad"/>
          <date month="June" year="2010"/>
          <abstract>
            <t>The Public Key Infrastructure using X.509 (PKIX) certificate format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates those ASN.1 modules to conform to the 2002 version of ASN.1. There are no bits-on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5912"/>
        <seriesInfo name="DOI" value="10.17487/RFC5912"/>
      </reference>
      <reference anchor="RFC3986">
        <front>
          <title>Uniform Resource Identifier (URI): Generic Syntax</title>
          <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
          <author fullname="R. Fielding" initials="R." surname="Fielding"/>
          <author fullname="L. Masinter" initials="L." surname="Masinter"/>
          <date month="January" year="2005"/>
          <abstract>
            <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="66"/>
        <seriesInfo name="RFC" value="3986"/>
        <seriesInfo name="DOI" value="10.17487/RFC3986"/>
      </reference>
      <reference anchor="RFC9763">
        <front>
          <title>Related Certificates for Use in Multiple Authentications within a Protocol</title>
          <author fullname="A. Becker" initials="A." surname="Becker"/>
          <author fullname="R. Guthrie" initials="R." surname="Guthrie"/>
          <author fullname="M. Jenkins" initials="M." surname="Jenkins"/>
          <date month="June" year="2025"/>
          <abstract>
            <t>This document defines a new Certificate Signing Request (CSR) attribute, relatedCertRequest, and a new X.509 certificate extension, RelatedCertificate. The use of the relatedCertRequest attribute in a CSR and the inclusion of the RelatedCertificate extension in the resulting certificate together provide additional assurance that two certificates each belong to the same end entity. This mechanism is particularly useful in the context of non-composite hybrid authentication, which enables users to employ the same certificates in hybrid authentication as in authentication done with only traditional or post-quantum algorithms.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9763"/>
        <seriesInfo name="DOI" value="10.17487/RFC9763"/>
      </reference>
    </references>
    <?line 307?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thank you to Russ Housley, Michael StJohns, Daniel Van Geest, Alex Railean, Sarat Ginjupalli, and Suzanne Wibada for reviewing the document and providing comments.</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(TBD) }

   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, Certificate
    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) }

    AlgorithmIdentifier{}, SIGNATURE-ALGORITHM, PUBLIC-KEY
    FROM AlgorithmInformation-2009
      { iso(1) identified-organization(3) dod(6) internet(1) security(5)
      mechanisms(5) pkix(7) id-mod(0)
      id-mod-algorithmInformation-02(58) }

    RelatedCertificate
    FROM RelatedCertificate
      { iso(1) identified-organization(3) dod(6)
       internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
     id-mod-related-cert-2023(115)} ;

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

   -- Other Name OID Arc --

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

   -- Certificate Discovery Access Descriptor --

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

   -- Always encode as a GeneralName uniform resource identifier (URI)
   id-ad-certDiscoverySelfLocation OBJECT IDENTIFIER ::= { id-ad TBD4 }

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

   RelatedCertificateDescriptor ::= SEQUENCE {
     method CertDiscoveryMethod,
     signatureAlgorithm [0] AlgorithmIdentifier{SIGNATURE-ALGORITHM, {...}}
                            OPTIONAL,
     publicKeyAlgorithm [1] AlgorithmIdentifier{PUBLIC-KEY, {...}} OPTIONAL,
     certHash [2] RelatedCertificate OPTIONAL
   }

   -- RelatedCertificate is defined in RFC 9763

   CertDiscoveryMethod ::= CHOICE {
     byUri IA5String,
     byInclusion Certificate,
     byLocalPolicy NULL,
     byOther [0] INSTANCE OF OTHER-DISCOVERY-METHOD
   }

   OTHER-DISCOVERY-METHOD ::= TYPE-IDENTIFIER

   END
]]></artwork>
    </section>
  </back>
  <!-- ##markdown-source:
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
3lAAAA==

-->

</rfc>
