<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="info" docName="draft-mittal-est-coap-no-cert-00" indexInclude="true" ipr="trust200902" submissionType="independent" xml:lang="en">
<front>
    <title abbrev="EST-coaps-no-cert">EST-coaps Enrollment Using Device-Unique Symmetric Keys for Field Devices without Initial Certificates</title>
    <seriesInfo name="Internet-Draft" value="draft-mittal-est-coap-no-cert-00"/>
    <author fullname="Narinder Mittal" initials="N" surname="Mittal">
      <organization showOnFrontPage="true">Landis+Gyr</organization>
      <address>
        <email>narinder.mittal@landisgyr.com</email>
      </address>
    </author>
	<author fullname="Chris Hett" initials="C" surname="Hett">
      <organization showOnFrontPage="true">Landis+Gyr</organization>
      <address>
        <email>chris.hett@landisgyr.com</email>
      </address>
    </author>
    <date month="10" year="2026"/>
    <area>Security</area>
	<keyword>EST</keyword>
	<keyword>EST-coaps</keyword>
	<keyword>DTLS</keyword>
	<keyword>PSK</keyword>
	<keyword>Certificate Enrollment</keyword>
    <abstract pn="section-abstract">
		<t indent="0" pn="section-abstract-1">This document specifies a profile for Enrollment over Secure Transport using secure CoAP, where the EST-coaps client is a field device that does not possess an initial device certificate, manufacturer certificate, or other certificates usable for DTLS client authentication. Instead, the device is authenticated during the DTLS handshake using a device-unique symmetric key or a pre-shared key derived from that device-unique key.</t>
		<t indent="0" pn="section-abstract-2">This profile is intended for already registered and operational devices that do not possess a certificate suitable for EST-coaps client authentication but do possess a device-unique symmetric key that can be used for initial authentication during certificate enrollment. The mechanism preserves EST certificate enrollment semantics while replacing the initial certificate-based DTLS client authentication requirement with PSK-based DTLS authentication. <xref target="RFC9148" format="default" sectionFormat="of" derivedContent="RFC9148"/> defines EST over secure CoAP and requires client authentication for EST-coaps functions, while <xref target="RFC7030" format="default" sectionFormat="of" derivedContent="RFC7030"/> permits certificate-less TLS authentication scenarios for EST when suitable shared credentials are available.</t>
    </abstract>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-applicability">Applicability Statement</xref></t>
			<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t indent="0" pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-trustassumptions">Trust Assumptions</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-securityconstraints">Security Constraints</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-deviceuniquekeyrequirements">Device-Unique Key Requirement</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-nofleetwidepsk">No Fleet-Wide PSK</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.3">
                <t indent="0" pn="section-toc.1-1.4.2.3.1"><xref derivedContent="4.3" format="counter" sectionFormat="of" target="section-4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-deviceidentitybinding">Device Identity Binding</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.4">
                <t indent="0" pn="section-toc.1-1.4.2.4.1"><xref derivedContent="4.4" format="counter" sectionFormat="of" target="section-4.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-keystorage">Key Storage</xref></t>
				 <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.4.2">
				  <li pn="section-toc.1-1.4.2.4.2.1">
					<t indent="0" pn="section-toc.1-1.4.2.4.2.2"><xref derivedContent="4.4.1" format="counter" sectionFormat="of" target="section-4.4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-protocollayers">Backend Trust Model</xref></t>
				  </li>
            </ul>
              </li>
              <li pn="section-toc.1-1.4.2.5">
                <t indent="0" pn="section-toc.1-1.4.2.5.1"><xref derivedContent="4.5" format="counter" sectionFormat="of" target="section-4.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-keyderivation">Separation of Long-Term Device Key and DTLS PSK</xref></t>
              </li>
            </ul>
          </li>
		  <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-protocoldesign">Protocol Design</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2">
              <li pn="section-toc.1-1.5.2.1">
                <t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-protocollayers">Protocol Layers</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.2">
                <t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-estfunctions">EST Functions</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.3">
                <t indent="0" pn="section-toc.1-1.5.2.3.1"><xref derivedContent="5.3" format="counter" sectionFormat="of" target="section-5.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-enrollmentflow">Enrollment Flow</xref></t>
              </li>
            </ul>
          </li>
		  
		  <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dtlsprofile">DTLS Profile and Cipher Suite Recommendations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dtlsversion">DTLS Version</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dtls13cipher">Recommended DTLS 1.3 Cipher Suite</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.3">
                <t indent="0" pn="section-toc.1-1.6.2.3.1"><xref derivedContent="6.3" format="counter" sectionFormat="of" target="section-6.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dtls12cipher">Recommended DTLS 1.2 Cipher Suite</xref></t>
              </li>
            </ul>
          </li>
		  
		  <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-authorization">Authorization Requirements</xref></t>
          </li>
		  
		   <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-pop">Proof-of-Possession</xref></t>
          </li>
       
	    <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-deploymentlimitations">Deployment Limitations</xref></t>
          </li>
       
	   
	   <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.10.2">
              <li pn="section-toc.1-1.10.2.1">
                <t indent="0" pn="section-toc.1-1.10.2.1.1"><xref derivedContent="10.1" format="counter" sectionFormat="of" target="section-10.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sec-uniquekey">Unique Symmetric Keys Are Mandatory</xref></t>
              </li>
              <li pn="section-toc.1-1.10.2.2">
                <t indent="0" pn="section-toc.1-1.10.2.2.1"><xref derivedContent="10.2" format="counter" sectionFormat="of" target="section-10.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sec-entrophy">PSK Entropy</xref></t>
              </li>
              <li pn="section-toc.1-1.10.2.3">
                <t indent="0" pn="section-toc.1-1.10.2.3.1"><xref derivedContent="10.3" format="counter" sectionFormat="of" target="section-10.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sec-fs">Forward Secrecy</xref></t>
              </li>
			   <li pn="section-toc.1-1.10.2.4">
                <t indent="0" pn="section-toc.1-1.10.2.4.1"><xref derivedContent="10.4" format="counter" sectionFormat="of" target="section-10.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sec-replay">Replay and DoS Protection</xref></t>
              </li>
			   <li pn="section-toc.1-1.10.2.5">
                <t indent="0" pn="section-toc.1-1.10.2.5.1"><xref derivedContent="10.5" format="counter" sectionFormat="of" target="section-10.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sec-rtt">No 0-RTT Enrollment</xref></t>
              </li>
			   <li pn="section-toc.1-1.10.2.6">
                <t indent="0" pn="section-toc.1-1.10.2.6.1"><xref derivedContent="10.6" format="counter" sectionFormat="of" target="section-10.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sec-backend">Backend Key Retrieval</xref></t>
              </li>
			   <li pn="section-toc.1-1.10.2.7">
                <t indent="0" pn="section-toc.1-1.10.2.7.1"><xref derivedContent="10.7" format="counter" sectionFormat="of" target="section-10.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sec-transition">Transition to Certificate-Based Authentication</xref></t>
              </li>
			   <li pn="section-toc.1-1.10.2.8">
                <t indent="0" pn="section-toc.1-1.10.2.8.1"><xref derivedContent="10.8" format="counter" sectionFormat="of" target="section-10.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sec-revocation">Device Credential Revocation</xref></t>
              </li>
            </ul>
          </li>
		   <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" format="counter" sectionFormat="of" target="section-11"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
		  
		  
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="intro" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">Enrollment over Secure Transport (EST), defined in <xref target="RFC7030" format="default" sectionFormat="of" derivedContent="RFC7030"/>, provides certificate enrollment over a secure transport and places the EST server logically between a Certification Authority and the client, performing functions commonly associated with a Registration Authority. <xref target="RFC9148" format="default" sectionFormat="of" derivedContent="RFC9148"/> defines EST-coaps, which transports EST payloads over secure CoAP using DTLS for constrained IoT environments.</t>
	  
      <t indent="0" pn="section-1-2"><xref target="RFC9148" format="default" sectionFormat="of" derivedContent="RFC9148"/> specifies certificate-based client authentication for EST-coaps, where EST-coaps client authentication is performed using a client certificate during the DTLS handshake. Devices that are already registered and operational may not possess a certificate suitable for EST-coaps client authentication. Such devices are therefore unable to use the certificate-based authentication model described in <xref target="RFC9148" format="default" sectionFormat="of" derivedContent="RFC9148"/> for initial enrollment. This profile assumes that an external trust relationship between the device and the deployment ecosystem already exists before enrollment and that the device has been registered in an authoritative backend system.</t>
	  
      <t indent="0" pn="section-1-3">This document defines a constrained profile in which such devices authenticate to the EST-coaps server by using a DTLS PSK authentication. The PSK is either the device-unique symmetric key itself or a derived key generated from that device-unique symmetric key using a cryptographically approved key derivation function. The EST-coaps server or registrar obtains the corresponding keying material from an authoritative device registry, or key management system using the PSK identity presented by the device.
      </t>
	  
      <t indent="0" pn="section-1-4">This document does not modify EST enrollment semantics, certificate issuance procedures, proof-of-possession requirements, or certification authority policy. It defines an alternative EST-coaps authentication profile for devices that do not possess a certificate suitable for DTLS client authentication. </t>
	  
	  
	  <t indent="0" pn="section-1-5">This profile is intended to complement, rather than replace, the certificate-based authentication model defined in RFC 9148. Implementations that support certificate-based EST-coaps authentication remain fully compliant without support for this profile.</t>

	  <t indent="0" pn="section-1-6">This document only defines an alternative client authentication mechanism for the initial EST-coaps enrollment transaction.</t>

    </section>
    <section anchor="terminology" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-terminology">Terminology</name>
      <t indent="0" pn="section-2-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
    described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> 
    when, and only when, they appear in all capitals.
      </t>
      <t indent="0" pn="section-2-2">The terminology from <xref target="RFC7030" format="default" sectionFormat="of" derivedContent="RFC7030"/> and <xref target="RFC9148" format="default" sectionFormat="of" derivedContent="RFC9148"/> applies. This document additionally defines the following terms: </t>
	  <table anchor="definitions" align="center" pn="table-1">
          <name slugifiedName="name-definitions">Definitions</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Term</th>
              <th align="left" colspan="1" rowspan="1">Definition</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1"> Field Device  </td>
              <td align="left" colspan="1" rowspan="1"> A device that has already been deployed, registered, and is operational in a production network. </td>
            </tr>
			<tr>
              <td align="left" colspan="1" rowspan="1"> No Initial Certificate Device  </td>
              <td align="left" colspan="1" rowspan="1"> A fielded device that does not possess an IDevID, manufacturer certificate, birth certificate, or other certificate usable for the initial EST-coaps DTLS client authentication. </td>
            </tr>
			<tr>
              <td align="left" colspan="1" rowspan="1"> Device-Unique Symmetric Key  </td>
              <td align="left" colspan="1" rowspan="1"> A symmetric secret provisioned uniquely per device and known to an authoritative backend system. </td>
            </tr>
			<tr>
              <td align="left" colspan="1" rowspan="1"> PSK Identity </td>
              <td align="left" colspan="1" rowspan="1"> An identifier sent by the device during the DTLS PSK handshake that allows the server to locate the corresponding device-unique key or derived PSK. </td>
            </tr>
			<tr>
              <td align="left" colspan="1" rowspan="1"> Derived Enrollment PSK  </td>
              <td align="left" colspan="1" rowspan="1"> A PSK derived from the device-unique symmetric key using a key derivation function and protocol-specific context. </td>
            </tr>
			<tr>
              <td align="left" colspan="1" rowspan="1"> Authoritative Device Registry  </td>
              <td align="left" colspan="1" rowspan="1"> A backend system, or key management service that binds each device identity to its unique symmetric key and authorization state. </td>
            </tr>
 
          </tbody>
        </table>
    </section>
    <section anchor="applicability" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-applicability">Applicability Statement</name>
      <t indent="0" pn="section-3-1">This profile applies only when all of the following conditions are true: </t>
      <ol spacing="normal" indent="3" pn="section-3-2" type="1">
        <li pn="section-3-2.1">The device is already registered in an authoritative backend system. </li>
        <li pn="section-3-2.2">The device is already operational or has previously been authenticated by the deployment ecosystem. </li>
		<li pn="section-3-2.3">The device does not have an initial certificate suitable for DTLS client authentication. </li>
		<li pn="section-3-2.4">The device possesses a symmetric key that is unique to that device. </li>
		<li pn="section-3-2.5">The backend can securely retrieve or derive the same PSK material based on the received PSK identity. </li>
		<li pn="section-3-2.6">The goal is to obtain an operational certificate using EST or EST-coaps. </li>
      </ol>
	  <t indent="0" pn="section-3-3">This profile is <strong>not</strong> intended for devices that share a common fleet-wide symmetric key, rather this profile is intended for devices that have already established trust relationships with the deployment ecosystem through prior registration or deployment-specific provisioning procedures. </t>

      <section anchor="trustassumptions" numbered="true" toc="include" removeInRFC="false" pn="section-3.1">
      <name slugifiedName="name-trustassumptions">Trust Assumptions</name>
      <t indent="0" pn="section-3.1-1">This profile assumes that each device has been provisioned with a symmetric key that is unique to that device and that the corresponding keying material is available to an authoritative backend system. </t>
     <t indent="0" pn="section-3.1-2">The mechanisms used to generate, provision, distribute, or protect the device-unique symmetric key are outside the scope of this document. </t>
	  <t indent="0" pn="section-3.1-3">This profile further assumes that the backend system maintains an authoritative binding between the device identity, device status, and associated symmetric key material. The security of this profile depends on the integrity and confidentiality of that binding. </t>
   
    </section>
   
    </section>

	<section anchor="securityconstraints" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-securityconstraints">Security Constraints</name>
      <section anchor="deviceuniquekeyrequirements" numbered="true" toc="include" removeInRFC="false" pn="section-4.1">
      <name slugifiedName="name-deviceuniquekeyrequirements">Device-Unique Key Requirement</name>
	  
	  <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4-1.1">
        <li pn="section-4.1.2">Each device <bcp14>MUST</bcp14> be provisioned with a symmetric key that is cryptographically unique to that device. </li>
		<li pn="section-4.1.3">A symmetric key <bcp14>MUST NOT</bcp14> be shared across multiple devices, product batches, manufacturing lots, utility deployments, or customer environments. </li>
