One document matched: draft-harkins-emu-eap-pwd-00.txt
Security Area D. Harkins
Internet-Draft G. Zorn
Intended status: Standards Track Aruba Networks
Expires: August 8, 2008 February 5, 2008
EAP Authentication Using Only A Password
draft-harkins-emu-eap-pwd-00
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
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 Internet-Draft will expire on August 8, 2008.
Copyright Notice
Copyright (C) The IETF Trust (2008).
Abstract
This memo describes an Extensible Authentication Protocol (EAP)
method, EAP-pwd, which uses a shared password for authentication.
The password may be a low-entropy one and may be drawn from some set
of possible passwords, like a dictionary, which is available to an
attacker.
Harkins & Zorn Expires August 8, 2008 [Page 1]
Internet-Draft EAP Password February 2008
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1. Background . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2. Keyword Definitions . . . . . . . . . . . . . . . . . . . 4
1.3. Requirements . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.1. Resistance to Passive Attack . . . . . . . . . . . . . 4
1.3.2. Resistance to Active Attack . . . . . . . . . . . . . 5
1.3.3. Resistance to Dictionary Attack . . . . . . . . . . . 5
1.3.4. Forward Secrecy . . . . . . . . . . . . . . . . . . . 5
2. Specification of EAP-pwd . . . . . . . . . . . . . . . . . . . 5
2.1. Notation . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1. Prime Modulus Groups . . . . . . . . . . . . . . . . . 6
2.1.2. Elliptic Curve Groups . . . . . . . . . . . . . . . . 7
2.2. Assumptions . . . . . . . . . . . . . . . . . . . . . . . 7
2.3. Instantiating the Random Function . . . . . . . . . . . . 8
2.4. Key Derivation Function . . . . . . . . . . . . . . . . . 8
2.5. Random Numbers . . . . . . . . . . . . . . . . . . . . . . 9
2.6. Protocol . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.6.1. Overview . . . . . . . . . . . . . . . . . . . . . . . 9
2.6.2. Message Flows . . . . . . . . . . . . . . . . . . . . 9
2.6.3. Message Construction . . . . . . . . . . . . . . . . . 11
2.6.3.1. Elliptic Curve Groups . . . . . . . . . . . . . . 11
2.6.3.2. Prime Modulus Groups . . . . . . . . . . . . . . . 12
2.6.4. Message Processing . . . . . . . . . . . . . . . . . . 14
2.6.4.1. EAP-pwd-ID Exchange . . . . . . . . . . . . . . . 14
2.6.4.2. EAP-pwd-Commit Exchange . . . . . . . . . . . . . 15
2.6.4.3. EAP-pwd-Confirm Exchange . . . . . . . . . . . . . 16
2.6.5. Management of EAP-pwd Keys . . . . . . . . . . . . . . 16
3. Packet Formats . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1. EAP-pwd Header . . . . . . . . . . . . . . . . . . . . . . 17
3.2. EAP-pwd Payloads . . . . . . . . . . . . . . . . . . . . . 18
3.2.1. EAP-pwd-ID . . . . . . . . . . . . . . . . . . . . . . 19
3.2.2. EAP-pwd-Commit . . . . . . . . . . . . . . . . . . . . 20
3.2.3. EAP-pwd-Confirm . . . . . . . . . . . . . . . . . . . 20
3.3. Representation of Field Elements . . . . . . . . . . . . . 21
3.3.1. Prime Modulus Groups . . . . . . . . . . . . . . . . . 21
3.3.2. Elliptic Curve Groups . . . . . . . . . . . . . . . . 21
4. Fragmentation . . . . . . . . . . . . . . . . . . . . . . . . 22
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23
6. Security Considerations . . . . . . . . . . . . . . . . . . . 24
6.1. Resistance to Passive Attack . . . . . . . . . . . . . . . 24
6.2. Resistance to Active Attack . . . . . . . . . . . . . . . 25
6.3. Resistance to Dictionary Attack . . . . . . . . . . . . . 25
6.4. Forward Secrecy . . . . . . . . . . . . . . . . . . . . . 26
6.5. Random Functions . . . . . . . . . . . . . . . . . . . . . 26
7. Security Claims . . . . . . . . . . . . . . . . . . . . . . . 27
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 29
Harkins & Zorn Expires August 8, 2008 [Page 2]
Internet-Draft EAP Password February 2008
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 30
9.1. Normative References . . . . . . . . . . . . . . . . . . . 30
9.2. Informative References . . . . . . . . . . . . . . . . . . 30
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 31
Intellectual Property and Copyright Statements . . . . . . . . . . 33
Harkins & Zorn Expires August 8, 2008 [Page 3]
Internet-Draft EAP Password February 2008
1. Introduction
1.1. Background
The predominant access method for the Internet today is of a human
using a username and password to authenticate to a computer enforcing
access control. Proof of knowledge of the password authenticates the
human and computer.
Typically these passwords are not stored on a user's computer for
security reasons and must be entered each time the human desires
network access. Therefore the passwords must be ones that can be
repeatedly entered by a human with a low probability of error. They
will not be ones with high-entropy and it is assumed an adversary
with access to a dictionary will have the ability to guess a user's
password. It is therefore desirable to have a robust authentication
that is secure even when used with a weak password in the presence of
a strong adversary.
EAP-pwd is an EAP method that addresses the problem of password-based
authenticated key exchange-- using a possibly weak password for
authentication to derive an authenticated and cryptographically
strong shared secret. This problem was first described by Bellovin
and Merritt in [BM92] and [BM93]. There have been a number of
subsequent suggestions ([JAB96], [LUC97], [BMP00], and others) for
password-based authenticated key exchanges.
1.2. Keyword Definitions
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 RFC 2119 [RFC2119].
1.3. Requirements
A protocol that solves the problem of password-authenticated key
exchange MUST provide the following:
1.3.1. Resistance to Passive Attack
A passive, or benign, attacker is one that merely relays messages
back and forth between the peer and server, faithfully, and without
modification. The contents of the messages are available for
inspection, but that is all. To achieve resistance to passive
attack, such an attacker must not be able to obtain any information
about the password or anything about the resulting shared secret from
watching repeated runs of the protocol. Even if a passive attacker
is able to learn the password, she will not be able to determine any
Harkins & Zorn Expires August 8, 2008 [Page 4]
Internet-Draft EAP Password February 2008
information about the resulting secret shared by the peer and server.
1.3.2. Resistance to Active Attack
An active attacker is able to modify, add, delete, and replay
messages sent between protcol participants. For this protocol to be
resistant to active attack, the attacker must not be able to obtain
any information about the password or about the secret shared by
using any of its capabilities. In addition, the attacker must not be
able to fool a protocol participant into thinking that the protocol
completed successfully.
It is always possible for an active attacker to deny delivery of a
message critical in completing the exchange. This is no different
than dropping all messages and is not an attack against the protocol.
1.3.3. Resistance to Dictionary Attack
For this protocol to be resistant to dictionary attack any advantage
an adversary can gain must be directly related to the number of
interactions she makes with an honest protocol participant and not
through computation. The adversary will not be able to obtain any
information about the password except whether a single guess for a
single protocol run is correct or incorrect.
1.3.4. Forward Secrecy
Compromise of the password must not provide any information about the
secrets generated by earlier runs of the protocol.
2. Specification of EAP-pwd
2.1. Notation
The following notation is used in this memo:
peer-ID
The peer's identity, the peer NAI RFC 4282 [RFC4282].
server-ID
A string that identifies the server to the peer.
password
The password shared between the peer and server.
Harkins & Zorn Expires August 8, 2008 [Page 5]
Internet-Draft EAP Password February 2008
y = H(x)
The binary string x is given to a function H which produces an
output y.
a | b
denotes concatenation of string a with string b.
len(x)
indicates the length in bits of the string x.
chop(x, y)
is reduction of string x, being at least y bits in length, to y
bits.
CipherSuite
an encoding of a finite cyclic group to use with EAP-pwd, the
definition of function H, and a PRF, in that order.
MSK
The Master Session Key exported by EAP-pwd. This is a high-
entropy secret 512 bits in length.
EMSK
The Extended Master Session Key exported by EAP-pwd. This is a
high-entropy secret 512 bits in length.
This protocol uses a finite cyclic group in which the discrete
logarithm problem is known to be hard. Groups can be either based on
a prime modulus or on an elliptic curve.
2.1.1. Prime Modulus Groups
Groups formed by a prime modulus have a generator, g, a prime modulus
p, optionally an order r. The group operation is exponentiation
modulus the prime:
y = g^x mod p
the generator taken to the x-th power modulus the prime returns
an element in the group.
If the order is not part of the definition of the prime modulus group
the value for r used in this memo MUST be computed as the prime minus
one (p-1).
Harkins & Zorn Expires August 8, 2008 [Page 6]
Internet-Draft EAP Password February 2008
2.1.2. Elliptic Curve Groups
Groups formed by an elliptic curve have a base point G, a prime p,
and an order r. The group operation is multiplication of a point on
the curve by itself a numer of times:
Y = x*G
the base point G is multiplied x-times to produce another point
on the curve, Y.
The convention for this memo to represent a point on a curve is to
use an upper-case letter while a scalar is indicated with a lower-
case letter.
Elliptic curve groups require a bijective function, q = F(Q), to
convert a group element to an integer. The bijective function used
in this memo returns the x-coordinate of the point it is passed.
2.2. Assumptions
In order to see how the protocol addresses the requirements above
(see Section 1.3) it is necessary to state some assumptions under
which the protocol can be evaluated. They are:
1. Function H maps a binary string of indeterminate length onto a
fixed binary string that is x bits in length. That is H: {0,1}^*
--> {0,1}^x.
2. Function H is a "random oracle" (see [RANDOR]). Given knowledge
of the input to H an adversary is unable to distinguish the
output of H from a random data source.
3. Function H is a one-way function. Given the output of H it is
computationally infeasible for an adversary to determine the
input.
4. For any given input to function H each of the 2^x possible
outputs are equally probable.
5. The discrete logarithm problem for the chosen finite cyclic group
is hard. That is, given g, p and y = g^x mod p it is
computationally infeasible to determine x. Similarly for an
elliptic curve group given G and Y = x * G it is computationally
infeasible to determine x.
6. There exists a pool of passwords from which the password shared
by the peer and server is drawn. This pool can consist of words
Harkins & Zorn Expires August 8, 2008 [Page 7]
Internet-Draft EAP Password February 2008
from a dictionary, for example. Each password in this pool has
an equal probability of being the shared password. All potential
attackers have access to this pool of passwords.
2.3. Instantiating the Random Function
The protocol described in this memo uses a random function, H. As
noted in Section 2.2 this is a "random oracle" as defined in
[RANDOR]. At first glace one may view this as a hash function. As
noted in [RANDOR], though, hash functions are too structured to be
used directly as a random oracle. But they can be used to
instantiate the random oracle.
The random function, H, in this memo is instantiated by truncating
the output of SHA-512 [SHA2] to 256 bits.
2.4. Key Derivation Function
The keys output by this protocol, MSK and EMSK, are 512 bits in
length each. The shared secret that results from the successful
termination of this protocol is only 256 bits. Therefore it is
necessary to stretch the shared secret using a key derivation
function (KDF).
The KDF used in this protocol has a counter-mode with feed-back
construction using a generic pseudo-random function (PRF). The
specific value of the PRF is specified along with the random function
and finite cyclic group when the server sends the first EAP-pwd
packet to the peer.
The KDF takes a key to stretch, a label to bind into the key, and an
indication of the desired length of the output. Algorithmically it
is:
KDF(key, label, length) {
i = 1
K = PRF(key, label, i)
while (len(K) < length)
do
i = i + 1
K = K | PRF(key, K | label | i)
done
return chop(K, length)
}
where "i" is 8-bits in length
Figure 1
Harkins & Zorn Expires August 8, 2008 [Page 8]
Internet-Draft EAP Password February 2008
2.5. Random Numbers
The security of EAP-pwd relies upon each side, the peer and server,
producing quality secret random numbers. A poor random number chosen
by either side in a single exchange can compromise the shared secret
from that exchange.
Producing quality random numbers without specialized hardware entails
using a cryptographic mixing function (like a strong hash function)
to distill entropy from multiple, uncorrelated sources of information
and events. A very good discussion of this can be found in
[RFC4086].
2.6. Protocol
2.6.1. Overview
EAP is a two-party protocol spoken between an EAP peer and an
authenticator. For scaling purposes the functionality of the
authenticator that speaks EAP is frequently broken out into a stand-
alone EAP server. In this case the EAP peer communicates with an EAP
server through the authenticator with the authenticator merely being
a passthrough.
An EAP method defines the specific authentication protocol being used
by EAP. This memo defines a particular method and therefore defines
the messages sent between the EAP server (or the "EAP server"
functionality in an authenticator if it is not broken out) and the
EAP peer for the purpose of authentication and key derivation.
2.6.2. Message Flows
EAP-pwd defines an identity exchange for the peer and server to agree
upon each other's identity. Once they know each other's identity,
they can construct a shared secret value based on the shared password
and their identities. This secret value, the password scalar (pws),
is used to obtain an element in the finite cyclic group called the
password element (pwe/PWE).
For a finite cyclic group based on an elliptic curve with a base
point G:
pws = H(peer-ID | server-ID | password)
PWE = pws * G
For a finite cyclic group based on exponentiation of a generator, g,
modulus a large prime p:
Harkins & Zorn Expires August 8, 2008 [Page 9]
Internet-Draft EAP Password February 2008
pws = H(peer-ID | server-ID | password)
pwe = g^pws mod p
An authentication exchange is then performed where each side commits
to the exchange and then each side verifies the other's committment.
The entire EAP-pwd exchange is shown in Figure 2.
+--------+ +--------+
| | EAP-pwd-ID/Request | |
| EAP |<------------------------------------| EAP |
| peer | | server |
| | EAP-pwd-ID/Response | |
| |------------------------------------>| |
| | | |
| | EAP-pwd-Commit/Request | |
| |<------------------------------------| |
| | | |
| | EAP-pwd-Commit/Response | |
| |------------------------------------>| |
| | | |
| | EAP-pwd-Confirm/Request | |
| |<------------------------------------| |
| | | |
| | EAP-pwd-Confirm/Response | |
| |------------------------------------>| |
| | | |
| | EAP-Success | |
| |<------------------------------------| |
+--------+ +--------+
a successful EAP-pwd exchange
Figure 2
The components of the EAP-pwd-* messages are as follows:
EAP-pwd-ID/Request
Server_ID, Ciphersuite
EAP-pwd-ID/Response
Peer_ID, Ciphersuite
EAP-pwd-Commit/Request
Scalar_S, Element_S
Harkins & Zorn Expires August 8, 2008 [Page 10]
Internet-Draft EAP Password February 2008
EAP-pwd-Commit/Response
Scalar_P, Element_P
EAP-pwd-Confirm/Request
Confirm_S
EAP-pwd-Confirm/Response
Confirm_P
2.6.3. Message Construction
After the EAP-pwd Identity exchange the construction of the
components of each message depends on the finite cyclic group from
the ciphersuite.
2.6.3.1. Elliptic Curve Groups
Assuming an elliptic curve group with base point G and order r:
Harkins & Zorn Expires August 8, 2008 [Page 11]
Internet-Draft EAP Password February 2008
Server: EAP-pwd-Commit/Request
- choose random number, 1 < s_rand < r
- compute ES = s_rand * G
- compute ss = F(ES)
- compute Element_S = -(ss * PWE)
- compute Scalar_S = (s_rand + ss) mod r
Element_S and Scalar_S are used to construct EAP-pwd-Commit/Request
Peer: EAP-pwd-Commit/Response
- choose random number, 1 < p_rand < r
- compute EP = p_rand * G
- compute sp = F(EP)
- compute Element_P = -(sp * PWE)
- compute Scalar_P = (p_rand + sp) mod r
Element_P and Scalar_P are used to construct EAP-pwd-Commit/Response
Server: EAP-pwd-Confirm/Request
- compute KS = s_rand * (Scalar_P * PWE + Element_P)
- compute ks = F(KS)
- compute Confirm_S = H(ks | Element_S | Scalar_S |
Element_P | Scalar_P | Ciphersuite)
Confirm_S is used to construct EAP-pwd-Confirm/Request
Peer: EAP-pwd-Confirm/Response
- compute KP = p_rand * (Scalar_S * PWE + Element_S)
- compute kp = F(KP)
- compute Confirm_P = H(kp | Element_P | Scalar_P |
Element_S | Scalar_S | Ciphersuite)
Confirm_P is used to construct EAP-pwd-Confirm/Response
The EAP Server computes the shared secret as:
MK = H(ks | F(Element_S+Element_P) | (Scalar_S+Scalar_P) mod r)
The EAP Peer computes the shared secet as:
MK = H(kp | F(Element_P+Element_S) | (Scalar_P+Scalar_S) mod r)
The MSK and EMSK are derived from MK per Section 2.6.5.
2.6.3.2. Prime Modulus Groups
When using a finite cyclic group based on exponentiaton of a
generator (g) modulus a prime (p), a subgroup order (r) may or may
not be specified. If it is not specified r is set to p-1 for use in
Harkins & Zorn Expires August 8, 2008 [Page 12]
Internet-Draft EAP Password February 2008
this protocol. Also, there is no bijective function needed when
using such a group.
Server: EAP-pwd-Commit/Request
- choose random number, 1 < s_rand < r
- compute ss = g^s_rand mod p
- compute Element_S = 1/(pwe^ss mod p)
- compute Scalar_S = (s_rand + ss) mod r
Element_S and Scalar_S are used to construct EAP-pwd-Commit/Request
Peer: EAP-pwd-Commit/Response
- choose random number, 1 < p_rand < r
- compute sp = g^p_rand mod p
- compute Element_P = 1/(pwe^sp mod p)
- compute Scalar_P = (p_rand + sp) mod r
Element_P and Scalar_P are used to construct EAP-pwd-Commit/Response
Server: EAP-pwd-Confirm/Request
- compute ks = ((pwe^Scalar_P mod p) * Element_P)^s_rand mod p
- compute Confirm_S = H(ks | Element_S | Scalar_S |
Element_P | Scalar_P | Ciphersuite)
Confirm_S is used to construct EAP-pwd-Confirm/Request
Peer: EAP-pwd-Confirm/Response
- compute kp = ((pwe^Scalar_S mod p) * Element_S)^p_rand mod p
- compute Confirm_P = H(kp | Element_P | Scalar_P |
Element_S | Scalar_S | Ciphersuite)
Confirm_P is used to construct EAP-pwd-Confirm/Request
The EAP Server computes the shared secret as:
MK = H(ks | (Element_S + Element_P) mod r |
(Scalar_S + Scalar_P) mod r)
The EAP Peer computes the shared secet as:
MK = H(kp | (Element_P + Element_S) mod r |
(Scalar_P + Scalar_S) mod r)
The MSK and EMSK derived from MK per Section 2.6.5.
Harkins & Zorn Expires August 8, 2008 [Page 13]
Internet-Draft EAP Password February 2008
2.6.4. Message Processing
2.6.4.1. EAP-pwd-ID Exchange
[RFC3748] defines an EAP Identity exchange to determine the identity
of the peer. Unfortunately, the Response to an Identity Request
cannot be used by EAP-pwd. [RFC3748] says:
The Identity Response may not be the appropriate identity for
the method; it may have been truncated or obfuscated so as to
provide privacy, or it may have been decorated for routing
purposes.
Therefore [RFC3748] recommends that the EAP-ID exchange only be used
for method selection and that a method-specific mechanism be used to
determine a usable identity. The EAP-pwd-ID exchange serves this
purpose.
The EAP-pwd-ID/Request contains a Ciphersuite the server has selected
for the subsequent authentication exchange as well as its identity.
The Ciphersuite is comprised of a definition of a finite cyclic
group, a definition of a random function, and a definition of a PRF.
The EAP-pwd-ID/Request also contains an anti-clogging token. The
value of this token MUST be unpredictable and SHOULD NOT be from a
source of random entropy. The purpose of the anti-clogging token is
to provide the server an assurance that the peer constructing the
EAP-pwd-ID/Response is genuine and not part of a flooding attack.
The server chooses an unpredictable 32-bit number and adds it to the
Token field of the EAP-pwd-ID/Request.
Upon receipt of an EAP-pwd-ID/Request, the peer determines whether
the Ciphersuite is acceptable. If not, the peer MUST respond with an
EAP-NAK. If acceptable, the peer responds to the EAP-pwd-ID/Request
acknowledging the Ciphersuite and token and adding its identity.
After sending the EAP-pwd-ID/Response, the peer has the identity of
the server (from the Request) and its own identity (it encoded in the
Response) and can compute the password scalar and password element
according to Section 2.6.2. The password element is stored in state
allocated for this exchange.
The EAP-pwd-ID/Response acknowledges the Ciphersuite from the
Request, acknowledges the anti-clogging token from the Request
providing a demonstration of "liveness" on the part of the peer, and
contains the identity of the peer. Upon receipt of the Response, the
server verifies that the Ciphersuite acknowledged by the peer is the
same as that sent in the Request and that the token added by the peer
in the Response is the same as the one the server sent in the
Harkins & Zorn Expires August 8, 2008 [Page 14]
Internet-Draft EAP Password February 2008
Request. If Ciphersuites or tokens differ, the server MUST respond
with an EAP-Failure message. If the Ciphersuites are the same, the
server now knows its own identity (it encoded in the Request) and the
peer's identity (from the Response) and can compute the password
scalar and password element according to Section 2.6.2. The server
stores the password element in state it has allocated for this
exchange. The server then initiates an EAP-pwd-Commit exchange.
2.6.4.2. EAP-pwd-Commit Exchange
The server begins the EAP-pwd-Confirm exchange by choosing a random
number between 1 and r (where r is described in Section 2.1 according
to the group established in Section 2.6.4.1). It then computes
Element_S and Scalar_S as defined in Section 2.6.3 and constructs an
EAP-pwd-Commit/Request according to Section 3.3. Element_S and
Scalar_S are added to the state allocated for this exchange.
Upon receipt of the EAP-pwd-Commit/Request, the peer validates the
length of the entire payload based upon the expected lengths of
Element_S and Scalar_S (which are fixed according to the agreed-upon
group). If the length is incorrect, the peer MUST terminate the
exchange and free up any state allocated. If the length is correct,
the peer chooses a random number between 1 and r (where r is
described in Section 2.1 according to the group established in
Section 2.6.4.1). It then computes Element_P and Scalar_P and
constructs an EAP-pwd-Commit/Response according to Section 3.3. The
peer also computes kp from Element_S, Scalar_S and the password
element according to Section 2.6.3 and stores kp, Element_P and
Scalar_P in state allocated for this exchange.
Upon receipt of the EAP-pwd-Commit/Response, the server validates the
length of the entire payload based upon the expected lengths of
Element_P and Scalar_P (which are fixed according to the agreed-upon
group). If the length is incorrect, the server MUST respond with an
EAP-Failure message and it MUST terminate the exchange and free up
any state allocated. If the length is correct, the server checks
whether Scalar_P equals Scalar_S and Element_P equals Element_S. If
this is true it indicates a reflection attack and the server MUST
respond with an EAP-Failure and terminate the exchange freeing up all
allocated state. If the scalars and elements are not equal, the
server computes kp from Element_P, Scalar_P and the password element
according to Section 2.6.3. The server stores ks in the state it has
allocated for this exchange and initiates an EAP-pwd-Confirm
Exchange.
Harkins & Zorn Expires August 8, 2008 [Page 15]
Internet-Draft EAP Password February 2008
2.6.4.3. EAP-pwd-Confirm Exchange
The server computes Confirm_S according to Section 2.6.3 and
constructs an EAP-pwd-Confirm/Request and sends it to the peer.
Upon receipt of an EAP-pwd-Confirm/Request, the peer validates the
length of of the entire payload based upon the expected length of
Confirm_S (whose length is fixed by the agreed-upon random function).
If the length is incorrect, the peer MUST terminate the exchange and
free up any state allocated. If the length is correct, the peer
verifies that Confirm_S is the value it expects based on the value of
kp. If the value of Confirm_S is incorrect, the peer MUST terminate
the exchange and free up any state allocated. If the value of
Confirm_S is correct, the peer computes Confirm_P, constructs an EAP-
pwd-Confirm/Response and sends it off to the server. The peer then
computes MK (according to Section 2.6.3) and the MSK and EMSK
(according to Section 2.6.5) and stores these keys in state allocated
for this exchange. The peer SHOULD export the MSK and EMSK at this
time in anticipation of a secure association protocol by the lower-
layer to create session keys. Alternately, the peer can wait until
an EAP-success messsage from the server before exporting the MSK and
EMSK.
Upon receipt of an EAP-pwd-Confirm/Response, the server validates the
length of of the entire payload based upon the expected length of
Confirm_P (whose length is fixed by the agreed-upon random function).
If the length is incorrect, the server MUST respond with an EAP-
Failure message and it MUST terminate the exchange and free up any
state allocated. If the length is correct, the server verifies that
Confirm_P is the value it expects based on the value of ks. If the
value of Confirm_P is incorrect, the server MUST respond with an EAP-
Failure message. If the value of Confirm_P is correct, the server
computes MK (according to Section 2.6.3) and the MSK and EMSK
(according to Section 2.6.5). It exports the MSK and EMSK and
responds with an EAP-success Request. The server SHOULD free up
state allocated for this exchange.
2.6.5. Management of EAP-pwd Keys
[EAPKEY] recommends each EAP method define how to construct a
Method-ID and Session-ID to identify a particular EAP session between
a peer and server. This information is constructed thusly:
Method-ID = H(Ciphersuite | Scalar_P | Scalar_S)
Session-ID = Type-Code | Method-ID
where Ciphersuite, Scalar_P and Scalar_S are from the specific
Harkins & Zorn Expires August 8, 2008 [Page 16]
Internet-Draft EAP Password February 2008
exchange being identified; H is the random function specified in the
Ciphersuite; and, Type-Code is the code assigned by IANA for EAP-pwd:
TBD1.
The authenticated key exchange of EAP-pwd generates a shared and
authenticated key, MK. The size of MK is dependent on the random
function, H, asserted in the Ciphersuite. EAP-pwd must export two
512-bit keys, MSK and EMSK. Regardless of the value of len(MK)
implementations MUST invoke the KDF defined in Section 2.4 to
construct the MSK and EMSK. The MSK and EMSK are derived thusly:
MSK | EMSK = KDF(MK, Session-ID, 1024)
[RFC4962] mentions the importance of naming keys, particularly when
key caching is being used. To faciliate such an important
optimization names are assigned thusly:
o EMSK-name = Session-ID | 'E' | 'M'| 'S' | 'K'
o MSK-name = Session-ID | 'M'| 'S' | 'K'
where 'E' is a single octet of value 0x45, 'M' is a single octet of
value 0x4d, 'S' is a single octet of value 0x53, and 'K' is a single
octet of value 0x4b.
This naming scheme allows for key management applications to quickly
and accurately identify keys for a particular session or all keys of
a particular type.
3. Packet Formats
3.1. EAP-pwd Header
The EAP-pwd header has the following structure:
Harkins & Zorn Expires August 8, 2008 [Page 17]
Internet-Draft EAP Password February 2008
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 | PWD-Exchange |M| Sequence |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Data ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
EAP-pwd Header
Figure 5
The Code, Identifier, Length, and Type fields are all part of the EAP
header, and defined in RFC 3748 [RFC3748]. The EAP Method Type for
EAP-pwd is assigned by IANA and is TBD1.
The PWD-Exchange field is one of three values:
o 0x01 : EAP-pwd-ID exchange
o 0x02 : EAP-pwd-Commit exchange
o 0x03 : EAP-pwd-Confirm exchange
All other values of the PWD-Exchange field are reserved to IANA.
The "M" bit signifies a fragmented EAP-pwd message when set and an
unfragmented EAP-pwd message when clear (see Section 4).
The "Sequence" field is used to reassemble fragmented payloads (see
Section 4). If the "M" bit, above, is clear this field MUST be set
to zero on transmission and ignored on receipt.
3.2. EAP-pwd Payloads
EAP-pwd payloads all contain the EAP-pwd header and encoded
information. Encoded information is comprised of sequences of data.
Payloads in the EAP-pwd-ID exchange also include a ciphersuite
statement indicating what finite cyclic group to use, what
cryptographic primitive to use for H, and what PRF to use for
deriving keys.
Harkins & Zorn Expires August 8, 2008 [Page 18]
Internet-Draft EAP Password February 2008
3.2.1. EAP-pwd-ID
The Group Description, Random Function, and PRF together, and in that
order, comprise the Ciphersuite included in the calculation of the
peer's and server's confirm messages.
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 | PWD-Exchange |M| Sequence |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Group Description | Random Func'n | PRF |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Token |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Identity ~
| |
~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
EAP-pwd-ID Payload
Figure 6
The Group Description field value is taken from the IANA registry for
DIffie-Hellman groups used in IKE [RFC2409].
The Random Function field has the following value:
o 0x01 : Function defined in this memo in Section 2.3
All other values of the Random Function field are reserved to IANA.
The PRF field has the following value:
o 0x01 : HMAC-SHA256 as defined in [RFC4634]
All other values of the PRF field are reserved to IANA.
The Token field contains an unpredictable value assigned by the
server in an EAP-pwd-ID/Request and acknowledged by the peer in an
EAP-pwd-ID/Response (see Section 2.6.4).
Harkins & Zorn Expires August 8, 2008 [Page 19]
Internet-Draft EAP Password February 2008
The Identity field depends on the value of PWD-Exchange.
o EAP-pwd-ID/Request : Server_ID
o EAP-pwd-ID/Response : Peer_ID
The length of the identity is computed from the Length field in the
EAP header.
3.2.2. EAP-pwd-Commit
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 | PWD-Exchange |M| Sequence |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Element ~
| |
~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~
| |
~ Scalar +-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
EAP-pwd-Commit Payload
Figure 7
The Element and Scalar fields depend on the value of PWD-Exchange.
o EAP-pwd-Commit/Request : Element_S, Scalar_S
o EAP-pwd-Commit/Response : Element_P, Scalar_P
The length of the Element is inferred by the finite cyclic group from
the agreed-upon Ciphersuite (see Section 3.3). The length of the
scalar can then be computed from the Length in the EAP header.
3.2.3. EAP-pwd-Confirm
Harkins & Zorn Expires August 8, 2008 [Page 20]
Internet-Draft EAP Password February 2008
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 | PWD-Exchange |M| Sequence |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Confirm ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
EAP-pwd-Confirm Payload
Figure 8
The Confirm field depends on the value of PWD-Exchange.
o EAP-pwd-Confirm/Request : Confirm_S
o EAP-pwd-Confirm/Response : Confirm_P
The length of the Confirm field computed from the Length in the EAP
header.
3.3. Representation of Field Elements
Payloads in the EAP-pwd-Commit exchange contain elements from the
finite cyclic group. To ensure interoperability field elements MUST
be represented according to one of the following two techniques,
depending on the type of group.
3.3.1. Prime Modulus Groups
Field elements in a prime modulus group are integers less than the
prime modulus. Each element MUST have a bit length equal to the bit
length of the prime modulus. This length is enforced, if necessary,
by prepending the integer with zeros until the required length is
achieved.
3.3.2. Elliptic Curve Groups
Elliptic curve field elements are points on the elliptic curve and
consist of two components, an x-coordinate and a y-coordinate. Each
component MUST have a bit length equal to the field size of the
group. This length is enforced, if necessary, by prepending the
component with zeros until the required length is achieved.
Harkins & Zorn Expires August 8, 2008 [Page 21]
Internet-Draft EAP Password February 2008
The field element is represented in a payload by the x-coordinate
followed by the y-coordinate. Therefore the field element in the
payload MUST be twice the size of the field size defined in the
group.
4. Fragmentation
[RFC3748] is a request-response protocol. The server sends requests
and the peer responds. These request and response messages are
assumed to be limited to at most 1020 bytes. Messages in EAP-pwd can
be larger than 1020 bytes and therefore require support for
fragmentation and reassembly.
Implementations MUST establish a fragmentation threshold that
indicates the maximum size of an EAP-pwd payload. When an
implementation knows the maximum transmission unit (MTU) of its
lower-layer, it SHOULD calculate the fragmentation threshold from
that value. In lieu of knowledge of the lower-layer's MTU the
fragmentation threshold MUST be 1020 bytes.
The "M" bit in the EAP-pwd header is used to indicate when a message
is fragmented. The syntax is "more": there are more data coming.
When a message is received with the "M" bit set the "Data" portion of
the next payload is concatenated to the "Data" portion of the current
payload (after some basic sanity checks) to construct a complete EAP-
pwd message.
The "Sequence" field in the EAP-pwd header is used to assemble
fragments. It is a monotonically increasing number, from 1 to 2^15,
and the "Data" field from fragmented EAP-pwd payloads are
concatenated together in order.
A server (peer) will fragment EAP-pwd Request (Response) messages
when the total size of the message is larger than the fragmentation
threshold. The first fragment MUST have the "M" bit set and the
"Sequence" number set to 1. The server (peer) MUST increment the
"Sequence" number for all subsequent fragments and all fragments,
except the last, MUST have the "M" bit set.
When a peer (server) receives an EAP-pwd Request (Response) message
with the "M" bit set in the EAP-pwd header it MUST acknowledge
receipt of the fragmented Request (Response) by responding with an
EAP-pwd Response (Request) having the same "PWD-Exchange", "M" bit,
and "Sequence" number as the fragmented Request. The "Data" field of
an acknowledgement MUST be empty. A server (peer) MUST NOT send the
next fragment until the current fragment has been acknowledged.
Harkins & Zorn Expires August 8, 2008 [Page 22]
Internet-Draft EAP Password February 2008
Subsequent fragments of the EAP-pwd Request (Response) message
received by the peer (server) MUST all have the same "PWD-exchange"
value. Any discrepancy MUST result in the peer (server) terminating
the exchange (in addition a server who detects such a discrepancy
MUST send an EAP-Failure message). Fragments which do not have a
value in the "Sequence" field that is one (1) greater than the last
received fragment MUST be silently dropped. The peer (server) MUST
continue to acknowledge all fragments until a Request (Response)
message is received with the correct "PWD-Exchange" value, correct
"Sequence" number, and the "M" bit clear. This signifies the final
fragment. Upon receipt of the final fragment, the final received
message is formed by concatenating the "Data" portion of all received
fragments in a monotonically increasing order by "Sequence" number.
A peer (server) MUST NOT attempt to process a message until all its
component fragments have been received and formed into a complete
message.
5. IANA Considerations
This memo contains new numberspaces to be managed by IANA. The
policies used to allocate numbers are described in [RFC2434]. This
memo requires IANA to allocate a new EAP method type for EAP-pwd.
This memo also requires IANA to create new registries for PWD-
exchange messages, random functions, PRFs, and error codes and to add
the specified message numbers, random function, PRF and error codes,
defined in this memo to those registries, respectively.
The following is the initial PWD-exchange message registry layout:
o 0x01 : EAP-pwd-ID exchange
o 0x02 : EAP-pwd-Commit exchange
o 0x03 : EAP-pwd-Confirm exchange
The PWD-exchange field is 8 bits long and all other values are
available through assignment by IANA. IANA is instructed to assign
values based on "IETF Consensus" (see [RFC2434]).
The following is the initial Random Function registry layout:
o 0x01 : Function defined in this memo in Section 2.3
The Random Function field is 8 bits long and all other values are
available through assignment by IANA. IANA is instructed to assign
values based on "Standards Action" and "Expert Review" (see
Harkins & Zorn Expires August 8, 2008 [Page 23]
Internet-Draft EAP Password February 2008
[RFC2434]) to ensure that new random functions have received the
proper vetting.
The following is the initial PRF registry layout:
o 0x01 : HMAC-SHA256 as defined in [RFC4634]
The PRF field is 8 bits long and all other values are available
through assignment by IANA. IANA is instructed to assign values
based on "IETF Consensus" (see [RFC2434]).
The following is the initial Failure Code registry layout:
o 0x00000001: MALFORMED-MESSAGE
o 0x00000002: AUTHENTICATION-FAILURE
o 0x00000003: FRAGMENTATION-ERROR
The Failure-Code is 16 bits long and all other values are available
through assignment by IANA. IANA is instructed to assign values
based on "IETF Consensus" (see [RFC2434]).
6. Security Considerations
In Section 1.3 several security properties were presented that
motivated the design of this protocol. This section will address how
well they are met.
6.1. Resistance to Passive Attack
A passive attacker will see Scalar_P, Element_P, Scalar_S, and
Element_S. She can guess at passwords to compute the password element
but will not know s_rand or p_rand and therefore will not be able to
compute MK.
The secret random value of the peer (server) is effectively hidden by
adding sp (ss) to p_rand (s_rand) modulus the order of the group. If
the order is "r", then there are approximately "r" distinct pairs of
numbers that will sum to the value Scalar_P (Scalar_S). Attempting
to guess the particular pair is just as difficult as guessing the
secret random value p_rand (s_rand), the probability of a guess is
1/(r - i) after "i" guesses and for a large value of r (e.g. on the
order of 2^160) this exhaustive search technique is computationally
infeasible. An attacker would do better by determining the discrete
logarithm of Element_P (Element_S) using an algorithm like Baby-Step
giant-step (see [APPCRY]), which runs on the order of the square root
Harkins & Zorn Expires August 8, 2008 [Page 24]
Internet-Draft EAP Password February 2008
of r group operations (e.g. a group with order 2^160 that would be
2^80 exponentiations or point multiplications). Based on the
assumptions made on the finite cyclic group made in Section 2.2 that
is also computationally infeasible.
6.2. Resistance to Active Attack
An active attacker can launch her attack after an honest server has
sent EAP-pwd-Commit/Request to an honest peer. This would result in
the peer sending EAP-pwd-Commit/Response. In this case the active
attack has been reduced to that of a passive attacker since p_rand
and s_rand will remain unknown. The active attacker could forge a
value of Confirm_P (Confirm_S) and send it to the EAP server (EAP
peer) in the hope that it will be accepted but due to the assumptions
on H made in Section 2.2 that is computationally infeasible.
The active attacker can launch her attack by forging EAP-pwd-Commit/
Request and sending it to the peer. This will result in the peer
responding with EAP-pwd-Commit/Response. The attacker can then
attempt to compute ks but since she doesn't know the password this is
infeasible. It can be shown that an attack by receiving EAP-pwd-
Commit/Request from an honest server and forging EAP-pwd-Commit/
Response is an identical attack with equally infeasibility.
6.3. Resistance to Dictionary Attack
An active attacker can wait until an honest server sends EAP-pwd-
Commit/Request and then forge EAP-pwd-Commit/Response and send it to
the server. The server will respond with EAP-pwd-Confirm/Request.
Now the attacker has everything she needs to launch a dictionary
attack. She can guess at potential passwords, compute the password
element and compute kp using Scalar_P and Element_P from EAP-pwd-
Commit/Request and the candidate password element from her guess.
She will know if her guess is correct when she is able to verify
Confirm_S in EAP-pwd-Confirm/Request.
But the attacker committed to a password guess with her forged EAP-
pwd-Commit/Response when she computed Element_P. That value was used
by the server in his computation of ks which was used when he
constructed Confirm_S in EAP-pwd-Confirm/Request. Any guess of the
password that differs from the one used in the forged EAP-pwd-Commit/
Response could not be verified as correct since the attacker has no
way of knowing whether it is correct. She is able to make one guess
and one guess only per attack. This means that any advantage she can
gain-- guess a password, if it fails exclude it from the pool of
possible passwords and try again-- is solely through interaction with
an honest protocol peer.
Harkins & Zorn Expires August 8, 2008 [Page 25]
Internet-Draft EAP Password February 2008
The attacker can commit to the guess with the forged EAP-pwd-Commit/
Response and then run through the dictionary, computing the password
element and ks using her forged Scalar_P and Element_P. She will know
she is correct if she can compute the same value for Confirm_S that
the server produced in EAP-pwd-Confirm/Request. But this requires
the attacker to know s_rand which we noted, above, was not possible.
The best advantage an attacker can gain in a single active attack is
to determine whether a single guess at the password was correct.
Therefore her advantage is solely through interaction and not
computation, which is the definition for resistance to dictionary
attack.
Resistance to dictionary attack means that the attacker must launch
an active attack to make a single guess at the password. If the size
of the dictionary from which the password was extracted was D, and
each password in the dictionary has an equal probability of being
chosen, then the probability of success after a single guess is 1/D.
After X guesses, and removal of failed guesses from the pool of
possible passwords, the probability becomes 1/(D-X). Therefore it is
possible for an attacker to determine the password through brute-
force, active, guessing attacks. This protocol does not presume to
be secure against trivial guessing and implementations SHOULD take
countermeasures, for instance refusing authentication attempts for a
certain amount of time, after the number of failed authentication
attempts reaches a certain threshold. No such threshold or amount of
time is recommended in this memo.
6.4. Forward Secrecy
The MSK and EMSK are extracted from MK which is derived from doing
group operations with s_rand, p_rand, and the password scalar value.
The peer and server choose random values with each run of the
protocol. So even if an attacker is able to learn the password, she
will not know the random values used by either the peer or server
from an earlier run and will therefore be unable to determine MK, or
the MSK or EMSK. This is the definition of Forward Secrecy.
6.5. Random Functions
The protocol described in this memo uses a function referred to as a
"random oracle" (as defined in [RANDOR]). A significant amount of
care must be taken to instantiate a random oracle out of handy
cryptographic primitives. Section 6 of [RANDOR] provides guidance on
how to do this using hash functions. The random function, H, defined
in this memo in Section 2.3 uses one of the suggested constructs-- a
hash algorithm with truncated output.
Harkins & Zorn Expires August 8, 2008 [Page 26]
Internet-Draft EAP Password February 2008
This protocol can use any properly instantiated random oracle. To
ensure that any new value for H will use a properly instantiated
random oracle IANA has been instructed (in Section 5) to only
allocate values from the Random Function registry after being vetted
by an expert. The other requirement for a random function is that it
map its input to a target of at least 128 bits.
7. Security Claims
[RFC3748] requires that documents describing new EAP methods clearly
articulate the security properties of the method. In addition, for
use with wireless LANs [RFC4017] mandates and recommends several of
these. The claims are:
a. mechanism: password.
b. claims:
* mutual authentication: the peer and server both authenticate
each other by proving possession of a shared password. This
is REQUIRED by [RFC4017].
* foward secrecy: compromise of the password does not reveal
the secret keys-- MK, MSK, or EMSK-- from earlier runs of the
protocol.
* replay protection: an attacker is unable to replay messages
from a previous exchange either learn the password or a key
derived by the exchange. Similarly the attacker is unable to
induce either the peer or server to believe the exchange has
successfully completed when it hasn't. Reflection attacks
are foiled because the server ensures that the scalar and
element supplied by the peer do not equal its own.
* key derivation: keys are derived by performing a group
operation in a finite cyclic group (e.g. exponentiation)
using secret data contributed by both the peer and server.
An MSK and EMSK are derived from that shared secret. This is
REQUIRED by [RFC4017]
* dictionary attack resistance: an attacker can only make one
password guess per active attack. The advantage she can gain
is through interaction not through computation. This is
REQUIRED by [RFC4017].
* session independence: this protocol is resistant to active
and passive attack and does not enable compromise of
Harkins & Zorn Expires August 8, 2008 [Page 27]
Internet-Draft EAP Password February 2008
subsequent or prior MSKs or EMSKs from either passive or
active attack.
* Denial of Service Resistance: it is possible for an attacker
to cause a server to allocate state and consume CPU
generating Scalar_S and Element_S. Such an attack is gated,
though, by the requirement that the attacker first obtain
connectivity through a lower-layer protocol (e.g. 802.11
authentication followed by 802.11 association, or 802.3
"link-up") and respond to two EAP messages--the EAP-ID/
Request and the EAP-pwd-ID/Request. The EAP-pwd-ID exchange
further includes an anti-clogging token that provides a level
of assurance to the server that the peer is, at least,
performing a rudimentary amount of processing and not merely
spraying packets. This prevents distributed denial of
service attacks and also requires the attacker to announce,
and commit to, a lower-layer identity (such as a MAC
address).
* Man-in-the-Middle Attack Resistance: this exchange is
resistant to active attack, which is a requirement for
launching a man-in-the-middle attack. This is REQUIRED by
[RFC4017].
* shared state equivalence: upon completion of EAP-pwd the peer
and server both agree on MK, MSK, EMSK, Method-ID, and
Session-ID. The peer has authenticated the server based on
the Server-ID and the server has authenticated the peer based
on the Peer-ID. This is due to the fact that Peer-ID,
Server-ID, and the shared password are all combined to make
the password element which must be shared between the peer
and server for the exchange to complete. This is REQUIRED by
[RFC4017].
* fragmentation: this protocol defines a technique for
fragmentation and reassembly in Section 4.
* resistance to "Denning-Sacco" attack: learning keys
distributed from an earlier run of the protocol, such as the
MSK or EMSK, will not help an adversary learn the password.
c. key strength: the strength of the resulting key depends on the
finite cyclic group chosen. For example, [RFC5114] defines new
groups available for use with this protocol. Using groups from
[RFC5114] the strength can vary from 80 bits (for the 1024-bit
MODP with 160-bit Prime Subgroup) to 256 bits (for the 521-bit
Random ECP Group). Other groups can be defined and the strength
of those groups depends on their definition. This is REQUIRED by
Harkins & Zorn Expires August 8, 2008 [Page 28]
Internet-Draft EAP Password February 2008
[RFC4017].
d. key hierarchy: MSKs and EMSKs are derived from the MK using the
KDF defined in Section 2.4 as described in Section 2.6.3.
e. vulnerabilities (note that none of these are REQUIRED by
[RFC4017]):
* protected ciphersuite negotiation: the ciphersuite offer made
by the server is not protected from tampering by an active
attacker. Downgrade attacks are prevented, though, since
this is not a "negotiation" with a list of acceptable
ciphersuites. If a Ciphersuite was modified by an active
attacker it would result in a failure to confirm the message
sent by the other party and the protocol would fail as a
result.
* confidentiality: none of the messages sent in this protocol
are encrypted.
* integrity protection: messages in the EAP-pwd-Commit exchange
are not integrity protected.
* channel binding: this protocol does not enable the exchange
of integrity-protected channel information that can be
compared with values communicated via out-of-band mechanisms.
* fast reconnect: this protocol does not provide a fast
reconnect capability.
* cryptographic binding: this protocol is not a tunneled EAP
method and therefore has no cryptographic information to
bind.
* identity protection: the EAP-pwd-ID exchange is not
protected. An attacker will see the server's identity in the
EAP-pwd-ID/Request and see the peer's identity in EAP-pwd-ID/
Response.
8. Acknowledgements
The authors would like to thank Hideyuki Suzuki for his insight in
discovering an attack against a previous version of this protocol.
Scott Kelly suggested adding the anti-clogging token to the ID
exchange to prevent distributed denial of service attacks. Dorothy
Stanley provided valuable suggestions to improve the quality of this
memo.
Harkins & Zorn Expires August 8, 2008 [Page 29]
Internet-Draft EAP Password February 2008
9. References
9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H.
Levkowetz, "Extensible Authentication Protocol (EAP)",
Request For Comments (RFC) 3748, June 2004.
[RFC4282] Aboba, B., Beadles, M., Arkko, J., and P. Eronen, "The
Network Access Identifier", Request For Comments
(RFC) 4282, December 2005.
9.2. Informative References
[APPCRY] Menezes, A., van Oorshot, P., and S. Vanstone, "Handbook
of Applied Cryptography", CRC Press Series on Discrete
Mathematics and Its Applications, 1996.
[BM92] Bellovin, S. and M. Merritt, "Password-Based Protocols
Secure Against Dictionary Attack", Proc. of the Symposium
on Security and Privacy, pages 72-84, 1992.
[BM93] Bellovin, S. and M. Merritt, "Augmented Encrypted Key
Exchange: A Password-Based Protocol Secure against
Dictionary Attacks and Password File Compromise", Proc. of
the 1st Annual COnference on Computer and Communication
Security, ACM, 1993.
[BMP00] Boyko, V., MacKenzie, P., and S. Patel, "Provably Secure
Password Authenticated Key Exchange Using Diffie-Hellman",
Proc. of Eurocrypt 2000.
[EAPKEY] Aboba, B., Simon, D., and P. Eronen, "Extensible
Authentication Protocol (EAP) Key Management Framework",
draft-ietf-eap-keying-22 (work in progress),
November 2007.
[JAB96] Jablon, D., "Strong Passowrd-Only Authenticated Key
Exchange", ACM Computer Communications Review October
1996.
[LUC97] Lucks, S., "Open Key Exchange: How to Defeat Dictionary
Attacks Without Encrypting Public Keys", Proc. of the
Security Protocols Workshop, LNCS 1361. Springer-Verlag,
Berlin, 1997.
Harkins & Zorn Expires August 8, 2008 [Page 30]
Internet-Draft EAP Password February 2008
[RANDOR] Bellare, M. and P. Rogaway, "Random Oracles are Practicle:
A Paradigm for Designing Efficient Protocols", Proceedings
of First ACM Conference on Computer and Communications
Security, November 1993,
<http://www.cs.ucsd.edu/~mihir/papers/ro.pdf>.
[RFC2409] Harkins, D. and D. Carrel, "The Internet Key Exchange",
Request For Comments (RFC) 2409, November 1998.
[RFC2434] Marten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", Request For Comments
(RFC) 2434, October 1998.
[RFC4017] Stanley, D., Walker, J., and B. Aboba, "Extensible
Authentication Protocol (EAP) Method Requirements for
Wireless LANs", Request For Comments (RFC) 4017,
March 2005.
[RFC4086] Eastlake, D., Schiller, S., and S. Crocker, "Randomness
Recommendations for Security", Request For Comments
(RFC) 4086, June 2005.
[RFC4634] Eastlake, D. and T. Hansen, "US Secure Hash Algorithms",
Request For Comments (RFC) 4634, July 2006.
[RFC4962] Housley, R. and B. Aboba, "Guidance for Authentication,
Authorization, and Accounting (AAA) Key Management",
Request For Comments (RFC) 4962, July 2007.
[RFC5114] Lepinski, M. and S. Kent, "Additional Diffie-Hellman
Groups for Use with IETF Standards", Request For Comments
(RFC) 5114, January 2008.
[SHA2] National Institute of Standards and Technology, "Secure
Hash Standard", Federal Information Processing Standard
(FIPS) 180-2.
Authors' Addresses
Dan Harkins
Aruba Networks
Sunnyvale, California
United States of America
Email: dharkins@arubanetworks.com
Harkins & Zorn Expires August 8, 2008 [Page 31]
Internet-Draft EAP Password February 2008
Glen Zorn
Aruba Networks
Bangkok,
Kingdom of Thailand
Email: gwz@arubanetworks.com
Harkins & Zorn Expires August 8, 2008 [Page 32]
Internet-Draft EAP Password February 2008
Full Copyright Statement
Copyright (C) The IETF Trust (2008).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST 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.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights 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; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat 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 implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Acknowledgment
Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA).
Harkins & Zorn Expires August 8, 2008 [Page 33]
| PAFTECH AB 2003-2026 | 2026-04-24 06:56:19 |