<?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.7.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-emu-eap-ppt-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="EAP-PPT">Extensible Authentication Protocol (EAP) Using Privacy Pass Token</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-emu-eap-ppt-03"/>
    <author fullname="Paresh Sawant">
      <organization>Apple Inc.</organization>
      <address>
        <email>paresh_sawant@apple.com</email>
      </address>
    </author>
    <author fullname="Bart Brinckman">
      <organization>Cisco Systems</organization>
      <address>
        <email>bbrinckm@cisco.com</email>
      </address>
    </author>
    <date year="2026" month="August" day="21"/>
    <keyword>Internet-Draft</keyword>
    <keyword>EAP</keyword>
    <keyword>anonymous</keyword>
    <keyword>authorization</keyword>
    <keyword>Privacy Pass token</keyword>
    <abstract>
      <?line 47?>

<t>This document describes Extensible Authentication Protocol using
Privacy Pass token (EAP-PPT) Version 1. The protocol specifies
use of the Privacy Pass token for client authentication within EAP
as defined in RFC3748. Privacy Pass is a privacy preserving
authentication mechanism used for authorization, as defined
in RFC9576. EAP-PPT must be performed only in a tunnel-based EAP method.</t>
    </abstract>
  </front>
  <middle>
    <?line 56?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document specifies Extensible Authentication Protocol (EAP)
method, EAP-PPT, which uses Privacy Pass token for EAP peer
authentication; see <xref target="RFC9576"/> for more information about
Privacy Pass. EAP-PPT <bcp14>MUST</bcp14> be used inside any tunnel-based EAP
method that enables secure communication between a peer and a
server by using Transport Layer Security (TLS) Protocol
<xref target="RFC8446"/>. The tunnel-based EAP method <bcp14>MUST</bcp14> be a server authenticated TLS tunnel only.</t>
      <t>Privacy Pass tokens are unlinkable authenticators that can be used
to anonymously authorize a client <xref target="RFC9576"/>. Privacy Pass tokens are issued to peer by token issuers using an Issuance Protocol <xref target="RFC9578"/>, and therefore, peer receives the token out of band of EAP-PPT.
A client possessing such a token is able to
prove that it was able to get it issued by a trusted issuer, without allowing the
relying party redeeming the client's token (the origin) to link
it with the issuance flow.</t>
    </section>
    <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.
<?line -6?>
      </t>
      <t>Much of the terminology in this document is defined in <xref target="RFC3748"/>.</t>
      <t>Additional terms are defined below:</t>
      <dl>
        <dt>NAI:</dt>
        <dd>
          <t>Network Access Identifier <xref target="RFC7542"/></t>
        </dd>
        <dt>EAP-PPT peer:</dt>
        <dd>
          <t>This term is used for the entity acting as EAP peer.
This term is identical to term Client defined in
<xref section="2" sectionFormat="of" target="RFC9576"/>.</t>
        </dd>
        <dt>EAP-PPT server:</dt>
        <dd>
          <t>This term is used for the entity acting as EAP server.
This term is identical to term Server defined in
<xref section="2" sectionFormat="of" target="RFC9576"/>.</t>
        </dd>
        <dt>Privacy Pass token:</dt>
        <dd>
          <t>Unlinkable authenticator that can be used to anonymously
authorize a client <xref target="RFC9577"/>. This is produced as an output
of issuance protocol <xref target="RFC9578"/>.</t>
        </dd>
        <dt>Token Challenge:</dt>
        <dd>
          <t>An action by which a EAP-PPT Server requests EAP-PPT peer
to present Privacy Pass Token for one of the presented challenges.</t>
        </dd>
        <dt>Token Redemption:</dt>
        <dd>
          <t>An action by which a peer presents a Privacy Pass token to a
EAP-PPT Server in EAP-PPT Protocol. See <xref section="2.2" sectionFormat="of" target="RFC9577"/>.</t>
        </dd>
        <dt>Identity provider:</dt>
        <dd>
          <t>An entity that is responsible for authentication of end-user devices
with the purpose of granting them access to a network resource.</t>
        </dd>
      </dl>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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?>

</section>
    <section anchor="motivation">
      <name>Motivation</name>
      <t>EAP is predominantly used for authentication of users and devices
trying to join a network. Its security and extensibility capabilities
makes it a popular choice in implementing secure network access.
EAP is one of the most preferred authentication mechanisms used for
secure wireless LAN access using <xref target="IEEE-802.11"/> standard, wired LAN
access using <xref target="IEEE-802.1X"/> and Virtual Private Network (VPN) access.
EAP is also used for secure network access for students and guests
in academia, see <xref target="RFC7593"/>.</t>
      <t>One goal of privacy is to protect individual's identity and personal
information from eavesdroppers, intermediaries and recipients
in the network communication. An individual's privacy may get
compromised when network access is attempted using EAP as an
authentication mechanism. The various privacy-specific threats
are described in <xref section="5.2" sectionFormat="of" target="RFC6973"/>.</t>
      <t>Typical approaches for authorizing clients, such as through the use
of a permanent identity or service provider generated pseudo identity,
are not privacy-friendly since they allow servers to track clients
across sessions and interactions. This means service providers,
identity providers, employers, or school/university administrators
can track the individuals.</t>
      <t>The goal of this specification is to protect an individual from the
<xref section="5.2" sectionFormat="of" target="RFC6973"/> in public and enterprise environments.
EAP-PPT can be leveraged for authorization based on
anonymous-credential authentication mechanisms. EAP-PPT takes a
different approach: instead of carrying linkable state carrying
information to servers, such as permanent identity or pseudonym,
EAP peer presents Privacy Pass tokens that attest to this information.
These tokens are anonymous in the sense that a given token cannot be
linked to the protocol instance in which that token was initially
issued.</t>
      <t><xref target="RFC9577"/> specifies the authentication scheme using Privacy Pass
token over HTTP. <xref target="RFC9577"/> mainly serves use cases where access to
restricted services require anonymous client authorization. Since
<xref target="RFC9577"/> functions at the application layer of a networking stack,
it justifies a need of a protocol that can offer the similar
functionality for the lower layers. EAP-PPT, performed inside a 
server-authenticated TLS tunnel offers anonymous network access to 
wired and wireless networks at those lower layers. Since EAP-PPT method 
provides unilateral authentication, it can be used together with responder
authentication based on public key signatures in <xref target="RFC7296"/> protocol. 
<xref target="RFC7296"/> is a component of IPsec used for performing mutual 
authentication and establishing and maintaining Security Associations. 
<xref target="RFC7296"/> is widely used to implement remote access VPN service in 
public and enterprise environments, so EAP-PPT can be used to provide 
anonymous VPN services to clients.</t>
      <t>In summary, EAP-PPT provides a solution for networks that wish to offer
anonymous network access to users and devices, protecting their privacy, 
while still being able to authorize them based on the possession of valid
token that proves that a trusted attestation was performed based on the 
policies they defined for network access.</t>
    </section>
    <section anchor="architecture-model">
      <name>Architecture Model</name>
      <t><xref target="arch"/> shows network architectural model for EAP-PPT.</t>
      <figure anchor="arch">
        <name>EAP-PPT Architectural Model</name>
        <artwork><![CDATA[
+----------+      +----------+      +----------+      +----------+
|          |      |          |      |          |      |          |
|   Peer   |<---->|  Authen- |<---->|   EAP    |<---->|  EAP-    |
|          |      |  ticator |      |  Server  |      |  PPT     |
|          |      |          |      |          |      |  Server  |
+----------+      +----------+      +----------+      +----------+
]]></artwork>
      </figure>
      <t>The entities depicted in <xref target="arch"/> are logical entities and may or
may not correspond to separate network components. For example, the
EAP Server and EAP-PPT Server might be a single entity; the
authenticator and EAP Server might be a single entity; or the
functions of the authenticator, EAP Server, and EAP-PPT Server might
be combined into a single physical device. For example, typical
<xref target="IEEE-802.11"/> deployments place the authenticator in an access point
(AP) while a RADIUS Server may provide the Tunneled EAP Method and
EAP-PPT method Server components. The above diagram illustrates the
division of labor among entities in a logical manner and shows how a
distributed system might be constructed; however, actual systems might
be organized differently.</t>
    </section>
    <section anchor="protocol">
      <name>Protocol</name>
      <section anchor="overview">
        <name>Overview</name>
        <t>A tunnel-based EAP method supports authentication in two phases after
the initial EAP Identity request/response exchange. In the first phase,
it uses a TLS <xref target="RFC8446"/> handshake to provide an authenticated key
exchange and to establish a protected tunnel. The EAP peer and server
that are configured to perform the peer authentication using EAP-PPT
method, <bcp14>MUST</bcp14> establish the TLS tunnel without peer authentication.
EAP server <bcp14>MUST NOT</bcp14> send CertificateRequest to the TLS client during
the TLS handshake, when peer authentication is desired using EAP-PPT
method. TLS-PSK cipher suites <xref section="9.2" sectionFormat="of" target="RFC8446"/> <bcp14>MUST NOT</bcp14> be used.</t>
        <t>The second phase of the authentication begins after the TLS tunnel is
established. Any EAP method that fulfils the requirements specified
in <xref target="RFC6678"/> is called tunnel-based EAP method.</t>
        <t>A peer supporting EAP-PPT <bcp14>MUST NOT</bcp14> send its username or any other
permanent identifiers in the first and subsequent EAP-Response/Identity
messages. EAP-Response/Identity message <bcp14>MUST</bcp14> contain only an anonymous NAI 
as per RFC 7542 Section 2.4 in order to route the authentication request
to the right AAA system.</t>
        <t>EAP-PPT authentication <bcp14>MUST</bcp14> be performed inside the server
authenticated TLS tunnel established by the tunnel-based EAP method.</t>
        <t>During the EAP-PPT authentication, the server challenges the peer to
present a Privacy Pass token, and the Peer responds with a Privacy Pass
token. Upon a successful verification of the token, the redemption of
the token is deemed successful. EAP-PPT uses JavaScript Object Notation
(JSON) <xref target="RFC8259"/> to encode the challenges, responses, results and
errors. Encapsulation of EAP-PPT method can be supported by any tunnel-
based EAP methods e.g. Protected EAP <xref target="PEAP"/>, Tunneled Transport Layer
Security EAP (TTLS) <xref target="RFC5281"/>, EAP Flexible Authentication via
Secure Tunneling (EAP-FAST) <xref target="RFC4851"/> and Tunnel Extensible
Authentication Protocol (TEAP) <xref target="RFC7170"/>.</t>
        <t>Optionally, the Privacy Pass token <bcp14>MAY</bcp14> also carry extensions<br/>
(<xref target="I-D.draft-ietf-privacypass-auth-scheme-extensions"/>) with
additional metadata relevant to the EAP-PPT Server. An example of an
extension that could be useful in EAP-PPT is token expiration, since
tokens may be issued with a limited lifetime for security reasons. An
expiration extension is described in <xref target="I-D.draft-hendrickson-privacypass-expiration-extension"/>.</t>
      </section>
      <section anchor="successful-authentication">
        <name>Successful Authentication</name>
        <t><xref target="authsuccess"/> shows an example of basic, successful authentication