<li pn="section-4.1.4">A device-unique key <bcp14>MUST</bcp14> have sufficient entropy to resist offline guessing attacks. TLS 1.3 explicitly warns that low-entropy PSKs or password-derived PSKs are vulnerable to brute-force or dictionary attacks based on observable PSK binders. </li>
<li pn="section-4.1.5">If a derived enrollment PSK is used, it <bcp14>MUST</bcp14> be derived using a cryptographically approved KDF that includes protocol-specific context, device identity, intended use, and deployment-specific context to prevent cross-protocol and cross-environment key reuse. Implementations <bcp14>SHOULD</bcp14> use HKDF, as defined by <xref target="RFC5869" format="default" sectionFormat="of" derivedContent="RFC5869"/>, or an equivalent NIST-approved key derivation mechanism. </li>

      </ul>
	  
    </section>
   
      <section anchor="nofleetwidepsk" numbered="true" toc="include" removeInRFC="false" pn="section-4.2">
      <name slugifiedName="name-nofleetwidepsk">No Fleet-Wide PSK</name>
	   
	  
      <t indent="0" pn="section-4.2.1">A fleet-wide PSK <bcp14>MUST NOT</bcp14> be used. Compromise of a fleet-wide PSK would allow impersonation of all devices sharing that key and would prevent reliable attribution of enrollment requests to individual devices. </t>
   
    </section>
	
	<section anchor="deviceidentitybinding" numbered="true" toc="include" removeInRFC="false" pn="section-4.3">
      <name slugifiedName="name-deviceidentitybinding">Device Identity Binding</name>
	   
	  
      <t indent="0" pn="section-4.3.1">The PSK identity <bcp14>MUST</bcp14> uniquely identify the device or uniquely identify a backend record that maps to one device. </t>
         <t indent="0" pn="section-4.3.2">The EST-coaps server or registrar <bcp14>MUST</bcp14> verify that: </t>

