<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.40 (Ruby 3.0.7) -->


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

]>


<rfc ipr="trust200902" docName="draft-ietf-emu-bootstrapped-tls-08" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="TLS-POK">Bootstrapped TLS Authentication with Proof of Knowledge (TLS-POK)</title>

    <author initials="O." surname="Friel" fullname="Owen Friel">
      <organization>Cisco</organization>
      <address>
        <email>ofriel@cisco.com</email>
      </address>
    </author>
    <author initials="D." surname="Harkins" fullname="Dan Harkins">
      <organization>Hewlett-Packard Enterprise</organization>
      <address>
        <email>daniel.harkins@hpe.com</email>
      </address>
    </author>

    <date year="2025" month="February" day="06"/>

    
    
    

    <abstract>


<?line 59?>

<t>This document defines a mechanism that enables a bootstrapping device to establish trust and mutually authenticate against a network. Bootstrapping devices have a public private key pair, and this mechanism enables a network server to prove to the device that it knows the public key, and the device to prove to the server that it knows the private key. The mechanism leverages existing DPP and TLS standards and can be used in an EAP exchange.</t>



    </abstract>



  </front>

  <middle>


<?line 63?>

<section anchor="introduction"><name>Introduction</name>

<t>On-boarding of devices with no, or limited, user interface can be difficult.  Typically, a credential is needed to access the network,
and network connectivity is needed to obtain a credential.  This poses a catch-22.</t>

<t>If a device has a public / private keypair, and trust in the integrity of a device's public key can be obtained in an out-of-band fashion, a device can be authenticated and provisioned with a usable credential for network access.  While this authentication can be strong, the device's authentication of the network is somewhat weaker.  <xref target="duckling"></xref> presents a functional security model to address this asymmetry.</t>

<t>Device on-boarding protocols such as the Device Provisioning Profile <xref target="DPP"></xref>, also referred to as Wi-Fi Easy Connect, address this use case but they have drawbacks. <xref target="DPP"></xref> for instance does not support wired network access, and does not specify how the device's DPP keypair can be used in a TLS handshake.  This document describes an on-boarding protocol that can be used for wired network access, which we refer to as TLS Proof of Knowledge or TLS-POK.</t>

<t>This document does not address the problem of Wi-Fi network discovery, where a bootstrapping device detects multiple different Wi-Fi networks and needs a more robust and scalable mechanism than simple round-robin to determine the correct network to attach to. DPP addresses this issue. Thus, the intention is that DPP is the <bcp14>RECOMMENDED</bcp14> mechanism for bootstrapping against Wi-Fi networks, and TLS-POK is the <bcp14>RECOMMENDED</bcp14> mechanism for bootstrapping against wired networks.</t>

<section anchor="terminology"><name>Terminology</name>

<t>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"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

<t>The following terminology is used throughout this document.</t>

<t><list style="symbols">
  <t>802.1X: IEEE Port-Based Network Access Control</t>
  <t>BSK: Bootstrap Key which is an elliptic curve public private key pair from a cryptosystem suitable for doing ECDSA</t>
  <t>DPP: Device Provisioning Protocol <xref target="DPP"></xref></t>
  <t>EAP:  Extensible Authentication Protocol <xref target="RFC3748"/></t>
  <t>EC:  Elliptic Curve</t>
  <t>ECDSA: Elliptic Curve Digital Signature Algorithm</t>
  <t>EPSK: External Pre-Shared Key</t>
  <t>EST: Enrollment over Secure Transport <xref target="RFC7030"/></t>
  <t>PSK: Pre-Shared Key</t>
  <t>TEAP: Tunnel Extensible Authentication Protocol <xref target="RFC7170"/></t>
</list></t>

</section>
<section anchor="bootstrapping-overview"><name>Bootstrapping Overview</name>

<t>A bootstrapping device holds a public / private elliptic curve (EC) key pair which we refer to as a Bootstrap Key (BSK). The private key of the BSK is known only by the device. The public key of the BSK is known by the device, is known by the owner or holder of the device, and is provisioned on the network by the network operator. In order to establish trust and mutually authenticate, the network proves to the device that it knows the public part of the BSK, and the device proves to the network that it knows the private part of the BSK. Once this trust has been established during bootstrapping, the network can provision the device with a credential that it uses for subsequent network access. More details on the BSK are given in <xref target="bootstrap-key"/>.</t>

