Current Meeting Report
Jabber Logs

2.3.4 Extensible Authentication Protocol (eap)

NOTE: This charter is a snapshot of the 55th IETF Meeting in Altanta, Georgia USA. It may now be out-of-date.

Last Modifield: 07/26/2002

Bernard Aboba <>
Jari Arkko <>
Internet Area Director(s):
Thomas Narten <>
Erik Nordmark <>
Internet Area Advisor:
Erik Nordmark <>
Technical Advisor(s):
William Arbaugh <>
Mailing Lists:
General Discussion:
To Subscribe:
In Body: subscribe in Subject line
Description of Working Group:
The EAP working group will restrict itself to the following work items in order to fully document and improve the interoperability of the existing EAP protocol:

1. IANA considerations for EAP. 2. Type space extension to support an expanded Type space. 3. EAP usage model. 4. Threat model and security requirements. 5. EAP state machine. 6. Documentation of interaction between EAP and other layers. 7. Resolution of interoperability issues. 8. EAP keying problem description and requirements.

Items 1-7 are intended to be covered within RFC 2284bis, the revision to the EAP specification. Item 8 will be covered within a separate document

The EAP WG is not currently chartered to review or standardize EAP methods. However, when these work items are completed, the WG may be rechartered, or a new WG may be formed to evaluate proposed methods.

Goals and Milestones:
DEC 02  RFC 2284bis submitted for publication as a Proposed Standard
JUN 03  EAP Keying Problem document submitted for publication as an Informational RFC
No Current Internet-Drafts
No Request For Comments

Current Meeting Report

Minutes of the EAP WG 
Monday November 18, 2002, 15:30-17:30pm

Note takers: Dorothy Stanley, John Vollbrecht, Bernard Aboba

Welcome, Intro, call for note takers

Review of Document Status - Bernard Aboba
   WG work items:
        Standards track: RFC 2284bis, 
             Goal: recycle EAP at Proposed Standard
        Standards tracK: OTP, GTC, 
             Originally part of RFC 2284. Separated due to lack of 
implementation experience, so as to allow RFC 2284bis to advance to Draft 
Standard, while OTP, GTC draft would remain at Proposed. Now that RFC 
2284bis is recycling at proposed, can be left in, to see if it is 
implemented. Will be incorporated in -08, so that this draft will 
        Informational: ESTEEM draft, 
             Minutes of the EAP State Machine Design Team. Will be 
discussed later.  
   Individual submissions:
        Standards track: 
             EAP IANA considerations, separated out into a separate 
document. If RFC 2284bis will go to last call soon, won't be needed.
             EAP Keying draft, required work item within WG charter, 
requested in 802.11 Liason Letter. 
        Informational: draft-zorn-eap-eval-00.txt
             Draft on Security Claims. Recommends approach to be 
incorporated into RFC 2284bis. 
             Description of security issues with compound 
authentication in EAP. 
        Informational: draft-hiller-eap-tlv-00.txt
             EAP extension framework.

   Items in other WGs:
              This is a revision of RFC 2869, done in tandem with the IEEE 
802.1aa revision. Goal is to clarify RFC 2869, reduce differences with IEEE 
802.1X. IEEE 802.1aa references both RFC 2284bis and RFC 2869bis. 

        Proposed Standard: draft-ietf-aaa-eap-00.txt
              Diameter EAP application. Shares much of the text with RFC 
2869bis (needed for Diameter/RADIUS gateways). Since RFC 2869bis is so 
similar, comments on both can be posted to IETF AAA WG mailing list 

Liason Arrangement with IEEE 802.1aa

