web-dev-qa-db-ja.com

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

この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)とbase64エンコーディングの暗号化されたARPパケット(SSID:SSID、パスワード:password)です。

【.____。】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 
13
cYrus

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

ステップ3がないと、GTKがないため、マルチキャスト/ブロードキャストを復号化することはできません。

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

1
YLearn

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

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

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

1
BatchyX

これは理由を説明していませんが、airdecap-ng documentation からの引用はとにかく、

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

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

ドキュメントから抜け出す here

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

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

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

0
Old Pro