exchange in EAP-PPT. At the minimum, EAP-PPT uses two roundtrips to
authenticate and authorize the Peer. As in other EAP schemes, an
identity request/response message pair is usually exchanged first.
As specified in <xref target="RFC3748"/> the initial identity request is not
required, and <bcp14>MAY</bcp14> be bypassed in cases where the EAP-PPT Server can
presume the identity.</t>
        <t>After obtaining the identity, the EAP-PPT Server constructs
EAP-Request/PPT-Challenge message with a set of token Challenges
and sends it to the EAP-PPT peer. EAP-Request/PPT-Challenge message
encodes the set of token Challenges in JSON <xref target="RFC8259"/> format.</t>
        <t>On receiving EAP-Request/PPT-Challenge message, the EAP-PPT peer
looks at each token Challenge and looks up the most suitable
Privacy Pass token. If EAP-PPT Peer successfully finds the Privacy Pass
token, it constructs EAP-Response/PPT-Challenge message containing the
Privacy Pass token, and sends it to the EAP-PPT server.
EAP-Response/PPT-Challenge message encodes the response data in JSON
<xref target="RFC8259"/> format.</t>
        <t>The EAP-PPT server verifies the received Privacy Pass token in the
EAP-Response/PPT-Challenge message. After a successful token
Redemption, the EAP-PPT server sends EAP-Success.</t>
        <t>EAP-PPT Server verifies the Privacy Pass token using a procedure
