<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE rfc [
 <!ENTITY nbsp    "&#160;">
 <!ENTITY zwsp   "&#8203;">
 <!ENTITY nbhy   "&#8209;">
 <!ENTITY wj     "&#8288;">
]> 

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-turner-sodp-profile-08" number="9152" submissionType="independent" category="info" ipr="trust200902" obsoletes="" updates="" xml:lang="en" symRefs="true" sortRefs="true" tocInclude="true" version="3">

  <!-- xml2rfc v2v3 conversion 3.5.0 -->
  <!-- Generated by id2xml 1.5.0 on 2021-01-19T23:07:54Z -->
	<front>

    <title abbrev="SODP Server Interfaces">Secure Object Delivery
    Protocol (SODP) Server Interfaces: NSA's
    Profile for Delivery of Certificates, Certificate Revocation Lists (CRLs),
    and Symmetric Keys to Clients
</title>
    <seriesInfo name="RFC" value="9152"/>
    <author initials="M." surname="Jenkins" fullname="Michael Jenkins">
      <organization abbrev="NSA">National Security Agency</organization>
      <address>
        <email>mjjenki@cyber.nsa.gov</email>
      </address>
    </author>
    <author initials="S." surname="Turner" fullname="Sean Turner">
      <organization>sn3rd</organization>
      <address>
        <email>sean@sn3rd.com</email>
      </address>
    </author>
    <date year="2022" month="April"/>