</section>
<section anchor="eap-network-access"><name>EAP Network Access</name>

<t>Enterprise deployments typically require an <xref target="IEEE802.1X"></xref>/EAP-based authentication to obtain network access. Protocols like Enrollment over Secure Transport (EST) <xref target="RFC7030"/> can be used to enroll devices into a Certification Authority to allow them to authenticate using 802.1X/EAP. This creates a Catch-22 where a certificate is needed for network access and network access is needed to obtain certificate.</t>

<t>Devices whose BSK public key can be obtained in an out-of-band fashion and provisioned on the network can perform a TLS-based EAP exchange, for instance Tunnel Extensible Authentication Protocol (TEAP) <xref target="RFC7170"/>, and authenticate the TLS exchange using the bootstrapping mechanisms defined in <xref target="bootstrapping-in-tls-13"/>. This network connectivity can then be used to perform an enrollment protocol (such as provided by <xref target="RFC7170"/>) to obtain a credential for subsequent network connectivity and certificate lifecycle maintenance.</t>

</section>
<section anchor="supported-eap-methods"><name>Supported EAP Methods</name>

<t>This document defines a boostrapping mechanism that results in a certificate being provisioned on a device that can be used for subsequent network access. Therefore, an EAP method that supports provisioning of a certificate on a device is required. The only EAP method that currently supports provisioning of a certificate on a device is TEAP, therefore this document assumes that TEAP is the only supported EAP method. Section <xref target="using-tls-bootstrapping-in-eap"/> describes how TLS-POK is used with TEAP, including defining a suitable NAI.</t>

<t>If future EAP methods are defined that support certificate provisioning, then TLS-POK could potentially be used with those methods. Defining how this would work is out of scope of this document.</t>

</section>
</section>
<section anchor="bootstrap-key"><name>Bootstrap Key</name>

<t>The mechanism for on-boarding of devices defined in this document relies on an elliptic curve (EC) bootstrap key (BSK). This BSK <bcp14>MUST</bcp14> be from a cryptosystem suitable for doing ECDSA. A bootstrapping client device has an associated EC BSK. The BSK may be static and baked into device firmware at manufacturing time, or may be dynamic and generated at on-boarding time by the device. The BSK public key <bcp14>MUST</bcp14> be encoded as the DER representation of an ASN.1 SEQUENCE SubjectPublicKeyInfo from <xref target="RFC5280"/>. The subjectPublicKey <bcp14>MUST</bcp14> be the compressed format of the public key. Note that the BSK public key encoding <bcp14>MUST</bcp14> include the ASN.1 AlgorithmIdentifier in addition to the subjectPublicKey. If the BSK public key can be shared in a trustworthy manner with a TLS server, a form of "entity authentication" (the step from which all subsequent authentication proceeds) can be obtained.</t>

<t>The exact mechanism by which the server gains knowledge of the BSK public key is out of scope of this specification, but possible mechanisms include scanning a QR code to obtain a base64 encoding of the DER representation of the ASN.1 SubjectPublicKeyInfo or uploading of a Bill of Materials (BOM) which includes this information. More information on QR encoding is given in <xref target="alignment-with-wi-fi-alliance-device-provisioning-profile"/>. If the QR code is physically attached to the client device, or the BOM is associated with the device, the assumption is that the BSK public key obtained in this bootstrapping method belongs to the client. In this model, physical possession of the device implies legitimate ownership.</t>

<t>The server may have knowledge of multiple BSK public keys corresponding to multiple devices, and existing TLS mechanisms are leveraged that enable the server to identity a specific bootstrap public key corresponding to a specific device.</t>

<t>Using the process defined herein, the client proves to the server that it has possession of the private key of its BSK. Provided that the mechanism in which the server obtained the BSK public key is trustworthy, a commensurate amount of authenticity of the resulting connection can be obtained. The server also proves that it knows the client's BSK public key which, if the client does not gratuitously expose its public key, can be used to obtain a modicum of correctness, that the client is connecting to the correct network (see <xref target="duckling"></xref>).</t>

