Jabat tangan 4-arah Wireshark WPA

13

Dari halaman wiki ini :

WPA dan WPA2 menggunakan kunci yang berasal dari jabat tangan EAPOL untuk mengenkripsi lalu lintas. Kecuali jika keempat paket jabat tangan hadir untuk sesi yang Anda coba dekripsi, Wireshark tidak akan dapat mendekripsi lalu lintas. Anda dapat menggunakan filter layar eapol untuk menemukan paket EAPOL dalam tangkapan Anda.

Saya perhatikan bahwa dekripsi bekerja dengan (1, 2, 4) juga, tetapi tidak dengan (1, 2, 3). Sejauh yang saya tahu dua paket pertama sudah cukup, setidaknya untuk apa yang menjadi perhatian lalu lintas unicast. Dapatkah seseorang tolong jelaskan bagaimana Wireshark menghadapinya, dengan kata lain mengapa hanya urutan yang pertama yang bekerja, mengingat paket keempat hanya merupakan pengakuan? Juga, apakah dijamin bahwa (1, 2, 4) akan selalu berfungsi ketika (1, 2, 3, 4) berfungsi?

Kasus cobaan

Ini adalah jabat tangan yang di-gzip (1, 2, 4) dan ARPpaket yang dienkripsi (SSID :, SSIDkata sandi :) passworddalam base64penyandian:

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

Dekode dengan:

$ base64 -d | gunzip > handshake.cap

Jalankan tsharkuntuk melihat apakah ia mendekripsi ARPpaket dengan benar :

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

Itu harus mencetak:

  1 0,000000 D-Link_a7: 8e: b4 -> HonHaiPr_22: 09: b0 EAPOL Key
  2 0,006997 HonHaiPr_22: 09: b0 -> D-Link_a7: 8e: b4 EAPOL Key
  3 0.038137 HonHaiPr_22: 09: b0 -> D-Link_a7: 8e: b4 EAPOL Key
  4 0.376050 ZyxelCom_68: 3a: e4 -> HonHaiPr_22: 09: b0 ARP 192.168.1.1 adalah jam 00: a0: c5: 68: 3a: e4
cYrus
sumber
Tidak bisa .. harus mendekripsi karena memiliki keempatnya, atau Anda terhubung ke jaringan wifi dan yang mendekripsi paket
Paul
Saya (jelas) berbicara tentang paket yang ditangkap dalam mode RFMON.
cYrus
@ Paul: Saya sudah mengedit pertanyaan; bisakah kamu menjawab
cYrus
Aku harap aku bisa. Jika Anda mengikuti urutan EAPOL, klien memiliki PTK setelah hanya paket pertama (anonce dilewatkan). AP mengetahui PTK setelah paket kedua (snonce). Jika Anda mengamati keduanya, dan mengetahui MAC, yang tentu saja Anda lakukan, dan ssid + psk, maka ini yang Anda butuhkan. Paket ketiga hanya GTK untuk siaran dan multicast, dan yang keempat hanya ACK. Jika Anda mendekripsi unicast (yang merupakan balasan arp), maka dua paket pertama harus cukup. Saya tidak dapat membantu tetapi berpikir saya kehilangan sesuatu karena semuanya mengatakan Anda perlu keempat.
Paul
Apakah Anda melanjutkan dengan ini?
Paul

Jawaban:

1

Pertukaran EAPOL juga digunakan untuk memperbarui kunci temporal. Kunci-kunci baru dipasang pada Supplicant setelah mengirim 4/4, dan diinstal pada Authenticator ketika menerima 4/4 [1]. Jika Wireshark harus menangani rekeying dengan benar, ia hanya harus menggunakan kunci setelah membaca paket 4/4 dalam bingkai, karena paket mungkin masih mengalir selama rekeying (bahkan dalam kasus di mana mereka tidak boleh, karena buffering)

