Internet DRAFT - draft-eap-sha256-srp6a

draft-eap-sha256-srp6a







Internet Engineering Task Force                              S. Ammirata
Internet-Draft                                                G. Peskens
Intended status: Informational                            SipRadius LLC.
Expires: 27 May 2023                                           B. Gilmer
                                                       J. Iacovelli, Ed.
                                                    Video Services Forum
                                                        23 November 2022


                EAP SHA256-SRP6a Authentication Protocol
                       draft-eap-sha256-srp6a-00

Abstract

   This document describes an authentication protocol intended for
   Internet applications which may require a robust and non-leaky
   exchange of credentials even under adverse network conditions.  The
   protocol has the ability to recover from packet loss during the
   authentication process, as for example, should the Internet
   application use the UDP transport protocol under lossy network
   conditions.  It does so by allowing the retransmission of lost
   packets during authentication.  The protocol follows the Extensible
   Authentication Protocol (RFC 3748 and RFC 5247) framework, which
   allows for the use of multiple authentication mechanisms.  It
   utilizes Secure Remote Password protocol (RFC 2945), with strong,
   password-based cryptographic hashing.  It utilizes the Secure Hashing
   Algorithm message digest algorithm as the hashing mechanism.  The
   authentication protocol allows for one Server and one or more
   Clients.  Where multiple Clients exist, each may communicate only
   with the Server.  Clients initiate the authentication exchange
   process.  Until the authentication completes successfully, the Server
   and Client ignore/discard any packets except those supporting the
   authentication process.  The authentication algorithm is based on a
   username/password or passphrase pair.  These are used to generate
   secure ephemeral keys.  The Server has a store of all valid usernames
   and password hashes.  Each Client stores its own username and
   password.  The authentication algorithm provides for each side to
   prove to the other that it has a valid username/password or
   passphrase pair, in a way that a third-party monitoring the
   transactions could not use intercepted information to later
   successfully authenticate.  This mutual authentication exchange
   consists of several pairs of interactions.  The first is a request
   for authentication by the Client, containing the Client name, to
   which the Server responds with a challenge for its identity.  The
   Client responds with the Server name for verification purposes.
   Thereafter, Client and Server each exchange three values consisting
   of password salts, ephemeral public keys, and hash values.  These are
   generated and verified by Client and Server in accordance with SRP



Ammirata, et al.           Expires 27 May 2023                  [Page 1]

Internet-Draft              EAP SHA256 SRP6a               November 2022


   against the stored password/passphrase hashes.  While any step in the
   process may be repeated to provide for dropped packets should a
   response not be received, the authentication process is terminated by
   any incorrect value received in any response.  Multicast UDP
   authentication is also supported, with certain limitations.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 27 May 2023.

Copyright Notice

   Copyright (c) 2022 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Requirements Language . . . . . . . . . . . . . . . . . . . .   4
   3.  Protocol Encapsulation  . . . . . . . . . . . . . . . . . . .   4
     3.1.  Layer-2 Encapsulation . . . . . . . . . . . . . . . . . .   4
     3.2.  Layer-3 Encapsulation Using GRE . . . . . . . . . . . . .   5
     3.3.  Layer-4 Encapsulation Using GRE Over UDP  . . . . . . . .   5
   4.  Description of the EAP SHA256-SRP6a Authentication
           Protocol  . . . . . . . . . . . . . . . . . . . . . . . .   6
     4.1.  Authentication Algorithm and Protocol . . . . . . . . . .   6



Ammirata, et al.           Expires 27 May 2023                  [Page 2]

Internet-Draft              EAP SHA256 SRP6a               November 2022


     4.2.  Packet Formats  . . . . . . . . . . . . . . . . . . . . .   9
       4.2.1.  EAP Encapsulation . . . . . . . . . . . . . . . . . .  10
       4.2.2.  EAPoL Type 0 Packet Format  . . . . . . . . . . . . .  10
       4.2.3.  Request and Response Packets  . . . . . . . . . . . .  12
       4.2.4.  EAP SRP-SHA256 Packet Formats . . . . . . . . . . . .  13
     4.3.  Protocol Exchanges  . . . . . . . . . . . . . . . . . . .  22
     4.4.  Re-Authentication . . . . . . . . . . . . . . . . . . . .  24
     4.5.  UDP Transport Considerations  . . . . . . . . . . . . . .  25
     4.6.  Multicast Authentication (Informative)  . . . . . . . . .  26
     4.7.  Multi-Link Operation  . . . . . . . . . . . . . . . . . .  27
     4.8.  Authentication Example  . . . . . . . . . . . . . . . . .  28
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  31
   6.  Internationalization Considerations . . . . . . . . . . . . .  31
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  31
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  31
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  31
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  32
   Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .  32
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  32

1.  Introduction

   The method described in this document is designed for network
   applications desiring an authentication protocol in which a robust,
   mutual, and non-leaky exchange of credentials is required.

   For each authentication instance, the model is as follows:

      There is one Server and one or more Clients.

      There is a username and password for each Client.  These are known
      to both the Server and the Client and configured through out-of-
      band means.

      The protocol provides a secure way for the Client and the Server
      to prove to each other that they know the correct username and
      password without any additional previous information or setup.
      Moreover, a third party observing the traffic cannot obtain the
      password nor successfully authenticate by replaying the traffic.

      Clients shall only communicate with the Server.

      The Clients shall initiate the communication with the Server by
      following the steps in section 3.3.

      The Server shall initiate the authentication protocol.





Ammirata, et al.           Expires 27 May 2023                  [Page 3]

Internet-Draft              EAP SHA256 SRP6a               November 2022


      The Server and Clients shall not send, receive or process any
      communication other than the steps described in section 4.3 until
      the mutual authentication completes successfully.

2.  Requirements Language

   This document is consistent with RFC 2119 Internet Best Current
   Practices regarding key words for use in RFCs to indicate
   requirements levels.

3.  Protocol Encapsulation

   The packets described in this document are EAP packets, encapsulated
   using EtherType 0x888E.  This section describes three encapsulation
   methods for the EAP packets, as follows:

      A Layer-2 encapsulation method, where server and clients are in
      the same local network.

      A Layer-3 encapsulation method over IP, where server and clients
      can be in different networks.

      A Layer-4 encapsulation method over UDP/IP, where multiple server
      instances can be running in the same host.  If there are firewalls
      between server and clients, this method simplifies the
      configuration of such firewalls.

3.1.  Layer-2 Encapsulation

   When using Layer-2 Encapsulation, the EAP packets described in this
   document are encapsulated in Ethernet packets with EtherType 0x888E,
   as shown in Figure A.

   Figure A: Layer-2 Encapsulation

   :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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |    Destination MAC Address    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                               |                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       Source MAC Address      |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       Ethertype=0x888E        |                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+           EAP Packet          |
   :                                                               :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



Ammirata, et al.           Expires 27 May 2023                  [Page 4]

Internet-Draft              EAP SHA256 SRP6a               November 2022


3.2.  Layer-3 Encapsulation Using GRE

   When using Layer-3 Encapsulation, the EAP packets described in this
   document are encapsulated using GRE over IP as per RFC 2784 [RFC2784]
   as shown in Figure B.  Packet encryption shall not be used.

   Figure B: Layer-3 Encapsulation

   :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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :               IP Header with Protocol=47 (GRE)                :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :             GRE Header with Protocol Type = 0x888E            :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                           EAP Packet                          :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