<keyword>CNSA</keyword>
<keyword>NSS</keyword>
    <abstract>
      <t>
   This document specifies protocol interfaces profiled by the United States National Security Agency (NSA) for National Security System (NSS) servers that provide public key certificates, Certificate Revocation Lists (CRLs), and symmetric keys to NSS clients.
   Servers that support these interfaces are referred to as Secure
   Object Delivery Protocol (SODP) servers. The intended audience for this
   profile comprises developers of client devices that will obtain key
   management services from NSA-operated SODP servers.  Interfaces
   supported by SODP servers include Enrollment over Secure
   Transport (EST) and its extensions as well as Certificate Management
   over CMS (CMC).</t>
      <t>
   This profile applies to the capabilities, configuration, and operation of
   all components of US National Security Systems (SP 800-59). It is also
   appropriate for other US Government systems that process high-value
   information. It is made publicly available for use by developers and
   operators of these and any other system deployments.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="sect-1" numbered="true" toc="default">
      <name>Introduction</name>
      <t>
   This document specifies protocol interfaces profiled by the United States National Security Agency (NSA) for National Security
   System (NSS) servers that provide public key certificates, Certificate Revocation Lists (CRLs), and symmetric keys to NSS clients.
   Servers that support these interfaces are referred to as Secure
   Object Delivery Protocol (SODP) servers.  The purpose of this document is
   to indicate options from, and requirements in addition to, the base
   specifications listed in <xref target="sect-1.1" format="default"/> that are necessary for client
   interoperability with NSA-operated SODP servers.  Clients are always
   devices and need not implement all of the interfaces specified
   herein; clients are free to choose which interfaces to implement
   based on their operational requirements.  Interfaces supported by
   SODP servers include:</t>
          <ul spacing="normal">
            <li>Enrollment over Secure Transport (EST) <xref target="RFC7030" format="default"/> and its
       extensions <xref target="RFC8295" format="default"/>, and</li>
            <li>Certificate Management over CMS (CMC) <xref target="RFC5274" format="default"/> <xref target="RFC6402" format="default"/> for both Simple Public Key
       Infrastructure (PKI) requests and responses (i.e., PKCS#10 requests
       and PKCS#7 responses) and Full PKI requests and responses.</li>

      </ul>
      <t>
   This profile applies to the capabilities, configuration, and operation of
   all components of US National Security Systems <xref target="SP-800-59" format="default"/>. It is also
   appropriate for other US Government systems that process high-value
   information. It is made publicly available for use by developers and
   operators of these and any other system deployments.</t>
      <t>
   This profile conforms to the existing requirements of the NSA's
   Commercial National Security Algorithms (CNSAs).  As operational needs evolve
   over time, this profile will be updated to incorporate new commercial
   algorithms and protocols as they are developed and approved for use.</t>
      <section anchor="sect-1.1" numbered="true" toc="default">
        <name>Documents to be Familiar With</name>
        <t>Familiarity with the follow specifications is assumed:
        </t>
        <ul spacing="normal">
          <li>EST and EST extensions: <xref target="RFC7030" format="default"/> and <xref target="RFC8295" format="default"/></li>
          <li>PKI-related specifications: <xref target="RFC2986" format="default"/>, <xref target="RFC3739" format="default"/>, <xref target="RFC5274" format="default"/>, <xref target="RFC5280" format="default"/>, <xref target="RFC5912" format="default"/>, <xref target="RFC5913" format="default"/>, <xref target="RFC5916" format="default"/>, <xref target="RFC5917" format="default"/>, <xref target="RFC6010" format="default"/>, and <xref target="RFC6402" format="default"/></li>
          <li>Key-format-related specifications: <xref target="RFC5915" format="default"/>, <xref target="RFC5958" format="default"/>, <xref target="RFC5959" format="default"/>, <xref target="RFC6031" format="default"/>, <xref target="RFC6032" format="default"/>, <xref target="RFC6160" format="default"/>, <xref target="RFC6161" format="default"/>, <xref target="RFC6162" format="default"/>, <xref target="RFC7191" format="default"/>, <xref target="RFC7192" format="default"/>, <xref target="RFC7292" format="default"/>, and <xref target="RFC7906" format="default"/></li>
          <li>CMS-related (Cryptographic Message Syntax) documents: <xref target="RFC5652" format="default"/> and <xref target="RFC6268" format="default"/></li>
          <li>CNSA-related documents: <xref target="RFC8603" format="default"/>, <xref target="RFC8755" format="default"/>, <xref target="RFC8756" format="default"/>, and <xref target="RFC9151" format="default"/></li>
        </ul>
        <t>
   The requirements from RFCs apply throughout this profile and are
   generally not repeated here.  This document is purposely written
   without using the requirements language described in <xref target="RFC2119" format="default"/> and <xref target="RFC8174"/>.</t>
      </section>
      <section anchor="sect-1.2" numbered="true" toc="default">
        <name>Document Organization</name>
        <t> The document is organized as follows:

        </t>
        <ul spacing="normal">
          <li>The remainder of this section describes the operational
	    environment used by clients to retrieve secure objects.</li>
          <li>
            <xref target="sect-2" format="default"/> specifies the Abstract Syntax Notation One (ASN.1) version used.</li>
          <li>
            <xref target="sect-3" format="default"/> specifies SODP's EST interface.</li>

          <li>
            <xref target="sect-4" format="default"/> specifies SODP's CMC interfaces.
          </li>

          <li>Sections <xref target="sect-5" format="counter"/>-<xref target="sect-7" format="counter"/> specify Trust Anchor (TA), Certification Authority (CA), and End-Entity (EE) certificates, respectively.
	  </li>
          <li>Sections <xref target="sect-8" format="counter"/> and <xref target="sect-9" format="counter"/> specify Relying Party Applications and CRL Profile, respectively.</li>
        </ul>
      </section>
      <section anchor="sect-1.3" numbered="true" toc="default">
        <name>Environment</name>

        <t>
   Clients obtain
   secure "objects" or "packages" from the client-server-based environment.  Objects/packages vary based on the
   Source of Authority (SOA), but all objects are "secured" minimally
   through the use of one or more digital signatures and zero or more
   layers of encryption, as profiled in this document.  An SOA is the
   authority for the creation of objects that the client will recognize
   as valid.  An SOA can delegate its authority to other actors;
   delegation occurs through the issuance of certificates.  An object or
   package is the generic term for certificates, certificate status
   information, and keys (both asymmetric and symmetric).  All of the
   objects except for the certificates and certificate status
   information are directly encapsulated in and protected by CMS content
   types.  CMS content types that provide security are referred to as
   "CMS-protecting content types".  All others are simply referred to as
   "CMS content types".  All secured objects are distributed either as CMS
   packages or as part of a CMS package.</t>
        <t>
   In the example depicted in <xref target="ure-operating-environment-key-and-pki-sources-of-authority"/>, there are two SOAs:
   one for symmetric keys, as depicted by the Key Trust Anchor (KTA),
   and one for public key certificates, as depicted by the PKI Trust
   Anchor (TA).  The KTA is responsible for the creation and distribution of
   symmetric keys.  The KTA delegates the creation and distribution
   responsibilities to separate entities through the issuance of
   certificates to a Key Source Authority (KSA) and a Key
   Distribution Authority (KDA).  The KSA generates the keys, digitally signs
   the keys, and encrypts the key for the end client using CMS content
   types for each step.  The KDA distributes the KSA-generated and KSA-protected key to the client; the key may also be signed by the KDA.
   The resulting CMS package is provided to the client through the EST
   extension's /symmetrickey service.  The PKI TA is responsible for the
   creation, distribution, and management of public key certificates.
   The PKI TA delegates these responsibilities to Certification
   Authorities (CAs), and CAs, in turn, are responsible for creating,
   distributing, and managing End-Entity (EE) certificates. CAs
   distribute PKI-related information through the /cacerts, /crls,
   /eecerts, /fullcmc, /simpleenroll, /simplereenroll, and /csrattrs EST
   and EST extension services.</t>
        <figure anchor="ure-operating-environment-key-and-pki-sources-of-authority">
          <name>Operating Environment (Key and PKI Sources of Authority)</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
   +-----+                            +--------+
   | KTA |                            | PKI TA |
   +-----+                            +--------+
      |                                   |
      | Signs                             | Signs
      |                                   |
      +-------------+                     V
      |             |                   +----+
      V             V                   | CA |
   +-----+       +-----+                +----+
   | KSA |       | KDA |                   |
   +-----+       +-----+                   | Signs
      |           |                        |
      | Signs &   | Optionally             +---------------+
      | Encrypts  | Signs                  |               |
      |           |                        V               V
      |           |                +-------------+ +-------------+
      |           V                | Certificate | | Certificate |
  +---|-------------+              +-------------+ | Revocation  |
  |   V             | CMS Content                  | List        |
  | +-------------+ | Types                        +-------------+
  | | Key Package | |
  | +-------------+ |
  +-----------------+
]]></artwork>
        </figure>
        <t>
   For clients that support the CMC interface and not the EST interface,
   the environment includes only the PKI TAs.</t>
      </section>
    </section>
    <section anchor="sect-2" numbered="true" toc="default">
      <name>Abstract Syntax Notation One</name>
      <t>
   Implementations of this specification use the 2002/2008
   ASN.1 version; 2002/2008 ASN.1 modules can be found in
   <xref target="RFC5911" format="default"/>, <xref target="RFC5912" format="default"/>, and <xref target="RFC6268" format="default"/> (use <xref target="RFC6268"/> for the CMS syntax), while other specifications already include the 2002/2008 ASN.1 along
   with the 1988 ASN.1.  See <xref target="RFC6268" sectionFormat="of" section="1.1" /> for a discussion
   about the differences between the 2002 and 2008 ASN.1 versions.</t>
    </section>
    <section anchor="sect-3" numbered="true" toc="default">
      <name>EST Interface</name>

      <t>
   Client options for EST <xref target="RFC7030" format="default"/> and EST extensions <xref target="RFC8295" format="default"/> are
   specified in this section.</t>
      <section anchor="sect-3.1" numbered="true" toc="default">
        <name>Hypertext Transfer Protocol Layer</name>
        <t>
   Clients that receive redirection responses (3xx status codes) will
   terminate the connection (<xref target="RFC7030" sectionFormat="comma" section="3.2.1"/>).</t>
        <t>
   Per <xref target="RFC8295" sectionFormat="of" section="2.2"/>, clients indicate the format
   ("application/xml" or "application/json") of the PAL information
   (<xref target="RFC8295" sectionFormat="comma" section="2.1.1"/>) via the HTTP Accept header.</t>
      </section>
      <section anchor="sect-3.2" numbered="true" toc="default">
        <name>Transport Layer Security</name>
        <t>
   TLS implementations are configured as specified in
   <xref target="RFC9151" format="default"/>; the notable exception is that only EC-based
   algorithms are used.</t>
      </section>
      <section anchor="sect-3.3" numbered="true" toc="default">
        <name>Eligibility</name>

        <t>
 At the EST interface, servers only enroll clients that they have 
 established a prior relationship with independently of
 the EST service. To accomplish this, client owners/operators
   interact in person with the human acting as the Registration
   Authority (RA) to ensure the information included in the transmitted
   certificate request, which is sometimes called a Certificate
   Signing Request (CSR), is associated with a client.  The mechanism by
   which the owner/operator interacts with the RA as well as
   the information provided is beyond the scope of this document.  The
   information exchanged by the owner/operator might be something as
   simple as the subject name included in the CSR to be sent or a copy
   of the certificate that will be used to verify the certificate
   request, which is provided out of band.</t>
      </section>
      <section anchor="sect-3.4" numbered="true" toc="default">
        <name>Authentication</name>
        <t>
   Mutual authentication occurs via "Certificate TLS Authentication"
   (<xref target="RFC7030" sectionFormat="comma" section="2.2.1"/>).  Clients provide their certificate to
   servers in the TLS Certificate message, which is sent in response to
   the server's TLS Certificate Request message.  Both servers and
   clients reject all attempts to authenticate based on certificates
   that cannot be validated back to an installed TA.</t>
      </section>
      <section anchor="sect-3.5" numbered="true" toc="default">
        <name>Authorization</name>
        <t>
   Clients always use an explicit TA database (<xref target="RFC7030" sectionFormat="comma" section="3.6.1"/>).  At a minimum, clients support two TAs: one for the PKI and
   one for symmetric keys.</t>
        <t>
   Clients check that the server's certificate includes the id-kp-cmcRA
   Extended Key Usage (EKU) value (<xref target="RFC6402" sectionFormat="comma" section="2.10"/>).</t>

        <t>
   Clients that support processing of the CMS Content Constraints extension
   <xref target="RFC6010" format="default"/> ensure returned CMS content is from an SOA or an
   entity authorized by an SOA for that CMS content; see <xref target="sect-7.1"/> for
   SOA certificates.</t>
      </section>
      <section anchor="sect-3.6" numbered="true" toc="default">
        <name>EST and EST Extensions</name>
        <t>
   This section profiles SODP's interfaces for EST <xref target="RFC7030" format="default"/> and EST extensions
   <xref target="RFC8295" format="default"/>.</t>
        <section anchor="sect-3.6.1" numbered="true" toc="default">
          <name>/pal</name>
          <t>
   The Package Availability List (PAL) is limited to 32 entries, where
   the 32nd PAL entry links to an additional PAL (i.e., PAL Package
   Type 0001).</t>
          <t>
   The PAL is XML <xref target="XML" format="default"/>.</t>
        </section>
        <section anchor="sect-3.6.2" numbered="true" toc="default">
          <name>/cacerts</name>
          <t>
   The CA certificates located in the explicit TA database are
   distributed to the client when it is registered.  This TA
   distribution mechanism is out of scope.</t>
          <t>
   CA certificates provided through this service are as specified in
   Sections <xref target="sect-5" format="counter"/> and <xref target="sect-6" format="counter"/> of this document.</t>
        </section>
        <section anchor="sect-3.6.3" numbered="true" toc="default">

          <name>/simpleenroll</name>
          <t>
   CSRs follow the specifications in <xref target="RFC8756" sectionFormat="of" section="4.2"/>,
   except that the CMC-specific ChangeSubjectName and
   the POP Link Witness V2 attributes do not apply.  Only
   EC-based algorithms are used.</t>
          <t>
   Client certificates provided through this service are as specified in
   <xref target="sect-7"/> of this document.</t>
          <t>
   The HTTP content type of "text/plain" (<xref target="RFC2046" sectionFormat="comma" section="4.1"/>) is
   used to return human-readable errors.</t>
        </section>
        <section anchor="sect-3.6.4" numbered="true" toc="default">
          <name>/simplereenroll</name>
          <t>
   There are no additional requirements for requests beyond those
   specified in Sections <xref target="sect-3.4" format="counter"/> and <xref target="sect-3.6.3" format="counter"/> of this document.</t>
          <t>
   The HTTP content type of "text/plain" (<xref target="RFC2046" sectionFormat="comma" section="4.1"/>) is
   used to return human-readable errors.</t>
        </section>
        <section anchor="sect-3.6.5" numbered="true" toc="default">
          <name>/fullcmc</name>
          <t>
   Requests are as specified in <xref target="RFC8756" format="default"/> with the notable
   exception that only EC-based algorithms are used.</t>
          <t>
   Additional attributes for returned CMS packages can be found in
   <xref target="RFC7906" format="default"/>.</t>
          <t>
   Certificates provided through this service are as specified in
   <xref target="sect-7"/> of this document.</t>
        </section>
        <section anchor="sect-3.6.6" numbered="true" toc="default">
          <name>/serverkeygen</name>

          <t>
   PKCS#12 <xref target="RFC7292" format="default"/> -- sometimes referred to as "PFX" (Personal
   Information Exchange) or "P12" -- is used to
   provide server-generated asymmetric private keys and the associated
   certificate to clients.  This interface is a one-way interface as the
   RA requests these from the server.</t>
          <t>
   PFXs <xref target="RFC7292" format="default"/> are exchanged using both password privacy mode and
   integrity password mode.  The PRF algorithm for PBKDF2 (the KDF for
   PBES2 and PBMAC1) is HMAC-SHA-384, and the PBES2 encryption scheme is
   AES-256.</t>
          <t>
   The HTTP content type of "text/plain" (<xref target="RFC2046" sectionFormat="comma" section="4.1"/>) is
   used to return human-readable errors.</t>
          <t>
   /serverkeygen/return is not supported at this time.</t>
        </section>
        <section anchor="sect-3.6.7" numbered="true" toc="default">
          <name>/csrattrs</name>

          <t>
 Clients use this service to retrieve partially filled PKIRequests
 with no public key or proof-of-possession signature,
 i.e., their values are set to zero length, either a zero length BIT
 STRING or OCTET STRING. The pKCS7PDU attribute, defined in
   <xref target="RFC2985" format="default"/>, includes the partially filled PKIRequest as the only
   element in the CsrAttrs sequence.  Even though the CsrAttrs syntax is
   defined as a set, there is only ever exactly one instance of values
   present.</t>
        </section>
        <section anchor="sect-3.6.8" numbered="true" toc="default">
          <name>/crls</name>
          <t>
   CRLs provided through this service are as specified in <xref target="sect-9"/> of
   this document.</t>
        </section>
        <section anchor="sect-3.6.9" numbered="true" toc="default">
          <name>/symmetrickeys</name>

          <t>
   Clients that claim to support SODP interoperation will be able to process
   the following messages from an SODP server: </t>

