<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-acme-device-attest-08" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="ACME DA">Automated Certificate Management Environment (ACME) Device Attestation Extension</title>
    <seriesInfo name="Internet-Draft" value="draft-acme-device-attest-08"/>
    <author fullname="Brandon Weeks">
      <organization/>
      <address>
        <email>me@brandonweeks.com</email>
      </address>
    </author>
    <author fullname="Ganesh Mallaya">
      <organization/>
      <address>
        <email>ganesh.mallaya@appviewx.com</email>
      </address>
    </author>
    <author fullname="Sven Rajala">
      <organization/>
      <address>
        <email>sven.rajala@keyfactor.com</email>
      </address>
    </author>
    <date year="2025" month="December" day="07"/>
    <area>Security</area>
    <workgroup>ACME Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 63?>

<t>This document specifies new identifiers and a challenge for the
Automated Certificate Management Environment (ACME) protocol which allows validating the identity of a device using attestation.</t>
    </abstract>
  </front>
  <middle>
    <?line 68?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Automatic Certificate Management Environment (ACME) <xref target="RFC8555"/> standard specifies methods for validating control over identifiers, such as domain names. It is also useful to be able to validate properties of the device requesting the certificate, such as the identity of the device /and whether the certificate key is protected by a secure cryptoprocessor.</t>
      <t>Many operating systems and device vendors offer functionality enabling a device to generate a cryptographic attestation of their identity, such as:</t>
      <ul spacing="normal">
        <li>
          <t><eref target="https://source.android.com/security/keystore/attestation">Android Key Attestation</eref></t>
        </li>
        <li>
          <t><eref target="https://developers.google.com/chrome/verified-access/overview">Chrome OS Verified Access</eref></t>
        </li>
        <li>
          <t><eref target="https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/">Trusted Platform Module</eref></t>
        </li>
        <li>
          <t><eref target="https://support.apple.com/en-om/guide/deployment/dep28afbde6a/web">Managed Device Attestation for Apple Devices</eref></t>
        </li>
      </ul>
      <t>Using ACME and device attestation to issue client certificates for enterprise PKI is anticipated to be the most common use case. The following variances to the ACME specification are described in this document:</t>
      <ul spacing="normal">
        <li>
          <t>Addition of <tt>permanent-identifier</tt> <xref target="RFC4043"/> and <tt>hardware-module</tt> <xref target="RFC4108"/> identifier types.</t>
        </li>
        <li>
          <t>Addition of the <tt>device-attest-01</tt> challenge type to prove control of the <tt>permanent-identifier</tt> and <tt>hardware-module</tt> identifier types.</t>
        </li>
        <li>
          <t>The challenge response payload contains a serialized WebAuthn attestation statement format instead of an empty JSON object (<tt>{}</tt>).</t>
        </li>
        <li>
          <t>Accounts and external account binding being used as a mechanism to pre-authenticate requests to an enterprise CA.</t>
        </li>
      </ul>
      <t>This document does not specify the attestation verification procedures. Section 13 of <xref target="WebAuthn"/> gives some guidance, however verification procedures are complex and may require changes to address future security issues.</t>
      <t>Efforts are underway within the Remote ATtestation ProcedureS (RATS) working group to define a set of standard formats and protocols for attestation. An explict aim of this document is to support vendor specific formats and protocols that are widley deployed at the time it was authored. In the future, an ACME challenge type based on these standards <bcp14>SHOULD</bcp14> be used instead of <tt>device-attest-01</tt>.</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>
    <section anchor="permanent-identifier">
      <name>Permanent Identifier</name>
      <t>A new identifier type, "permanent-identifier" is introduced to represent the identity of a device assigned by the manufacturer, typically a serial number. The name of this identifier type was chosen to align with <xref target="RFC4043"/>, it does not prescribe the lifetime of the identifier, which is at the discretion of the Assigner Authority.</t>
      <t>The identity along with the assigning organization can be included in the Subject Alternate Name Extension using the PermanentIdentifier form described in <xref target="RFC4043"/>.</t>
      <!-- Section 7.4 of RFC 8555 states "Specifications that define new identifier types must specify where in the certificate signing request these identifiers can appear." -->

<t>Clients <bcp14>MAY</bcp14> include this identifier in the certificate signing request (CSR). Alternatively if the server wishes to only issue privacy-preserving certificates, it <bcp14>MAY</bcp14> reject CSRs containing a PermanentIdentifier in the subjectAltName extension.</t>
    </section>
    <section anchor="hardware-module">
      <name>Hardware Module</name>
      <t>A new identifier type, "hardware-module" is introduced to represent the identity of the secure cryptoprocessor that generated the certificate key.</t>
      <!-- TODO: describe the certificate representation -->