3.3.  Layer-4 Encapsulation Using GRE Over UDP

   When using Layer-4 Encapsulation, the EAP packets described in this
   document are encapsulated using GRE over UDP as per [RFC8086], with
   the following modifications:

      Packets shall not be encrypted.

      There is no restriction on what UDP ports are used by the server.

   The encapsulation is shown in Figure C.

   Figure C: Layer-4 Encapsulation

   :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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :               IP Header with Protocol=17 (UDP)                :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                           UDP Header                          :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :             GRE Header with Protocol Type = 0x888E            :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                           EAP Packet                          :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+








Ammirata, et al.           Expires 27 May 2023                  [Page 5]

Internet-Draft              EAP SHA256 SRP6a               November 2022


4.  Description of the EAP SHA256-SRP6a Authentication Protocol


4.1.  Authentication Algorithm and Protocol

   Fundamentally, the authentication algorithm is based on a username/
   password pair.  The Server has a list of all the usernames and
   passwords (in a secure format); an authorized Client knows its
   username and password as well.  The authentication algorithm provides
   a secure way for the Client to prove to the Server that it knows a
   valid username/password pair, in a way that a third-party monitoring
   the transactions cannot use the information exchanged to later
   successfully login to the Server.  It also provides a secure way for
   the Client to authenticate the Server.  Finally, the algorithm also
   generates a common strong ephemeral shared key that may be used to
   encrypt future unicast communication between the authenticated Client
   and the Server.

   The algorithm is based on two fundamental values, the generator value
   "g" and the prime modulus "N".  The Server may use different values
   of "g" and "N" per Client, since these values are communicated to the
   Client at the beginning of the negotiation.  The following rules
   shall be observed:

      As indicated in section 4.2.4.1, if "g" is not indicated, the
      Client shall assume the default value of 2.

      "N" shall be a large safe prime, of at least 512 bits.  If "N" is
      not indicated, the Client shall assume the default 2048-bit value
      indicated in section 4.2.4.1.

      The value "g" shall not be higher than "N".

   In the algorithm description below, the following operations are
   used:

   % Modulo operator (as in the C programming language); the remainder
   of a division.  The notation x % y shall indicate the remainder of
   the division of "x" by "y".

   ^ Modulo "N" exponentiation.  The notation x ^ y shall indicate the
   remainder of "x" to the power "y" when divided by the prime modulus
   "N".  Example:
   x = 2
   y = 10
   N = 263
   x^y = (2^10) modulo 263 = 1024 modulo 263 = 235 (remainder of
   1024/263)



Ammirata, et al.           Expires 27 May 2023                  [Page 6]

Internet-Draft              EAP SHA256 SRP6a               November 2022


   | String concatenation.  This operator creates a string that is a
   concatenation of its two arguments, in the same manner as the
   "strcat" function in a standard C library.

   The algorithm shall use the SHA256 hashing algorithm.  If multiple
   arguments are provided to the SHA256 function, this indicates that
   the arguments shall be concatenated, and the SHA256 function applied
   to the combined value.  For example, SHA256(x, y) means "create a
   buffer with the contents of "x", followed by the contents of "y", and
   apply the SHA256 algorithm to the resulting buffer".  When the SHA256
   hash is applied to a string, the null terminator (if present) shall
   not be included in the hash computation.

   For each Client, the Server shall select a random salt "s",
   containing at least four octets.  If the Client password is denoted
   by "P" and the Client username by "I", the separator character being
   ":", use of said character shall be disallowed for use in "P" or "I".
   The Server shall compute the value "x" defined by:

   x = SHA256(s, SHA256(I | ":" | P))

   For each Client, the Server shall compute the password verifier "v"
   as follows:

   v = g^x

   The Server shall store the values "s" and "v" for each Client,
   indexed by the Client username "I".  The Server should not store the
   cleartext password "P".

   The Client starts the authentication process by contacting the Server
   using the EAPoL-Start message of section 4.2.1 (or any empty message,
   such as a keep-alive).  The Server requests the Client username "I"
   using the Identity Request message of section 4.2.3.1, and the Client
   returns this information using the Identity Response message of
   section 4.2.3.1.

   If the username "I" is known to the Server, the Server sends the
   corresponding "s", "g" and "N" values to the Client using the
   Challenge Request Packet of section 4.2.4.1.  If the Client's
   username is not known to the Server, it may abort at this point or
   continue with fake values for "s", "g" and "N".  This is described in
   detail in section 4.2.4.1.

   Upon reception of the Challenge Request Packet, the Client caches the
   "s", "g", and "N" values, and generates a random number "a" between 1
   and N-1.  It then computes the value "A" as follows:




Ammirata, et al.           Expires 27 May 2023                  [Page 7]

Internet-Draft              EAP SHA256 SRP6a               November 2022


   A = g^a

   The value "A" is returned to the Server in the Client Key Response
   Packet of section 4.2.4.2.  The Server caches this value for later
   use.  Upon reception of the Client Key Response, the Server generates
   a random number "b" between 1 and N-1, and computes the value "B" as
   follows:

   k = SHA256(N, g)
   B = (kv + g^b) % N

   The value "B" is returned to the Client in the Server Key Request
   Packet of section 4.2.4.3.  Upon receiving the value "B", the Client
   performs the following computations:

   u = SHA256(A, B)
   x = SHA256(s, SHA256(I, ":", P))
   k = SHA256(N, g)
   S = ((B - kg^x) ^ (a +ux)) % N
   K = SHA256(S)
   M1 = SHA256(SHA256(N) xor SHA256(g), SHA256(I, s, A, B, K))

   The value "M1" above is returned to the Server in the Client
   Validator Response Packet from section 4.2.4.4, and the Client caches
   the session key "K".

   Upon receiving the "M1" value, the Server performs the following
   computations:

   u = SHA256(A, B)
   S = ((Av^u) ^ b) % N
   K = SHA256(S)
   M1 = SHA256(SHA256(N) xor SHA256(g), SHA256(I, s, A, B, K))

   If the local "M1" calculation yields the same value as the received
   "M1" value, the Server shall consider the Client as authenticated.
   The Server computes the value "M2" as follows:

   M2 = SHA256(A, M1, K)

   The "M2" value is returned to the Client using the Server Validator
   Request Packet from section 4.2.4.5.  Upon receiving this packet, the
   Client performs the same computation, and if the local calculation
   yields the same "M2" value as the received packet, the Client shall
   consider the Server authenticated.






Ammirata, et al.           Expires 27 May 2023                  [Page 8]

Internet-Draft              EAP SHA256 SRP6a               November 2022


4.2.  Packet Formats

   This section describes the various packet formats used in the
   authentication process.  The packet formats in the illustration
   follow a hierarchical structure based on GRE-encapsulated EAPoL
   packets.  The hierarchy is depicted in Figure 1.  The boxed items in
   Figure 1 represent the actual packets transmitted in the network at
   the various phases of the protocol and are documented in this
   section.  All protocol transactions shall use unicast addressing
   between Server and Client.

   Figure 1: Authentication Packet Format Hierarchy

   :                +------------+
   :                |EAPoL Packet|
   :                +------------+
   :               /      |       \
   :              /       |        \
   :+------------+   +------------+   +------------+
   :|  Start     |   |  Logoff    |   | EAP Packet |
   :+------------+   +------------+   +------------+
   :                                 /  /    |      \
   :                 ---------------   /     |       \
   :               /                  /      |        \
   :   +------------+  +------------+        |         \
   :   |  Success   |  |  Failure   |        |          \
   :   +------------+  +------------+  +------------+  +------------+
   :                                   |  Request   |  | Response   |
   :                                   +------------+  +------------+
   :                                         |        /
   :                                         |       /
   :                                  ---------------
   :                                /        |        \
   :                     +---------+ +---------------+ +------------+
   :                     |  NAK    | |EAP SRP SHA256 | |  IDENTITY  |
   :                     +---------+ +---------------+ +------------+
   :                                       |                        |
   :                                       |                        |
   :                    +------------------+     +------------------+
   :                    |    CHALLENGE     |     |   CLIENT KEY     |
   :                    +------------------+     +------------------+
   :                                       |                        |
   :                    +------------------+     +------------------+
   :                    |   SERVER KEY     |     | CLIENT VALIDATOR |
   :                    +------------------+     +------------------+
   :                                       |                        |
   :                    +------------------+                        |
   :                    | SERVER VALIDATOR |                        |