<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.3.3">
        <li pn="section-4.3.4">the PSK identity maps to exactly one registered device. </li>
 <li pn="section-4.3.5">the device is authorized for certificate enrollment. </li>
  <li pn="section-4.3.6">the device has not been revoked, retired, replaced, or marked compromised. </li>

      </ul>
	  <t indent="0" pn="section-4.3.7">The syntax and structure of the PSK identity are deployment specific and are outside the scope of this specification. This profile does not define a mandatory PSK identity format. Profiles or deployments adopting this specification <bcp14>MAY</bcp14> define a mandatory PSK identity format to ensure interoperability among participating implementations.</t>
    </section>
	
   
      <section anchor="keystorage" numbered="true" toc="include" removeInRFC="false" pn="section-4.4">
      <name slugifiedName="name-keystorage">Key Storage</name>
	   
	  
      <t indent="0" pn="section-4.4-1">Device-unique symmetric keys <bcp14>MUST</bcp14> be stored in a protected device storage location appropriate to the device security profile. </t>
         <t indent="0" pn="section-4.4-2">Backend copies of device-unique keys <bcp14>SHOULD</bcp14> be protected using an HSM, KMS, or equivalent key protection service. Access to device keys <bcp14>MUST</bcp14> be audited and limited to services that require the key for enrollment authentication. </t>
	
		<section anchor="backendtrustmodel" numbered="true" toc="include" removeInRFC="false" pn="section-4.4.1">
      <name slugifiedName="name-backendtrustmodel">Backend Trust Model</name>
	   
	  
      <t indent="0" pn="section-4.4.1-1">The security of this profile depends upon the integrity, availability, and confidentiality of the authoritative device registry or key management system. The authoritative backend system <bcp14>MUST</bcp14> maintain a binding between device identity, enrollment status, lifecycle status and key material. Communication between the EST-coaps server or registrar and the authoritative backend system <bcp14>MUST</bcp14> be mutually authenticated and integrity protected. Access to device key material <bcp14>MUST</bcp14> be restricted to authorized services performing enrollment authentication functions. Deployments <bcp14>SHOULD</bcp14> ensure that device key retrieval, key usage, authorization decisions, enrollment approvals, and enrollment rejections are auditable. Unauthorized modification of backend device registrations can compromise enrollment authorization decisions. Deployments <bcp14>SHOULD</bcp14> therefore implement access controls, auditing, and change-management procedures appropriate for the operational environment.</t>
    </section>
	
	
    </section>
	
	   
      <section anchor="keyderivation" numbered="true" toc="include" removeInRFC="false" pn="section-4.5">
      <name slugifiedName="name-keyderivation">Separation of Long-Term Device Key and DTLS PSK</name>
 
      <t indent="0" pn="section-4.5.1">The long-term device-unique key <bcp14>SHOULD NOT</bcp14> be used directly as the DTLS PSK. Implementations <bcp14>SHOULD</bcp14> derive a dedicated enrollment PSK from the device-unique key using a cryptographically approved key derivation function. Direct use of the long-term device-unique key <bcp14>SHOULD</bcp14> only be used when device constraints or deployment limitations prevent derivation of a dedicated enrollment credential.</t>
	   <t indent="0" pn="section-4.5.2">DTLS PSK <bcp14>SHOULD</bcp14> be derived from the long-term device key using context such as: </t>
     <t indent="0" pn="section-4.5.3">Derived-Enrollment-PSK =