<!-- TODO: describe how the CA assert the key is hardware backed without an identifier -->
<t>The hardware module identity can be included in the Subject Alternate Name Extension using the HardwareModuleName form described in <xref target="RFC4108"/>. The HardwareModuleName is encoded as an otherName with the OID id-on-hardwareModuleName (1.3.6.1.5.5.7.8.4) and consists of:</t>
      <ul spacing="normal">
        <li>
          <t>hwType: An OBJECT IDENTIFIER that identifies the type of hardware module</t>
        </li>
        <li>
          <t>hwSerialNum: An OCTET STRING containing the hardware module serial number</t>
        </li>
      </ul>
      <t>Clients <bcp14>MAY</bcp14> include this identifier in the certificate signing request (CSR). When included in a CSR, it <bcp14>MUST</bcp14> appear in an extensionRequest attribute <xref target="RFC2985"/> requesting a subjectAltName extension.</t>
      <t>If the server includes HardwareModule in the subjectAltName extension the CA <bcp14>MUST</bcp14> verify that the certificate key was generated on the secure cryptoprocessor with the asserted identity and type. The key <bcp14>MUST NOT</bcp14> be able to be exported from the cryptoprocessor.</t>
      <t>If the server wishes to issue privacy-preserving certificates, it <bcp14>MAY</bcp14> omit HardwareModule from the subjectAltName extension.</t>
    </section>
    <section anchor="device-attestation-challenge">
      <name>Device Attestation Challenge</name>
      <t>The client can prove control over a permanent identifier of a device by
providing an attestation statement containing the identifier of the device.</t>
      <t>The device-attest-01 ACME challenge object has the following format:</t>
      <dl>
        <dt>type (required, string):</dt>
        <dd>
          <t>The string "device-attest-01".</t>
        </dd>
        <dt>token (required, string):</dt>
        <dd>
          <t>A random value that uniquely identifies the challenge.  This value <bcp14>MUST</bcp14> have
at least 128 bits of entropy. It <bcp14>MUST NOT</bcp14> contain any characters outside the
base64url alphabet, including padding characters ("="). See <xref target="RFC4086"/> for
additional information on randomness requirements.</t>
        </dd>
      </dl>
      <artwork><![CDATA[
{
  "type": "device-attest-01",
  "url": "https://example.com/acme/chall/Rg5dV14Gh1Q",
  "status": "pending",
  "token": "evaGxfADs6pSRb2LAv9IZf17Dt3juxGJ-PCt92wr-oA"
}
]]></artwork>
      <t>A client fulfills this challenge by constructing a key authorization (<xref section="8.1" sectionFormat="of" target="RFC8555"/>)
 from the "token" value provided in the challenge and the client's
 account key. The client then generates a WebAuthn attestation object using the key authorization as the challenge.</t>
      <t>This specification borrows the WebAuthn <em>attestation object</em> representation as described in Section 6.5.4 of <xref target="WebAuthn"/> for encapsulating attestation formats, but with these modifications:</t>
      <ul spacing="normal">
        <li>
          <t>The key authorization is used to form <em>attToBeSigned</em>. This replaces the concatenation of <em>authenticatorData</em> and <em>clientDataHash</em>. <em>attToBeSigned</em> is hashed using an algorithm specified by the attestation format. <!-- TODO: ^^^ perhaps add more cross-refs or context about "using an algorithm specified by the attestation format" -->
          </t>
        </li>
        <li>
          <t>The <em>authData</em> field is unused and <bcp14>SHOULD</bcp14> be omitted.</t>
        </li>
      </ul>
      <t>A client responds with the response object containing the WebAuthn attestation object in the "attObj" field to acknowledge that the challenge can be validated by the server.</t>
      <t>On receiving a response, the server constructs and stores the key authorization from the challenge's "token" value and the current client account key.</t>
      <t>To validate a device attestation challenge, the server performs the following steps:</t>
      <ol spacing="normal" type="1"><li>
          <t>Perform the verification procedures described in Section 6 of <xref target="WebAuthn"/>.</t>
        </li>
        <li>
          <t>Verify that key authorization conveyed by <em>attToBeSigned</em> matches the key authorization stored by the server.</t>
        </li>
      </ol>
      <!-- This specification defines a new challenge response field `attObj` to contain WebAuthn attestation objects as described in Section 7.5.1 of {{RFC8555}}. -->

