Wireshark WPA 4ウェイハンドシェイク


13

このwikiページから:

WPAおよびWPA2は、EAPOLハンドシェイクから派生したキーを使用してトラフィックを暗号化します。解読しようとしているセッションに4つのハンドシェイクパケットがすべて存在しない限り、Wiresharkはトラフィックを解読できません。ディスプレイフィルターeapolを使用して、キャプチャ内のEAPOLパケットを見つけることができます。

復号化は(1、2、4)でも機能するが、(1、2、3)では機能しないことに気付きました。私の知る限り、少なくともユニキャストトラフィックに関係する最初の2つのパケットで十分です。Wiresharkがそれをどのように処理するか、言い換えれば、4番目のパケットが単なる確認応答である場合、前者のシーケンスのみが機能する理由を誰かが正確に説明できますか?また、(1、2、3、4)が機能するときに(1、2、4)が常に機能することが保証されていますか?

テストケース

これは、gzipされたハンドシェイク(1、2、4 )と暗号化された暗号化されたARPパケット(SSID :、SSIDパスワード:)です。passwordbase64

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にあります

それはすべての4つを持っているので...それが解読されなければならないことも、あなたは、WiFiネットワークに接続されており、それは、パケットを解読される
ポール・

私は(明らかに)RFMONモードでキャプチャされたパケットについて話しています。
cYrus

@ポール:質問を編集しました。返信できますか?
-cYrus

私もそう出来ればいいけど。EAPOLシーケンスに従うと、クライアントは最初のパケットの後にPTKを取得します(anonceが渡されます)。APは、2番目のパケット(snonce)の後のPTKを知っています。これら2つを観察し、MACを知っていれば、もちろん、それとssid + pskを知っていれば、これで十分です。3番目のパケットはブロードキャストおよびマルチキャスト用のGTKのみであり、4番目のパケットはACKのみです。ユニキャストを解読する場合(arp-replyは)、最初の2つのパケットで十分です。私は仕方がありませんが、すべてがあなたが4つすべてを必要とするので、私は何かを見逃していると思います。
ポール

これでさらに得ましたか?
ポール

回答:


1

EAPOL交換は、一時キーの更新にも使用されます。新しいキーは、4/4を送信した後にサプリカントにインストールされ、4/4 [1]を受信するとオーセンティケーターにインストールされます。Wiresharkがキーの再生成を正しく処理する必要がある場合、フレーム内の4/4パケットを読み取った後にのみキーを使用する必要があります。これは、キー再生成中にパケットが流れる可能性があるためです(バッファリングのため、そうでない場合でも)

最初の4WHSでは、4/4を待つことはできませんが、実装するのが面倒だったことは完全に理解できます。3/4にはグループキー(それらに興味がなくても、APまたは4WHSの一部を持たないクライアントからのARP要求が表示されないことを知っている場合)および管理キーが含まれているため、依然として必要です。3/4もスキップできますが、オーセンティケーターがPMKを認識していることを確認するために3/4が使用されるため、交換が成功したことの確認はありません。

[1]現在のスキームでは、4/4メッセージが失われた場合、サプリカントは新しいキーの使用を開始し、オーセンティケータは古いキーを使用し、古いキーで暗号化された3/4の再送は役に立たないことに注意してください。他の多くのWPA2のこの問題は、2つのキーを並列に保つことにより、最新の802.11 2012標準で対処されています。


1

PTKの構築に必要なすべての情報は、手順1および2で交換されます。これは、ユニキャストトラフィックを解読するのに十分なはずです。

ステップ3がないと、GTKを使用できないため、マルチキャスト/ブロードキャストの暗号化を解除できません。

キャプチャトラフィックを解読するためにステップ4は実際には必要ありませんが、ステップ4がない場合、クライアント/ APは暗号化の使用を開始しません。Wiresharkは、データの復号化を試みる前に、これをキーオフする場合があります。


0

まあ、明らかにWireSharkのドキュメントは間違っています。:-)

ドキュメントオフに行くここに

  • EAPOL 1および2の後、両側はトラフィックの復号化に使用される一時キーを認識します。
  • 3番目のメッセージは、両側が一時キーを知っていることの証明であり、オーセンティケーター(基地局)が一時キーの使用を開始する準備ができていることを示します。
  • 4番目のメッセージは、EAPOLの前にセットアップされたPMKからEAPOLで派生した一時キーへの切り替えをトリガーします

それで、それは理にかなっています。WireSharkは、メッセージ3を必要としません。メッセージ1および2の後にキーを知っていますが、メッセージ4を受信するまで、トラフィックの暗号化解除にキーの使用を開始するのを待ちます。

人生のあらゆるもの、特にフリーソフトウェアの動作に対する保証はありませんが、WireSharkがセッションを解読するためにメッセージ3が存在する必要がないことは合理的な賭けです。


パケット4も必要ではないようです-それはそれを待つように設計されているだけです。
ポール

@Paul、それは「一時停止」の後に「再開」は必要ないと言うようなものです。
古いプロ

@ OldPro、4°を待つのが良いアイデアかどうかわかりません。キャプチャされたパケットは、特に空中を移動するときに失われる傾向があります。
-cYrus

暗号鍵は両側で同時に変更する必要があるため、@ cYrus、4を待つことが不可欠です。クライアントが4を受け取らない場合、ベースが3を受け取ったことを知らない接続を作成します。
古いプロ

@OldPro:プロトコルについて話しているのではありません。両側はすべてのパケットを受信できますが、トラフィックを受動的にキャプチャするエンティティによってドロップされるか、キャプチャされない場合があります。
-cYrus

0

これは理由を説明しませんが、とにかく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. 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.