called token Redemption <xref section="2.2" sectionFormat="of" target="RFC9577"/>.</t>
        <figure anchor="authsuccess">
          <name>EAP-PPT Successful Authentication</name>
          <artwork><![CDATA[
+----------+                                     +----------+
|          |                                     |          |
| EAP-PPT  |                                     | EAP-PPT  |
|  Peer    |                                     |  Server  |
|          |                                     |          |
+----------+                                     +----------+
     |                                                 |
     |             EAP-Request/Identity                |
     |<------------------------------------------------|
     |                                                 |
     |                                                 |
     |        EAP-Response/Identity (User's NAI)       |
     |------------------------------------------------>|
     |                                                 |
     |                                                 |
     |       EAP-Request/PPT-Challenge (challenges)    |
     |<------------------------------------------------|
     |                                                 |
     |                                                 |
     |        EAP-Response/PPT-Challenge (token)       |
     |------------------------------------------------>|
     |                                                 |
     |                                            +----------+
     |                                            | token    |
     |                                            | redeemed |
     |                                            |          |
     |                                            +----------+
     |                 EAP-Success                     |
     |<------------------------------------------------|
     |                                                 |
     |                                                 |
]]></artwork>
        </figure>
      </section>
      <section anchor="failed-authentication">
        <name>Failed Authentication</name>
        <t><xref target="authfail"/> shows how EAP-PPT server rejects the peer when
token redemption fails. EAP-PPT Server sends
EAP-Request/PPT-Error message containing the error information
like error code and error description as described in <xref target="errorcodes"/>. 
The error information is encoded in JSON <xref target="RFC8259"/> format. 
EAP-PPT peer responds to EAP-Request/PPT-Error with 
EAP-Response/PPT-Error without any data.</t>
        <figure anchor="authfail">
          <name>EAP-PPT Authentication Failure</name>
          <artwork><![CDATA[
+----------+                                     +----------+
|          |                                     |          |
| EAP-PPT  |                                     | EAP-PPT  |
|  Peer    |                                     |  Server  |
|          |                                     |          |
+----------+                                     +----------+
     |                                                 |
     |             EAP-Request/Identity                |
     |<-------------------------------------------------
     |                                                 |
     |                                                 |
     |        EAP-Response/Identity (User's NAI)       |
     |------------------------------------------------>|
     |                                                 |
     |                                                 |
     |       EAP-Request/PPT-Challenge (challenges)    |
     |<------------------------------------------------|
     |                                                 |
     |                                                 |
     |        EAP-Response/PPT-Challenge (token)       |
     |------------------------------------------------>|
     |                                                 |
     |                                            +----------+
     |                                            | failed   |
     |                                            | to       |
     |                                            | redeem   |
     |                                            | token    |
     |                                            +----------+
     |         EAP-Request/PPT-Error (error)           |
     |<------------------------------------------------|
     |                                                 |
     |                                                 |
     |             EAP-Response/PPT-Error              |
     |------------------------------------------------>|
     |                                                 |
     |                                                 |
     |                   EAP-Failure                   |
     |<------------------------------------------------|
     |                                                 |
     |                                                 |

]]></artwork>
        </figure>
      </section>
      <section anchor="remediation">
        <name>Remediation</name>
        <t>An EAP-PPT server <bcp14>MAY</bcp14> successfully validate a token, but fail
to validate metadata carried in an extension. The EAP-PPT server
<bcp14>MAY</bcp14> require different or more recently generated metadata, for
example. In this case the EAP-PPT server <bcp14>MAY</bcp14> reject, or
conditionally accept an EAP-PPT Authentication.</t>
        <t>As shown in <xref target="remediate"/>, after successful token redemption,
the  EAP-PPT server <bcp14>MAY</bcp14> respond with a PPT error message containing
error information like an error code and error description
(see <xref target="errorcodes"/>), to inform the EAP-PPT peer of the metadata
validation issue. In this case, the EAP-PPT server <bcp14>MAY</bcp14> respond with 
an EAP-Failure or EAP-Success message, depending on the metadata
specific policies set on the EAP-PPT server side. Since the peer 
proves the authenticity of issuance of token by providing
cryptographically correct token, the EAP-PPT server <bcp14>MAY</bcp14> decide to 
authorize the Peer conditionally.</t>
        <t>The EAP-PPT server <bcp14>MAY</bcp14> optionally also include a session-timeout value
in the PPT-Error, informing the EAP-PPT peer how long the session will
be permitted  in order for the EAP-Peer to remediate and request a new
token from its issuer. If the session-timeout attribute is included in
the PPT-Error (see <xref target="errorcodes"/>), the AAA server <bcp14>MUST</bcp14> also include 
a RADIUS Session-Timeout attribute (see <xref section="5.27" sectionFormat="of" target="RFC2865"/>) 
with the same value in the Access-Accept RADIUS message to the authenticator
(e.g., Network Access Server or IKEv2 Responder)). The EAP-PPT peer
responds to the EAP-Request/PPT-Error with EAP-Response/PPT-Error
without any data. The EAP-PPT peer <bcp14>MAY</bcp14> use the allotted
session time to fetch a new token by contacting its attester. After 
getting a new token issued, the EAP-PPT peer may subsequently re-authenticate.</t>
        <figure anchor="remediate">
          <name>EAP-PPT Authentication Success with remediation</name>
          <artwork><![CDATA[
+----------+                                     +----------+
|          |                                     |          |
| EAP-PPT  |                                     | EAP-PPT  |
|  Peer    |                                     |  Server  |
|          |                                     |          |
+----------+                                     +----------+
     |                                                 |
     |             EAP-Request/Identity                |
     |<------------------------------------------------|
     |                                                 |
     |                                                 |
     |        EAP-Response/Identity (User's NAI)       |
     |------------------------------------------------>|
     |                                                 |
     |                                                 |
     |       EAP-Request/PPT-Challenge (challenges)    |
     |<------------------------------------------------|
     |                                                 |
     |                                                 |
     |        EAP-Response/PPT-Challenge (token)       |
     |------------------------------------------------>|
     |                                                 |
     |                                            +----------+
     |                                            | token    |
     |                                            | redeemed |
     |                                            | with     |
     |                                            | invalid  |
     |                                            | extension|
     |                                            | metadata |
     |                                            +----------+
     |         EAP-Request/PPT-Error (error)           |
     |<------------------------------------------------|
     |                                                 |
     |                                                 |
     |             EAP-Response/PPT-Error              |
     |------------------------------------------------>|
     |                                                 |
     |                                                 |
     |                   EAP-Success                   |
     |<------------------------------------------------|
     |                                                 |
     |                                                 |

]]></artwork>
        </figure>
      </section>
      <section anchor="privacy">
        <name>Privacy</name>
        <t>The fundamental building block of privacy in EAP-PPT is use of Privacy
Pass token, which is unlinkable authenticator, for authorization of the
Peer. EAP-PPT peer selects an issuer to get a token issued from, using
Issuance Protocol <xref target="RFC9578"/>. The Issuer generates a token response
based on the token request, which is returned to the Client (generally
via the Attester). Upon receiving the token response, the EAP-PPT peer
computes a token from the token challenge and token response. This
token can be validated by anyone with the per-Issuer key but cannot be
linked to the content of the token request or token response.</t>
        <t>If the EAP-PPT peer has a token, it includes it in a response to a
challenge from EAP-PPT server. This token <bcp14>SHOULD</bcp14> be sent only once in
reaction to a challenge; peers <bcp14>SHOULD NOT</bcp14> send tokens more than once,
even if they receive duplicate or redundant challenges.</t>
        <t>The EAP-PPT server validates that the token was generated by the
expected Issuer and has not already been redeemed for the corresponding
token challenge. Mechanism to prevent double-spending of tokens is out
of scope of EAP-PPT method.</t>
        <t><xref section="4" sectionFormat="of" target="RFC9576"/> discusses deployment models in detail. It is
<bcp14>RECOMMENDED</bcp14> to use a deployment model that guarantees EAP peer-server,
Issuer-EAP peer, and Attester-EAP server unlinkability. Mechanisms for
enforcing non-collusion are out of scope of EAP-PPT method.</t>
        <t>EAP-PPT peer <bcp14>MAY</bcp14> opt for token Caching by getting multiple tokens
issued from a single token challenge structure
(<xref section="2.1.1" sectionFormat="of" target="RFC9577"/>). This improves privacy by separating
the time of token issuance from the time of token redemption.
Optionally, the peer <bcp14>MAY</bcp14> use a variant of Privacy Pass Issuance<br/>
(<xref target="I-D.draft-ietf-privacypass-batched-tokens"/>) to get more tokens
issued and cached at a time.</t>
        <t>EAP peer and server <bcp14>MUST</bcp14> send anonymous Network Access Identifiers
(NAIs) (<xref section="2.4" sectionFormat="of" target="RFC7542"/>) in the first and subsequent EAP-
Response/Identity messages. EAP peer <bcp14>MUST NOT</bcp14> send its username (or
any other permanent identifiers) in the Identity Response. Following
<xref target="RFC7542"/>, it is <bcp14>RECOMMENDED</bcp14> to omit the username (i.e., the NAI
is @realm), but other constructions such as a fixed username (e.g.,
anonymous@realm) is allowed. Note that the NAI <bcp14>MUST</bcp14> be a UTF-8 string
as defined by the grammar in <xref section="2.2" sectionFormat="of" target="RFC7542"/>.</t>
        <t>During TLS handshake in the first phase, EAP peer <bcp14>MUST</bcp14> send a
Certificate message containing no certificates as described in
<xref section="4.4.2" sectionFormat="of" target="RFC8446"/>, if CertificateRequest message is
received. Many client certificates contain an identity such as an
email address, and therefore, this document forbids client
authentication during first phase.</t>
        <t>It is desired to support fast reconnect (<xref section="7.2.1" sectionFormat="of" target="RFC3748"/>)
by shortening the TLS conversation using session resumption mechanism
(<xref section="2.1.2" sectionFormat="of" target="RFC5216"/>)
during the first phase. EAP peer presents an identifier that was issued
previously by the server, to attempt the session resumption. When a peer
attempts to resume a TLS session using such an identifier it allows
the EAP server to detect peer's revisit to the network. Similarly,
use of Protected Access Credential (PAC) in EAP-FAST method
(<xref section="3.2.2" sectionFormat="of" target="RFC4851"/>) can potentially help the server
determine peer's presence across session resumptions. This document
recommends use of session resumption to be limited to the current
association to the network. The EAP peer <bcp14>MUST</bcp14> perform full TLS handshake
during the first phase after every new association to the network.
For example, an EAP peer can continue to resume TLS sessions during the
re-authentications as long as the client device is associated to same
access point of the secure wireless LAN <xref target="IEEE-802.11"/>, so session resumption
<bcp14>MUST</bcp14> be used only on the same Authenticator as for the original session.</t>
      </section>
      <section anchor="key-material-generation">
        <name>Key Material Generation</name>
        <t>The keys generated by this protocol, MSK and EMSK, are each in 64
octets in length. The protocol uses TLS exporter interface <xref target="RFC5705"/>
to generate the key material. The output of the exporter is intended
to be associated with the TLS session established in the first phase,
a unique label string, and a context. Type is the value of the EAP Type
field defined in <xref section="2" sectionFormat="of" target="RFC3748"/>, and it contributes to the
context value. For EAP-PPT, the Type value is 0x39. Context value is
constructed by concatenating Type value with Privacy Pass token value
that was sent in EAP-Response/PPT-Challenge message. Key material <bcp14>MUST</bcp14>
be generated by the EAP-PPT peer after receiving EAP Success from the
EAP-PPT server.</t>
        <artwork><![CDATA[
Type = 0x39
Context = Type || token
Key_Material = TLS_Exporter("EXPORTER_EAP_PPT_Key_Material",
                            Context, 128)
]]></artwork>
        <t>The MSK and EMSK are derived from the Key_Material as described in
<xref section="7.10" sectionFormat="of" target="RFC3748"/>.</t>
        <artwork><![CDATA[
MSK = Key_Material(0, 63)
EMSK = Key_Material(64, 127)
]]></artwork>
        <t>TLS_Exporter function is defined in <xref section="4" sectionFormat="of" target="RFC5705"/></t>
      </section>
      <section anchor="channel-binding">
        <name>Channel Binding</name>
        <t><xref target="RFC6677"/> defines channel bindings for EAP which solve the "lying NAS" and
the "lying provider" problems, using a process in which the EAP peer gives
information about the characteristics of the service provided by
the authenticator to the Authentication, Authorization, and Accounting (AAA) 
server protected within the EAP authentication method. This allows the server
to verify the authenticator is providing information to the peer that is 
consistent with the information received from this authenticator as well as 
the information stored about this authenticator.</t>
        <t>EAP-PPT server can optionally request channel binding information to the EAP-
PPT peer after a successful redemption of the token sent in EAP-Response/PPT-
Challenge message. EAP-PPT server uses EAP-Request/PPT-Channel-Binding message
to request the channel binding information to the peer. EAP-PPT server <bcp14>MUST</bcp14>
send EAP-Request/PPT-Channel-Binding message after a successful redemption of
the token and before sending EAP-Success message. EAP-PPT peer <bcp14>MUST</bcp14> send
channel binding information in EAP-Response/PPT-Channel-Binding message in
response to EAP-Request/PPT-Channel-Binding message. EAP-PPT <bcp14>MUST</bcp14> send
the channel-binding information as defined in <xref section="5.3" sectionFormat="of" target="RFC6677"/>.</t>
        <t>EAP-Request/PPT-Channel-Binding message is optional, and therefore EAP-PPT
server may skip it when the EAP server has already received the information
through EAP methods executed before EAP-PPT.</t>
      </section>
    </section>
    <section anchor="message-format">
      <name>Message Format</name>
      <section anchor="packet-format">
        <name>Packet Format</name>
        <t>EAP-PPT Packet Format is shown below.</t>
        <figure anchor="header">
          <name>EAP-PPT Header</name>
          <artwork><![CDATA[
0                   1                   2                   3   
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Code      |  Identifier   |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |    Subtype    |             Data             
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                                                                

]]></artwork>
        </figure>
        <t>Code
      1 for request, 2 for response.</t>
        <t>Identifier
      The Identifier field is one octet and aids in matching
      responses with requests.  The Identifier field <bcp14>MUST</bcp14> be
      changed for each request packet and <bcp14>MUST</bcp14> be echoed in
      each response packet.</t>
        <t>Length
      The Length field is two octets and indicates the length
      of the EAP packet including the Code, Identifier, Length,
      Type, Subtype, and Data fields.</t>
        <t>Type
      57 (EAP-PPT)</t>
        <t>Subtype
      Message subtypes as defined in <xref target="subtype"/></t>
        <t>Data
      Data in JSON <xref target="RFC8259"/> format.</t>
      </section>
      <section anchor="subtypes">
        <name>Subtypes</name>
        <table anchor="subtype">
          <name>EAP-PPT Subtypes</name>
          <thead>
            <tr>
              <th align="left">Subtype</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">1</td>
              <td align="left">A PPT-Challenge request or PPT-Challenge response.</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">A PPT-Error request or PPT-Error response.</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">A PPT-Channel-Binding request or PPT-Channel-Binding response.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="messages">
        <name>Messages</name>
        <t>This section specifies the messages used in EAP-PPT.</t>
        <section anchor="eap-requestppt-challenge">
          <name>EAP-Request/PPT-Challenge</name>
          <t>The Server sends this message to the peer after successfully
learning the identity of the peer. The purpose of this message
is to present multiple token challenges to the peer and receive
a Privacy Pass token for one of the challenges from the peer.
This message is sent with subtype 1 (<xref target="subtype"/>) and data is
encoded in JSON <xref target="RFC8259"/> format as shown in <xref target="challenges"/>
below -</t>
          <table anchor="challenges">
            <name>Token Challenges</name>
            <thead>
              <tr>
                <th align="left">Key</th>
                <th align="left">Type</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">challenges</td>
                <td align="left">array</td>
                <td align="left">Array of one or more objects. Each element is an object that contains keys that are part the challenge. This is a required parameter.</td>
              </tr>
            </tbody>
          </table>
          <table anchor="challengekeys">
            <name>Token Challenge Keys</name>
            <thead>
              <tr>
                <th align="left">Key</th>
                <th align="left">Type</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">challenge</td>
                <td align="left">string</td>
                <td align="left">A string that contains a base64url token challenge value, encoded per <xref target="RFC4648"/>. This document follows the default padding behavior described in <xref section="3.2" sectionFormat="of" target="RFC4648"/>, so the base64url value <bcp14>MUST</bcp14> include padding. The token structure is defined in <xref section="2.2.1" sectionFormat="of" target="RFC9577"/>. This key is based on the challenge parameter defined in <xref section="2.1.2" sectionFormat="of" target="RFC9577"/>. This is a required parameter.</td>
              </tr>
              <tr>
                <td align="left">token-key</td>
                <td align="left">string</td>
                <td align="left">A string that contains a base64url-encoded public key for use with the issuance protocol indicated by the challenge key. This key is based on the token-key parameter defined in <xref section="2.1.2" sectionFormat="of" target="RFC9577"/>. This parameter <bcp14>MAY</bcp14> be omitted in deployments where peers are able to retrieve the Issuer key using an out-of-band mechanism.</td>
              </tr>
              <tr>
                <td align="left">extension-types</td>
                <td align="left">array</td>
                <td align="left">An array of ExtensionType that the EAP-PPT server is requesting the token to bind to. ExtensionType is defined in Section 3 of I-D.draft-ietf-privacypass-auth-scheme-extensions. This parameter is meaningful only if the Issuer, EAP-PPT peer and server have an out-of-band agreement to bind the extension to the token. This is an optional parameter.</td>
              </tr>
            </tbody>
          </table>
          <t>EAP-Request/PPT-Challenge Message carries JSON key "challenges"
which is a JSON array of JSON objects. Each element in
"challenges" is a JSON object that contains two keys i.e.
"challenge" and "token-key", and optionally an array of
"extension-types" as well, as shown in <xref target="challengekeys"/>.</t>
          <t>Example EAP-Request/PPT-Challenge Data -</t>
          <figure anchor="pptchallenge">
            <artwork><![CDATA[
{
    "challenges":
    [
        {
            "challenge": "AAIADmlzc3Vlci5leGFtcGxlIIo-g6M9mAB
            dLzC-9Bn6a_TNXGAF42sShbu0zNQPpLODAA5vcmlnaW4uZXhh
            bXBsZQ==",
            "token-key": "MIIBUjA9BgkqhkiG9w0BAQowMKANMAsGCWC
            GSAFlAwQCAqEaMBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgKi
            AwIBMAOCAQ8AMIIBCgKCAQEAyxrta2qV9bHOATpM_KsluUsuZ
            KIwNOQlCn6rQ8DfOowSmTrxKxEZCNS0cb7DHUtsmtnN2pBhKi
            7pA1I-beWiJNawLwnlw3TQz-Adj1KcUAp4ovZ5CPpoK1orQwy
            B6vGvcte155T8mKMTknaHl1fORTtSbvm_bOuZl5uEI7kPRGGi
            KvN6qwz1cz91l6vkTTHHMttooYHGy75gfYwOUuBlX9mZbcWE7
            KC-h6-814ozfRex26noKLvYHikTFxROf_ifVWGXCbCWy7nqR0
            zq0mTCBz_kl0DAHwDhCRBgZpg9IeX4PwhuLoI8h5zUPO9wDSo
            1Kpur1hLQPK0C2xNLfiJaXwIDAQAB"
        },
        {
            "challenge": "AAEADmlzc3Vlci5leGFtcGxlIIo-g6M9mA
            BdLzC-9Bn6a_TNXGAF42sShbu0zNQPpLODAA5vcmlnaW4uZXh
            hbXBsZQ==",
            "token-key": "67H-0zgxA2HAjQx1dpaWcSluBemaF9eSbf
            wopT-r1In6wPgryoYkmmaPOlv6s3TJ"  
            "extension-types":
            [
                1,5,6
            ]
        }
    ]
}
]]></artwork>
          </figure>
        </section>
        <section anchor="eap-responseppt-challenge">
          <name>EAP-Response/PPT-Challenge</name>
          <t>The peer sends this message to the server in response to a valid
EAP-Request/PPT-Challenge Message. Sending this Message indicates
that the peer was able to look up a Privacy Pass token for one of
the received challenges. This message is sent with subtype 1
(<xref target="subtype"/>) and data is encoded in JSON <xref target="RFC8259"/> format as
shown in <xref target="challengeresponse"/>.</t>
          <table anchor="challengeresponse">
            <name>Token Challenge Response Keys</name>
            <thead>
              <tr>
                <th align="left">Key</th>
                <th align="left">Type</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">token</td>
                <td align="left">string</td>
                <td align="left">A string that contains base64url-encoded token structure value per <xref section="2.2.1" sectionFormat="of" target="RFC9577"/>. This is a required parameter.</td>
              </tr>
              <tr>
                <td align="left">extensions</td>
                <td align="left">string</td>
                <td align="left">A string that contains base64url-encoded extension structure (Section 3 of .draft-ietf-privacypass-auth-scheme-extensions). This is an optional parameter.</td>
              </tr>
            </tbody>
          </table>
          <t>The peer <bcp14>MUST</bcp14> send empty token string when it fails to find
a valid token for one of the received challenges. On receiving
an empty token string in this message, the server <bcp14>MUST</bcp14> send 
EAP-Failure message to the peer.</t>
          <t>Example EAP-Response/PPT-Challenge Data -</t>
          <figure anchor="pptchallengeresponse">
            <artwork><![CDATA[
{
    "token": "AAEADmlzc4Vlci5leGFtcGxlIIo-g6M9mABdLzC-1Bn6a_TNX
    GAF52sShbu0zNQPpLODAA5vcmlnaW4uZXhhbXBsCB=="
}
]]></artwork>
          </figure>
        </section>
        <section anchor="eap-requestppt-error">
          <name>EAP-Request/PPT-Error</name>
          <t>The server sends this message to the peer when token
redemption fails. The purpose of this message is to report
redemption failure to the peer along with relevant information
that may be useful to the peer. This message is sent with
subtype 2 (<xref target="subtype"/>) and data is encoded in JSON <xref target="RFC8259"/>
format as shown in <xref target="error"/>.</t>
          <table anchor="error">
            <name>Error Keys</name>
            <thead>
              <tr>
                <th align="left">Key</th>
                <th align="left">Type</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">code</td>
                <td align="left">number</td>
                <td align="left">An error code that describes the reason for the redemption failure. The value <bcp14>MUST</bcp14> be in the range 0-255. When the "enterprise-number" key is absent, this is a globally scoped value registered in the "EAP-PPT Error Codes" registry (see <xref target="iana"/>). When the "enterprise-number" key is present, this value is interpreted within the private number space of that enterprise (see <xref target="iana"/>). This key is required.</td>
              </tr>
              <tr>
                <td align="left">description</td>
                <td align="left">string</td>
                <td align="left">Human-readable UTF-8 text providing additional information, used to assist the user of the client device in understanding the error. This is an optional key.</td>
              </tr>
              <tr>
                <td align="left">session-timeout</td>
                <td align="left">number</td>
                <td align="left">Time in seconds after which the session is terminated by the authenticator. This is an optional key.</td>
              </tr>
              <tr>
                <td align="left">enterprise-number</td>
                <td align="left">number</td>
                <td align="left">The vendor's IANA-assigned SMI Network Management Private Enterprise Number (PEN), obtained from the "Private Enterprise Numbers" registry <xref target="RFC9371"/>. When present, the "code" value is interpreted within this enterprise's private number space, allowing vendors to self-issue error codes without registration (see <xref target="iana"/>). This is an optional key.</td>
              </tr>
            </tbody>
          </table>
          <t>Example EAP-Request/PPT-Error Data -</t>
          <figure anchor="ppterror">
            <artwork><![CDATA[
{
    "code": 1,
    "description": "invalid token format"
}
]]></artwork>
          </figure>
          <section anchor="errorcodes">
            <name>Error Codes</name>
            <table anchor="errorcode">
              <name>Error Codes</name>
              <thead>
                <tr>
                  <th align="left">Code</th>
                  <th align="left">Description</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td align="left">0</td>
                  <td align="left">Reserved.</td>
                </tr>
                <tr>
                  <td align="left">1</td>
                  <td align="left">This code indicates a failure in validating the token data. This may occur due to incorrect formatting or encoding of the data.</td>
                </tr>
                <tr>
                  <td align="left">2</td>
                  <td align="left">This code indicates redemption failure. This is a fatal error, and only way for the peer to recover from this failure is to retry the EAP-PPT authentication with new token.</td>
                </tr>
                <tr>
                  <td align="left">3</td>
                  <td align="left">This code means the EAP-PPT server is unable to perform the token redemption at the moment. This can be used by the client to retry spending the token later.</td>
                </tr>
                <tr>
                  <td align="left">4</td>
                  <td align="left">This code indicates the server detected a double spend of the token. This is a fatal error, and only way for the peer to recover from this failure is to retry the EAP-PPT authentication with a new token.</td>
                </tr>
                <tr>
                  <td align="left">5</td>
                  <td align="left">This code indicates undefined failure. The client <bcp14>MAY</bcp14> choose to spend the same token later.</td>
                </tr>
                <tr>
                  <td align="left">6</td>
                  <td align="left">This code indicates token redemption success with an unexpected extension parameter value. This is a fatal error, and only way for the peer to recover from this failure is to retry the EAP-PPT authentication with a new token, binding to expected extension parameter value.</td>
                </tr>
                <tr>
                  <td align="left">7</td>
                  <td align="left">This code indicates token redemption success with an unexpected extension parameter value. However, the server side policy makes this a non-fatal error, and therefore, the peer is authorized unconditionally.</td>
                </tr>
                <tr>
                  <td align="left">8</td>
                  <td align="left">This code indicates token Redemption success with an unexpected extension parameter value. However, the server side policy makes this a non-fatal error, and therefore the peer is authorized conditionally. The condition here is - an authorization for limited time. The limited time authorization is indicated by sending session-timeout parameter along with the error code.</td>
                </tr>
                <tr>
                  <td align="left">9-191</td>
                  <td align="left">Unassigned. Allocated on a Specification Required basis (see <xref target="iana"/>).</td>
                </tr>
                <tr>
                  <td align="left">192-255</td>
                  <td align="left">Reserved.</td>
                </tr>
              </tbody>
            </table>
            <t>The codes in <xref target="errorcode"/> are globally scoped values from the
"EAP-PPT Error Codes" registry (see <xref target="iana"/>) and are carried in the
"code" key when the "enterprise-number" key is absent. A vendor that
wishes to define its own error codes <bcp14>MUST NOT</bcp14> pick an arbitrary value
from this space; instead, it indicates a vendor-specific error by
including the "enterprise-number" key set to its IANA-assigned Private
Enterprise Number (PEN) <xref target="RFC9371"/>, in which case the "code" value is
interpreted within that enterprise's private number space (see
<xref target="iana"/>).</t>
          </section>
        </section>
        <section anchor="eap-responseppt-error">
          <name>EAP-Response/PPT-Error</name>
          <t>The peer sends this message as an acknowledgement to the
server in response to a valid EAP-Request/PPT-Error Message.
This message is sent with subtype 2 (<xref target="subtype"/>) and it does
not carry data.</t>
        </section>
        <section anchor="eap-requestppt-channel-binding">
          <name>EAP-Request/PPT-Channel-Binding</name>
          <t>EAP-PPT server sends this message to the peer after a successful
redemption of the token received in EAP-Response/PPT-Challenge
message. The purpose of this message is to request channel
binding information to the peer. This message is sent with
subtype 3 (<xref target="subtype"/>) and and it does not carry data.</t>
        </section>
        <section anchor="eap-responseppt-channel-binding">
          <name>EAP-Response/PPT-Channel-Binding</name>
          <t>The peer sends this message as an in response to a EAP-Request/
PPT-Channel-Binding Message. This message is sent with subtype 3
(<xref target="subtype"/>) and the data field contains channel-binding message
as defined in <xref section="5.3" sectionFormat="of" target="RFC6677"/>.
EAP-PPT server <bcp14>MAY</bcp14> send EAP-Failure message if the channel-binding
data is not found valid or satisfactory, depending on the server
side policy.</t>
        </section>
      </section>
    </section>
    <section anchor="errorhandling">
      <name>Error Handling</name>
      <section anchor="client-failure-scenarios">
        <name>Client Failure Scenarios</name>
        <section anchor="eap-ppt-peer-found-no-valid-token-for-token-challenge">
          <name>EAP-PPT peer found no valid token for token challenge</name>
          <t>If on receipt of an EAP-Request/PPT-Challenge, the EAP-PPT peer cannot present
a valid token matching for one of the received token challenges, then the 
EAP-PPT peer <bcp14>MUST</bcp14> respond with an empty token string in the
EAP-Response/PPT-Challenge message. In this case, the EAP-PPT server <bcp14>MUST</bcp14>
terminate the conversation by sending an EAP Failure packet.</t>
        </section>
        <section anchor="eap-ppt-peer-found-no-token-with-valid-extension-types-for-token-challenge">
          <name>EAP-PPT peer found no token with valid extension-types for token challenge</name>
          <t>If on receipt of an EAP-Request/PPT-Challenge, the EAP-PPT peer cannot present
a valid token bound to the extension-type(s) requested by the EAP-PPT server for 
one of the received token challenges, then the EAP-PPT peer <bcp14>MUST</bcp14> respond with
an empty token string in the EAP-Response/PPT-Challenge message. 
In this case, the EAP-PPT server <bcp14>MUST</bcp14> terminate the conversation by sending 
an EAP Failure packet.</t>
        </section>
      </section>
      <section anchor="server-failure-scenarios">
        <name>Server Failure Scenarios</name>
        <section anchor="eap-ppt-server-found-no-valid-token-challenge-for-user-nai">
          <name>EAP-PPT server found no valid token challenge for user NAI</name>
          <t>If on receipt of a EAP Identity Response the EAP-PPT server does not have 
a token challenge for the user's NAI, the EAP-PPT server <bcp14>MUST</bcp14> terminate the
conversation by responding with an EAP Failure packet.</t>
        </section>
        <section anchor="eap-ppt-server-is-unable-to-validate-token-data">
          <name>EAP-PPT server is unable to validate token data</name>
          <t>If on receipt of an EAP-Response/PPT-Challenge, the EAP-PPT server is
unable to validate the token data presented by the EAP-PPT peer (due to 
incorrect data, formatting or encoding), the EAP-PPT server <bcp14>MUST</bcp14> respond with
an EAP-Request/PPT-Error with error code 1 (see <xref target="errorcodes"/>). The 
EAP-PPT peer <bcp14>MUST</bcp14> subsequently acknowledge the error with an 
EAP-Response/PPT-Error message, after which the EAP-PPT server <bcp14>MUST</bcp14> respond
with EAP Failure as shown in <xref target="authfail"/>.</t>
        </section>
        <section anchor="eap-ppt-server-token-redemption-failure">
          <name>EAP-PPT server token redemption failure</name>
          <t>If on receipt of an EAP-Response/PPT-Challenge, the EAP-PPT server
token redemption fails, the EAP-PPT server <bcp14>MUST</bcp14> respond with an
EAP-Request/PPT-Error with error code 2 (see <xref target="errorcodes"/>).
The EAP-PPT peer <bcp14>MUST</bcp14> subsequently acknowledge the error with an
EAP-Response/PPT-Error, after which the EAP-PPT server <bcp14>MUST</bcp14> respond with 
EAP Failure as shown in <xref target="authfail"/>. The EAP-PPT peer <bcp14>MUST NOT</bcp14> use this
token in subsequent authentication.</t>
        </section>
        <section anchor="eap-ppt-server-temporary-failure">
          <name>EAP-PPT server temporary failure</name>
          <t>If the EAP-PPT server is (temporarily) unable to perform token redemption,
and it receives an EAP-Response/PPT-Challenge, the EAP-PPT server <bcp14>MUST</bcp14> 
respond with an EAP-Request/PPT-Error with error code 3 (see <xref target="errorcodes"/>).
The EAP-PPT peer <bcp14>MUST</bcp14> subsequently acknowledge the error with an 
EAP-Response/PPT-Error message, after which the EAP-PPT server <bcp14>MUST</bcp14> respond
with EAP Failure as shown in <xref target="authfail"/>. The EAP-PPT peer <bcp14>MAY</bcp14> use this token
in subsequent authentication.</t>
        </section>
        <section anchor="eap-ppt-server-detected-double-spend">
          <name>EAP-PPT server detected double spend</name>
          <t>The EAP-PPT server <bcp14>MAY</bcp14> implement double spend detection, to ensure a token
is only used once. If the EAP-PPT server implementing double spend detection
detects double spend of a token sent in an EAP-Response/PPT-Challenge, 
the EAP-PPT server <bcp14>MUST</bcp14> respond with an EAP-Request/PPT-Error with error code 4
(see <xref target="errorcodes"/>). The EAP-PPT peer <bcp14>MUST</bcp14> subsequently acknowledge the error 
with an EAP-Response/PPT-Error message, after which the EAP-PPT server <bcp14>MUST</bcp14>
respond with EAP Failure as shown in <xref target="authfail"/>. The EAP-PPT peer <bcp14>MUST NOT</bcp14>
use this token in subsequent authentication.</t>
        </section>
        <section anchor="eap-ppt-server-undefined-failure">
          <name>EAP-PPT server undefined failure</name>
          <t>If the EAP-PPT server is experiencing an undefined failure, when receiving
an EAP-Response/PPT-Challenge, the EAP-PPT server <bcp14>MUST</bcp14> respond with an 
EAP-Request/PPT-Error with error code 5 (see <xref target="errorcodes"/>). The EAP-PPT peer
<bcp14>MUST</bcp14> subsequently acknowledge the error with an EAP-Response/PPT-Error message,
after which the EAP-PPT server <bcp14>MUST</bcp14> respond with EAP Failure as shown 
in <xref target="authfail"/>. The EAP-PPT peer <bcp14>MAY</bcp14> use this token in subsequent 
authentication.</t>
        </section>
        <section anchor="eap-ppt-server-token-redemption-success-with-unexpected-extension-value">
          <name>EAP-PPT server token redemption success with unexpected extension value</name>
          <t>If on receipt of an EAP-Response/PPT-Challenge, the EAP-PPT server finds an
unexpected extension parameter value, the EAP-PPT server <bcp14>MAY</bcp14> deem this to be a
fatal error. In this case the EAP-PPT server <bcp14>MAY</bcp14> respond with an 
EAP-Request/PPT-Error with error code 6 (see <xref target="errorcodes"/>). The EAP-PPT peer 
<bcp14>MUST</bcp14> subsequently acknowledge the error with an EAP-Response/PPT-Error message,
 after which the EAP-PPT server <bcp14>MUST</bcp14> respond with EAP Failure as shown in 
<xref target="authfail"/>. The EAP-PPT peer <bcp14>MUST NOT</bcp14> use this token in subsequent
authentication.</t>
        </section>
      </section>
      <section anchor="conditional-acceptance-scenarios">
        <name>Conditional Acceptance Scenarios</name>
        <section anchor="eap-ppt-server-redemption-unexpected-extension-value-unconditional-access">
          <name>EAP-PPT server redemption, unexpected extension value, unconditional access</name>
          <t>If on receipt of a EAP-Response/PPT-Challenge, the EAP-PPT server token
redemption succeeds, but the EAP-PPT server finds an unexpected extension 
parameter value, The EAP-PPT server <bcp14>MAY</bcp14> deem this to be a recoverable error 
and allow the session to proceed unconditionally. In this case, the EAP-PPT
server <bcp14>MAY</bcp14> respond with an EAP-Request/PPT-Error with error code 7 
(see <xref target="errorcodes"/>). The EAP-PPT peer <bcp14>MUST</bcp14> subsequently acknowledge the
error with an EAP-Response/PPT-Error message, after which the EAP-PPT server 
<bcp14>MUST</bcp14> respond with EAP Success as shown in <xref target="authsuccess"/>.</t>
        </section>
        <section anchor="eap-ppt-server-redemption-unexpected-extension-value-conditional-access">
          <name>EAP-PPT server redemption, unexpected extension value, conditional access</name>
          <t>If on receipt of a EAP-Response/PPT-Challenge, the EAP-PPT server token
redemption succeeds, but the EAP-PPT server finds an unexpected extension
parameter value, The EAP-PPT server <bcp14>MAY</bcp14> deem this to be a recoverable error and
allow the session to proceed conditionally. In this case the EAP-PPT server 
<bcp14>MAY</bcp14> respond with an EAP-Request/PPT-Error with error code 8 
(see <xref target="errorcodes"/>). The EAP-PPT server <bcp14>MUST</bcp14> send a session-timeout value in 
the response message. The EAP-PPT peer <bcp14>MUST</bcp14> subsequently acknowledge the
error with an EAP-Response/PPT-Error message, after which the EAP-PPT server 
<bcp14>MUST</bcp14> respond with EAP Success as shown in <xref target="authsuccess"/>. The EAP Server <bcp14>MUST</bcp14>
include a session-timeout attribute in the RADIUS Access-Accept packet to the 
Authenticator, so it can terminate the session when the session-timeout 
condition is no longer met.</t>
          <t>An example of such condition is when the peer needs to remediate its device
to be compliant with the network access policy, or if the peer needs to get a new
token issued from the Issuer with expected extension parameter value. The length
of the session timer should in principle be as short as possible, but long enough
for the device to reach compliance. For example for token issuance, if there is 
no user interaction required for issuance, a session timer of 1 minute should be 
sufficient. For remediation where user interaction is required, the session timeout 
could be more like 5 to 10 minutes.</t>
        </section>
      </section>
    </section>
    <section anchor="deployment">
      <name>Deployment Considerations</name>
      <t>EAP-PPT can be leveraged in a number of use cases and deployment models.
This section covers generic deployment recommendations to ensure end-to-end
privacy and unlinkability of tokens. This section also describes some specific
expected deployment models in which EAP-PPT can be leveraged.</t>
      <t>Although this section covers deployment of Origin, Issuer and Attester as it
relates to the EAP-PPT server, specifics on how to deploy Issuer and Attester
are not described here but can be found in <xref section="4" sectionFormat="of" target="RFC9576"/>.</t>
      <section anchor="recommendations-for-preserving-privacy">
        <name>Recommendations for preserving privacy</name>
        <section anchor="deploycollocation">
          <name>Collocating other functions with the EAP-PPT Server</name>
          <t>As discussed in <xref section="4" sectionFormat="of" target="RFC9576"/> and in <xref target="privacy"/>, it is
recommended to use a deployment model that guarantees EAP peer-server,
Issuer-EAP peer, and Attester-EAP server unlinkability. This is especially
pertinent in public use cases. In private use cases a single entity could 
deploy all functions.</t>
          <t>It is recommended to collocate the phase 1 EAP-Server with the EAP-PPT server,
as EAP-Server separation can introduce vulnerabilities as described in
<xref target="eapserver"/>.</t>
        </section>
        <section anchor="deployclientid">
          <name>Protecting client identity</name>
          <t>Please refer to the <xref target="privacy"/> section for deployment considerations that are
required to protect the client identity.</t>
        </section>
        <section anchor="separatingtime">
          <name>Separating Issuance and Verification over time</name>
          <t><xref section="3.1" sectionFormat="of" target="RFC9576"/> describes the interaction between Privacy Pass
Issuance and Verification protocols. As described, in many cases, when a Client
interacts with an Origin, a Client will obtain a token at the time of that 
interaction. In this case the time between Issuance and Verification is short 
enough to allow for correlation.</t>
          <t>In order to further reduce the probability of collusion between actors
participating in Issuance and Verification and achieve Issuer-Client and 
Origin-Client unlinkability, Issuance and Verification can be separated
over time. A client can request Issuance of one or more tokens and cache
them in secure storage. This allows separation in time between Issuance and 
Verification of the token, so time-based correlation is not possible. When 
leveraging EAP-PPT to access network resources, it is possible that the client
does not have a network interface available to perform Issuance over, so 
also for this reason caching tokens is preferred.</t>
        </section>
      </section>
      <section anchor="publiccase">
        <name>Recommendations for usage in public use cases</name>
        <t>In public use cases, a network service provider may be working with one or more
identity providers that are authenticating end-user devices using privacy pass
tokens. As described in <xref target="deploycollocation"/> it is recommended for the EAP-PPT
server to be implemented by an entity other than the Attester or Issuer, to
avoid the perception of collusion. In a public deployment scenario, the EAP-PPT
server is likely to be collocated with the network service provider, or could 
be a service that the network service provider consumes from a 3rd party 
service provider, other than the Attester or Issuer.</t>
        <t>In order to verify a token, EAP-PPT Server requires key material for the issuers
specified in the TokenChallenge. In a public use case, this information will 
have to be shared between the issuer and EAP-PPT Server. The mechanism in which
the Issuer shares this information with the EAP-PPT server is out of scope of 
this document.</t>
      </section>
      <section anchor="recommendations-for-usage-in-private-use-cases">
        <name>Recommendations for usage in private use cases</name>
        <t>It is recommended that the guidelines stipulated in <xref target="publiccase"/> are also
followed for private deployments, however in use cases where the network service 
provider is also the Attester, collocation of entities may be unavoidable.
When collocating entities, separating Issuance and Verification over time as
described in <xref target="separatingtime"/> provides additional privacy protection, as it
becomes harder for  entities to collude.</t>
      </section>
      <section anchor="recommendations-for-usage-in-federated-use-cases-openroaming">
        <name>Recommendations for usage in federated use cases (OpenRoaming)</name>
        <t>OpenRoaming, as described in <xref target="I-D.draft-tomas-openroaming"/>, is an open
federation of entities of different types, mainly targeted at providing
public Wi-Fi access. OpenRoaming defines distinct roles in its federation
architecture: Network Access Providers provide access to network resources,
and Identity Providers authenticate users for those network access providers.
Members of the federation are identified by private PKI, managed by the
Wireless Broadband Alliance (WBA). The members use these certificates to
mutually authenticate each other and secure RADIUS over TLS (RadSec) messages
used to transport EAP conversations between Network Access Providers and Identity
Providers. A Network Access Provider discovers the authoritative Identity
Provider for a client by resolving the realm portion of the outer identity
provided by the client as described in <xref target="RFC7585"/>.</t>
        <t>OpenRoaming comprises a privacy policy, and aims to protect end-user privacy,
however as it uses RADIUS attributes and EAP, inherently, information 
about end-users could be shared between Identity Provider and Network Access
Provider. Examples of RADIUS attributes that could expose user privacy are
Calling-Station-Id (MAC address of the device), Chargeable-User-ID, NAS-ID (location).
<xref section="8" sectionFormat="of" target="I-D.draft-tomas-openroaming"/> describes the RADIUS
attributes OpenRoaming supports.  EAP-PPT can add additional privacy protection
to a federated use case such as OpenRoaming by separating the Issuance from 
Verification, so the entity performing the Authentication is not able to
willingly or unwillingly share private information.</t>
        <t>Where an OpenRoaming IDP both issues and verifies a credential, with EAP-PPT
these roles are separated. In order to implement EAP-PPT in OpenRoaming,
the Attester/Issuer would have to have an agreement with the EAP-PPT server
verifying or redeeming the token. Together they are the OpenRoaming IDP.
Alternatively, new roles could be defined in the OpenRoaming federation to 
allow Attesters/Issuers to interoperate with EAP-PPT servers within the 
OpenRoaming federation.</t>
        <t>The EAP-PPT Server could be implemented by the Network Access Provider directly,
or by an entity in the federation.</t>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <section anchor="privatetoken-authentication-scheme">
        <name>PrivateToken authentication Scheme</name>
        <t>Security considerations applicable discussed in <xref section="5" sectionFormat="of" target="RFC9577"/>
are applicable to EAP-PPT.</t>
      </section>
      <section anchor="integrity-protection">
        <name>Integrity Protection</name>
        <t>Since EAP-PPT method is used for anonymous authentication of EAP
peer, it is <bcp14>REQUIRED</bcp14> to execute it within a server authenticated
TLS tunnel, provided by a tunnel-based EAP method. When EAP-PPT
is used to authenticate IKEv2 initiator to the responder, it is
<bcp14>REQUIRED</bcp14> to use it in conjunction with a public-key-signature-
based authentication of the responder to the initiator, before
initiating the EAP-PPT authentication.</t>
      </section>
      <section anchor="eapserver">
        <name>EAP Server implementation</name>
        <t>Allowing the EAP Phase 1 conversation to be terminated at a different server 
than the EAP-Phase 2 conversation can introduce vulnerabilities if there is 
not a proper trust relationship and protection for the protocol between the 
two servers.</t>
        <t>As EAP-PPT is an identity-free credential, it mitigates loss of identity 
protection scenarios better than EAP-methods carrying identity.
Identity protection is ensured, even if the credential is exposed to an 
attacker. Offline dictionary attacks are also mitigated with EAP-PPT as the 
credential is a single-use cryptographically signed token.</t>
        <t>Separation of Phase 1 and Phase 2 EAP server with EAP-PPT as the inner
EAP method can still introduce vulnerabilities to on-path active attacks
between these EAP Servers if there is not a proper trust relationship between
the servers, or if the protocol between the servers is not properly secured.
An attacker could intercept a token in the PPT-Challenge response, or alter
an EAP-Success or EAP-Failure message. It is important to note however that
due to the single-use identity-free nature of the credential, the longevity of
the attack is limited.</t>
        <t>Therefore, separation of the EAP-Server (Phase 1) from the EAP-PPT Server
(Phase 2) conversation is <bcp14>NOT RECOMMENDED</bcp14>.</t>
      </section>
      <section anchor="channel-binding-1">
        <name>Channel Binding</name>
        <t><xref target="RFC6677"/> defines channel bindings for EAP which solve the "lying NAS" and
the "lying provider" problems, using a process in which the EAP peer gives
information about the characteristics of the service provided by
the authenticator to the Authentication, Authorization, and Accounting (AAA) 
server protected within the EAP authentication method. This allows the server
to verify the authenticator is providing information to the peer that is 
consistent with the information received from this authenticator as well as 
the information stored about this authenticator.</t>
        <t>When collocating the EAP and EAP-PPT servers, as recommended in <xref target="eapserver"/>,
channel binding can be implemented by leveraging a Phase 1 EAP method 
that supports Channel binding as defined in <xref target="RFC6677"/>.
It is therefore <bcp14>RECOMMENDED</bcp14> to leverage a Phase 1 EAP method that supports
Channel binding with EAP-PPT, for example TEAP <xref target="RFC7170"/>, as described in 
<xref section="3.11.4" sectionFormat="of" target="RFC7170"/>.</t>
      </section>
      <section anchor="token-redemption-server-implementation">
        <name>Token Redemption Server implementation</name>
        <t>EAP-PPT server <bcp14>MAY</bcp14> be implemented to perform token Redemption flow
with an external redemption service, configured with required keys
for redemption. In such scenario, a malicious EAP peers may generate
a lot of protocol requests to mount a denial-of-service attack on
the service. The EAP-PPT server implementation <bcp14>SHOULD</bcp14> take this
into account and <bcp14>SHOULD</bcp14> take steps to limit the requests it generates
towards the redemption service.</t>
      </section>
      <section anchor="abuse">
        <name>Abuse</name>
        <t>EAP-PPT provides anonymous network access to peers possessing valid
Privacy Pass tokens. This anonymous access can potentially be abused.
This is not a problem that is unique to EAP-PPT. Other EAP tunneled 
EAP methods or other methods that provide anonymous access, such as EAP-PSK
<xref target="RFC4764"/>, EAP-TTLS and EAP-TLS with anonymous certificates, also have
similar abuse potential.</t>
        <t>To counter such abuse, network operators may implement various abuse
mitigation techniques, such as:</t>
        <ul spacing="normal">
          <li>
            <t>Leverage the attestation: EAP-PPT relies on a token that is proof of 
 an attestation. The attestation required for network access will rely on the 
 policy of the network provider. As such the attestation policy can be designed 
 to ensure that both the device and the user meet that policy before being 
 issued a token. This can help mitigate abuse by ensuring that only
 authorized users and devices are able to obtain tokens. Further more,
 in case where abuse is detected, future attestation can be denied.</t>
          </li>
          <li>
            <t>Leverage a Layer 2 identifier: In case of a public network, it may not be 
 possible to update future attestation based on abuse detection. In this
 case a session can be blocked based on the Layer 2 identifier of the device
 (for example the MAC address). As described in <xref target="RFC9797"/>, there are 
 various levels of trust a device may have in a network. Based on the trust level,
 the device may present a Layer 2 identifier that is stable over time, or a
 randomized one. In case of EAP Authentication, devices present a stable Layer 2
 identifier that is stable across sessions within a certain timeframe. This layer 2
 identifier is used for association, so the advantage of leveraging it for abuse
 mitigation is that access can be denied at association time, before EAP authentication
 is performed.</t>
          </li>
          <li>
            <t>Leverage network-level abuse mitigation techniques: Network operators
 may have various network-level abuse mitigation techniques in place,
 such as rate-limiting, traffic filtering, and monitoring of network traffic
 to detect and mitigate abusive behavior. These techniques can be applied
 to EAP-PPT authenticated sessions. With these techniques, mitigation does not happen
 by excluding the user or device, but happens by mitigating the abuse itself.</t>
          </li>
        </ul>
      </section>
      <section anchor="security-claims">
        <name>Security Claims</name>
        <t>This section provides the security claims required by <xref target="RFC3748"/>.</t>
        <t>Auth. mechanism: Privacy Pass token</t>
        <t>Ciphersuite negotiation: No</t>
        <t>Mutual authentication: No</t>
        <t>Integrity protection: NO. However, EAP-PPT method executed within a
                      tunnel-based EAP method established TLS tunnel
                      is integrity protected. The cleartext EAP-PPT
                      messages outside the tunnel are not integrity
                      protected.</t>
        <t>Replay protection: NO. However, EAP-PPT method executed within a
                   tunnel-based EAP method established TLS tunnel is
                   replay protected. The cleartext EAP-PPT messages
                   outside the tunnel are not replay protected.</t>
        <t>Confidentiality: No. However, EAP-PPT method executed within a
                 tunnel-based EAP method established TLS tunnel
                 is encrypted.</t>
        <t>Key derivation: Yes</t>
        <t>Key strength: See <xref section="5.1" sectionFormat="of" target="RFC5216"/></t>
        <t>Dictionary attack prot.: N/A</t>
        <t>Fast reconnect: No</t>
        <t>Cryptographic binding: N/A</t>
        <t>Session independence: N/A</t>
        <t>Fragmentation: No</t>
        <t>Key Hierarchy: No</t>
        <t>Channel binding: Yes</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This section provides guidance to the Internet Assigned Numbers
Authority (IANA) regarding registration of values related to the
EAP-PPT protocol, in accordance with BCP 26 <xref target="RFC8126"/>.</t>
      <section anchor="eap-method-type">
        <name>EAP Method Type</name>
        <t>An EAP Method Type number is requested for EAP-PPT in the "Method
Types" registry of the "Extensible Authentication Protocol (EAP)
Registry".</t>
      </section>
      <section anchor="eap-ppt-error-codes-registry">
        <name>EAP-PPT Error Codes Registry</name>
        <t>IANA is requested to create a new registry called "EAP-PPT Error
Codes" within a new "EAP-PPT Parameters" registry group. This
registry records the globally scoped error codes that may appear in
the "code" key of an EAP-Request/PPT-Error message (see <xref target="errorcodes"/>)
when the "enterprise-number" key is absent.</t>
        <t>Each entry in this registry contains the following fields:</t>
        <dl>
          <dt>Code:</dt>
          <dd>
            <t>A non-negative integer.</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>A short, human-readable description of the error.</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>The document(s) defining the code.</t>
          </dd>
        </dl>
        <t>The registration procedures for this registry, following the ranges
defined in <xref target="RFC8126"/>, are:</t>
        <table anchor="errorcodepolicy">
          <name>EAP-PPT Error Codes Registration Procedures</name>
          <thead>
            <tr>
              <th align="left">Code</th>
              <th align="left">Registration Procedure</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">Reserved</td>
            </tr>
            <tr>
              <td align="left">1-191</td>
              <td align="left">Specification Required</td>
            </tr>
            <tr>
              <td align="left">192-255</td>
              <td align="left">Reserved</td>
            </tr>
          </tbody>
        </table>
        <t>The initial contents of the registry are the values defined in
<xref target="errorcodes"/> of this document:</t>
        <table anchor="errorcodeinitial">
          <name>Initial EAP-PPT Error Codes</name>
          <thead>
            <tr>
              <th align="left">Code</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">1</td>
              <td align="left">Failure in validating the token data.</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">Redemption failure.</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">Token redemption temporarily unavailable.</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">Double spend of the token detected.</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">Undefined failure.</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">Redemption success, unexpected extension (fatal).</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">7</td>
              <td align="left">Redemption success, unexpected extension (unconditional access).</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">8</td>
              <td align="left">Redemption success, unexpected extension (conditional access).</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
        <t>[RFC Editor: please replace "RFC XXXX" above with the RFC number
assigned to this document.]</t>
        <t>When evaluating a request in the Specification Required range, the
Designated Expert should confirm that the requested code describes an
error condition that is meaningful across implementations from
different vendors, that it is not already covered by an existing code,
and that a stable, publicly available specification defines its
semantics. Vendor-private error conditions <bcp14>MUST NOT</bcp14> be registered in
this registry; they are conveyed using the enterprise-specific
mechanism described in <xref target="ianaenterprise"/>.</t>
      </section>
      <section anchor="ianaenterprise">
        <name>Vendor-Specific (Enterprise) Error Codes</name>
        <t>To allow a vendor to define and "self-issue" its own error codes
without registering them with IANA, and without risking collisions
with codes defined by other vendors, an EAP-Request/PPT-Error message
<bcp14>MAY</bcp14> include the optional "enterprise-number" key (see <xref target="error"/>). The
value of this key is the vendor's SMI Network Management Private
Enterprise Number (PEN) assigned from the IANA "Private Enterprise
Numbers" registry <xref target="RFC9371"/>.</t>
        <t>When the "enterprise-number" key is present, the value of the "code"
key is interpreted within the private number space of that enterprise
rather than as a value from the "EAP-PPT Error Codes" registry defined
in <xref target="iana"/>. Such enterprise-scoped codes are administered solely by
the owning enterprise and <bcp14>MUST NOT</bcp14> be registered with IANA. Because
Private Enterprise Numbers are globally unique, the combination of
"enterprise-number" and "code" is itself globally unique, so different
vendors can define overlapping "code" values without ambiguity.</t>
        <t>This document creates no IANA registry for enterprise-scoped error
codes; IANA is not asked to track them.</t>
        <t>An EAP-PPT peer that receives an "enterprise-number" it does not
recognize, or an enterprise-scoped "code" it does not understand, <bcp14>MUST</bcp14>
treat the condition as a fatal error, <bcp14>MUST NOT</bcp14> reuse the token in a
subsequent authentication, and <bcp14>MAY</bcp14> surface the "description" string to
the user. A peer cannot determine whether an unrecognized
enterprise-scoped code denotes a condition that permits reuse of the
token, so it <bcp14>MUST</bcp14> assume that it does not.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <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>
        <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="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="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>
        <reference anchor="RFC9577">
          <front>
            <title>The Privacy Pass HTTP Authentication Scheme</title>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="S. Valdez" initials="S." surname="Valdez"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="June" year="2024"/>
            <abstract>
              <t>This document defines an HTTP authentication scheme for Privacy Pass, a privacy-preserving authentication mechanism used for authorization. The authentication scheme specified in this document can be used by Clients to redeem Privacy Pass tokens with an Origin. It can also be used by Origins to challenge Clients to present Privacy Pass tokens.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9577"/>
          <seriesInfo name="DOI" value="10.17487/RFC9577"/>
        </reference>
        <reference anchor="RFC9578">
          <front>
            <title>Privacy Pass Issuance Protocols</title>
            <author fullname="S. Celi" initials="S." surname="Celi"/>
            <author fullname="A. Davidson" initials="A." surname="Davidson"/>
            <author fullname="S. Valdez" initials="S." surname="Valdez"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="June" year="2024"/>
            <abstract>
              <t>This document specifies two variants of the two-message issuance protocol for Privacy Pass tokens: one that produces tokens that are privately verifiable using the Issuer Private Key and one that produces tokens that are publicly verifiable using the Issuer Public Key. Instances of "issuance protocol" and "issuance protocols" in the text of this document are used interchangeably to refer to the two variants of the Privacy Pass issuance protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9578"/>
          <seriesInfo name="DOI" value="10.17487/RFC9578"/>
        </reference>
        <reference anchor="RFC7296">
          <front>
            <title>Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author fullname="C. Kaufman" initials="C." surname="Kaufman"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="Y. Nir" initials="Y." surname="Nir"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <author fullname="T. Kivinen" initials="T." surname="Kivinen"/>
            <date month="October" year="2014"/>
            <abstract>
              <t>This document describes version 2 of the Internet Key Exchange (IKE) protocol. IKE is a component of IPsec used for performing mutual authentication and establishing and maintaining Security Associations (SAs). This document obsoletes RFC 5996, and includes all of the errata for it. It advances IKEv2 to be an Internet Standard.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="79"/>
          <seriesInfo name="RFC" value="7296"/>
          <seriesInfo name="DOI" value="10.17487/RFC7296"/>
        </reference>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </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="I-D.draft-ietf-privacypass-auth-scheme-extensions">
          <front>
            <title>The PrivateToken HTTP Authentication Scheme Extensions Parameter</title>
            <author fullname="Scott Hendrickson" initials="S." surname="Hendrickson">
              <organization>Google</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
         </author>
            <date day="13" month="May" year="2026"/>
            <abstract>
              <t>   This document specifies new parameters for the "PrivateToken" HTTP
   authentication scheme, called extensions.  The purpose of these
   extensions is to negotiate and carry public metadata for Privacy Pass
   protocols.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-privacypass-auth-scheme-extensions-03"/>
        </reference>
        <reference anchor="RFC2865">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS)</title>
            <author fullname="C. Rigney" initials="C." surname="Rigney"/>
            <author fullname="S. Willens" initials="S." surname="Willens"/>
            <author fullname="A. Rubens" initials="A." surname="Rubens"/>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <date month="June" year="2000"/>
            <abstract>
              <t>This document describes a protocol for carrying authentication, authorization, and configuration information between a Network Access Server which desires to authenticate its links and a shared Authentication Server. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2865"/>
          <seriesInfo name="DOI" value="10.17487/RFC2865"/>
        </reference>
        <reference anchor="RFC5216">
          <front>
            <title>The EAP-TLS Authentication Protocol</title>
            <author fullname="D. Simon" initials="D." surname="Simon"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="R. Hurst" initials="R." surname="Hurst"/>
            <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="RFC5705">
          <front>
            <title>Keying Material Exporters for Transport Layer Security (TLS)</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="March" year="2010"/>
            <abstract>
              <t>A number of protocols wish to leverage Transport Layer Security (TLS) to perform key establishment but then use some of the keying material for their own purposes. This document describes a general mechanism for allowing that. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5705"/>
          <seriesInfo name="DOI" value="10.17487/RFC5705"/>
        </reference>
        <reference anchor="RFC6677">
          <front>
            <title>Channel-Binding Support for Extensible Authentication Protocol (EAP) Methods</title>
            <author fullname="S. Hartman" initials="S." role="editor" surname="Hartman"/>
            <author fullname="T. Clancy" initials="T." surname="Clancy"/>
            <author fullname="K. Hoeper" initials="K." surname="Hoeper"/>
            <date month="July" year="2012"/>
            <abstract>
              <t>This document defines how to implement channel bindings for Extensible Authentication Protocol (EAP) methods to address the "lying Network Access Service (NAS)" problem as well as the "lying provider" problem. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6677"/>
          <seriesInfo name="DOI" value="10.17487/RFC6677"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC9371">
          <front>
            <title>Registration Procedures for Private Enterprise Numbers (PENs)</title>
            <author fullname="A. Baber" initials="A." surname="Baber"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="March" year="2023"/>
            <abstract>
              <t>This document describes how Private Enterprise Numbers (PENs) are registered by IANA. It shows how to request a new PEN and how to modify a current PEN. It also gives a brief overview of PEN uses.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9371"/>
          <seriesInfo name="DOI" value="10.17487/RFC9371"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="PEAP">
          <front>
            <title>Protected Extensible Authentication Protocol (PEAP)</title>
            <author>
              <organization>Microsoft Corporation</organization>
            </author>
            <date year="2021" month="June"/>
          </front>
        </reference>
        <reference anchor="IEEE-802.11">
          <front>
            <title>IEEE Standard for Information technology Telecommunications and information exchange between systems Local and metropolitan area networks-Specific requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications</title>
            <author initials="" surname="IEEE" fullname="IEEE">
              <organization/>
            </author>
            <date year="2021" month="February"/>
          </front>
        </reference>
        <reference anchor="IEEE-802.1X">
          <front>
            <title>IEEE Standard for Local and Metropolitan Area Networks--Port-Based Network Access Control</title>
            <author initials="" surname="IEEE" fullname="IEEE">
              <organization/>
            </author>
            <date year="2020" month="February"/>
          </front>
        </reference>
        <reference anchor="RFC9576">
          <front>
            <title>The Privacy Pass Architecture</title>
            <author fullname="A. Davidson" initials="A." surname="Davidson"/>
            <author fullname="J. Iyengar" initials="J." surname="Iyengar"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="June" year="2024"/>
            <abstract>
              <t>This document specifies the Privacy Pass architecture and requirements for its constituent protocols used for authorization based on privacy-preserving authentication mechanisms. It describes the conceptual model of Privacy Pass and its protocols, its security and privacy goals, practical deployment models, and recommendations for each deployment model, to help ensure that the desired security and privacy goals are fulfilled.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9576"/>
          <seriesInfo name="DOI" value="10.17487/RFC9576"/>
        </reference>
        <reference anchor="RFC7593">
          <front>
            <title>The eduroam Architecture for Network Roaming</title>
            <author fullname="K. Wierenga" initials="K." surname="Wierenga"/>
            <author fullname="S. Winter" initials="S." surname="Winter"/>
            <author fullname="T. Wolniewicz" initials="T." surname="Wolniewicz"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>This document describes the architecture of the eduroam service for federated (wireless) network access in academia. The combination of IEEE 802.1X, the Extensible Authentication Protocol (EAP), and RADIUS that is used in eduroam provides a secure, scalable, and deployable service for roaming network access. The successful deployment of eduroam over the last decade in the educational sector may serve as an example for other sectors, hence this document. In particular, the initial architectural choices and selection of standards are described, along with the changes that were prompted by operational experience.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7593"/>
          <seriesInfo name="DOI" value="10.17487/RFC7593"/>
        </reference>
        <reference anchor="RFC6973">
          <front>
            <title>Privacy Considerations for Internet Protocols</title>
            <author fullname="A. Cooper" initials="A." surname="Cooper"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Peterson" initials="J." surname="Peterson"/>
            <author fullname="J. Morris" initials="J." surname="Morris"/>
            <author fullname="M. Hansen" initials="M." surname="Hansen"/>
            <author fullname="R. Smith" initials="R." surname="Smith"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document offers guidance for developing privacy considerations for inclusion in protocol specifications. It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices. It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6973"/>
          <seriesInfo name="DOI" value="10.17487/RFC6973"/>
        </reference>
        <reference anchor="RFC6678">
          <front>
            <title>Requirements for a Tunnel-Based Extensible Authentication Protocol (EAP) Method</title>
            <author fullname="K. Hoeper" initials="K." surname="Hoeper"/>
            <author fullname="S. Hanna" initials="S." surname="Hanna"/>
            <author fullname="H. Zhou" initials="H." surname="Zhou"/>
            <author fullname="J. Salowey" initials="J." role="editor" surname="Salowey"/>
            <date month="July" year="2012"/>
            <abstract>
              <t>This memo defines the requirements for a tunnel-based Extensible Authentication Protocol (EAP) Method. This tunnel method will use Transport Layer Security (TLS) to establish a secure tunnel. The tunnel will provide support for password authentication, EAP authentication, and the transport of additional data for other purposes. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6678"/>
          <seriesInfo name="DOI" value="10.17487/RFC6678"/>
        </reference>
        <reference anchor="RFC5281">
          <front>
            <title>Extensible Authentication Protocol Tunneled Transport Layer Security Authenticated Protocol Version 0 (EAP-TTLSv0)</title>
            <author fullname="P. Funk" initials="P." surname="Funk"/>
            <author fullname="S. Blake-Wilson" initials="S." surname="Blake-Wilson"/>
            <date month="August" year="2008"/>
            <abstract>
              <t>EAP-TTLS is an EAP (Extensible Authentication Protocol) method that encapsulates a TLS (Transport Layer Security) session, consisting of a handshake phase and a data phase. During the handshake phase, the server is authenticated to the client (or client and server are mutually authenticated) using standard TLS procedures, and keying material is generated in order to create a cryptographically secure tunnel for information exchange in the subsequent data phase. During the data phase, the client is authenticated to the server (or client and server are mutually authenticated) using an arbitrary authentication mechanism encapsulated within the secure tunnel. The encapsulated authentication mechanism may itself be EAP, or it may be another authentication protocol such as PAP, CHAP, MS-CHAP, or MS-CHAP-V2. Thus, EAP-TTLS allows legacy password-based authentication protocols to be used against existing authentication databases, while protecting the security of these legacy protocols against eavesdropping, man-in-the-middle, and other attacks. The data phase may also be used for additional, arbitrary data exchange. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5281"/>
          <seriesInfo name="DOI" value="10.17487/RFC5281"/>
        </reference>
        <reference anchor="RFC4851">
          <front>
            <title>The Flexible Authentication via Secure Tunneling Extensible Authentication Protocol Method (EAP-FAST)</title>
            <author fullname="N. Cam-Winget" initials="N." surname="Cam-Winget"/>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="J. Salowey" initials="J." surname="Salowey"/>
            <author fullname="H. Zhou" initials="H." surname="Zhou"/>
            <date month="May" year="2007"/>
            <abstract>
              <t>This document defines the Extensible Authentication Protocol (EAP) based Flexible Authentication via Secure Tunneling (EAP-FAST) protocol. EAP-FAST is an EAP method that enables secure communication between a peer and a server by using the Transport Layer Security (TLS) to establish a mutually authenticated tunnel. Within the tunnel, Type-Length-Value (TLV) objects are used to convey authentication related data between the peer and the EAP server. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4851"/>
          <seriesInfo name="DOI" value="10.17487/RFC4851"/>
        </reference>
        <reference anchor="I-D.draft-hendrickson-privacypass-expiration-extension">
          <front>
            <title>Privacy Pass Token Expiration Extension</title>
            <author fullname="Scott Hendrickson" initials="S." surname="Hendrickson">
              <organization>Google</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Cloudflare, Inc.</organization>
            </author>
            <date day="24" month="January" year="2025"/>
            <abstract>
              <t>   This document describes an extension for Privacy Pass that allows
   tokens to encode expiration information.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hendrickson-privacypass-expiration-extension-03"/>
        </reference>
        <reference anchor="I-D.draft-ietf-privacypass-batched-tokens">
          <front>
            <title>Batched Token Issuance Protocol</title>
            <author fullname="Raphael Robert" initials="R." surname="Robert">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Thibault Meunier" initials="T." surname="Meunier">
              <organization>Cloudflare Inc.</organization>
            </author>
            <date day="4" month="May" year="2026"/>
            <abstract>
              <t>   This document specifies two variants of the Privacy Pass issuance
   protocol that allow for batched issuance of tokens.  These allow
   clients to request more than one token at a time and for issuers to
   issue more than one token at a time.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-privacypass-batched-tokens-08"/>
        </reference>
        <reference anchor="I-D.draft-tomas-openroaming">
          <front>
            <title>WBA OpenRoaming Wireless Federation</title>
            <author fullname="Bruno Tomas" initials="B." surname="Tomas">
              <organization>Wireless Broadband Alliance, Inc.</organization>
            </author>
            <author fullname="Mark Grayson" initials="M." surname="Grayson">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Necati Canpolat" initials="N." surname="Canpolat">
              <organization>Intel Corporation</organization>
            </author>
            <author fullname="Elizabeth A Cockrell" initials="B." surname="Cockrell">
              <organization>Independent</organization>
            </author>
            <author fullname="Sri Gundavelli" initials="S." surname="Gundavelli">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Seb Adamski" initials="S." surname="Adamski">
              <organization>IronWiFi</organization>
            </author>
            <date day="12" month="June" year="2026"/>
            <abstract>
              <t>   This document describes the Wireless Broadband Alliance's OpenRoaming
   system.  The OpenRoaming architecture enables a seamless onboarding
   experience for devices connecting to access networks that are part of
   the federation of access networks and identity providers.  The
   primary objective of this document is to describe the protocols that
   form the foundation for this architecture, enabling providers to
   correctly configure their equipment to support interoperable
   OpenRoaming signalling exchanges.  In addition, the topic of
   OpenRoaming has been raised in different IETF working groups, and
   therefore a secondary objective is to assist those discussions by
   describing the federation organization and framework.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tomas-openroaming-08"/>
        </reference>
        <reference anchor="RFC7585">
          <front>
            <title>Dynamic Peer Discovery for RADIUS/TLS and RADIUS/DTLS Based on the Network Access Identifier (NAI)</title>
            <author fullname="S. Winter" initials="S." surname="Winter"/>
            <author fullname="M. McCauley" initials="M." surname="McCauley"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This document specifies a means to find authoritative RADIUS servers for a given realm. It is used in conjunction with either RADIUS over Transport Layer Security (RADIUS/TLS) or RADIUS over Datagram Transport Layer Security (RADIUS/DTLS).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7585"/>
          <seriesInfo name="DOI" value="10.17487/RFC7585"/>
        </reference>
        <reference anchor="RFC4764">
          <front>
            <title>The EAP-PSK Protocol: A Pre-Shared Key Extensible Authentication Protocol (EAP) Method</title>
            <author fullname="F. Bersani" initials="F." surname="Bersani"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="January" year="2007"/>
            <abstract>
              <t>This document specifies EAP-PSK, an Extensible Authentication Protocol (EAP) method for mutual authentication and session key derivation using a Pre-Shared Key (PSK). EAP-PSK provides a protected communication channel when mutual authentication is successful for both parties to communicate over. This document describes the use of this channel only for protected exchange of result indications, but future EAP-PSK extensions may use the channel for other purposes. EAP-PSK is designed for authentication over insecure networks such as IEEE 802.11. This memo defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4764"/>
          <seriesInfo name="DOI" value="10.17487/RFC4764"/>
        </reference>
        <reference anchor="RFC9797">
          <front>
            <title>Randomized and Changing Media Access Control (MAC) Addresses: Context, Network Impacts, and Use Cases</title>
            <author fullname="J. Henry" initials="J." surname="Henry"/>
            <author fullname="Y. Lee" initials="Y." surname="Lee"/>
            <date month="June" year="2025"/>
            <abstract>
              <t>To limit the privacy issues created by the association between a device, its traffic, its location, and its user in IEEE 802 networks, client vendors and client OS vendors have started implementing Media Access Control (MAC) address randomization. This technology is particularly important in Wi-Fi networks (defined in IEEE 802.11) due to the over-the-air medium and device mobility. When such randomization happens, some in-network states may break, which may affect network connectivity and user experience. At the same time, devices may continue using other stable identifiers, defeating the purpose of MAC address randomization.</t>
              <t>This document lists various network environments and a range of network services that may be affected by such randomization. This document then examines settings where the user experience may be affected by in-network state disruption. Last, this document examines some existing frameworks that maintain user privacy while preserving user quality of experience and network operation efficiency.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9797"/>
          <seriesInfo name="DOI" value="10.17487/RFC9797"/>
        </reference>
      </references>
    </references>
    <?line 1314?>