<section anchor="alignment-with-wi-fi-alliance-device-provisioning-profile"><name>Alignment with Wi-Fi Alliance Device Provisioning Profile</name>

<t>The definition of the BSK public key aligns with that given in <xref target="DPP"></xref>. This, for example, enables the QR code format as defined in <xref target="DPP"></xref> to be reused for TLS-POK. Therefore, a device that supports both wired LAN and Wi-Fi LAN connections can have a single QR code printed on its label, or dynamically display a single QR code on a display, and the bootstrap key can be used for DPP if the device bootstraps against a Wi-Fi network, or TLS-POK if the device bootstraps against a wired network. Similarly, a common bootstrap public key format could be imported into a BOM into a server that handles devices connecting over both wired and Wi-Fi networks.</t>

<t>Any bootstrapping method defined for, or used by, <xref target="DPP"></xref> is compatible with TLS-POK.</t>

</section>
</section>
<section anchor="bootstrapping-in-tls-13"><name>Bootstrapping in TLS 1.3</name>

<t>Bootstrapping in TLS 1.3 leverages <xref target="RFC8773"/> Certificate-Based Authentication with an External Pre-Shared Key. The External PSK (EPSK) is derived from the BSK public key as described in <xref target="external-psk-derivation"/>, and the EPSK is imported using <xref target="RFC9258"/> Importing External Pre-Shared Keys (PSKs) for TLS 1.3. As the BSK public key is an ASN.1 SEQUENCE SubjectPublicKeyInfo from <xref target="RFC5280"/>, and not a full PKI Certificate, the client must use <xref target="RFC7250"/> Using Raw Public Keys in TLS and DTLS in order to present the BSK as raw public key.</t>

<t>The TLS PSK handshake gives the client proof that the server knows the BSK public key. Certificate-based authentication of the client to the server using the BSK gives the server proof that the client knows the BSK private key. This satisfies the proof of ownership requirements outlined in <xref target="introduction"/>.</t>

<section anchor="external-psk-derivation"><name>External PSK Derivation</name>

<t>An <xref target="RFC9258"/> EPSK is made up of the tuple of (Base Key, External Identity, Hash). The Base Key is the DER-encoded ASN.1 subjectPublicKeyInfo representation of the BSK public key. Zero byte padding <bcp14>MUST NOT</bcp14> be added to the DER-encoded representation of the BSK public key.</t>

<t>The External Identity is derived from the DER-encoded representation of the BSK public key using <xref target="RFC5869"/> with the SHA-256 hash algorithm <xref target="sha2"></xref> as follows:</t>

<figure><artwork><![CDATA[
epskid = HKDF-Expand(HKDF-Extract(<>, Base Key),
                       "tls13-bspsk-identity", L)
where:
  - epskid is the EPSK External Identity
  - Base Key is the DER-encoded ASN.1 subjectPublicKeyInfo
    representation of the BSK public key
  - L equals 32, the length in octets of the SHA-256 output
  - <> is a NULL salt which is a string of L zeros
]]></artwork></figure>

<t>SHA-256 <bcp14>MUST</bcp14> be used when deriving epskid using <xref target="RFC5869"/>.</t>

<t>The <xref target="RFC9258"/> ImportedIdentity structure is defined as:</t>

<figure><artwork><![CDATA[
struct {
   opaque external_identity<1...2^16-1>;
   opaque context<0..2^16-1>;
   uint16 target_protocol;
   uint16 target_kdf;
} ImportedIdentity;
]]></artwork></figure>

<t>and is created using the following values:</t>

<figure><artwork><![CDATA[
external_identity = epskid
context = "tls13-bsk"
target_protocol = TLS1.3(0x0304)
target_kdf = <as per RFC9258>
]]></artwork></figure>

