自宅の無線LANでaircrack-ngを使用してペンテストを行っていますが、これらのようなプログラム(aircrack-ng、cowPatty、pyritなど)が実際にどのように機能するのか疑問に思いました。特に、pskで辞書攻撃を実行するときに、正しいペアワイズマスターキーとペアワイズトランジェントキーがいつ見つかったかをどのようにして知るのですか?
私が理解しているように、これはWPA authプロセスがどのように見えるか(wikipediaから盗まれた画像))の大まかな図です:
このプロセス中に送信されるPMK、PTKはありません。では、PMKとPTKがエアクラックによって計算された後、正確にはどうなりますか? PTKを使用してこのハンドシェイクの後のパケットを復号化し、パケット内のいくつかの既知の平文コンテンツを検証しますか? PMKとPTKが実際に正しいことをどのように確認しますか?
ここでPyritアップストリーム。
まず、ステーションとアクセスポイント間のキー交換を盗聴します。最初のパケット(APからSTAに送信)はANonceを提供し、2番目のパケット(STAからAPに送信)はSNonceを提供します。これで、パスワードを推測し、ペアワイズマスターキーを計算して、ペアワイズトランジェントキーを作成できます。
現在、2つの可能性があります。
ペアワイズトランジェントキーからキー確認キーを導出し、SNonceを転送した「仮想化された」パケットに対してメッセージ整合性コードを計算します。推測が正しかった場合、MICが転送されたものと一致することがわかります。新しい推測を行い、それ以外の場合はプロセスを繰り返します。
WPA2-AESの場合、ペアワイズトランジェントキーからテンポラルキーを導出し、それを使用して認証フェーズに続くトラフィックの一部を復号化することもできます。復号化されたメッセージの最初の6バイトがLLC + SNAP-protocol-headerのように見える場合、推測されたパスワードが正しくない可能性は2 ** 48に1つだけです。上記のメッセージ整合性コードを計算することにより、再確認できます。この2番目のアプローチは、必要な計算が少ないため、最初のアプローチよりも高速です。詳細は https://pyrit.wordpress.com/2011/04/16/known-plaintext-attack-against-ccmp/ で読むことができます
私はこの問題の専門家ではないので、本当の答えはありませんが、たとえばARPパケットの内容はわかっています。予測可能なコンテンツのため、たとえばWEPの解読に使用されています。