Network Working Group J. Carlson
INTERNET-DRAFT Sun Microsystems
Expires January 2002 B. Aboba
Microsoft Corporation
H. Haverinen
Nokia Mobile Phones
July 2001
EAP SRP-SHA1 Authentication Protocol
<draft-ietf-pppext-eap-srp-03.txt>
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC 2026.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
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."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This document is the product of the Point-to-Point Protocol
Extensions Working Group of the Internet Engineering Task Force
(IETF). Comments should be submitted to the ietf-ppp@merit.edu
mailing list. Distribution of this memo is unlimited.
Abstract
The Extensible Authentication Protocol (EAP) [RFC2284] describes a
framework that allows the use of multiple authentication mechanisms.
This document defines an authentication mechanism for EAP called
SRP-SHA1, based on the Secure Remote Password (SRP) [RFC2945]
protocol.
EAP can be used with the Point-to-Point Protocol (PPP) [RFC1661] for
link authentication.
Carlson, Aboba, Haverinen expires January 2002 [Page 1]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
Table of Contents
1. Introduction ........................................... 2
2. Detailed Description of EAP SRP-SHA1 Authentication .... 3
2.1. EAP SRP-SHA1 Packet Formats .......................... 4
2.2. EAP SRP-SHA1 Challenge Subtype-Data .................. 6
2.3. EAP SRP-SHA1 Client Key Subtype-Data ................. 8
2.4. EAP SRP-SHA1 Server Key Subtype-Data ................. 8
2.5. EAP SRP-SHA1 Client Validator Subtype-Data ........... 9
2.6. EAP SRP-SHA1 Server Validator Subtype-Data ........... 10
2.7. EAP SRP-SHA1 Subtype 3 Response Packet ............... 12
2.8. EAP SRP-SHA1 Lightweight Challenge Subtype-Data ...... 12
2.9. EAP SRP-SHA1 Lightweight Response Subtype-Data ....... 13
3. Identity Privacy Support ............................... 13
3.1 Step One ............................................. 14
3.2 Step Two ............................................. 15
3.3 Using the Pseudonym .................................. 15
4. Use with ECP ........................................... 16
4.1. One-Way Versus Bidirectional Encryption .............. 17
4.2. One-Way Versus Mutual Authentication ................. 17
4.3. DESEbis Versus 3DES .................................. 18
5. Use with AAA ........................................... 18
6. Examples ............................................... 19
6.1. Successful Authentication ............................ 19
6.2. Client Unauthenticated ............................... 19
6.3. Server Unverified .................................... 20
7. Security Considerations ................................ 21
8. Intellectual Property Rights Notices ................... 21
8.1. Patent Issues ........................................ 21
8.2. Full Copyright Statement ............................. 22
9. References ............................................. 23
9.1. Normative References ................................. 23
9.2. Informative References ............................... 23
10. Acknowledgements ....................................... 24
11. Authors' Addresses ..................................... 24
12. Appendix A - Well-Known Prime Modulus .................. 25
1. Introduction
EAP allows the use of multiple authentication mechanisms within a
single negotiation framework. When used with PPP, this protocol
overcomes the chief design limitation of the original PPP authentica-
tion mechanisms, PAP [RFC1334] and CHAP [RFC1994], which required
that the protocol to be used for authentication be chosen before the
peer's identity was known. EAP also simplifies the process of adding
new authentication mechanisms and linking them into external authen-
tication services.
Carlson, Aboba, Haverinen expires January 2002 [Page 2]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
SRP is an open source protocol that provides strong, password-based
authentication based on cryptographic hashing. Unlike PAP, the pass-
word never appears on the wire. Unlike CHAP (and variants MS-CHAPv1
[RFC2433] and MS-CHAPv2 [RFC2759]), access to a cleartext password is
not required for the authenticator. Unlike all of these authentica-
tion protocols, SRP is resistant to dictionary attacks against the
over-the-wire information. SRP is also resistant to eavesdropping
and active attacks. As a side-effect, SRP also creates a session key
that is resistant to man-in-the-middle attacks and can be used for
data encryption.
SHA-1 [FIPS180] is a message digest algorithm that can be used as a
hashing mechanism for SRP, producing an SRP variant known as SRP-
SHA1. For calculation of the shared key in SRP, SHA-1 is used in an
interleaved form to produce 40 octet hashes. See section 3.1 of
[RFC2945] for details.
This document describes the message exchanges necessary for one peer
to authenticate the other using EAP and SRP-SHA1. When used with
PPP, the peers are independent and equal, and either or both may
demand authentication from the other, and different protocols MAY be
used independently in each direction.
When the PPP Encryption Control Protocol (ECP) [RFC1968] is used
along with EAP SRP-SHA1, this document describes methods that SHOULD
be used to generate the necessary shared keys from the SRP-SHA1 ses-
sion key. Because authentication necessarily requires prior arrange-
ment between the peers, pre-configured keys MAY be used in place of
the SRP-SHA1 session key, and any such selection is outside the scope
of this document.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14 [RFC2119].
2. Detailed Description of EAP SRP-SHA1 Authentication
Unlike CHAP, SRP-SHA1 requires more than one exchange to authenticate
the peer. For this reason, three primary message subtypes are
defined.
With SRP, the authenticator must communicate at least three values to
the authenticatee, referred to as 's' (the password salt), 'B' (an
ephemeral public key), and 'M2' (a hash value). The authenticatee
must communicate at least three values to the authenticator, referred
to as 'C' (the client name), 'A' (an ephemeral public key), and 'M1'
(a hash value).
Carlson, Aboba, Haverinen expires January 2002 [Page 3]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
(The value 'u' passed from authenticator to authenticatee in the gen-
eral SRP algorithm is derived from the first 32 bits of a SHA-1 hash
of the 'B' value itself in the SRP-SHA1 algorithm. Thus, it does not
need to be sent explicitly.)
In order to send its last value (M1), the authenticatee needs A, B,
and u. However, in order to guarantee that the authenticatee's value
chosen for A isn't a rogue value (see section 3.2.4 of the SRP
description [SRP]), the value of u must not be sent until the authen-
ticatee reveals A. This implies that there are at least three steps
-- authenticatee sends A, authenticator sends B, authenticatee sends
M1.
The adaptation described in this document recommends the use of the
EAP Identity Request/Response mechanism to obtain C from the peer.
It then uses a new message type, called EAP SRP-SHA1, with three main
subtypes to handle the SRP authentication. The Subtype 1 Request
("Challenge") message contains s, g, and N. The Subtype 1 Response
("Client Key") contains A. The Subtype 2 Request ("Server Key") con-
tinues with B and the Subtype 2 Response ("Client Validator") con-
tains M1. Finally, the Subtype 3 Request ("Server Validator") con-
tains the M2 value and the Subtype 3 response is an acknowledgement
containing only the Subtype number and no data.
A fourth subtype is used for optional lightweight rechallenges.
2.1. EAP SRP-SHA1 Packet Formats
All EAP SRP-SHA1 authentication is driven by the authenticator
(server). The authenticatee (client) MUST NOT retransmit Response
messages, but SHOULD terminate the link if a Request is not received
within a reasonable time period. The authenticator SHOULD silently
ignore unexpected Response messages. The authenticatee MUST respond
using EAP Nak if any unknown Subtype or otherwise unacceptable mes-
sage is received.
Rationale:
Although the EAP Nak message is intended to signal only that a
given EAP Type is unknown to the authenticatee and that a
different Type should be used, its use here is still consistent
with that meaning. If the authenticator attempts to use a
subtype unknown to the authenticatee, then authentication using
EAP SRP-SHA1 is itself not possible, and another Type should be
tried.
A summary of the EAP SRP-SHA1 Request/Response packet format is shown
Carlson, Aboba, Haverinen expires January 2002 [Page 4]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
below. The fields are transmitted from left to right.
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 | Subtype-Data ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+--+-
Code
1 - Request
2 - Response
Identifier
The Identifier field is one octet and aids in matching responses
with requests. The Identifier MUST be changed for each new
Request message sent and MUST NOT be changed on retransmission of
a given message. The Identifier in the Response message MUST
match the corresponding Request. The authenticator MUST discard
non-matching Response messages.
Length
The Length field is two octets and indicates the length of the
EAP packet including the Code, Identifier, Length, Type, Subtype,
and Subtype-Data fields. Octets outside the range of the Length
field should be treated as Data Link Layer padding and should be
ignored on reception. Truncated packets (with Length greater
than the link layer reported length) MUST be silently discarded.
Type
19 - EAP SRP-SHA1
Subtype
1 - Challenge / Client Key
2 - Server Key / Client Validator
3 - Server Validator
4 - Lightweight Rechallenge
The Subtype field is one octet and must contain the value 1, 2,
3, or 4. If any other subtype value is encountered in an EAP
SRP-SHA1 Request message, then the authenticatee SHOULD return an
EAP Response with the Type field set to Nak. In EAP SRP-SHA1
Carlson, Aboba, Haverinen expires January 2002 [Page 5]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
Response messages, the Subtype value must be copied from the
corresponding Request message. The authenticator should treat
unknown Subtype values in Response messages as malformed packets
and silently discard.
Subtype-Data
The format of the Subtype-Data field is determined by the Code
and Subtype fields as described in the sections below.
2.2. EAP SRP-SHA1 Challenge Subtype-Data
The EAP SRP-SHA1 Challenge (Subtype 1 Request) packet MUST be sent
after the peer's identity has been obtained; use of the EAP Identity
Request/Response packet as described in [RFC2284] is RECOMMENDED.
Using the peer's unauthenticated identity, the authenticator MUST
look up the password salt, verifier ('v'), prime modulus ('N'), and
generator ('g') values in an implementation-dependent manner. Use of
EAP Identity is not required by this specification, and determination
of salt, verifier, prime modulus, and generator MAY be done in any
convenient implementation-dependent manner.
The authenticatee MUST validate that the specified generator value is
indeed a generator modulo N, as described in the SRP documentation
[SRP]. In many cases, an efficient method to do this is to keep a
list of known-good values, and compare against this list. Since the
full validation procedure is complex, the authenticator SHOULD use a
longer timeout value if the default generator and modulus are not
used; at least 30 seconds is RECOMMENDED.
A summary of the EAP SRP-SHA1 Challenge Subtype-Data format is shown
below. Code (1), Identifier, Length, Type (19), and Subtype (1)
fields are as described above. The fields are transmitted from left
to right and are not padded or justified.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Name Length | Server Name ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
| Salt Length | Salt ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
| Gen Length | Generator ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
| Prime Modulus ...
+-+-+-+-+-+-+-+-+-+-+-+-+-
Carlson, Aboba, Haverinen expires January 2002 [Page 6]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
Name Length
A single octet giving the length of the Server Name field in
octets. The server name identifies the authenticator, and is
used by the authenticatee in an implementation-dependent manner.
It MAY be used by the authenticatee to select an appropriate
secret for authentication or displayed to a user.
Server Name
The authenticator's name. This field is not authenticated. It
SHOULD NOT be used by the authenticatee as an authenticated peer
name.
Salt Length
A single octet giving the length of the Salt field in octets.
This MUST be at least 4 octets and MAY be any length up to 255
octets.
Salt
Password salt string; may contain any values. The contents of
this field correspond to 's' in the SRP documentation.
Gen Length
A single octet giving the length of the Generator field in
octets. This value MAY be zero to select the default generator
value of 2.
Generator
The Generator value, called 'g' in the SRP documentation, is in
network byte order. If the Gen Length field is zero, then the
Generator field is omitted, and g is set to 2.
Prime Modulus
The Prime Modulus value, called 'N' in the SRP documentation, is
in network byte order and fills the rest of the message to the
length specified by the Length field in the EAP header.
This value MAY be omitted to select the 2048 bit value for N
listed in Appendix A. In this case, the Generator value MUST NOT
be present in the message in order to default to 2.
If the Prime Modulus Length field is present, then it SHOULD be
Carlson, Aboba, Haverinen expires January 2002 [Page 7]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
at least 64 octets (512 bits). Longer values are RECOMMENDED.
2.3. EAP SRP-SHA1 Client Key Subtype-Data
The EAP SRP-SHA1 Client Key (Subtype 1) Response message MUST be sent
in reply to an EAP SRP-SHA1 Subtype 1 Request message.
A summary of the EAP SRP-SHA1 Client Key Subtype-Data format is shown
below. Code (2), Identifier, Length, Type (19), and Subtype (1)
fields are as described above. The fields are transmitted from left
to right.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value A ...
+-+-+-+-+-+-+-+-+-+-
Value A
The result of (g^a) mod N, where 'a' is a randomly chosen number
in the range 1 .. N (exclusive). The randomly chosen number is
the authenticatee's private key, and the Value A field is the
corresponding public key. This field is in network byte order
and is not padded.
The A value MUST NOT be zero modulo N. If the authenticator
receives a bad value for this field, it MUST take action to
disconnect or disable the link.
2.4. EAP SRP-SHA1 Server Key Subtype-Data
The EAP SRP-SHA1 Server Key (Subtype 2 Request) message MUST be sent
by the authenticator after reception of a valid EAP SRP-SHA1 Client
Key (Subtype 1) Response message.
A summary of the EAP SRP-SHA1 Server Key Subtype-Data format is shown
below. Code (1), Identifier, Length, Type (19), and Subtype (2)
fields are as described above. The fields are transmitted from left
to right.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value B ...
+-+-+-+-+-+-+-+-+-+-
Carlson, Aboba, Haverinen expires January 2002 [Page 8]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
Value B
The result of (v + g^b) mod N, where 'b' is a randomly chosen
number in the range 1 .. N (exclusive), and v is the stored
verifier from the authentication database. The randomly chosen
number is the authenticator's private key, and the Value B field
is the corresponding public key. This field is in network byte
order and is not padded.
The B value MUST NOT be zero modulo N. If the authenticatee
receives a bad value for this field, it MUST take action to
disconnect or disable the link.
2.5. EAP SRP-SHA1 Client Validator Subtype-Data
The EAP SRP-SHA1 Client Validator (Subtype 2 Response) message MUST
be sent by the authenticatee in response to a valid EAP SRP-SHA1 Sub-
type 2 Request. The authenticator validates this Response message by
calculating the M1 value from its own copies of A, B, and K, and com-
pares the result. If the values match, then the authentication is
successful, and EAP SRP-SHA1 Server Validator Request SHOULD be sent.
If the values do not match, then EAP Failure SHOULD be returned and
the link terminated.
A summary of the EAP SRP-SHA1 Client Validator Subtype-Data format is
shown below. Code (2), Identifier, Length (30), Type (19), and Sub-
type (2) fields are as described above. The fields are transmitted
from left to right.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved |E|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value M1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| M1 (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| M1 (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| M1 (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| M1 (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Carlson, Aboba, Haverinen expires January 2002 [Page 9]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
Reserved
Must be zero on transmit by the authenticatee, ignored on
reception by the authenticator.
E Bit
This bit is set if the authenticatee intends to use the derived
session key (K) for ECP, as described in section 4. If this bit
is zero, then K will not be used, and if ECP is negotiated, it
must use a different keying mechanism.
Value M1
The 20 octet result of SHA1(SHA1(N) xor SHA1(g),
SHA1(clientname), s, A, B, K, id, Type). The single octet "id"
value used in this calculation MUST be the EAP Identifier field
from the EAP SRP-SHA1 Challenge (Subtype 1) Request message. The
single octet "Type" value is a copy of the EAP Type field, which
is fixed at 19 (decimal).
As described in SRP [RFC2945], the authenticatee computes x = SHA1(s,
SHA1(clientname, ":", password)), and then computes K =
SHA_Interleave((B - g^x)^(a + u*x) mod N). The authenticator com-
putes K = SHA1_Interleave((A * v^u)^b mod N). The calculated K
values MAY be used with ECP (see section 4), lightweight rechallenge
(section 2.8), and identity privacy (section 3). Finally, M1 is com-
puted as SHA1(SHA1(N) xor SHA1(g), SHA1(clientname), s, A, B, K, id,
Type). (Note that reference [SRP] gives different definitions of
these values; the [RFC2945] document should be treated as the norma-
tive reference.)
The SHA1 hash to produce the long-term private key x, described above
and in [RFC2945], SHOULD be used by default in EAP SRP-SHA1. As an
implementation option, however, the x value used above MAY instead be
derived from any mutually-chosen hashing algorithm, provided that the
security of that algorithm is acceptable to both authentication par-
ties. Note that such usage requires prior arrangement between the
peers.
2.6. EAP SRP-SHA1 Server Validator Subtype-Data
The EAP SRP-SHA1 Server Validator (Subtype 3 Request) message MUST be
sent by the authenticator after reception of a valid EAP SRP-SHA1
Client Validator (Subtype 2) Response. If the authenticatee receives
a Server Validator message with invalid contents, it MUST terminate
the link.
Carlson, Aboba, Haverinen expires January 2002 [Page 10]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
A summary of the EAP SRP-SHA1 Server Validator Subtype-Data format is
shown below. Code (1), Identifier, Length, Type (19), and Subtype
(3) fields are as described above. The fields are transmitted from
left to right.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved |E|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value M2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| M2 (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| M2 (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| M2 (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| M2 (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hidden Pseudonym ...
+-+-+-+-+-+-+-+-+-+-+-+-+-
Reserved
Must be zero on transmit by the authenticator, ignored on
reception by the authenticatee.
E Bit
This bit is set if the authenticator intends to use the derived
session key (K) for ECP, as described in section 4. If this bit
is zero, then K will not be used, and if ECP is negotiated, it
must use a different keying mechanism. This bit MUST be 0 if the
authenticator uses a proxy authentication mechanism that does not
provide access to the session key. (See section 5.)
Value M2
The 20 octet result of SHA1(A, M1, K, id, Type). The single
octet "id" value used in this calculation MUST be the EAP
Identifier field from the EAP SRP-SHA1 Challenge (Subtype 1)
Request message. The single octet "Type" value is a copy of the
EAP Type field, which is fixed at 19 (decimal).
Hidden Pseudonym
This optional field is described in section 3. The Hidden
Carlson, Aboba, Haverinen expires January 2002 [Page 11]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
Pseudonym field extends to the end of the message as indicated by
the EAP Length field.
2.7. EAP SRP-SHA1 Subtype 3 Response
The authenticatee MUST transmit a EAP SRP-SHA1 Subtype 3 Response
message in reply to a valid Server Validator message from the peer.
This Response message has no Subtype-Data field. The Code (2), Iden-
tifier, Length (6), Type (19), and Subtype (3) fields are as
described above.
2.8. EAP SRP-SHA1 Lightweight Challenge Subtype-Data
The EAP SRP-SHA1 Lightweight Challenge (Subtype 4 Request) message
MAY be used by the authenticator for periodic rechallenges at any
time after EAP authentication is complete.
After rechallenge with this mechanism, the shared session key remains
unchanged. This property may be useful when this key is used with
ECP, because regular reauthentication (starting with a new Subtype 1
Request) will change the key. This mechanism may also be useful with
external security servers, because the NAS can implement this feature
without making additional queries to the server if the server sup-
plies the K value.
A summary of the EAP SRP-SHA1 Lightweight Challenge Subtype-Data for-
mat is shown below. Code (1), Identifier, Length, Type (19), and
Subtype (4) fields are as described above. The fields are transmit-
ted from left to right.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Challenge ...
+-+-+-+-+-+-+-+-+-+-+-
Challenge
The Challenge value is a sequence of random data. This field MAY
be any length up to the MTU, but MUST be at least four octets.
The authenticatee MUST NOT reply if the Challenge field is too
short.
Carlson, Aboba, Haverinen expires January 2002 [Page 12]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
2.9. EAP SRP-SHA1 Lightweight Response Subtype-Data
The EAP SRP-SHA1 Lightweight Response (Subtype 4 Response) message
SHOULD be sent by the authenticatee in response to a Lightweight
Challenge message. The authenticatee MAY instead use EAP Nak with
Type-Data set to 19 (EAP SRP-SHA1) to restart full SRP authentica-
tion.
The authenticator MUST take action to disconnect or disable the ses-
sion if the Lightweight Response value is invalid or if a preset
number of Lightweight Challenge messages are sent without a valid
response.
A summary of the EAP SRP-SHA1 Lightweight Response Subtype-Data for-
mat is shown below. Code (2), Identifier, Length (26), Type (19),
and Subtype (4) fields are as described above. The fields are
transmitted from left to right.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Response |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Response (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Response (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Response (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Response (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Response
The Response value is calculated as SHA1(id, K, Challenge,
clientname).
3. Identity Privacy Support
The optional Hidden Pseudonym field in the Subtype 3 Request message
is generated by server in two steps. In the first step, the server
produces a pseudonym in an implementation-dependent manner. In the
second step, the pseudonym is obscured for communication to the
client.
Carlson, Aboba, Haverinen expires January 2002 [Page 13]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
3.1. Step One
Because this step needs to be reversible only on the server, any con-
venient method MAY be used, although use of either one of the two
methods outlined here is suggested. Regardless of construction
method, the pseudonym constructed by the server MUST conform to the
grammar specified for the "username" portion of an NAI, as specified
in [RFC2486].
3.1.1. Method A
The server constructs a padded client name string by prepending the
length of the client name in bytes to the client name, and pads to
the next 8 octet boundary with random data (the "|" operator
represents concatenation):
paddedname = length(clientname) | clientname | random{0..7}
A 56 bit key is then generated from a locally-stored password and the
current date (to the nearest day) by extracting the first 56 bits
from the result of SHA1(local-password, date-string). The paddedname
is then encrypted using DES [FIPS46] with this key. The encrypted
result is converted to a printable string using the BASE64 method
described in section 4.3.2.4 of [RFC1421], but without the '=' pad-
ding. This string is the pseudonym used in Step Two below.
If the client name is an NAI and this is known to the server, then
the realm SHOULD be removed to limit the string length. The realm
will be supplied by the client when the pseudonym is used.
The advantages of this method are that the server need not store the
generated pseudonym because it can always decrypt the value provided
by the client, the generated pseudonym for a given client changes
frequently because of the use of the date in the hash, and previous
pseudonyms are always usable because prior dates can be tested as
well. The disadvantage is that it requires the use of reversible
encryption.
3.1.2. Method B
The server generates a random value (a nonce) and converts it to a
printable string as in method A. The server MUST store a copy of
this value in stable storage and relate it to the true client iden-
tity.
The advantages of this method are that the pseudonym changes with
Carlson, Aboba, Haverinen expires January 2002 [Page 14]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
every connection and DES is not required. The disadvantage is that
stable storage is required.
3.2. Step Two
The pseudonym is communicated to the client using a hiding mechanism
relying on the session key so that the client can undo the hiding.
Because this operation must be reversible on the client side, the
server MUST use the method described here (based on [KPS]) for this
step. The length of the pseudonym from Step One is prepended as a
single octet to the front of the pseudonym and random octets are
appended to pad the data to the next 20 octet boundary:
value = length(pseudonym) | pseudonym | random{0..19}
The Hidden Pseudonym for the Server Validator message is then calcu-
lated by breaking the value above into a sequence of 20 octet seg-
ments (v[1] through v[n]):
hpn[1] = SHA1(id, K, clientname) ^ v[1]
hpn[2] = SHA1(id, K, hpn[1]) ^ v[2]
hpn[3] = SHA1(id, K, hpn[2]) ^ v[3]
...
The "id" number is the EAP Identifier octet for Subtype 3 Request.
The hpn[1] through hpn[n] values are then concatenated to form the
Hidden Pseudonym. On reception of the Server Validator, the client
undoes this hiding. It calculates:
v[1] = SHA1(id, K, clientname) ^ hpn[1]
v[2] = SHA1(id, K, hpn[1]) ^ hpn[2]
...
The client extracts the decoded pseudonym from the v[1] through v[n]
sequence, and saves it in stable storage. The client MUST discard
the pseudonym if the length octet is invalid; either greater than the
remaining length of the unhidden value or 20 or more octets less than
that length.
3.3. Using the Pseudonym
On the next connection to the server, the client SHOULD transmit the
stored pseudonym in response to the first received EAP Identity
request. In order to do this, it MUST concatenate three strings, as
follows:
Carlson, Aboba, Haverinen expires January 2002 [Page 15]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
identity = "pseudo_" | pseudonym | realm
The first string is the constant 7 character string "pseudo_". This
string allows the server to identify this name as a pseudonym. The
second string is the stored pseudonym itself. The third string is
the NAI separator ("@") and realm, if any, as specified by an
administrator. The client's user interface SHOULD allow the user to
specify the NAI user name and realm as separate values if the pseu-
donym feature is supported.
The server, on finding the peer name starting with "pseudo_",
attempts to decode it in an implementation-dependent manner. If
Method A was chosen in Step One, then this consists of generating DES
keys with the current date as well as several prior dates, and
attempting to decrypt with each of those keys, only one of which will
result in a usable client name. If Method B was chosen, then the
server looks up the pseudonym in the local storage to find the
corresponding client.
If decoding to the padded client name fails or does not result in a
known client name, then the server requests the regular (non-
pseudonym) identity by resending the EAP Identity request with a new
(changed) ID number. The client MUST distinguish between retransmis-
sions of the EAP Identity request, which will have the same ID
number, and for which the pseudonym MAY be sent, and a new EAP Iden-
tity request, which will have a different ID number, and for which
the client's actual name MUST be sent. The server MUST NOT allow the
use of a pseudonym in reply to its resent request, because the client
is required to supply its actual name.
As an implementation option, the client may wish to support only
obscured connections when possible. In this case, the client SHOULD
have a boolean flag for "use private connections when possible." If
the server does not offer a pseudonym, then the flag is ignored. If
the server does offer a pseudonym, then the client MUST disconnect or
disable the link if it has used its actual name for EAP Identity and
reconnect after a random interval. This option SHOULD be disabled
and an administrator notified if use of a pseudonym fails more than
once, in order to prevent loss of functionality.
4. Use with ECP
The 40 octet shared key ('K') calculated by the SRP-SHA1 authentica-
tion procedure MUST be used to form encryption keys as described in
this section if PPP encryption is in use and the E bits in both the
Client Validator and the Server Validator messages were set.
Carlson, Aboba, Haverinen expires January 2002 [Page 16]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
For the DESEbis [RFC2419] algorithm, a shared 56 bit key is neces-
sary, and for the 3DES [RFC2420] algorithm, a shared 168 bit key is
required. Complicating this, ECP may be negotiated in only one
direction or both. In addition, PPP authentication may be performed
one-way (the most common case) or mutually, and when mutual authenti-
cation is chosen, different authentication schemes may be used to
authenticate each peer. The effects of these details are described
below.
The "decryptor" is the peer that sends ECP Configure-Request suggest-
ing an algorithm and receives a corresponding ECP Configure-Ack. The
"encryptor" is the sender of the ECP Configure-Ack, and will transmit
the encrypted data.
Rekeying can be accomplished at any time by restarting EAP authenti-
cation. When rekeying, the decryptor SHOULD accept data encrypted
with the prior key until the Subtype 3 Response is sent. The encryp-
tor SHOULD suspend data transmission, if possible, when the Subtype 3
Request is sent and resume after Subtype 3 Response.
4.1. One-Way Versus Bidirectional Encryption
ECP may be negotiated in one direction on the link, or in both direc-
tions. For each separate ECP session, the K value that is chosen for
the shared key should be the value associated with the EAP SRP-SHA1
authentication in which the decryptor is the authenticator. If the
decryptor was not an EAP SRP-SHA1 authenticator, then the K value
associated with the other EAP SRP-SHA1 authentication session is used
instead as described in the next section.
4.2. One-Way Versus Mutual Authentication
If only one peer authenticates the other using SRP-SHA1, and the
other either does not authenticate its peer at all or uses a method
that does not result in encryption keys, then the one K value associ-
ated with this authentication MUST be used for both encryption ses-
sions. The first 20 octets of K are used for the encryption of data
sent by the authenticatee to the authenticator, and the second 20
octets of K are used for encryption of data in the opposite direc-
tion.
If mutual authentication with algorithms that produce encryption keys
is done, such as SRP-SHA1, then two K values are produced. As
described above, the K values are used so that the encryptor is the
authenticatee for the corresponding authentication session, and the
decryptor is the authenticator.
Carlson, Aboba, Haverinen expires January 2002 [Page 17]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
4.3. DESEbis Versus 3DES
For DESEbis, the first 8 octets of the key value are used. DES keys
are constructed such that the most significant bit (MSB) of each
octet is reserved for parity, and must be discarded.
For 3DES, 24 octets of key value are used by most implementations.
As for DESEbis, the MSBs are discarded. If the 40 octet K value has
been split into two 20 octet values because one-way authentication is
in use, then an extra 4 octets are needed for each key. The SHA-1
algorithm is run again over the 40 octet K value to produce a 20
octet hash. This hash is split into two 10 octet values that are
then appended to the two 20 octet values from the split K value. The
first 24 octets of each 30 octet value is used as the 3DES key.
5. Use with AAA
The SRP exchange uses the client name as part of the calculation, and
thus depends on leaving this string unmodified between the authenti-
catee and authenticator. If a mechanism, such as a AAA protocol, is
used to perform the SRP authentication on behalf of a Network Access
Server (NAS), then the client name MUST be identical on both ends.
In particular, if a Network Access Identifier [RFC2486] is used with
a proxy authentication server, then the implementor MUST take steps
to preserve the client name string end-to-end.
Use of a AAA protocol also makes the use of the session key (K) for
ECP keying problematic, because the contents of this key are avail-
able only at the authentication endpoints (where SRP is run), and not
the link layer endpoints (where ECP is run).
For RADIUS [RFC2138], no common method exists to transfer the session
key to the NAS, but some implementations are known to have
proprietary extensions for this purpose. If such an extension is
available, it SHOULD be used to transfer the key and the Server Vali-
dator E bit MUST then be set to 1. Otherwise, if the extension is
not available, then the E bit MUST be cleared to 0.
For other AAA protocols, encryption session key transfer SHOULD be
used to send K to the NAS.
Use of a directory access protocol for the hash values, rather than a
AAA protocol, would also solve this problem. Such usage is outside
the scope of this document.
Carlson, Aboba, Haverinen expires January 2002 [Page 18]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
6. Examples
6.1. Successful Authentication
In the case where the EAP SRP-SHA1 authentication is successful, the
conversation may appear as follows:
Authenticatee Authenticator
----------------------- -------------------------------------------
<- EAP-Request id=100 / Identity
EAP-Response id=100 /
Identity ("MyName") ->
<- EAP-Request id=101 / SRP-SHA1
Subtype 1 ("TheServer", salt, generator,
modulus)
EAP-Response id=101 /
SRP-SHA1 Subtype 1
(A) ->
<- EAP-Request id=102 / SRP-SHA1
Subtype 2 (B)
EAP-Response id=102 /
SRP-SHA1 Subtype 2
(E, M1) ->
<- EAP-Request id=103 / SRP-SHA1
Subtype 3 (E, M2, hidden-pseudonym)
EAP-Response id=103 /
SRP-SHA1 Subtype 3 ->
<- EAP-Success id=104
Note that M1 and M2 were calculated with "id" set to 101, the EAP
Identifier field for the Subtype 1 Request. The id is shown as an
integer that increments by 1 for each EAP Request, but this is not
required. Any values MAY be used, provided that repetition is minim-
ized.
6.2. Client Unauthenticated
In the case where the client fails to authenticate to the server, the
conversation may appear as follows:
Authenticatee Authenticator
----------------------- -------------------------------------------
<- EAP-Request id=50 / Identity
EAP-Response id=50 /
Identity ("MyName") ->
Carlson, Aboba, Haverinen expires January 2002 [Page 19]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
<- EAP-Request id=51 / SRP-SHA1
Subtype 1 ("TheServer", salt, generator,
modulus)
EAP-Response id=51 /
SRP-SHA1 Subtype 1
(A) ->
<- EAP-Request id=52 / SRP-SHA1
Subtype 2 (B)
EAP-Response id=52 /
SRP-SHA1 Subtype 2
(E, M1) ->
<- EAP-Failure id=53
(At its option, the authenticator MAY choose to send a false Subtype
3 message with a random number in place of M2, followed by EAP
Failure. Doing so limits the amount of information that an attacker
has available.)
6.3. Server Unverified
In the case where the client's verification of the server is unsuc-
cessful, the conversation will appear as follows:
Authenticatee Authenticator
----------------------- -------------------------------------------
<- EAP-Request id=75 / Identity
EAP-Response id=75 /
Identity ("MyName") ->
<- EAP-Request id=76 / SRP-SHA1
Subtype 1 ("TheServer", salt, generator,
modulus)
EAP-Response id=76 /
SRP-SHA1 Subtype 1
(A) ->
<- EAP-Request id=77 / SRP-SHA1
Subtype 2 (B)
EAP-Response id=77 /
SRP-SHA1 Subtype 2
(E, M1) ->
<- EAP-Request id=78 / SRP-SHA1
Subtype 3 (E, M2, hidden-pseudonym)
[Disconnect] ->
(The "disconnect" operation is medium-dependent. On a PPP link, it
consists of sending LCP Terminate-Request followed by sending a Close
event to the physical layer.)
Carlson, Aboba, Haverinen expires January 2002 [Page 20]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
7. Security Considerations
EAP SRP-SHA1 is a security protocol.
The security of SRP on the wire relies on having a prime modulus that
is large enough to make brute force attack of the key exchange
infeasible. A length of at least 1024 bits is recommended. In addi-
tion, the SRP document [RFC2945] describes tests that MUST be per-
formed on the chosen modulus and generator values and random numbers.
SRP is a significant improvement over the situation with PAP, which
has no on-the-wire security, and with CHAP, which is vulnerable to
dictionary attacks against a captured Challenge/Response pair.
The security of the credentials stored in the authenticator's data-
base relies on the entropy in the chosen password, the difficulty of
hash inversion of a salted string, and the security of the system
containing the database. For this reason, the chosen password SHOULD
be restricted to limit the effectiveness of dictionary attacks
against a disclosed database. However, since typical passwords have
only a few bits of entropy, the database itself MUST be protected
against disclosure.
The method used to hide the pseudonym has not be subjected to
rigorous analysis, but is believed to be sufficient for the task.
Because the outer layer of hiding must be decoded by the authenti-
catee, and interception of this information would link one session to
another, it is not believed that stronger methods for the inner layer
are useful. If strong identity privacy is a concern, this mechanism
should not be used.
8. Intellectual Property Rights Notices
8.1. Patent Issues
The SRP key-exchange protocol described in this document is available
worldwide on a royalty-free basis for commercial and non-commercial
uses. This specifically includes simultaneous bidirectional use of
SRP, which is distinct from SRP-Z. No usage of SRP-Z is described in
this document.
"The IETF takes no position regarding the validity or scope of
any intellectual property or other rights that might be claimed
to pertain to the implementation or use of the technology
described in this document or the extent to which any license
under such rights might or might not be available; neither does
it represent that it has made any effort to identify any such
Carlson, Aboba, Haverinen expires January 2002 [Page 21]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
rights. Information on the IETF's procedures with respect to
rights in standards-track and standards-related documentation
can be found in BCP-11. Copies of claims of rights made
available for publication and any assurances of licenses to
be made available, or the result of an attempt made
to obtain a general license or permission for the use of such
proprietary rights by implementors or users of this
specification can be obtained from the IETF Secretariat."
"The IETF invites any interested party to bring to its
attention any copyrights, patents or patent applications, or
other proprietary rights which may cover technology that may be
required to practice this standard. Please address the
information to the IETF Executive Director."
8.2. Full Copyright Statement
"Copyright (C) The Internet Society 2001. All Rights
Reserved.
This document and translations of it may be copied and
furnished to others, and derivative works that comment on or
otherwise explain it or assist in its implementation may be
prepared, copied, published and distributed, in whole or in
part, without restriction of any kind, provided that the above
copyright notice and this paragraph are included on all such
copies and derivative works. However, this document itself may
not be modified in any way, such as by removing the copyright
notice or references to the Internet Society or other Internet
organizations, except as needed for the purpose of developing
Internet standards in which case the procedures for copyrights
defined in the Internet Standards process must be followed, or
as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will
not be revoked by the Internet Society or its successors or
assigns.
This document and the information contained herein is provided
on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE
OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY
IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE."
Carlson, Aboba, Haverinen expires January 2002 [Page 22]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
9. References
9.1. Normative References
[RFC2284] L. Blunk, J. Vollbrecht, "PPP Extensible Authentication
Protocol (EAP)," RFC 2284, March 1998
[RFC2945] T. Wu, "The SRP Authentication and Key Exchange System,"
RFC 2945, September 2000
[RFC1661] W. Simpson, "The Point-to-Point Protocol (PPP)," RFC 1661,
July 1994
[FIPS180] National Institute of Standards and Technology (NIST),
"Announcing the Secure Hash Standard," FIPS 180-1, U.S.
Department of Commerce, April 1995
9.2. Informative References
[RFC1334] B. Lloyd, W. Simpson, "PPP Authentication Protocols," RFC
1334, October 1992
[RFC1994] W. Simpson, "PPP Challenge Handshake Authentication
Protocol (CHAP)," RFC 1994, August 1996
[RFC2433] G. Zorn, S. Cobb, "Microsoft PPP CHAP Extensions," RFC
2433, October 1998
[RFC2759] G. Zorn, "Microsoft PPP CHAP Extensions, Version 2," RFC
2759, January 2000
[RFC1968] G. Meyer, "The PPP Encryption Control Protocol (ECP)," RFC
1968, June 1996
[RFC2119] S. Bradner, "Key words for use in RFCs to Indicate
Requirement Levels," BCP 14 and RFC 2119, March 1997
[SRP] T. Wu, "The Secure Remote Password Protocol", Proceedings
of the 1998 Internet Society Symposium on Network and
Distributed Systems Security, San Diego, CA, pp. 97-111
[RFC2486] B. Aboba, M. Beadles, "The Network Access Identifier," RFC
2486, January 1999
[FIPS46] National Bureau of Standards, "Data Encryption Standard",
FIPS PUB 46, January 1977
Carlson, Aboba, Haverinen expires January 2002 [Page 23]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
[RFC1421] J. Linn, "Privacy Enhancement for Internet Electronic
Mail: Part I: Message Encryption and Authentication
Procedures," RFC 1421, February 1993
[KPS] C. Kaufman, R. Perlman, and M. Speciner, "Network
Security: Private Communications in a Public World,"
Prentice Hall, ISBN 0-13-061466-1, March 1995
[RFC2419] K. Sklower, G. Meyer, "The PPP DES Encryption Protocol,
Version 2 (DESE-bis)," RFC 2419, September 1998
[RFC2420] H. Kummert, "The PPP Triple-DES Encryption Protocol
(3DESE)," RFC 2420, September 1998
[RFC2138] C. Rigney, A. Rubens, W. Simpson, and S. Willens, "Remote
Authentication Dial In User Service (RADIUS)", RFC 2138,
April 1997
10. Acknowledgements
The authors are grateful for the many critiques and ideas offered on
the IETF PPP Extensions mailing list and by private mail. In partic-
ular, we thank N. Asokan, Jacques Caron, and Vernon Schryver.
The hiding method used for the pseudonym was adapted from RFCs 2661
and 2138, both of which were based on the "Mixing in the Plaintext"
section in the book "Network Security" by Kaufman, Perlman and
Speciner [KPS].
11. Authors' Addresses
James Carlson
Sun Microsystems
1 Network Drive MS UBUR02-212
Burlington MA 01803-2757
Email: james.d.carlson@sun.com
Phone: +1 781 442 2084
Fax: +1 781 442 1677
Bernard Aboba
Microsoft Corporation
One Microsoft Way
Redmond WA 98052
Email: bernarda@microsoft.com
Phone: +1 425 936 6605
Carlson, Aboba, Haverinen expires January 2002 [Page 24]
INTERNET-DRAFT EAP SRP-SHA1 Authentication Protocol July 2001
Henry Haverinen
Nokia Mobile Phones
P.O. Box 88
FIN-33721 Tampere
Finland
Email: henry.haverinen@nokia.com
Phone: +358 50 594 4899
Fax: +358 3 318 3690
12. Appendix A - Well-Known Prime Modulus
This 2048 bit prime modulus (and corresponding generator value 2) are
borrowed from the SRP GSS-API mechanism, an IETF work in progress.
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, 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
Carlson, Aboba, Haverinen expires January 2002 [Page 25]