<?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.5 (Ruby 2.6.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-rfc7030-csrattrs-09" category="std" consensus="true" updates="7030" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.1 -->
  <front>
    <title abbrev="CSRAttrs">Clarification of RFC7030 CSR Attributes definition</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-rfc7030-csrattrs-09"/>
    <author initials="M." surname="Richardson" fullname="Michael Richardson" role="editor">
      <organization>Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>
    <author initials="O." surname="Friel" fullname="Owen Friel">
      <organization>Cisco</organization>
      <address>
        <email>ofriel@cisco.com</email>
      </address>
    </author>
    <author initials="D." surname="von Oheimb" fullname="Dr. David von Oheimb">
      <organization>Siemens</organization>
      <address>
        <email>dev@ddvo.net</email>
      </address>
    </author>
    <author initials="D." surname="Harkins" fullname="Dan Harkins">
      <organization>The Industrial Lounge</organization>
      <address>
        <email>dharkins@lounge.org</email>
      </address>
    </author>
    <date year="2024" month="April" day="04"/>
    <area>Internet</area>
    <workgroup>LAMPS Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 82?>

<t>The Enrollment over Secure Transport (EST, RFC7030) is ambiguous in its specification of the CSR Attributes Response. This has resulted in implementation challenges and implementor confusion.</t>
      <t>This document updates RFC7030 (EST) and clarifies
how the CSR Attributes Response can be used by an EST server to specify
both CSR attribute OIDs and also CSR attribute values,
in particular X.509 extension values,
that the server expects the client to include in subsequent CSR request.</t>
    </abstract>
  </front>
  <middle>
    <?line 92?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Enrollment over Secure Transport <xref target="RFC7030"/> (EST) has been used in a wide variety of applications.
In particular, <xref target="RFC8994"/> and <xref target="RFC8995"/> describe a way to use it in order to build out an autonomic control plane (ACP) <xref target="RFC8368"/>.</t>
      <t>The ACP requires that each node be given a very specific subjectAltName.
In the ACP specification, the solution was for the EST server to use
section 2.6 of <xref target="RFC7030"/> to convey to the EST client
the actual subjectAltName that will end up in its certificate.</t>
      <t>As a result of some implementation challenges, it came to light that this particular way of using the CSR attributes was not universally agreed upon, and it was suggested that it went contrary to section 2.6.</t>
      <t>Section 2.6 says that the CSR attributes "can provide additional
descriptive information that the EST server cannot access itself".
This is extended to describe how the EST server can provide values that it demands to use.</t>
      <t>After significant discussion, it has been determined that
<xref section="4.5" sectionFormat="of" target="RFC7030"/> specification is sufficiently difficult
to read and ambiguous to interpret that clarification is needed.</t>
      <t>This document motivates the different use cases, and provides additional worked out examples.</t>
      <t>Also, section 4.5.2 is extended to clarify the use of the existing ASN.1 syntax <xref target="X.680"/><xref target="X.690"/>.
This covers all uses and is fully backward compatible with existing use.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" 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.
<?line -6?>
      </t>
    </section>
    <section anchor="csr-attributes-handling">
      <name>CSR Attributes Handling</name>
      <section anchor="extensions-to-rfc-7030-section-26">
        <name>Extensions to RFC 7030 section 2.6.</name>
        <t>Replace the second paragraph with the following text:</t>
        <artwork><![CDATA[
   These attributes can provide additional descriptive information that
   the EST server cannot access itself, such as the Media Access Control
   (MAC) address of an interface of the EST client. The EST server can
   also provide concrete values that it tells the client to include in
   the CSR, such as a specific X.509 Subject Alternative Name extension.
   Moreover, these attributes can indicate the type of the included
   public key or which crypto algorithms to use for the self-signature,
   such as a specific elliptic curve or a specific hash function that
   the client is expected to use when generating the CSR.
]]></artwork>
      </section>
      <section anchor="csrattrs">
        <name>Extensions to RFC 7030 section 4.5.2.</name>
        <t>The ASN.1 syntax for CSR Attributes as defined in EST section 4.5.2 is as follows:</t>
        <artwork><![CDATA[
   CsrAttrs ::= SEQUENCE SIZE (0..MAX) OF AttrOrOID

   AttrOrOID ::= CHOICE (oid OBJECT IDENTIFIER, attribute Attribute }

   Attribute { ATTRIBUTE:IOSet } ::= SEQUENCE {
        type   ATTRIBUTE.&id({IOSet}),
        values SET SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{@type}) }
]]></artwork>
        <t>This remains unchanged, such that bits-on-the-wire compatibility is maintained.</t>
        <t>Key parts that were unclear were which OID to use in the 'type' field and