Ammirata, et al.           Expires 27 May 2023                  [Page 9]

Internet-Draft              EAP SHA256 SRP6a               November 2022


   :                    +------------------+                        |
   :                                       |                        |
   :                    +------------------+     +------------------+
   :                    |    PASSPHRASE    |     |   PASSPHRASE     |
   :                    +------------------+     +------------------+

4.2.1.  EAP Encapsulation

   Figure 2 shows the authentication packet format.

   Figure 2: Authentication Packet Format

   :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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | EAP Version=3 |  EAPoL Type   |        Payload Length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                 Packet Payload (EAPoL Type=0)                 :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The fields in Figure 2 are to be set as follows:

      EAP Version (8 bits): this field shall be set to "3" to indicate
      compliance with this Specification.

      EAPoL Type (8 bits): set this field as follows:
      0x00: EAPoL-EAP: the packet payload field contains an EAP packet.
      0x01: EAPoL-Start: optional packet sent by the Client to initiate
      the authentication process with the Server.  EAPoL-Start packets
      do not have a payload field.
      0x02: EAPoL-Logoff: optional packet sent before closing the
      connection, to revert to the non-authenticated state.  This packet
      can be sent by either Server or Client.  EAPoL-Logoff packets do
      not have a payload field.
      0x03-0xFF: Reserved.  Receivers shall silently discard packets
      with these types.

      Payload Length (16 bits): set this field to the length, in bytes,
      of the Packet Payload field.  For EAPoL-Start and EAPoL-Logoff
      packets, which have no payload, set this field to "0" zero for
      those two packet types.

4.2.2.  EAPoL Type 0 Packet Format

   Figure 3 shows the packet payload format for EAPoL Type 0.

   Figure 3: Packet Payload for EAPoL Type=0




Ammirata, et al.           Expires 27 May 2023                 [Page 10]

Internet-Draft              EAP SHA256 SRP6a               November 2022


   :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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | EAP Version=3 | EAPoL Type=0  |        Payload Length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Code      |  Identifier   |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Data (variable, depends on Code)  ... 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Set the fields in Figure 3 as follows:

   Code (8 bits): set this field to identify the type of EAP packet, as
   follows:
   0x01: Request
   0x02: Response
   0x03: Success
   0x04: Failure
   All other values: reserved.  Receivers shall silently discard packets
   with these values.

   Identifier (8 bits): this field is used to match responses with
   requests.  The initial request shall select an arbitrary value for
   the request packet.  The response shall use the same value in the
   response to that request, which may be a Response packet, a Success
   packet, or a Failure packet.  The identifier shall be incremented by
   one at every new request message.  It shall not be changed on a
   retransmission of a message.  Any non-matching Response messages
   shall be discarded.  As indicated in section 4, a full authentication
   exchange includes up to four distinct packets originated by the
   authentication Server.  The authentication Server shall use four
   consecutive values for the Identifier field for full protocol
   exchange.  Successive protocol exchanges for the same connection
   (identified by Client IP address and source UDP port) shall use non-
   overlapping Identifier values.  Since the Identifier field is only 8
   bits, the value 0x00 is deemed to follow the value 0xFF.

   Length (16 bits): set this field to the length of the EAP packet,
   including the Code, Identifier, Length and the variable-size data.
   If the overall packet is longer than what is indicated by the length
   field, additional octets shall be ignored.  If the overall packet is
   truncated (i.e., not enough octets received to satisfy the length
   field), the packet shall be discarded.

   Data (variable): the data field is zero or more octets.  The size and
   format of the data field depends on the Code field, as described
   below.




Ammirata, et al.           Expires 27 May 2023                 [Page 11]

Internet-Draft              EAP SHA256 SRP6a               November 2022


4.2.3.  Request and Response Packets

   Figure 4 shows the packet payload format for Request (Code=0x01) and
   Response (Code=0x02) packets.

   Figure 4: Packet Payload Format for Request/Response Packets

   :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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | EAP Version=3 | EAPoL Type=0  |        Payload Length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Code=1 or 2  |  Identifier   |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      | Type-Data (variable, depends on Type) ... 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- 

   Set the fields in Figure 4 as follows:

   Type (8 bits): the Type field shall indicate the format of the
   messages used in the Request/Response exchanges.  The following
   values are defined in this document:

   0x01: Identity
   0x03: Nak (only valid for Response packets, shall not be sent on
   Request packets)
   0x13: EAP SRP-SHA256
   All other values reserved.

   Type-Data (variable): set this field depending on the Type value, as
   documented below.

4.2.3.1.  Identity Request/Response Packets

   Identity Request packets are sent from the Server to the Client.
   Upon reception of the Identity request packet, the Client shall
   answer with the Identity Response packet.  In the Identity Request
   packet, the Server may include a displayable message in the Type-Data
   field.  The Client shall return its identity as a string (typically
   the Username) in the Type-Data field.  Strings shall not be null-
   terminated.

   Figure 5: Identity Packets

   :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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | EAP Version=3 | EAPoL Type=0  |        Payload Length         |



Ammirata, et al.           Expires 27 May 2023                 [Page 12]

Internet-Draft              EAP SHA256 SRP6a               November 2022


   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Code=1 or 2  |  Identifier   |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type=0x01   | Message for Code=1, Username for Code=2
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

4.2.3.2.  Nak Response Packets

   Nak Response Packets shall be sent in response to any unknown or
   unsupported requests.  The Type-Data field shall be set to one octet
   with value 0x13, to indicate that only EAP SRP-SHA256 authentication
   is supported.  The Nak response packet is shown in Figure 6.

   Figure 6: Nak Response Packet

   :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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | EAP Version=3 | EAPoL Type=0  |       Payload Length=6        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Code=2     |  Identifier   |           Length=6            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type=0x03   |   Data=0x13   | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

4.2.4.  EAP SRP-SHA256 Packet Formats

   Figure 7 shows the packet formats for the EAP SRP-SHA256 packets.

   Figure 7: EAP SRP-SHA256 Packet Formats

   :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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | EAP Version=3 | EAPoL Type=0  |        Payload Length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Code=1 or 2  |  Identifier   |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type=0x13   |    Subtype    |                               :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   Subtype-Data (variable)     :
   :                                                               :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Set the fields in Figure 7 as follows:

   Subtype (8 bits): the subtype field shall be set to one of the
   following values:




Ammirata, et al.           Expires 27 May 2023                 [Page 13]

Internet-Draft              EAP SHA256 SRP6a               November 2022


   0x01: Challenge / Client Key

   0x02: Server Key / Client Validator

   0x03: Server Validator

   0x10: Passphrase Request / Response

   All other values reserved.  If a device receives an unknown subtype,
   it shall respond with a packet of Type Nak.

   Subtype Data (variable): set this field depending on the Type and
   Subtype values, as documented below.

