<?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-05" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.14.0 -->
  <front>
    <title abbrev="CSRAttrs">Clarification of RFC7030 CSR Attributes definition</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-rfc7030-csrattrs-05"/>
    <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="July" day="09"/>
    <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>
    <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>No requests are made to IANA.</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>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