that the 'values' field can contain an entire sequence of X.509 extensions.</t>
        <t>The OID to use for such attributes in the 'type' field MUST be extensionRequest,
which has the numerical value 1.2.840.113549.1.9.14.
There MUST be only one such Attribute.</t>
        <t>The 'values' field of this attribute MUST contain a set with exactly one element,
and this element MUST be of type Extensions, as per <xref section="4.1" sectionFormat="of" target="RFC5280"/>:</t>
        <artwork><![CDATA[
   Extensions  ::=  SEQUENCE SIZE (1..MAX) OF Extension

   Extension  ::=  SEQUENCE  {
        extnID      OBJECT IDENTIFIER,
        critical    BOOLEAN DEFAULT FALSE,
        extnValue   OCTET STRING
                    -- contains the DER encoding of an ASN.1 value
                    -- corresponding to the extension type identified
                    -- by extnID
        }
]]></artwork>
        <t>An Extension comprises the OID of the specific X.509 extension (extnID),
optionally the 'critical' bit, and the extension value (extnValue).</t>
        <t>An Extensions structure, which is a sequence of elements of type Extension,
MUST NOT include more than one element with a particiular extnID.</t>
        <t>With this understanding, the needs of <xref target="RFC8994"/> and <xref target="RFC8995"/> are satisfied
with no change to the bits on the wire.</t>
      </section>
      <section anchor="csrtemplate">
        <name>Alternative: Use of CSR templates</name>
        <t><xref section="B" sectionFormat="comma" target="RFC8295"/> suggests an alternative that avoids the
piecemeal inclusion of attributes that <xref target="RFC7030"/> documented.
Instead, an entire CSR object is returned with various fields filled
out, and other fields waiting to be filled in, in a pKCS7PDU attribute.
In the suggested approach, the pKCS7PDU attribute includes a Full PKI
Data content type <xref target="RFC5272"/> and that in turn includes a CSR or CRMF
formatted request; see <xref target="RFC6268"/> Sections 5 and 9, respectively.</t>
        <t>The drawback to this approach, particularly for the CSR, is that some
required fields are "faked"; specifically, the <tt>signature</tt> field on
the CSR is faked with an empty bit string.
To avoid this drawback,
this specification defines the Certificate Request Information
Template attribute for CsrAttrs, see <xref target="csrattrs"/>, that is request
minus the useless signature wrapper as follows:</t>
        <artwork><![CDATA[
  aa-certificationRequestInfoTemplate ATTRIBUTE ::=
    { TYPE CertificationRequestInfoTemplate IDENTIFIED BY
      id-aa-certificationRequestInfoTemplate }

  id-aa-certificationRequestInfoTemplate OBJECT IDENTIFIER ::=
    { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
      smime(16) aa(2) csrinfo(TBD2) }

  CertificateRequestInfoTemplate ::= CertificationRequestInfo
]]></artwork>
        <t>The CertificationRequestInfoTemplate uses the CertificationRequestInfo
from <xref section="5" sectionFormat="comma" target="RFC5912"/> and is included here for convenience:</t>
        <artwork><![CDATA[
  CertificationRequestInfo ::= SEQUENCE {
    version       INTEGER { v1(0) } (v1,...),
    subject       Name,
    subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
    attributes    [0] Attributes{{ CRIAttributes }}
  }
]]></artwork>
        <t>Note:
This method has also been defined in CMP Updates <xref target="RFC9480"/>
and the Lightweight CMP profile <xref section="4.3.3" sectionFormat="comma" target="RFC9483"/>,
using a CSR template as defined for CRMF <xref target="RFC4211"/>.</t>
        <t>Legacy servers MAY continue to use the <xref target="RFC7030"/> style piecemeal
attribute/value pairs, and MAY also include the template style described
here. Clients which understand both MUST use the template only, and
ignore all other CSRattrs elements.  Older clients will ignore this new
element.</t>
        <t>The version code is always v1 (0). As shown in the example below, any
empty values in the subject DN, and in any included X509v3 extensions
are expected to be filled in by the client.</t>
        <t>The SubjectPublicKeyInfo field MUST be present, but it MUST have an
empty bit string for the key, as the server does not know what key will
be used.  The server MAY specify (in the OID), the type of the key to
use, but otherwise the OID type MUST be NULL.</t>
        <t>Each of the attributes has a single attribute value instance in the
values set.  Even though the syntax is defined as a set, there MUST
be exactly one instance of AttributeValue present.</t>
      </section>
    </section>
    <section anchor="co-existence-with-existing-implementations">
      <name>Co-existence with existing implementations</name>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>Each example has a high-level (English) explanation of what is expected.
