<?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.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-certdiscovery-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="TODO - Abbreviation">A Mechanism for X.509 Certificate Discovery</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-certdiscovery-03"/>
    <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="2026" month="May" day="21"/>
    <keyword>Algorithm Agility</keyword>
    <keyword>Operational Redundancy</keyword>
    <keyword>Dual Use</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 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.</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 70?>

<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 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>
      <t>The following sections 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-algorithm-agility">
        <name>Use Case 1: Algorithm Agility</name>
        <t>The first use case is improving algorithm 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 consideration.</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 have 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. This certificate may also have a reference to the Primary Certificate in the
subjectInfoAccess extension.</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 access method <tt>id-ad-certDiscovery</tt> which is an OBJECT IDENTIFIER that indicates the <tt>accessMethod</tt> is for certificate discovery.</t>
      <artwork><![CDATA[
id-ad-certDiscovery OBJECT IDENTIFIER ::= { id-ad TBD }
]]></artwork>
      <t>The 'accessLocation' is a GeneralName otherName type as defined in <xref target="RFC5280"/>. Recall that the otherName type is defined as <tt>AnotherName</tt>:</t>
      <artwork><![CDATA[
AnotherName ::= SEQUENCE {
     type-id    OBJECT IDENTIFIER,
     value      [0] EXPLICIT ANY DEFINED BY type-id }
]]></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,
   intent DiscoveryIntentId OPTIONAL,
   signatureAlgorithm [0] IMPLICIT AlgorithmIdentifier OPTIONAL,
   publicKeyAlgorithm [1] IMPLICIT AlgorithmIdentifier OPTIONAL
}
]]></artwork>
      <t><tt>RelatedCertificateDescriptor</tt> is composed of 4 components which are defined below.</t>
      <section anchor="certdiscoverymethod">
        <name>CertDiscoveryMethod</name>
        <t><tt>CertDiscoveryMethod</tt> is defined by the following:</t>
        <artwork><![CDATA[
CertDiscoveryMethod ::= CHOICE {
  byUri [0] IMPLICIT CertLocation
  byInclusion Certificate,
  byLocalPolicy NULL
}
]]></artwork>
        <t><tt>CertDiscoveryMethod</tt> is the only required field of <tt>RelatedCertificateDescriptor</tt>. It describes how the related certificate can be retrieved.</t>
        <t>There are three methods:</t>
        <ol spacing="normal" type="1"><li>
            <t>The <tt>byUri</tt> method provides a location where the related certificate can be retrieved. The syntax of <tt>CertLocation</tt> is described below.</t>
          </li>
          <li>
            <t>The <tt>byInclusion</tt> method encodes the DER encoding of the related certificate directly.</t>
          </li>
          <li>
            <t>The <tt>byLocalPolicy</tt> method signals that the related certificate is available in a repository that is usable by the application consuming the certificate.</t>
          </li>
        </ol>
      </section>
      <section anchor="certlocation">
        <name>CertLocation</name>
        <t><tt>CertLocation</tt> is defined by the following:</t>
        <artwork><![CDATA[
CertLocation ::= IA5String
]]></artwork>
        <t>The certificate is referenced by an IA5String that contains the URI of the Secondary Certificate. The DER encoding of the Secondary Certificate <bcp14>MUST</bcp14> be available at the specified location.</t>
      </section>
      <section anchor="discoveryintentid">
        <name>DiscoveryIntentId</name>
        <t><tt>DiscoveryIntentId</tt> provides optional information to describe the intent of including the discovery information for the related certificate.</t>
        <t>Currently, the following intent identifiers are defined:</t>
        <artwork><![CDATA[
 -- Intent OBJECT IDENTIFIER
id-rcd-agility OBJECT IDENTIFIER ::=
                               {id-rcd 1}

id-rcd-redundancy OBJECT IDENTIFIER ::=
                               {id-rcd 2}

id-rcd-dual OBJECT IDENTIFIER ::=
                               {id-rcd 3}

id-rcd-priv-key-stmt OBJECT IDENTIFIER ::=
                               {id-rcd 4}

id-rcd-self OBJECT IDENTIFIER ::=
                               {id-rcd 5}
]]></artwork>
        <section anchor="algorithm-agility">
          <name>Algorithm Agility</name>
          <t>This intent indicates the referenced certificate's intent is to provide algorithm agility; i.e. the two certificates will use different cryptographic algorithms for the same key operations. The two certificates <bcp14>SHOULD</bcp14> be equivalent except for cryptographic algorithm; i.e. the key usages <bcp14>SHOULD</bcp14> match.</t>
        </section>
        <section anchor="redundancy">
          <name>Redundancy</name>
          <t>This intent indicates the referenced certificate's intent is to provide operational redundancy; i.e. the Secondary Certificate could be issued by a different CA or has a different validity period which can be used as a backup if the Primary set of certificates is about to expire.</t>
        </section>
        <section anchor="dual-usage">
          <name>Dual Usage</name>
          <t>This intent indicates the referenced certificate's intent is for dual usage; i.e. the related certificates belong to the same entity and one provides a signing-type key while the other provides an encryption-type key. The two certificates <bcp14>MUST</bcp14> describe the same entity and therefore <bcp14>SHOULD</bcp14> have matching Subject DN and SAN values.</t>
        </section>
        <section anchor="statement-of-possession-of-a-private-key">
          <name>Statement of Possession of a Private Key</name>
          <t>This intent indicates that the Primary Certificate did not not do a full proof-of-possession at enrollment time, but instead it provided a statement of possession as per <xref target="I-D.ietf-lamps-private-key-stmt-attr"/> signed by the Secondary Certificate.</t>
          <t>The reason for carrying a RelatedCertificateDescriptor of this type is to track that the Primary Certificate had a trust dependency on the Secondary Certificate at the time of issuance and that presumably the two private keys are co-located on the same key storage. Therefore if one certificate is revoked, they <bcp14>SHOULD</bcp14> both be revoked.</t>
        </section>
        <section anchor="self-reference">
          <name>Self reference</name>
          <t>This intent indicates the Uniform Resource Identifier where this certificate is located. Applications which retrieve this certificate can then compare the retrieved certificate with this value to ensure that the correct certificate was retrieved.</t>
          <t>This intent can be used to bind the subjects of Primary and Secondary Certificates. The Primary Certificate contains a self-reference to its location, as well as a reference to the Secondary Certificate. The Secondary Certificate contains a self-reference to its location, and a reference to the Primary Certificate. Provided that policy requires subject equivalence when this mechanism is used, then the consuming application can treat both certificates as certifying the same entity.</t>
        </section>
      </section>
      <section anchor="signature-algorithm-and-public-key-algorithm-fields">
        <name>Signature Algorithm and Public Key Algorithm fields</name>
        <t>The signatureAlgorithm is used to indicate the signature algorithm used in the Secondary Certificate and is an optional field. The publicKeyAlgorithm indicates the public key algorithm used in the Secondary Certificate and is an optional field.</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 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>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Retrieval of the Secondary Certificate is not sufficient to consider the Secondary Certificate trustworthy. The certification path validation algorithm as defined in section 6 of <xref target="RFC5280"/> <bcp14>MUST</bcp14> be performed for the Secondary Certificate.</t>
      <t>The use of the self-reference intent can be used to provide a subject binding between the Primary and Secondary Certificates. However, the procedure for validating subject equivalence <bcp14>MUST</bcp14> be defined by policy. As a result, validation of
