この優れた情報セキュリティStackExchangeの質問 の回答は、長いWPA2-PSKパスワードがネットワークのパフォーマンスを低下させないことを示しています。その理由は、パスワード自体は決して送信されず、送信される生成されたCMACは常に128ビット(16バイト)であるためです。
では、16バイトを超えるWPA2パスワードは、16バイトのWPA2パスワードよりも安全なのはなぜですか。
CMACは128ビットであるため、一般に128ビットを超えるエントロピーを持つパスフレーズは必要ありません。ただし、16バイトのパスワードを選択した場合(バイトを完全にランダムに選択せずに)、エントロピーは128ビットではなく、通常ははるかに小さくなります。たとえば、 95印刷可能なASCII characters )からランダムに選択した場合、約105ビットのエントロピー(log2 (95 ^ 16)〜105)これは、128ビットのエントロピーパスフレーズよりも約800万倍弱いです。ランダムに選択せずに、連結された英語の単語を言うと、エントロピーははるかに小さくなります(例: 意味のある英語のエントロピーは、文字あたり約2.6ビット (16 * 2.6〜42ビット)であり、オフライン攻撃で破壊される可能性は非常に高くなります。
パスフレーズとして意味のある英語のフレーズを覚えておきたい場合は、長さが約50文字(128ビット/2.6(ビット/文字)〜49.2)になるはずです。または、6 ^ 5 = 7776ワード(12.9ビット/ワード)の辞書から ダイスウェアパスフレーズ をランダムに選択した場合、約10 128ビットに到達するための単語。
つまり、要約すると、パスフレーズを使用するときのセキュリティには上限があります。たとえば、128ビットCMACで20ワードのダイスウェアパスフレーズを使用しても意味がありません(MACのエントロピーは128ビットで最大になります)。 20ワードのパスフレーズは10ワードのパスフレーズよりも安全ではありませんが、10ワードのダイスウェアパスフレーズは、約39ビットのエントロピーを持つ3ワードのパスフレーズ(つまり、16文字を含む)よりもはるかに安全です。 。
編集:WPA2-PSKで使用される主キーはPMK(ペアワイズマスターキー)です。これは、事前共有パスワードとアクセスポイントの名前から取得されます。 PMKは256ビット(32バイト)であり、PMK = PBKDF2(HMAC-SHA1, preshared_password, salt=access_point_name, rounds=4096)
を介して計算されます(ここで、PBKDF2は パスワードベースのキー派生関数2 、この場合、4096ラウンドのHMAC-SHAが含まれます1)。
アクセスポイントに同じPMKを生成する別のパスワードが何らかの理由で見つかった場合は、アクセスポイントに接続して盗聴し、メッセージを改ざんできます。
つまり、WPA2では、PMKから一時キー(PTK)と、4ウェイハンドシェイク中に送信されたランダムナンスも導出します。 PTKは512ビットであり、その一部はさまざまな目的で使用されますが、セッション内のトラフィックは128ビットの一時キーで暗号化されます。 (一時的なキーの暗号化キーの部分が見つかった場合、1つのセッション内でトラフィックを解読できますが、それだけです-トラフィックに署名してそれを改ざんしたり、新しいセッションを作成したりすることはできません)。