MS-CHAP-V2 with no retry
Phil Mayers
p.mayers at imperial.ac.uk
Sun Apr 10 11:42:45 CEST 2011
On 04/09/2011 06:18 PM, James J J Hooper wrote:
> On 08/04/2011 08:54, Alan DeKok wrote:
>> Phil Mayers wrote:
>>> +1 - In my experience it's necessary to cater for windows' weirdness
>>> *first*. Most other clients have sane behaviours. I'm concerned about
>>> the "we didn't do much windows testing" line...
>>
>> Yup.
>>
>> I've just pushed some changes to the git "v2.1.x" branch. See:
>>
>> raddb/modules/mschap
>> - allow_retry
>> - retry_msg
>>
>> raddb/eap.socn
>> - send_error
>>
>> The default is no change. See the documentation for how to test the
>> new features.
>
> Hi Alan,
>
> I've may have mis-understood the code, but I think the EAP MS-CHAP-v2
> Failure packet, should be an EAP *request* (currently it's EAP failure)??
>
> http://tools.ietf.org/html/draft-kamath-pppext-eap-mschapv2-01#page-12
All,
People might find this helpful; if you send an invalid password for an
otherwise-active account, Windows 2008R2 NPS sends an EAP request,
containing an MS-CHAP error with R=1 and does *not* end the EAP/PEAP
session - I am assuming a windows client could, in this case, re-try
MS-CHAP without restarting the PEAP session, using the challenge sent in
the MS-CHAP error.
eapol_test shows this for the final packket:
decapsulated EAP packet (code=1 id=7 len=91) from RADIUS server:
EAP-Request-PEAP (25)
EAPOL: Received EAP-Packet frame
EAPOL: SUPP_BE entering state REQUEST
EAPOL: getSuppRsp
EAP: EAP entering state RECEIVED
EAP: Received EAP-Request id=7 method=25 vendor=0 vendorMethod=0
EAP: EAP entering state METHOD
SSL: Received packet(len=91) - Flags 0x00
EAP-PEAP: received 85 bytes encrypted data for Phase 2
EAP-PEAP: Decrypted Phase 2 EAP - hexdump(len=53): 1a 04 06 00 34 45 3d
36 39 31 20 52 3d 31 20 43 3d 36 37 46 43 33 44 45 32 30 38 31 30 45 33
34 35 37 41 30 41 39 41 37 34 42 43 37 45 31 30 45 32 20 56 3d 33
EAP-PEAP: received Phase 2: code=1 identifier=7 length=57
EAP-PEAP: Phase 2 Request: type=26
EAP-MSCHAPV2: RX identifier 7 mschapv2_id 6
EAP-MSCHAPV2: Received failure
EAP-MSCHAPV2: Failure data - hexdump_ascii(len=48):
45 3d 36 39 31 20 52 3d 31 20 43 3d 36 37 46 43 E=691 R=1 C=67FC
33 44 45 32 30 38 31 30 45 33 34 35 37 41 30 41 3DE20810E3457A0A
39 41 37 34 42 43 37 45 31 30 45 32 20 56 3d 33 9A74BC7E10E2 V=3
EAP-MSCHAPV2: error 691
EAP-MSCHAPV2: retry is allowed
EAP-MSCHAPV2: failure challenge - hexdump(len=16): 67 fc 3d e2 08 10 e3
45 7a 0a 9a 74 bc 7e 10 e2
EAP-MSCHAPV2: password changing protocol version 3
EAP-MSCHAPV2: failure message: '' (retry allowed, error 691)
EAPOL: EAP parameter needed
EAPOL: EAP parameter needed
I will try with a windows client on Monday; I suspect it'll continue
inside the existing PEAP tunnel with a retry since R=1, which means if
we want to get the "right" behaviour as defined by the Microsoft
implementation (PEAP is after all their protocol) we might be doing the
wrong thing.
More information about the Freeradius-Users
mailing list