<ul>
<li>additional encryption and origin
   authentication (<xref target="RFC8295" sectionFormat="comma" section="5"/>); and
   </li>
<li>server-provided Symmetric Key
   Content Type <xref target="RFC6032" format="default"/> encapsulated in an Encrypted Key Content Type using
   the EnvelopedData choice <xref target="RFC6033" format="default"/> with an SOA certificate that includes the
   CMS Content Constraints extension (see <xref target="sect-7.1" format="default"/>).</li>
</ul>

          <t>
   Client-supported algorithms to decrypt the server-returned symmetric
   key are as follows:
          </t>

          <ul>
            <li>Message Digest: See <xref target="RFC8755" sectionFormat="of" section="4"/>.</li>
            <li>Digital Signature Algorithm: See <xref target="RFC8755" sectionFormat="of" section="5"/>.</li>
            <li>Key Agreement: See <xref target="RFC8755" sectionFormat="of" section="6.1"/>.</li>
            <li>Key Wrap: AES-256 Key Wrap with Padding <xref target="RFC6033"
            format="default"/> is used. AES-128 Key Wrap with Padding is not
            used.</li>
            <li>Content Encryption: AES-256 Key Wrap with Padding <xref
            target="RFC6033" format="default"/> is used. AES-128 Key Wrap with
            Padding is not used.</li>
          </ul>
          <t>
   /symmetrickeys/return is not used at this time.</t>
        </section>
        <section anchor="sect-3.6.10" numbered="true" toc="default">
          <name>/eecerts, /firmware, /tamp</name>
          <t>
   /eecerts, /firmware, and /tamp are not used at this time.</t>
        </section>
      </section>
    </section>
    <section anchor="sect-4" numbered="true" toc="default">
      <name>CMC Interface</name>
      <t>
   Client options for CMC <xref target="RFC5274" format="default"/> <xref target="RFC6402" format="default"/> are specified in this section.</t>
      <section anchor="sect-4.1" numbered="true" toc="default">
        <name>RFC 5273 Transport Protocols</name>

        <t>
   Clients only use the HTTPS-based transport. The TLS implementation
   and configuration are as specified in <xref target="RFC9151" format="default"/>, with the
   notable exception that only EC-based algorithms are used.</t>
        <t>
   Clients that receive HTTP redirection responses (3xx status codes)
   will terminate the connection (<xref target="RFC7030" sectionFormat="comma" section="3.2.1"/>).</t>
      </section>
      <section anchor="sect-4.2" numbered="true" toc="default">
        <name>Eligibility</name>
        <t>
 At the CMC interface, servers only enroll clients that they have
 established a prior relationship with independently of
 the EST service. To accomplish this, client owners/operators
   interact in person with the human acting as the Registration
   Authority (RA) to ensure the information included in the transmitted
   certificate request, which is sometimes called a Certificate
   Signing Request (CSR), is associated with a client.  The mechanism by
   which the owner/operator interacts with the RA as well as the
   information provided is beyond the scope of this document.  The
   information exchanged by the owner/operator might be something as
   simple as the subject name included in the CSR to be sent or a copy
   of the certificate that will be used to verify the certificate
   request, which is provided out of band.</t>
      </section>
      <section anchor="sect-4.3" numbered="true" toc="default">
        <name>Authentication</name>

        <t>
   Mutual authentication occurs via client and server signing of CMC
   protocol elements, as required by <xref target="RFC8756" format="default"/>. All such
   signatures are validated against an installed TA; any that fail
   validation are rejected.</t>
      </section>
      <section anchor="sect-4.4" numbered="true" toc="default">
        <name>Authorization</name>
        <t>
   Clients support the simultaneous presence of as many TAs as are
   required for all of the functions of the client, and only these TAs.</t>
        <t>
   Clients check that the server's certificate includes the id-kp-cmcRA
   Extended Key Usage (EKU) value (<xref target="RFC6402" sectionFormat="comma" section="2.10"/>).</t>
        <t>
   Clients that support processing of the CMS Content Constraints extension
   <xref target="RFC6010" format="default"/> ensure returned CMS content is from an SOA or an
   entity authorized by an SOA for that CMS content; see <xref target="sect-7.1"/> for
   SOA certificates.</t>


      </section>
      <section anchor="sect-4.5" numbered="true" toc="default">
        <name>Full PKI Requests/Responses</name>
        <t>
   Requests are as specified in <xref target="RFC8756" format="default"/> with the notable
   exception that only EC-based algorithms are used.</t>

        <t>
   Additional attributes for returned CMS packages can be found in
   <xref target="RFC7906" format="default"/>.</t>
        <t>
   Certificates provided through this service are as specified in <xref target="sect-7"/> of this document.</t>
      </section>
    </section>
    <section anchor="sect-5" numbered="true" toc="default">
      <name>Trust Anchor Profile</name>
      <t>
   Clients are free to store the TA in the format of their choosing;
   however, servers provide TA information in the form of self-signed CA
   certificates.  This section documents requirements for self-signed
   certificates in addition to those specified in <xref target="RFC8603" format="default"/>, which in
   turn specifies requirements in addition to those in <xref target="RFC5280" format="default"/>.</t>
      <t>
   Only EC-based algorithms are used.</t>
      <t>
   Issuer and subject names are composed of only the following naming
   attributes: country name, domain component, organization name,
   organizational unit name, common name, state or province name,
   distinguished name qualifier, and serial number.</t>
      <t>
   In the Subject Key Identifier extension, the keyIdentifier is the 64
   low-order bits of the subject's subjectPublicKey field.</t>
      <t>
   In the Key Usage extension, the nonRepudiation bit is never set.</t>
    </section>
    <section anchor="sect-6" numbered="true" toc="default">
      <name>Non-Self-Signed Certification Authority Certificate Profile</name>
      <t>
   This section documents requirements for non-self-signed CA
   certificates in addition to those specified in <xref target="RFC8603" format="default"/>, which in
   turn specifies requirements in addition to those in <xref target="RFC5280" format="default"/>.</t>
      <t>
   Only EC-based algorithms are used.</t>
      <t>
   Subject names are composed of only the following naming attributes:
   country name, domain component, organization name, organizational
   unit name, common name, state or province name, distinguished name
   qualifier, and serial number.</t>
      <t>
   In the Authority Key Identifier extension, the keyIdentifier choice
   is always used.  The keyIdentifier is the 64 low-order bits of the
   issuer's subjectPublicKey field.</t>
      <t>
   In the Subject Key Identifier extension, the keyIdentifier is the 64
   low-order bits of the subject's subjectPublicKey field.</t>
      <t>
   In the Key Usage extension, the nonRepudiation bit is never set.</t>
      <t>
   The Certificate Policies extension is always included, and
   policyQualifiers are never used.</t>
      <t>Non-self-signed CA certificates can also include the following:</t>
      <dl newline="false" spacing="normal" indent="3">
        <dt>Name Constraints:</dt>
        <dd> permittedSubtrees constraints are
	  included, and excludedSubstree constraints are not.  Of the
	  GeneralName choices, issuers support the following: rfc822Name,
	  dNSName, uniformResourceIdentifier, and iPAddress (both IPv4 and
	  IPv6) as well as hardwareModuleName, which is defined in <xref target="RFC4108" format="default"/>.  Note that rfc822Name, dNSName, and
	  uniformResourceIdentifier are defined as IA5 strings, and the
	  character sets allowed are not uniform amongst these three name
	  forms.</dd>
        <dt>CRL Distribution Points:</dt>
        <dd> A distributionPoint is
	  always the fullName choice. The uniformResourceIdentifier
	  GeneralName choice is always included, but others can also be used as
	  long as the first element in the sequence of CRLDistributionPoints
	  is the uniformResourceIdentifier choice. The reasons and cRLIssuer
	  fields are never populated.  This extension is never marked as
	  critical.</dd>
        <dt>Authority Information Access:</dt>
        <dd> Only one instance of
	  AccessDescription is included.  accessMethod is id-caIssuers, and
	  accessLocation's GeneralName is always the uniformResourceIdentifier
	  choice.</dd>
        <dt>Extended Key Usage:</dt>
        <dd> EST servers and RAs include the
	  id-kp-cmcRA EKU, and the CAs include the id-kp-cmcCA, which are both
	  specified in <xref target="RFC6402" format="default"/>.</dd>
      </dl>

      <t>
   Issuers include the Authority Clearance Constraints extension <xref target="RFC5913" format="default"/> in
   non-self-signed CA certificates that are issued to non-SOAs; values for the
   Certificate Policy (CP) Object Identifier (OID) and the supported classList
   values are found in the issuer's CP.  Criticality is determined by the
   issuer, and a securityCategories is never included.  Only one instance of
   Clearance is generated in the AuthorityClearanceConstraints sequence.</t>
      <t>
   Issuers include a critical CMS Content Constraints extension
   <xref target="RFC6010" format="default"/> in CA certificates used to issue SOA certificates;
   this is necessary to enable enforcement of scope of the SOA
   authority.  The content types included depend on the packages the
   SOA sources but include key packages (i.e., Encrypted Key Packages,
   Symmetric Key Packages, and Asymmetric Key Packages).</t>
    </section>
    <section anchor="sect-7" numbered="true" toc="default">
      <name>End-Entity Certificate Profile</name>
      <t>
   This section documents requirements for EE signature and key
   establishment certificates in addition to those listed in <xref target="RFC8603" format="default"/>,
   which in turn specifies requirements in addition to those in
   <xref target="RFC5280" format="default"/>.</t>
      <t>
   Only EC-based algorithms are used.</t>
      <t>
   Subject names are composed of the following naming attributes:
   country name, domain component, organization name, organizational
   unit name, common name, state or province name, distinguished name
   qualifier, and serial number.</t>
      <t>
   In the Authority Key Identifier extension, the keyIdentifier choice
   is always used.  The keyIdentifier is the 64 low-order bits of the
   issuer's subjectPublicKey field.</t>
      <t>
   In the Subject Key Identifier extension, the keyIdentifier is the 64
   low-order bits of the subject's subjectPublicKey field.</t>
      <t>
   In the Key Usage extension, signature certificates only assert
   digitalSignature, and key establishment certificates only assert
   keyAgreement.</t>
      <t>
   The Certificate Policies extension is always included, and
   policyQualifiers are never used.</t>
      <t>
   When included, the non-critical CRL Distribution Point extension's
   distributionPoint is always identified by the fullName choice. The
   uniformResourceIdentifier GeneralName choice is always included, but
   others can also be used as long as the first element in the sequence
   of distribution points is the URI choice and it is an HTTP/HTTPS
   scheme. The reasons and cRLIssuer fields are never populated.</t>
      <t>
   The following subsections provide additional requirements for the
   different types of EE certificates.</t>
      <section anchor="sect-7.1" numbered="true" toc="default">
        <name>Source of Authority Certificate Profile</name>
        <t>