<section removeInRFC="true" anchor="changes-since-02">
      <name>Changes Since -02</name>
      <t>Substantive changes:</t>
      <ul spacing="normal">
        <li>
          <t>Vendor-specific error codes are no longer allocated from a reserved
range of the "code" key. The 81-100 "Vendor Specific Errors" range
defined in -02 has been removed and replaced by the optional
"enterprise-number" key (<xref target="ianaenterprise"/>), which scopes a "code"
value to the sending vendor's IANA-assigned Private Enterprise
Number. A peer that does not recognize an enterprise-scoped code
<bcp14>MUST</bcp14> treat the condition as fatal and <bcp14>MUST NOT</bcp14> reuse the token.</t>
        </li>
        <li>
          <t>The globally scoped error code space has been redefined: 0 is
Reserved, 1-191 is allocated on a Specification Required basis, and
192-255 is Reserved. In -02 the space was 1-100, of which 9-80 was
Reserved and 81-100 was for vendor use.</t>
        </li>
        <li>
          <t>The value of the "code" key <bcp14>MUST</bcp14> now be in the range 0-255. No
bound was stated in -02.</t>
        </li>
        <li>
          <t>The IANA Considerations section now fully specifies the requested
"EAP-PPT Error Codes" registry, including the registry group, entry
fields, registration procedures, initial contents, and guidance for
the Designated Expert (<xref target="iana"/>).</t>
        </li>
      </ul>
      <t>Editorial changes:</t>
      <ul spacing="normal">
        <li>
          <t>Corrected a malformed cross-reference in the OpenRoaming deployment