<t>The ImportedIdentity context value <bcp14>MUST</bcp14> be "tls13-bsk". This informs the server that the mechanisms specified in this document for deriving the EPSK and executing the TLS handshake <bcp14>MUST</bcp14> be used. The EPSK and ImportedIdentity are used in the TLS handshake as specified in <xref target="RFC9258"/>. Multiple ImportedIdentity values may be imported as per <xref target="RFC9258"/> section 5.1. The target_kdf follows <xref target="RFC9258"/> and aligns with the cipher suite hash algorithms advertised in the TLS 1.3 handshake between the device and the server.</t>

<t>A performance versus storage tradeoff a server can choose is to precompute the identity of every bootstrapped key with every hash algorithm that it uses in TLS and use that to quickly lookup the bootstrap key and generate the PSK. Servers that choose not to employ this optimization will have to do a runtime check with every bootstrap key it holds against the identity the client provides.</t>

<t>Test vectors for derivation of an EPSK External Identity from a BSK are given in the appendix.</t>

</section>
<section anchor="tls-13-handshake-details"><name>TLS 1.3 Handshake Details</name>

<t>The client includes the "tls_cert_with_extern_psk" extension in the ClientHello, per <xref target="RFC8773"/>. The client identifies the BSK public key by inserting the serialized content of ImportedIdentity into the PskIdentity.identity in the PSK extension, per <xref target="RFC9258"/>. The client <bcp14>MUST</bcp14> also include the <xref target="RFC7250"/> "client_certificate_type" extension in the ClientHello and <bcp14>MUST</bcp14> specify type of RawPublicKey.</t>

<t>Upon receipt of the ClientHello, the server looks up the client's EPSK key in its database using the mechanisms documented in <xref target="RFC9258"/>. If no match is found, the server <bcp14>MUST</bcp14> terminate the TLS handshake with an alert. If the server found the matching BSK public key, it includes the "tls_cert_with_extern_psk" extension in the ServerHello message, and the corresponding EPSK identity in the "pre_shared_key" extension. When these extensions have been successfully negotiated, the TLS 1.3 key schedule <bcp14>MUST</bcp14> include both the EPSK in the Early Secret derivation and an (EC)DHE shared secret value in the Handshake Secret derivation.</t>

<t>After successful negotiation of these extensions, the full TLS 1.3 handshake is performed with the additional caveat that the server <bcp14>MUST</bcp14> send a CertificateRequest message and client <bcp14>MUST</bcp14> authenticate with a raw public key (its BSK) per <xref target="RFC7250"/>. The BSK is always an elliptic curve key pair, therefore the type of the client's Certificate <bcp14>MUST</bcp14> be ECDSA and <bcp14>MUST</bcp14> contain the client's BSK public key as a DER-encoded ASN.1 subjectPublicKeyInfo SEQUENCE.</t>

<t>Note that the client <bcp14>MUST NOT</bcp14> share its BSK public key with the server until after the client has completed processing of the ServerHello and verified the TLS key schedule. The PSK proof has completed at this stage, and the server has proven to the client that is knows the BSK public key, and it is therefore safe for the client to send the BSK public key to the server in the Certificate message. If the PSK verification step fails when processing the ServerHello, the client terminates the TLS handshake and the BSK public key <bcp14>MUST NOT</bcp14> be shared with the server.</t>

<t>When the server processes the client's Certificate it <bcp14>MUST</bcp14> ensure that it is identical to the BSK public key that it used to generate the EPSK and ImportedIdentity for this handshake.</t>

<t>When clients use the <xref target="duckling"></xref> form of authentication, they <bcp14>MAY</bcp14> forgo the checking of the server's certificate in the CertificateVerify and rely on the integrity of the bootstrapping method employed to distribute its key in order to validate trust in the authenticated TLS connection.</t>

<t>The handshake is shown in Figure 1.</t>

<figure><artwork><![CDATA[
         Client                                            Server
         --------                                          --------
         ClientHello
         + cert_with_extern_psk
         + client_cert_type=RawPublicKey
         + key_share
         + pre_shared_key           -------->
                                                        ServerHello
                                             + cert_with_extern_psk
                                    + client_cert_type=RawPublicKey
                                                        + key_share
                                                   + pre_shared_key
                                              {EncryptedExtensions}
                                               {CertificateRequest}
                                                      {Certificate}
                                                {CertificateVerify}
                                    <--------            {Finished}
         {Certificate}
         {CertificateVerify}
         {Finished}                 -------->
         [Application Data]         <------->    [Application Data]
]]></artwork></figure>