Some mapping back to the Attribute and Extension definitions above are included.
The base64 DER encoding is then shown.
The output of "dumpasn1" is then provided to detail what the contents are.</t>
      <section anchor="acpNodeName">
        <name>RFC8994/ACP subjectAltName with specific otherName</name>
        <t>A single subjectAltName extension is specified in a single Extension attribute.
This is what might be created by an <xref target="RFC8995"/> Registrar that is asking for <xref target="RFC8994"/> AcpNodeName format otherNames.</t>
        <section anchor="base64-encoded-example">
          <name>Base64 encoded example</name>
          <t>The Base64:</t>
          <sourcecode type="base64" markers="false"><![CDATA[
MGQwYgYJKoZIhvcNAQkOMVUwUwYDVR0RAQH/BEmgRzBFBggr
BgEFBQcICgw5cmZjODk5NCtmZDczOWZjMjNjMzQ0MDExMjIz
MzQ0NTUwMDAwMDAwMCtAYWNwLmV4YW1wbGUuY29t
]]></sourcecode>
        </section>
        <section anchor="asn1-dump-output">
          <name>ASN.1 DUMP output</name>
          <t>There is a single subjectAltName Extension with an Attribute with Extension type.</t>
          <artwork><![CDATA[
    <30 64>
  0 100: SEQUENCE {
    <30 62>
  2  98:   SEQUENCE {
    <06 09>
  4   9:     OBJECT IDENTIFIER extensionRequest (1 2 840 113549 1 9 14)
       :       (PKCS #9 via CRMF)
    <31 55>
 15  85:     SET {
    <30 53>
 17  83:       SEQUENCE {
    <06 03>
 19   3:         OBJECT IDENTIFIER subjectAltName (2 5 29 17)
       :           (X.509 extension)
    <01 01>
 24   1:         BOOLEAN TRUE
    <04 49>
 27  73:         OCTET STRING
       :           A0 47 30 45 06 08 2B 06    .G0E..+.
       :           01 05 05 07 08 0A 0C 39    .......9
       :           72 66 63 38 39 39 34 2B    rfc8994+
       :           66 64 37 33 39 66 63 32    fd739fc2
       :           33 63 33 34 34 30 31 31    3c344011
       :           32 32 33 33 34 34 35 35    22334455
       :           30 30 30 30 30 30 30 30    00000000
       :           2B 40 61 63 70 2E 65 78    +@acp.ex
       :           61 6D 70 6C 65 2E 63 6F    ample.co
       :           6D                         m
       :         }
       :       }
       :     }
       :   }
]]></artwork>
        </section>
      </section>
      <section anchor="rfc7030-original-example">
        <name>RFC7030 original example</name>
        <t>In this example, taken from <xref target="RFC7030"/>, a few different attributes are included.</t>
        <section anchor="base64-encoded-example-1">
          <name>Base64 encoded example</name>
          <t>The Base64:</t>
          <sourcecode type="base64" markers="false"><![CDATA[
MEEGCSqGSIb3DQEJBzASBgcqhkjOPQIBMQcGBSuBBAAiMBYG
CSqGSIb3DQEJDjEJBgcrBgEBAQEWBggqhkjOPQQDAw==
]]></sourcecode>
        </section>
        <section anchor="asn1-dump-output-1">
          <name>ASN.1 DUMP output</name>
          <ol spacing="normal" type="1"><li>
              <t>The challengePassword attribute is included to indicate that the CSR should include this value.</t>
            </li>
            <li>
              <t>An ecPublicKey attribute is provided with the value secp384r1 to indicate what kind of key should be submitted.</t>
            </li>
            <li>
              <t>An extensionRequest container with an OID 1.3.6.1.1.1.1.22 (macAddress), but without a value, to indicate that the CSR should include an X.509v3 extension with this value.</t>
            </li>
            <li>
              <t>The ecdsaWithSHA384 OID is included to indicate what kind of hash is expected to be used for the self-signature of the PCKS#10 CSR structure.</t>
            </li>
          </ol>
          <artwork><![CDATA[
    <30 41>
  0  65: SEQUENCE {
    <06 09>
  2   9:   OBJECT IDENTIFIER challengePassword (1 2 840 113549 1 9 7)
       :     (PKCS #9)
    <30 12>
 13  18:   SEQUENCE {
    <06 07>
 15   7:     OBJECT IDENTIFIER ecPublicKey (1 2 840 10045 2 1)
       :       (ANSI X9.62 public key type)
    <31 07>
 24   7:     SET {
    <06 05>
 26   5:       OBJECT IDENTIFIER secp384r1 (1 3 132 0 34)
       :         (SECG (Certicom) named elliptic curve)
       :       }
       :     }
    <30 16>
 33  22:   SEQUENCE {
    <06 09>
 35   9:     OBJECT IDENTIFIER extensionRequest (1 2 840 113549 1 9 14)
       :       (PKCS #9 via CRMF)
    <31 09>
 46   9:     SET {
    <06 07>
 48   7:       OBJECT IDENTIFIER '1 3 6 1 1 1 1 22'
       :       }
       :     }
    <06 08>
 57   8:   OBJECT IDENTIFIER ecdsaWithSHA384 (1 2 840 10045 4 3 3)
       :     (ANSI X9.62 ECDSA algorithm with SHA384)
       :   }
]]></artwork>
        </section>
      </section>
      <section anchor="est-server-requires-a-specific-subjectaltname-extension">
        <name>EST server requires a specific subjectAltName extension</name>
        <t>This example is the same as the previous one except that instead of the OID
for a macAddress, a subjectAltName is specified as the only Extension element.</t>
        <section anchor="base64-encoded-example-2">
          <name>Base64 encoded example</name>
          <t>The Base64:</t>
          <sourcecode type="base64" markers="false"><![CDATA[
MGYGCSqGSIb3DQEJBzASBgcqhkjOPQIBMQcGBSuBBAAiMDsG
CSqGSIb3DQEJDjEuMCwGA1UdEQEB/wQioCAwHgYIKwYBBQUH
CAoMEnBvdGF0b0BleGFtcGxlLmNvbQYIKoZIzj0EAwM=
]]></sourcecode>
        </section>
        <section anchor="asn1-dump-output-2">
          <name>ASN.1 DUMP output</name>
          <ol spacing="normal" type="1"><li>
              <t>The challengePassword attribute is included to indicate that the CSR should include this value.</t>
            </li>
            <li>
              <t>An ecPublicKey attribute is provided with the value secp384r1 to indicate what kind of key should be submitted.</t>
            </li>
            <li>
              <t>An extensionRequest container with a subjectAltName value containing the name potato@example.com</t>
            </li>
            <li>
              <t>The ecdsaWithSHA384 OID is included to indicate what kind of hash is expected to be used for the self-signature of the PCKS#10 CSR structure.</t>
            </li>
          </ol>
          <artwork><![CDATA[
    <30 66>
  0 102: SEQUENCE {
    <06 09>
  2   9:   OBJECT IDENTIFIER challengePassword (1 2 840 113549 1 9 7)
       :     (PKCS #9)
    <30 12>
 13  18:   SEQUENCE {
    <06 07>
 15   7:     OBJECT IDENTIFIER ecPublicKey (1 2 840 10045 2 1)
       :       (ANSI X9.62 public key type)
    <31 07>
 24   7:     SET {
    <06 05>
 26   5:       OBJECT IDENTIFIER secp384r1 (1 3 132 0 34)
       :         (SECG (Certicom) named elliptic curve)
       :       }
       :     }
    <30 3B>
 33  59:   SEQUENCE {
    <06 09>
 35   9:     OBJECT IDENTIFIER extensionRequest (1 2 840 113549 1 9 14)
       :       (PKCS #9 via CRMF)
    <31 2E>
 46  46:     SET {
    <30 2C>
 48  44:       SEQUENCE {
    <06 03>
 50   3:         OBJECT IDENTIFIER subjectAltName (2 5 29 17)
       :           (X.509 extension)
    <01 01>
 55   1:         BOOLEAN TRUE
    <04 22>
 58  34:         OCTET STRING
       :           A0 20 30 1E 06 08 2B 06    . 0...+.
       :           01 05 05 07 08 0A 0C 12    ........
       :           70 6F 74 61 74 6F 40 65    potato@e
       :           78 61 6D 70 6C 65 2E 63    xample.c
       :           6F 6D                      om
       :         }
       :       }
       :     }
    <06 08>
 94   8:   OBJECT IDENTIFIER ecdsaWithSHA384 (1 2 840 10045 4 3 3)
       :     (ANSI X9.62 ECDSA algorithm with SHA384)
       :   }
]]></artwork>
        </section>
      </section>
      <section anchor="require-a-public-key-of-a-specific-size">
        <name>Require a public key of a specific size</name>
        <t>The CSR requires a public key of a specific size</t>
        <section anchor="base64-encoded-example-3">
          <name>Base64 encoded example</name>
          <t>The Base64:</t>
          <sourcecode type="base64" markers="false"><![CDATA[
MCkGCSqGSIb3DQEJBzARBgkqhkiG9w0BAQExBAICEAAGCSqG
SIb3DQEBCw==
]]></sourcecode>
        </section>
        <section anchor="asn1-dump-output-3">
          <name>ASN.1 DUMP output</name>
          <ol spacing="normal" type="1"><li>
              <t>Provide a CSR with an RSA key that's 4096 bits and sign it with sha256</t>
            </li>
          </ol>
          <artwork><![CDATA[
    <30 29>
  0  41: SEQUENCE {
    <06 09>
  2   9:   OBJECT IDENTIFIER challengePassword (1 2 840 113549 1 9 7)
       :     (PKCS #9)
    <30 11>
 13  17:   SEQUENCE {
    <06 09>
 15   9:     OBJECT IDENTIFIER rsaEncryption (1 2 840 113549 1 1 1)
       :       (PKCS #1)
    <31 04>
 26   4:     SET {
    <02 02>
 28   2:       INTEGER 4096
       :       }
       :     }
    <06 09>
 32   9:   OBJECT IDENTIFIER sha256WithRSAEncryption
                             (1 2 840 113549 1 1 11)
       :     (PKCS #1)
       :   }
]]></artwork>
        </section>
      </section>
      <section anchor="require-a-public-key-of-a-specific-curve">
        <name>Require a public key of a specific curve</name>
        <t>The CSR requires a public key with a specific curve</t>
        <section anchor="base64-encoded-example-4">
          <name>Base64 encoded example</name>
          <t>The Base64:</t>
          <sourcecode type="base64" markers="false"><![CDATA[
MD0GCSqGSIb3DQEJBzASBgcqhkjOPQIBMQcGBSuBBAAiMBIGCSqGSIb3DQEJDjEF
BgNVBAUGCCqGSM49BAMD
]]></sourcecode>
        </section>
        <section anchor="asn1-dump-output-4">
          <name>ASN.1 DUMP output</name>
          <t>Provide a CSR with an ECC key from p384, include your serial number, and
sign it with sha384.</t>
          <artwork><![CDATA[
    <30 3D>
  0  61: SEQUENCE {
    <06 09>
  2   9:   OBJECT IDENTIFIER challengePassword (1 2 840 113549 1 9 7)
       :     (PKCS #9)
    <30 12>
 13  18:   SEQUENCE {
    <06 07>
 15   7:     OBJECT IDENTIFIER ecPublicKey (1 2 840 10045 2 1)
       :       (ANSI X9.62 public key type)
    <31 07>
 24   7:     SET {
    <06 05>
 26   5:       OBJECT IDENTIFIER secp384r1 (1 3 132 0 34)
       :         (SECG (Certicom) named elliptic curve)
       :       }
       :     }
    <30 12>
 33  18:   SEQUENCE {
    <06 09>
 35   9:     OBJECT IDENTIFIER extensionRequest (1 2 840 113549 1 9 14)
       :       (PKCS #9 via CRMF)
    <31 05>
 46   5:     SET {
    <06 03>
 48   3:       OBJECT IDENTIFIER serialNumber (2 5 4 5)
       :         (X.520 DN component)
       :       }
       :     }
    <06 08>
 53   8:   OBJECT IDENTIFIER ecdsaWithSHA384 (1 2 840 10045 4 3 3)
       :     (ANSI X9.62 ECDSA algorithm with SHA384)
       :   }
]]></artwork>
        </section>
      </section>
      <section anchor="require-a-specific-extension">
        <name>Require a specific extension</name>
        <t>The CSR is required to have an EC key, to include a serial number,
a friendly name, favorite drink, and be signed with SHA512.</t>
        <section anchor="base64-encoded-example-5">
          <name>Base64 encoded example</name>
          <t>The Base64:</t>
          <sourcecode type="base64" markers="false"><![CDATA[
MFQGCSqGSIb3DQEJBzASBgcqhkjOPQIBMQcGBSuBBAAjMCkG
CSqGSIb3DQEJDjEcBgNVBAUGCSqGSIb3DQEJFAYKCZImiZPy
LGQBBQYIKoZIzj0EAwQ=
]]></sourcecode>
        </section>
        <section anchor="asn1-dump-output-5">
          <name>ASN.1 DUMP output</name>
          <t>Provide a CSR with an EC key from sha521, include your serial number,
friendly name, and favorite drink, and sign it with sha512</t>
          <artwork><![CDATA[
    <30 54>
  0  84: SEQUENCE {
    <06 09>
  2   9:   OBJECT IDENTIFIER challengePassword (1 2 840 113549 1 9 7)
       :     (PKCS #9)
    <30 12>
 13  18:   SEQUENCE {
    <06 07>
 15   7:     OBJECT IDENTIFIER ecPublicKey (1 2 840 10045 2 1)
       :       (ANSI X9.62 public key type)
    <31 07>
 24   7:     SET {
    <06 05>
 26   5:       OBJECT IDENTIFIER secp521r1 (1 3 132 0 35)
       :         (SECG (Certicom) named elliptic curve)
       :       }
       :     }
    <30 29>
 33  41:   SEQUENCE {
    <06 09>
 35   9:     OBJECT IDENTIFIER extensionRequest (1 2 840 113549 1 9 14)
       :       (PKCS #9 via CRMF)
    <31 1C>
 46  28:     SET {
    <06 03>
 48   3:       OBJECT IDENTIFIER serialNumber (2 5 4 5)
       :         (X.520 DN component)
    <06 09>
 53   9:       OBJECT IDENTIFIER
       :         friendlyName (for PKCS #12) (1 2 840 113549 1 9 20)
       :         (PKCS #9 via PKCS #12)
    <06 0A>
 64  10:       OBJECT IDENTIFIER '0 9 2342 19200300 100 1 5'
       :       }
       :     }
    <06 08>
 76   8:   OBJECT IDENTIFIER ecdsaWithSHA512 (1 2 840 10045 4 3 4)
       :     (ANSI X9.62 ECDSA algorithm with SHA512)
       :   }
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations from EST <xref target="RFC7030"/> section 6 are unchanged.</t>
      <section anchor="identity-and-privacy-considerations">
        <name>Identity and Privacy Considerations</name>
        <t>An EST server may use this mechanism to instruct the EST client about the identities it should include in the CSR it sends as part of enrollment.
The client may only be aware of its IDevID Subject, which includes a manufacturer serial number.
The EST server can use this mechanism to tell the client to include a specific fully qualified domain name in the CSR in order to complete domain ownership proofs required by the CA.
Additionally, the EST server may deem the manufacturer serial number in an IDevID as personally identifiable information, and may want to specify a new random opaque identifier that the pledge should use in its CSR.
This may be desirable if the CA and EST server have different operators.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is asked to allocate two new Object Identifiers:</t>
      <ul spacing="normal">
        <li>
          <t>One (TBD1) from the SMI Security for S/MIME Module Identifier
(1.2.840.113549.1.9.16.0) registry for the ASN.1 module: id-mod-critemplate; see <xref target="app-asn1-module"/>, and</t>
        </li>
        <li>
          <t>One (TBD2) from the SMI Security for S/MIME Attributes
(1.2.840.113549.1.9.16.2) registry for the Certification Request
Information Template (csrinfo) attribute; see <xref target="csrtemplate"/> and <xref target="app-asn1-module"/>.</t>
        </li>
      </ul>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Corey Bonnell crafted example02 using a different tool, and this helped debug other running code.</t>
    </section>
    <section anchor="changelog">
      <name>Changelog</name>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC5272">
          <front>
            <title>Certificate Management over CMS (CMC)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="M. Myers" initials="M." surname="Myers"/>
            <date month="June" year="2008"/>
            <abstract>
              <t>This document defines the base syntax for CMC, a Certificate Management protocol using the Cryptographic Message Syntax (CMS). This protocol addresses two immediate needs within the Internet Public Key Infrastructure (PKI) community:</t>
              <t>1. The need for an interface to public key certification products and services based on CMS and PKCS #10 (Public Key Cryptography Standard), and</t>
              <t>2. The need for a PKI enrollment protocol for encryption only keys due to algorithm or hardware design.</t>
              <t>CMC also requires the use of the transport document and the requirements usage document along with this document for a full definition. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5272"/>
          <seriesInfo name="DOI" value="10.17487/RFC5272"/>
        </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="RFC5652">
          <front>
            <title>Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="70"/>
          <seriesInfo name="RFC" value="5652"/>
          <seriesInfo name="DOI" value="10.17487/RFC5652"/>
        </reference>
        <reference anchor="RFC5911">
          <front>
            <title>New ASN.1 Modules for Cryptographic Message Syntax (CMS) and S/MIME</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 Cryptographic Message Syntax (CMS) 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="5911"/>
          <seriesInfo name="DOI" value="10.17487/RFC5911"/>
        </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="RFC6268">
          <front>
            <title>Additional New ASN.1 Modules for the Cryptographic Message Syntax (CMS) and the Public Key Infrastructure Using X.509 (PKIX)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="July" year="2011"/>
            <abstract>
              <t>The Cryptographic Message Syntax (CMS) 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 some auxiliary ASN.1 modules to conform to the 2008 version of ASN.1; the 1988 ASN.1 modules remain the normative version. 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="6268"/>
          <seriesInfo name="DOI" value="10.17487/RFC6268"/>
        </reference>
        <reference anchor="RFC7030">
          <front>
            <title>Enrollment over Secure Transport</title>
            <author fullname="M. Pritikin" initials="M." role="editor" surname="Pritikin"/>
            <author fullname="P. Yee" initials="P." role="editor" surname="Yee"/>
            <author fullname="D. Harkins" initials="D." role="editor" surname="Harkins"/>
            <date month="October" year="2013"/>
            <abstract>
              <t>This document profiles certificate enrollment for clients using Certificate Management over CMS (CMC) messages over a secure transport. This profile, called Enrollment over Secure Transport (EST), describes a simple, yet functional, certificate management protocol targeting Public Key Infrastructure (PKI) clients that need to acquire client certificates and associated Certification Authority (CA) certificates. It also supports client-generated public/private key pairs as well as key pairs generated by the CA.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7030"/>
          <seriesInfo name="DOI" value="10.17487/RFC7030"/>
        </reference>
        <reference anchor="RFC8994">
          <front>
            <title>An Autonomic Control Plane (ACP)</title>
            <author fullname="T. Eckert" initials="T." role="editor" surname="Eckert"/>
            <author fullname="M. Behringer" initials="M." role="editor" surname="Behringer"/>
            <author fullname="S. Bjarnason" initials="S." surname="Bjarnason"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>Autonomic functions need a control plane to communicate, which depends on some addressing and routing. This Autonomic Control Plane should ideally be self-managing and be as independent as possible of configuration. This document defines such a plane and calls it the "Autonomic Control Plane", with the primary use as a control plane for autonomic functions. It also serves as a "virtual out-of-band channel" for Operations, Administration, and Management (OAM) communications over a network that provides automatically configured, hop-by-hop authenticated and encrypted communications via automatically configured IPv6 even when the network is not configured or is misconfigured.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8994"/>
          <seriesInfo name="DOI" value="10.17487/RFC8994"/>
        </reference>
        <reference anchor="RFC8995">
          <front>
            <title>Bootstrapping Remote Secure Key Infrastructure (BRSKI)</title>
            <author fullname="M. Pritikin" initials="M." surname="Pritikin"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="T. Eckert" initials="T." surname="Eckert"/>
            <author fullname="M. Behringer" initials="M." surname="Behringer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document specifies automated bootstrapping of an Autonomic Control Plane. To do this, a Secure Key Infrastructure is bootstrapped. This is done using manufacturer-installed X.509 certificates, in combination with a manufacturer's authorizing service, both online and offline. We call this process the Bootstrapping Remote Secure Key Infrastructure (BRSKI) protocol. Bootstrapping a new device can occur when using a routable address and a cloud service, only link-local connectivity, or limited/disconnected networks. Support for deployment models with less stringent security requirements is included. Bootstrapping is complete when the cryptographic identity of the new key infrastructure is successfully deployed to the device. The established secure connection can be used to deploy a locally issued certificate to the device as well.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8995"/>
          <seriesInfo name="DOI" value="10.17487/RFC8995"/>
        </reference>
        <reference anchor="X.680" target="https://www.itu.int/rec/T-REC-X.680">
          <front>
            <title>Information technology -- Abstract Syntax Notation One (ASN.1): Specification of basic notation</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="X.680"/>
          <seriesInfo name="ISO/IEC" value="8824-1:2021"/>
        </reference>
        <reference anchor="X.690" target="https://www.itu.int/rec/T-REC-X.680">
          <front>
            <title>Information technology -- ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="X.690"/>
          <seriesInfo name="ISO/IEC" value="8825-1:2021"/>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8368">
          <front>
            <title>Using an Autonomic Control Plane for Stable Connectivity of Network Operations, Administration, and Maintenance (OAM)</title>
            <author fullname="T. Eckert" initials="T." role="editor" surname="Eckert"/>
            <author fullname="M. Behringer" initials="M." surname="Behringer"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>Operations, Administration, and Maintenance (OAM), as per BCP 161, for data networks is often subject to the problem of circular dependencies when relying on connectivity provided by the network to be managed for the OAM purposes.</t>
              <t>Provisioning while bringing up devices and networks tends to be more difficult to automate than service provisioning later on. Changes in core network functions impacting reachability cannot be automated because of ongoing connectivity requirements for the OAM equipment itself, and widely used OAM protocols are not secure enough to be carried across the network without security concerns.</t>
              <t>This document describes how to integrate OAM processes with an autonomic control plane in order to provide stable and secure connectivity for those OAM processes. This connectivity is not subject to the aforementioned circular dependencies.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8368"/>
          <seriesInfo name="DOI" value="10.17487/RFC8368"/>
        </reference>
        <reference anchor="RFC4211">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="September" year="2005"/>
            <abstract>
              <t>This document describes the Certificate Request Message Format (CRMF) syntax and semantics. This syntax is used to convey a request for a certificate to a Certification Authority (CA), possibly via a Registration Authority (RA), for the purposes of X.509 certificate production. The request will typically include a public key and the associated registration information. This document does not define a certificate request protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4211"/>
          <seriesInfo name="DOI" value="10.17487/RFC4211"/>
        </reference>
        <reference anchor="RFC9480">
          <front>
            <title>Certificate Management Protocol (CMP) Updates</title>
            <author fullname="H. Brockhaus" initials="H." surname="Brockhaus"/>
            <author fullname="D. von Oheimb" initials="D." surname="von Oheimb"/>
            <author fullname="J. Gray" initials="J." surname="Gray"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document contains a set of updates to the syntax of Certificate Management Protocol (CMP) version 2 and its HTTP transfer mechanism. This document updates RFCs 4210, 5912, and 6712.</t>
              <t>The aspects of CMP updated in this document are using EnvelopedData instead of EncryptedValue, clarifying the handling of p10cr messages, improving the crypto agility, as well as adding new general message types, extended key usages to identify certificates for use with CMP, and well-known URI path segments.</t>
              <t>CMP version 3 is introduced to enable signaling support of EnvelopedData instead of EncryptedValue and signal the use of an explicit hash AlgorithmIdentifier in certConf messages, as far as needed.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9480"/>
          <seriesInfo name="DOI" value="10.17487/RFC9480"/>
        </reference>
        <reference anchor="RFC9483">
          <front>
            <title>Lightweight Certificate Management Protocol (CMP) Profile</title>
            <author fullname="H. Brockhaus" initials="H." surname="Brockhaus"/>
            <author fullname="D. von Oheimb" initials="D." surname="von Oheimb"/>
            <author fullname="S. Fries" initials="S." surname="Fries"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document aims at simple, interoperable, and automated PKI management operations covering typical use cases of industrial and Internet of Things (IoT) scenarios. This is achieved by profiling the Certificate Management Protocol (CMP), the related Certificate Request Message Format (CRMF), and transfer based on HTTP or Constrained Application Protocol (CoAP) in a succinct but sufficiently detailed and self-contained way. To make secure certificate management for simple scenarios and constrained devices as lightweight as possible, only the most crucial types of operations and options are specified as mandatory. More specialized or complex use cases are supported with optional features.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9483"/>
          <seriesInfo name="DOI" value="10.17487/RFC9483"/>
        </reference>
        <reference anchor="RFC8295">
          <front>
            <title>EST (Enrollment over Secure Transport) Extensions</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="January" year="2018"/>
            <abstract>
              <t>The EST (Enrollment over Secure Transport) protocol defines the Well-Known URI (Uniform Resource Identifier) -- /.well-known/est -- along with a number of other path components that clients use for PKI (Public Key Infrastructure) services, namely certificate enrollment (e.g., /simpleenroll). This document defines a number of other PKI services as additional path components -- specifically, firmware and trust anchors as well as symmetric, asymmetric, and encrypted keys. This document also specifies the PAL (Package Availability List), which is an XML (Extensible Markup Language) file or JSON (JavaScript Object Notation) object that clients use to retrieve packages available and authorized for them. This document extends the EST server path components to provide these additional services.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8295"/>
          <seriesInfo name="DOI" value="10.17487/RFC8295"/>
        </reference>
      </references>
    </references>
    <?line 649?>

<section anchor="app-asn1-module">
      <name>ASN.1 Module</name>
      <aside>
        <t>RFC EDITOR: Please replace TBD1 and TBD2 with the value assigned by IANA
during the publication of [I-D.ietf-lamps-rfc7030-csrattrs].</t>
      </aside>
      <t>This appendix provides an ASN.1 module <xref target="X.680"/> for the Certification
Request Information Template attribute, and it follows the conventions
established in <xref target="RFC5911"/>, <xref target="RFC5912"/>, and <xref target="RFC6268"/>.</t>
      <sourcecode type="asn.1"><![CDATA[
CRITemplateModule
  { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
    pkcs-9(9) smime(16) modules(0) id-mod-critemplate(TBD1) }

DEFINITIONS IMPLICIT TAGS ::=

BEGIN

IMPORTS

ATTRIBUTE -- [RFC5911]
 FROM PKIX-CommonTypes-2009
   { iso(1) identified-organization(3) dod(6) internet(1)
     security(5) mechanisms(5) pkix(7)
     id-mod(0) id-mod-pkixCommon-02(57) }

CertificationRequestInfo -- [RFC5912]
  FROM PKCS-10
    { iso(1) identified-organization(3) dod(6) internet(1)
      security(5) mechanisms(5) pkix(7)
      id-mod(0) id-mod-pkcs10-2009(69) }

;

aa-certificationRequestInfoTemplate ATTRIBUTE ::=
  { TYPE CertificationRequestInfoTemplate IDENTIFIED BY
    id-aa-certificationRequestInfoTemplate }

id-aa-certificationRequestInfoTemplate OBJECT IDENTIFIER ::=
  { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
    smime(16) aa(2) csrinfo(TBD2) }

CertificationRequestInfoTemplate ::= CertificationRequestInfo

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

-->

</rfc>
