Issue 200: Endpoint verification
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date first submitted: Nov 17, 2003
Reference: http://mail.frascone.net/pipermail/public/eap/2003-November/001845.html
Document: RFC2284bis-06
Comment type: T
Priority: S
Section: 5, 7
Rationale/Explanation of issue:

The Security Claims section doesn't include a claim for
a solution to the "Lying NAS" problem, and this attack
is not included in the threat model either.

Add to sections 5.1, 5.2, 5.3.1, 5.3.2, 5.4, 5.5, 5.6 the following
security claim:

Endpoint verification: No

Add to Section 7.1:

[10] An attacker acting as an authenticator may provide
inconsistent information to the EAP peer
and server. This includes impersonating another
authenticator, or communicating incorrect information
via out-of-band mechanisms such as via
a AAA or lower layer protocol.

Add Section 7.15:

7.15 Endpoint Verification

It is possible for a compromised or poorly implemented EAP
authenticator to communicate inconsistent information to
the EAP peer and server. This may enable an authenticator
to impersonate another authenticator or communicate
incorrect information via out-of-band mechanisms such as via a
AAA or lower layer protocol.

Where EAP is used in passthrough mode, the EAP peer typically
does not verify the identity of the authenticator, it
only verifies that the authenticator is trusted by the EAP
server. This lack of endpoint verification creates a potential
security vulnerability.

While [RFC3579] Section 4.3.7 describes how an EAP authenticator
providing incorrect information to a AAA server
(such as forged NAS-Identifier, NAS-IP-Address or NAS-IPv6-Address
attributes) can be detected, it is possible for the authenticator to provide
correct information to the AAA server while communicating
incorrect information to the EAP peer via a lower layer
protocol.

For example, it is possible for an authenticator to utilize another
authenticator's Called-Station-Id in communicating with
the EAP peer via a lower layer protocol, or for the authenticator to provide an incorrect
peer Calling-Station-Id to the AAA server via the AAA protocol.

In order to address this vulnerability, EAP methods may support
a protected exchange of endpoint identifiers, including
(but not limited to): Called-Station-Id [RFC2865][RFC3580], Calling-Station-Id
[RFC2865][RFC3580], NAS-Identifier, [RFC2865], NAS-IP-Address [RFC2865], and
NAS-IPv6-Address [RFC3162].

Using such an exchange, the EAP peer and server can match parameters
provided by the authenticator (such as endpoint identifiers) against those exchanged
within the EAP method. Where discrepancies exist, these SHOULD be logged.

Add to non-normative references:

[RFC2865] Rigney, C., Willens, S., Rubens, A. and W. Simpson,
"Remote Authentication Dial In User Service (RADIUS)",
RFC 2865, June 2000.

[RFC3162] Aboba, B., Zorn, G. and D. Mitton, "RADIUS and IP6",
RFC 3162, August 2001.

[RFC3580] Congdon, P., Aboba, B., Smith, A., Zorn, G. and J.
Roese, "IEEE 802.1X Remote Authentication Dial In User
Service (RADIUS) Usage Guidelines", RFC 3580,
September 2003.

Add the following definition to section 7.2.1:

Endpoint verification
The verification within an EAP method of endpoint
identifiers communicated out of band, such as via
a AAA or lower layer protocol.

[Joe Salowey] I'm a little worried about the usage of EAP server and AAA server
terminology.  I don't think that these two entities are the same thing.
An EAP-Server is typically embedded within the AAA server, but I don't
think that this has to be the case.  In particular the EAP-Server knows
how to execute EAP mechanisms, but it knows little or nothing about the
underlying application using EAP.  The underlying application is the
domain of the AAA server.

Also if discrepancies exist in the data provided to the AAA may it be
appropriate to take action beyond logging?

Replace:

"allowing the EAP server to match it against the
equivalent information provided by the authenticator via the
AAA protocol."

With

"allowing the EAP server to provide this information to the AAA
server to match it against the equivalent information provided
by the authenticator via the AAA protocol."

[Bernard Aboba] Here are the proposed fixes:

Add to sections 5.1, 5.2, 5.3.1, 5.3.2, 5.4, 5.5, 5.6 the following
security claim:

Channel Binding: No

Add the following definition to section 7.2.1:

Channel binding
The communication within an EAP method of integrity-protected channel properties
such as endpoint identifiers which can be compared to values communicated via out
of band mechanisms (such as via a AAA or lower layer protocol).

Add to Section 7.1:

[10] An attacker acting as an authenticator may provide incorrect
information to the EAP peer and/or server via out-of-band mechanisms
(such as via a AAA or lower layer protocol). This includes impersonating
another authenticator, or providing inconsistent information to the peer
and EAP server.

Add Section 7.15:

7.15 Channel binding

It is possible for a compromised or poorly implemented EAP
authenticator to communicate incorrect information to the EAP
peer and/or server. This may enable an authenticator
to impersonate another authenticator or communicate
incorrect information via out-of-band mechanisms (such as via a
AAA or lower layer protocol).

Where EAP is used in pass-through mode, the EAP peer typically
does not verify the identity of the pass-through authenticator, it
only verifies that the pass-through authenticator is trusted by the EAP
server. This creates a potential security vulnerability.

[RFC3579] Section 4.3.7 describes how an EAP pass-through authenticator
acting as a AAA client can be detected if it attempts to impersonate
another authenticator (such by sending incorrect NAS-Identifier [RFC2865],
NAS-IP-Address [RFC2865] or NAS-IPv6-Address [RFC3162] attributes
via the AAA protocol). However, it is possible for a pass-through
authenticator acting as a AAA client to provide correct information to
the AAA server while communicating misleading information to the EAP peer
via a lower layer protocol.

For example, it is possible for a compromised authenticator to utilize
another authenticator's Called-Station-Id or NAS-Identifier in
communicating with the EAP peer via a lower layer protocol, or for a
pass-through authenticator acting as a AAA client to provide an incorrect
peer Calling-Station-Id [RFC2865] [RFC3580] to the AAA server via the AAA protocol.


In order to address this vulnerability, EAP methods may support
a protected exchange of channel properties such as endpoint identifiers,
including (but not limited to): Called-Station-Id [RFC2865][RFC3580],
Calling-Station-Id [RFC2865][RFC3580], NAS-Identifier, [RFC2865],
NAS-IP-Address [RFC2865], and NAS-IPv6-Address [RFC3162].

Using such a protected exchange, it is possible to match the channel
properties provided by the authenticator via out-of-band mechanisms
against those exchanged within the EAP method. Where discrepancies are found,
these SHOULD be logged; additional actions MAY also be taken, such as
denying access.

Add to non-normative references:

[RFC2865] Rigney, C., Willens, S., Rubens, A. and W. Simpson,
"Remote Authentication Dial In User Service (RADIUS)",
RFC 2865, June 2000.

[RFC3162] Aboba, B., Zorn, G. and D. Mitton, "RADIUS and IP6",
RFC 3162, August 2001.

[RFC3580] Congdon, P., Aboba, B., Smith, A., Zorn, G. and J.
Roese, "IEEE 802.1X Remote Authentication Dial In User
Service (RADIUS) Usage Guidelines", RFC 3580,
September 2003.

Proposed resolution: Accept

Issue 201: Some NITs
Submitter name: Jose Puthenkulam
Submitter email address: jose.p.puthenkulam@intel.com
Date first submitted: Nov 17, 2003
Reference: http://mail.frascone.net/pipermail/public/eap/2003-November/001814.html
Document: RFC2284bis-06
Comment type: E
Priority: 1
Section: 7.2, 7.4
Rationale/Explanation of issue:

In section 7.2 [c]

Replace "acknowledged result indications" with "protected result
indications". It makes more sense to have the EAP method indicate its
result in a protected manner than making sure the result is
acknowledged.

Also for section 7.4 Man-in-the-middle attacks would it not be
appropriate to add an informative reference to the EAP Binding Draft and
the Nokia Mitm paper.

[Jose Puthenkulam] The resolution and changes look good.

[Jari Arkko]

Ok. The term is defined in 7.2.1, and the text already requires protection,
I agree that the name "protected result indications" would be appropriate.
Need to change the name then in both 7.2 and 7.2.1 as well as in a few
other places in the document...

> Also for section 7.4 Man-in-the-middle attacks would it not be
> appropriate to add an informative reference to the EAP Binding Draft and
> the Nokia Mitm paper.

Yes, this would be appropriate.
 

[BA] Proposed resolution:

Replace "acknowledged result indications" with "protected result indications" throughout the document.

In Section 7.4, change:

Where EAP is tunneled within another protocol that omits peer authentication, there exists a potential vulnerability to man-in-the-middle attack.

To:

Where EAP is tunneled within another protocol that omits peer authentication, there exists a potential vulnerability to man-in-the-middle attack.   For details, see [BINDING] and [MiTM].

Change:

[b] Requiring cryptographic binding between the EAP tunneling protocol and the tunneled EAP methods. Where cryptographic binding is supported, a mechanism is also needed to protect against downgrade attacks that would bypass it.

To:

[b] Requiring cryptographic binding between the EAP tunneling protocol and the tunneled EAP methods. Where cryptographic binding is supported, a mechanism is also needed to protect against downgrade attacks that would bypass it.   For further details on cryptographic binding, see [BINDING].

Add the following informative references:

[BINDING] Puthenkulam, J., et al., "The Compound Authentication Binding Problem", draft-puthenkulam-eap-binding-04.txt,
Internet draft (work in progress), October 2003.

[MITM]  N. Asokan, Valtteri Niemi and Kaisa Nyberg, Man-in-the-middle in tunneled authentication protocols,
Technical Report 2002/163, IACR ePrint archive, October 2002. Available from http://eprint.iacr.org/2002/163

Proposed resolution: Accept

Issue 202: Peer-to-peer cleanup
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date first submitted: Nov 19, 2003
Reference:
Document: RFC2284bis-06
Comment type: E
Priority: 1
Section: 2.2, 2.3, 2.4, 7.2.1
Rationale/Explanation of issue:

This is an issue to cleanup wording on peer-to-peer topics.  This responds to issues raised by Jari Arkko relating to the term "peer listener" and "authenticator listener".  On rethinking the terminology it appears to me that the terms "peer layer" and "authenticator layer" serve just as well.

In Section 2.2, change:

"Within EAP, the Code field functions much like a protocol number in IP. It is assumed that the EAP layer demultiplexes incoming EAP packets according to the Code field. Received EAP packets with Code=1 (Request), 3 (Success) and 4 (Failure) are delivered by the EAP layer to the EAP peer listener, if present. EAP packets with Code=2 (Response) are delivered to the EAP authenticator listener, if present.

Within EAP, the Type field functions much like a port number in UDP or TCP. It is assumed that the EAP peer and authenticator layers demultiplex incoming EAP packets according to their Type, and deliver them only to the EAP method corresponding to that Type. An EAP method implementation on a host may register to receive packets from the peer or authenticator listener, or both."

To:

"Within EAP, the Code field functions much like a protocol number in IP. It is assumed that the EAP layer demultiplexes incoming EAP packets according to the Code field. Received EAP packets with Code=1 (Request), 3 (Success) and 4 (Failure) are delivered by the EAP layer to the EAP peer layer, if implemented. EAP packets with Code=2 (Response) are delivered to the EAP authenticator layer, if implemented.

Within EAP, the Type field functions much like a port number in UDP or TCP. It is assumed that the EAP peer and authenticator layers demultiplex incoming EAP packets according to their Type, and deliver them only to the EAP method corresponding to that Type. An EAP method implementation on a host may register to receive packets from the peer or authenticator layers, or both, depending on which role(s) it supports."

