<?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.17 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-sawant-eap-ppt-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="EAP-PPT">Extensible Authentication Protocol (EAP) Using Privacy Pass Token</title>
    <seriesInfo name="Internet-Draft" value="draft-sawant-eap-ppt-00"/>
    <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="2024" month="July" day="03"/>
    <keyword>Internet-Draft</keyword>
    <keyword>EAP</keyword>
    <keyword>anonymous</keyword>
    <keyword>authorization</keyword>
    <keyword>Privacy Pass token</keyword>
    <abstract>
      <?line 37?>

<t>This document describes Extensible Authentication Protocol using
Privacy Pass token (EAP-PPT) Version 1. The protocol specifies
use of 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.</t>
    </abstract>
  </front>
  <middle>
    <?line 46?>

<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; <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> guarantee a server authenticated
or optionally, mutually authenticated TLS tunnel.</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"/>. A client possessing such a token is able to
prove that it was able to get it issued, 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>
      </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 a secure network access.
EAP is one of the most preferred authentication mechanisims used for
secure wireless access using IEEE 802.1X standard, wired access using
IEEE 802.1X standard and Virtual Private Network (VPN) access. EAP
is widely used for both public and enterprise network access. EAP
is also used for secure network access for students and guests in
academia, see <xref target="RFC7593"/>.</t>
      <t>Privacy means protecting individuals' identity and personal
information from eavesdropers, intermediaries and recipients
in the network communication. An individual's privacy may get
compromized 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 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 or
identity providers or 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 or pseudonyms, 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. Since EAP was designed for use in
network access authentication, where IP layer connectivity may not be
available, EAP-PPT can be used for anonymous client authorization for
wired and wireless network access. Since EAP-PPT method provides
unilateral authentication, it qualifies to 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.</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>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="128" width="536" viewBox="0 0 536 128" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,112" fill="none" stroke="black"/>
              <path d="M 96,32 L 96,112" fill="none" stroke="black"/>
              <path d="M 152,32 L 152,112" fill="none" stroke="black"/>
              <path d="M 240,32 L 240,112" fill="none" stroke="black"/>
              <path d="M 296,32 L 296,112" fill="none" stroke="black"/>
              <path d="M 384,32 L 384,112" fill="none" stroke="black"/>
              <path d="M 440,32 L 440,112" fill="none" stroke="black"/>
              <path d="M 528,32 L 528,112" fill="none" stroke="black"/>
              <path d="M 8,32 L 96,32" fill="none" stroke="black"/>
              <path d="M 152,32 L 240,32" fill="none" stroke="black"/>
              <path d="M 296,32 L 384,32" fill="none" stroke="black"/>
              <path d="M 440,32 L 528,32" fill="none" stroke="black"/>
              <path d="M 104,64 L 144,64" fill="none" stroke="black"/>
              <path d="M 248,64 L 288,64" fill="none" stroke="black"/>
              <path d="M 392,64 L 432,64" fill="none" stroke="black"/>
              <path d="M 8,112 L 96,112" fill="none" stroke="black"/>
              <path d="M 152,112 L 240,112" fill="none" stroke="black"/>
              <path d="M 296,112 L 384,112" fill="none" stroke="black"/>
              <path d="M 440,112 L 528,112" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="440,64 428,58.4 428,69.6" fill="black" transform="rotate(0,432,64)"/>
              <polygon class="arrowhead" points="400,64 388,58.4 388,69.6" fill="black" transform="rotate(180,392,64)"/>
              <polygon class="arrowhead" points="296,64 284,58.4 284,69.6" fill="black" transform="rotate(0,288,64)"/>
              <polygon class="arrowhead" points="256,64 244,58.4 244,69.6" fill="black" transform="rotate(180,248,64)"/>
              <polygon class="arrowhead" points="152,64 140,58.4 140,69.6" fill="black" transform="rotate(0,144,64)"/>
              <polygon class="arrowhead" points="112,64 100,58.4 100,69.6" fill="black" transform="rotate(180,104,64)"/>
              <g class="text">
                <text x="52" y="68">Peer</text>
                <text x="200" y="68">Authen-</text>
                <text x="336" y="68">EAP</text>
                <text x="476" y="68">EAP-</text>
                <text x="200" y="84">ticator</text>
                <text x="340" y="84">Server</text>
                <text x="472" y="84">PPT</text>
                <text x="484" y="100">Server</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
