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
[email protected]
https://www.ietf.org/mailman/listinfo/emu