KDF(DeviceUniqueKey, label = "EST-coaps initial enrollment PSK", context = DeviceIdentity || DeploymentId || ESTServerId || ProtocolVersion) </t>
 <t indent="0" pn="section-4.5.4">This separation reduces the risk that compromise or exposure of an enrollment PSK impacts other protocols or device functions. </t>
    </section>
	
	
    </section>

	 <section anchor="protocoldesign" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-protocoldesign">Protocol Design</name>
	  
	   <section anchor="protocollayers" numbered="true" toc="include" removeInRFC="false" pn="section-5.1">
      <name slugifiedName="name-protocollayers">Protocol Layers</name>
      <t indent="0" pn="section-5.1-1">This profile uses the same layering model as EST-coaps, except that DTLS client authentication is performed using PSK authentication rather than a client certificate. </t>
     <figure align="center" anchor="est-coaps-psk-layers" suppress-title="false" pn="figure-5-1">
        <name slugifiedName="name-est-coaps-psk-protocol-layers">EST-coaps PSK Protocol Layers</name>
        <artwork align="center" pn="section-5.1-2">
+------------------------------------------------+
|    EST request/response messages               |
+------------------------------------------------+
|    CoAP for message transfer and signaling     |
+------------------------------------------------+
|    DTLS with device-unique PSK authentication  |
+------------------------------------------------+
|    UDP					 |
+------------------------------------------------+
</artwork>
      </figure>
	  <t indent="0" pn="section-5.1-3"><xref target="RFC9148" format="default" sectionFormat="of" derivedContent="RFC9148"/> defines EST-coaps as EST payloads over CoAP protected by DTLS, and it uses CoAP Block-Wise Transfer for large EST payloads to avoid IP fragmentation. </t>
   
    </section>
	
	
      <section anchor="estfunctions" numbered="true" toc="include" removeInRFC="false" pn="section-5.2">
      <name slugifiedName="name-estfunctions">EST Functions</name>
      <t indent="0" pn="section-5.2-1">The following <xref target="RFC9148" format="default" sectionFormat="of" derivedContent="RFC9148"/> EST-coaps functions remain applicable: </t>
	   <table anchor="est-uri" align="center" pn="table-2">
          <name slugifiedName="name-est-coaps-functions">EST-coaps Functions</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">EST Function</th>
              <th align="left" colspan="1" rowspan="1">EST-coaps Short URI</th>
			  <th align="left" colspan="1" rowspan="1">This Profile</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1"> CA certificate retrieval  </td>
              <td align="left" colspan="1" rowspan="1"> /crts </td>
			  <td align="left" colspan="1" rowspan="1"> <bcp14>MUST</bcp14> support </td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1"> Simple enrollment  </td>
              <td align="left" colspan="1" rowspan="1"> /sen </td>
			  <td align="left" colspan="1" rowspan="1"> <bcp14>MUST</bcp14> support </td>
            </tr>
			<tr>
              <td align="left" colspan="1" rowspan="1"> Simple re-enrollment  </td>
              <td align="left" colspan="1" rowspan="1"> /sren </td>
			  <td align="left" colspan="1" rowspan="1"> <bcp14>SHOULD</bcp14> support after operational certificate issuance </td>
            </tr>
			<tr>
              <td align="left" colspan="1" rowspan="1"> CSR attributes  </td>
              <td align="left" colspan="1" rowspan="1"> /att </td>
			  <td align="left" colspan="1" rowspan="1"> <bcp14>SHOULD</bcp14> support </td>
            </tr>
			<tr>
              <td align="left" colspan="1" rowspan="1"> Server-side key generation  </td>
              <td align="left" colspan="1" rowspan="1"> /skg or /skc </td>
			  <td align="left" colspan="1" rowspan="1"> <bcp14>NOT RECOMMENDED</bcp14> for this profile </td>
            </tr>
          </tbody>
        </table>
	  <t indent="0" pn="section-5.2-2"><xref target="RFC9148" format="default" sectionFormat="of" derivedContent="RFC9148"/> maps EST operations such as /cacerts, /simpleenroll, /simplereenroll, and /csrattrs to shorter EST-coaps URI paths such as /crts, /sen, /sren, and /att. </t>
   
    </section>
	
	 <section anchor="enrollmentflow" numbered="true" toc="include" removeInRFC="false" pn="section-5.3">
      <name slugifiedName="name-enrollmentflow">Enrollment Flow</name>
	  <t indent="0" pn="section-5.3-1">A typical flow is: </t>
   
	 <ol spacing="normal" indent="3" pn="section-5.3-2" type="1">
        <li pn="section-5.3-2.1">The device initiates a DTLS connection to the EST-coaps registrar or server. </li>
        <li pn="section-5.3-2.2">The device sends its PSK identity in the DTLS handshake. The PSK identity serves only as a lookup identifier and <bcp14>MUST NOT</bcp14> be treated as proof of device identity in the absence of successful PSK authentication. </li>
		<li pn="section-5.3-2.3">The server uses the PSK identity to query the authoritative device registry. </li>
		<li pn="section-5.3-2.4">The registry returns the device-specific PSK or sufficient material to derive it. </li>
		<li pn="section-5.3-2.5">The DTLS handshake completes PSK authentication. </li>
		<li pn="section-5.3-2.6">The device sends an EST /sen request containing a CSR. </li>
		<li pn="section-5.3-2.7">The EST-coaps server or registrar <bcp14>MUST</bcp14> verify that the authenticated PSK identity is authorized to obtain the certificate identifiers requested within the CSR Subject and Subject Alternative Name extensions. EST server <bcp14>MUST</bcp14> reject enrollment requests containing Subject or Subject Alternative Name values that are not associated with the authenticated device.</li>
		<li pn="section-5.3-2.8">The CA issues the operational certificate.</li>
		<li pn="section-5.3-2.9">After successful certificate enrollment, implementations <bcp14>SHOULD</bcp14> transition from PSK-based authentication to certificate-based authentication for subsequent EST operations, including re-enrollment. The PSK authentication mechanism defined in this profile is intended primarily for initial enrollment of devices that do not possess a suitable certificate for EST-coaps authentication. </li>
      </ol>
    </section>
	
   
    </section>
	
	
	
	 <section anchor="dtlsprofile" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-dtlsprofile">DTLS Profile and Cipher Suite Recommendations</name>
	  
	   <section anchor="dtlsversion" numbered="true" toc="include" removeInRFC="false" pn="section-6.1">
      <name slugifiedName="name-dtlsversion">DTLS Version</name>
      <t indent="0" pn="section-6.1-1">Implementations <bcp14>SHOULD</bcp14> support DTLS 1.3 as specified in <xref target="RFC9147" format="default" sectionFormat="of" derivedContent="RFC9147"/>. DTLS 1.3 is based on TLS 1.3 and provides equivalent security properties except for order protection and non-replayability differences inherent to datagram transport.  </t>
	   <t indent="0" pn="section-6.1-2">Implementations that require interoperability with existing constrained devices <bcp14>MAY</bcp14> support DTLS 1.2 as specified in <xref target="RFC6347" format="default" sectionFormat="of" derivedContent="RFC6347"/>. <xref target="RFC9147" format="default" sectionFormat="of" derivedContent="RFC9147"/> obsoletes <xref target="RFC6347" format="default" sectionFormat="of" derivedContent="RFC6347"/>, so DTLS 1.3 should be the preferred version for new implementations.   </t>

    </section>
	
	
      <section anchor="dtls13cipher" numbered="true" toc="include" removeInRFC="false" pn="section-6.2">
      <name slugifiedName="name-dtls13cipher">Recommended DTLS 1.3 Cipher Suite</name>
      <t indent="0" pn="section-6.2-1">For DTLS 1.3, the following cipher suite is <bcp14>RECOMMENDED</bcp14>: </t>
	  <t indent="0" pn="section-6.2-2">TLS_AES_128_GCM_SHA256 or TLS_AES_256_GCM_SHA384</t>
   	 <t indent="0" pn="section-6.2-5">If the system uses PSK, implementations <bcp14>SHOULD</bcp14> use PSK with ephemeral Diffie-Hellman key establishment, also referred to as psk_dhe_ke, rather than PSK-only mode. TLS 1.3 allows PSKs to be used either alone or with (EC)DHE, and use with (EC)DHE provides forward secrecy while PSK-only does not. </t>
	 <t indent="0" pn="section-6.2-6"><bcp14>Recommended DTLS 1.3 profile:</bcp14> </t>
	
	 <sourcecode type="core-link-format" markers="false" pn="section-6.2-7">
