Прецедент

Прецедент

Отэта вики-страница:

WPA и WPA2 используют ключи, полученные из рукопожатия EAPOL, для шифрования трафика. Если тольковсе четырепакеты рукопожатия присутствуют для сеанса, который вы пытаетесь расшифровать, Wireshark не сможет расшифровать трафик. Вы можете использовать фильтр отображения eapol для поиска пакетов EAPOL в вашем захвате.

Я заметил, что расшифровка работает и с (1, 2, 4), но не с (1, 2, 3). Насколько мне известно, первых двух пакетов достаточно, по крайней мере, для того, что касается одноадресного трафика. Может ли кто-нибудь объяснить, как именно Wireshark справляется с этим, другими словами, почему работает только первая последовательность, учитывая, что четвертый пакет — это просто подтверждение? Кроме того, гарантируется ли, что (1, 2, 4) всегда будет работать, когда работает (1, 2, 3, 4)?

Прецедент

Это сжатое gzip рукопожатие (1, 2, 4) и зашифрованный ARPпакет (SSID: SSID, пароль: password) в base64кодировке:

H4sICEarjU8AA2hhbmRzaGFrZS5jYXAAu3J400ImBhYGGPj/n4GhHkhfXNHr37KQgWEqAwQzMAgx
6HkAKbFWzgUMhxgZGDiYrjIwKGUqcW5g4Ldd3rcFQn5IXbWKGaiso4+RmSH+H0MngwLUZMarj4Rn
S8vInf5yfO7mgrMyr9g/Jpa9XVbRdaxH58v1fO3vDCQDkCNv7mFgWMsAwXBHMoEceQ3kSMZbDFDn
ITk1gBnJkeX/GDkRjmyccfus4BKl75HC2cnW1eXrjExNf66uYz+VGLl+snrF7j2EnHQy3JjDKPb9
3fOd9zT0TmofYZC4K8YQ8IkR6JaAT0zIJMjxtWaMmCEMdvwNnI5PYEYJYSTHM5EegqhggYbFhgsJ
9gJXy42PMx9JzYKEcFkcG0MJULYE2ZEGrZwHIMnASwc1GSw4mmH1JCCNQYEF7C7tjasVT+0/J3LP
gie59HFL+5RDIdmZ8rGMEldN5s668eb/tp8vQ+7OrT9jPj/B7425QIGJI3Pft72dLxav8BefvcGU
7+kfABxJX+SjAgAA

Расшифруйте с помощью:

$ base64 -d | gunzip > handshake.cap

Запустите tsharkи проверьте, правильно ли расшифровывается ARPпакет:

$ tshark -r handshake.cap -o wlan.enable_decryption:TRUE -o wlan.wep_key1:wpa-pwd:password:SSID

Должно быть напечатано:

  1 0.000000 D-Link_a7:8e:b4 -> HonHaiPr_22:09:b0 Ключ EAPOL
  2 0.006997 HonHaiPr_22:09:b0 -> D-Link_a7:8e:b4 Ключ EAPOL
  3 0.038137 HonHaiPr_22:09:b0 -> D-Link_a7:8e:b4 Ключ EAPOL
  4 0.376050 ZyxelCom_68:3a:e4 -> HonHaiPr_22:09:b0 ARP 192.168.1.1 находится по адресу 00:a0:c5:68:3a:e4

решение1

Обмены EAPOL также используются для обновления временных ключей. Новые ключи устанавливаются на Supplicant после отправки 4/4 и устанавливаются на Authenticator, когда он получает 4/4[1]. Если Wireshark должен правильно обрабатывать смену ключей, он должен использовать ключи только после считывания пакета 4/4 в кадре, поскольку пакеты могут все еще передаваться во время смены ключей (даже в случае, когда они не должны этого делать из-за буферизации)

Для первого 4WHS можно не ждать 4/4, но вполне понятно, что им было просто лень его реализовывать. 3/4 все равно необходим, так как содержит групповые ключи (даже если они вам не интересны, но вы знаете, что не увидите ARP-запросов от AP или клиента, для которого у вас нет части его 4WHS) и ключи управления. Вы можете пропустить и 3/4, но тогда у вас не будет подтверждения того, что обмен прошел успешно, потому что 3/4 используется для проверки того, что Аутентификатор знает PMK.

[1] Обратите внимание, что при текущей схеме, если сообщение 4/4 потеряно, то проситель начал использовать новый ключ, а аутентификатор все еще использует старый ключ, и повторная отправка 3/4, зашифрованного старым ключом, не поможет. Эта проблема, среди многих других с WPA2, решается в последнем стандарте 802.11 2012 путем сохранения двух ключей параллельно.

решение2

Вся информация, необходимая для построения PTK, передается на этапах 1 и 2. Этого должно быть достаточно для расшифровки одноадресного трафика.

Без шага 3 у вас не будет GTK, поэтому расшифровка многоадресной/широковещательной передачи будет невозможна.

Шаг 4 на самом деле не является необходимым для расшифровки захваченного трафика, но если шага 4 нет, клиент/AP не начнет использовать шифрование. Wireshark может отключить это, прежде чем он попытается расшифровать данные.

решение3

Ну, очевидно, документация WireShark неверна. :-)

Отталкиваясь от документацииздесь:

  • После EAPOL 1 и 2 обе стороны знают временный ключ, который будет использоваться для расшифровки трафика.
  • Третье сообщение является доказательством того, что обе стороны знают временной ключ, и указывает на то, чтоАутентификатор(базовая станция) готова начать использовать временный ключ.
  • Четвертое сообщение запускает переключение с PMK, установленного до EAPOL, на временный ключ, полученный в EAPOL.

Итак, с этим все понятно. WireShark ни ​​для чего не нужно сообщение 3. Он знает ключи после сообщений 1 и 2, но ждет, чтобы начать использовать их для расшифровки трафика, пока не получит сообщение 4.

В жизни нет никаких гарантий, особенно в отношении поведения свободного программного обеспечения, но можно с уверенностью сказать, что для расшифровки сеанса WireShark не потребуется наличие сообщения 3.

решение4

Это не объясняет почему, но цитата из airdecap-ngдокументацияв любом случае,

WPA/WPA2 Requirements

The capture file must contain a valid four-way handshake. For this purpose having (packets 2 and 3) or (packets 3 and 4) will work correctly. In fact, you don't truly need all four handshake packets. 

Связанный контент