<artwork><![CDATA[
POST /acme/chall/Rg5dV14Gh1Q
Host: example.com
Content-Type: application/jose+json

{
  "protected": base64url({
    "alg": "ES256",
    "kid": "https://example.com/acme/acct/evOfKhNU60wg",
    "nonce": "SS2sSl1PtspvFZ08kNtzKd",
    "url": "https://example.com/acme/chall/Rg5dV14Gh1Q"
  }),
  "payload": base64url({
    "attObj": base64url(/* WebAuthn attestation object */),
  }),
  "signature": "Q1bURgJoEslbD1c5...3pYdSMLio57mQNN4"
}
]]></artwork>
      <t>The webauthn payload <bcp14>MAY</bcp14> contain any identifiers registered in "WebAuthn Attestation Statement Format Identifiers" and any extensions registered in "WebAuthn Extension Identifiers" <xref target="IANA-Webauthn"/>, <xref target="RFC8809"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>See Section 13 of <xref target="WebAuthn"/> for additional security considerations related to attestation statement formats, including certificate revocation.</t>
      <t>Key attestation statements may include a variety of information in addition to the public key being attested. While not described in this document, the server <bcp14>MAY</bcp14> use any policy when evaluating this information. This evaluation can result in rejection of a certificate request that features a verifiable key attestation for the public key contained in the request. For example, an attestation statement may indicate use of an unacceptable firmware version.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="acme-identifier-types">
        <name>ACME Identifier Types</name>
        <t>The "ACME Identifier Types" registry is to be updated to include the following entries:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">permanent-identifier</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">hardware-module</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="acme-validation-method">
        <name>ACME Validation Method</name>
        <t>The "ACME Validation Methods" registry is to be updated to include the following entry:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Identifier Type</th>
              <th align="left">ACME</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">device-attest-01</td>
              <td align="left">permanent-identifier</td>
              <td align="left">Y</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
        <!-- Begin WebAuthn registry text -->
<!-- Editor's note: the below text was written by Carl Wallance as part of draft-wallace-lamps-key-attestation-ext. These registries only need to be established by a single document, so if they are established by another document prior to this document being approved, this text will be removed and replaced with a reference to the other document.  -->

</section>
      <section anchor="new-error-types">
        <name>New Error Types</name>
        <t>This document adds the following entries to the ACME Error Type registry:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Type</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">badAttestationStatement</td>
              <td align="left">The attestation statement is unacceptable (e.g. not signed by an attestation authority trusted by the CA)</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
        <ul spacing="normal">
          <li>
            <t>Change Controller:
            </t>
            <ul spacing="normal">
              <li>
                <t>W3C Web Authentication Working Group (public-webauthn@w3.org)</t>
              </li>
            </ul>
          </li>
        </ul>
        <!-- End WebAuthn registry text -->

