我目前正在使用 WEP(共享密钥身份验证)挑战/响应机制,我希望有人可以帮助我。
- AP 向 STA 发送质询文本。质询文本为 128 字节
- STA 对质询进行加密并将其发送回 AP。这是 Wireshark 中的 136 个字节(数据)。
我的问题:
谁能告诉我 136 字节数据质询响应的组成以及为什么它是这个大小。
为什么不是 Enc([challengetext (128)] + [icv(4)]) = 132 字节?
谢谢。
我目前正在使用 WEP(共享密钥身份验证)挑战/响应机制,我希望有人可以帮助我。
我的问题:
谁能告诉我 136 字节数据质询响应的组成以及为什么它是这个大小。
为什么不是 Enc([challengetext (128)] + [icv(4)]) = 132 字节?
谢谢。
您在开始时忘记了 IV 的 4 个字节。
我不是专家,我正在使用个人经验来确认问题的答案。随意编辑最终错误的条款。
STA发送的加密帧包含:
802.11 parameters
( 24 bytes
)WEP parameters
(清除 IV + 关键索引) ( 4 bytes
)management headers
(加密) ( 8 bytes
)data
(加密) ( 128 bytes
)ICV
(加密) ( 4 bytes
)Total 是,没有 ICV168 bytes
的加密数据的总和是。136 bytes
Wireshark 和 Cie 显示的加密数据比明文质询长 8 个字节,因为它还带有管理标头(加密但可预测)。
AP发送的明文挑战帧长160字节,加密挑战响应帧长168字节。这不是问题,但让我们把事情弄清楚。
在明文 AP 消息中,管理标头也是明文:
2 bytes
)2 bytes
)2 bytes
)1 byte
)1 byte
)'tag length' bytes
)管理标头长 8 个字节。
在 STA 加密消息中,超过 802.11 层的所有内容都被视为“数据”,因为这是加密的乱码。在此数据之前,您可以找到(802.11 层的一部分)WEP 参数:IV (3 bytes)
和key index (1 bytes)
。这是明文。你也有ICV
, 框架的最后一个4 bytes
。那些8 bytes
出现在所有 WEP 加密帧中。
“数据”部分包含加密的质询和加密的管理标头(这就是您的问题的答案)。
如果您在 WEP 帧中还有 8个字节实际上似乎补偿了 8 个字节的管理标头,那么为什么您的加密质询数据要长 8 个字节?
这不是因为我们之前看到的 IV 或 ICV,因为它们不是挑战数据的一部分。这 8 个字节实际上来自管理标头,在“数据”部分中加密。包含加密质询的帧也是管理帧,但您看不到标头,因为它们已加密。这些是你的 8 个神秘字节(参见下面的简化框架骨架)
我将结束这样一个事实,即这些共享密钥身份验证允许您在没有任何 IV 的情况下对 WEP 身份验证捕获进行离线字典或暴力攻击(当然,用于加密挑战的除外)。前 8 个加密字节是管理标头这一事实使它们可预测(始终相同)。因此,在蛮力实施中,您可以仅对帧的前 4 或 8 个字节进行 RC4,而不是整个 136 个字节,这可以在巨大的字典/完全蛮力攻击中获得更好的性能。
--------------------------------------------------------------
(ieee 802.11 headers) -> 24 bytes
--------------------------------------------------------------
---------------- 8 bytes management headers ------------------
ieee 802.11 Wireless Management:
[0][1] == Authentication algo (int16) == 0x0100 (Shared Key)
[2][3] == Authentication SEQ (int16) == 0x0002
[4][5] == Status code (int16) == 0x0000 (Successful)
[6] == Tag Number (int8) == 0x10 (Challenge text)
[7] == Tag length (int8) == 0x80 (128 bytes long challenge)
--------------------------------------------------------------
---------------------- 128 bytes data ------------------------
[0:128]== Challenge text
--------------------------------------------------------------
24 + 8 + 128 = 160 bytes frame
--------------------------------------------------------------
(ieee 802.11 headers) -> 24 bytes
--------------------------------------------------------------
------------------ 4 bytes WEP parameters --------------------
[0][1][2] == IV (3 bytes, clear text)
[3] == key index (int8) (should be 0)
--------------------------------------------------------------
---------------- 8 bytes management headers ------------------
From here, everything is encrypted
[0][1] == Authentication algo (int16) == 0x0100 (Shared Key)
[2][3] == Authentication SEQ (int16) == 0x0003 (incremented since last frame)
[4][5] == Status code (int16) == 0x0000 (Successful)
[6] == Tag Number (int8) == 0x10 (Challenge text)
[7] == Tag length (int8) == 0x80 (128 bytes long challenge)
--------------------------------------------------------------
---------------------- 128 bytes data ------------------------
[0:128]== Encrypted data challenge
--------------------------------------------------------------
---------------------- 4 bytes ICV ---------------------------
[0:4] == WEP ICV
--------------------------------------------------------------
24 + 4 + 8 + 128 + 4 = 168 bytes frame
8 + 128 = 136 bytes "data" (as wireshark interprets it)
加密帧的管理标头中唯一与前一个不同的是 SEQ 编号。