This section specifies the format for SOA certificates, i.e., certificates
issued to those entities that are authorized to create, digitally sign,
encrypt, and distribute packages; these certificates are issued by non-PKI
TAs.</t>
        <t>
   The Subject Alternative Name extension is always included.  The
   following choices are supported: rfc822Name, dNSName, ediPartyName,
   uniformResourceIdentifier, or iPAddress (both IPv4 and IPv6).  This
   extension is never critical.</t>
        <t>
   A critical CMS Content Constraints extension <xref target="RFC6010" format="default"/> is included in
   SOA signature certificates.  The content types included depend on the
   packages the SOA sources (e.g., Encrypted Key Packages, Symmetric Key
   Packages, and Asymmetric Key Packages).</t>
      </section>
      <section anchor="sect-7.2" numbered="true" toc="default">
        <name>Client Certificate Profile</name>
        <t>
   This section specifies the format for certificates issued to clients.</t>
        <t>
   A non-critical Subject Directory Attributes extension is always
   included with the following attributes:

        </t>
        <ul spacing="normal">
          <li>Device Owner <xref target="RFC5916" format="default"/></li>
          <li>Clearance Sponsor <xref target="RFC5917" format="default"/></li>
          <li>Clearance <xref target="RFC5913" format="default"/></li>
        </ul>
        <t>
   The following extensions are also included at the discretion of the
   CA:

        </t>

        <ul spacing="normal">
          <li> The Authority Information Access extension with only one instance of
