<?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-rfc2629 version 1.6.4 (Ruby 2.6.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-rfc7030-csrattrs-07" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.3 -->
  <front>
    <title abbrev="CSRAttrs">Clarification of RFC7030 CSR Attributes definition</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-rfc7030-csrattrs-07"/>
    <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="2023" month="October" day="10"/>
    <area>Internet</area>
    <workgroup>LAMPS Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <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>
    <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.
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.</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="extensions-to-rfc-7030-section-452">
        <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 by 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 for the piecemeal specification of attributes that <xref target="RFC7030"/> documented.
Instead, a CSR object is returned with various fields filled out, and other fields waiting to be filled in.
This is also the method defined CMP Update <xref target="I-D.ietf-lamps-cmp-updates"/> and the Lightweight CMP profile <xref section="4.3.3" sectionFormat="comma" target="I-D.ietf-lamps-lightweight-cmp-profile"/>, which uses a CSR template in CRMF.</t>
        <artwork><![CDATA[
    CertificationRequestInfo ::= SEQUENCE {
        version       INTEGER { v1(0) } (v1,...),
        subject       Name,
        subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
        attributes    [0] Attributes{{ CRIAttributes }}
        }
]]></artwork>
        <t>The CertificationRequestInfo is included as a new Attribute in the CsrAttrs elements sequence.</t>
        <t>This new attribute is identified by the OID TBD.</t>
        <artwork><![CDATA[
    IMPORTS

    ATTRIBUTE
    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)}

    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) TBD }
]]></artwork>
        <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 use of the CertificationRequestInfo avoids a useless fake signature in the CSR object.
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>
      </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>
          <sourcecode type="base64" markers="true"><![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>
          <sourcecode type="base64" markers="true"><![CDATA[
MEEGCSqGSIb3DQEJBzASBgcqhkjOPQIBMQcGBSuBBAAiMBYG
CSqGSIb3DQEJDjEJBgcrBgEBAQEWBggqhkjOPQQDAw==
]]></sourcecode>
        </section>
        <section anchor="asn1-dump-output-1">
          <name>ASN.1 DUMP output</name>
          <ol spacing="normal" type="1"><li>The challengePassword attribute is included to indicate that the CSR should include this value.</li>
            <li>An ecPublicKey attribute is provided with the value secp384r1 to indicate what kind of key should be submitted.</li>
            <li>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.</li>
            <li>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.</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>
          <sourcecode type="base64" markers="true"><![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>The challengePassword attribute is included to indicate that the CSR should include this value.</li>
            <li>An ecPublicKey attribute is provided with the value secp384r1 to indicate what kind of key should be submitted.</li>
            <li>An extensionRequest container with a subjectAltName value containing the name potato@example.com</li>
            <li>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.</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>
          <sourcecode type="base64" markers="true"><![CDATA[
MCkGCSqGSIb3DQEJBzARBgkqhkiG9w0BAQExBAICEAAGCSqG
SIb3DQEBCw==
]]></sourcecode>
        </section>
        <section anchor="asn1-dump-output-3">
          <name>ASN.1 DUMP output</name>
          <ol spacing="normal" type="1"><li>Provide a CSR with an RSA key that's 4096 bits and sign it with sha256</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>
          <sourcecode type="base64" markers="true"><![CDATA[
MD0GCSqGSIb3DQEJBzASBgcqhkjOPQIBMQcGBSuBBAAiMBIGCSqGSIb3DQEJDjEFBgNVBAUGCCqGSM49BAMD
]]></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>
          <sourcecode type="base64" markers="true"><![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 a new Object Identifier from the SMI Security for S/MIME Attributes (1.2.840.113549.1.9.16.2) registry at: https://www.iana.org/assignments/smi-numbers/smi-numbers.xhtml#security-smime-2
as explained in section <xref target="csrtemplate"/>.</t>
    </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>
        <name>Normative References</name>
        <reference anchor="RFC5280" target="https://www.rfc-editor.org/info/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="RFC7030" target="https://www.rfc-editor.org/info/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" target="https://www.rfc-editor.org/info/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" target="https://www.rfc-editor.org/info/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="RFC2119" target="https://www.rfc-editor.org/info/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" target="https://www.rfc-editor.org/info/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>
        <name>Informative References</name>
        <reference anchor="RFC8368" target="https://www.rfc-editor.org/info/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="RFC8295" target="https://www.rfc-editor.org/info/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>
        <reference anchor="I-D.ietf-lamps-cmp-updates" target="https://datatracker.ietf.org/doc/html/draft-ietf-lamps-cmp-updates-23">
          <front>
            <title>Certificate Management Protocol (CMP) Updates</title>
            <author fullname="Hendrik Brockhaus" initials="H." surname="Brockhaus">
              <organization>Siemens</organization>
            </author>
            <author fullname="David von Oheimb" initials="D." surname="von Oheimb">
              <organization>Siemens</organization>
            </author>
            <author fullname="John Gray" initials="J." surname="Gray">
              <organization>Entrust</organization>
            </author>
            <date day="29" month="June" year="2022"/>
            <abstract>
              <t>   This document contains a set of updates to the syntax and transfer of
   Certificate Management Protocol (CMP) version 2.  This document
   updates RFC 4210, RFC 5912, and RFC 6712.

   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.

   CMP version 3 is introduced to enable signaling support of
   EnvelopedData instead of EncryptedValue and signaling the use of an
   explicit hash AlgorithmIdentifier in certConf messages, as far as
   needed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-cmp-updates-23"/>
        </reference>
        <reference anchor="I-D.ietf-lamps-lightweight-cmp-profile" target="https://datatracker.ietf.org/doc/html/draft-ietf-lamps-lightweight-cmp-profile-21">
          <front>
            <title>Lightweight Certificate Management Protocol (CMP) Profile</title>
            <author fullname="Hendrik Brockhaus" initials="H." surname="Brockhaus">
              <organization>Siemens</organization>
            </author>
            <author fullname="David von Oheimb" initials="D." surname="von Oheimb">
              <organization>Siemens</organization>
            </author>
            <author fullname="Steffen Fries" initials="S." surname="Fries">
              <organization>Siemens AG</organization>
            </author>
            <date day="17" month="February" year="2023"/>
            <abstract>
              <t>   This document aims at simple, interoperable, and automated PKI
   management operations covering typical use cases of industrial and
   IoT scenarios.  This is achieved by profiling the Certificate
   Management Protocol (CMP), the related Certificate Request Message
   Format (CRMF), and HTTP-based or CoAP-based transfer 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="Internet-Draft" value="draft-ietf-lamps-lightweight-cmp-profile-21"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