4.2.4.1.  EAP SRP-SHA256 Challenge Request Packet

   The EAP SRP-SHA256 Challenge is a Request packet sent from the Server
   to the Client once the username has been received from the Client.
   It includes the unauthenticated Server name for verification
   purposes, the password salt "s", the generator value "g", and the
   prime modulus "N".  The packet format is shown in Figure 8.

   Figure 8: EAP SRP-SHA256 Challenge Packet

   :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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | EAP Version=3 | EAPoL Type=0  |        Payload Length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Code=1     |  Identifier   |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type=0x13   |  Subtype=0x01 |  Name Length  |Name (variable):
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Salt Length  |    Salt (variable) ...                         
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Gen Length   |    Generator (variable) ...                    
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Prime Modulus (variable) ...                                  
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Set the fields in the packet in Figure 8 as follows:

      Name Length (8 bits): a single octet giving the length of the Name
      field in octets.







Ammirata, et al.           Expires 27 May 2023                 [Page 14]

Internet-Draft              EAP SHA256 SRP6a               November 2022


      Name (variable): the Server name.  This field is not
      authenticated.  The Server name may be used by the Client in an
      implementation-dependent manner.  It shall not be treated by the
      Client as an authenticated name.

      Salt Length (8 bits): a single octet giving the length of the Salt
      field in octets.  The Salt Length shall be at least 4 octets and
      may be any length up to 255 octets.

      Salt (variable): password salt; may contain any values.  The
      contents of this field shall correspond to "s" in the SRP
      algorithm.

      Gen Length (8 bits): a single octet giving the length of the
      Generator field in octets.  If this field has the value zero, the
      default generator value of 2 shall be used and the Generator field
      shall not be present.

      Generator (variable): the Generator value, called "g" in the SRP
      algorithm, is in network byte order.  If the Gen Length field is
      zero, then the Generator field shall be omitted, and "g" shall be
      set to 2.

      Prime Modulus (variable): the Prime Modulus value, called "N" in
      the SRP algorithm, is in network byte order and fills the rest of
      the message to the length specified by the Length field in the EAP
      header.  If the Gen Length field is zero, the Prime Modulus field
      may be omitted to select the default "N" value listed below.  If
      the Prime Modulus field is present, then it should be at least 64
      octets (512 bits).  Longer values are recommended.

   If the Prime Modulus field in Figure 8 is empty, the Client shall
   assume the value below for value "N".  In this case, the Gen Length
   value shall be zero and the Generator value shall be assumed as "2".
   The value for "N" is:

   0xAC, 0x6B, 0xDB, 0x41, 0x32, 0x4A, 0x9A, 0x9B, 0xF1, 0x66, 0xDE,
   0x5E, 0x13, 0x89, 0x58, 0x2F, 0xAF, 0x72, 0xB6, 0x65, 0x19, 0x87,
   0xEE, 0x07, 0xFC, 0x31, 0x92, 0x94, 0x3D, 0xB5, 0x60, 0x50, 0xA3,
   0x73, 0x29, 0xCB, 0xB4, 0xA0, 0x99, 0xED, 0x81, 0x93, 0xE0, 0x75,
   0x77, 0x67, 0xA1, 0x3D, 0xD5, 0x23, 0x12, 0xAB, 0x4B, 0x03, 0x31,
   0x0D, 0xCD, 0x7F, 0x48, 0xA9, 0xDA, 0x04, 0xFD, 0x50, 0xE8, 0x08,
   0x39, 0x69, 0xED, 0xB7, 0x67, 0xB0, 0xCF, 0x60, 0x95, 0x17, 0x9A,
   0x16, 0x3A, 0xB3, 0x66, 0x1A, 0x05, 0xFB, 0xD5, 0xFA, 0xAA, 0xE8,
   0x29, 0x18, 0xA9, 0x96, 0x2F, 0x0B, 0x93, 0xB8, 0x55, 0xF9, 0x79,
   0x93, 0xEC, 0x97, 0x5E, 0xEA, 0xA8, 0x0D, 0x74, 0x0A, 0xDB, 0xF4,
   0xFF, 0x74, 0x73, 0x59, 0xD0, 0x41, 0xD5, 0xC3, 0x3E, 0xA7, 0x1D,
   0x28, 0x1E, 0x44, 0x6B, 0x14, 0x77, 0x3B, 0xCA, 0x97, 0xB4, 0x3A,



Ammirata, et al.           Expires 27 May 2023                 [Page 15]

Internet-Draft              EAP SHA256 SRP6a               November 2022


   0x23, 0xFB, 0x80, 0x16, 0x76, 0xBD, 0x20, 0x7A, 0x43, 0x6C, 0x64,
   0x81, 0xF1, 0xD2, 0xB9, 0x07, 0x87, 0x17, 0x46, 0x1A, 0x5B, 0x9D,
   0x32, 0xE6, 0x88, 0xF8, 0x77, 0x48, 0x54, 0x45, 0x23, 0xB5, 0x24,
   0xB0, 0xD5, 0x7D, 0x5E, 0xA7, 0x7A, 0x27, 0x75, 0xD2, 0xEC, 0xFA,
   0x03, 0x2C, 0xFB, 0xDB, 0xF5, 0x2F, 0xB3, 0x78, 0x61, 0x60, 0x27,
   0x90, 0x04, 0xE5, 0x7A, 0xE6, 0xAF, 0x87, 0x4E, 0x73, 0x03, 0xCE,
   0x53, 0x29, 0x9C, 0xCC, 0x04, 0x1C, 0x7B, 0xC3, 0x08, 0xD8, 0x2A,
   0x56, 0x98, 0xF3, 0xA8, 0xD0, 0xC3, 0x82, 0x71, 0xAE, 0x35, 0xF8,
   0xE9, 0xDB, 0xFB, 0xB6, 0x94, 0xB5, 0xC8, 0x03, 0xD8, 0x9F, 0x7A,
   0xE4, 0x35, 0xDE, 0x23, 0x6D, 0x52, 0x5F, 0x54, 0x75, 0x9B, 0x65,
   0xE3, 0x72, 0xFC, 0xD6, 0x8E, 0xF2, 0x0F, 0xA7, 0x11, 0x1F, 0x9E,
   0x4A, 0xFF, 0x73

4.2.4.2.  EAP SRP-SHA256 Client Key Response Packet

   The EAP SRP-SHA256 Client Key is a Response packet sent by the Client
   in response the Challenge packet described in section 4.2.4.1.  The
   packet format is shown in Figure 9.

   Figure 9: EAP SRP-SHA256 Client Key Packet Format

   :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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | EAP Version=3 | EAPoL Type=0  |        Payload Length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Code=2     |  Identifier   |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type=0x13   |  Subtype=0x01 | Value A (variable) ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The Client shall set the fields in Figure 9 as follows:

   Value A (variable): the result of g^a, where "a" is a randomly chosen
   number in the range 1 ..  N (exclusive), as described in section 4.1.
   The randomly chosen number is the Client's private key, and the Value
   A field is the corresponding public key.  This field shall be in
   network byte order and shall not be padded.  The "A" value shall not
   be zero modulo N.  If the Server receives a bad value for this field,
   it shall send a Failure packet described in section 4.2.5 and shall
   disconnect the link.

4.2.4.3.  EAP SRP-SHA256 Server Key Request Packet

   The EAP SRP-SHA256 Server Key is a Request packet sent by the Server
   after it has received the Client Key packet described in section
   4.2.4.2.  The packet format is shown in Figure 10.




Ammirata, et al.           Expires 27 May 2023                 [Page 16]

Internet-Draft              EAP SHA256 SRP6a               November 2022


   Figure 10: EAP SRP-SHA256 Server Key Packet Format

   :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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | EAP Version=3 | EAPoL Type=0  |        Payload Length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Code=1     |  Identifier   |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type=0x13   |  Subtype=0x02 | Value B (variable) ... 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The fields in Figure 10 shall be set as follows:

   Value B (variable): the result of (kv + g^b) % N, where "b" is a
   randomly chosen number in the range 1 .. N (exclusive), "v" is the
   stored verifier from the authentication database, and k=SHA256(N, g),
   as described in section 3.1.  The randomly chosen number is the
   Server's private key, and the Value B field is the corresponding
   public key.  This field shall be in network byte order and shall not
   be padded.  The B value shall not be zero modulo N.  If the Client
   receives a bad value for this field, it shall send a Failure packet
   described in section 4.2.5 and shall disconnect the link.

