обнаруживать пакеты eap (аутентификация 802.1X) с помощью библиотек pcap

я пишу c сниффер с pcap (на моих собственных записанных потоках .cap). Мне нужно обнаружить пакеты eap, которые несут аутентификацию 802.1X, но я не знаю, как отличить их от других пакетов. Используя wireshark, кажется, что это поле на уровне LLC (значение 888e), но я не знаю, как определить, присутствует ли llc или нет.

вот пример eap пакета

  000018006e48000000169e09a000cd8103000000000000000802d50074f06d40a6a3000cf635dfab000cf635dfab90a6aaaa03000000888e0103005f02008a001000000000000000cbd5c0958cc32b7b3ae762c43b41436059e54cb48f224d35718613838d9640644d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

большое спасибо!


person UnableToLoad    schedule 14.05.2012    source источник


Ответы (1)


Чтобы быть точным, в Ethernet поле типа Ethernet для пакетов EAP-over-LAN (EAPOL) имеет значение 0x888e (согласно разделу 7.2 «Формат MPDU EAPOL для использования с IEEE 802.3/Ethernet» стандарта IEEE 802.1X-2004) и в сетях, использующих IEEE 802.2 LLC, таких как 802.11, заголовок LLC для пакетов EAPOL имеет DSAP 0xAA, указывающий SNAP, за которым следует заголовок SNAP с OUI 0x000000 (что означает «идентификатор протокола является типом Ethernet») и идентификатор протокола 0x888e (так как это значение типа Ethernet для EAPOL).

Таким образом, для пакетов на 802.11 проверьте кадры данных (а не кадры управления или управления), а затем посмотрите заголовок LLC 802.2, следующий за заголовком 802.11 (все кадры данных 802.11 имеют заголовок LLC 802.2), а затем проверьте наличие DSAP. 0xAA и, если вы это видите, проверьте заголовок SNAP, следующий за заголовком 802.2, на наличие OUI 0x000000 и идентификатора протокола 0x888e.

person Community    schedule 14.05.2012