Hi,

> Stefan:
>
> Actually this is already specified in TEAP. Section 3.6.1, states:
>
> If the TEAP peer detects an error at any point in the TLS layer, the
>    TEAP peer should send a TEAP response encapsulating a TLS record
>    containing the appropriate TLS alert message.  The server may restart
>    the conversation by sending an TEAP request packet encapsulating the
>    TLS HelloRequest handshake message.  The peer may allow the TEAP
>    conversation to be restarted or it may terminate the conversation by
>    sending an TEAP response with an zero-length message.
>
> So the peer should send back a TLS alert, like unknown_ca,
> certificate_unknown, bad_certificate etc to alert the server that the server
> certificate failed authentication.

D'oh, I only looked in 3.2 "Phase 1" and overlooked that text further
down. Sorry for the noise... and a +1 that this is the right response to
send!

Stefan

>
>
> On 3/27/12 5:25 AM, "Stefan Winter" <stefan.win...@restena.lu> wrote:
>
>> Hello,
>>
>> during a discussion yesterday with some folks on EAP-PWD, we hit an
>> issue which I think is also of relevance for TEAP.
>>
>> The issue is: assume an ongoing TEAP tunnel setup, the server sends a
>> certificate, but it's not the one the client expects.
>>
>> With the current tunneled EAP methods (and also PWD in its current
>> form), the client will recognise that it doesn't like the remote end and
>> will stop communicating immediately.
>>
>> For the client, there is no negative side-effect to that. It can simply
>> discard all EAP session state and that's it.
>>
>> The server side though only sees its last EAP-Request going out to the
>> EAP peer, and will wait for a response. The response will never come,
>> but the server needs to keep EAP session state for the conversation
>> until it hits a (potentially very long) timeout.
>>
>> The underlying problem is that the EAP state machine doesn't finish, it
>> just hangs mid-air. One end knows and discards, the other doesn't. This
>> means the server will pile up useless state information. It also makes
>> debugging client problems harder, because there is no final Reject going
>> out to the client (when doing EAP over RADIUS, often Accepts and Rejects
>> are logged, but intermediate Access-Challenges aren't).
>>
>> If there were a "bailout" trailer to end a failed server ID
>> verification, things could get much cleaner in that respect. I'm not
>> sure how exactly to encode it; maybe a EAP-Response with a TLS alert.
>> Upon receiving the alert, the EAP server could craft its final
>> EAP-Failure, send it out, and discard session state.
>>
>> Of course one argument is: if the ID verification failure is because you
>> were connecting to a rogue server, you as a client shouldn't be so kind
>> to help the rogue clean up his state. While that's true, verification
>> failures are extremely often simply due to user misconfiguration (typo
>> in expected server name, wrong CA box ticked) or subtle
>> mis-configuration on the server side (not adding the TLS Web Server OID
>> as Extended Usage, which the Windows supplicant chokes about). In these
>> cases, it is quite helpful to make the server actively aware that
>> something went wrong.
>>
>> I wonder if "something like that" could be considered for TEAP. In
>> eduroam, we sort of miss it in PEAP at least. FreeRADIUS has a heuristic
>> that "guesses" that it's an ID verification problem, but only does so in
>> debug mode. And it being a heuristic, sometimes it's just wrong. So
>> getting a clear "The client didn't like me" message to act upen would be
>> a good thing IMHO.
>>
>> Greetings,
>>
>> Stefan Winter
>> _______________________________________________
>> Emu mailing list
>> Emu@ietf.org
>> https://www.ietf.org/mailman/listinfo/emu

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

Reply via email to