4.2.4.4.  EAP SRP-SHA256 Client Validator Response Packet

   The EAP SRP-SHA256 Client Validator is a Response packet sent by the
   Client in response to the Server Key packet described in section
   4.2.4.5.  The packet format is shown in Figure 11.

   Figure 11: EAP SRP-SHA256 Client Validator Packet Format

   :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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | EAP Version=3 | EAPoL Type=0  |        Payload Length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Code=2     |  Identifier   |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type=0x13   |  Subtype=0x02 |            Reserved1          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Reserved2         |U| Value M1 (32 octets) ... 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The Client shall set the fields in Figure 11 as follows:






Ammirata, et al.           Expires 27 May 2023                 [Page 17]

Internet-Draft              EAP SHA256 SRP6a               November 2022


      Reserved1 (16 bits), Reserved2 (15 bits): the Client shall set
      these bits to zero on transmission, and the Server shall ignore
      them on reception.

      U (1 bit): the Client shall set this bit to signal to the Server
      that it intends to use the derived key K (see section 4.1 and the
      M1 computation below) as the PSK passphrase.  If this bit is set,
      the Server shall use K as the passphrase to decrypt the traffic
      received from the Client.

      M1 (32 octets): the 32 octet values are calculated as follows (see
      section 3.1): x = SHA256(s, SHA256(I | ":" | P))
      u = SHA256(A, B)
      S = ((B - kg^x) ^ (a +ux)) % N
      K = SHA256(S)
      M1 = SHA256(SHA256(N) xor SHA256(g), SHA256(I, s, A, B, K))

   Upon reception of the Client Validator response, the Server shall
   compute the M1 value and check against the value that is received
   from the Client.  If the value matches, the Client is deemed
   authenticated and the Server sends the Server Validator Request
   packet described in section 4.2.4.5.  If the M1 value does not match,
   authentication has failed.  The Server shall send the Failure packet
   described in section 4.2.5 and shall disconnect the link.

4.2.4.5.  EAP SRP-SHA256 Server Validator Request Packet

   The EAP SRP-SHA256 Server Validator is a Request packet sent by the
   Server in response to the Client Validator packet described in
   section 4.2.4.4.  The packet format is shown in Figure 12.

   Figure 12: EAP SRP-SHA256 Server Validator Packet Format

   :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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | EAP Version=3 | EAPoL Type=0  |        Payload Length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Code=1     |  Identifier   |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type=0x13   |  Subtype=0x03 |            Reserved1          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Reserved2         |U| Value M2 (32 octets) ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The Server shall set the fields in Figure 12 as follows:





Ammirata, et al.           Expires 27 May 2023                 [Page 18]

Internet-Draft              EAP SHA256 SRP6a               November 2022


      Reserved1 (16 bits), Reserved2 (15 bits): the Server shall set
      these bits to zero on transmission, and the Client shall ignore
      them on reception.

      U (1 bit): the Server shall set this bit to signal to the Client
      that it intends to use the derived key K (see section 4.1 and the
      M2 computation below) as the PSK passphrase.  If this bit is set,
      the Client shall use K as the passphrase to decrypt the subsequent
      traffic received from the Server.

      M2 (32 octets): the 32 octet values are calculated as follows:
      u = SHA256(A, B)
      S = ((Av^u) ^ b) % N
      K = SHA256(S)
      M2 = SHA256(A, M1, K)

   Upon reception of the Server Validator request, the Client shall
   compute the M2 value and check against what was received from the
   Server.  If the value matches, the Server is deemed authenticated and
   the Client shall send the Success packet described in section 4.2.5
   and the authentication process is complete.  If the M2 value does not
   match, authentication has failed.  The Client shall send the Failure
   packet described in section 4.2.5 and shall disconnect the link.

4.2.4.6.  EAP SRP-SHA256 Passphrase Request Packet

   The EAP SRP-SHA256 Passphrase Request packet is used to request the
   passphrase currently in use.  This packet may be used by the Client
   and/or the Server, as different passphrases may be in use on either
   communication direction.  The packet format is shown in Figure 13.

   Figure 13: EAP SRP-SHA256 Passphrase Request Packet

   :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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | EAP Version=3 | EAPoL Type=0  |       Payload Length=6        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Code=1     |  Identifier   |           Length=6            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type=0x13   | Subtype=0x10  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 

   If used, this packet shall only be transmitted after both the Server
   and the Client have been authenticated.  The recipient of the packet
   shall respond to it as follows:





Ammirata, et al.           Expires 27 May 2023                 [Page 19]

Internet-Draft              EAP SHA256 SRP6a               November 2022


      If the recipient of the packet does not support passphrase
      requests, it shall respond with the Nak packet as per section
      4.2.3.2.

      If the recipient of the packet supports passphrase requests, it
      shall respond as follows:
      If authentication is not complete, the recipient of the packet
      shall respond with the Failure packet as per section 4.2.5.
      If authentication is complete, the recipient of the packet shall
      respond with the EAP SRP-SHA256 Passphrase Response as per section
      4.2.4.7.

4.2.4.7.  EAP SRP-SHA256 Passphrase Response Packet

   The EAP SRP-SHA256 Passphrase Response provides the passphrase,
   encrypted by the common session K.  As indicated in section 4.2.4.6,
   this response is only issued if authentication has successfully
   completed.  The packet format is shown in Figure 14.

   Figure 14: EAP SRP-SHA256 Passphrase Response Packet

   :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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | EAP Version=3 | EAPoL Type=0  |        Payload Length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Code=2     |  Identifier   |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type=0x13   | Subtype=0x10  |U|H| Reserved  |               :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               :
   :               Encrypted Passphrase (variable) ...             :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The fields in Figure 14 shall be set as follows:

      U (1 bit): this bit shall be set to the same value as the U bit in
      the validator packet transmitted by the sender (either the Client
      Validator in Figure 29 or the Server Validator in Figure 30).  If
      this bit is set, it indicates that the session key K is to be used
      as the passphrase.  In this case, the Encrypted Passphrase field
      in Figure 32 is not included in the packet.

      H (1 bit): this bit indicates the AES key length used in the
      encryption of the passphrase.  The current values are currently
      limited to the following, but may be added to in the future:
      H=0: 128-bit
      H=1: 256-bit




Ammirata, et al.           Expires 27 May 2023                 [Page 20]

Internet-Draft              EAP SHA256 SRP6a               November 2022


      Reserved (6 bits): this field shall be set to zero by the sender
      and ignored by the receiver.

      Encrypted Passphrase (variable): this field shall be set to the
      encrypted passphrase, generated as follows:
      Encryption algorithm: AES-CTR.
      Key length: as indicated by the H bit.
      Key: the first 128 or 256 bits of the session key K.
      IV: Initialization Vector.  The most significant 8 bits of the IV
      shall be set to the value in the Identifier field.  The remainder
      of the IV shall be padded with zeros.

   The recipient of the EAP SRP-SHA256 Passphrase Response packet shall
   acknowledge its reception by sending a Success packet (see section
   4.2.5) with the same Identifier as the Passphrase Response packet
   being acknowledged.

   If this protocol is to be used within an application employing an on-
   the-fly passphrase change mechanism, the side responsible for
   generating the passphrase may optionally send an unsolicited
   Passphrase Response Packet with a new passphrase.  In such a
   situation, it shall use a value for the Identifier field that is
   different from the previous Passphrase Response packet.  It shall not
   send a new passphrase until it starts using the passphrase from the
   last Passphrase Response packet to generate the key used to encrypt
   the stream.  In a multicast environment, this same side is
   responsible for contacting all others that are selected to receive
   the new passphrase; the details of this process are left to the
   discretion of the implementer.