In Section 2.3, change:

"When operating as a "pass-through authenticator", an authenticator performs checks on the Code, Identifier and Length fields as described in Section 4.1. It forwards EAP packets received from the peer and destined to its authenticator listener to the backend authentication server; packets received from the backend authentication server destined to the peer are forwarded to it.

The forwarding decision is based on examination of the Code, Identifier and Length fields. Since a "pass-through authenticator" only forwards to the backend authentication server EAP packets received from the peer and destined for its authenticator listener, pass-through authenticator implementations MUST be capable of forwarding to the backend authentication server EAP packet received from the peer with Code=2 (Response). They also MUST be capable of receiving EAP packets from the backend authentication server and forwarding EAP packets of Code=1 (Request), Code=3 (Success), and Code=4 (Failure) to the peer.

Since pass-through authenticators rely on a backend authenticator server to implement methods, the EAP method layer header fields (Type, Type-Data) are not examined as part of the forwarding decision, except where the authenticator implements one or more authentication methods locally. In this case, the authenticator may examine the Type field to determine whether to act on the packet itself or forward it. Compliant pass-through authenticator implementations MUST be default forward EAP packets of any Type. The forwarding model is illustrated in Figure 2.

Since EAP packets received with Code=1 (Request), Code=3 (Success), and Code=4 (Failure) are demultiplexed by the EAP layer and delivered to the peer listener, unless a host implements an EAP peer listener, these packets will be silently discarded. The behavior of a "pass-through peer" is undefined within this specification, and is unsupported by AAA protocols such as RADIUS[RFC3579] and Diameter[DIAM-EAP]. "

To:

"When operating as a "pass-through authenticator", an authenticator performs checks on the Code, Identifier and Length fields as described in Section 4.1. It forwards EAP packets received from the peer and destined to its authenticator layer to the backend authentication server; packets received from the backend authentication server destined to the peer are forwarded to it.

A host receiving an EAP packet may only do one of three things with it: act on it, drop it, or forward it.  The forwarding decision is typically based only on examination of the Code, Identifier and Length fields.  A pass-through authenticator implementation MUST be capable of forwarding to the backend authentication server EAP packets received from the peer with Code=2 (Response). It also MUST be capable of receiving EAP packets from the backend authentication server and forwarding EAP packets of Code=1 (Request), Code=3 (Success), and Code=4 (Failure) to the peer.

Unless the authenticator implements one or more authentication methods locally which support the authenticator role, the EAP method layer header fields (Type, Type-Data) are not examined as part of the forwarding decision.  Where the authenticator supports local authentication methods, it MAY examine the Type field to determine whether to act on the packet itself or forward it. Compliant pass-through authenticator implementations MUST by default forward EAP packets of any Type.

EAP packets received with Code=1 (Request), Code=3 (Success), and Code=4 (Failure) are demultiplexed by the EAP layer and delivered to the peer layer.  Therefore unless a host implements an EAP peer layer, these packets will be silently discarded.  Similarly, EAP packets received with Code=2 (Response) are demultiplexed by the EAP layer and delivered to the authenticator layer. Therefore unless a host implements an EAP authenticator layer, these packets will be silently discarded.  The behavior of a "pass-through peer" is undefined within this specification, and is unsupported by AAA protocols such as RADIUS[RFC3579] and Diameter[DIAM-EAP].

The forwarding model is illustrated in Figure 2."

In Section 2.4, change:

"Since EAP is a peer-to-peer protocol, an independent and simultaneous authentication may take place in the reverse direction (depending on the capabilities of the lower layer). Both peers may act as authenticators and authenticatees at the same time; in this case it is necessary to both peers to implement both EAP authenticator and peer listeners. In addition, the EAP method implementations on both peers must support both authenticator and peer functionality.

Although EAP supports peer-to-peer operation, some EAP implementations, methods, AAA protocols and link layers may not support this. For example, EAP-TLS[RFC2716] is a client-server protocol requiring a different certificate profile for the client and server. This implies that a host supporting both the EAP-TLS peer and authenticator roles would need to implement both peer and authenticator listeners; would need to support both the peer and authenticator roles in the EAP-TLS implementation; would need to be provisioned with two distinct certificates, one appropriate for each role.

Some EAP methods may support asymmetric authentication, with one type
of credential being required for the peer and another type for the
authenticator. Hosts supporting peer-to-peer operation with such a
method would need to be provisioned with both types of credentials.
"

To:

"Since EAP is a peer-to-peer protocol, an independent and simultaneous authentication may take place in the reverse direction (depending on the capabilities of the lower layer). Both peers may act as authenticators and authenticatees at the same time, in which case it is necessary for both peers to implement EAP authenticator and peer layers. In addition, the EAP method implementations on both peers must support both authenticator and peer functionality.

Although EAP supports peer-to-peer operation, some EAP implementations, methods, AAA protocols and link layers may not support this.  Some EAP methods may support asymmetric authentication, with one type
of credential being required for the peer and another type for the
authenticator. Hosts supporting peer-to-peer operation with such a
method would need to be provisioned with both types of credentials.

For example, EAP-TLS[RFC2716] is a client-server protocol with a different certificate profile for the client and server. This implies that a host supporting peer-to-peer authentication with EAP-TLS would need to implement both the EAP peer and authenticator layers; support both peer and authenticator roles in the EAP-TLS implementation;  and provision two distinct certificates, one appropriate for each role."

Proposed resolution: Accept

Issue 203: Peer SM Comments
Submitter name: Joe Salowey
Submitter email address: jsalowey@cisco.com
Date first submitted: 11/20/2003
Reference:  http://mail.frascone.net/pipermail/public/eap/2003-November/001869.html
Document:  State Machine
Comment type: E/T
Priority: 1
Section: 4.x
Rationale/Explanation of issue:

1. portEnabled

portEnabled seems very .1x/PPP specific.  EAP is being used in cases
such as IKE and PANA where this concept may a bit more abstract.
Perhaps we can change the name of the variable and/or expand its
definition to include other cases. 

Suggestion:
Perhaps "indicates that a lower layer communcation channel has been
established".

[npetroni] this is fine for me. the name is not really of importance to me
so I would just as soon leave it the same. If others think a name change
is necessary it's fine. I like the definition change.

2. EAPTunneled

The behavior inside tunnels needs to be defined by the tunnel as there
are several ways you can handle EAP within a tunnel.  I think we decided
to remove this variable at the meeting, but I want to mae sure we track
it.  In PEAPv2 we started out with a behavior similar to what is
described in the state machine,  but in order to make sure the policy on
the peer and authenticator stayed in sync we introduced itermediate
result indicators which I think change the state machine a little.

Suggestion:
Remove variable.  We could explore this in an apppendix or a separate
document.

[npetroni] previously disussed. I agree it should be removed.

3. Interface to method

The interface to the method seems too complicated. 

First I don't think that intCheck should be a different process.
Integrity checking is done as part of the method processing.  Also
methods aren't required to ingore packets, some methods with ignore some
problems and return errors on others.  I think this behavior should be
incorporated into m.process.

[npetroni] intCheck is needed because SOMETIMES a method will decide not
to use the packet at all. in this case, intCheck is the way the method
tells the SM it will not be using that packet. Methods with other ways of
dealing with this will just not set intCheck to be true.

On a separate but related note it seems that the method state and
decision is very complex. I don't really see the need for the
independent methodState and decision variables.  M.process() should
return one of serverl possible results: IGNORE, CONTINUE, COND_SUCCESS,
SUCCESS, FAILURE.  MethodState should be able to take on CONTINUE,
COND_SUCCESS, SUCCESS, FAILURE.  I don't think a separate decision
variable is necessary.

[npetroni] This is meant to show that a method really has its own state
machine and that these states are separate from the final decision. I
think it provides nice way of separating the two, but I am willing to
discuss this alternative notation.

Suggestion

In method:

methodResult = m.process(eapRespData)
If (methodResult != IGNORE)
{
   methodState = methodResult
   allowNotifications = TRUE|FALSE
   eapRespData = m.buildResponse(reqID)
   if (methodState == SUCCESS || methodState == COND_SUCCESS)
   {
eapKeyData = NONE|m.getKey()
   }
}

Transition to discard: (methodResult == IGNORE)
Combine methodState and decision transition conditions

4. Idle timer

It seems that there is a problem with the idle timer.  It would be
possible for the peer to never time out if it keeps on receiving packets
that it discards.  This is not so good. 

[npetroni] hmm, that seems like a trivial DoS, no? Send enough bad packets
to the Peer and it goes away for a while?

Suggestion:

Perhaps the client timeout should be set outside the IDLE state in the
INITIALIZE state and in the METHOD or SEND_RESPONSE state.

5.  rxSuccess and rxFailure

Shouldn't rxSuccess and rxFailure check to see if (reqId == lastReqID)?

[npetroni] probably so. I think this should be added.

[Joe Salowey] Int check should be internal to the method.

[Nick Petroni] intCheck IS set by an internal method, m.integrityCheck().

[Joe Salowey] It should be possible for the method to signal that a packet should be ignored.  I think
breaking it out like this is misleading. 

[npetroni] I would say it IS possible for the method to signal that a
packet should be ignored just by setting intCheck. Perhaps it's the name
you just don't like? I don't see how this is any different from how it
works now

[Joe Salowey] I agree that a method has its own state machine, however I think
exposing it here creates some problems.  First it complicates the EAP
state machine and second the internal state machine of the method will
vary from method to method. 

[npetroni] This is not exposing the ACTUAL method state machine (IMHO),
just a minimal set of signals that need to be exported. There could be
more.

[Joe Salowey] I think it would be best to make the method
opaque as possible and use the minimal interface between method and EAP
state machines.

[npetroni] Perhaps the notation is confusing to some, I don't think it is
overly complex. Author's bias perhaps? I am open to changing it, but I
guess I still don't understand the argument completely. I would love to
get additional input- any consensus from the group would be great.
 

>  It seems that there is a problem with the idle timer.  It would be
> possible for the peer to never time out if it keeps on receiving
> packets that it discards.  This is not so good.
> [npetroni] hmm, that seems like a trivial DoS, no? Send
> enough bad packets to the Peer and it goes away for a while?
[npetroni] I guess I am responding to my own comment here, but I went back
and read your original thoughts on this and I think I see your point now.
I misread where you thought the timer should be set. I think there could
be a good argument for moving the idleWhile setting to INITIALIZE and
SEND_RESPONE. I don't think it should be in METHOD just for abstraction.
Besides, you would have to do it conditionally in METHOD anyway. Are
there other opinions on this? The problem comes down to bad packets
resetting the client timeout such that the peer can still go
ClientTimeout without receiving a good packet and yet not timeout. I
guess the question is does the timeout go between GOOD packets or just
packets? I see no reason why this is explicitly a peer problem. Wouldn't
the authenticator work the same?

Thanks for the feedback- anything that helps make the document more
understandable (and more correct :) ) is a good thing.
 

[Yoshi Ohba] On the other hand, the other role of the EAP state machines
document is to help implementers understand how RFC2284bis
works.  I think describing the peer state machine by using
the two variables (i.e., methodState and decision) helps us
understand Implementation Note in Section 4.2 of RFC2284bis
pretty well.

[Joe Salowey] I find it more confusing than enlightening.  I think the two
variables introduce a lot of complexity.  If you want to describe the
internal workings of the EAP-Method you should have a different state
machine for that. 

[Yoshi Ohba]

> So, I would suggest keeping the currnet state machine as it
> is (i.e., use methodState and decision variables), but adding
> the following statement in "Implementation Consideration" section:
>
>   "In the peer state machine, implementations may integrate
>   methodState and decision variables into a single variable that
>   may be obtained as a return value of m.process() method procedure."
>
[Joe Salowey] I would rather see the EAP state machine simple and have text
describe how a method may implement its internal state machine.  I also
think m.intCheck should be integrated into m.process() as well. 