DTLS 1.3
Key Exchange Mode: psk_dhe_ke
Cipher Suite: TLS_AES_128_GCM_SHA256
Alternative: TLS_AES_256_GCM_SHA384
Group: X25519 or secp256r1
0-RTT: MUST NOT be used for enrollment requests
</sourcecode>

    </section>
	
	 <section anchor="dtls12cipher" numbered="true" toc="include" removeInRFC="false" pn="section-6.3">
      <name slugifiedName="name-dtls12cipher">Recommended DTLS 1.2 Cipher Suite</name>
      <t indent="0" pn="section-6.3-1">For DTLS 1.2, the following cipher suites are <bcp14>RECOMMENDED</bcp14>: </t>
	  <t indent="0" pn="section-6.3-2">TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 or TLS_DHE_PSK_WITH_AES_256_GCM_SHA384</t>
   	 <t indent="0" pn="section-6.3-5">As defined by <xref target="RFC5487" format="default" sectionFormat="of" derivedContent="RFC5487"/>, ECDHE-PSK cipher suites are <bcp14>RECOMMENDED</bcp14> to provide ephemeral key establishment, AEAD protection, and security characteristics appropriate for constrained environments. </t>
	 <t indent="0" pn="section-6.3-6"><bcp14>Recommended DTLS 1.2 profile:</bcp14> </t>
	
	 <sourcecode type="core-link-format" markers="false" pn="section-6.3-7">