4.2.4.8.  Success and Failure Packet Formats

   Figure 15 shows the packet format for Success (code 3) and Failure
   (code 4) packets.  Such packets have no additional data.  Set the
   Identifier to match the value of the corresponding Request/Response
   packet.

   Figure 15: Packet Payload Format for Success/Failure Packets

   :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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | EAP Version=3 | EAPoL Type=0  |       Payload Length=4        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Code=3 or 4  |  Identifier   |           Length=4            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+





Ammirata, et al.           Expires 27 May 2023                 [Page 21]

Internet-Draft              EAP SHA256 SRP6a               November 2022


4.3.  Protocol Exchanges

   This section describes the authentication protocol exchanges.  For
   each exchange, the Server selects a starting value for the 8-bit
   Identifier field as described in section 4.2.2, and increments this
   value for each successive request.  In the protocol exchanges
   presented in this section, the starting value of the Identifier field
   is denoted by n.

   Figure 16 shows the protocol exchange for a successful authentication
   exchange.  The Client can start the process (message 1) using the
   EAPoL-Start message or any unsolicited message, such as a keep-alive
   packet.

   Figure 16: Protocol Exchange for Successful Authentication

   +----+----------------------------+---+----------------------------+
   |    |           Client           |   |           Server           |
   |    | Message      | Doc   | ID  |   | Message      | Doc   | ID  |
   +----+--------------+-------+-----+---+--------------+-------+-----+
   | 1  | EAPoL-Start  | 4.1   |     | > |              |       |     |
   | 2  |              |       |     | < | Identity Req | 4.3.1 | n   |
   | 3  | Identity Res | 4.3.1 | n   | > |              |       |     |
   | 4  |              |       |     | < | Challenge    | 4.4.3 | n+1 |
   | 5  | Client Key   | 4.4.4 | n+1 | > |              |       |     |
   | 6  |              |       |     | < | Server Key   | 4.4.4 | n+2 |
   | 7  | Client Val   | 4.4.6 | n+2 | > |              |       |     |
   | 8  |              |       |     | < | Server Val   | 4.4.7 | n+3 |
   | 9  | Success      | 4.5   | n+3 | > |              |       |     |
   +----+----------------------------+---+----------------------------+

   Figure 17 shows a possible protocol exchange for the case where the
   username is unknown to the Server.  Use of this protocol exchange for
   unknown usernames allows a third party to "test" whether some
   usernames exist in the Server.  If this is a concern, the protocol
   exchange shown in Figure 18 may be used instead, with the Server
   sending random data in messages 4 and 6.

   Figure 17: Protocol Exchange for Unknown Username












Ammirata, et al.           Expires 27 May 2023                 [Page 22]

Internet-Draft              EAP SHA256 SRP6a               November 2022


   +----+----------------------------+---+----------------------------+
   |    |           Client           |   |           Server           |
   |    | Message      | Doc   | ID  |   | Message      | Doc   | ID  |
   +----+--------------+-------+-----+---+--------------+-------+-----+
   | 1  | EAPoL-Start  | 4.1   |     | > |              |       |     |
   | 2  |              |       |     | < | Identity Req | 4.3.1 | n   |
   | 3  | Identity Res | 4.3.1 | n   | > |              |       |     |
   | 4  |              |       |     | < | Failure      | 4.5   | n   |
   +----+--------------+-------+-----+---+--------------+-------+-----+

   Figure 18 shows the protocol exchange when the Client authentication
   fails.  This is determined at the Server when the value carried in
   the Client Validator packet in message 7 does not match the value
   computed by the Server.  This will happen if the Client does not have
   the correct password.  This exchange can also be used when the Client
   username does not exist in the Server, with random (fake) data in
   messages 4 and 6.

   Figure 18: Protocol Exchange for Client Authentication Failure

   +----+----------------------------+---+----------------------------+
   |    |           Client           |   |           Server           |
   |    | Message      | Doc   | ID  |   | Message      | Doc   | ID  |
   +----+--------------+-------+-----+---+--------------+-------+-----+
   | 1  | EAPoL-Start  | 4.1   |     | > |              |       |     |
   | 2  |              |       |     | < | Identity Req | 4.3.1 | n   |
   | 3  | Identity Res | 4.3.1 | n   | > |              |       |     |
   | 4  |              |       |     | < | Challenge    | 4.4.3 | n+1 |
   | 5  | Client Key   | 4.4.4 | n+1 | > |              |       |     |
   | 6  |              |       |     | < | Server Key   | 4.4.4 | n+2 |
   | 7  | Client Val   | 4.4.6 | n+2 | > |              |       |     |
   | 8  |              |       |     | < | Failure      | 4.5   | n+2 |
   +----+--------------+-------+-----+---+--------------+-------+-----+

   Figure 18 shows the protocol exchange when the Server validation
   fails.  This will likely only happen if the Client is connecting to a
   device who is impersonating the Server.  Such a device will have no
   knowledge of the password; it can go through the steps and pretend
   they completed successfully, but at message 8, the Client detects
   that the Server validation has failed.

   Message 9 in Figure 19 is at the option of the Client.  If Server
   validation fails, the Client may simply stop communicating with the
   Server and may ignore all further messages from it.

   Figure 19: Protocol Exchange for Server Authentication Failure





Ammirata, et al.           Expires 27 May 2023                 [Page 23]

Internet-Draft              EAP SHA256 SRP6a               November 2022


   +----+----------------------------+---+----------------------------+
   |    |           Client           |   |           Server           |
   |    | Message      | Doc   | ID  |   | Message      | Doc   | ID  |
   +----+--------------+-------+-----+---+--------------+-------+-----+
   | 1  | EAPoL-Start  | 4.1   |     | > |              |       |     |
   | 2  |              |       |     | < | Identity Req | 4.3.1 | n   |
   | 3  | Identity Res | 4.3.1 | n   | > |              |       |     |
   | 4  |              |       |     | < | Challenge    | 4.4.3 | n+1 |
   | 5  | Client Key   | 4.4.4 | n+1 | > |              |       |     |
   | 6  |              |       |     | < | Server Key   | 4.4.4 | n+2 |
   | 7  | Client Val   | 4.4.6 | n+2 | > |              |       |     |
   | 8  |              |       |     | < | Server Val   | 4.4.7 | n+3 |
   | 9  | Failure      | 4.5   | n+3 | > |              |       |     |
   +----+--------------+-------+-----+---+--------------+-------+-----+

4.4.  Re-Authentication

   In some situations, it is desirable to periodically re-authenticate
   the endpoints (Server and/or Client).  If requested by the other
   endpoint, Server or Client shall respond to the re-authentication
   process described in this section.  Server and Client may support
   initiating the re-authentication process.

   During re-authentication, normal data exchange between Server and
   Client shall continue.  If re-authentication fails, all communication
   between Server and Client shall stop.

   To start re-authentication by Server request, the Server shall send
   an Identity Request packet (section 4.2.3.1) to the Client to start
   the process.  This is packet 2 in Figure 16.  The protocol will then
   follow the steps shown in Figure 16 for successful authentication, or
   Figure 17, Figure 18 or Figure 19 for authentication failures.

   To start re-authentication by Client request, the Client shall send
   an EAPoL-Start packet (section 4.2.2) to the Server to start the
   process.  This is packet 1 in Figure 16.  The protocol will then
   follow the steps shown in Figure 16 for successful authentication, or
   Figure 17, Figure 18 or Figure 19 for authentication failures.

   The re-authentication process will yield a new session key K.  If
   either the Server and/or the Client signal the use of the session key
   K as the PSK passphrase by using the U bit in the messages described
   in sections 4.2.4.6 and/or 4.2.4.7, the protocol described in section
   4.4 shall be used to switch to the new passphrase.  If Server and/or
   Client are using the session key as the PSK passphrase, they are not
   required to set the U bit in the re-authentication session; in such a
   case, the original passphrase remains in use.




