<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.24 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-chen-emu-eap-tls-ibs-05" category="info" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title abbrev="EAP TLS IBS">Use Identity as Raw Public Key in EAP-TLS</title>
    <seriesInfo name="Internet-Draft" value="draft-chen-emu-eap-tls-ibs-05"/>
    <author initials="" surname="Chen" fullname="Meiling Chen" role="editor">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <city>BeiJing</city>
          <country>China</country>
        </postal>
        <email>chenmeiling@chinamobile.com</email>
      </address>
    </author>
    <author initials="L." surname="Su" fullname="Li Su">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <city>BeiJing</city>
          <country>China</country>
        </postal>
        <email>suli@chinamobile.com</email>
      </address>
    </author>
    <author initials="H." surname="Wang" fullname="Haiguang Wang">
      <organization>Huawei International Pte. Ltd.</organization>
      <address>
        <postal>
          <city>Singapore</city>
          <country>SG</country>
        </postal>
        <email>wang.haiguang1@huawei.com</email>
      </address>
    </author>
    <date year="2023" month="March" day="01"/>
    <area>Security</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <keyword>Internet-Draft</keyword>
    <keyword>keyword2</keyword>
    <abstract>
      <t>This document specifies the use of identity as a raw public key in EAP-TLS, the procedure of EAP-TIBS is consistent with EAP-TLS's interactive process, identity-based signature is extended to support EAP-TLS's signature algorithms to avoid X.509 certificates, this authentication method can avoid the overhead of receiving and processing certificate chains.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>The Extensible Authentication Protocol(EAP) defined in <xref target="RFC3748"/> can provide support for multiple authentication methods. Transport Layer Security(TLS) provides for mutual authentication, integrity-protected ciphersuite negotiation, and exchange between two endpoints. The EAP-TLS defined in <xref target="RFC5216"/> which combines EAP and TLS that apply EAP method to load TLS procedures.</t>
      <t>Traditionally, TLS client and server public keys are obtained in PKIX containers in-band as part of the TLS handshake procedure and are validated using trust anchors based on a PKIX certification authority (CA). But there is another method, Using Raw Public Keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) are defined in <xref target="RFC7250"/>, the document defines two TLS extensions client_certificate_type and server_certificate_type, which can be used as part of an extended TLS handshake when raw public keys are used. <xref target="RFC9190"/> reads certificates can be of any type supported by TLS including raw public keys. In <xref target="RFC7250"/> it assuming that an out-of-band mechanism is used to bind the public key to the entity presenting the key.</t>
      <t>Digital signatures provide the functions of Sender reliability and Message integrity. A chain of trust for such signatures is usually provided by certificates, but in low-bandwidth and resource-constrained environments, the use of certificates might be undesirable. In comparison with the original certificate, the raw public key is fairly small. This document describes a signature algorithm using identity as a raw public key in EAP-TLS, instead of transmitting a full certificate in the EAP-TLS message, only public keys are exchanged between client and server, also known as EAP-TIBS.</t>
      <t>With the existing raw public key scheme, a public key and identity mapping table is required at server. This table usually established with offline method and may require additional efforts for establishment and maintenance, especially when the number of devices are huge. On the other hand, with IBS signature algorithm, it not only can take the advantage of raw public key, but also eliminates the efforts for the mapping table establishment and maintenance at the server side. Instead, a small table for CRL is enough for exclude revoked identity from accessing the network. A number of IBE and IBS algorithms have been standardized, such as ECCSI defined in <xref target="RFC6507"/>.</t>
      <t>IBC was first proposed by Adi Shamir in 1984. For an IBC system, a Key Management System (KMS) is required to generate keys for devices. The KMS choose its KMS Secret Authentication Key(KSAK) as the root of trust. A public parameter, KMS Public Authentication Key (KPAK) is derived from this secrete key and is used by others in verifying the signature. The signatures are generated by an entity with private keys obtained from the KMS. KMS is a trusted third party, users or devices can obtain private key using their identities from KMS. In IBS the private key is also known as Secret Signing Key(SSK).  A sender can sign a message using SSK. The receiver can verify the signature with sender's identity and the KPAK.</t>
      <t>This method has great advantages in internal management.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The following terms are used:</t>
      <ul spacing="normal">
        <li>IBC: Identity-Based Cryptograph, it is an asymmetric public key cryptosystem.</li>
        <li>IBS: Identity-based Signature, such as ECCSI.</li>
        <li>PKI: Public Key Infrastructure, an infrastructure built with a public-key mechanism.</li>
        <li>Authenticator: The entity initiating EAP authentication.</li>
        <li>Peer: The entity that responds to the authenticator.</li>
        <li>Backend authenticator server: A backend authentication server is an entity that provides an authentication service to an authenticator. When used, this server typically executes EAP methods for the authenticator.</li>
        <li>EAP server: The entity that terminates the EAP authentication method with the peer. In the case where no backend authentication server is used, the EAP server is part of the authenticator.  In the case where the authenticator operates in pass-through mode, the EAP server is located on the backend authentication server.</li>
      </ul>
    </section>
    <section anchor="eap-tibs-use-cases">
      <name>EAP TIBS Use Cases</name>
      <section anchor="iot-use-case">
        <name>IoT use case</name>
        <t>Used for authentication of Internet of Things devices: due to the limited processing power of IoT devices, resources for secure identity authentication are limited, especially passive, long life cycle devices, however, the traditional certificate authentication based on PKI X509, because of the complexity of certificate processing and certificate chain authentication, not very suitable for the Internet of Things scenario. Internet of Things devices really need a more lightweight authentication method, and EAP-TIBS as one of the candidates.</t>
      </section>
      <section anchor="non-ca-use-case">
        <name>Non CA use case</name>
        <t>Used for systems that do not support CA certificates: an internal system with network security boundaries that can self-operate the Key Management System(KMS) secret key distribution center, EAP-TIBS can be used between internal subsystems.</t>
      </section>
    </section>
    <section anchor="structure-of-the-raw-public-key-extension">
      <name>Structure of the Raw Public Key Extension</name>
      <t>To support the negotiation of using raw public key between client and server, a new certificate structure is defined in <xref target="RFC7250"/>.  It is used by the client and server in the hello messages to indicate the types of certificates supported by each side.  When RawPublicKey type is selected for authentication, SubjectPublicKeyInfo which is a data structure is used to carry the raw public key and its cryptographic algorithm.</t>
      <t>The SubjectPublicKeyInfo structure is defined in Section 4.1 of <xref target="RFC5280"/> and not only contains the raw keys, such as the public exponent and the modulus of an RSA public key, but also an algorithm identifier.  The algorithm identifier can also include parameters. The structure of SubjectPublicKeyInfo is shown in Figure 1:</t>
      <artwork><![CDATA[
SubjectPublicKeyInfo  ::=  SEQUENCE  {
           algorithm               AlgorithmIdentifier,
           subjectPublicKey        BIT STRING  }

      AlgorithmIdentifier   ::=  SEQUENCE  {
           algorithm               OBJECT IDENTIFIER,
           parameters              ANY DEFINED BY algorithm OPTIONAL }

      Figure 1: SubjectPublicKeyInfo ASN.1 Structure
]]></artwork>
      <t>The algorithms identifiers are Object Identifier(OIDs), AlgorithmIdentifier is also data structure with two fields, OID represent the cryptographic algorithm used with raw public key, such as ECCSI, parameters are the necessary parameters associated with the algorithm.</t>
      <t>In the case of IBS algorithm, the User's identity is the raw public key which can be represented by "subjectPublicKey", when ECCSI is used as the Identity-based signature algorithm, then "algorithm" is for ECCSI, and "parameters" is the parameters needed in ECCSI.</t>
      <t>So far, IBS has the following four algorithms, the following table is the corresponding table of Key type and OID.</t>
      <artwork><![CDATA[
   +--------------------------+----------------+-----------------------+
   |         Key Type         |    Document    |          OID          |
   +--------------------------+----------------+-----------------------+
   |  ISO/IEC 14888-3 IBS-1   |     ISO/IEC    |     1.0.14888.3.0.7   |
   |                          | 14888-3: IBS-1 |                       |
   |                          |   mechanism    |                       |
   +--------------------------+----------------+-----------------------+
   |  ISO/IEC 14888-3 IBS-2   |     ISO/IEC    |     1.0.14888.3.0.8   |
   |                          | 14888-3: IBS-2 |                       |
   |                          |   mechanism    |                       |
   +--------------------------+----------------+-----------------------+
   |     ISO/IEC 14888-3      |     ISO/IEC    | 1.2.156.10197.1.302.1 |
   |     ChineseIBS(SM9)      |    14888-3:    |                       |
   |                          |   ChineseIBS   |                       |
   |                          |   mechanism    |                       |
   +--------------------------+----------------+-----------------------+
   |   Elliptic Curve-Based   |   Section 5.2  |   1.3.6.1.5.5.7.6.29  |
   |    Signatureless For     |  in RFC 6507   |                       |
   |     Identitiy-based      |                |                       |
   |    Encryption (ECCSI)    |                |                       |
   +--------------------------+----------------+-----------------------+

                   Table 1: Algorithm Object Identifiers
]]></artwork>
      <t>In the draft draft-wang-tls-raw-public-key-with-ibc, there extend signature scheme with IBS algorithm which indicated in the client's "signature_algorithms" extension. The SignatureScheme data structure also keep pace with the section 4.</t>
    </section>
    <section anchor="eap-tibs-for-tls12">
      <name>EAP-TIBS for TLS1.2</name>
      <section anchor="eap-tibs-handshake">
        <name>EAP-TIBS Handshake</name>
        <t>This section describes EAP-TIBS in the case of TLS1.2, as described in <xref target="RFC7250"/>, the document intrudoces the use of raw public keys in TLS/DTLS, the basic raw public key TLS exchange will appear as follows, Figure 2 shows the client_certificate_type and server_certificate_type extensions added to the client and server hello messages. An extension type MUST NOT appear in the ServerHello unless the same extension type appeared in the corresponding ClientHello, defined in <xref target="RFC5246"/>.</t>
        <t>The server_certificate_type extension in the client hello indicates the types of certificates the client is able to process when provided by the server in a subsequent certificate payload.</t>
        <t>The client_certificate_type and server_certificate_type extensions sent in the client hello each carry a list of supported certificate types, sorted by client preference.  When the client supports only one certificate type, it is a list containing a single element. Many types of certificates can be used, such as RawPublicKey, X.509 and OpenPGP.</t>
        <t>This section describes EAP-TLS extend using raw public keys, the procedures is as follows, In the discussion, we will use the term "EAP server" to denote the ultimate endpoint conversing with the peer.</t>
        <artwork><![CDATA[
Authenticating Peer     EAP server       
   -------------------     -------------
                           <- EAP-Request/
                           Identity
   EAP-Response/
   Identity (MyID) ->
                           <- EAP-Request/
                           EAP-Type=EAP-TLS
                           (TLS Start)
   EAP-Response/
   EAP-Type=EAP-TLS
   (TLS client_hello
    +signature_algorithm
    server_certificate_type,
    client_certificate_type)->

                           <- EAP-Request/
                           EAP-Type=EAP-TLS
                           (TLS server_hello,                    
                             {client_certificate_type}
                             {server_certificate_type}
                             {TLS certificate}
                             {TLS server_key_exchange}
                             {TLS certificate_request}
                             {TLS server_hello_done}
                        )
   EAP-Response/
   EAP-Type=EAP-TLS
   (TLS certificate,
    TLS client_key_exchange,
    TLS certificate_verify,
    TLS change_cipher_spec,
    TLS finished) ->
                           <- EAP-Request/
                           EAP-Type=EAP-TLS
                           (TLS change_cipher_spec,
                            TLS finished)
   EAP-Response/
   EAP-Type=EAP-TLS ->
                           <- EAP-Success

   Figure 2: EAP-TIBS authentication procedure for TLS1.2
]]></artwork>
      </section>
      <section anchor="eap-tibs-example">
        <name>EAP-TIBS example</name>
        <t>In this example, both the TLS client and server use ECCSI for authentication, and they are restricted in that they can only process ECCSI signature algorithm.  As a result, the TLS client sets both the server_certificate_type and the client_certificate_type extensions to be raw public key; in addition, the client sets the signature algorithm in the client hello message to be eccsi_sha256.</t>
        <artwork><![CDATA[
Authenticating Peer                EAP server       
   -------------------               -------------
                                     <- EAP-Request/
                                     Identity
   EAP-Response/
   Identity (MyID) ->
                                     <- EAP-Request/
                                     EAP-Type=EAP-TLS
                                     (TLS Start)
   EAP-Response/
   EAP-Type=EAP-TLS
   (TLS client_hello
   signature_algorithm = (eccsi_sha256)
    server_certificate_type = (RawPublicKey,...)
    client_certificate_type = (RawPublicKey,...))->

                                    <- EAP-Request/
                                    EAP-Type=EAP-TLS
                                    (TLS server_hello,                     
                                    {client_certificate_type = RawPublicKey}
                                    {server_certificate_type = RawPublicKey}
                                    {certificate = (1.3.6.1.5.5.7.6.29, hash
                                    value of ECCSIPublicParameters),
                                    serverID)}                                 
                                    {certificate_request = (eccsi_sha256)}
                                    {server_hello_done}
                            )
   EAP-Response/
   EAP-Type=EAP-TLS
   ({certificate = ((1.3.6.1.5.5.7.6.29,
   hash value of ECCSIPublicParameters),
   ClientID)},
    {certificate_verify = (ECCSI-Sig-Value)},
    {finished}) ->
                                 <- EAP-Request/
                                 EAP-Type=EAP-TLS
                                 (TLS finished)
   EAP-Response/
   EAP-Type=EAP-TLS ->
                                 <- EAP-Success

         Figure 3: EAP-TIBS example
]]></artwork>
      </section>
    </section>
    <section anchor="eap-tibs-for-tls13">
      <name>EAP-TIBS for TLS1.3</name>
      <section anchor="eap-tibs-handshake-1">
        <name>EAP-TIBS Handshake</name>
        <t>TLS1.3 defined in <xref target="RFC8446"/>, as TLS 1.3 is not directly compatible with previous versions, all versions of TLS incorporate a versioning mechanism which allows clients and servers to interoperably negotiate a common version if one is supported by both peers. when make the discussion on EAP-TLS using raw public keys we also make a different with TLS1.2, this section is for EAP-TLS1.3 handshake using raw public keys and give example for EAP-TIBS.</t>
        <t>This section describes EAP-TLS1.3 extend using raw public keys, the procedures is as follows, both client and server have the extension "key_share", the "key_share" extension contains the endpoint's cryptographic parameters. the "signature_algorithm" extension contains the signature algorithm and hash algorithms the client and server can support for the new signature algorithms specific to the IBS algorithms. When IBS is chosen as signature algorithm, the server need to indicated the required IBS signature algorithms int the signature_algorithm extension within the CertificateRequest.</t>
        <artwork><![CDATA[
Authenticating Peer     EAP server       
   -------------------     -------------
                           <- EAP-Request/
                           Identity
   EAP-Response/
   Identity (MyID) ->
                           <- EAP-Request/
                           EAP-Type=EAP-TLS
                           (TLS Start)
   EAP-Response/
   EAP-Type=EAP-TLS
   (TLS client_hello
    +key_share
    +signature_algorithm
    server_certificate_type,
    client_certificate_type)->

                           <- EAP-Request/
                           EAP-Type=EAP-TLS
                           (TLS server_hello,
                             +key_share
                             {EncryptedExtensions}
                             {client_certificate_type}
                             {server_certificate_type}
                             {certificate}
                             {CertificateVerify}
                             {certificateRequest}
                             {Finished}                        
                        )
   EAP-Response/
   EAP-Type=EAP-TLS
   ({certificate}
    {CertificateVerify}
    {Finished}
    ) ->
                          EAP-Request/
                          EAP-Type=EAP-TLS
                 <--TLS Application Data 0x00

    EAP-Response/
    EAP-Type=EAP-TLS-->              
                           <- EAP-Success
                            

   Figure 4:  EAP-TIBS authentication procedure for TLS1.3
]]></artwork>
      </section>
      <section anchor="eap-tibs-example-1">
        <name>EAP-TIBS example</name>
        <t>When the EAP server receives the client hello, it processes the message.  Since it has an ECCSI raw public key from the KMS, it indicates that it agrees to use ECCSI and provides an ECCSI key by placing the SubjectPublicKeyInfo structure into the Certificate payload back to the client, including the OID, the identity of server, ServerID, which is the public key of server also, and hash value of KMS public parameters.  The client_certificate_type indicates that the TLS server accepts raw public key.  The TLS server demands client authentication, and therefore includes a certificate_request, which requires the client to use eccsi_sha256 for signature.  A signature value based on the eccsi_sha256 algorithm is carried in the CertificateVerify.  The client, which has an ECCSI key, returns its ECCSI public key in the Certificate payload to the server, which includes an OID for the ECCSI signature. The example of EAP-TLS1.3-IBS is as follows:</t>
        <artwork><![CDATA[
 Authenticating Peer                EAP server       
   -------------------               -------------
                                     <- EAP-Request/
                                     Identity
   EAP-Response/
   Identity (MyID) ->
                                     <- EAP-Request/
                                     EAP-Type=EAP-TLS
                                     (TLS Start)
   EAP-Response/
   EAP-Type=EAP-TLS
   (TLS client_hello
    signature_algorithm = (eccsi_sha256)
    server_certificate_type = (RawPublicKey)
    client_certificate_type = (RawPublicKey))->

                                    <- EAP-Request/
                                    EAP-Type=EAP-TLS
                                    (TLS server_hello,
                                    +key_share                      
                                    {client_certificate_type = RawPublicKey}
                                    {server_certificate_type = RawPublicKey}
                                    {certificate = (1.3.6.1.5.5.7.6.29, hash
                                    value of ECCSIPublicParameters,
                                    serverID)}                                 
                                    {certificate_request = (eccsi_sha256)}
                                    {certificate_verify = {ECCSI-Sig-Value}}
                                    {Finished}
                                    
                            )
   EAP-Response/
   EAP-Type=EAP-TLS
   ({certificate = ((1.3.6.1.5.5.7.6.29,
   hash value of ECCSIPublicParameters),
   ClientID)},
    {certificate_verify = (ECCSI-Sig-Value)},
    {Finished})
                 --->
                                    EAP-Request/
                                    EAP-Type=EAP-TLS
                               <----TLS Application Data 0x00)
    EAP-Response/
    EAP-Type=EAP-TLS---->
                                <---- EAP-Success
                                 

         Figure 5: EAP-TLS1.3-IBS example

]]></artwork>
      </section>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This document registers the following item in the "Method Types" registry under the "extensible Authentication Protocol(EAP) Registry" heading.</t>
      <artwork><![CDATA[
                +---------+-------------------+
                | Value   | Description       |
                +---------+-------------------+
                | TBD     | EAP-TIBS          |
                +---------+-------------------+
]]></artwork>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>Although the identity authentication has been extended, the generation of session key still continues the EAP-TLS method.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>Informative References</name>
      <reference anchor="RFC6507">
        <front>
          <title>Elliptic Curve-Based Certificateless Signatures for Identity-Based Encryption (ECCSI)</title>
          <author fullname="M. Groves" initials="M." surname="Groves">
            <organization/>
          </author>
          <date month="February" year="2012"/>
          <abstract>
            <t>Many signature schemes currently in use rely on certificates for authentication of identity.  In Identity-based cryptography, this adds unnecessary overhead and administration.  The Elliptic Curve-based Certificateless Signatures for Identity-based Encryption (ECCSI) signature scheme described in this document is certificateless. This scheme has the additional advantages of low bandwidth and low computational requirements.  This document is not an Internet Standards  Track specification; it is published for informational purposes.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6507"/>
        <seriesInfo name="DOI" value="10.17487/RFC6507"/>
      </reference>
      <reference anchor="RFC3748">
        <front>
          <title>Extensible Authentication Protocol (EAP)</title>
          <author fullname="B. Aboba" initials="B." surname="Aboba">
            <organization/>
          </author>
          <author fullname="L. Blunk" initials="L." surname="Blunk">
            <organization/>
          </author>
          <author fullname="J. Vollbrecht" initials="J." surname="Vollbrecht">
            <organization/>
          </author>
          <author fullname="J. Carlson" initials="J." surname="Carlson">
            <organization/>
          </author>
          <author fullname="H. Levkowetz" initials="H." role="editor" surname="Levkowetz">
            <organization/>
          </author>
          <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="RFC5216">
        <front>
          <title>The EAP-TLS Authentication Protocol</title>
          <author fullname="D. Simon" initials="D." surname="Simon">
            <organization/>
          </author>
          <author fullname="B. Aboba" initials="B." surname="Aboba">
            <organization/>
          </author>
          <author fullname="R. Hurst" initials="R." surname="Hurst">
            <organization/>
          </author>
          <date month="March" year="2008"/>
          <abstract>
            <t>The Extensible Authentication Protocol (EAP), defined in RFC 3748, provides support for multiple authentication methods.  Transport Layer Security (TLS) provides for mutual authentication, integrity-protected ciphersuite negotiation, and key exchange between two endpoints.  This document defines EAP-TLS, which includes support for certificate-based mutual authentication and key derivation.</t>
            <t>This document obsoletes RFC 2716.  A summary of the changes between this document and RFC 2716 is available in Appendix A.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5216"/>
        <seriesInfo name="DOI" value="10.17487/RFC5216"/>
      </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">
            <organization/>
          </author>
          <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig">
            <organization/>
          </author>
          <author fullname="J. Gilmore" initials="J." surname="Gilmore">
            <organization/>
          </author>
          <author fullname="S. Weiler" initials="S." surname="Weiler">
            <organization/>
          </author>
          <author fullname="T. Kivinen" initials="T." surname="Kivinen">
            <organization/>
          </author>
          <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="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">
            <organization/>
          </author>
          <author fullname="S. Santesson" initials="S." surname="Santesson">
            <organization/>
          </author>
          <author fullname="S. Farrell" initials="S." surname="Farrell">
            <organization/>
          </author>
          <author fullname="S. Boeyen" initials="S." surname="Boeyen">
            <organization/>
          </author>
          <author fullname="R. Housley" initials="R." surname="Housley">
            <organization/>
          </author>
          <author fullname="W. Polk" initials="W." surname="Polk">
            <organization/>
          </author>
          <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="RFC5246">
        <front>
          <title>The Transport Layer Security (TLS) Protocol Version 1.2</title>
          <author fullname="T. Dierks" initials="T." surname="Dierks">
            <organization/>
          </author>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla">
            <organization/>
          </author>
          <date month="August" year="2008"/>
          <abstract>
            <t>This document specifies Version 1.2 of the Transport Layer Security (TLS) protocol.  The TLS protocol provides communications security over the Internet.  The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5246"/>
        <seriesInfo name="DOI" value="10.17487/RFC5246"/>
      </reference>
      <reference anchor="RFC9190">
        <front>
          <title>EAP-TLS 1.3: Using the Extensible Authentication Protocol with TLS 1.3</title>
          <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson">
            <organization/>
          </author>
          <author fullname="M. Sethi" initials="M." surname="Sethi">
            <organization/>
          </author>
          <date month="February" year="2022"/>
          <abstract>
            <t>The Extensible Authentication Protocol (EAP), defined in RFC 3748, provides a standard mechanism for support of multiple authentication methods. This document specifies the use of EAP-TLS with TLS 1.3 while remaining backwards compatible with existing implementations of EAP-TLS. TLS 1.3 provides significantly improved security and privacy, and reduced latency when compared to earlier versions of TLS. EAP-TLS with TLS 1.3 (EAP-TLS 1.3) further improves security and privacy by always providing forward secrecy, never disclosing the peer identity, and by mandating use of revocation checking when compared to EAP-TLS with earlier versions of TLS. This document also provides guidance on authentication, authorization, and resumption for EAP-TLS in general (regardless of the underlying TLS version used). This document updates RFC 5216.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9190"/>
        <seriesInfo name="DOI" value="10.17487/RFC9190"/>
      </reference>
      <reference anchor="RFC8446">
        <front>
          <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla">
            <organization/>
          </author>
          <date month="August" year="2018"/>
          <abstract>
            <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol.  TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
            <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961.  This document also specifies new requirements for TLS 1.2 implementations.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8446"/>
        <seriesInfo name="DOI" value="10.17487/RFC8446"/>
      </reference>
    </references>
  </back>
  <!-- ##markdown-source:
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
/wI6GkyqwlMAAA==

-->

</rfc>