<figure><artwork><![CDATA[
                Figure 1: TLS 1.3 TLS-POK Handshake
]]></artwork></figure>

</section>
</section>
<section anchor="using-tls-bootstrapping-in-eap"><name>Using TLS Bootstrapping in EAP</name>

<t>Upon "link up", an Authenticator on an 802.1X-protected port will issue an EAP Identity request to the newly connected peer. For unprovisioned devices that desire to take advantage of TLS-POK, there is no initial realm in which to construct an NAI (see <xref target="RFC7542"/>). This document uses the NAI mechanisms defined in <xref target="I-D.ietf-emu-eap-arpa"/> and defines the EAP username "tls-pok-dpp" for use with the TEAP realm "teap.eap.arpa". The username "tls-pok-dpp" <bcp14>MUST</bcp14> be included yielding an initial identity of "tls-pok-dpp@teap.eap.arpa". This identifier <bcp14>MUST</bcp14> be included in the EAP Identity response in order to indicate to the Authenticator that TEAP is the desired EAP method. <xref target="I-D.ietf-emu-eap-arpa"/> recommends how the device should behave if the Authenticator does not support TEAP or TLS-POK.</t>

<figure><artwork><![CDATA[
   Authenticating Peer     Authenticator
   -------------------     -------------
                            <- EAP-Request/
                            Identity

    EAP-Response/
    Identity
    (tls-pok-dpp@teap.eap.arpa) ->

                            <- EAP-Request/
                            EAP-Type=TEAP
                           (TLS Start)

    EAP-Response/
    EAP-Type=TEAP
    (TLS client_hello with
     tls_cert_with_extern_psk
     and pre_shared_key) ->
     
                       .
                       .
                       .
]]></artwork></figure>

<t>Both client and server have derived the EPSK and associated <xref target="RFC9258"/> ImportedIdentity from the BSK public key as described in <xref target="external-psk-derivation"/>. When the client starts the TLS exchange in the EAP transaction, it includes the ImportedIdentity structure in the pre_shared_key extension in the ClientHello. When the server received the ClientHello, it extracts the ImportedIdentity and looks up the EPSK and BSK public key. As previously mentioned in <xref target="bootstrap-key"/>, the exact mechanism by which the server has gained knowledge of or been provisioned with the BSK public key is outside the scope of this document.</t>

<t>The server continues with the TLS handshake and uses the EPSK to prove that it knows the BSK public key. When the client replies with its Certificate, CertificateVerify and Finished messages, the server <bcp14>MUST</bcp14> ensure that the public key in the Certificate message matches the BSK public key.</t>

<t>Once the TLS handshake completes, the client and server have established mutual trust. The server can then proceed to provision a credential onto the client using, for example, the mechanisms outlined in <xref target="RFC7170"/>.</t>

<t>The client can then use this provisioned credential for subsequent network authentication. The BSK is only used during bootstrap, and is not used for any subsequent network access.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document adds the following to the "EAP Provisioning Identifiers" registry in the "Extensible Authentication Protocol (EAP) Registry" group.</t>

<t>NAI: tls-pok-dpp@teap.eap.arpa
Method Type: TEAP
Reference: THIS DOCUMENT</t>

</section>
<section anchor="implementation-considerations"><name>Implementation Considerations</name>

<t>Three key points are documented above, and are repeated here.</t>

<t><list style="symbols">
  <t>The subjectPublicKey contained in the ASN.1 SEQUENCE SubjectPublicKeyInfo <bcp14>MUST</bcp14> be the compressed format of the public key.</t>
  <t>When deriving the External PSK from the BSK, zero byte padding <bcp14>MUST NOT</bcp14> be added to the DER-encoded representation of the BSK public key.</t>
  <t>SHA-256 <bcp14>MUST</bcp14> be used when using <xref target="RFC5869"/> to derive the External PSK from the BSK.</t>
</list></t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>Bootstrap and trust establishment by the TLS server is based on proof of knowledge of the client's bootstrap public key, a non-public datum. The TLS server obtains proof that the client knows its bootstrap public key and, in addition, also possesses its corresponding private key.</t>

