Empty EAP-FAST exchange after Phase 1 authentication

Eric Fung efung at acm.org
Wed Jun 27 15:18:08 EDT 2007


> Thanks for testing and reporting this! The EAP-FAST server side
> implementation is still quite experimental and it hasn't yet received
> much testing. It is based on the EAP-PEAP implementation that did not
> support session resumption or abbreviated TLS handshake. Consequently,
> it did not really expect Phase 1 to be completed with a message from the
> peer.
> 
> I fixed this now by allowing the server to bypass the extra state that
> is needed in the non-abbreviated TLS case and move directly into sending
> Phase 2 data as a response to the received TLS ClientFinished message.

I don't know whether this is related, but I've also noticed that during Phase 
1, after the hostapd server sends ChangeCipherSpec and Finished, if the client 
responds with an encrypted fatal alert, it is never processed by the TLS layer 
and the server proceeds to Phase 2.

Here is the hostapd log. I've marked the encrypted fatal alert with >>> below:

EAP-FAST: PHASE1 -> PHASE2_START
EAP: EAP entering state SEND_REQUEST
EAP: eapReqData -> EAPOL - hexdump(len=65): 01 c9 00 41 2b 01 14 03 01 00 01 01 
16 03 01 00 30 7a a3 73 ed e6 1c 51 c7 39 8c 8d 67 86 6c 42 96 5c 05 f5 c7 a5 
21 b8 8b 59 13 89 25 99 b4 3e 68 b5 0c 36 bd 1c 00 bc b2 c3 59 ce 52 11 0c d5 3a
EAP: EAP entering state IDLE
IEEE 802.1X: 00:0f:cb:fa:da:7a BE_AUTH entering state REQUEST
ath0: STA 00:0f:cb:fa:da:7a IEEE 802.1X: Sending EAP Packet (identifier 201)
TX EAPOL - hexdump(len=83): 00 0f cb fa da 7a 00 0f cb fa 18 f3 88 8e 02 00 00 
41 01 c9 00 41 2b 01 14 03 01 00 01 01 16 03 01 00 30 7a a3 73 ed e6 1c 51 c7 
39 8c 8d 67 86 6c 42 96 5c 05 f5 c7 a5 21 b8 8b 59 13 89 25 99 b4 3e 68 b5 0c 
36 bd 1c 00 bc b2 c3 59 ce 52 11 0c d5 3a
IEEE 802.1X: 00:0f:cb:fa:da:7a REAUTH_TIMER entering state INITIALIZE
IEEE 802.1X: 00:0f:cb:fa:da:7a REAUTH_TIMER entering state INITIALIZE
IEEE 802.1X: 51 bytes from 00:0f:cb:fa:da:7a
    IEEE 802.1X: version=1 type=0 length=47
    EAP: code=2 identifier=201 length=47 (response)
ath0: STA 00:0f:cb:fa:da:7a IEEE 802.1X: received EAP packet (code=2 id=201 
len=47) from STA: EAP Response-FAST (43)
IEEE 802.1X: 00:0f:cb:fa:da:7a BE_AUTH entering state RESPONSE
 >>>EAP: EAP-Response received - hexdump(len=47): 02 c9 00 2f 2b 81 00 00 00 25 
15 03 01 00 20 b5 e2 7a 42 24 02 88 94 d9 e6 8e 79 6c 2a cb 18 2f 51 5c ca a6 
09 c3 c1 2c 69 45 1d ad d3 0e 69
IEEE 802.1X: 00:0f:cb:fa:da:7a REAUTH_TIMER entering state INITIALIZE
IEEE 802.1X: 00:0f:cb:fa:da:7a REAUTH_TIMER entering state INITIALIZE
EAP: EAP entering state RECEIVED
EAP: parseEapResp: rxResp=1 respId=201 respMethod=43 respVendor=0 
respVendorMethod=0
EAP: EAP entering state INTEGRITY_CHECK
EAP: EAP entering state METHOD_RESPONSE
EAP-FAST: Received packet(len=47) - Flags 0x81
EAP-FAST: TLS Message Length: 37
EAP-FAST: PHASE2_START -> PHASE2_ID
EAP: EAP entering state METHOD_REQUEST
EAP: building EAP-Request: Identifier 202
EAP-FAST: Phase 2 EAP-Request - hexdump(len=5): 01 ca 00 05 01
EAP-FAST: Add EAP-Payload TLV
EAP-FAST: Encrypting Phase 2 TLVs - hexdump(len=9): 80 09 00 05 01 ca 00 05 01
EAP: EAP entering state SEND_REQUEST




More information about the HostAP mailing list