[Yoshi Ohba]

> I agree that in both peer and authenticator state machines it
> is not good to reset the timer value when the received
> message is discarded.
>
> On the other hand, the peer idle timer should be set only
> once in INITIALIZE state and should not be reset anywhere
> else.  This is because (correct me if I am wrong) the idle
> timer for authenticator and the idle timer for peer are used
> for different purposes.  The former timer is message
> retranmission timer and the latter timer is authentication
> session timeout timer.
>

[Joe Salowey] I think I agree, I haven't had a chance to take a close look at
the authenticator side of the state machine, but I think you are
correct.

Proposed resolution: Discuss

Issue 204: Peer-to-peer operation
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date first submitted: 11/24/2003
Reference:  https://mail.windows.microsoft.com/exchweb/bin/redir.asp?URL=http://www.ieee802.org/1/files/private/x-REV-drafts/d7/802-1X-rev-d7-1-dis.pdf (See disposition of comment 15)
Reference: http://mail.frascone.net/pipermail/public/eap/2003-November/001896.html
Document: SM-01
Comment type: T
Priority: S
Section: Various
Rationale/Explanation of issue:

As noted in the IEEE 802.1XD7.1 ballot resolution, comment 15, the current
EAP SMs do not fully support peer-to-peer operation.

The current EAP Peer SM does not provide a mechanism for the EAP method to
signal to EAP and the lower layer that mutual authentication has been
achieved.

In addition, the EAP authenticator SM does not provide a mechanism for the
EAP layer to indicate to the lower layer that a protected result
indication has been received from the peer, indicating that the peer has
authenticated the authenticator.

Similarly, the EAP Peer SM does not provide a mechanism for the EAP layer
to indicate to the lower layer that a protected result indication has been
received from the authenticator, indicating that the Authenticator has
authenticated the peer.

As a result of these missing indications, it is not possible for EAP to
provide for mutual opening of the 802.1X controlled ports for use in
peer-to-peer operation, even where a method providing for protected result
indications is in use.

[Nick Petroni] > As noted in the IEEE 802.1XD7.1 ballot resolution, comment 15, the current
> EAP SMs do not fully support peer-to-peer operation.

I am not completely convinced of this. It seems to me what you are asking
for here is for EAP to provide two signals indicating the success of
authentication in each direction. This is not how I read the model of
2284bis. I would argue that the use of a method providing mutual
authentication still requires EAP to provide only one answer to
the conversation. It is possible to require mutual authentication before
Success and even to guarantee that answer with protection, but I do not
see a reason for the lower layer to get an explicit "mutual
authentication" signal. If mutual authentication is required and it was
not obtained then success (the signal, not the packet) will never follow
for a properly configured peer.

> The current EAP Peer SM does not provide a mechanism for the EAP method to
> signal to EAP and the lower layer that mutual authentication has been
> achieved.
I disagree. If you require mutual authentication then EAP Success is this
indication.

> In addition, the EAP authenticator SM does not provide a mechanism for the
> EAP layer to indicate to the lower layer that a protected result
> indication has been received from the peer, indicating that the peer has
> authenticated the authenticator.
hmm, this one is slightly more interesting, but I have no idea how the
backend would ever alert the passthrough of this. Still, I think it is
possible to say that if mutual authentication is required and not
achieved then the decision will be fail.

> Similarly, the EAP Peer SM does not provide a mechanism for the EAP layer
> to indicate to the lower layer that a protected result indication has been
> received from the authenticator, indicating that the Authenticator has
> authenticated the peer.
I disagree with  this too. 2284bis states that the only thing which can
follow a protected success/failure is an unprotected version of the same.
The EAP Success indication is therefore sufficient to indicated succes. If
a protected indication is required the peer policy should reflect this and
the SUCCESS state will not be reached until it comes.

I disagree that peer-to-peer is not supported. I would agree that the
specific interface is not provided for two signals, but I would like to
understand better why those signals are needed. Also, a suggestion for
where these signals would go and who sets them might help me understand
this issue better.

[Bernard Aboba]

> > As noted in the IEEE 802.1XD7.1 ballot resolution, comment 15, the current
> > EAP SMs do not fully support peer-to-peer operation.
>
> I am not completely convinced of this. It seems to me what you are asking
> for here is for EAP to provide two signals indicating the success of
> authentication in each direction. This is not how I read the model of
> 2284bis. I would argue that the use of a method providing mutual
> authentication still requires EAP to provide only one answer to
> the conversation. It is possible to require mutual authentication before
> Success and even to guarantee that answer with protection, but I do not
> see a reason for the lower layer to get an explicit "mutual
> authentication" signal. If mutual authentication is required and it was
> not obtained then success (the signal, not the packet) will never follow
> for a properly configured peer.

That makes sense to me, because the peer would not accept the access
offered by the authenticator otherwise.  However, the response to IEEE
802.1X D7.1 comment 15 suggests that something further is needed. I'm not clear
what this is, but I'm suggesting that we need to be clear on why this is
not required (and note this explicitly in the SM document).

> > The current EAP Peer SM does not provide a mechanism for the EAP method to
> > signal to EAP and the lower layer that mutual authentication has been
> > achieved.
> I disagree. If you require mutual authentication then EAP Success is this
> indication.

The resolution of IEEE 802.1X D7.l comment 15 states explicitly that this
indication is insufficient for peer-to-peer operation, potentially because
of the issue with protected result indications below.

> > In addition, the EAP authenticator SM does not provide a mechanism for the
> > EAP layer to indicate to the lower layer that a protected result
> > indication has been received from the peer, indicating that the peer has
> > authenticated the authenticator.
> hmm, this one is slightly more interesting, but I have no idea how the
> backend would ever alert the passthrough of this. Still, I think it is
> possible to say that if mutual authentication is required and not
> achieved then the decision will be fail.

I think the issue is the following:

a. The authenticator figures out whether it wants to offer access to the
peer or not.  In the case of pass-through this is communicated in the
Access-Accept.

b. The authenticator communicates it desire to offer access to the peer.
This occurs via a protected result indication.

c. The peer figures out whether it wants to accept that access. This is
communicated to the authenticator via a protected result indication
and communicated to the peer lower layer via eapSuccess.

c. This creates a situation where the peer has full knowledge of each
side's decision (peer knows the authenticator is offering access, and that
it wants to use the access), but the authenticator may not (authenticator
knows that it wants to offer access, but in the case of pass-through
operation it may not know if the peer has accepted it).

To fix this, the authenticator SM could have a variable that says that
the peer has provided a protected result indication to it, indicating that
it will accept the offered access.  In terms of AAA, this
could result in a new attribute indicating "peer-to-peer auth achieved" or
something of that nature, so that another EAP authentication need not be
rerun in the opposite direction.

> I disagree that peer-to-peer is not supported. I would agree that the
> specific interface is not provided for two signals, but I would like to
> understand better why those signals are needed. Also, a suggestion for
> where these signals would go and who sets them might help me understand
> this issue better.

Have a look at the IEEE 802.1X D7.1 resolutions to comment 15.  They're
available here:

http://www.ieee802.org/1/files/private/x-REV-drafts/d7/802-1X-rev-d7-1-dis.pdf

[Nick Petroni] > I think the issue is the following:
>
> a. The authenticator figures out whether it wants to offer access to the
> peer or not.  In the case of pass-through this is communicated in the
> Access-Accept.
This does not come until the conversation is over, no? That is, all
protected messages will be finished before the Access-Accept, right?

> b. The authenticator communicates it desire to offer access to the peer.
> This occurs via a protected result indication.
yes, but this would be in an access-challenge, right? Protected success
cannot be the last message in the protocol since a response is required
from the peer even if it's just "ACK".

> c. The peer figures out whether it wants to accept that access. This is
> communicated to the authenticator via a protected result indication
> and communicated to the peer lower layer via eapSuccess.
these do not happen in the same step. the result will come as the final
EAP response, which will be communicated as an Access-request. The peer
will then wait for an unprotected success or timeout and go to SUCCESS.

> c. This creates a situation where the peer has full knowledge of each
> side's decision (peer knows the authenticator is offering access, and that
> it wants to use the access), but the authenticator may not (authenticator
> knows that it wants to offer access, but in the case of pass-through
> operation it may not know if the peer has accepted it).
not in the case you describe above where a protected response is given.
this will make it back before the Accept-success is ever sent (at least
according to my understanding of RADIUS/EAP interraction).

> To fix this, the authenticator SM could have a variable that says that
> the peer has provided a protected result indication to it, indicating that
> it will accept the offered access.  In terms of AAA, this
> could result in a new attribute indicating "peer-to-peer auth achieved" or
> something of that nature, so that another EAP authentication need not be
> rerun in the opposite direction.
I am not a AAA expert so I do not completely understand what you mean by
this, but it seems plausible that such an indication could be set in the
current system.

> Have a look at the IEEE 802.1X D7.1 resolutions to comment 15.  They're
> available here:

I have read it and did so before my last post, but I find the discussion
vague and unclear. Perhaps someone who participated in that comment
resolution can elighten me? I will re-read it in case I am just slow this morning ;)

[Nick Petroni]

> Yes. So the peer knows that it will be offered access by the
> authenticator.  I say "will be" because the pass-through authenticator
> does not know this yet, because it hasn't gotten the Access-Accept. And
> until it gets the Access-Accept it can't actually provide the access.
yes, but until it gets the Access-Accept it won't send the EAP Success
either so the peer won't try to have access. In this case all is still
well.

Do we agree there is no problem on the peer side? If so, let's turn to the
authenticator...

> Yes. The peer communicates to the backend authentication that it will
> accept the access, but the pass-through authenticator does not know this.
> I think the point of this is that as a result, it might have to rerun an
> EAP authentication in the other direction in order to be sure that it has
> been granted access to the peer.
It seems to me what you are saying is that even after recieving and
Accept-Accept, the passthrough does not know it is allowed to have access
even though it is allowed.

There are two possible solutions I see-
1. make Access-Accept mean that BOTH things are ok and that mutual auth
is known to have succeeded or
2. make Access-Accept strictly mean the Peer is to be given access, and
make some other AAA signal/message provide the other information.

If mutual auth is required, the server can tie the auth directly to the EAP
aaaEapSuccess signal. That is, both must be authenticated for
aaaEapSuccess to be true. This only works for case 1 above, as the AAA layer can't separate these two if
it is only given binary input. I believe THIS is the missing variable you
describe?

I am really having trouble with the model for why the passthrough needs
this information. when using a peer and a passthrough authenticator, it's
tough for me to see the true peer-to-peer relationship we are describing
in any real-world scenario. That being said, this does not mean we
shouldn't handle the situation. My understanding of all passthrough
implemenations is that if there was to be mutual authentication, but the
peer failed to authenticate the authenticator the peer will just go away
(or try again) anyway.

Additionally, I understand the argument that we want
passthrough and standalone to have the same semantics, but I think even
in the peer and standalone statemachines it is policy that is tying
together the two authentication decisions into a single signal. The method
should be set to only succeed in the case of mutual authentication if
mutual auth is required.

> Yes, I also found it vague (I wasn't at the IEEE 802 meeting, since it
> conflicted with IETF).  Perhaps someone who was there can enlighten us
> both :)
I look forward to it :).

My current position is that I don't see why you need two answers. If you
know you are using a method with mutual authentication, then you should be
able to tie the outcome of that method to a two-way relationship.

comments welcome.

nick

[Nick Petroni]