<t>Trust on the part of the client is based on successful completion of the TLS 1.3 handshake using the EPSK derived from the BSK. This proves to the client that the server knows its BSK public key. In addition, the client assumes that knowledge of its BSK public key is not widely disseminated and therefore any server that proves knowledge of its BSK public key is the appropriate server from which to receive provisioning, for instance via <xref target="RFC7170"/>. <xref target="duckling"></xref> describes a security model for this type of "imprinting".</t>

<t>An attack on the bootstrapping method which substitutes the public key of a corrupted device for the public key of an honest device can result in the TLS sever on-boarding and trusting the corrupted device.</t>

<t>If an adversary has knowledge of the bootstrap public key, the adversary may be able to make the client bootstrap against the adversary's network. For example, if an adversary intercepts and scans QR labels on clients, and the adversary can force the client to connect to its server, then the adversary can complete the TLS-POK handshake with the client and the client will connect to the adversary's server. Since physical possession implies ownership, there is nothing to prevent a stolen device from being on-boarded.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>



<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>

<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>

<reference anchor="RFC5280">
  <front>
    <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
    <author fullname="D. Cooper" initials="D." surname="Cooper"/>
    <author fullname="S. Santesson" initials="S." surname="Santesson"/>
    <author fullname="S. Farrell" initials="S." surname="Farrell"/>
    <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <author fullname="W. Polk" initials="W." surname="Polk"/>
    <date month="May" year="2008"/>
    <abstract>
      <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5280"/>
  <seriesInfo name="DOI" value="10.17487/RFC5280"/>
</reference>

<reference anchor="RFC8773">
  <front>
    <title>TLS 1.3 Extension for Certificate-Based Authentication with an External Pre-Shared Key</title>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <date month="March" year="2020"/>
    <abstract>
      <t>This document specifies a TLS 1.3 extension that allows a server to authenticate with a combination of a certificate and an external pre-shared key (PSK).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8773"/>
  <seriesInfo name="DOI" value="10.17487/RFC8773"/>
</reference>

<reference anchor="RFC9258">
  <front>
    <title>Importing External Pre-Shared Keys (PSKs) for TLS 1.3</title>
    <author fullname="D. Benjamin" initials="D." surname="Benjamin"/>
    <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
    <date month="July" year="2022"/>
    <abstract>
      <t>This document describes an interface for importing external Pre-Shared Keys (PSKs) into TLS 1.3.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9258"/>
  <seriesInfo name="DOI" value="10.17487/RFC9258"/>
</reference>

<reference anchor="RFC7250">
  <front>
    <title>Using Raw Public Keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
    <author fullname="P. Wouters" initials="P." role="editor" surname="Wouters"/>
    <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
    <author fullname="J. Gilmore" initials="J." surname="Gilmore"/>
    <author fullname="S. Weiler" initials="S." surname="Weiler"/>
    <author fullname="T. Kivinen" initials="T." surname="Kivinen"/>
    <date month="June" year="2014"/>
    <abstract>
      <t>This document specifies a new certificate type and two TLS extensions for exchanging raw public keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS). The new certificate type allows raw public keys to be used for authentication.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7250"/>
  <seriesInfo name="DOI" value="10.17487/RFC7250"/>
</reference>

<reference anchor="RFC5869">
  <front>
    <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
    <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
    <author fullname="P. Eronen" initials="P." surname="Eronen"/>
    <date month="May" year="2010"/>
    <abstract>
      <t>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. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5869"/>
  <seriesInfo name="DOI" value="10.17487/RFC5869"/>
</reference>


<reference anchor="I-D.ietf-emu-eap-arpa">
   <front>
      <title>The eap.arpa domain and EAP provisioning</title>
      <author fullname="Alan DeKok" initials="A." surname="DeKok">
         <organization>InkBridge Networks</organization>
      </author>
      <date day="29" month="January" year="2025"/>
      <abstract>
	 <t>   This document defines the eap.arpa domain as a way for Extensible
   Authentication Protocol (EAP) peers to signal to EAP servers that
   they wish to obtain limited, and unauthenticated, network access.
   EAP peers signal which kind of access is required via certain pre-
   defined identifiers which use the Network Access Identifier (NAI)
   format of RFC 7542.  A table of identifiers and meanings is defined,
   which includes entries for RFC 9140.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-emu-eap-arpa-06"/>
   