IETF EAP WG has a liason arrangement with IEEE 802.1aa (revision of IEEE 
This means that EAP WG members have access to the IEEE 802.1 archive so as to 
be able to read the 802.1aa drafts in progress (latest is D4, just going 
into ballot). An important goal of RFC 2284bis/RFC2869bis is to reduce 
discrepancies between 802.1X and RFC 2284. Here is how to access the 
802.1aa documents:
username: p8021
password: go_wildcats

In order to submit IEEE 802.1aa ballot comments, post your comments to the 
EAP WG mailing list and one of the IEEE voters will submit them in the 
correct format. 

Goals and Milestones - Bernard Aboba

December 02 - Submission of RFC 2284bis as Proposed Standard.
              This includes IANA considerations, OTP/GTC, type space 
expansion, security considerations/claims.
              State machine will be a separate document. 

              We are a bit behind on this milestone -- may not go into EAP WG 
last call until late December - January 2003. But cannot slip too much 
since IEEE 802.1aa references RFC 2284bis. 

June 03     - EAP keying framework document. This one needs work, will get 
more attention after RFC 2284bis, state machine are further along. 

RFC 2284bis-07: Bernard Aboba

Goals for RFC 2284bis
   Understanding behavior of current implementations
         Original EAP implementation survey in 2001
         Not many IEEE 802 EAP implementations then -- many more today. 
         Survey will be repeated when RFC 2284bis goes to Draft 
         Interoperability testing - ongoing. 

   Recycling RFC 2284bis at Proposed Standard
         Considerable interoperability issues, clarifications needed
         To advance to Draft Standard, need more interop testing, need to 
document results of interop testing - will take a while
         Backwards compatibility is an important goal
         Recognizes support for multiple media
         RFC 2284bis is double the size of RFC 2284!
         IANA considerations needed
         Security considerations to be beefed up
         Need to describe EAP operational model

   Re-writing EAP from scratch - this is not EAP NG!
   Making non-backwards compatible changes
   Revising RADIUS - RFC 2869bis/Diameter EAP handled in AAA WG
   Revising IEEE 802.1X - handled in IEEE 802.1aa

Interoperability Testing opportunities

CIUG - still in operation? No one knows. 
Networld Interop Report

Karen O'Donague - WLAN security lead for N+I

At Interop Las Vegas, Spring 2002 did testing of IEEE 802.1X with EAP TLS, 
TTLS and EAP MD5. Also tested VLAN configuration 

At Interop Atlanta, Fall 2002, tested PEAP. 

Interop Las Vegas, Spring 2003, preliminary discussions ongoing. 

Queston: Could this be an opportunity to work out 
interoperability issues?
Karen: Hot staging is an opportunity for testing, open to the 
community. We have been talking to the University of New Hampshire about 
developing interoperability tests for IEEE 802.1X. We are interested in 
people's comments. 

EAP Survey Results
EAP implementation surveys were sent to the PPPEXT, IEEE 802.1X mailing 
lists in 2001. This covered implementations of RFC 2284 on PPP and IEEE 
802. Results covered 2 PPP implementations, 2 IEEE 802.3 (Ethernet) and 1 
IEEE 802.11 implementation. Many implementations were "in process" at that 
time -- particularly IEEE 802.3 and IEEE 802.11. 

Survey disclosed some features not implemented:
Default retransmission timer of 6 seconds
"Alternative indications" on loss of EAP Success and Failure
Display of Notification to user

These features will be examined in more depth as part of RFC 2284, Issues 
have been filed. 

Since RFC 2284bis no longer going for Draft Standard, don't have to cut 
non-implemented features -- but often features aren't implemented 
because they are broken in some way -- so worth revisiting them. 

2284bis Issues Process - Bernard Aboba

You may have seen "Issues" postings to EAP WG mailing list 
( This is a request for a change in an EAP WG 
document. Not just a question -- a request for *action*. Not just a 
problem description -- need to include proposed text for the solution!

To file an issue fill in the following form to 

Description of issue 
Submitter name: Your_Name_Here 
Submitter email address: Your_Email_Address_Here 
Date first submitted: Insert_Date_Here 
Reference: URL to e-mail describing problem, if available 
Document: Document Requiring change [RFC2284bis, RFC 2869bis, Keying 
Comment type: ['T'echnical | 'E'ditorial] 
Priority: ['S' Must fix | '1' Should fix | '2' May fix ] 
Section: Insert_Section_Number_Here 
Rationale/Explanation of issue: 
Lengthy description of problem
Requested change: Proposal for what to do about it

The issues list is kept at:

Issues status report:

42 Issues raised so far
RFC 2284bis (37)
  20 resolved
  3 rejected
  14 still open
RFC 2869bis (2)
  2 resolved
EAP keying framework (2)
  2 still open
EAP state machine (1)
  1 still open

Most issues relate to RFC 2284bis. 
Closed/still open ratio is not very good: have only resolved 20 out
of 37 open issues on RFC 2284bis. 
Open 6 months or more: Issues 2,7,10,14,23,25,26,32
Relatively little discussion on posted RFC 2284bis issues so far

If this continues, EAP WG will miss milestones, and IEEE 802.1aa and IEEE 
802.11i will be delayed and impacted. 

Have to pick up the pace! After IETF 55, will post resolution to most of the 
open RFC 2284bis issues, based on EAP Design Team discussions.  Please be 
prepared to debate the resolution, read the drafts and file more issues. 
Goal is to get RFC 2284bis to EAP WG last call by end of the year. Tell us 
your opinion on the mailing list. 

Open RFC 2284bis issues

Alternative indications (#2)
Authentication sequences (#7)
Acknowledged Success/Failure (#10)
Identifier usage (#13)
EAP Transport behavior (#14)
Identifier behavior (#18)
Identity Request Payload (#23)
Spoofing and duplicate detection (#25)
Unprotected success and failure (#26)
Keying confirmation (#32)
Language negotiation (#38)
Man-in-the-middle attacks (#40)
NAK of Vendor-specific (#41)
EAP enhancements (#42)

EAP State machine Design Team (ESTEEM) - Jari Arkko

Goal of the EAP State Machine Design Team (ESTEEM) is to prepare an EAP 
state machine document that is compatible with IEEE 802.1aa, RFC 
2869bis, Diameter EAP, and correctly handled identity exchanges, 
sequences, re-authentication, retransmission, Naks, Notification, etc.

Members: Bernard Aboba, Jari Arkko, Paul Congdon, Rodrigo Garces, Robert 
Moskowitz, Yoshihiro Ohba, Bryan Payne, Nick Petroni, Joseph Salowey, John 
Vollbrecht, Jesse Walker, Glen Zorn


Weekly teleconference calls, submission of Position Papers 
(incorporated into ESTEEM document), review of open RFC 2284bis issues, 
produced two state machine documents so far. 

Making headway on EAP state machines has required addressing open RFC 
2284bis issues - we have to know what the protocol does before writing a 
state machine for it!

ESTEEM Recommendations to EAP WG on Resolution of RFC 2284bis issues

Basic issues

Allow notification in any state; can’t be Nakked
EAP layer (not method) handles duplicate detection and id numbers (#25)
Follow IEEE 802.1aa format in EAP state machine definition

Identity requests

Identity request/response can only appear between methods, not in the 
Identity requests are optional.
Nak disallowed for Identity Request

Success and failure indications
If an authenticated indication exists, should not believe 
non-authenticated indications
Link-layer indications provided to EAP MUST be processed (#2)
Unprotected success indications are only accepted after method is 
complete (#2)
Peers should be able to accept Failure in unauthenticated state
Authenticated success/failure indications require support for 
sequences or tunnels (#10)

Methods can’t be executed in parallel; Nak if received
No pre-negotiation of method sequencing capability, just Nak 
afterwards (#7)

Any objections to these recommendations? 
None. Will be incorporated into RFC 2284bis-08. 

Further discussion of RFC 2284bis open issues:

Bernard: Issue # 42 - Request to change EAP to support PAP, 
Was originally submitted as an IEEE 802.1aa ballot comment. 

GZ: On that issue, we should reject both suggestions. PAP and 
heartbeat. We don't need to support these.
BA: Any objections to recommending that comment 42 be rejected? No 
objections.  Issue #42 resolved: Rejected

BA: Comment #41: Ambiguity in actions for NAK of vendor specific 
commands. NAK needs to include vendor-specific type (255) plus 
vendor-type and command. Not hard as long as multiple methods are not 
included within the NAK -- if so, gets complicated. 

James Kempf: Didn't we have an issue in Diameter with 
vendor-specific AVPs?
Bernard: No, this is the capabilities negotiation, a different issue. 
James Kempf: There were process issues with vendor-specific things in 
Bernard: Yes, the issue was with Vendor-Specific commands in Diameter. 
Vendor-specific AVPs are still in the documents. The issue here is that 
most EAP allocations are for vendor-specific Types, and EAP space is 
finite (255). 
James Kempf: Will vendor-specific EAP Types be grandfathered in?
Bernard: Since this has been in there for a while, leave it in
Erik Nordmark: The IESG has no problem with this. The concern is with 
vendor specific and undocumented features that break 
interoperability.  It is important to do features in a standard way. Also, 
deal with negotiation. The prime directive is 
Paul Funk: One suggestion is to redo the list of NAK types by mapping 
normal EAP types into the zero vendor ID. When you get an FF as an EAP 
type, then the end of the list has been reached. 
Bernard: Wouldn't this break backward compatibility? Let's take 
discussion to the list.
Bob Moskowitz: Need to look at denial of service attacks with the 
Paul Funk: This is a general issue with a negotiating down attack. DOn't 
know if this has been looked at. Will write up some suggestions. 

Bernard: Issue #2, Alternate Indications. Lower layers have different 
alternate indications.  RFC 2284bis indication behavior was not 
implemented -- because it is insecure.  For example, could go into 
"Success" state based on receipt of PPP NCP packets.  Design Team has 
rewritten the text so as to differentate been protected and 
unprotected indications. Unprotected indications cannot overrule 
protected ones. New text is more secure -- has been implemented, seems to 
prevent man-in-the-middle attacks. 

Any comments on proposed resolution? No comments.

EAP Transport behavior #14: Default retransmission behavior of 6 seconds has 
not been implemented. Not all EAP methods require manual 
intervention (some are automatic). For those that require manual 
intervention, times can vary (you have to take out token, punch in 
numbers. Maybe more than 6 seconds is required?). Proposed solution is to 
allow Session-Time to determine behavior based on the EAP method, use RFC 
2988 (TCP RTO) behavior where no hint is given. That way EAP 
retransmission can adapt to the media. Could prevent false 
retransmissions for media with high latency, like GPRS. Will discuss on the 

Issue #13 (Identifier Usage), #18 (Identifier Behavior): Design Team 
decision is not to specify behavior in detail, just that the 
Identifier must not repeat during a conversation. This allows IEEE 802.1X 
behavior (start at 0, increment by 1), but does not require it. Will 
discusson the list. 

Spoofing and duplicate detection (#25): Design team 
recommendation is that sequencing and duplicate detection be done in the EAP 
layer, so EAP method will get a non-duplicated and ordered stream of 
packets. This has disadvantages -- EAP method may never get packets that are 
valid but represent dupes due to an attacker. Would be more resilient to 
allow all packets to go up to the method and allow integrity 
protection check to be done prior to discard.  But this would require EAP 
method to sit on top of an unordered, unreliable transport -- and EAP 
methods assume reliability. This is similar to the difference between 
SSL/TLS which runs on TCP/SCTP, and ISAKMP, which runs on UDP -- except 
that EAP sequence space is only one octet, so it's almost trivial to spoof or 
otherwise disrupt the sequence space. Will discuss on the list. 

Identity Request Payload (#23) is about how to know which network or NAS is 
being connected to. In most cases, this is know via out-of-band 
indications such as 802.11 Beacons and Probe Responses. In IEEE 802 wired 
networks there is no equivalent yet -- Layer 2 advertisement occurs 
*after* 802.1X, not before.  Should it be moved before? Also, what if you 
want to do adhoc, with each side identifying themselves? Is it the 
Authenticator Id that goes in the Identity Request? The Network ID? Will 
discuss more on the list. 

Keying confirmation (#32): Recommendation is to accept the proposed 
Will discuss on the list.  

Will discuss Acknowledged Success/Failure (#10), Unprotected 
Success/Failure (#26), Man-in-the-middle attacks (#40) later on. Will put 
off discussion on Language Negotiation (#38) since this is an 
"extension", like #10, 26. 

Presentation on EAP State Machine - Nick Petroni, Chuck Yang Seng

The latest draft (-01) is an update to prior work presented at IETF 53
Includes both Authenticator and Peer state machines
Question: In the case where Authenticator resides separately from the NAS 
(AAA) do we need a NAS state machine, too? Possibly, there is one in IEEE 

Changes based on design team decisions
IEEE 802.1X notation now used for state machine. 
Reflects decisions on Nak and Identity handling. 
Authenticator state machine - see

Since the EAP protocol is extensible, the state machine needs to reflect 
this. The notion of policy is introduced to enable what methods and 
subsequent behaviors may follow. 

For example, the "Success" state can only be reached if a method is 
finished (and has completed successfully). 

NAKs only arrive in response to the first request from the 
authenticator, within a method -- they are not used in the middle of a 
method.  Commenter: State machine now indicates that if one method fails 
within a sequence, then authentication fails, as the Design Team 
recommended.  BA: If any method fails, take as failure. Any comments? No 
comments, will be incorporated. 

Chuck: Review of EAP Peer State Machine
Still to be done - explicit representation of timers, error handling, 
alternate indications of failure/Link changes, Pass-through 
authenticator.  Any questions? No questions

EAP IANA Considerations - Bernard Aboba

36 types allocated so far. Most do not have a specification 
available, since they are for vendor-specific use.

Rate of Method Type allocation is increasing
RFC 2284bis was published in March 1998 
PPP Number assignments handled by IANA: Only 8 new types (9-17) 
allocated by August 2001. Roughly 20 new types allocated in 12 months 
since then, almost 2 a month. 

Some methods have been allocated more than one type (EAP SRP). Not clear 
this should ever be necessary. 

Different type codes have been allocated for similar but perhaps not 
identical methods (two EAP-MSCHAPv2 variants).  

Not all allocated Method Types are used -- at least 5 Types appear to have 
never been used (15 percent of the allocated type space). 


Type allocation process is not running efficiently right now.  At the 
present rate of allocation, half of EAP Type space would be exhausted 
within 4-5 years. So problem is not immediate, but given pace of IETF 
process, deployment of fixes, it is not too soon to standardize a 
solution now. For example, if we get a solution to RFC in a year, and it 
takes 3 years for wide implementation and another 3 years for 
deployment, solution will be widely available just when the problem has 
become severe.

Recommended IANA considerations (included in RFC 2284bis):

Packet Codes
Codes 1-4 described in RFC 2284
Codes 5-255 allocated by Standards Action

Method Types
Method Types 1-36 already allocated by IANA
Method Types 37-191 allocated via Designated Expert 
w/specification required
Method Types 192-254 reserved; allocation requires Standards Action
Method 255 for Vendor-Specific extensions when no 
interoperability is deemed useful
(vendorID != 0), or for additional Type codes (>=256) when vendorID == 0. 
Allocation of more than one type code to a single method requires IETF 

Question: When is "IETF Consensus" required? 
When a single method requests more than one type code. Today in theory 
someone could
request allocation of the entire EAP Type space for one method. 
Question: What do we do in the meantime before RFC 2284bis is 
Bernard: Go to IANA, request an allocation as you do today. 
Question: How immediate is the problem?
Bernard: It will start to become an issue in 4-5 years. Within 10 years it 
will be severe. 4-5 years is not long given IETF 
standardization, product development and deployment time frames. Goal of 
IANA considerations is to slow down the exhaustion rate by creating a new 
vendor-specific space, since most types are allocated for 
vendor-specific currently. Could push out exhaustion of the standard space 
many, many years. Once existing (37-191) space runs out, can allocated from 
the extended (vendorid=0) IETF space. 
Thomas Narten: How about allocating a single EAP method Type for 
experimental use?
Bernard: OK. Will put into RFC 2284bis-08. 
Bernard: The question has arisen as to whether IANA 
considerations should be kept within RFC2284bis or processed 
separately. Protocol specifications MUST have an IANA 
considerations section, so it needs to be done.
Question: Does definition of the vendor-specific type (255) go into the 
IANA considerations document if it is separated?
Bernard:  It doesn't have to be in there. 
Question: If it isn't, what do people do in the meantime? It would put real 
development in limbo, since you'd need a specification to get a 
standard allocation. 
Bernard:  That is an argument for putting them together in the same 
draft. Of course, then you'd need to define extended Nak along with 
Vendor-Specific type in the same document. Any opinion on how to advance 
Commenter: Keep IANA considerations part of RFC 2284bis -- ensures 
Question: This makes obtaining type values more difficult. Is it 
Bernard:  The rate of allocation has been increasing -- we're now 
allocating up to two types per month. At current rate, we'll have a 
problem in 4-5 years, severe problem in 10 years. IETF process is slow, 
implementation is slow, deployment is slow. Need to get standards 
process started way in advance of when a severe problem would occur. Even 10 
years ahead of time to get started is not too early -- witness IPv6, where 
it's not clear that we'll be ready in time. 
Bernard:  Recommendation is to keep IANA Considerations in with RFC 
2284bis, not separate it out. Any problems with this? No problems, will be 
kept as part of RFC 2284bis. 

EAP State Machine - John Vollbrecht

Goal of this work was to produce an EAP state machine based on the EAP 
switch model -- interactions of EAP layer and method layer described in the 
ESTEEM document. It is desirable to keep the state machine as simple as 
possible -- to avoid interoperability problems. 

EAP Switch model: The EAP layer (called the "Switch") is responsible for 
negotiating methods with peer EAP layer "switch." Policy is 
implemented within the EAP layer, not within methods. This work has 
produced Authenticator and Peer state diagrams. 

The key to interaction between the EAP layer and methods are the 
"Primitives" by which the EAP layer (switch) and Method interact. ESTEEM 
Draft includes some proposed primitives -- for things like keying, 
success/failure indication from method to the EAP layer, etc. 

The Authenticator selects a method, sends a Request, and this causes the 
Peer to change states on receipt. The first Request need not be an EAP 
Identity. IEEE 802.1aa has been changed to reflect this -- it could be a 
method packet sent by the Authenticator. 

EAP State machine Issues

How does method indicate failure to the EAP layer? Success? There needs to be 
a primitive for this, because it influences how the EAP layer will 
process subsequent EAP Success or Failure messages (unprotected 
indications) that arrive. 

What about a packet from an unexpected method? We've decided that the Type 
cannot switch in the middle. Until the method indicates 
success/failure, the EAP layer expects only packets of the same 
(negotiated) Type. 

What about unexpected NAKs? Again, a NAK can only be sent in response to the 
first Request within a method. If a method is ongoing, the EAP layer will 
not be expecting the NAK. In any cases, NAKs are not passed up to the EAP 
method, there is no primitive to do this. Notifications are not passed up -- 
although there is a primitive on the Authenticator for requesting that they 
be sent. There is a primitive for retrieving what is sent in the 
Identity Request or Response. So that is obtainable within any methods. 

Where does policy reside? How are variables passed among methods?  We're 
just getting started with primitive definitions, which may shed light on 

How does EAP retransmission interact with RADIUS retransmission? We've seen 
some circumstances (IEEE 802.1X) where we can have duplicates arrive at the 
RADIUS server. IEEE 802.1X Supplicant sends EAPOL-Start, 
Authenticator sends EAP-Request, they cross in the night; two 
EAP-Responses end up being sent to the RADIUS server with different 
Identifier values. 

The current state machine draft in the ESTEEM Draft only deals with the 
Peer and Authenticator, not the NAS. Will post a revised draft, NAS state 
machine after IEEE 55. 

Jari Arkko: How do we go forward from here? Can the two groups working on 
state machines merge their proposals?
John Vollbrecht: We can work on this. 

EAP TLV - Glen Zorn

Glen Zorn noted that he has been talking with Paul Funk about EAP TLVs for 
some time. The basic idea is to create a "container" type for EAP 
allowing for a richer conversation between the peer and the 
authenticator. An EAP TLV exchange can be sent at any point during the EAP 
conversation; may be NAKed by methods that do not understand it. Example use - 
acknowledged success and failure.

Bernard: Do you really mean at *any* time? Such as in the middle of a 
currently running EAP method?  The Design Team recommends that new 
methods only be allowed at the beginning or after an existing method has 
terminated successfully. 
Glen Zorn: This needs to be worked on. Not sure what the answer is. Paul 
Funk has found uses for this, and I think it is really useful to have it. 
For example, it allows multiple current issues like #10 
(acknowledge success/failure), #26 (protected 
success/failure), #38 (language negotiation), and even #40 
(man-in-the-middle attack) to be handled. It's been discussed as a 
potential solution to MIP/802.11 integration as well. 

Compound Authentication - Jesse Walker

This work has been done by a lot of people. I'd like to recognize the work of 
the Nokia Research Center which discovered the attack, and there are 
people within the EAP, IPSRA, and IPsec WGs that are working on 
analyzing it and finding a solution. 

The problem arises when multiple EAP types are used in a sequence or a 
tunnel. For example, you might have a strong authentication method that 
derives keys -- but if you put it inside a tunnel you now make it 
vulnerable to a nasty man in the middle attack. Weak methods, such as 
legacy authentication methods, have problems with and without a tunnel. 

Glen Zorn: Would you mind talking about the definition of "legacy"? I 
don't understand it. 
Jesse: EAP tunneling seems to have been invented to enable more secure use of 
legacy authentication methods. These are typically methods such as 
EAP-MD5 or a token card, that are one-way, and don't derive a key. They 
have traditionaly be used in dialup. The IT department monitors their use 
and looks for attacks. Legacy protocols typically don't support mutual 
authentication or key derivation -- so they are vulnerable to 
hijacking.  This was not a concern for PPP, which was considered 
"physically secure". But 802.11 changes things, anyone can have access to 
the "medium." 

Glen Zorn: What does it mean to say "where tunnel termination is not on the 
real endpoints (client and server) and authentication protocol derives no 

Jesse: I agree, it's not clear. 
Glen Zorn: EAP-MSCHAPv2 is a method that derives keys and does mutual 
authentication. When used within a tunnel it is a compound method, no?
Jesse: Yes. 
Glen Zorn: And the vulnerability still exists, no?
Jesse: Yes, because the tunnel key and the EAP-MSCHAPv2 keys are not 

MN: A prerequisite for the attack of that the EAP method is used outside of 
the tunnel with the same set of credentials.
Jesse: Good point. However, you can't just say "don't reuse 
credentials". Sometimes that is possible, but people want to reuse 
credentials like token cards, SIMs. They don't want users to have to carry 
around multiple devices. So in the real-world, you can't make this go 

MN:As soon as you don't re-use credentials, you are ok and the attack 
doesn't work. 
Jesse: As long as you *always* use EAP within the tunnel -- and the 
tunnel server is authenticated.
Jesse: Let's review how the attack can be carried out when EAP-AKA is used 
within EAP TTLS.  The problem is created because the tunnel is only 
authenticated one way -- the server authenticates to the client, but not the 
client to the server. 

Glen Zorn: That's not true. Lack of enforceable client policy enables the 
attack. If you can force the EAP method to only run through the tunnel you 
have solved the problem. If you don't have credential reuse you're ok. So 
it's an implementation problem with the client policy.  And note that for 
true "legacy" methods as you've defined them -- crypto binding will not 
help, because there are no keys, nothing to "bind" with, and you've given 
the "legacy" credentials which are presumably insecure to the 
attacker. So you're still stuck, even once a "solution" is applied. 

Jesse: The market says "we want this." The GSM folks want to use SIM/AKA for 
web authentication, Cellular, 802.11. Companies want token cards to work in 
multiple applications. It might be worth our while to make it more 
difficult to do this -- but can we expect such a policy to be widely 
adopted? Seems unlikely. 

Commenter: The problem is not just specific to a one way tunnel. It also 
applies to a mutually authenticated outer tunnel if the outer tunnel is not 
tied to the inner tunnel. You can use the MAC or IP address or machine name 
as the outer identity, user identity for the inner identity. 
Association can be established when authentication is done. 

Commenter: However, when you have mutual authentication, it is possible to 
exercise access control based on the identity within the outer tunnel. You 
can only allow a set of identities within the inner tunnel that 
correspond to identities in the outer tunnel. For example, you can only 
allow a subset of users to authenticate themselves within a tunnel 
established to a given machine. So you can enforce a combination of 
machine and user authentication: only allow a user to authenticate from one 
of several possible locations/machines. That's not a vulnerability per se -- 
the user access can be explicitly authorized. 

Jesse: If one believes that this is a problem, then you have several ways to 
go about solving it.  You can try to fix existing EAP methods. This could be 
hard because "legacy" methods are already deployed. You could try to fix new 
EAP methods -- this might be possible. You can try to fix the tunnel 
methods -- that might work. 

Jesse: EAP methods can be divided into "ciphering" (key deriving) and 
"non-ciphering" (no keys). 
Ciphering tend to support mutual auth, non-ciphering tend to not support 
I don't necessarily agree with the classification. 
If don't derive keys, tunneling doesn't make anything worse - eg. 
EAP-MD5 with TLS tunnel. You had a man-in-the-middle problem before, since 
the client didn't authenticate the server. You had a hijacking problem 
before, because there was no key to bind the authentication to 
subequent data. You have a potential dictionary attack. Not much changes 
with a tunnel. You still have man-in-the-middle. The attacker can obtain 
credentials for an offline dictionary attack. 
Jesse: However, if you were using a "ciphering" method -- one that does 
derive keys, such as EAP-SIM, putting it within a tunnel does make things 
worse. Before you didn't have a hijacking or man-in-the-middle 
vulnerability, because you did mutual authentication and derived keys to 
bind the authentication to subsequent data. Now with tunnels you have a 
man-in-the-middle vulnerability you didn't have before. 

How do you solve the problem? You add a handshake within the tunnel based on 
combining the tunnel keys and the authentication method key. The 
combination defeats the MiTM attack. This fixes the situation for key 
deriving protocols. However, it does not help "non-ciphering" 
protocols -- which includes most legacy protocols: CHAP/EAP-MD5, OTP, GTC, 

Jesse: Recommend formation of a design team to study proposed fixes and 
recommend a solution to be added to the EAP Base protocol. 

Glen Zorn: There should be guidance in the security 
considerations section of RFC 2284bis, advising admins to define 
policies. For example, allow EAP-MD5 in dialup, but not for 

Henry Haverinen: I agree with Jesse's presentation. Right way to look this is 
to look at a strong method such as UMTS and don't re-use 
credentials. Should we do the crypto binding? 

BA: Henry, the Nokia Research Center has also worked on this problem, and 
written papers and presentations. Do you agree on the 
characterization of the problem?
Henry Haverinen: Yes
BA: Do you agree with the solution?
Henry Haverinen: Yes, it should be fixed with a crypto solution. We also can 
have policies.
Jesse: One recommendation is that strong methods (key deriving, mutual 
authentication) SHOULD NOT be used with tunneling protocols like PEAP, EAP 
TTLS. Henry Haverinen and Nokia Research Organization started out this line 
of thinking. 

Commenter: But what about protocols such as PIC or PANA? They carry EAP 
over IP within a protected
channel: ISAKMP (PIC) or TLS (PANA). How else should this be done? EAP over 
TCP/UDP Without protection? 
Commenter: Possibly. Single, strong methods can run "naked". 
Commenter: Can we prevent these attacks by having restrictions on the 
Jesse: Yes. MiTM comes about because people do stupid things -- 
credential reuse, use inside and outside of tunnels. 
Commenter: Mobile operators will put restrictions on the client, and can put 
policy on the server.  This could be as simple as having the public key of 
the server. 
Bernard: Let's not design a solution here. We're still talking about the 
Commenter: I agree with both sides. If we want to solve the problem, we 
need a cryptographic solution. I'd prefer to see the solution done in EAP, 
rather than in each tunneling protocol.  Perhaps some 
authentication methods can be changed -- only RFC 2284 and RFC 2716 are 
RFCs yet, the rest are still IETF drafts. We just need to add the tunnel 
keys into the authentication method. 
Glen Zorn: We still need to characterize the problem. "A 
cryptographic solution" solves MITM for  methods that derive keys. But 
tunneling is largely motivated by a desire to improve security of legacy 
methods -- that this "solution" doesn't help. So are we talking about 
something bigger?
PF: A Cryptographic solution - combining keys to form compound MACs and 
compond keys, and then doing mutual validation based on those keys --  
restores features of the protocols that we thought we arleady had.  
Glen Zorn: Yes, but the attacker has still been able to obtain the legacy 
credentials . If these were vulnerable to dictionary attack, then the 
attacker can obtain the passphrase -- after which it can access the 
network at will by whatever access method allows "naked" EAP access. If 
there were no such access, the attacker would not have been able to 
perpetrate the attack. With the solution, the attacker can still access the 
network. So what problem has been solved? 
Jesse walker: Right, the cryptographic solution only works completely 
where the encapsulated method is strong against dictionary attack, 
supports key derivation and probably mutual authentication. In which case -- 
why were we tunneling it??
Commenter: Cryptographic solution doesn't add any real value; it doesn't 
help legacy protocols or protocols with dictionary attack 
vulnerabilities. For strong protocols the right solution is not to use 
tunneling. So all we accomplish with the cryptographic "solution" is to add 
Bernard: We have with us Hugo Krawczyk, who has also been looking at this 
problem from the point of view of IPSRA WG (PIC). Hugo -- do you agree with 
the problem characterization?
Hugo K.: Yes. 
Bernard: Any thoughts on the solution? 
Hugo K: It is also not clear to me that the "cryptographic solution" is 
worth implementing. 
The problem is credential reuse, in my opinion. 

Bernard: Humm if you feel that this is a problem. 
wg hmmed that it feels this is a problem.  Somehow a solution needs to be 
Chairs will propose an approach on the mail list.


EAP WG meeting
Tuesday, November 19, 2002, 1700-1800

EAP Keying Problem -- Bernard Aboba

Goals and Objectives
To describe basic concepts of EAP
To describe the EAP keying architecture
To point out pitfalls in design of EAP methods that derive keys
To identify problems that require solution

The goal of this draft is to describe the EAP Keying framework and also to 
provide guidelines for EAP method developers, in terms of things to watch 
out for when developing a method that derives keys. 

The motivation for this draft came from reviewing EAP method 
specifications.  There was a wide variety of keying behavior. Some 
methods derived keys.  Others did not. Some methods derived keys with 
128-bits of entropy. Somekeys had much less entropy -- or didn't use well 
understood key derivation technology. 

Some methods derived ciphersuite-specific "session keys". Other methods 
derived "master session keys" which were ciphersuite independent. Some 
methods included specifications for how session keys would be derived for 
specified ciphersuites -- only for that method. Presumably another EAP 
method could use a completely different mechanism to derive session keys -- 
for the same ciphersuite. 

The draft doesn't go into depth in key derivation techniques. This is a 
topic for professionals. But it does try to describe why certain 
practices, such as ciphersuite-specific session key derivation -- 
doesn't make sense in EAP methods. 

Why derive keys? 
Key derivation is not required in all cases. In wired networks like IEEE 802 
or PPP, physical security is typically assumed so that EAP may be used 
purely for authentication, no confidentiality. In that case, there is no 
need to use an EAP method that derives keys -- and if it is assumed 
impossible to install a rogue switch, then mutual authentication isn't 
needed either. 

In wireless everything is different. You need confidentiality and to avoid 
hijacking, the authentication needs to be "bound" to the data via 
per-packet integrity protection. So you need an EAP method that derives 

Also, as was discussed in the "EAP binding" session yesterday, keys can be 
used to bind an EAP method to the encapsulating tunnel or to other 
methods within a sequence. 

Some basic background on EAP key flows. Keys are derived between the EAP 
Peer and Authenticator. If the Authenticator and NAS are not colocated then 
keys need to be transferred from the Authenticator 
(Authentication server) to the NAS. In methods like Kerberos, it is also 
necessary to transfer keys from the Peer to the NAS. The key flows are 
discribed in the draft. Note that other geometries are possible. Even with an  
authentication server, you could have a tunneled protocol with the tunnel 
(e.g. TLS tunnel) terminated on the NAS and the inner 
authentication tunneled somewhere else. 

The EAP architecture assumes that the NAS serves as a 
"passthrough" for some or all authentication methods and users. It could act 
as a  passthrough for some methods, but not all, or for some (local) users 
but not all users.  But when the NAS acts as a passthrough the goal is to 
not require the NAS to implement the method -- this is implemented on the 
Peer and Authentication Server.

Similarly, the Peer and NAS negotiate and implement the 
ciphersuite, not the Authentication Server -- because no data passes 
through the AS. The AS may not even know the negotiated ciphersuite -- it 
may be negotiated *after* authentication. So there may be no practical way to 
include the ciphersuite in the EAP method's key derivation. 

Even if this were possible -- such as if the EAP method supports 
ciphersuite negotiation -- it wouldn't be a good idea. New 
ciphersuites are continually created, on different media. But we don't want 
to have to revise the EAP method to support each new ciphersuite. The 
maintenance burden would be excessive. 

So the right approach is for EAP methods to generate ciphersuite 
independent keys -- and to get them to the NAS and Peer, which can then 
derive the key hierarchy for the negotiated ciphersuite. 

So EAP key derivation has two phases -- the derivation of what is called the 
"Master Session Key" (called the Pairwise Master Key in 802.11i), and the 
subsequent derivation of the ciphersuite-specific session keys. 

What is a key hierarchy?  A description of how the session keys 
required by a particular cipher are derived from the keying material 
provided by EAP methods. You need a key hierarchy for each 

Desirable characteristics: Key strength (64 bits is typically not 
Cryptographic separation: the inability to get information about one of the 
keys in the hierarchy, based on having cracked another key in the 

Example key hierarchies: MPPE (RFC 3079), IEEE 802.11i, EAP TLS (RFC 

IEEE 802.11i derives the key hierarchies for TKIP, CCMP and WRAP solely 
from the Pairwise Master Key (PMK) transported in 
MS-MPPE-Recv-Key attribute defined in RFC 2548. So only 256 bits of 
keying material of the 512 bits that are transported in the RFC 2548 
attributes are used to derive authentication and encryption keys plus keys 
for authenticating and encrypting the EAPOL-Key packets. 
See IEEE 802.11i for details. 

MPPE (RFC 3079) uses both MS-MPPE-Recv-Key and MS-MPPE-Send-Key in its key 
hierarchy, using 512 bits instead of just 256 bits. MPPE uses only 
encryption keys in each direction, no authentication keys.
See Section 4 for details. 

Short summary (details in slides, but not discussed)

In EAP TLS (RFC 2716), the Master Session Keys are computed via the TLS PRF 
(Diagram in presentation, small type): Details: 

Compute up to 128 bytes (1024 bits): 
PRF1 (master secret, "client EAP encryption", 
client_hello.random || server_hello.random)

Compute up to 64 bytes (512 bits):
PRF2("", "client EAP encryption", client_hello.random || 

How is this keying material transported from authentication server to NAS? 
Attributes are provided in RFC 2548: 

MS-MPPE-Recv-Key: Corresponds to first 32 bytes of PRF1. This is known in 
IEEE 802.11i as the "Pairwise Master Key". 
MS-MPPE-Send-Key: Corresponds to second 32 bytes of PRF1. 
So, out of the total of 192 bytes of keying material generated by EAP TLS 
(and passed across via the interface from the EAP method to the EAP 
layer), the RFC 2548 RADIUS attributes only transport 64 bytes (512 bits) 
from the authentication server to the NAS. Why only 64 bytes, not 192? 
These attributes were created for use with MPPE, which only needed 64 
bytes. That's still quite a bit (512 bits), and at least so far, it has 
been enough. 

How would you go about creating a key hierarchy for a new 

Carefully, very carefully. 
RFC 2716 provides some general guidance on construction of a 
ciphersuite-specific key hierarchy:

Use the First 32 bytes of PRF1 be used for the Peer to NAS Encryption Key. 
Use the Second 32 bytes of PRF1 be used for the NAS to Peer 
Encryption Key. 
Use the Third 32 bytes of PRF1 be used for the Peer to NAS 
authentication key.
Use the Fourth 32 bytes of PRF1 be used for the NAS to Peer 
authentication key. 

Use the First 32 bytes of PRF2 be used for the Peer to NAS 
initialization vector (if necessary) 
Use the Second 32 bytes of PRF2 be used for the NAS to Peer 
initialization vector (if necessary)

Of course, to take this advice, the NAS would actually need to obtain the 
third and fourth 32 bytes of PRF1, as well as the first and second 32 
bytes of PRF2. So you'd need to define a separate set of RADIUS 
attributes for this purpose. 

This is needed anyway -- because RFC 2548 has a security weakness. You see, 
the keying attributes are encrypted using a stream cipher derived from MD5 
(not HMAC-MD5) and the Salt is placed at the end. That means that if the MD5 
keystream is compromised due to a plaintext attack on other hidden RADIUS 
attributes such as User-Password --  the Salt does no good at all, since it 
is sent in the clear and put at the end of the MD5 computation. That means 
that the compromised key stream can be extended by using the salt -- and so 
no protection is afforded by it. Oops!

NIST has recently taken an interest in the "key wrap" issue -- and the 
security problems of RFC 2548. So, assuming that we can get enough 
cryptographic help in preparing new attributes, then perhaps a standard set 
of RADIUS keying attributes will be included in RFC 2869bis.

How is master session key generated? 
It's unique for every EAP method. 

In many methods the "master key" is not directly accessible. Examples: TLS 
(RFC 2246), GSS-API. The APIs are not available for security reasons. In any 
case, you would not want to send the master key across the wire from 
authentication server to NAS. Instead, the Master Session key is derived via a 
one-way function from the master key. That way, the NAS cannot 
impersonate the authentication server -- because it doesn't possess the 
master key. In other words, there is cryptographic separation between 
'fast reconnect' authentication and subsequent keys used for 
encryption and authentication of data. This is what you want. 

Pitfalls for the unwary

Arbitrary AAA EAP key attributes -- the attributes define the keying 
primitives between the EAP method and the EAP layer, so a standard way of 
doing this is needed. Every vendor can't create their own keying 
   The NAS expects an MSK, *not* session key!
   Sending a session key encourages ciphersuite-specific EAP methods - bad 

Improper key hierarchies
   Key hierarchies that loop
   Key hierarchies that don't match the attributes sent to the NAS

Insufficient entropy
   IEEE 802.11i assumes a 256-bit PMK.  This was an issue for EAP GSS -- the 
PMK entropy is dependent on the GSS-API method negotiated. GSS_WRAP() may 
not generate the required entropy in all cases. 

Lack of nonce exchanges
   The TLS and IKE key derivation formulas both include client and server 
nonces. This ensures that the master session key will not repeat, even of 
the master key does. It works even if one side of the exchange cannot 
easily generate much randomness, as is the case in access points which may 
only boot with minimal entropy. 

   Note that 802.11i now includes a nonce exchange in its "four way 
handshake" -- so that if a method is *only* used with 802.11i then it need 
not include a nonce exchange. Is this a wise assumption to make? 
Probably not -- what if you want to reuse the method with another link 
layer without a four way handshake. In general it is best if EAP methods are 
media agnostic. So put in the nonce exchange! This was missing in EAP SRP, as 
well as EAP GSS, for example. 


Secure key derivation is important. EAP keys are used to "bind" 
authentication to subsequent link layer data encryption and 
authentication, and even other methods and tunnels (binding problem). 

Based on reading EAP methods, EAP key derivation concepts are not well 
understood. Have to read too many documents to understand how it works. 

Existing methods show large variation in practices -- and a 
signficant number of weaknesses. 

The Goal of the EAP Keying Framework document is to make things 

Status of the draft

Still an individual submission. Needs significant additions to be ready is a 
WG work item:

Section on EAP keying primitives (or does this belong in the state 
machine doc?)
Reference to key attribute RFCs (RFC 2548, Diameter EAP, new RADIUS key 
attributes draft?)
Section summarizing master session key derivation behavior of existing 
methods (e.g. EAP TLS). 
Section on example key hierarchies. 
"Key lifecycle" -- Better overview on how keys are generated, 
transported and used.   (see below). 

EAP security claims - Glen Zorn

The idea of this draft is to allow EAP method specifications to 
describe the security claims they are making in a standard way -- so that 
users requiring capabilities can match their requirements to the method 

To accomplish this, we will need to define security claims within RFC 
2284bis (and possibly within IEEE 802.11i), and then use the same terms, 
with the same meanings, in EAP method specifications. Proof of claims is 
encouraged (preferrably in an Appendix). 

Comment: This seems like a reasonable idea. Could make things clearer. 

Method presentations

EAP GSS - Bernard Aboba
Intended track: Experimental

Goal was integrated network/Kerberos login. Depends on IAKERB GSS-API 
mechanism.  It was developed for IEEE 802 and PPP media primarily. 
Kerberos user tickets are vulnerable to dictionary attack on wireless 
networks. Machine authentication is better because keys are random 
quantities -- harder to attack. But with keys based on passwords, 
Kerberos AS_REQ (with pre-auth data) and AS_REP are vulnerable. 
Attacks analyzed by Thomas Wu. 

Another problem was that master secrets are not available via a GSS-API 
call (this is a security vulnerability). So GSS_WRAP() has to be used to 
generate them -- but the entropy varies based on the GSS-API method that is 
negotiated. So we cannot say for certain that the IEEE 802.11i needs (256 
bit PMK with at least 128-bits of entropy) has been met. 

Security claims:

Mechanism: passwords or certs typically, but could be anything 
supported by GSS-API
Mutual auth: Typically, yes. 
Key derivation: Typically, yes -- via GSS_WRAP(). 
Key size: depends on GSS-API method. 
Key hierarchy: Description of MSK generation included (and nonces added)
Dictionary attack resistance: If used with Kerberos PKINIT, but not with 
Kerb V
Identity hiding: Depends on GSS-API method, but generally not. 
   Method negotiation:                  Yes (SPNEGO)
   Link layer Ciphersuite negotiation:   No 
   Success/Failure indication:           No
   Method packets:                      Yes
Fast reconnect:                         Yes (but only if NASen share keys) 


   Where does the exchange end? With AS_REQ/AS_REP? With 
TGT_REQ/TGT_REP? With AP_REQ/AP_REP? Was decided to do last exchange 
outside EAP (in EAPOL-Key frames)

   Security: Method was removed from IEEE 802.11i because (among other 
things) it was vulnerable to dictionary attack. 

   Keying: "Pseudo Master Key" had to be derived from GSS_WRAP () calls, 
since master key isn't available directly. Pseudo Master Key was then fed 
into the EAP TLS MSK generation formula, along with nonces added to the 
protocol. So had to adapt the existing EAP TLS formula, not entirely 
natural for GSS-API. 

   EAP architecture: Method is difficult to fit within the EAP 
architecture since it transports keys from Peer to NAS (outside of EAP), and 
therefore requires the NAS to be EAP-aware. The NAS can talk to KDC 
either directly (NAS terminates EAP GSS and talks to KDC directly) or 
through the AAA Server (NAS passes through EAP GSS and lets AAA server talk 
to KDC). 

EAP AKA - Henry Haverinen
Intended track: Informational

EAP AKA is the USIM authentication solution for 3GPP WLAN 
internetworking (TS 23.234). Deadline for this is June 2003. 

Intended media is 802.11 and other wireless LAN standards.  

EAP AKA Security claims

Mechanism: symmetric secret keys distributed on UICC cards with USIM 
application, UMTS f1…f5 algorithms
Mutual authentication
Key derivation supported
128-bit keys
Key hierarchy described in the draft
Not vulnerable to dictionary attacks
Identity privacy with pseudonyms, identity string integrity protected
Because EAP AKA is not a tunnelling method, it does not protect EAP 
method negotiation, EAP notifications, EAP success, EAP failure
No ciphersuite negotiation
EAP AKA packets integrity protected, some parts are encrypted
Fast reconnect supported (called “re-authentication” in EAP AKA)

EAP SIM - Henry Haverinen
Intended track: Informational

The GSM SIM authentication mechanism for 3GPP WLAN (TS 23.234). 
for this is June 2003. 

Intended media is 802.11 and other wireless LAN standards.  

EAP SIM Security Claims

IPR Claim has been filed by Nokia with IETF secretariat, see IPR web page. 

Mechanism: symmetric secret keys distributed on GSM SIM cards, GSM A3 and A8 
Mutual authentication
Key derivation supported
128-bit keys
If the same SIM is used in GSM and GPRS, then effective key length may be 
reduced to 64 bits with attacks over GSM/GPRS
Key hierarchy described in the draft
Not vulnerable to dictionary attacks
Identity privacy with pseudonyms, identity string integrity protected
Because EAP SIM is not a tunnelling method, it does not protect EAP 
method negotiation, EAP notifications, EAP success, EAP failure
No ciphersuite negotiation
EAP SIM packets integrity protected, some parts are encrypted
Fast reconnect supported (called “re-authentication” in EAP SIM)

EAP Smartcard - Pascal Urien

Draft describes APIs for EAP authentication on a smartcard. This 
includes Get-Next-Identity, Set-Identity, 
Get-Pairwise-Master-Key (PMK). 

Smartcards now have EAP TLS, SIM built-in. So EAP is terminated on the 
Functionality can be extended using the API. 



AP - State issues
EAP Issues
Problem with Compound Authentication Methods
Eap STate machinE dEsign teaM (ESTEEM)
EAP support in smartcards
EAP Keying Problem
The Insecurity of Tunnelled Authentication Protocols
Specifying Security Claims for EAP Authentication Types
EAP State Machine
State Machines for EAP Peer and Authenticator