Ammirata, et al.           Expires 27 May 2023                 [Page 24]

Internet-Draft              EAP SHA256 SRP6a               November 2022


   The interval between successive re-authentication sessions between a
   Server and a given Client shall be no less than 60 seconds.

4.5.  UDP Transport Considerations

   The protocol described in this document runs over UDP.  Therefore, it
   is possible for packets to be re-ordered, duplicated, or dropped.

   The authentication process is driven by the Server.  If an expected
   response is not received by a given timeout interval, the request is
   retried.  The Server shall discard duplicate responses.  After a
   certain number of retries, the Server shall discard all the
   information received and shall wait to be contacted again by the
   Client.  The number of retries is left at the discretion of the
   implementer but should be no less than three.  The timeout is also
   left at the discretion of the implementer.  It is recommended that it
   be a multiple of the round-trip time between Server and Client.

   As indicated in Figure 16, a successful authentication exchange
   requires four packets from the Server, and the first packet is the
   Identity Request (section 4.2.3.1).  The Client shall save the
   Identifier from that message, which we will denote by n.  The Client
   shall only respond to packets with Identifier in the range of n to
   n+3 and shall silently discard all packets with identifier values not
   in this range.  If a Client receives a packet with an identifier
   value of k, with n < k less than or equal to n+3, the Client shall
   silently discard this packet if it has yet not received the packet
   with identifier k-1.  If the last response the Client sent was for
   identifier k, with n < k less than or equal to n+3, and now the
   Client receives a packet with identifier m, with n less than or equal
   to m less than or equal to k, it shall re-send the original response
   for identifier m.  During an authentication session, the random
   Server and Client keys shall not change.  For example, if the Client
   receives a duplicate Challenge packet (message 4 in Figure 16), it
   shall re-send the same Client Key response as with the original
   request.

   The Client shall implement a timeout mechanism for expected messages
   from the Server, until authentication completes.  If a protocol
   message does not arrive by a given timeout interval, the Client shall
   restart the authentication process.  This timeout is left to the
   discretion of the implementer and should be a multiple of the round-
   trip time.








Ammirata, et al.           Expires 27 May 2023                 [Page 25]

Internet-Draft              EAP SHA256 SRP6a               November 2022


   For the Passphrase Request/Response messages in sections 4.2.4.6 and
   4.2.4.7, the sender of each message shall implement a timeout
   mechanism after each message.  If a response is not received by a
   given timeout interval, the message is retried.  After a certain
   number of retries, the sender shall abort the process.  The recovery
   mechanism in this case is left to the discretion of the implementer.

4.6.  Multicast Authentication (Informative)

   The mechanism described in this document can be used to provide
   authentication in a multicast streaming environment under the
   following conditions:

      When directed to an IP multicast address, while any device in the
      network can join the multicast, only authenticated devices are
      allowed to decrypt the content.

      Unicast bidirectional communication is possible between the sender
      and all receivers of the multicast.

      Receivers are configured with the multicast address and UDP port
      through external means not covered by this Specification.

      The sender of the stream is also the authentication Server.
      Alternatively, a separate authentication Server can be used, under
      the following conditions:
      The multicast receivers are configured with the IP address and UDP
      port of the authentication Server through external means not
      covered by this Specification.
      The authentication Server has knowledge of the passphrase in use
      to encrypt the multicast stream.

   Operation is as follows:

      The Client joins the multicast.  Since it does not have the
      passphrase yet, it cannot decrypt the content.

      The Client uses the source IP address and source UDP port from the
      received multicast packets to initiate an authentication session
      with the Server/sender of the content.  Alternatively, the Client
      may instead contact a pre-configured authentication Server.  The
      authentication session is initiated with an EAPoL-Start packet, as
      described in in section 4.2.2.

      If the authentication session finishes successfully, the receiver
      requests the PSK passphrase using the passphrase request packet
      described in section 4.2.4.6, and the Server responds with the
      passphrase response packet described in section 4.2.4.7.



Ammirata, et al.           Expires 27 May 2023                 [Page 26]

Internet-Draft              EAP SHA256 SRP6a               November 2022


      At this point, the Client can now decrypt the PSK stream.  The
      Client may send keep-alive unicast packets back to the sender.

   The re-authentication process described in section 4.4 can be used in
   this multicast environment.  As indicated in that section, the re-
   authentication can be started either by the Client or the Server.

   If a Client-initiated re-authentication fails, the Client shall leave
   the multicast and stop processing the data.

   Servers know which Clients are active due to the keep-alive messages.
   If the re-authentication fails with a subset of the receivers, the
   Server should change the PSK passphrase to remove their access.  The
   process will happen as follows:

      The Server generates a new passphrase through means outside this
      Specification.

      The Server sends the new passphrase to the subset of receivers for
      which authentication succeeded, using the passphrase response
      packet and mechanism from section 3.4.9.  For each allowed
      receiver, the session key from the new successful authentication
      will be used.

      Once all the allowed receivers have the new passphrase, the on-
      the-fly passphrase change mechanism from section 3.4 is used to
      switch to the new passphrase.

4.7.  Multi-Link Operation

   It is possible to use the authentication mechanism described in this
   document in a multi-link application.  In this case, there are
   multiple links between the Server and the Client.  The following
   considerations apply to multi-link operation, at the discretion of
   the implementer:

      One option is to run independent authentication sessions on each
      link.  Even if the same username/password is used in all links,
      the session key will be different per link.  If the session key is
      used as the passphrase, each link will have its own PSK encryption
      key.










Ammirata, et al.           Expires 27 May 2023                 [Page 27]

Internet-Draft              EAP SHA256 SRP6a               November 2022


      Another option is to combine the links.  In this case, it is
      recommended that GRE use is implemented, whereby the GRE sequence
      number shall be included in the packet.  The resulting combined
      and re-ordered packet flow is then used for authentication.  In
      this case, a single authentication session and passphrase will be
      used across all links.  This also allows for links to be
      dynamically added as needed at any time.

4.8.  Authentication Example

   This section provides a numerical example of an authentication
   exchange.  It is provided to allow implementations to be checked
   against known values.  In the example below, all numeric values are
   presented in base 16 (hexadecimal).  Underlined values are random
   numbers, bold values are computation results.  The example uses the
   weakest legal modulus value (512-bit) for simplicity.  Use of greater
   modulus length in actual implementations is encouraged.

   The inputs for the algorithm in this example are:

      Modulus "N": D66AAFE8E245F9AC245A199F62CE61AB8FA90A4D80C71CD2ADFD0
      B9DA163B29F2A34AFBDB3B1B5D0102559CE63D8B6E86B0AA59C14E79D4AA62D174
      8E4249DF3

      Generator "g": 2

      Username "I": rist

      Password "P": mainprofile

   The Server generates a random salt "s" for each username/password
   pair.  In this example, the following salt value is used:

      Salt "s":
      72F9D5383B7EB7599FB63028F47475B60A55F313D40E0BE023E026C97C0A2C32

   The Server computes the password verifier "v" as follows (see section
   3.1):

      x = SHA256(s, SHA256(I | ":" | P))

      v = g^x

   For the example inputs, the values will be:

      Value "x":
      8578DED647FC7E82D37886EBEF2C300EB0213CCC321D8A43A0DE2131B720C9C8