DTLS 1.2
Cipher Suite: TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 
Alternative: TLS_DHE_PSK_WITH_AES_256_GCM_SHA384
Group: secp256r1; X25519 where supported
Compression: MUST NOT be used
Renegotiation: MUST NOT be used for enrollment
</sourcecode>

    </section>
	

    </section>
	
	
	 <section anchor="authorization" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-authorization">Authorization Requirements</name>
	  
	   <t indent="0" pn="section-7-1">Successful PSK authentication proves possession of the device’s symmetric key, but it does not by itself prove that the device should receive a certificate. Therefore, the EST-coaps server <bcp14>MUST</bcp14> perform authorization checks before forwarding or approving the CSR. If any authorization check defined in this section fails, the EST-coaps server or registrar <bcp14>MUST</bcp14> reject the enrollment request and <bcp14>MUST NOT</bcp14> forward the CSR to the Certification Authority.</t>
 <t indent="0" pn="section-7-2">Authorization checks described in this section are applied during the enrollment flow defined in <xref target="section-5.3" format="default" sectionFormat="of" derivedContent="section-5.3"/>. The authorization decision <bcp14>MUST</bcp14> include:
 </t>
	   <table anchor="auth_req" align="center" pn="table-3">
          <name>Authorization Requirements</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1"><bcp14>Check</bcp14></th>
              <th align="left" colspan="1" rowspan="1"><bcp14>Requirement</bcp14></th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">Device registration</td>
              <td align="left" colspan="1" rowspan="1">PSK identity maps to a known registered device</td>
            </tr>
			<tr>
              <td align="left" colspan="1" rowspan="1">Key uniqueness</td>
              <td align="left" colspan="1" rowspan="1">Device key is unique and not fleet-shared</td>
            </tr>
			<tr>
              <td align="left" colspan="1" rowspan="1">Device state</td>
              <td align="left" colspan="1" rowspan="1">Device is active and not revoked, decommissioned, replaced, or compromised</td>
            </tr>
			<tr>
              <td align="left" colspan="1" rowspan="1">CSR identity</td>
              <td align="left" colspan="1" rowspan="1">CSR subject and SAN values match the registered device identity</td>
            </tr>
			<tr>
              <td align="left" colspan="1" rowspan="1">Certificate profile</td>
              <td align="left" colspan="1" rowspan="1">Requested certificate profile is allowed for that device class</td>
            </tr>
			<tr>
              <td align="left" colspan="1" rowspan="1">Rate limit</td>
              <td align="left" colspan="1" rowspan="1">Enrollment attempts are rate limited per device identity and source</td>
            </tr>
			<tr>
              <td align="left" colspan="1" rowspan="1">Audit</td>
              <td align="left" colspan="1" rowspan="1">Successful and failed enrollment attempts are logged</td>
            </tr>
            
          </tbody>
        </table>
	  <t indent="0" pn="section-7-3"><xref target="RFC7030" format="default" sectionFormat="of" derivedContent="RFC7030"/> states that the EST server is responsible for authenticating and authorizing the client before acting on the request, and that certificate issuance remains controlled by local CA policy. </t>
   
    </section>
	
	
	<section anchor="pop" numbered="true" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-pop">Proof-of-Possession</name>
	  
	   <t indent="0" pn="section-8-1">The device <bcp14>MUST</bcp14> generate the key pair for the requested operational certificate unless server-side key generation is explicitly required by deployment policy.
 </t>
 <t indent="0" pn="section-8-2">The CSR <bcp14>MUST</bcp14> include proof-of-possession by signing the CSR with the private key corresponding to the public key being certified. <xref target="RFC7030" format="default" sectionFormat="of" derivedContent="RFC7030"/> describes proof-of-possession and linking identity to proof-of-possession using TLS channel binding information.
 </t>
 <t indent="0" pn="section-8-3">For DTLS 1.2, implementations <bcp14>SHOULD</bcp14> bind the CSR to the authenticated DTLS session using the applicable channel-binding approach.
 </t>
 <t indent="0" pn="section-8-4">For DTLS 1.3, implementations <bcp14>SHOULD</bcp14> use exporter-based channel binding where supported, since <xref target="RFC9148" format="default" sectionFormat="of" derivedContent="RFC9148"/> notes that TLS 1.3 lacks the same tls-unique channel binding used in earlier TLS versions and discusses use of exporter-derived binding for TLS 1.3 contexts.
 </t>
   
    </section>
	
	 <section anchor="deploymentlimitations" numbered="true" toc="include" removeInRFC="false" pn="section-9">
      <name slugifiedName="name-deploymentlimitations">Deployment Limitations</name>

	  <t indent="0" pn="section-9-1">This profile has the following limitations: </t>
   
	 <ol spacing="normal" indent="3" pn="section-9-2" type="1">
        <li pn="section-9-2.1">Initial trust depends on the secrecy and uniqueness of the symmetric device key. </li>
        <li pn="section-9-2.2">Compromise of a device-unique key permits impersonation of that device until the key or device record is revoked. </li>
		<li pn="section-9-2.3">The PSK identity may expose information about the device if it contains a serial number, asset identifier, meter identifier, IMEI, MAC address, or another deployment-specific identifier.</li>
		<li pn="section-9-2.4">Backend key lookup introduces dependency on the availability and security of the authoritative device registry. </li>
		<li pn="section-9-2.5">This profile does not bootstrap unknown devices. </li>
		<li pn="section-9-2.6">This profile does not remove the need for normal PKI validation after the operational certificate is issued. </li>
      </ol>
 
	
   
    </section>
	

	<section anchor="sec" numbered="true" toc="include" removeInRFC="false" pn="section-10">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <section anchor="sec-uniquekey" numbered="true" toc="include" removeInRFC="false" pn="section-10.1">
        <name slugifiedName="name-sec-uniquekey">Unique Symmetric Keys Are Mandatory</name>
        <t indent="0" pn="section-10.1-1">The strongest security constraint in this profile is that every device <bcp14>MUST</bcp14> have a unique symmetric key. A common or fleet-shared key would allow one compromised device to impersonate other devices and would defeat per-device authorization.</t>
      </section>
	  
	  <section anchor="sec-entrophy" numbered="true" toc="include" removeInRFC="false" pn="section-10.2">
        <name slugifiedName="name-sec-entrophy">PSK Entropy</name>
        <t indent="0" pn="section-10.2-1">PSKs and device-unique symmetric keys <bcp14>MUST</bcp14> be generated with sufficient randomness. TLS 1.3 warns that low-entropy out-of-band PSKs are vulnerable to brute-force attacks and that PSK authentication is not a strong password-authenticated key exchange.</t>
      </section>
	  
	  <section anchor="sec-fs" numbered="true" toc="include" removeInRFC="false" pn="section-10.3">
        <name slugifiedName="name-sec-fs">Forward Secrecy</name>
        <t indent="0" pn="section-10.3-1">DTLS 1.3 PSK-only mode <bcp14>SHOULD NOT</bcp14> be used for enrollment because it does not provide forward secrecy. DTLS 1.3 PSK with ECDHE <bcp14>SHOULD</bcp14> be used where supported.</t>
      </section>
	  
	  <section anchor="sec-replay" numbered="true" toc="include" removeInRFC="false" pn="section-10.4">
        <name slugifiedName="name-sec-replay">Replay and DoS Protection</name>
        <t indent="0" pn="section-10.4-1">DTLS includes mechanisms for datagram environments, including retransmission handling, handshake fragmentation, and replay detection. DTLS 1.2 uses sequence numbers and optional replay detection, and DTLS 1.3 similarly addresses packet loss, reordering, fragmentation, and replay detection.</t>
		 <t indent="0" pn="section-10.4-2">Servers <bcp14>SHOULD</bcp14> enable DTLS anti-replay protections and <bcp14>MUST</bcp14> rate limit failed PSK handshakes and failed enrollment attempts.</t>
      </section>
	  
	  <section anchor="sec-rtt" numbered="true" toc="include" removeInRFC="false" pn="section-10.5">
        <name slugifiedName="name-sec-rtt">No 0-RTT Enrollment</name>
        <t indent="0" pn="section-10.5-1">Enrollment requests <bcp14>MUST NOT</bcp14> be sent using DTLS 1.3 0-RTT data. TLS 1.3 0-RTT data has weaker security properties and can be replayed across connections.</t>
      </section>
	  
	  <section anchor="sec-backend" numbered="true" toc="include" removeInRFC="false" pn="section-10.6">
        <name slugifiedName="name-sec-backend">Backend Key Retrieval</name>
        <t indent="0" pn="section-10.6-1">The EST-coaps registrar or server <bcp14>MUST</bcp14> authenticate to the backend system before retrieving device key material. Backend responses <bcp14>MUST</bcp14> be integrity protected and confidential. Key retrieval events <bcp14>MUST</bcp14> be auditable.</t>
      </section>
	  
	  <section anchor="sec-transition" numbered="true" toc="include" removeInRFC="false" pn="section-10.7">
        <name slugifiedName="name-sec-transition">Transition to Certificate-Based Authentication</name>
        <t indent="0" pn="section-10.7-1">After successful certificate issuance, the device <bcp14>SHOULD</bcp14> use the issued operational certificate for future EST re-enrollment and other certificate-authenticated network access. This aligns with the existing EST and EST-coaps model where certificates are used for later authentication.</t>
		 <t indent="0" pn="section-10.7-2">Continued use of PSK authentication after issuance of an operational certificate may unnecessarily extend reliance on shared-secret authentication mechanisms. Where practical, deployments <bcp14>SHOULD</bcp14> transition to certificate-based authentication following successful enrollment.</t>
      </section>
	  
	  <section anchor="sec-revocation" numbered="true" toc="include" removeInRFC="false" pn="section-10.8">
        <name slugifiedName="name-sec-revocation">Device Credential Revocation</name>
        <t indent="0" pn="section-10.8-1">Deployments <bcp14>MUST</bcp14> provide a mechanism to disable, revoke, or otherwise invalidate device credentials when a device is determined to be compromised, replaced, retired, or no longer authorized.</t>
		<t indent="0" pn="section-10.8-2">The EST-coaps server or registrar <bcp14>MUST</bcp14> reject enrollment requests originating from devices whose associated credentials have been revoked or disabled within the authoritative device registry.</t>
		<t indent="0" pn="section-10.8-3">Revocation events <bcp14>SHOULD</bcp14> be auditable and propagated in a timely manner to all systems responsible for enrollment authorization decisions.</t>
      </section>
	  
    </section>
  
   <section anchor="iana" numbered="true" toc="include" removeInRFC="false" pn="section-11">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
	  <t indent="0" pn="section-11-1">This draft does not initially require new IANA registrations if it reuses existing EST-coaps resources, CoAP content formats, and DTLS cipher suites. </t>
	  <t indent="0" pn="section-11-2">Future revisions of this specification may define a new discovery resource type or EST-coaps profile indicator. </t>
     </section>
  
  </middle>
  <back>
    <references pn="section-12">
      <name slugifiedName="name-references">References</name>
      <references pn="section-12.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t indent="0">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="RFC5487" target="https://www.rfc-editor.org/info/rfc5487" quoteTitle="true" derivedAnchor="RFC5487">
  <front>
    <title>Pre-Shared Key Cipher Suites for TLS with SHA-256/384 and AES Galois Counter Mode</title>
    <author initials="P." surname="Eronen" fullname="P. Eronen">
      <organization showOnFrontPage="true"/>
    </author>
    <author initials="H." surname="Tschofenig" fullname="H. Tschofenig">
      <organization showOnFrontPage="true"/>
    </author>
    <date year="2009" month="March"/>
    <abstract>
      <t indent="0">
        This document defines three new cipher suites for the Transport Layer Security (TLS) protocol that use pre-shared keys (PSKs) with AES in Galois/Counter Mode (GCM). These cipher suites provide authenticated encryption with associated data (AEAD) and use SHA-256 or SHA-384 for pseudorandom function operations.
      </t>
    </abstract>
  </front>