> [3] Support for protected result indications.  When an EAP method
> supporting mutual authentiation and protected result indication is
> in use,  the EAP peer and server will typically be aware of each other's
> access decision, as well as their own.  For example, the EAP server will
> indicate to the peer whether the peer has successfully authenticated to
> it, and the peer will indicate to the EAP server whether the server has
> successfully authenticated to the peer. As a result, the EAP peer and
> server can determine whether an authentication is required in the
> opposite direction.  However, where the authenticator operates as a
> pass-through, it will not be aware whether the peer has
> accepted the access offered to it by the EAP server unless this
> information is provided to it via the AAA protocol.  As a result, two
> authentications, one in each direction, may still need to occur."

based on this text, a proposed change to the state machine doc would
(roughly) look something like this:

In Figure 5 "EAP Backend Authenticator State Machine", change the
METHOD_RESPONSE state to read

  m.process(aaaEapRespData)
  if (m.isDone()) {
     Policy.update(<...>)
     aaaEapKeyData = m.getKey()
     aaaEapPeerDecision = m.getPeerDecision()
     methodState = END
  } else
    methodState = CONTINUE

aaaEapPeerDecision would take values UNKNOWN, KNOWN_ACCEPT and
KNOWN_REJECT and be exported to the lower layer.

thoughts? any other required changes?

Proposed resolution: Discuss

Issue 205: Peer-to-peer operation
Submitter name: Bernard Aboba
Submitter email address: aboba@internaut.com
Date first submitted: 11/24/2003
Reference: http://mail.frascone.net/pipermail/public/eap/2003-November/001913.html
Document: RFC 2284bis-06
Comment type: T
Priority: S
Section: 2.4
Rationale/Explanation of issue:

This issue relates to asymmetries that exist between pass-through and non-pass-through authenticators in peer-to-peer operation.

Replace the last two paragraphs in Section 2.4, with the following text:

"Lower layer considerations may dictate whether two EAP authentications,
(one in each direction) are required, rather than a single EAP
method supporting mutual authentication and protected result indications.
These include:

[1] Support for bi-direction session key derivation. Lower layers such as
IEEE 802.11 may only support uni-directional derivation and transport of
transient session keys. For example, the group-key handshake defined in
[IEEE-802.11i] is uni-directional, since in IEEE 802.11 infrastructure mode
only the Access Point (AP) sends multicast/broadcast traffic. In IEEE 802.11 ad-hoc
mode where either peer may send multicast/broadcast traffic, two uni-directional
group-key exchanges are required. Due to limitations of the design, this implies
two unicast key derivations and EAP method exchanges.
[Joe Salowey] Where is the use of multicast/broadcast defined in the case of an
ad-hoc network? Is it defined in 802.11i?

[2] Support for tie-breaking. Lower layers such as IEEE 802.11 adhoc
do not support "tie breaking" wherein two hosts initiating authentication
with each other will only go forward with a single authentication. This
implies that even if 802.11 were to support a bi-directional group-key
handshake, then two authentications, one in each direction, might still
occur.

[3] Support for protected result indications. When an EAP method
supporting mutual authentication and protected result indications is
in use, the EAP peer and server will typically be aware of each other's
access decision, as well as their own. For example, the EAP server will
indicate to the peer whether the peer has successfully authenticated to
it, and the peer will indicate to the EAP server whether the EAP server has
successfully authenticated to the peer. As a result, the EAP peer and server
can determine whether an authentication is required in the
opposite direction. However, where the authenticator operates as a
pass-through, it will not be aware whether the peer has
accepted the access offered to it by the EAP server unless this
information is provided to it via the AAA protocol. As a result, two
authentications, one in each direction, may still need to occur."
[Joe Salowey] Here is a suggestion. It may need a little work, but I think it is
more characteristic of the scenario.

[3] Peer Policy is not satisfied. It is possible that the EAP Peer's
access policy was not satisfied during the EAP-Method exchange, for
example the peer may not have satisfactorily authenticated the
authenticator. In this case the peer may wish to open another
authentication exchange with the authenticator in the reverse direction.
It is possible for an EAP mechanism to allow the Peer to return a
protected result indicator to indicate that it successfully
authenticated the authenticator. However, where the authenticator
operates as a pass-through, it will not be aware whether the peer has
accepted the credentials offered to it by the EAP server unless this
information is provided to it via the AAA protocol. As a result, two
authentications, one in each direction, may still need to occur. It is
also possible for the peer to require additional authentication in the
reverse direction even if the protected result indicator from the peer
indicated success.
[Bernard Aboba] Here is the proposed fix: 
Replace the last two paragraphs in Section 2.4, with the following text:

"Even where a method is used which supports mutual authentication
and protected result indications, several considerations may dictate
that two EAP authentications, (one in each direction) are required.
These include:

[1] Support for bi-directional session key derivation in the lower layer. Lower layers such as
IEEE 802.11 may only support uni-directional derivation and transport of
transient session keys. For example, the group-key handshake defined in
[IEEE-802.11i] is uni-directional, since in IEEE 802.11 infrastructure mode
only the Access Point (AP) sends multicast/broadcast traffic. In IEEE 802.11 ad-hoc
mode where either peer may send multicast/broadcast traffic, two uni-directional
group-key exchanges are required. Due to limitations of the design, this also implies
the need for unicast key derivations and EAP method exchanges to occur in each direction.

[2] Support for tie-breaking in the lower layer. Lower layers such as IEEE 802.11 adhoc
do not support "tie breaking" wherein two hosts initiating authentication
with each other will only go forward with a single authentication. This
implies that even if 802.11 were to support a bi-directional group-key
handshake, then two authentications, one in each direction, might still
occur.
[3] Peer policy satisfaction. EAP methods may support 
protected result indications, enabling the peer to indicate
to the EAP server that it successfully authenticated the EAP server.
However, a pass-through authenticator will not be aware that the peer
has accepted the credentials offered by the EAP server, unless
this information is provided to the authenticator via the AAA protocol.
As a result, two authentications, one in each direction, may still be needed.

It is also possible that the EAP peer's access policy was not satisfied
during the EAP method exchange. For example, the authenticator may
not have successfully authenticated to the peer, or may not have
demonstrated authorization to act in both peer and server roles.
For example, in EAP-TLS [RFC2716], the authenticator may have
authenticated using a valid TLS server certificate, but not using
a valid TLS client certificate. As a result, the peer may require
an additional authentication in the reverse direction, even if
the peer provided a protected result indication to the EAP server
indicating that the server had successfully authenticated to it.

Proposed resolution: Accept

Issue 206: Identity-Request
Submitter name: Nagi Reddy Jonnala
Submitter email address: mailto:Nagi_Reddy.Jonnala@alcatel.be
Date first submitted: 12/7/2003
Reference: http://mail.frascone.net/pipermail/public/eap/2003-December/001979.html
Document: RFC 2284bis-07
Comment type: T
Priority: S
Section: 5.1
Rationale/Explanation of issue:

I understand that RFC2284bis-07 Section 5.1 conflicts with the RFC2284
Section 3.1

See the text from 2284-bis.

"
      This field MAY contain a displayable message in the Request,
      containing UTF-8 encoded ISO 10646 characters [RFC2279].  Where
      the Request contains a null, only the portion of the field prior
      to the null is displayed.  If the Identity is unknown, the
      Identity Response field should be zero bytes in length.  The
      Identity Response field MUST NOT be null terminated.  In all
      cases, the length of the Type-Data field is derived from the
      Length field of the Request/Response packet.
"

See the text from 2284 Section 3.1 - Identity Type-Data field.

   "This field MAY contain a displayable message in the Request.  The
      Response uses this field to return the Identity.  If the Identity
      is unknown, this field should be zero bytes in length.  The field
      MUST NOT be null terminated.  The length of this field is derived
      from the Length field of the Request/Response packet and hence a
      null is not required."

Particularly, the last sentence (of 2284)  means that the Request cannot
have a NULL. I guess the intention was to recommend the use of length
rather than a NULL.

Though I don't have any objections to use the space after NULL,  I would
like to know if that causes any issues. At the same time, I propose to
explicitly mention the same thing in the 2284-bis.

Regards
Nagi.

[Jari Arkko] We discussed this in issue 142, see

   http://www.drizzle.com/~aboba/EAP/eapissues.html#Issue%20142

and the mail archives. The working group agreed at that time,
do we have some new information at this time that would make
us reconsider this? I'm not sure there is.

Having said that, I think Appendix A of RFC 2284bis is misleading
because it just talks about the ISO character set clarifications
in 5.1 and 5.2, but does not mention this issue. Perhaps we should
add the following text to Appendix A, right after the item that
talks about 5.1:

    o  The null character is forbidden in the Type-Data field of an
       Identity Response message, as it is in RFC 2284. But the this rule
       has been relaxed for Identity Requests, and it is now required
       that if the Type-Data field of an Identity Request contains a
       null character, only the part before the null is displayed.

Would this work for you?
 

[Nagi] Yes, it is perfect if you add the text to Appendix A.

[Henrik Levkowetz]

A version of the document (-08.a) updated according to the text below is
available at http://ietf.levkowetz.com/drafts/eap/rfc2284bis/

I guess that formally we'll supply this as an RFC editor note during the
Author's 48 hours?

Proposed resolution: Accept

Issue 207: Miscellaneous Comments
Submitter name: Russ Housley
Submitter email address: housley@vigilsec.com
Date first submitted: 12/15/2003
Reference: http://mail.frascone.net/pipermail/public/eap/2003-December/002003.html
Document: RFC 2284bis-07
Comment type: T
Priority: S
Section: Various
Rationale/Explanation of issue:

DISCUSS

   1.  In section 4.3, paragraph [a], the document says: "These MUST
   be pseudo-random, generated by a PRNG seeded as per [RFC1750]."
   While I like RFC 1750 very much, I do not think that a MUST
   statement ought to reference it.  An informative reference is
   better in this case than a normative reference.

   2.  In section 7.2.1, the definition of 'key strength' is not
   correct.  In a perfect symmetric cipher, the brute force attack is
   the best possible attack.  That is, the attacker must attempt to
   decrypt with each possible key value until the correct one is found.
   On average, half of the key values need to be tried to locate the
   correct one to decrypt a particular ciphertext.  So, on average,
   2^(N-1) operations are needed to attack a key with N bits of
   effective strength.

COMMENT

   1.  Please pick one spelling and use it throughout the document:
     - either 'passthrough' or 'pass-through'
     - either 'ad-hoc' or 'ad-hoc' or 'ad hoc'

   2.  In section 1.2, please add the definition of supplicant and
   slightly revise the definition of EMSK as follows:

     supplicant
           The end of the link that responds to the authenticator in
           [IEEE-802.1X].  In this document, this end of the link is
           called the peer.

     Extended Master Session Key (EMSK)
           Additional keying material derived between the EAP client
           and server that is exported by the EAP method.  The EMSK is
           at least 64 octets in length.  The EMSK is not shared with
           the authenticator or any other third party.  The EMSK is
           reserved for future uses that are not defined yet.

   3.  In section 1.3, I find the last sentence of the 4th paragraph
   awkward.  I propose the following rewording:

     As a result, it may be necessary for an authentication algorithm
     to add one or two additional messages (at most one roundtrip)
     between the client and authenticator in order to run over EAP.

   4.  In section 2.4, 1st paragraph, last sentence, the term
   'authenticatees' is introduced.  I think that 'peers' should be used
   instead.  This leads to a problem because 'peers' is used elsewhere
   in the sentence.  Proposal:

     Both ends of the link may act as authenticators and peers at
     the same time.

   5.  In section 3.2, 1st paragraph, 1st sentence: s/must/MUST/