discussion, clarified that "session-timeout" is expressed in
seconds, and fixed a number of typographical errors.</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
3L4Yz7M8/vrB8rtvZrPg69E3+9V3r774omG+92AKSzo+Otp/89Pw0f75259n
b9MvH13e2x++Ki6Pnw1fHA+rLw++Pgi+/vJ0+CQbXr46GP58GB/vn395cPrz
l6dHo/uPXx3uHzwePt8/z85nb8/3v3t1fDg8f5YGXw8vj/aPhy8Phq8eDnHm
g/Nn8PPh8OpdWcdbP3/1aPT05fBscfzjsypbvqmW3wVfPzu6fPHyVXaQ75Sv
Hj6eviwuT+dn5btn7w6/O3hxem882n389E1dzev8xdZif9aYe3cx3Dzqj5Kv
03++iC+fX+bZ5f2zV7/0h5OfNp+N3wwXD4qL77YPThbFs82ifHV5FXy9v3Px
5QWon5vb22cP58+Oz97m8dNsc/ry9Vl9OrqY/zh6ufwu214eHu2+PXn95Zfh
3M8uXuz8fPnL5viXR5vZzsXbs7OnT4/ruii+ffrl1e72+fTby5dvlvvZN4/m
343GXx/uhl8f9Gc7/YebD4pfpq+Td1s7efHs+cW3T9O3Z0/evX45/TGdfvX1
l98cjA6+vtrNf359L/j6l5/vzc8O9n/58W127/Hw6eXj2cHr/fPvFuePjpJv
HpxczpbPi6OHs+1f3py8fHT5+LQIvt58BtL/5uz5q5Nn9w623r14Pk3/GX9z
efR4+Gq4v2Zf/dC75QU4vOEChEC/6wUIvp7d6gLs7D7t3/vl/N1w6+nwp1fv
NieL+OvxabbcT+bxk0fJ6WgafHxZLM765eZRvnN5cl5eFd++nc/jk5fZxU51
/+yfa6D8B1M16dJe8Ofvg98I3L3t3k7w9AcHY8O/f7DWpcWituD94KuKXa5J
1hUl+nqVpqhc2cX2chwt9425kZ9gj9VcDC0w+LG1YYuxxlgxgMtLeV2wsRIp
FiK9QSkkK7a1/3qht9Et9EGzUh+8TWEobFTaxUoUUsROfg/6i+Yk3UoUbgvC
TRWAVQZWXG4W/6+V0/3K2B+5Oic9uRWuB1Lg3UTAjbsKXu5idAtfevusFGav
nQsbRIfTlQM07pt8HikXmiCTCZbTNXLzum0jndfALxqMRQg6ptK+vEHh4FZM
rPHLF3QYlFqyU2c8RIfwRGsJuMGDleIQMYBNZQD0PXCB7RvEICT8B/tA+FfQ
Sntju81rnCEu/TBuY1pjfxVFWbTL5F1jQZMulGWCYQjNT5dlw35HcVlirZcK
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

-->

</rfc>
