web-dev-qa-db-ja.com

これはKRACK攻撃の正しいフローですか?

私は暗号の専門家ではないので、この基本的な質問はご容赦ください。暗号化プロトコル自体がクラックされる理由をよりよく理解するために、KRACK攻撃のフローがどのように発生するかを理解しようとしています。

4ウェイのステップ3の後から始めましょうWPAハンドシェイク-:

  • クライアントはメッセージ3を受信し、暗号化キーをインストールし、メッセージ4を送信して、暗号化が正しく設定され、パケットの送信を開始できることを確認します。
  • 攻撃者はすでにクライアントに知られていないため、メッセージ3のコピーを保存しています。
  • いくつかのパケットを送信した後、クライアントはメッセージ3を再び受信します。これでnonceが初期値にリセットされ、暗号化キーが再インストールされます。それは以前にメッセージ3をすでに受信していて、すべてが問題なかったことに気付きません。
  • 同じナンスを2回使用しているので、キーストリームは文字通り繰り返されますが、正しいですか?

上記のフローが正しい場合は、いくつか質問があります。

  1. まったく同じキーストリームから2つの暗号テキストが生成された場合、暗号化プロトコルを攻撃するにはどうすればよいですか?
  2. クライアントが基本的にゼロ暗号化キーをインストールするようにだまされているLinuxでは、私が間違っている場合は修正してください。これは、メッセージ4を受信した後、アクセスポイントがクライアントがメッセージの暗号化に使用しているキーを確認/気にしないことを意味します。 APに、メッセージが実際にPMK/PTKを使用して暗号化されているかどうかを確認する方法がないはずですか? APは、「このメッセージが、合意したキーを使用して暗号化されないのを待つ」のようにはなりませんか?どのように機能しますか?

攻撃に対する私の直感が正しいかどうか教えてください。

4
ng.newbie

一般的な読者の理解を容易にするための序文:実際にそれぞれのネットワークに接続する必要はありません。誰かがパスワードを使って接続するのを待つだけです(これがPSKの略で、事前共有キーです)。彼がそうするとき、彼らが何かにアクセスするずっと前に、4方向のハンドシェイクが起こらなければなりません。これにより、ユーザーが提供したパスワードが正しいことを確認し、ルーターとユーザーデバイス間の暗号化された接続を確立します。ここに攻撃者が干渉します-デバイスとルーター間の最初のハンドシェイクで-攻撃者がWiFiを介して交換するトラフィックを解読する能力を獲得できるようにします。これは、ネットワーク上にいなくても十分なアクセスができることを意味します。ユーザーとアクセスポイント間のデータ交換を聞くだけで十分ですが、攻撃者のパケットを放出してユーザーデバイスとルーターの設定を変更します。

キー再インストール攻撃は、メッセージ3の再送信が受け入れられるため、PTK-DONE状態であっても正確に機能します、これはモデルの欠陥です。これが、PTKの再インストールを強制できる理由です。より正確には、クライアントとルーターの間にMitMが確立されます。次に、メッセージ4の到着を防ぐことにより、メッセージ3の再送信がトリガーされます。その結果、メッセージ3の再送信が発生し、ルーターが既に使用中のPTKを再インストールします。次に、これにより、データ機密性プロトコルで使用されているナンスがリセットされます。使用されるプロトコルに応じて、これにより、攻撃者はパケットを再生、復号化、および/または偽造することができます。

攻撃はセキュリティプロパティに実質的に違反しませんが、採用されたモデルの制限を強調します。 モデルはキーをインストールするタイミングを指定しませんデータ機密性プロトコルによる使用のため。そこに問題と修正があります。そのため、プロトコルの仕様は十分に正確かつ明示的でなければなりません。たとえば、802.11規格は、どのリプレイ値を受け入れる必要があるかについてあいまいです。実際には、それはネゴシエートされたセッションキーをいつインストールするかを定義していませんです。その結果、セッションキーが一度だけインストールされるという保証はありませんでした。より正確なモデル定義はそれを防ぐことができます。

2
Overmind