Untuk 4WHS pertama, tidak menunggu 4/4 adalah mungkin, tetapi dapat dimengerti bahwa mereka hanya malas untuk mengimplementasikannya. 3/4 masih diperlukan karena berisi kunci grup (bahkan jika Anda tidak tertarik padanya, tetapi ketahuilah bahwa Anda tidak akan melihat permintaan ARP dari AP atau klien yang Anda tidak memiliki bagian dari 4WHS-nya) dan kunci manajemen. Anda dapat melewati 3/4 juga, tetapi kemudian Anda tidak memiliki konfirmasi bahwa pertukaran berhasil, karena 3/4 digunakan untuk memverifikasi bahwa Authenticator mengetahui PMK.

[1] Perhatikan bahwa dengan skema saat ini, jika pesan 4/4 hilang, maka pemohon mulai menggunakan kunci baru, dan autentikator masih menggunakan kunci lama, dan mengirim ulang 3/4 yang dienkripsi dengan kunci lama tidak akan membantu . Masalah ini, di antara banyak lainnya dengan WPA2, dibahas dalam standar 802.11 2012 terbaru dengan menjaga dua kunci secara paralel.

BatchyX
sumber
1

Semua informasi yang diperlukan untuk membangun PTK dipertukarkan dalam langkah 1 dan 2. Ini harus cukup untuk mendekripsi lalu lintas unicast.

Tanpa langkah 3, Anda tidak akan memiliki GTK, jadi mendekripsi multicast / siaran tidak akan mungkin.

Langkah 4 tidak benar-benar diperlukan untuk mendekripsi lalu lintas penangkapan, tetapi jika tidak ada langkah 4, klien / AP tidak akan mulai menggunakan enkripsi. Wireshark dapat membatalkan ini sebelum mencoba mendekripsi data juga.

YPelajari
sumber
0

Yah, jelas dokumentasi WireShark salah. :-)

Pergi dokumentasi di sini :

  • Setelah EAPOL 1 dan 2 kedua belah pihak mengetahui kunci temporal yang akan digunakan untuk mendekripsi lalu lintas.
  • Pesan ketiga adalah bukti bahwa kedua belah pihak mengetahui kunci temporal dan menunjukkan bahwa Authenticator (stasiun basis) siap untuk mulai menggunakan kunci temporal.
  • Pesan keempat memicu peralihan dari PMK yang diatur sebelum EAPOL ke kunci sementara yang diturunkan dalam EAPOL

Maka dengan itu, masuk akal. WireShark tidak perlu pesan 3 untuk apa pun. Ia tahu kunci setelah pesan 1 dan 2, tetapi menunggu untuk mulai menggunakannya untuk mendekripsi lalu lintas sampai setelah menerima pesan 4.

Tidak ada jaminan untuk apa pun dalam hidup, terutama perilaku perangkat lunak bebas, tetapi itu adalah taruhan yang masuk akal bahwa tidak akan ada persyaratan untuk pesan 3 hadir untuk WireShark untuk mendekripsi sesi.

Pro tua
sumber
Sepertinya saya bahwa paket 4 tidak perlu benar - itu hanya dirancang untuk menunggu.
Paul
@ Paul, itu seperti mengatakan "melanjutkan" tidak perlu setelah "jeda".
Old Pro
@ OldPro, saya tidak yakin bahwa menunggu 4 ° adalah ide yang baik, paket yang diambil cenderung hilang terutama ketika mereka melakukan perjalanan di udara.
cYrus
@ cYrus, menunggu 4 sangat penting, karena kunci enkripsi harus diubah secara bersamaan di kedua sisi. Jika klien tidak menerima 4, tidak tahu bahwa basis menerima 3. Jika klien tidak menerima 4, ia mengirim 3 lagi (yang memicu pengiriman ulang 4) sampai ia menerima 4 atau menyerah mencoba untuk membuat koneksi.
Old Pro
@ OldPro: Saya tidak berbicara tentang protokol. Kedua belah pihak dapat menerima semua paket, tetapi mereka mungkin dijatuhkan atau tidak ditangkap oleh entitas yang secara pasif menangkap lalu lintas.
cYrus
0

Ini tidak menjelaskan mengapa, tetapi mengutip dari airdecap-ng dokumentasi lagian,

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. 
sybind
sumber