WPA/WPA2-PSKは、クライアントごとにPTK(ペアワイズトランジェントキー)を使用して通信を暗号化することを知っています。このPTKは、4ウェイハンドシェイクと呼ばれるプロセスを通じて生成されます。 Wikipediaの関連ページ で述べたように:
PTKは、PMK、APナンス(ANonce)、STAナンス(SNonce)、AP MACアドレス、およびSTA MACアドレスの属性を連結して生成されます。次に、製品は暗号化ハッシュ関数にかけられます。
そのため、攻撃者が不正なAP(アクセスポイント)をセットアップし、一部のクライアント(特にモバイルクライアント)を自分の不正なAPに自動的に認証解除および接続できるようにすると、PSKをクラックするための計算を高速化できるという利点があります。 ANOnce、AP MACなどの特別に生成された入力を導入することによって-彼が制御できる変数-
彼はこれを10などの妥当な時間の間実行する機会があると想定できます。そのため、彼は特別に選択された入力を使用したその数の4ウェイハンドシェイクを取得します(選択平文攻撃と同様)。単に4ウェイハンドシェイクをキャプチャするのではなく、不正なAPを使用することによって速度の利点が得られるのを妨げるコンポーネントがデザインにあるのでしょうか。
PTKの主要な派生は、 IEEE 802.11 -2007のセクション8.5.1.2で定義されています。図8-20(198ページ、つまり PDFファイル)の247ページです ) :
PRF-X(PMK, "Pairwise key expansion", Min(AA,SPA) || Max(AA,SPA) || Min(ANonce,SNonce) || Max(ANonce,SNonce))
AAとSPAは両方の通信パートナーのアドレスであり、ANonceとSNonceはそれらが送信するナンスです。
X
は必要なビット数で、用途に応じて、X
は384または512のいずれかになります。
前のセクション8.5.1.1で、PRF(疑似ランダム関数)が定義されています。
PRF-X(K, A, B) = HMAC-SHA-1(K, A || 0 || B || 1) ||
HMAC-SHA-1(K, A || 0 || B || 2) ||
...
(必要なビット数を満たすために必要なだけ繰り返し、残りのビットを破棄します。)
したがって、問題は効果的にです:入力の一部を知っていて、入力の他の部分を選択するが、キーを知らない方法でHMAC-SHA-1を攻撃できるか、(a)出力の一部を導出できるか、または(b)キーを導出しますか?
知られている限り、 HMAC構造 も SHA-1ハッシュ関数 もこの点で弱点はありません。
したがって、これを破る現在知られている唯一の方法は、PSK(またはそれから派生したパスワード)をブルートフォースすることです。これは、1つ以上のリッスンされたハンドシェイクではなく、キーを見つけるために多くの計算を必要とします。
256ビットのキーを解読する現実的な機会はありませんが、簡単に導き出せるパスワードが見つかるかもしれません。したがって、適切なパスワードを使用してください。
ユーザーが以前に接続したことがある場合、クライアントはAPのMACアドレスが変更された場合にメッセージを出し、接続についてユーザーに警告する必要があります。 Windowsでは、ap名に「2」を強制的に追加します。これは成功の可能性を減らすはずです。ただし、MACアドレスが同じ場合、クライアントはAPが不正であるかどうかを知る方法がありません。これは、ハードコードされたANonce
値を使用できるため、検索する必要のあるキースペースを削減できることを意味します。オフセットをブルートフォースで強制すると、置換の数がSNonceのサイズに減少します。
難しいですが、不正なAPを介してWPA2パスワードを取得することは理論的には可能です。
別のMACでAPを作成するなので、認証を解除せずに同じESSIDを使用します。
WebサーバーこのAPでいくつかのiptablesルールと組み合わせて実行すべてのhttpトラフィックを再ルーティングユーザーが入力できるローカルで提供されるWebページに彼らのパスワード。
ルーターのベンダーとモデルは、wiresharkなどのネットワークスニファを使用して見つけることができるため、かなり説得力のある"Firmware Update" pageを作成できます。
ウェブページは[〜#〜] post [〜#〜]mysqlデータベースへのパスワードである可能性があります。
残っているのは、自分のAPと同じ名前の奇妙なオープンAPに接続するインセンティブです。別のワイヤレスインターフェイスを使用すると、元のAPに接続されているすべてのクライアントに対してdeauth attackを使用できます。
クライアントは欲求不満になり、利用可能なネットワークをチェックして不正なネットワークを見つけることにつながる可能性があるインターネットを取り戻したいと思うでしょう。
それらは多くの変数です:
しかし、それは不可能ではありません。