</reference>




    </references>

    <references title='Informative References'>

<reference anchor="IEEE802.1X" >
  <front>
    <title>Port-Based Network Access Control</title>
    <author initials="" surname="IEEE" fullname="IEEE">
      <organization>IEEE</organization>
    </author>
    <date year="2010"/>
  </front>
</reference>
<reference anchor="DPP" >
  <front>
    <title>Device Provisioning Profile</title>
    <author >
      <organization>Wi-Fi Alliance</organization>
    </author>
    <date year="2020"/>
  </front>
</reference>
<reference anchor="duckling" target="https://www.cl.cam.ac.uk/~fms27/papers/1999-StajanoAnd-duckling.pdf">
  <front>
    <title>The Resurrecting Duckling: Security Issues for Ad-Hoc Wireless Networks</title>
    <author initials="F." surname="Stajano" fullname="Frank Stajano">
      <organization></organization>
    </author>
    <author initials="R." surname="Anderson" fullname="Ross Anderson">
      <organization></organization>
    </author>
    <date year="1999"/>
  </front>
</reference>
<reference anchor="sha2" target="https://doi.org/10.6028/NIST.FIPS.180-4">
  <front>
    <title>FIPS 180-4 Secure Hash Standard (SHS)</title>
    <author >
      <organization>National Institute of Standards and Technology</organization>
    </author>
    <date year="2015" month="August"/>
  </front>
</reference>


<reference anchor="RFC3748">
  <front>
    <title>Extensible Authentication Protocol (EAP)</title>
    <author fullname="B. Aboba" initials="B." surname="Aboba"/>
    <author fullname="L. Blunk" initials="L." surname="Blunk"/>
    <author fullname="J. Vollbrecht" initials="J." surname="Vollbrecht"/>
    <author fullname="J. Carlson" initials="J." surname="Carlson"/>
    <author fullname="H. Levkowetz" initials="H." role="editor" surname="Levkowetz"/>
    <date month="June" year="2004"/>
    <abstract>
      <t>This document defines the Extensible Authentication Protocol (EAP), an authentication framework which supports multiple authentication methods. EAP typically runs directly over data link layers such as Point-to-Point Protocol (PPP) or IEEE 802, without requiring IP. EAP provides its own support for duplicate elimination and retransmission, but is reliant on lower layer ordering guarantees. Fragmentation is not supported within EAP itself; however, individual EAP methods may support this. This document obsoletes RFC 2284. A summary of the changes between this document and RFC 2284 is available in Appendix A. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3748"/>
  <seriesInfo name="DOI" value="10.17487/RFC3748"/>
</reference>

<reference anchor="RFC7030">
  <front>
    <title>Enrollment over Secure Transport</title>
    <author fullname="M. Pritikin" initials="M." role="editor" surname="Pritikin"/>
    <author fullname="P. Yee" initials="P." role="editor" surname="Yee"/>
    <author fullname="D. Harkins" initials="D." role="editor" surname="Harkins"/>
    <date month="October" year="2013"/>
    <abstract>
      <t>This document profiles certificate enrollment for clients using Certificate Management over CMS (CMC) messages over a secure transport. This profile, called Enrollment over Secure Transport (EST), describes a simple, yet functional, certificate management protocol targeting Public Key Infrastructure (PKI) clients that need to acquire client certificates and associated Certification Authority (CA) certificates. It also supports client-generated public/private key pairs as well as key pairs generated by the CA.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7030"/>
  <seriesInfo name="DOI" value="10.17487/RFC7030"/>
</reference>

