Chris Hessing wrote:
> I apologize if this has been hashed out before, but looking at the list
> archives I couldn't see anywhere it had.
  There have been hallway discussions about some of these issues, but
little on this list.  EAP-FAST has been published as RFC 4851, and
revisiting it is not currently a charter item.

  That being said, some discussion on this list is fine if it doesn't
distract from charter requirements.

> 1. EAP-FAST feeds the client and server random in to the TLS PRF in the
> opposite order that TTLS and PEAP do.  I can't think of a good reason to
> do this.  Is there some security advantage to doing this?  If not, why
> require implementations to handle this case for no real gain?

  I have seen no reason for this, other than implementation choice.
Since this choice is part of the current specification, and is deployed,
changing it now will be difficult.

> 2. EAP-FAST modifies the documented behavior of both MS-CHAPv2 and
> GTC.   For MS-CHAPv2 again it is unclear why the changes are needed. 
> What is the advantage of seeding MS-CHAPv2 with data from the outer
> tunnel?  It doesn't seem to add any additional security or value, but
> does complicate the implementation for MS-CHAPv2.  Also, why is the key
> derivation in MS-CHAPv2 different for FAST than for a non-FAST MS-CHAPv2
> authentication?

  The challenge for MS-CHAPv2 is calculated similarly in EAP-TTLS.  See
RFC 5281, Section 11.1.  This calculation enables implementations to
avoid certain kinds of attacks.

> For GTC, I find the changes even more disturbing.  Why overload GTC by
> having the both ends of the conversation look in to a field that is
> supposed to be a free-form string displayed to the user?  Even more
> confusing is why this would happen when the end result is something far
> more suited to a TLV.

  That would seem to have been a better design choice, yes.

> It seems like a bad precedent to set to allow an EAP method from one
> organization to overload the behavior of an EAP method of another
> organization.  The end result is more complicated implementations, and
> more user confusion when things go wrong due to minor differences
> between different implementations.

  RFC 4851 contains few references to EAP-GTC.  The only ones I see are
in section A.2, as examples of failed authentication.  It appears that
any changes to EAP-GTC are not part of this specification.

> 3. During my implementation, I discovered some behaviors that are not
> documented in the relevant drafts.  To make it clear, I am making the
> assumption that the software provided by the vendor backing the draft
> would be the de-facto correct implementation.  When working against
> Ciscos ACS server I found that a username/password failure when using
> GTC results in a new GTC challenge that contains a string that is in the
> form of an MS-CHAPv2 failure message.  Behavior like this further
> overloads EAP-GTC in ways that provide little useful benefit.  (To be
> fair, I like EAP methods that give some sort of reason for the failure,
> but overloading a free-form user displayable string in this way seems bad.)

  Since changes to EAP-GTC are not part of the published specification,
the behavior you see would best be labeled "vendor extensions".

  There is an EAP-FAST GTC draft:

        http://tools.ietf.org/html/draft-zhou-emu-fast-gtc-05

  It documents the GTC implementation that is tunneled inside of
EAP-FAST.  The document addresses the issue of overloading thge EAP-GTC
type (6), for use as EAP-FAST-GTC.

  It may be best for implementations to treat EAP-FAST-GTC as an EAP
type that is completely independent of EAP-GTC.  This may mean "hacks"
like internally mapping EAP type 6 inside of EAP-FAST to a different,
vendor-defined extended type.

  This has the problem that it allocates one vendor type to
EAP-FAST-GTC, but it has the benefit that it does not require
modifications to the base EAP-GTC protoool.

> 4. Item #3 above was one of a few different places that I found
> implementations that didn't match what the documentation said.  Things
> like that make it difficult to develop an implementation that is fully
> compatible.

  Do you have feedback on the EAP-FAST-GTC draft?  Comments directly to
the author would seem appropriate.

> With anonymous provisioning the supplicant has to implicitly trust the
> authentication server it is talking to.   The only piece of information
> the supplicant has that it can use to attempt to verify the server is
> the A-ID that is provided.  But, in a provisioning mode the supplicant
> doesn't really have a way to verify that the A-ID is valid.  As a
> result, the supplicant will continue on with the provisioning and
> provide the server with its credentials.

  That is a problem with anonymous provisioning.

> In the best case scenario, the supplicant is configured to only allow
> the user of MS-CHAPv2 for provisioning, so "all" the bad guy gets is the
> resulting MS-CHAPv2 hash which can then be attacked directly and
> off-line.  In the worst case the supplicant allows GTC to be used for
> provisioning and the clear text credentials are handed over to the
> attacker.

  Something similar can happen with EAP-TTLS / PAP, if the supplicant
does not validate the server certificate.

  Alan DeKok.
_______________________________________________
Emu mailing list
Emu@ietf.org
https://www.ietf.org/mailman/listinfo/emu

Reply via email to