Ammirata, et al.           Expires 27 May 2023                 [Page 28]

Internet-Draft              EAP SHA256 SRP6a               November 2022


      Verifier "v": 557EA208F87A23C28936423EC16ABE6BD959933DFBEFC0B36EBD
      9335DE3997C97DDFA081D64CFBC6EFBFD5BE19F2ED9F77922FD7E88BBA6C6B310A
      9018EC4305

   The Server stores the salt "s" and the verifier "v" indexed by the
   username "I".  There is no need for the Server to store the password
   "P".  Once this is in place, the Server is ready to authenticate the
   Client.

   As illustrated in Figure 16, the Client starts the authentication
   process by sending the EAPoL-Start packet.  The Server will send the
   Identity Request packet, and the Client will respond with the
   Identity Response packet, indicating the (in this example) "rist"
   username.  The Server will then send the Challenge Request packet
   from section 4.2.4.1 containing the values "s", "g" and "N", which
   are cached by the Client.

   The Client generates a random number "a" between 1 and N-1.  In this
   example, the following value is used:

      Value "a":
      138AB4045633AD14961CB1AD0720B1989104151C0708794491113302CCCC27D5

   The Client uses the random value "a" to compute the Client key "A"
   using the following formula:

      A = g^a

   In this example, the Client key "A" value is computed as:

      Client key "A": 92C4CEFB95A1AE2E576A252B19273FD4613F44FDA4AC8CC84A
      089D5740756223943882BAD34CB55F35139CDDB60E0D19ACD2B884CFB27F53C8EA
      969269ABE014

   The Client key "A" is returned to the Server using the Client Key
   Response Packet from section 4.2.4.2.  The Server checks that A % N
   is not zero and caches the value "A".

   The Server generates a random number "b" between 1 and N-1.  In this
   example, the following value is used:

      Value "b"
      ED0D58FF861A1FC75A0829BEA5F1392D2B13AB2B05CBCD6ED1E71AAAD761E856

   The Server computes the Server key "B" as follows:

      k = SHA256(N, g)




Ammirata, et al.           Expires 27 May 2023                 [Page 29]

Internet-Draft              EAP SHA256 SRP6a               November 2022


      B = (kv + g^b) % N

   In this example, the Server key "B" is computed as follows:

      Value "k":
      890D0AC9E42A7F909D3CAA9A0FF115C52A1DC8DED10839EF9583C4E35EA76E78

      Server key "B: 85CAE0C578E6927B78BEB173FB0F9BFC8ECB4C13542BB8BE3B0
      F3447B3764A234177E22D180DCAD21F33302248B7452916DC58ABD309C8A77440A
      228B8516A4E

   The Server key "B" is sent to the Client using the Server Key Request
   Packet from section 4.2.4.5.  Upon receiving this value, the Client
   performs the following computations:

      x = SHA256(s, SHA256(I, ":", P))

      k = SHA256(N, g)

      u = SHA256(A, B)

      S = ((B - kg^x) ^ (a +ux)) % N

      K = SHA256(S)

      M1 = SHA256(SHA256(N) xor SHA256(g), SHA256(I, s, A, B, K))

   The values "x" and "k" for this example have already been computed
   and their values can be found above.  The remaining values are:

      Value "u":
      47BFBFEC70D89D5D9D61D52F9F446225A12C5DD7E3F55257C88772B0AEBB532A

      Value "S": 11426AB55E6550013743D08EB70D82F91404AA90CF0C63D8C168741
      4C2F8DC9240795EEE40BAC37C5F29B07BBAEB2C0D6CF59CFADCBACD4D93F948FB6
      2A0C96D

      Session key "K":
      771A81C5888B81BA1BE71C8250EC1CC2A3BA67555364F4603260BE65099C5B97

      Validator value "M1":
      EBFC2D79BEB3CBF7BA83C27E2B51524F8CD3F3B2C4804815AD2516D465DF80C9

   The Client caches the session "K" for possible future use as a
   passphrase and returns the validator value "M1" back to the Server
   using the Client Validator Response Packet from section 4.2.4.4.





Ammirata, et al.           Expires 27 May 2023                 [Page 30]

Internet-Draft              EAP SHA256 SRP6a               November 2022


   Upon receiving the "M1" value from the Client, the Server computes
   its own version of "K" and "M1" using the following formulas:

      u = SHA256(A, B)

      S = ((Av^u) ^ b) % N

      K = SHA256(S)

      M1 = SHA256(SHA256(N) xor SHA256(g), SHA256(I, s, A, B, K))

   If the "M1" value computed by the Server matches what it received
   from the Client, the Client is deemed authenticated.  In this case,
   the session key "K" will also match.  The Server computes its
   validator value "M2" as follows:

      M2 = SHA256(A, M1, K)

   For this example, the value is:

      Validator value "M2":
      FB14D73B5ACBBA101E5A799F80EBCBB43D83890E23DED979110EEFF109C0441A

5.  IANA Considerations

   The current document does not contain additional types or IDs for
   submission.

6.  Internationalization Considerations

   Not applicable.

7.  Security Considerations

   This entire document describes a security protocol, based upon other
   security protocols, for optional use with other security mechanisms.

8.  References

8.1.  Normative References

   [RFC2784]  Farinacci, D., Li, T., Hanks, S., Meyer, D., and P.
              Traina, "Generic Routing Encapsulation (GRE)", RFC 2784,
              DOI 10.17487/RFC2784, March 2000,
              <https://www.rfc-editor.org/info/rfc2784>.






Ammirata, et al.           Expires 27 May 2023                 [Page 31]

Internet-Draft              EAP SHA256 SRP6a               November 2022


   [RFC8086]  Yong, L., Ed., Crabbe, E., Xu, X., and T. Herbert, "GRE-
              in-UDP Encapsulation", RFC 8086, DOI 10.17487/RFC8086,
              March 2017, <https://www.rfc-editor.org/info/rfc8086>.

8.2.  Informative References

   [Video_Services_Forum]
              Video Services Forum, "Video Services Forum (VSF)
              Technical Recommendation TR-06-2:2022", 2022,
              <https://vsf.tv/download/technical_recommendations/VSF_TR-
              06-2_2022-08-11.pdf>.

Acknowledgements

   We acknowledge the editing assistance provided by John Iacovelli and
   Ciro Noronha.  The description of this protocol was originally
   published by the Videos Services Forum [Video_Services_Forum] as part
   of a technical recommendation for the RIST error correction protocol.

Authors' Addresses

   Sergio Ammirata
   SipRadius LLC.
   6810 N. State Rd. 7 Suite 246
   Coral Springs, Florida 33073
   United States of America
   Email: sergio@ammirata.net
   URI:   https://www.sipradius.com


   Gijs Peskens
   SipRadius LLC.
   6810 N. State Rd. 7 Suite 246
   Coral Springs, Florida 33073
   United States of America
   Email: gils@ammirata.net


   Brad Gilmer
   Video Services Forum
   United States of America
   Email: brad@gilmer.tv
   URI:   https://www.vsf.tv


   John Iacovelli (editor)
   Video Services Forum
   United States of America



Ammirata, et al.           Expires 27 May 2023                 [Page 32]

Internet-Draft              EAP SHA256 SRP6a               November 2022


   Email: john.iacovelli@gmail.com
   URI:   https://www.sipradius.com

















































Ammirata, et al.           Expires 27 May 2023                 [Page 33]