<reference anchor="RFC7170">
  <front>
    <title>Tunnel Extensible Authentication Protocol (TEAP) Version 1</title>
    <author fullname="H. Zhou" initials="H." surname="Zhou"/>
    <author fullname="N. Cam-Winget" initials="N." surname="Cam-Winget"/>
    <author fullname="J. Salowey" initials="J." surname="Salowey"/>
    <author fullname="S. Hanna" initials="S." surname="Hanna"/>
    <date month="May" year="2014"/>
    <abstract>
      <t>This document defines the Tunnel Extensible Authentication Protocol (TEAP) version 1. TEAP is a tunnel-based EAP method that enables secure communication between a peer and a server by using the Transport Layer Security (TLS) protocol to establish a mutually authenticated tunnel. Within the tunnel, TLV objects are used to convey authentication-related data between the EAP peer and the EAP server.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7170"/>
  <seriesInfo name="DOI" value="10.17487/RFC7170"/>
</reference>

<reference anchor="RFC7542">
  <front>
    <title>The Network Access Identifier</title>
    <author fullname="A. DeKok" initials="A." surname="DeKok"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>In order to provide inter-domain authentication services, it is necessary to have a standardized method that domains can use to identify each other's users. This document defines the syntax for the Network Access Identifier (NAI), the user identifier submitted by the client prior to accessing resources. This document is a revised version of RFC 4282. It addresses issues with international character sets and makes a number of other corrections to RFC 4282.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7542"/>
  <seriesInfo name="DOI" value="10.17487/RFC7542"/>
</reference>




    </references>


<?line 312?>

<section anchor="test-vectors"><name>Test Vectors</name>

<section anchor="test-vector-1-prime256v1"><name>Test Vector 1: prime256v1</name>

<t>Base64 encoding of BSK:</t>

<t><spanx style="verb">MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgACMvLyoOykj8sFJxSoZfzafuVEvM+kNYCxpEC6KITLb9g=</spanx></t>

<t>Base64 encoding of epskid:</t>

<t><spanx style="verb">Bd+lLlg/ERdtYacfzDfh1LjdL0+QWJQHdYXoS7JDSkA=</spanx></t>

</section>
<section anchor="test-vector-2-secp384r1"><name>Test Vector 2: secp384r1</name>

<t>Base64 encoding of BSK:</t>

<t><spanx style="verb">MEYwEAYHKoZIzj0CAQYFK4EEACIDMgACwDXKQ1pytcR1WbfqPaNGaXQ0RJnijJG1em8ZKilryZRDfNioq7+EPquT6l9laRvw</spanx></t>

<t>Base64 encoding of epskid:</t>

<t><spanx style="verb">yMWK26ec3klVFewg2znKntQgVoRcRRjW81n677GL+8w=</spanx></t>

</section>
<section anchor="test-vector-3-secp521r1"><name>Test Vector 3: secp521r1</name>

<t>Base64 encoding of BSK:</t>

<t><spanx style="verb">MFgwEAYHKoZIzj0CAQYFK4EEACMDRAADAIiHIAOXdPVuI8khCnJQHT1j53rQRnFCcY3CZUvxdXKJR9KW5RVB3HDQfmkoQWHEz4XngXUeFyDXliEo3eF6vhqDMFgwEAYHKoZIzj0CAQYFK4EEACMDRAADAIiHIAOXdPVuI8khCnJQHT1j53rQRnFCcY3CZUvxdXKJR9KW5RVB3HDQfmkoQWHEz4XngXUeFyDXliEo3eF6vhqD</spanx></t>

<t>Base64 encoding of epskid:</t>

<t><spanx style="verb">D+s3Ex81A8N36ECI3AdXwBzrOXuonZUMdhhHXVINhg8=</spanx></t>

</section>
<section anchor="test-vector-4-brainpoolp256r1"><name>Test Vector 4: brainpoolP256r1</name>

<t>Base64 encoding of BSK:</t>

<t><spanx style="verb">MDowFAYHKoZIzj0CAQYJKyQDAwIIAQEHAyIAA3fyUWqiV8NC9DAC88JzmVqnoT/reuCvq8lHowtwWNOZ</spanx></t>

<t>Base64 encoding of epskid:</t>

<t><spanx style="verb">j2TLWcXtrTej+f3q7EZrhp5SmP31uk1ZB23dfcR93EY=</spanx></t>

</section>
</section>


  </back>

<!-- ##markdown-source:
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
AAA=

-->

</rfc>