AccessDescription included. accessMethod is id-caIssuers, and
accessLocation’s GeneralName is always the uniformResourceIdentifier
choice.
</li>
          <li>A non-critical Subject Alternative Name extension that includes
	  the hardwareModuleName form <xref target="RFC4108" format="default"/>, rfc822Name, or
	  uniformResourceIdentifier.</li>
          <li>A critical Subject Alternative Name extension that includes
	  dNSName, rfc822Name, ediPartyName, uniformResourceIdentifier, or
	  iPAddress (both IPv4 and IPv6).</li>
        </ul>
      </section>
    </section>
    <section anchor="sect-8" numbered="true" toc="default">
      <name>Relying Party Applications</name>
      <t>
   This section documents requirements for Relying Parties (RPs) in
   addition to those listed in <xref target="RFC8603" format="default"/>, which in turn specifies
   requirements in addition to those in <xref target="RFC5280" format="default"/>.</t>
      <t>
   Only EC-based algorithms are used.</t>
      <t>
   RPs support the Authority Key Identifier and the Subject Key
   Identifier extensions.</t>
      <t>
   RPs should support the following extensions: CRL Distribution Points,
   Authority Information Access, Subject Directory Attribute,  Authority
   Clearance Constraints, and CMS Content Constraints.</t>
      <t>
   Within the Subject Directory Attribute extension, RPs should support
   the Clearance Sponsor, Clearance, and Device Owner attributes.</t>
      <t>
   RPs support the id-kp-cmcRA and id-kp-cmcCA EKUs.</t>
      <t>
   Failure to support extensions in this section might limit the
   suitability of a device for certain applications.</t>
    </section>
    <section anchor="sect-9" numbered="true" toc="default">
      <name>CRL Profile</name>
      <t>
   This section documents requirements for CRLs in addition to those
   listed in <xref target="RFC8603" format="default"/>, which in turn specifies requirements in addition
   to those in <xref target="RFC5280" format="default"/>.</t>
      <t>
   Only EC-based algorithms are used.</t>
      <t>
   Two types of CRLs are produced: complete base CRLs and partitioned
   base CRLs.</t>
      <t>
   crlEntryExtensions are never included, and the reasons and cRLIssuer
   fields are never populated.</t>
      <t>All CRLs include the following CRL extensions:

      </t>
      <ul spacing="normal">
        <li>The Authority Key Identifier extension: The keyIdentifier is the
	  64 low-order bits of the issuer's subjectPublicKey field.</li>
        <li>As per <xref target="RFC5280" format="default"/>, the CRL Number extension.</li>
      </ul>

      <t>
   The only other extension included in partitioned base CRLs is the
   Issuing Distribution Point extension.  The distributionPoint is
   always identified by the fullName choice. The
   uniformResourceIdentifier GeneralName choice is always included, but
   others can also be used as long as the first element in the sequence
   of distribution points is the uniformResourceIdentifier choice and the
   scheme is an HTTP/HTTPS scheme. All other fields are omitted.</t>
    </section>
    <section anchor="sect-10" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>
   This document has no IANA actions.</t>
    </section>
    <section anchor="sect-11" numbered="true" toc="default">
      <name>Security Considerations</name>

      <t>
   This entire document is about security.  This document profiles the
   use of many protocols and services: EST, CMC, and PKCS#10/#7/#12 as
   well as certificates, CRLs, and their extensions <xref target="RFC5280" format="default"/>.  
 These have been cited throughout this document, and the
 specifications identified by those citations should be consulted
 for security considerations related to implemented protocols
 and services.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2046.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2985.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2986.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3739.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4108.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5274.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5652.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5911.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5912.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5913.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5915.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5916.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5917.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5958.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5959.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6010.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6031.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6032.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6033.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6160.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6161.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6162.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6268.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6402.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7030.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7191.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7192.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7292.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7906.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8295.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8603.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8755.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8756.xml"/>

        <reference anchor="XML" target="https://www.w3.org/TR/2008/REC-xml-20081126/">
          <front>
            <title>Extensible Markup Language (XML) 1.0 (Fifth Edition)</title>
            <author initials="T." surname="Bray" fullname="Tim Bray">
	</author>
            <author initials="J." surname="Paoli" fullname="Jean Paoli">
	</author>
            <author initials="C.M." surname="Sperberg-McQueen" fullname="C.M. Sperberg-McQueen">
	</author>
            <author initials="E." surname="Maler" fullname="Eve Maler">
	</author>
            <author initials="F." surname="Yergeau" fullname="François Yergeau">
	</author>
            <date month="November" year="2008"/>
          </front>
         <seriesInfo name="World Wide Web Consortium Recommendation" value="REC-xml-20081126"/>
        </reference>

        <reference anchor="SP-800-59" target="https://csrc.nist.gov/publications/detail/sp/800-59/final">
          <front>
            <title>Guideline for Identifying an Information System as a National Security System</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date month="August" year="2003"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/NIST.SP.800-59"/>
          <seriesInfo name="NIST Special Publication" value="800-59"/>
        </reference>

<reference anchor='RFC9151' target="https://www.rfc-editor.org/info/rfc9151">
<front>
<title>Commercial National Security Algorithm (CNSA) Suite Profile for TLS and DTLS 1.2 and 1.3</title>

<author initials='D.' surname='Cooley' fullname='Dorothy Cooley'>
    <organization />
</author>

<date month='April' year='2022' />
</front>
<seriesInfo name="RFC" value="9151"/>
<seriesInfo name="DOI" value="10.17487/RFC9151"/>
</reference>

      </references>
      <references>
        <name>Informative References</name>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
      </references>
    </references>
  </back>

</rfc>