[BA] This sentence refers to PPP, and making the statement normative
would in effect be a change to RFC 1661.  This seems inappropriate to me.

   6.  In section 7.11, 2nd paragraph, last sentence:
   s/recommended/RECOMMENDED/

[BA] Proposed resolution: Change "passthrough" to "pass-through" throughout the document.

Change "ad-hoc" to "ad hoc" throughout the document.

In Section 2.1, add the following definition:

Supplicant
The end of the link that responds to the authenticator in
[IEEE-802.1X]. In this document, this end of the link is
called the peer.

Change the definition of the EMSK to the following:

"Extended Master Session Key (EMSK)
Additional keying material derived between the EAP client
and server that is exported by the EAP method. The EMSK is
at least 64 octets in length. The EMSK is not shared with
the authenticator or any other third party. The EMSK is
reserved for future uses that are not defined yet."

In Section 1.3, change the 4th paragraph from:

" EAP authentication is initiated by the authenticator, whereas many
authentication protocols are initiated by the client (peer). As a
result, it may be necessary for an algorithm to add 0.5 - 1
additional roundtrips between the client and authenticator in order
to run over EAP."

To:

" EAP authentication is initiated by the authenticator, whereas many
authentication protocols are initiated by the client (peer). As a
result, it may be necessary for an authentication algorithm to add one or two
additional messages (at most one roundtrip) between the peer and
server in order to run over EAP."

In Section 2.4, first paragraph, change:

"Both peers may act as authenticators and authenticatees at the same time,
in which case it is necessary for both peers to implement EAP authenticator
and peer layers."

To:

"Both ends of the link may act as authenticators and peers at the same time.
In this case it is necessary for both ends to implement EAP authenticator
and peer layers."

In Section 3.2, 1st paragraph, change:

" In order to establish communications over a point-to-point link, each
end of the PPP link must first send LCP packets to configure the data
link during Link Establishment phase."

To:

" In order to establish communications over a point-to-point link, each
end of the PPP link first sends LCP packets to configure the data
link during Link Establishment phase."

In Section 4.3, paragraph [a], change:

"These MUST be pseudo-random, generated by a PRNG
seeded as per [RFC1750]."

To:

"These MUST be pseudo-random. For a discussion
of pseudo-random number generation, see [RFC1750]."

Change the reference to [RFC1750] to Informative.

In Section 7.2.1, change:

"The effective key strength SHOULD be stated as number of bits,
defined as follows: If the effective key strength is N bits, the
best currently known methods to recover the key (with
non-negligible probability) require an effort comparable to 2^N
operations of a typical block cipher."

To:

"The effective key strength SHOULD be stated as number of bits,
defined as follows: If the effective key strength is N bits, the
best currently known methods to recover the key (with
non-negligible probability) require on average an effort
comparable to 2^(N-1) operations of a typical block cipher."

In section 7.11, change 2nd paragraph from:

" As a result, as noted in Section 3.1, where EAP is used over a
physically insecure lower layer, per-packet authentication, integrity
and replay protection SHOULD be used, and per-packet confidentiality
is also recommended."

To:

" As a result, as noted in Section 3.1, where EAP is used over a
physically insecure lower layer, per-packet authentication, integrity
and replay protection SHOULD be used, and per-packet confidentiality
is RECOMMENDED."
Move the following paragraph from Section 7.10 to Section 7.5, after the fourth paragraph:
"It is RECOMMENDED that methods providing integrity protection of EAP
packets include coverage of all the EAP header fields, including the
Code, Identifier, Length, Type and Type-Data fields."
Proposed resolution: Accept
Issue 208: Physical Security
Submitter name: Steve Bellovin
Submitter email address: smb@research.att.com
Date first submitted: 12/17/2003
Reference:  http://mail.frascone.net/pipermail/public/eap/2003-December/002013.html
Document:  RFC 2284bis-07
Comment type: E
Priority: S
Section: Various
Rationale/Explanation of issue:
I'm not at all happy with the stress on "physical security" of links.
The concept isn't defined in terms of properties, nor is the threat
model clear. Many wired Ethernets, even switched ones, are not secure
enough to meet what I believe to be the requirements here.

[BA] It would appear that the term "physical security" adds little value
to the document.  What if we eliminated use of the term entirely?

The option of cryptographic "security" as an alternative is very hard
-- you can't do crypto without at least one end authenticating itself
first. When I'm sitting in my favorite 802.11 hotspot, how do I know
if I'm authenticating (at the pre-EAP level) to the hotspot or to the
laptop on the table next to me? The implications here are that the
requirements need to be spelled out much more carefully.

5.1 says that identity messages are "not protected". Again, what are
the precise security requirements for the lower layers?

[BA] It would appear that the term "not protected" is used synonymously
with "cleartext" here.

5.2: there are no numeric codes, which creates internationalization
problems.

[BA] Not sure what is meant here;  the Text-Data field uses UTF-8
encoding.

Here is a proposed resolution:

In Section 3.1, change:

" [3] Lower layer security. EAP assumes that lower layers either
provide physical security (e.g., wired PPP or IEEE 802 links) or
support per-packet authentication, integrity and replay
protection. EAP SHOULD NOT be used on physically insecure links
(e.g., wireless or the Internet) where subsequent data is not
protected by per-packet authentication, integrity and replay
protection."

To:

" [3] Lower layer security. Lower layer support for per-packet
authentication, integrity and replay protection
and confidentiality of data traffic is RECOMMENDED. Where
this is available, EAP methods supporting Key Derivation
(see Section 7.2.1) can be used to provide dynamic keying
material. This makes it possible to protect against
security threats such as data modification and spoofing
(see Section 7.1 for details)."

In Section 3.4, change:

" After EAP authentication is complete, the peer will typically
transmit data to the network via the authenticator. In order to
provide assurance that the peer transmitting data is the same entity
that successfully completed EAP authentication, the lower layer needs
to bind per-packet integrity, authentication and replay protection to
the original EAP authentication, using keys derived during EAP
authentication. Alternatively, the lower layer needs to be
physically secure. Otherwise it is possible for subsequent data
traffic to be hijacked or replayed.

As a result of these considerations, EAP SHOULD be used only when
lower layers provide physical security for data (e.g., wired PPP or
IEEE 802 links), or for insecure links, where per-packet
authentication, integrity and replay protection is provided."

To:

" After EAP authentication is complete, the peer will typically
transmit data to the network via the authenticator. In order to
provide assurance that the peer transmitting data is the same entity
that successfully completed EAP authentication, the lower layer needs
to bind per-packet integrity, authentication and replay protection to
the original EAP authentication, using keys derived during EAP
authentication. Otherwise it is possible for subsequent data
traffic to be hijacked or replayed."

In Section 5.1, change:

"Identity Requests and Responses are not protected, so
from a privacy perspective it is preferable for an EAP method to
include its own protected identity exchange."

To:

"Identity Requests and Responses are sent in cleartext, so
from a privacy perspective it is preferable for an EAP method to
include an identity exchange that supports authentication,
integrity and replay protection and confidentiality."

Change Section 7 to:

"7. Security Considerations

This section defines the threat model and security terms and
describes the security claims section required in EAP method
specifications. We then discuss threat mitigation."

In Section 7.1, change:

"On physically insecure networks, it is possible for an attacker to
gain access to the physical medium. This enables a range of attacks,
including the following:"

To:

"EAP was developed for use with dialup PPP [RFC1661] and was later
adapted for use in wired IEEE 802 networks [IEEE-802] in
[IEEE-802.1X].  Subsequently EAP has been proposed for use on wireless
LAN networks, and over the Internet.  In all these situations it is
possible for an attacker to gain access to the link.  For example,
attacks on telephone infrastructure are documented in
[DECEPTION].

An attacker with access to the link may carry out a number of attacks,
including:"

In Section 7.1, change:

" Where EAP is used over wired networks, an attacker typically requires
access to the physical infrastructure in order to carry out these
attacks. However, where EAP is used over wireless networks, EAP
packets may be forwarded by authenticators (e.g., pre-authentication)
so that the attacker need not be within the coverage area of an
authenticator in order to carry out an attack on it or its peers.
Where EAP is used over the Internet, attacks may be carried out at an
even greater distance."

To:

"Depending on the lower layer, these attacks may be carried out
without requiring physical proximity. where EAP is used
over wireless networks, EAP packets may be forwarded by
authenticators (e.g., pre-authentication) so that the attacker
need not be within the coverage area of an authenticator in
order to carry out an attack on it or its peers. Where EAP is
used over the Internet, attacks may be carried out at an
even greater distance."

In Section 7.2, delete:

" [a] Intended use. This includes a statement of whether the method is
intended for use over a physically secure or insecure network, as
well as a statement of the applicable lower layers."

In Sections 5.1, 5.2, 5.3.1, 5.3.2, 5.4, 5.5, 5.6 delete the Intended Use
claim.

In Section 7.5, change:

" In the case of PPP and IEEE 802 wired links, it is assumed that such
attacks are restricted to attackers who can gain access to the
physical link. However, where EAP is run over physically insecure
lower layers such as wireless (802.11 or cellular) or the Internet
(such as within protocols supporting PPP, EAP or Ethernet Tunneling),
this assumption is no longer valid and the vulnerability to attack is
greater.

To protect EAP messages sent over physically insecure lower layers,
methods providing mutual authentication and key derivation, as well
as per-packet origin authentication, integrity and replay protection
SHOULD be used."

To:

"To protect EAP messages against modification or spoofing,
methods providing mutual authentication and key derivation, as well
as per-packet origin authentication, integrity and replay protection
SHOULD be used."

In Section 7.6, change:

"In order to protect against dictionary attacks, an authentication
algorithm resistant to dictionary attack (as defined in Section 7.2)
SHOULD be used where EAP runs over lower layers which are not physically
secure."

To:

"In order to protect against dictionary attacks, an authentication
algorithm resistant to dictionary attack (as defined in Section 7.2)
SHOULD be used."

In Section 7.7, change:

"With EAP methods supporting one-way authentication, such as EAP-MD5,
the peer does not authenticate the authenticator. Where the lower
layer is not physically secure (such as where EAP runs over wireless
media or the Internet), the peer is vulnerable to a rogue
authenticator. As a result, where the lower layer is not physically
secure, a method supporting mutual authentication is RECOMMENDED."

To:

" With EAP methods supporting one-way authentication, such as EAP-MD5,
the peer does not authenticate the authenticator, making the
peer vulnerable to attack by a rogue authenticator.  To address this
vulnerability, it is RECOMMENDED to use a method supporting mutual
authentication."

In Section 7.11, change:

" As a result, as noted in Section 3.1, where EAP is used over a
physically insecure lower layer, per-packet authentication, integrity
and replay protection SHOULD be used, and per-packet confidentiality
is also recommended."

To:

"In order to address this vulnerability, lower layers providing per-packet
authentication, integrity and replay protection, as well as
confidentiality are RECOMMENDED."

Change Section 7.12 to:

"There are reliability and security issues with link
layer indications in PPP, IEEE 802 LANs and IEEE 802.11 wireless LANs:

[a] PPP. In PPP, link layer indications such as LCP-Terminate (a
link failure indication) and NCP (a link success indication) are
not authenticated or integrity protected. They can therefore be
spoofed by an attacker with access to the link.

[b] IEEE 802. IEEE 802.1X EAPOL-Start and EAPOL-Logoff frames
are not authenticated or integrity protected. They can therefore
be spoofed by an attacker with access to the link.

[c] IEEE 802.11. In IEEE 802.11, link layer
indications include Disassociate and Deauthenticate frames (link
failure indications), and the first message of the 4-way
handshake (link success indication). These messages are not
authenticated or integrity protected, and although they are not
forwardable, they are spoofable by an attacker within range.