</reference>
		<reference anchor="RFC5869" target="https://www.rfc-editor.org/info/rfc5869" quoteTitle="true" derivedAnchor="RFC5869">
          <front>
            <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
            <author initials="H." surname="Krawczyk" fullname="H. Krawczyk">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Eronen" fullname="P. Eronen">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2010" month="May"/>
            <abstract>
              <t indent="0">This document specifies a simple Hashed Message Authentication Code
   (HMAC)-based key derivation function (HKDF), which can be used as a
   building block in various protocols and applications.  The key
   derivation function (KDF) is intended to support a wide range of
   applications and requirements, and is conservative in its use of
   cryptographic hash functions.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5869"/>
          <seriesInfo name="DOI" value="10.17487/RFC5869"/>
        </reference>
        <reference anchor="RFC6347" target="https://www.rfc-editor.org/info/rfc6347" quoteTitle="true" derivedAnchor="RFC6347">
          <front>
            <title>Datagram Transport Layer Security Version 1.2</title>
            <author initials="E." surname="Rescorla" fullname="E. Rescorla">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="N." surname="Modadugu" fullname="N. Modadugu">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2012" month="January"/>
            <abstract>
              <t indent="0">This document specifies version 1.2 of the Datagram Transport Layer Security (DTLS) protocol.  The DTLS protocol provides communications privacy for datagram protocols.  The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery.  The DTLS protocol is based on the Transport Layer Security (TLS) protocol and provides equivalent security guarantees.  Datagram semantics of the underlying transport are preserved by the DTLS protocol.  This document updates DTLS 1.0 to work with TLS version 1.2.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6347"/>
          <seriesInfo name="DOI" value="10.17487/RFC6347"/>
        </reference>
        
        <reference anchor="RFC7030" target="https://www.rfc-editor.org/info/rfc7030" quoteTitle="true" derivedAnchor="RFC7030">
          <front>
            <title>Enrollment over Secure Transport</title>
            <author initials="M." surname="Pritikin" fullname="M. Pritikin" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Yee" fullname="P. Yee" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Harkins" fullname="D. Harkins" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2013" month="October"/>
            <abstract>
              <t indent="0">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="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t indent="0">RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
              
        <reference anchor="RFC9147" target="https://www.rfc-editor.org/info/rfc9147" quoteTitle="true" derivedAnchor="RFC9147">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author initials="E." surname="Rescorla" fullname="E. Rescorla">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="H." surname="Tschofenig" fullname="H. Tschofenig">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="N." surname="Modadugu" fullname="N. Modadugu">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2022" month="April"/>
            <abstract>
              <t indent="0">This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t indent="0">The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability.  Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t indent="0">This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </reference>
		<reference anchor="RFC9148" target="https://www.rfc-editor.org/info/rfc9148" quoteTitle="true" derivedAnchor="RFC9148">
          <front>
            <title>EST-coaps: Enrollment over Secure Transport with the Secure Constrained Application Protocol</title>
            <author fullname="Peter van der Stok" initials="P." surname="van der Stok">
			  <organization showOnFrontPage="true">Consultant</organization>
			</author>
			<author fullname="Panos Kampanakis" initials="P" surname="Kampanakis">
			  <organization showOnFrontPage="true">Cisco Systems</organization>
			</author>
			<author fullname="Michael C. Richardson" initials="M." surname="Richardson">
			  <organization abbrev="SSW" showOnFrontPage="true">Sandelman Software Works</organization>
			</author>
			<author fullname="Shahid Raza" initials="S" surname="Raza">
			  <organization showOnFrontPage="true">RISE Research Institutes of Sweden</organization>
			</author>
            <date year="2022" month="April"/>
			<abstract>
            <t indent="0">Enrollment over Secure Transport (EST) is used as a certificate provisioning
				protocol over HTTPS. Low-resource devices often use the lightweight Constrained
				Application Protocol (CoAP) for message exchanges. This document defines how to
	  transport EST payloads over secure CoAP (EST-coaps), which allows
	  constrained devices to use existing EST functionality for provisioning certificates.
		</t>
		 </abstract>
          </front>
          <seriesInfo name="RFC" value="9148"/>
          <seriesInfo name="DOI" value="10.17487/RFC9148"/>
        </reference>
      </references>
      <references pn="section-12.2">
        <name slugifiedName="name-informative-references">Informative References</name>
	<reference anchor="NIST.SP.800-108" target="https://csrc.nist.gov/publications/detail/sp/800-108/final">
    <front>
      <title>Recommendation for Key Derivation Using Pseudorandom Functions</title>
      <author fullname="National Institute of Standards and Technology"/>
      <date year="2009"/>
    </front>
    <seriesInfo name="NIST Special Publication" value="800-108"/>
	</reference>	
</references>
</references>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.f">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Narinder Mittal" initials="N." surname="Mittal">
        <organization showOnFrontPage="true">Landis+Gyr</organization>
        <address>
          <email>narinder.mittal@landisgyr.com</email>
        </address>
      </author>
      <author fullname="Chris Hett" initials="C" surname="Hett">
         <organization showOnFrontPage="true">Landis+Gyr</organization>
        <address>
          <email>chris.hett@landisgyr.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