+----------+      +----------+      +----------+      +----------+
|          |      |          |      |          |      |          |
|   Peer   |<---->|  Authen- |<---->|   EAP    |<---->|  EAP-    |
|          |      |  ticator |      |  Server  |      |  PPT     |
|          |      |          |      |          |      |  Server  |
+----------+      +----------+      +----------+      +----------+
]]></artwork>
        </artset>
      </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 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-overview">
      <name>Protocol Overview</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 TLS tunnel <bcp14>MUST</bcp14> be
server authenticated or optionally, mutually authenticated. 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>EAP-PPT authentication <bcp14>MUST</bcp14> be performed inside the a 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.</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 the 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 send 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>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="528" width="504" viewBox="0 0 504 528" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,112" fill="none" stroke="black"/>
                <path d="M 48,120 L 48,512" fill="none" stroke="black"/>
                <path d="M 96,32 L 96,112" fill="none" stroke="black"/>
                <path d="M 400,32 L 400,112" fill="none" stroke="black"/>
                <path d="M 408,384 L 408,448" fill="none" stroke="black"/>
                <path d="M 448,120 L 448,376" fill="none" stroke="black"/>
                <path d="M 448,456 L 448,512" fill="none" stroke="black"/>
                <path d="M 488,32 L 488,112" fill="none" stroke="black"/>
                <path d="M 496,384 L 496,448" fill="none" stroke="black"/>
                <path d="M 8,32 L 96,32" fill="none" stroke="black"/>
                <path d="M 400,32 L 488,32" fill="none" stroke="black"/>
                <path d="M 8,112 L 96,112" fill="none" stroke="black"/>
                <path d="M 400,112 L 488,112" fill="none" stroke="black"/>
                <path d="M 56,160 L 440,160" fill="none" stroke="black"/>
                <path d="M 56,224 L 440,224" fill="none" stroke="black"/>
                <path d="M 56,288 L 440,288" fill="none" stroke="black"/>
                <path d="M 56,352 L 440,352" fill="none" stroke="black"/>
                <path d="M 408,384 L 496,384" fill="none" stroke="black"/>
                <path d="M 408,448 L 496,448" fill="none" stroke="black"/>
                <path d="M 56,480 L 440,480" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="448,352 436,346.4 436,357.6" fill="black" transform="rotate(0,440,352)"/>
                <polygon class="arrowhead" points="448,224 436,218.4 436,229.6" fill="black" transform="rotate(0,440,224)"/>
                <polygon class="arrowhead" points="64,480 52,474.4 52,485.6" fill="black" transform="rotate(180,56,480)"/>
                <polygon class="arrowhead" points="64,288 52,282.4 52,293.6" fill="black" transform="rotate(180,56,288)"/>
                <polygon class="arrowhead" points="64,160 52,154.4 52,165.6" fill="black" transform="rotate(180,56,160)"/>
                <g class="text">
                  <text x="48" y="68">EAP-PPT</text>
                  <text x="440" y="68">EAP-PPT</text>
                  <text x="44" y="84">Peer</text>
                  <text x="444" y="84">Server</text>
                  <text x="236" y="148">EAP-Request/Identity</text>
                  <text x="200" y="212">EAP-Response/Identity</text>
                  <text x="320" y="212">(User's</text>
                  <text x="372" y="212">NAI)</text>
                  <text x="208" y="276">EAP-Request/PPT-Challenge</text>
                  <text x="364" y="276">(challenges)</text>
                  <text x="220" y="340">EAP-Response/PPT-Challenge</text>
                  <text x="360" y="340">(token)</text>
                  <text x="440" y="404">token</text>
                  <text x="452" y="420">redeemed</text>
                  <text x="232" y="468">EAP-Success</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![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>
          </artset>
        </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, error description etc. 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>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="688" width="504" viewBox="0 0 504 688" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,112" fill="none" stroke="black"/>
                <path d="M 48,120 L 48,656" fill="none" stroke="black"/>
                <path d="M 96,32 L 96,112" fill="none" stroke="black"/>
                <path d="M 400,32 L 400,112" fill="none" stroke="black"/>
                <path d="M 408,384 L 408,464" fill="none" stroke="black"/>
                <path d="M 448,120 L 448,152" fill="none" stroke="black"/>
                <path d="M 448,168 L 448,376" fill="none" stroke="black"/>
                <path d="M 448,472 L 448,656" fill="none" stroke="black"/>
                <path d="M 488,32 L 488,112" fill="none" stroke="black"/>
                <path d="M 496,384 L 496,464" fill="none" stroke="black"/>
                <path d="M 8,32 L 96,32" fill="none" stroke="black"/>
                <path d="M 400,32 L 488,32" fill="none" stroke="black"/>
                <path d="M 8,112 L 96,112" fill="none" stroke="black"/>
                <path d="M 400,112 L 488,112" fill="none" stroke="black"/>
                <path d="M 56,160 L 448,160" fill="none" stroke="black"/>
                <path d="M 56,224 L 440,224" fill="none" stroke="black"/>
                <path d="M 56,288 L 440,288" fill="none" stroke="black"/>
                <path d="M 56,352 L 440,352" fill="none" stroke="black"/>
                <path d="M 408,384 L 496,384" fill="none" stroke="black"/>
                <path d="M 408,464 L 496,464" fill="none" stroke="black"/>
                <path d="M 56,496 L 440,496" fill="none" stroke="black"/>
                <path d="M 56,560 L 440,560" fill="none" stroke="black"/>
                <path d="M 56,624 L 440,624" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="448,560 436,554.4 436,565.6" fill="black" transform="rotate(0,440,560)"/>
                <polygon class="arrowhead" points="448,352 436,346.4 436,357.6" fill="black" transform="rotate(0,440,352)"/>
                <polygon class="arrowhead" points="448,224 436,218.4 436,229.6" fill="black" transform="rotate(0,440,224)"/>
                <polygon class="arrowhead" points="64,624 52,618.4 52,629.6" fill="black" transform="rotate(180,56,624)"/>
                <polygon class="arrowhead" points="64,496 52,490.4 52,501.6" fill="black" transform="rotate(180,56,496)"/>
                <polygon class="arrowhead" points="64,288 52,282.4 52,293.6" fill="black" transform="rotate(180,56,288)"/>
                <polygon class="arrowhead" points="64,160 52,154.4 52,165.6" fill="black" transform="rotate(180,56,160)"/>
                <g class="text">
                  <text x="48" y="68">EAP-PPT</text>
                  <text x="440" y="68">EAP-PPT</text>
                  <text x="44" y="84">Peer</text>
                  <text x="444" y="84">Server</text>
                  <text x="236" y="148">EAP-Request/Identity</text>
                  <text x="200" y="212">EAP-Response/Identity</text>
                  <text x="320" y="212">(User's</text>
                  <text x="372" y="212">NAI)</text>
                  <text x="208" y="276">EAP-Request/PPT-Challenge</text>
                  <text x="364" y="276">(challenges)</text>
                  <text x="220" y="340">EAP-Response/PPT-Challenge</text>
                  <text x="360" y="340">(token)</text>
                  <text x="444" y="404">failed</text>
                  <text x="428" y="420">to</text>
                  <text x="444" y="436">redeem</text>
                  <text x="440" y="452">token</text>
                  <text x="208" y="484">EAP-Request/PPT-Error</text>
                  <text x="328" y="484">(error)</text>
                  <text x="244" y="548">EAP-Response/PPT-Error</text>
                  <text x="248" y="612">EAP-Failure</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![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>
          </artset>
        </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, error description etc. 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 then 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 and subsequently re-authenticate.</t>
        <figure anchor="remediate">
          <name>EAP-PPT Authentication Success with remediation</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="720" width="504" viewBox="0 0 504 720" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,112" fill="none" stroke="black"/>
                <path d="M 48,120 L 48,688" fill="none" stroke="black"/>
                <path d="M 96,32 L 96,112" fill="none" stroke="black"/>
                <path d="M 400,32 L 400,112" fill="none" stroke="black"/>
                <path d="M 408,384 L 408,496" fill="none" stroke="black"/>
                <path d="M 448,120 L 448,376" fill="none" stroke="black"/>
                <path d="M 448,504 L 448,688" fill="none" stroke="black"/>
                <path d="M 488,32 L 488,112" fill="none" stroke="black"/>
                <path d="M 496,384 L 496,496" fill="none" stroke="black"/>
                <path d="M 8,32 L 96,32" fill="none" stroke="black"/>
                <path d="M 400,32 L 488,32" fill="none" stroke="black"/>
                <path d="M 8,112 L 96,112" fill="none" stroke="black"/>
                <path d="M 400,112 L 488,112" fill="none" stroke="black"/>
                <path d="M 56,160 L 440,160" fill="none" stroke="black"/>
                <path d="M 56,224 L 440,224" fill="none" stroke="black"/>
                <path d="M 56,288 L 440,288" fill="none" stroke="black"/>
                <path d="M 56,352 L 440,352" fill="none" stroke="black"/>
                <path d="M 408,384 L 496,384" fill="none" stroke="black"/>
                <path d="M 408,496 L 496,496" fill="none" stroke="black"/>
                <path d="M 56,528 L 440,528" fill="none" stroke="black"/>
                <path d="M 56,592 L 440,592" fill="none" stroke="black"/>
                <path d="M 56,656 L 440,656" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="448,592 436,586.4 436,597.6" fill="black" transform="rotate(0,440,592)"/>
                <polygon class="arrowhead" points="448,352 436,346.4 436,357.6" fill="black" transform="rotate(0,440,352)"/>
                <polygon class="arrowhead" points="448,224 436,218.4 436,229.6" fill="black" transform="rotate(0,440,224)"/>
                <polygon class="arrowhead" points="64,656 52,650.4 52,661.6" fill="black" transform="rotate(180,56,656)"/>
                <polygon class="arrowhead" points="64,528 52,522.4 52,533.6" fill="black" transform="rotate(180,56,528)"/>
                <polygon class="arrowhead" points="64,288 52,282.4 52,293.6" fill="black" transform="rotate(180,56,288)"/>
                <polygon class="arrowhead" points="64,160 52,154.4 52,165.6" fill="black" transform="rotate(180,56,160)"/>
                <g class="text">
                  <text x="48" y="68">EAP-PPT</text>
                  <text x="440" y="68">EAP-PPT</text>
                  <text x="44" y="84">Peer</text>
                  <text x="444" y="84">Server</text>
                  <text x="236" y="148">EAP-Request/Identity</text>
                  <text x="200" y="212">EAP-Response/Identity</text>
                  <text x="320" y="212">(User's</text>
                  <text x="372" y="212">NAI)</text>
                  <text x="208" y="276">EAP-Request/PPT-Challenge</text>
                  <text x="364" y="276">(challenges)</text>
                  <text x="220" y="340">EAP-Response/PPT-Challenge</text>
                  <text x="360" y="340">(token)</text>
                  <text x="440" y="404">token</text>
                  <text x="452" y="420">redeemed</text>
                  <text x="436" y="436">with</text>
                  <text x="448" y="452">invalid</text>
                  <text x="456" y="468">extension</text>
                  <text x="452" y="484">metadata</text>
                  <text x="208" y="516">EAP-Request/PPT-Error</text>
                  <text x="328" y="516">(error)</text>
                  <text x="244" y="580">EAP-Response/PPT-Error</text>
                  <text x="248" y="644">EAP-Success</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![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>
          </artset>
        </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 deployement 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 vaiant of Privacy Pass Issuance<br/>
(<xref target="I-D.draft-ietf-privacypass-batched-tokens-01"/>) to get more tokens
issued and cached at a time.</t>
        <t>EAP-PPT peer and server <bcp14>MUST</bcp14> support anonymous Network Access
Identifiers (NAIs) (<xref section="2.4" sectionFormat="of" target="RFC7542"/>). EAP-PPT 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>
      </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>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="160" width="1040" viewBox="0 0 1040 160" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,128" fill="none" stroke="black"/>
                <path d="M 136,64 L 136,128" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,128" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,96" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                <g class="text">
                  <text x="8" y="36">0</text>
                  <text x="168" y="36">1</text>
                  <text x="328" y="36">2</text>
                  <text x="488" y="36">3</text>
                  <text x="8" y="52">0</text>
                  <text x="24" y="52">1</text>
                  <text x="40" y="52">2</text>
                  <text x="56" y="52">3</text>
                  <text x="72" y="52">4</text>
                  <text x="88" y="52">5</text>
                  <text x="104" y="52">6</text>
                  <text x="120" y="52">7</text>
                  <text x="136" y="52">8</text>
                  <text x="152" y="52">9</text>
                  <text x="168" y="52">0</text>
                  <text x="184" y="52">1</text>
                  <text x="200" y="52">2</text>
                  <text x="216" y="52">3</text>
                  <text x="232" y="52">4</text>
                  <text x="248" y="52">5</text>
                  <text x="264" y="52">6</text>
                  <text x="280" y="52">7</text>
                  <text x="296" y="52">8</text>
                  <text x="312" y="52">9</text>
                  <text x="328" y="52">0</text>
                  <text x="344" y="52">1</text>
                  <text x="360" y="52">2</text>
                  <text x="376" y="52">3</text>
                  <text x="392" y="52">4</text>
                  <text x="408" y="52">5</text>
                  <text x="424" y="52">6</text>
                  <text x="440" y="52">7</text>
                  <text x="456" y="52">8</text>
                  <text x="472" y="52">9</text>
                  <text x="488" y="52">0</text>
                  <text x="504" y="52">1</text>
                  <text x="68" y="84">Code</text>
                  <text x="196" y="84">Identifier</text>
                  <text x="388" y="84">Length</text>
                  <text x="68" y="116">Type</text>
                  <text x="200" y="116">Subtype</text>
                  <text x="388" y="116">Data</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![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>
          </artset>
        </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>
          </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">AA 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">
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="528" width="496" viewBox="0 0 496 528" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <g class="text">
                    <text x="8" y="36">{</text>
                    <text x="88" y="52">"challenges":</text>
                    <text x="40" y="68">[</text>
                    <text x="72" y="84">{</text>
                    <text x="148" y="100">"challenge":</text>
                    <text x="348" y="100">"AAIADmlzc3Vlci5leGFtcGxlIIo-g6M9mAB</text>
                    <text x="296" y="116">dLzC-9Bn6a_TNXGAF42sShbu0zNQPpLODAA5vcmlnaW4uZXhh</text>
                    <text x="140" y="132">bXBsZQ==",</text>
                    <text x="148" y="148">"token-key":</text>
                    <text x="348" y="148">"MIIBUjA9BgkqhkiG9w0BAQowMKANMAsGCWC</text>
                    <text x="296" y="164">GSAFlAwQCAqEaMBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgKi</text>
                    <text x="296" y="180">AwIBMAOCAQ8AMIIBCgKCAQEAyxrta2qV9bHOATpM_KsluUsuZ</text>
                    <text x="296" y="196">KIwNOQlCn6rQ8DfOowSmTrxKxEZCNS0cb7DHUtsmtnN2pBhKi</text>
                    <text x="296" y="212">7pA1I-beWiJNawLwnlw3TQz-Adj1KcUAp4ovZ5CPpoK1orQwy</text>
                    <text x="296" y="228">B6vGvcte155T8mKMTknaHl1fORTtSbvm_bOuZl5uEI7kPRGGi</text>
                    <text x="296" y="244">KvN6qwz1cz91l6vkTTHHMttooYHGy75gfYwOUuBlX9mZbcWE7</text>
                    <text x="296" y="260">KC-h6-814ozfRex26noKLvYHikTFxROf_ifVWGXCbCWy7nqR0</text>
                    <text x="296" y="276">zq0mTCBz_kl0DAHwDhCRBgZpg9IeX4PwhuLoI8h5zUPO9wDSo</text>
                    <text x="220" y="292">1Kpur1hLQPK0C2xNLfiJaXwIDAQAB"</text>
                    <text x="76" y="308">},</text>
                    <text x="72" y="324">{</text>
                    <text x="148" y="340">"challenge":</text>
                    <text x="344" y="340">"AAEADmlzc3Vlci5leGFtcGxlIIo-g6M9mA</text>
                    <text x="296" y="356">BdLzC-9Bn6a_TNXGAF42sShbu0zNQPpLODAA5vcmlnaW4uZXh</text>
                    <text x="144" y="372">hbXBsZQ==",</text>
                    <text x="148" y="388">"token-key":</text>
                    <text x="344" y="388">"67H-0zgxA2HAjQx1dpaWcSluBemaF9eSbf</text>
                    <text x="224" y="404">wopT-r1In6wPgryoYkmmaPOlv6s3TJ"</text>
                    <text x="172" y="420">"extension-types":</text>
                    <text x="104" y="436">[</text>
                    <text x="152" y="452">1,5,6</text>
                    <text x="104" y="468">]</text>
                    <text x="72" y="484">}</text>
                    <text x="40" y="500">]</text>
                    <text x="8" y="516">}</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![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>
            </artset>
          </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">
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="96" width="512" viewBox="0 0 512 96" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <g class="text">
                    <text x="8" y="36">{</text>
                    <text x="68" y="52">"token":</text>
                    <text x="308" y="52">"AAEADmlzc4Vlci5leGFtcGxlIIo-g6M9mABdLzC-1Bn6a_TNX</text>
                    <text x="212" y="68">GAF52sShbu0zNQPpLODAA5vcmlnaW4uZXhhbXBsCB=="</text>
                    <text x="8" y="84">}</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
{
    "token": "AAEADmlzc4Vlci5leGFtcGxlIIo-g6M9mABdLzC-1Bn6a_TNX
    GAF52sShbu0zNQPpLODAA5vcmlnaW4uZXhhbXBsCB=="
}
]]></artwork>
            </artset>
          </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 range is 1-100. This key is required.</td>
              </tr>
              <tr>
                <td align="left">description</td>
                <td align="left">string</td>
                <td align="left">Human-readable ASCII 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 second after which the session is terminated by the authenticator. This is an optional key.</td>
              </tr>
            </tbody>
          </table>
          <t>Example EAP-Request/PPT-Error Data -</t>
          <figure anchor="ppterror">
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="96" width="336" viewBox="0 0 336 96" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <g class="text">
                    <text x="8" y="36">{</text>
                    <text x="64" y="52">"code":</text>
                    <text x="108" y="52">1,</text>
                    <text x="92" y="68">"description":</text>
                    <text x="188" y="68">"invalid</text>
                    <text x="248" y="68">token</text>
                    <text x="304" y="68">format"</text>
                    <text x="8" y="84">}</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
{
    "code": 1,
    "description": "invalid token format"
}
]]></artwork>
            </artset>
          </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">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 indiates 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 the spend the same oken 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-80</td>
                  <td align="left">Reserved</td>
                </tr>
                <tr>
                  <td align="left">81-100</td>
                  <td align="left">Vendor Specific Errors.</td>
                </tr>
              </tbody>
            </table>
          </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>
    </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 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 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>
        </section>
      </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 tunnnel-based EAP method. The TLS tunnel
can be optionally mutually authenticated. 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>Separation of the EAP-Server (Phase 1) from the EAP-PPT Server (Phase 2)
conversation is <bcp14>NOT RECOMMENDED</bcp14>. Allowing the Phase 1 conversation to be 
terminated at a different server than the Phase 2 conversation can introduce
vulnerabilities if there is not a proper trust relationship and protection 
for the protocol between the two servers. Some vulnerabilities include:</t>
        <ul spacing="normal">
          <li>
            <t>Loss of identity protection</t>
          </li>
          <li>
            <t>Offline dictionary attacks</t>
          </li>
          <li>
            <t>Lack of policy enforcement</t>
          </li>
          <li>
            <t>on-path active attacks (as described in <xref target="RFC7029"/>)</t>
          </li>
        </ul>
        <t>This is especially important since EAP-PPT does not perform key derivation
and as such does not generate an Extended Master Session Key (EMSK) and allows
for crypto binding, therefore it is <bcp14>RECOMMENDED</bcp14> to implement the Phase 1 EAP 
server together with the Phase 2 EAP-PPT server.</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>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="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: No</t>
        <t>Key strength: N/A</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: No</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>
      <t>The EAP Method Type number 57 has been requested for EAP-PPT.</t>
      <t>This document also calls for a registry of EAP-PPT error codes
described in <xref target="errorcodes"/>.</t>
    </section>
  </middle>
  <back>
    <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="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="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="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">
              <organization>Cloudflare, Inc.</organization>
            </author>
            <date day="1" month="April" year="2024"/>
            <abstract>
              <t>   This document specifies a new parameter for the "PrivateToken" HTTP
   authentication scheme.  This purpose of this parameter is to carry
   extensions for Privacy Pass protocols that support public metadata.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-privacypass-auth-scheme-extensions-00"/>
        </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="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="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="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-ietf-privacypass-batched-tokens-01">
          <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>
            <date day="8" month="April" year="2024"/>
            <abstract>
              <t>   This document specifies a variant of the Privacy Pass issuance
   protocol that allows for batched issuance of tokens.  This allows
   clients to request more than one token at a time and for issuers to
   isse more than one token at a time.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-privacypass-batched-tokens-01"/>
        </reference>
        <reference anchor="RFC7029">
          <front>
            <title>Extensible Authentication Protocol (EAP) Mutual Cryptographic Binding</title>
            <author fullname="S. Hartman" initials="S." surname="Hartman"/>
            <author fullname="M. Wasserman" initials="M." surname="Wasserman"/>
            <author fullname="D. Zhang" initials="D." surname="Zhang"/>
            <date month="October" year="2013"/>
            <abstract>
              <t>As the Extensible Authentication Protocol (EAP) evolves, EAP peers rely increasingly on information received from the EAP server. EAP extensions such as channel binding or network posture information are often carried in tunnel methods; peers are likely to rely on this information. Cryptographic binding is a facility described in RFC 3748 that protects tunnel methods against man-in-the-middle attacks. However, cryptographic binding focuses on protecting the server rather than the peer. This memo explores attacks possible when the peer is not protected from man-in-the-middle attacks and recommends cryptographic binding based on an Extended Master Session Key, a new form of cryptographic binding that protects both peer and server along with other mitigations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7029"/>
          <seriesInfo name="DOI" value="10.17487/RFC7029"/>
        </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>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
GL5aLaUhAM/sicnX9fDEfExvbOPQfKHfzTiA2+wU7jsCErdJxbC6IeycNjYv
khes6cDnQuFpqeFPR564onBcFeaaivukJZxkzMg3tqGRhQhWjOCSNfkgnenF
EHVK57UK/la18g5m0wxKLKplUos4sZBS+yjKdAgMP4qxFAYMJIKSHjg5JEMq
yEkyKYEEPVfbzBcyajOcW4Ih1rbPORbTHtC2rzHkaBjV2wggk7OdE806A4RG
kiZtoDNxSdo55qShdn8LSGS1MpO1M/EWcairGlDOZp+qLhSc5RkX0Sw2WJGL
gPT5nK46OeCgVQx/XAvjHLudbjXScd3WJJoaK52l/P25TZcjbEGkROuDs9P5
MmOOIlV+9ybXzkJUfsXSgVbOSDEtqcRzOnpOcfnf3hKX31fFYKKHbQZQe6OL
9iPDMPjkViCH2z7AuhBDSWntOPFObWc4TNdbuEyiRZCiXLUlCV+KK5droKSC
+laB/JaFO5foWq8xPBxEOKqDJjusGINFO+UaZRDOTVh9vSoFjbhug3OduvzG
MYFnqa00F5YIY4Kby9rRSqdRQZvtR486usPbBqvCJv8EIhNP19nzwJNyUdKU
R4HVCwTR9lH0jqqB2L7YCudgaHqinGecJCZjnaaFdoQQy565TCYl314+az9B
1DZlwVyRNM5awuS/KVUzEo2xvbxyqg11YoyFz8iAz9KRGlwBvtgnLmY8fIwz
ZdcD1WWrWNXERoMQ1214ttnw7DH8Dzrowo+PgVhuyx25K5/Ip/I+z8Sf25/5
H2MiO8CEJSu2BjXmamLsK6A0Rqn0QuvvNYfL+czPQYJo2y/Mk6oofYhqYfj3
+TNo2J97/XnBfQLsGGXXqtT+gp6iUI6ANtVtu8QEnKi5ab56Acptg2lA4qzf
G/i/eOjqOIGEUHCaTjQkhjpFEomUnBu77DOrK3B1uM6Sbm2WJTd2WTmYNoxZ
Glbwm/FZodwac2iBdabsSuC25n0j13EDWB2jUrAyg1tuVZiRRKuyJXCGJGmx
VykOW6dO0rTzYbnSytwH5JvzS2yZsVp2dECzlsU3lhEIx2gqOVZdxgJDFhbb
u74GsHkkTFvz1ZKanJ/mUtWqQZofsGwjDiQCvL4934ZSx7hTAacmOCL+76M8
DPyPy/8+io97zYpv8+MGBfljI7WDGfRk1foX6An1Hwy6Y2dNZNJ1xuaLWkf2
oesEj6CB7mI4KgPOqMZmk3JTtTg3zKNagsZ4mHJbBjgoQPEN9LHUqMtSfxht
yj7cmseK5Y6aAxtUyVirbCGlzBVl1Kz7wKcym6U2edn3LmwBJk65rQqTlQTd
cBZcOQy1GtFYqLFWGjLoxomDQQ1Ru1CCbGJq1dqN6aKc5M7AOtfII+TPxQpB
sb5UIR0mPxM4T8SkZRsPx0s9D5DIMZfVjkf9cATfVjseiM8BjGBYlWVqbjCa
PgIkCaAm2iKl5GIMVkaCqU3llYirhXLiMdf94aCEHDV2W/Ap01RIuLozvvao
skEeQ3wN5LICUYhPS4gPfGBq9UbpwPyx4EnDGqHQkAjzrQohRRV6drbKLF5Q
l8i93HJB2DNXUHdrZ+uJK9zqCnOOSKY21SX0SMGhAlgO2YamJ+o6coEfCxXr
HnuBlDvH+wGoJz899nYTD7VeddM9n3WevtPxFgoMB8JvXeEzS0EDD/xTsXZ5
cDi8WNZtdyFj7k70Mg6QNo5c37C7d6zttsYXV7IlqhZLXwdFyIamFoTREfwa
oYdbYOHn+mBY+IYm0Tg1UR1k3/AFVTjbmM1PVIPNFA7PNMBEX3MsQGCXc/XL
07JopyPQfrHujS+piKB2/pY2yxw1ipOYb2ihsG/SGXYWqJqNKsots62aLrFK
VkRmsk6tpypKOuSnglb3zbBfAKipeAhzwRgvsu+xMc7AqSWXKfNwNnUddmqc
aaavbjmYpWGHt5zR5BM7PE9ciNAtdJTJciMpRRpK5HS5N9jKjhzFlzMTRBx4
5An1I+HM0opfcHtL35ZwkkSEfQStG7kLit+0FLQGBC0fcQ1jd1pMUeMwdsrj
mnhUQ8tHyLxvdBy3lnFxHJPLh5t6B8thRQJzO9TIP5AoHS6TrxT5l7tQ5IMI
2VKwrD35qNc77h1O4/eDx9/Hg2g71s+fFYPn7+Lj47Q93jl5Ou3tV1oPX70/
aD/dT3bUL5enPz7vPdvazC8m/XLj/enr89mrs8Neb/t6MI0T9cNW+fOPk0ml
df/H/fzn13//+6NWdUoesjClk+Pj/be/9p7uj69+m1xFz5/ebOz3Xqc3Jy97
pye9/PnBDweV1s8ves/i3s3rg95vR+pkf/z84OK35xfH/ceHr4/2Dw57r/bH
8XhyNd7/+fXJUW/8Mqq07t0c75/0zg56r5/0cOSD8Uv4fNSbv8sKtfnb90/7
L856l7OTX17mcfk2L3+utH55fHN69jo+SHay108OR2fpzcX0Mnv38t3Rzwen
FxuD/u7hi7dFPi2S083Z/qQ29u6s1z1u9/UP0Xen6ubVTRLfPL58/b7dG/7a
fTl425ttpdc/bx+cz9KX3TR7fTOvtN7fuX5+Dcpid3v78sn05cnlVaJexN3R
2ZvL4qJ/Pf2lf1b+HG+XR8e7V+dvnj+vjv3y+nTnt5v33cH7p9145/rq8vLF
i5OiSNOfXjyf726PRz/dnL0t9+Mfn05/7g9+ONqttj5oT3baT7pb6fvRG/1u
cydJX766/ulFdHX57N2bs9Ev0ej7H57/eNA/+GG+m/z2ZqPS+v1vG9PLg/33
v1zFG4e9FzeHk4M3++OfZ+Onx/rHrfObSfkqPX4y2X7/9vzs6c3hRVpp3X0J
SkB38ur1+cuNg813p69G0Xfqx5vjw97r3v4j9+qn1ooH4OiOA1AF+n0PQKX1
ZKUDsLP7or3xfvyut/mi9+vrd93hTP0wuIjLfT1Vz57qi/6o0vgmnV22s+5x
snNzPs7m6U9X06k6P4uvd/LHl989AlW9MlSdOu1Vfv5X5RuBu7Xd2qk8/beH
seDvn5wtaDYrHHg/hRpjU4QMq4zGFbpMYbS8Oak6ytihdDdXwSr6iTGLQOeW
1zjTinDCAKdUBneaYAkOrMBxh24oKiUlAj+YXEEtFEvVwlVyJbFKfhNDsZAi
pvJHUGNsVNBKKsyiOFzXBFhzYP3lbi3gVnE9rIz0wNl5GcrPcK0iC95PEFy/
r/jlD0azCGZPn5PF3LFjrw86Y9CNNfeAxnVTAfSI8y7IcoJ1ZIQ5ec0mksZj
EFbMEZg9sDiUvRSiUjWn4pnCOYowxL/BrrQgQTWG5S0VoWhGFZ6wtVQoIjbQ
tWyA2gMv2L5DGELyf7AP5H8JxXTnttnWxvHVtHv5SnY22kGuSbOYIH6LOc3U
M880egPrTcusZsyjEH9jYTd1wMK0bzo+WAmTKw1zvkrFrLeESgpLJTeXG89u
pZKi0XhGYW9/GMo4cF4oHDYpp33jguqFaTZMg/xtfnzWVM71ouvl/swu8RZn
XBQtl912d2OjagywRJFJYZjDE5DCj/JFOVVJG6MuiDX2Lg6Oj2UBBEv6JJag
LFyw+S1/gVCeRzkzWvSUOpuqvV7JVlYuMTOBbsWolCFoJolk3cCp11M9Akji
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
KcT/BathyYyIpwAA

-->

</rfc>