subject equivalence is out of scope of this document.</t>
      <t>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 <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. 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>
      <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" registry, defined by [RFC7299]:</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" registry, defined by [RFC7299]:</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>
          </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 Access Descriptor" registry, defined by [RFC7299]:</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 anchor="certificate-discovery-intent-identifiers">
        <name>Certificate Discovery Intent Identifiers</name>
        <t>To allocate id-rcd, this document introduces a new PKIX OID arc for certificate discovery intent identifiers:</t>
        <t>IANA is requested to add the following entry to "SMI Security for PKIX" registry, defined by [RFC 7299]:</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">TBD4</td>
              <td align="left">Certificate Discovery Intent Identifier</td>
              <td align="left">[this-RFC]</td>
            </tr>
          </tbody>
        </table>
        <t>IANA is requested to create the "Certificate Discovery Intent Identifiers" registry with the following initial values:</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">1</td>
              <td align="left">id-rcd-agility</td>
              <td align="left">[this-RFC]</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">id-rcd-redundanc</td>
              <td align="left">[this-RFC]</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">id-rcd-dual</td>
              <td align="left">[this-RFC]</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">id-rcd-priv-key-stmt</td>
              <td align="left">[this-RFC]</td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">id-rcd-self</td>
              <td align="left">[this-RFC]</td>
            </tr>
          </tbody>
        </table>
        <t>Updates to this table are to be made according to the Specification Required policy as defined in [RFC8126].</t>
      </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="I-D.ietf-lamps-private-key-stmt-attr">
        <front>
          <title>An Attribute for Statement of Possession of a Private Key</title>
          <author fullname="Russ Housley" initials="R." surname="Housley">
            <organization>Vigil Security, LLC</organization>
          </author>
          <date day="26" month="June" year="2025"/>
          <abstract>
            <t>   This document specifies an attribute for a statement of possession of
   a private key by a certificate subject.  As part of X.509 certificate
   enrollment, a Certification Authority (CA) typically demands proof
   that the subject possesses the private key that corresponds to the
   to-be-certified public key.  In some cases, a CA might accept a
   signed statement from the certificate subject.  For example, when a
   certificate subject needs separate certificates for signature and key
   establishment, a statement that can be validated with the previously
   issued signature certificate for the same subject might be adequate
   for subsequent issuance of the key establishment certificate.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-private-key-stmt-attr-09"/>
      </reference>
    </references>
    <?line 339?>

<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(TBD) }

   DEFINITIONS EXPLICIT TAGS ::=

   BEGIN

-- EXPORTS ALL --

   IMPORTS
    OTHER-NAME, AlgorithmIdentifier, Certificate
    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) } ;

   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 }

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

   id-rcd OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) dod(6) internet(1) security(5)
      mechanisms(5) pkix(7) id-rcd(TBD4) }

   -- Intent OBJECT IDENTIFIERs

   DiscoveryIntentId ::= OBJECT IDENTIFIER

   id-rcd-agility DisoveryIntentId ::= {id-rcd 1}
   id-rcd-redundency DisoveryIntentId ::= {id-rcd 2}
   id-rcd-dual DisoveryIntentId ::= {id-rcd 3}
   id-rcd-priv-key-stmt DisoveryIntentId ::= {id-rcd 4}
   id-rcd-self DisoveryIntentId ::= {id-rcd 5}


   RelatedCertificateDescriptor ::= SEQUENCE {
     method CertDiscoveryMethod,
     intent DiscoveryIntentId OPTIONAL,
     signatureAlgorithm [0] IMPLICIT AlgorithmIdentifier OPTIONAL,
     publicKeyAlgorithm [1] IMPLICIT AlgorithmIdentifier OPTIONAL
   }

   CertDiscoveryMethod ::= CHOICE {
     byUri [0] IMPLICIT CertLocation,
     byInclusion Certificate,
     byLocalPolicy NULL
   }

   CertLocation ::= IA5String

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

-->

</rfc>