</section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC4108">
          <front>
            <title>Using Cryptographic Message Syntax (CMS) to Protect Firmware Packages</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="August" year="2005"/>
            <abstract>
              <t>This document describes the use of the Cryptographic Message Syntax (CMS) to protect firmware packages, which provide object code for one or more hardware module components. CMS is specified in RFC 3852. A digital signature is used to protect the firmware package from undetected modification and to provide data origin authentication. Encryption is optionally used to protect the firmware package from disclosure, and compression is optionally used to reduce the size of the protected firmware package. A firmware package loading receipt can optionally be generated to acknowledge the successful loading of a firmware package. Similarly, a firmware package load error report can optionally be generated to convey the failure to load a firmware package. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4108"/>
          <seriesInfo name="DOI" value="10.17487/RFC4108"/>
        </reference>
        <reference anchor="RFC4043">
          <front>
            <title>Internet X.509 Public Key Infrastructure Permanent Identifier</title>
            <author fullname="D. Pinkas" initials="D." surname="Pinkas"/>
            <author fullname="T. Gindin" initials="T." surname="Gindin"/>
            <date month="May" year="2005"/>
            <abstract>
              <t>This document defines a new form of name, called permanent identifier, that may be included in the subjectAltName extension of a public key certificate issued to an entity.</t>
              <t>The permanent identifier is an optional feature that may be used by a CA to indicate that two or more certificates relate to the same entity, even if they contain different subject name (DNs) or different names in the subjectAltName extension, or if the name or the affiliation of that entity stored in the subject or another name form in the subjectAltName extension has changed.</t>
              <t>The subject name, carried in the subject field, is only unique for each subject entity certified by the one CA as defined by the issuer name field. However, the new name form can carry a name that is unique for each subject entity certified by a CA. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4043"/>
          <seriesInfo name="DOI" value="10.17487/RFC4043"/>
        </reference>
        <reference anchor="RFC8555">
          <front>
            <title>Automatic Certificate Management Environment (ACME)</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="J. Hoffman-Andrews" initials="J." surname="Hoffman-Andrews"/>
            <author fullname="D. McCarney" initials="D." surname="McCarney"/>
            <author fullname="J. Kasten" initials="J." surname="Kasten"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>Public Key Infrastructure using X.509 (PKIX) certificates are used for a number of purposes, the most significant of which is the authentication of domain names. Thus, certification authorities (CAs) in the Web PKI are trusted to verify that an applicant for a certificate legitimately represents the domain name(s) in the certificate. As of this writing, this verification is done through a collection of ad hoc mechanisms. This document describes a protocol that a CA and an applicant can use to automate the process of verification and certificate issuance. The protocol also provides facilities for other certificate management functions, such as certificate revocation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8555"/>
          <seriesInfo name="DOI" value="10.17487/RFC8555"/>
        </reference>
        <reference anchor="RFC8809">
          <front>
            <title>Registries for Web Authentication (WebAuthn)</title>
            <author fullname="J. Hodges" initials="J." surname="Hodges"/>
            <author fullname="G. Mandyam" initials="G." surname="Mandyam"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="August" year="2020"/>
            <abstract>
              <t>This specification defines IANA registries for W3C Web Authentication (WebAuthn) attestation statement format identifiers and extension identifiers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8809"/>
          <seriesInfo name="DOI" value="10.17487/RFC8809"/>
        </reference>
        <reference anchor="WebAuthn" target="https://www.w3.org/TR/webauthn-2/">
          <front>
            <title>Web Authentication: An API for accessing Public Key Credentials Level 2</title>
            <author fullname="Jeff Hodges">
              <organization>Google</organization>
            </author>
            <author fullname="J.C. Jones">
              <organization>Mozilla</organization>
            </author>
            <author fullname="Michael B. Jones">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Akshay Kumar">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Emil Lundberg">
              <organization>Yubico</organization>
            </author>
            <date year="2021" month="April"/>
          </front>
        </reference>
        <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="RFC2985">
          <front>
            <title>PKCS #9: Selected Object Classes and Attribute Types Version 2.0</title>
            <author fullname="M. Nystrom" initials="M." surname="Nystrom"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <date month="November" year="2000"/>
            <abstract>
              <t>This memo represents a republication of PKCS #9 v2.0 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series, and change control is retained within the PKCS process. The body of this document, except for the security considerations section, is taken directly from that specification. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2985"/>
          <seriesInfo name="DOI" value="10.17487/RFC2985"/>
        </reference>
        <reference anchor="RFC4086">
          <front>
            <title>Randomness Requirements for Security</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="J. Schiller" initials="J." surname="Schiller"/>
            <author fullname="S. Crocker" initials="S." surname="Crocker"/>
            <date month="June" year="2005"/>
            <abstract>
              <t>Security systems are built on strong cryptographic algorithms that foil pattern analysis attempts. However, the security of these systems is dependent on generating secret quantities for passwords, cryptographic keys, and similar quantities. The use of pseudo-random processes to generate secret quantities can result in pseudo-security. A sophisticated attacker may find it easier to reproduce the environment that produced the secret quantities and to search the resulting small set of possibilities than to locate the quantities in the whole of the potential number space.</t>
              <t>Choosing random quantities to foil a resourceful and motivated adversary is surprisingly difficult. This document points out many pitfalls in using poor entropy sources or traditional pseudo-random number generation techniques for generating such quantities. It recommends the use of truly random hardware techniques and shows that the existing hardware on many systems can be used for this purpose. It provides suggestions to ameliorate the problem when a hardware solution is not available, and it gives examples of how large such quantities need to be for some applications. 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="106"/>
          <seriesInfo name="RFC" value="4086"/>
          <seriesInfo name="DOI" value="10.17487/RFC4086"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="IANA-Webauthn" target="https://www.iana.org/assignments/webauthn/webauthn.xhtml">
          <front>
            <title>IANA Registries for Web Authentication (WebAuthn)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 245?>

<section anchor="enterprise-pki">
      <name>Enterprise PKI</name>
      <t>ACME was originally envisioned for issuing certificates in the Web PKI, however this extension will primarily be useful in enterprise PKI. The subsection below covers some operational considerations for an ACME-based enterprise CA.
<!-- TODO: ^^^ perhaps also mention/cover IoT attestation PKI usecases -->
      </t>
      <section anchor="external-account-binding">
        <name>External Account Binding</name>
        <t>An enterprise CA likely only wants to receive requests from authorized devices. It is <bcp14>RECOMMENDED</bcp14> that the server require a value for the "externalAccountBinding" field to be
present in "newAccount" requests.</t>
        <t>If an enterprise CA desires to limit the number of certificates that can be requested with a given account, including limiting an account to a single certificate. After the desired number of certificates have been issued to an account, the server <bcp14>MAY</bcp14> revoke the account as described in Section 7.1.2 of <xref target="RFC8555"/>.</t>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
6bY+Au9/AavNantoMgAA

-->

</rfc>