In IEEE 802.11, IEEE 802.1X data frames may be sent as Class 3
unicast data frames, and are therefore forwardable. This implies
that while EAPOL-Start and EAPOL-Logoff messages may be
authenticated and integrity protected, they can be spoofed by an
authenticated attacker far from the target when
"pre-authentication" is enabled.

In IEEE 802.11 a "link down" indication is an unreliable
indication of link failure, since wireless signal strength can
come and go and may be influenced by radio frequency interference
generated by an attacker. To avoid unnecessary resets, it is
advisable to damp these indications, rather than passing them
directly to the EAP. Since EAP supports retransmission, it is
robust against transient connectivity losses."

In Section 7.13, change:

" [c] Where EAP is used over lower layers which are not physically
secure, after completion of the EAP conversation, a secure
association protocol SHOULD be run between the peer and
authenticator in order to provide mutual authentication;
guarantee liveness of the TSKs; provide protected ciphersuite and
capabilities negotiation; synchronize key usage."

To:

" [c] After completion of the EAP conversation, where the
lower layer supports security services such as
per-packet authentication,  integrity and replay protection
and confidentiality, a secure association protocol
SHOULD be run between the peer and authenticator
in order to provide mutual authentication;
guarantee liveness of transient session keys;
provide protected ciphersuite and
capabilities negotiation; and synchronize key usage."

In Section 7.14, change:

"   EAP does not support cleartext password authentication.  This
   omission is intentional.  Where EAP is carried over physically
   insecure lower layers, including wireless LANs [IEEE-802.11] or the
   Internet, use of cleartext passwords would allow the password to be
   captured by an attacker with access to the lower layer.

   Since protocols encapsulating EAP, such as RADIUS [RFC3579], may not
   provide confidentiality, even where the lower layer is physically
   secure, EAP frames may be subsequently encapsulated for transport
   over the Internet where they may be captured by an attacker."

To:

"  EAP does not support cleartext password authentication.  This
   omission is intentional.  Use of cleartext passwords would allow the
   password to be captured by an attacker with access to the link.

   Since protocols encapsulating EAP, such as RADIUS [RFC3579], may not
   provide confidentiality, EAP frames may be subsequently encapsulated
   for transport over the Internet where they may be captured by an
   attacker."
[Alper Yergin] > I'm not at all happy with the stress on "physical security" of links.
> The concept isn't defined in terms of properties, nor is the threat
> model clear. Many wired Ethernets, even switched ones, are not secure
> enough to meet what I believe to be the requirements here.
>
> [BA] It would appear that the term "physical security" adds little value
> to the document.  What if we eliminated use of the term entirely?
Does this mean that we are eliminating the concept of physical security in the context of EAP, and tighten the requirements accordingly? I think this is not the intention, but I hope the modified language change does not suggest that... At the end, I should still be able to use EAP-MD5 over my DSL networks or wired Ethernet and not violate the spec. > In Section 7.5, change:
>
> " In the case of PPP and IEEE 802 wired links, it is assumed that such
> attacks are restricted to attackers who can gain access to the
> physical link. However, where EAP is run over physically insecure
> lower layers such as wireless (802.11 or cellular) or the Internet
> (such as within protocols supporting PPP, EAP or Ethernet Tunneling),
> this assumption is no longer valid and the vulnerability to attack is
> greater.
>
> To protect EAP messages sent over physically insecure lower layers,
> methods providing mutual authentication and key derivation, as well
> as per-packet origin authentication, integrity and replay protection
> SHOULD be used."
>
> To:
>
> " To protect EAP messages against modification or spoofing,
> methods providing mutual authentication and key derivation, as well
> as per-packet origin authentication, integrity and replay protection
> SHOULD be used." ... >
> In Section 7.6, change:
>
> " In order to protect against dictionary attacks, an authentication
> algorithm resistant to dictionary attack (as defined in Section 7.2)
> SHOULD be used where EAP runs over lower layers which are not physically
> secure."
>
> To:
>
> "In order to protect against dictionary attacks, an authentication
> algorithm resistant to dictionary attack (as defined in Section 7.2)
> SHOULD be used." > In Section 7.13, change:
>
> " [c] Where EAP is used over lower layers which are not physically
> secure, after completion of the EAP conversation, a secure
> association protocol SHOULD be run between the peer and
> authenticator in order to provide mutual authentication;
> guarantee liveness of the TSKs; provide protected ciphersuite and
> capabilities negotiation; synchronize key usage."
>
> To:
>
> " [c] After completion of the EAP conversation, a secure
> association protocol SHOULD be run between the peer and
> authenticator in order to provide mutual authentication;
> guarantee liveness of the TSKs; provide protected ciphersuite and
> capabilities negotiation; synchronize key usage." The current text in the above segments suggest one does not have to obey the requirement if EAP is run over physically secured links. The new text is removing this condition. But I don't think the situation is any different, right? It's just that we don't have a text saying that now... I think working out the details of what physical security means and keeping the term in the draft is a better approach.
> The current text in the above segments suggest one does not have to obey the
> requirement if EAP is run over physically secured links. The new text is
> removing this condition. But I don't think the situation is any different,
> right? It's just that we don't have a text saying that now...
> > I think working out the details of what physical security means and keeping
> the term in the draft is a better approach [BA] I believe that Steve's point (which I agree with) is that "physical security" is a term that is very hard to define.  For example, which of the networks below is "physically secure": * The Ethernet network in my home, which is entirely internal and is protected by a rather large dog who has not eaten recently because I am working late tonite. * The Ethernet network in my neighbor's house, which includes a tap on the outside porch.  The neighbors are away for the weekend. * The wireless network at work which is located in a test lab within a Faraday cage behind a locked door. * The wireless network in a deserted neighborhood Starbucks, which has closed down for the night (but whose network is still up). * The ARCNet network which was installed 15 years ago and but is still functioning in a legacy installation in the data center, but where the night watchman has left the door open. In practice, the term "physically secure" is one which applies to a particular installation and set of practices, not to a particular networking technology, so it is difficult to use prescriptively. In most of the changes proposed in Issue 208, the removal of the term "physical security" does not change the meaning of the draft at all, and so those changes seem relatively straightforward. The changes that are somewhat trickier is where the term is used as the basis for some guidance as to what kind of EAP methods should be deployed, or whether EAP should be used at all. As Erik Nordmark discussed at IETF 56,  there is a need for prescriptive guidance in particular situations.  For example, at IETF 56, Erik recommended that IEEE 802.11i provide EAP WG with a document stating the requirements for EAP methods used with IEEE 802.11 security.  If we assume that such documents will be produced, then it isn't clear to me that we necessarily need this kind of prescriptive guidance within RFC 2284bis itself.  One approach might be to remove the normative language. For example, Section 7.5 says: " In the case of PPP and IEEE 802 wired links, it is assumed that such attacks are restricted to attackers who can gain access to the physical link. However, where EAP is run over physically insecure lower layers such as wireless (802.11 or cellular) or the Internet (such as within protocols supporting PPP, EAP or Ethernet Tunneling), this assumption is no longer valid and the vulnerability to attack is greater. To protect EAP messages sent over physically insecure lower layers, methods providing mutual authentication and key derivation, as well as per-packet origin authentication, integrity and replay protection SHOULD be used." I think what these paragraphs are trying to say is that if you're worried about an attacker gaining access to the link, then use an EAP method that protects against that.  One way to get at this point might be to say the following: "To protect EAP messages against modification or spoofing, methods providing mutual authentication and key derivation, as well as per-packet origin authentication, integrity and replay protection can be used." Section 7.6 says: "In order to protect against dictionary attacks, an authentication algorithm resistant to dictionary attack (as defined in Section 7.2) SHOULD be used where EAP runs over lower layers which are not physically secure." Again, I think the message is that if you're worried about dictionary attacks, use an algorithm that deals with that.  One way to get at that might be to say: "In order to protect against dictionary attacks, an authentication algorithm resistant to dictionary attack (as defined in Section 7.2.1) can be used." Section 7.7 says: "With EAP methods supporting one-way authentication, such as EAP-MD5, the peer does not authenticate the authenticator. Where the lower layer is not physically secure (such as where EAP runs over wireless media or the Internet), the peer is vulnerable to a rogue authenticator. As a result, where the lower layer is not physically secure, a method supporting mutual authentication is RECOMMENDED." In this particular paragraph, it strikes me that the issue is really whether rogue authenticators are a concern or not.  If so, then mutual authentication is important.  One way to get at this might be to say: "With EAP methods supporting one-way authentication, such as EAP-MD5, the peer does not authenticate the authenticator, making the peer vulnerable to attack by a rogue authenticator.  Where this vulnerability is a concern, a method supporting mutual authentication can be used." Section 7.11 says: "As a result, as noted in Section 3.1, where EAP is used over a physically insecure lower layer, per-packet authentication, integrity and replay protection SHOULD be used, and per-packet confidentiality is also recommended." Instead, we might say: "In order to address this vulnerability, lower layers providing per-packet confidentiality, authentication, integrity and replay protection can be used. "
[BA] Here is a revised resolution:
In Section 3.1, change:

" [3] Lower layer security. EAP assumes that lower layers either
provide physical security (e.g., wired PPP or IEEE 802 links) or
support per-packet authentication, integrity and replay
protection. EAP SHOULD NOT be used on physically insecure links
(e.g., wireless or the Internet) where subsequent data is not
protected by per-packet authentication, integrity and replay
protection."

To:

" [3] Lower layer security.  EAP does not require
lower layers to provide security services such as
per-packet confidentiality, authentication, integrity and
replay protection.  However, where these security
services are available, EAP methods supporting Key
Derivation (see Section 7.2.1) can be used to provide dynamic keying  
material.  This makes it possible to bind the EAP authentication
to subsequent data and protect against
security threats such as data modification, spoofing, or replay
(see Section 7.1 for details)."

In Section 3.4, change:

" After EAP authentication is complete, the peer will typically
transmit data to the network via the authenticator. In order to
provide assurance that the peer transmitting data is the same entity
that successfully completed EAP authentication, the lower layer needs
to bind per-packet integrity, authentication and replay protection to
the original EAP authentication, using keys derived during EAP
authentication. Alternatively, the lower layer needs to be
physically secure. Otherwise it is possible for subsequent data
traffic to be hijacked or replayed.

As a result of these considerations, EAP SHOULD be used only when
lower layers provide physical security for data (e.g., wired PPP or
IEEE 802 links), or for insecure links, where per-packet
authentication, integrity and replay protection is provided."

To:

" After EAP authentication is complete, the peer will typically
transmit data to the network via the authenticator. In order to
provide assurance that the peer transmitting data is the same entity
that successfully completed EAP authentication, the lower layer needs
to bind per-packet integrity, authentication and replay protection to
the original EAP authentication, using keys derived during EAP
authentication.  Otherwise it is possible for subsequent data
traffic to be hijacked or replayed."
[Alper Yergin]  I'd drop the "using keys derived during EAP authentication." part. I can
rely on physical security for the binding.
[Joe Salowey] I don't think this part should be removed.  You might make it
conditional, but then we must explain when it can be relaxed.  I think
there is some threat model in the document already that requires this.

In Section 5.1, change:

"Identity Requests and Responses are not protected, so
from a privacy perspective it is preferable for an EAP method to
include its own protected identity exchange."

To:

"Identity Requests and Responses are sent in cleartext, so
from a privacy perspective it is preferable for an EAP method to
include an identity exchange that supports authentication,
integrity and replay protection and confidentiality."

Change Section 7 to:

"7. Security Considerations

This section defines the threat model and security terms and
describes the security claims section required in EAP method
specifications. We then discuss threat mitigation."

In Section 7.1, change:

"On physically insecure networks, it is possible for an attacker to
gain access to the physical medium. This enables a range of attacks,
including the following:"

To:

"EAP was developed for use with dialup PPP [RFC1661] and was later
adapted for use in wired IEEE 802 networks [IEEE-802] in
[IEEE-802.1X].  Subsequently EAP has been proposed for use on wireless
LAN networks, and over the Internet.  In all these situations it is
possible for an attacker to gain access to the link.  For example,
attacks on telephone infrastructure are documented in
[DECEPTION].

An attacker with access to the link may carry out a number of attacks,
including:"

In Section 7.1, change:

" Where EAP is used over wired networks, an attacker typically requires
access to the physical infrastructure in order to carry out these
attacks. However, where EAP is used over wireless networks, EAP
packets may be forwarded by authenticators (e.g., pre-authentication)
so that the attacker need not be within the coverage area of an
authenticator in order to carry out an attack on it or its peers.
Where EAP is used over the Internet, attacks may be carried out at an
even greater distance."

To:

"Depending on the lower layer, these attacks may be carried out
without requiring physical proximity. where EAP is used
over wireless networks, EAP packets may be forwarded by
authenticators (e.g., pre-authentication) so that the attacker
need not be within the coverage area of an authenticator in
order to carry out an attack on it or its peers. Where EAP is
used over the Internet, attacks may be carried out at an
even greater distance."

In Section 7.2, delete:

" [a] Intended use. This includes a statement of whether the method is
intended for use over a physically secure or insecure network, as
well as a statement of the applicable lower layers."

In Sections 5.1, 5.2, 5.3.1, 5.3.2, 5.4, 5.5, 5.6 delete the Intended Use
claim.

In Section 7.5, change:

" In the case of PPP and IEEE 802 wired links, it is assumed that such
attacks are restricted to attackers who can gain access to the
physical link. However, where EAP is run over physically insecure
lower layers such as wireless (802.11 or cellular) or the Internet
(such as within protocols supporting PPP, EAP or Ethernet Tunneling),
this assumption is no longer valid and the vulnerability to attack is
greater.

To protect EAP messages sent over physically insecure lower layers,
methods providing mutual authentication and key derivation, as well
as per-packet origin authentication, integrity and replay protection
SHOULD be used."

To:

"To protect EAP messages against modification or spoofing,
methods providing mutual authentication and key derivation, as well
as per-packet origin authentication, integrity and replay protection
can be used."

In Section 7.6, change:

"In order to protect against dictionary attacks, an authentication
algorithm resistant to dictionary attack (as defined in Section 7.2)
SHOULD be used where EAP runs over lower layers which are not physically
secure."

To:

"In order to protect against dictionary attacks, an authentication
algorithm resistant to dictionary attack (as defined in Section 7.2)
can be used."

In Section 7.7, change:

"With EAP methods supporting one-way authentication, such as EAP-MD5,
the peer does not authenticate the authenticator. Where the lower
layer is not physically secure (such as where EAP runs over wireless
media or the Internet), the peer is vulnerable to a rogue
authenticator. As a result, where the lower layer is not physically
secure, a method supporting mutual authentication is RECOMMENDED."

To:

" With EAP methods supporting one-way authentication, such as EAP-MD5,
the peer does not authenticate the authenticator, making the
peer vulnerable to attack by a rogue authenticator.  To address this
vulnerability, a method supporting mutual authentication
can be used. "

In Section 7.11, change:

"As a result, as noted in Section 3.1, where EAP is used over a
physically insecure lower layer, per-packet authentication, integrity
and replay protection SHOULD be used, and per-packet confidentiality
is also recommended."

To:

"In order to address this vulnerability, lower layers providing per-packet
confidentiality, authentication, integrity and replay protection
can be used. "

Change Section 7.12 to:

"There are reliability and security issues with link
layer indications in PPP, IEEE 802 LANs and IEEE 802.11 wireless LANs:

[a] PPP. In PPP, link layer indications such as LCP-Terminate (a
link failure indication) and NCP (a link success indication) are
not authenticated or integrity protected. They can therefore be
spoofed by an attacker with access to the link.

[b] IEEE 802. IEEE 802.1X EAPOL-Start and EAPOL-Logoff frames
are not authenticated or integrity protected. They can therefore
be spoofed by an attacker with access to the link.

[c] IEEE 802.11. In IEEE 802.11, link layer
indications include Disassociate and Deauthenticate frames (link
failure indications), and the first message of the 4-way
handshake (link success indication). These messages are not
authenticated or integrity protected, and although they are not
forwardable, they are spoofable by an attacker within range.

In IEEE 802.11, IEEE 802.1X data frames may be sent as Class 3
unicast data frames, and are therefore forwardable. This implies
that while EAPOL-Start and EAPOL-Logoff messages may be
authenticated and integrity protected, they can be spoofed by an
authenticated attacker far from the target when
"pre-authentication" is enabled.

In IEEE 802.11 a "link down" indication is an unreliable
indication of link failure, since wireless signal strength can
come and go and may be influenced by radio frequency interference
generated by an attacker. To avoid unnecessary resets, it is
advisable to damp these indications, rather than passing them
directly to the EAP. Since EAP supports retransmission, it is
robust against transient connectivity losses."

In Section 7.13, change:

" [c] Where EAP is used over lower layers which are not physically
secure, after completion of the EAP conversation, a secure
association protocol SHOULD be run between the peer and
authenticator in order to provide mutual authentication;
guarantee liveness of the TSKs; provide protected ciphersuite and
capabilities negotiation; synchronize key usage."

To:

" [c] After completion of the EAP conversation, where the
lower layer supports security services such as
per-packet confidentiality, authentication, integrity and replay protection,
a secure association protocol SHOULD be run between
the peer and authenticator in order to provide mutual authentication;
guarantee liveness of transient session keys;
provide protected ciphersuite and
capabilities negotiation; and synchronize key usage."
[Alper Yergin] I think, we should either:
- change "SHOULD" to "MAY" or "can"; or
- "where the lower layer security services such as per-packet
confidentiality, authentication, integrity and replay protection will
to be enabled"
In Section 7.14, change:
"   EAP does not support cleartext password authentication.  This
   omission is intentional.  Where EAP is carried over physically
   insecure lower layers, including wireless LANs [IEEE-802.11] or the
   Internet, use of cleartext passwords would allow the password to be
   captured by an attacker with access to the lower layer.

   Since protocols encapsulating EAP, such as RADIUS [RFC3579], may not
   provide confidentiality, even where the lower layer is physically
   secure, EAP frames may be subsequently encapsulated for transport
   over the Internet where they may be captured by an attacker."
To:
"  EAP does not support cleartext password authentication.  This
   omission is intentional.  Use of cleartext passwords would allow the password to be
   captured by an attacker with access to the link.

   Since protocols encapsulating EAP, such as RADIUS [RFC3579], may not
   provide confidentiality, EAP frames may be subsequently encapsulated for transport
   over the Internet where they may be captured by an attacker."
[Alper Yergin] I don't think this is an "EAP support" issue. This is just a matter of
defining an "EAP method". Unless we explicitly forbid design of such a
method, we should remove the above statement. I don't think this is for EAP
specification to decide. [I understand why it's a bad idea to have cleartext
passwords, but the above statement is confusing the role of EAP, EAP
methods, etc.]
[BA] There is an IETF prohibition against cleartext passwords, so this is indeed explicitly forbidden.
[BA] Here is the proposed resolution:

In Section 3.1, change:

" [3] Lower layer security. EAP assumes that lower layers either
provide physical security (e.g., wired PPP or IEEE 802 links) or
support per-packet authentication, integrity and replay
protection. EAP SHOULD NOT be used on physically insecure links
(e.g., wireless or the Internet) where subsequent data is not
protected by per-packet authentication, integrity and replay
protection."

To:

" [3] Lower layer security. EAP does not require
lower layers to provide security services such as
per-packet confidentiality, authentication, integrity and
replay protection. However, where these security
services are available, EAP methods supporting Key
Derivation (see Section 7.2.1) can be used to provide dynamic keying
material. This makes it possible to bind the EAP authentication
to subsequent data and protect against data modification, spoofing
or replay. See Section 7.1 for details."

In Section 3.4, change:

" After EAP authentication is complete, the peer will typically
transmit data to the network via the authenticator. In order to
provide assurance that the peer transmitting data is the same entity
that successfully completed EAP authentication, the lower layer needs
to bind per-packet integrity, authentication and replay protection to
the original EAP authentication, using keys derived during EAP
authentication. Alternatively, the lower layer needs to be
physically secure. Otherwise it is possible for subsequent data
traffic to be hijacked or replayed.

As a result of these considerations, EAP SHOULD be used only when
lower layers provide physical security for data (e.g., wired PPP or
IEEE 802 links), or for insecure links, where per-packet
authentication, integrity and replay protection is provided."

To:

"After EAP authentication is complete, the peer will typically
transmit and receive data via the authenticator. It is
desirable to provide assurance that the entities transmitting data
are the same ones that successfully completed EAP authentication.
To accomplish this, it is necessary for the lower layer to provide
per-packet integrity, authentication and replay protection and
to bind these per-packet services to the keys derived during EAP
authentication. Otherwise it is possible for subsequent data
traffic to be modified, spoofed or replayed."

In Section 5.1, change:

"Identity Requests and Responses are not protected, so
from a privacy perspective it is preferable for an EAP method to
include its own protected identity exchange."

To:

"Identity Requests and Responses are sent in cleartext, so
that an attacker may snoop on the identity, or even modify
or spoof identity exchanges. To address these threats,
it is preferable for an EAP method to include an identity
exchange that supports per-packet authentication,
integrity and replay protection and confidentiality."

Change Section 7 to:

"7. Security Considerations

This section defines a generic threat model and as well
as the corresponding EAP method security claims
mitigating those threats.

It is expected that the generic threat model and corresponding
security claims will used to define EAP method requirements for
use in specific environments. An example of such a requirements
analysis is provided in [IEEE80211iReq].
A security claims section is required in EAP method
specifications, so that EAP methods can be evaluated
against the requirements."

Add as an informative reference:

"[IEEE80211iReq]
Kerry, S., "Input the IETF EAP Working Group on Methods and Key
Strength", IEEE 802.11 liason letter,
http://www.ietf.org/IESG/LIAISON/LS-ieee-80211.txt, March 2003."

In Section 7.1, change:

"On physically insecure networks, it is possible for an attacker to
gain access to the physical medium. This enables a range of attacks,
including the following:"

To:

"EAP was developed for use with dialup PPP [RFC1661] and was later
adapted for use in wired IEEE 802 networks [IEEE-802] in
[IEEE-802.1X]. Subsequently EAP has been proposed for use on wireless
LAN networks, and over the Internet. In all these situations it is
possible for an attacker to gain access to links over which
EAP packets are transmitted. For example,
attacks on telephone infrastructure are documented in
[DECEPTION].

An attacker with access to the link may carry out a number of attacks,
including:"

In Section 7.1, change:

"Where EAP is used over wired networks, an attacker typically requires
access to the physical infrastructure in order to carry out these
attacks. However, where EAP is used over wireless networks, EAP
packets may be forwarded by authenticators (e.g., pre-authentication)
so that the attacker need not be within the coverage area of an
authenticator in order to carry out an attack on it or its peers.
Where EAP is used over the Internet, attacks may be carried out at an
even greater distance."

To:

"Depending on the lower layer, these attacks may be carried out
without requiring physical proximity. where EAP is used
over wireless networks, EAP packets may be forwarded by
authenticators (e.g., pre-authentication) so that the attacker
need not be within the coverage area of an authenticator in
order to carry out an attack on it or its peers. Where EAP is
used over the Internet, attacks may be carried out at an
even greater distance."

In Section 7.2, delete:

"[a] Intended use. This includes a statement of whether the method is
intended for use over a physically secure or insecure network, as
well as a statement of the applicable lower layers."

In Sections 5.1, 5.2, 5.3.1, 5.3.2, 5.4, 5.5, 5.6 delete the Intended Use
claim.

In Section 7.5, change:

"In the case of PPP and IEEE 802 wired links, it is assumed that such
attacks are restricted to attackers who can gain access to the
physical link. However, where EAP is run over physically insecure
lower layers such as wireless (802.11 or cellular) or the Internet
(such as within protocols supporting PPP, EAP or Ethernet Tunneling),
this assumption is no longer valid and the vulnerability to attack is
greater.

To protect EAP messages sent over physically insecure lower layers,
methods providing mutual authentication and key derivation, as well
as per-packet origin authentication, integrity and replay protection
SHOULD be used."

To:

"To protect EAP packets against modification, spoofing or replay, methods
supporting protected ciphersuite negotiation, mutual authentication
and key derivation as well as integrity and replay protection are
recommended. See Section 7.2.1 for definition of these security claims."

In Section 7.6, change:

"In order to protect against dictionary attacks, authentication
algorithms resistant to dictionary attack (as defined in Section 7.2)
SHOULD be used where EAP runs over lower layers which are not physically
secure."

To:

"In order to protect against dictionary attacks, authentication
methods resistant to dictionary attacks (as defined in Section 7.2.1)
are recommended."

In Section 7.7, change:

"With EAP methods supporting one-way authentication, such as EAP-MD5,
the peer does not authenticate the authenticator. Where the lower
layer is not physically secure (such as where EAP runs over wireless
media or the Internet), the peer is vulnerable to a rogue
authenticator. As a result, where the lower layer is not physically
secure, a method supporting mutual authentication is RECOMMENDED."

To:

"With EAP methods supporting one-way authentication, such as EAP-MD5,
the peer does not authenticate the authenticator, making the
peer vulnerable to attack by a rogue authenticator. Methods
supporting mutual authentication (as defined in Section 7.2.1)
address this vulnerability."

In Section 7.11, change:

"As a result, as noted in Section 3.1, where EAP is used over a
physically insecure lower layer, per-packet authentication, integrity
and replay protection SHOULD be used, and per-packet confidentiality
is also recommended."

To:

"To protect against data modification, spoofing or snooping, it is
recommended that EAP methods supporting mutual authentication,
and key derivation (as defined by Section 7.2.1) be used, along with
a lower layers providing per-packet confidentiality, authentication,
integrity and replay protection."

Change Section 7.12 to:

"There are reliability and security issues with link
layer indications in PPP, IEEE 802 LANs and IEEE 802.11 wireless LANs:

[a] PPP. In PPP, link layer indications such as LCP-Terminate (a
link failure indication) and NCP (a link success indication) are
not authenticated or integrity protected. They can therefore be
spoofed by an attacker with access to the link.

[b] IEEE 802. IEEE 802.1X EAPOL-Start and EAPOL-Logoff frames
are not authenticated or integrity protected. They can therefore
be spoofed by an attacker with access to the link.

[c] IEEE 802.11. In IEEE 802.11, link layer
indications include Disassociate and Deauthenticate frames (link
failure indications), and the first message of the 4-way
handshake (link success indication). These messages are not
authenticated or integrity protected, and although they are not
forwardable, they are spoofable by an attacker within range.

In IEEE 802.11, IEEE 802.1X data frames may be sent as Class 3
unicast data frames, and are therefore forwardable. This implies
that while EAPOL-Start and EAPOL-Logoff messages may be
authenticated and integrity protected, they can be spoofed by an
authenticated attacker far from the target when
"pre-authentication" is enabled.

In IEEE 802.11 a "link down" indication is an unreliable
indication of link failure, since wireless signal strength can
come and go and may be influenced by radio frequency interference
generated by an attacker. To avoid unnecessary resets, it is
advisable to damp these indications, rather than passing them
directly to the EAP. Since EAP supports retransmission, it is
robust against transient connectivity losses."

In Section 7.13, change:

" [c] Where EAP is used over lower layers which are not physically
secure, after completion of the EAP conversation, a secure
association protocol SHOULD be run between the peer and
authenticator in order to provide mutual authentication;
guarantee liveness of the TSKs; provide protected ciphersuite and
capabilities negotiation; synchronize key usage."

To:

" [c] After completion of the EAP conversation, where lower layer
lower layer security services such as per-packet confidentiality,
authentication, integrity and replay protection will be enabled,
a secure association protocol SHOULD be run between
the peer and authenticator in order to provide mutual authentication
between the peer and authenticator; guarantee liveness of transient session keys;
provide protected ciphersuite and capabilities negotiation for subsequent
data; and synchronize key usage."

In Section 7.14, change:

" EAP does not support cleartext password authentication. This
omission is intentional. Where EAP is carried over physically
insecure lower layers, including wireless LANs [IEEE-802.11] or the
Internet, use of cleartext passwords would allow the password to be
captured by an attacker with access to the lower layer.

Since protocols encapsulating EAP, such as RADIUS [RFC3579], may not
provide confidentiality, even where the lower layer is physically
secure, EAP frames may be subsequently encapsulated for transport
over the Internet where they may be captured by an attacker."

To:

"This specification does not define a mechanism for cleartext password
authentication. The omission is intentional. Use of cleartext passwords
would allow the password to be captured by an attacker with access a
link over which EAP packets are transmitted.

Since protocols encapsulating EAP, such as RADIUS [RFC3579], may not
provide confidentiality, EAP packets may be subsequently encapsulated
for transport over the Internet where they may be captured by an
attacker."
Proposed resolution: Accept
Issue 209: Applicability statement
Submitter name: Allison Mankin
Submitter email address: mankin@psg.com
Date first submitted: 12/17/2003
Reference: 
Document:  RFC 2284bis-07
Comment type: E
Priority: S
Section: 1.3
Rationale/Explanation of issue:
I think there are many virtues to this spec, but it needs more attention to 
the applicability description. The problem is epitomized by comments such as:

   Where transport efficiency is a consideration, and IP transport is
   available, it may be preferable to expose an artificially high EAP
   MTU to EAP and allow fragmentation to take place in IP.
   Alternatively, it is possible to choose other security mechanisms
   such as TLS [RFC2246] or IKE [RFC2409] or an alternative
   authentication framework such as SASL [RFC2222] or GSS-API [RFC2743].

How could the same application use GSS-API or SASL if it intended to use EAP
 
They seem to have very different domains of applicability.  It would be good
to discuss the ways that EAP is very applicable and ways in which it can be
kind of wedged into use, with results that may be only just satisfactory.
[BA] Proposed resolution is as follows:
Change Section 1.3 to:

"1.3 Applicability

EAP was designed for use in network access authentication, where
IP layer connectivity may not be available. Use of EAP for
other purposes, such as bulk data transport, is NOT RECOMMENDED.

Since EAP does not require IP connectivity, it provides just
enough support for the reliable transport of authentication
protocols, and no more.

EAP is a lock-step protocol which only supports a single packet in
flight. As a result EAP cannot efficiently transport bulk
data, unlike transport protocols such as TCP [RFC793] or SCTP [RFC2960].

While EAP provides support for retransmission, it assumes
ordering guarantees provided by the lower layer, so that out of
order reception is not supported.

Since EAP does not support fragmentation and reassembly,
EAP authentication methods generating payloads larger than
the minimum EAP MTU need to provide fragmentation support.

While authentication methods such as EAP-TLS [RFC2716]
provide support for fragmentation and reassembly, the EAP
methods defined in this document do not. As a result,
if the EAP packet size exceeds the EAP MTU of the link,
these methods will encounter difficulties.

EAP authentication is initiated by the server (authenticator), whereas
many authentication protocols are initiated by the client (peer). As a
result, it may be necessary for an authentication algorithm to add one or
two additional messages (at most one roundtrip) in order to run over EAP.

Where certificate-based authentication is supported, the number
of additional roundtrips may be much larger due to fragmentation of
certificate chains. In general, a fragmented EAP packet
will require as many round-trips to send as there are fragments. For
example, a certificate chain 14960 octets in size would require ten
round-trips to send with a 1496 octet EAP MTU.

Where EAP runs over a lower layer in which significant packet loss is
experienced, or where the connection between the authenticator and
authentication server experiences significant packet loss, EAP methods
requiring many round-trips can experience difficulties. In these
situations, use of EAP methods with fewer roundtrips is advisable."

Proposed resolution: Accept
Issue 210: No name for the "top EAP keying material"
Submitter name: Florent Bersani
Submitter email address: florent.bersani@francetelecom.com
Date first submitted: 12/16/2003
Reference: http://mail.frascone.net/pipermail/public/eap/2003-December/001997.html
Document:  KeyFrame-01
Comment type: E
Priority: 2
Section: 2.2
Rationale/Explanation of issue:

Although the EAP hierarchy is very clearly described in section 2.2, I
experienced some difficulties to present it to colleagues for a trivial
reason: the top EAP key (i.e. the one that is somehow involved in the MK
derivation e.g Ki in the EAP-SIM method, the private keys associated to
the digital certificates used within EAP-TLS) does not appear to have a
name. Things would become easier if there was standard terminology.

Requested change:

Add to section 2.2 at the beginning of the different key types enumerations:
EAP Permanent Key (PK):
To perform authentication and key exchange, an EAP method uses a
permanent secret. This secret MAY belong either to the symmetric
cryptography or asymmetric cryptography category.

Add to Figure 2:
"(PK)" near the text "EAP method" in the top left corner of the figure
"(MK)" in the box labeled "EAP Method Key Derivation"

Add to Figure 3:
"PK," before "(MSK,TEKs)"

Add to Figure 4:
"PK," before "(MSK,TEKs)"

Add to appendix B:
"Pre-master secret": created or exchanged thanks to the PK which are
digital certificates in the case of TLS
[This wording "created or exchanged" wants to encompass all the TLS
possibilities: RSA, DH,...]

[In general, I don't like very much my wording but issue submitters have
to propose solutions to their issues, don't they ;-)?]
[BA]  One potential resolution to this
is to use the term "Long Term Secret" to refer to either a long-term
pre-shared key or a private key. However, in RFC 2284bis we eliminated
discussion of the Master Key since not all methods use this, so I'm not
sure it makes sense to add references to this in the Key Framework
Document.
[Florent] I agree with you so why not "EAP (long term?) credential".

Wouldn't this wording allow for unambiguous naming of the root of the
EAP key hierarchy Hierarchy and at the same time apply to the whole
variety of methods' "root keys" (symmetric, asymmetric, OTP,...) - my
quick answer, I'll go to the list to review the previous debates

So I suggest using the label "EAP long-term credential" and including
text to explain that this credential might be instantiated in numerous ways:
"The EAP (long term) credential is the credential the peer and the
server resort to when doing a full EAP authentication*. It might be a
symmetric cryptography key, an asymmetric cryptography key, a one-time
password generator,..."

My feeling was though that you only have (for now) essentially two types
of credentials: symmetric and asymmetric ones.

Anyway, it is a minor issue but it in my opinion, naming the top of the
tree would help to clarify things.

What do you think?
[Bernard Aboba] Here is the proposed resolution: 
Add the following definition to Section 2.1: 

Long Term Credential
EAP methods frequently m