Fan Zhang
2010-10-18 22:34:36 UTC
Hi All,
I am developping the madwifi based on AR5212 cards, madwifi-ng, Ubuntu 10.04
32-bit with the kernel (2.6.32).
I want to randomly change MAC addresses of a client when it communicates
with an AP.
Now the problem is that Group Key Handshake can not be completed because of
"EAPOL-Key timeout".
I debug the trace on both AP and client sides. I found that the AP have
sent 1/2 msg of Group Key Handshake to client.
The client also received, then it set a TKIP key and sent a response to the
AP. Everything looks like right.
But on the AP side, the frame received is different from what the client had
sent.
That is strange.
Does anyone can give me some suggestions to solve this problem?
Thank you very much.
For example, I list the frames below:
(1) AP side: it sent 1/2 msg of Group Key Handshake to client.
ubuntu kernel: [ 726.496475] FrDS
06:20:a6:54:68:46->00:12:23:3d:d5:56(06:20:a6:54:68:46) data Prot. [IV 02 00
00 00 00 00 KID 0] 36M +55
ubuntu kernel: [ 726.496486]
ubuntu kernel: [ 726.496488] 08 4a 2c 00 00 12 23 3d d5 56 06 20 a6 54 68
46
ubuntu kernel: [ 726.496502] 06 20 a6 54 68 46 40 2b 02 00 00 20 00 00 00
00
ubuntu kernel: [ 726.496516] aa aa 03 00 00 00 88 8e 02 03 00 87 fe 03 92
00
ubuntu kernel: [ 726.496530] 20 00 00 00 00 00 00 00 05 d0 7b a1 11 cb 40
d5
ubuntu kernel: [ 726.496544] 12 9c d1 5c 68 6d f3 ac 81 92 69 21 c5 3b 73
10
ubuntu kernel: [ 726.496558] de 14 a7 7d 53 d4 8e 0c b0 00 00 00 00 00 00
00
ubuntu kernel: [ 726.496572] 00 00 00 00 00 00 00 00 00 29 00 00 00 00 00
00
ubuntu kernel: [ 726.496586] 00 00 00 00 00 00 00 00 00 c9 da e6 bc ed ce
0b
ubuntu kernel: [ 726.496600] 57 72 24 95 e4 60 30 a6 13 00 28 97 b7 27 e0
bd
ubuntu kernel: [ 726.496614] 56 42 69 08 36 db ce 62 27 cb 08 28 07 75 16
68
ubuntu kernel: [ 726.496627] 8a 80 74 a4 b2 53 cc cc 58 73 4e 60 60 2b d5
79
ubuntu kernel: [ 726.496641] 3d 5b fd bb 01 70 98 c7 4b 0e e9
(2) Clinet side: set the key and sent the response to the AP
ubuntu kernel: [ 726.496858] wifi0: ath_key_update_begin: Begin
ubuntu kernel: [ 726.496867] wifi0/ath0[00:22:43:62:ed:d1]:
ieee80211_crypto_setkey: TKIP keyix 1 flags 0x6 mac 00:00:00:00:00:00 tsc 0
len 16
ubuntu kernel: [ 726.496873] ath_keyset_tkip: [01] TKIP
d7f2b7d970656adc9b2dade4eca96243
mac 00:00:00:00:00:00 rxmic ab7e39d459d2ce01 txmic 0000000000000000
ubuntu kernel: [ 726.496918] wifi0: ath_key_update_end: End
ubuntu kernel: [ 726.496977] ToDS
00:12:23:3d:d5:56->06:20:a6:54:68:46(06:20:a6:54:68:46) data Prot. [IV 02 00
00 00 00 00 KID 0] 48M
ubuntu kernel: [ 726.496991]
ubuntu kernel: [ 726.496995] 08 41 2c 00 06 20 a6 54 68 46 00 12 23 3d d5
56
ubuntu kernel: [ 726.497016] 06 20 a6 54 68 46 50 00 02 00 00 20 00 00 00
00
ubuntu kernel: [ 726.497037] aa aa 03 00 00 00 88 8e 01 03 00 5f fe 03 12
00
ubuntu kernel: [ 726.497058] 20 00 00 00 00 00 00 00 05 00 00 00 00 00 00
00
ubuntu kernel: [ 726.497079] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00
ubuntu kernel: [ 726.497100] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00
ubuntu kernel: [ 726.497121] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00
ubuntu kernel: [ 726.497141] 00 00 00 00 00 00 00 00 00 6d d0 7f 51 c5 1c
a0
ubuntu kernel: [ 726.497162] ce 20 10 e8 bb c5 09 f7 f6 00 00
(3) But in the AP side, the frame is not the above one. It is very
different.
ubuntu kernel: [ 538.978082] 08 49 2c 00 06 20 a6 54 68 46 00 12 23 3d d5
56
ubuntu kernel: [ 538.978103] 06 20 a6 54 68 46 50 00 02 00 00 20 00 00 00
00
ubuntu kernel: [ 538.978124] 06 47 29 45 79 8c 9a b1 11 33 95 8b 98 c4 ff
ab
ubuntu kernel: [ 538.978144] 1b d3 f8 d9 05 15 2a 20 0a 55 ca 60 0b 5a 0d
ef
ubuntu kernel: [ 538.978165] 2c 17 67 bf c1 70 34 4e 2a ed 84 a7 5c 5c 71
98
ubuntu kernel: [ 538.978185] 35 8e 50 be 36 ae c5 8e 3e ad 45 0a bd 32 ba
35
ubuntu kernel: [ 538.978205] a7 3d ac 9a 29 6f 59 05 df dd 8d 2b ab a7 27
3f
ubuntu kernel: [ 538.978224] aa 27 d4 b7 9d ac b2 d2 b7 d4 cc 1e 96 02 85
b7
ubuntu kernel: [ 538.978244] c9 b1 cf 8f 47 4e 4a b9 21 6d 7d d4 15 f7 84
9a
ubuntu kernel: [ 538.978264] 04 c4 dd
Best Regards,
Will
I am developping the madwifi based on AR5212 cards, madwifi-ng, Ubuntu 10.04
32-bit with the kernel (2.6.32).
I want to randomly change MAC addresses of a client when it communicates
with an AP.
Now the problem is that Group Key Handshake can not be completed because of
"EAPOL-Key timeout".
I debug the trace on both AP and client sides. I found that the AP have
sent 1/2 msg of Group Key Handshake to client.
The client also received, then it set a TKIP key and sent a response to the
AP. Everything looks like right.
But on the AP side, the frame received is different from what the client had
sent.
That is strange.
Does anyone can give me some suggestions to solve this problem?
Thank you very much.
For example, I list the frames below:
(1) AP side: it sent 1/2 msg of Group Key Handshake to client.
ubuntu kernel: [ 726.496475] FrDS
06:20:a6:54:68:46->00:12:23:3d:d5:56(06:20:a6:54:68:46) data Prot. [IV 02 00
00 00 00 00 KID 0] 36M +55
ubuntu kernel: [ 726.496486]
ubuntu kernel: [ 726.496488] 08 4a 2c 00 00 12 23 3d d5 56 06 20 a6 54 68
46
ubuntu kernel: [ 726.496502] 06 20 a6 54 68 46 40 2b 02 00 00 20 00 00 00
00
ubuntu kernel: [ 726.496516] aa aa 03 00 00 00 88 8e 02 03 00 87 fe 03 92
00
ubuntu kernel: [ 726.496530] 20 00 00 00 00 00 00 00 05 d0 7b a1 11 cb 40
d5
ubuntu kernel: [ 726.496544] 12 9c d1 5c 68 6d f3 ac 81 92 69 21 c5 3b 73
10
ubuntu kernel: [ 726.496558] de 14 a7 7d 53 d4 8e 0c b0 00 00 00 00 00 00
00
ubuntu kernel: [ 726.496572] 00 00 00 00 00 00 00 00 00 29 00 00 00 00 00
00
ubuntu kernel: [ 726.496586] 00 00 00 00 00 00 00 00 00 c9 da e6 bc ed ce
0b
ubuntu kernel: [ 726.496600] 57 72 24 95 e4 60 30 a6 13 00 28 97 b7 27 e0
bd
ubuntu kernel: [ 726.496614] 56 42 69 08 36 db ce 62 27 cb 08 28 07 75 16
68
ubuntu kernel: [ 726.496627] 8a 80 74 a4 b2 53 cc cc 58 73 4e 60 60 2b d5
79
ubuntu kernel: [ 726.496641] 3d 5b fd bb 01 70 98 c7 4b 0e e9
(2) Clinet side: set the key and sent the response to the AP
ubuntu kernel: [ 726.496858] wifi0: ath_key_update_begin: Begin
ubuntu kernel: [ 726.496867] wifi0/ath0[00:22:43:62:ed:d1]:
ieee80211_crypto_setkey: TKIP keyix 1 flags 0x6 mac 00:00:00:00:00:00 tsc 0
len 16
ubuntu kernel: [ 726.496873] ath_keyset_tkip: [01] TKIP
d7f2b7d970656adc9b2dade4eca96243
mac 00:00:00:00:00:00 rxmic ab7e39d459d2ce01 txmic 0000000000000000
ubuntu kernel: [ 726.496918] wifi0: ath_key_update_end: End
ubuntu kernel: [ 726.496977] ToDS
00:12:23:3d:d5:56->06:20:a6:54:68:46(06:20:a6:54:68:46) data Prot. [IV 02 00
00 00 00 00 KID 0] 48M
ubuntu kernel: [ 726.496991]
ubuntu kernel: [ 726.496995] 08 41 2c 00 06 20 a6 54 68 46 00 12 23 3d d5
56
ubuntu kernel: [ 726.497016] 06 20 a6 54 68 46 50 00 02 00 00 20 00 00 00
00
ubuntu kernel: [ 726.497037] aa aa 03 00 00 00 88 8e 01 03 00 5f fe 03 12
00
ubuntu kernel: [ 726.497058] 20 00 00 00 00 00 00 00 05 00 00 00 00 00 00
00
ubuntu kernel: [ 726.497079] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00
ubuntu kernel: [ 726.497100] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00
ubuntu kernel: [ 726.497121] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00
ubuntu kernel: [ 726.497141] 00 00 00 00 00 00 00 00 00 6d d0 7f 51 c5 1c
a0
ubuntu kernel: [ 726.497162] ce 20 10 e8 bb c5 09 f7 f6 00 00
(3) But in the AP side, the frame is not the above one. It is very
different.
ubuntu kernel: [ 538.978082] 08 49 2c 00 06 20 a6 54 68 46 00 12 23 3d d5
56
ubuntu kernel: [ 538.978103] 06 20 a6 54 68 46 50 00 02 00 00 20 00 00 00
00
ubuntu kernel: [ 538.978124] 06 47 29 45 79 8c 9a b1 11 33 95 8b 98 c4 ff
ab
ubuntu kernel: [ 538.978144] 1b d3 f8 d9 05 15 2a 20 0a 55 ca 60 0b 5a 0d
ef
ubuntu kernel: [ 538.978165] 2c 17 67 bf c1 70 34 4e 2a ed 84 a7 5c 5c 71
98
ubuntu kernel: [ 538.978185] 35 8e 50 be 36 ae c5 8e 3e ad 45 0a bd 32 ba
35
ubuntu kernel: [ 538.978205] a7 3d ac 9a 29 6f 59 05 df dd 8d 2b ab a7 27
3f
ubuntu kernel: [ 538.978224] aa 27 d4 b7 9d ac b2 d2 b7 d4 cc 1e 96 02 85
b7
ubuntu kernel: [ 538.978244] c9 b1 cf 8f 47 4e 4a b9 21 6d 7d d4 15 f7 84
9a
ubuntu kernel: [ 538.978264] 04 c4 dd
Best Regards,
Will