WPA-PSK パスフレーズの技術要件は何ですか?

WPA-PSK パスフレーズの技術要件は何ですか?

WPA-PSK パスフレーズを生成しようと考えていましたが、OpenBSD のマニュアルページに次の記述がありましたwpa-psk(8)

The passphrase must be a sequence of between 8 and 63
ASCII-encoded characters.

ここでの「ASCII エンコード」の基準は正確には何ですか? 上位ビットが設定されていない 8 ビット文字である必要がありますか? 印刷できない文字は許可されますか?

考えてみると... パスフレーズをランダムに生成するという私のアプローチは意味があるのでしょうか? ランダムな 64 バイトを生成してそれをキーとして使用する方がよいのでしょうか?

答え1

ここでの「ASCII エンコード」の基準は正確には何ですか? 上位ビットが設定されていない 8 ビット文字である必要がありますか? 印刷できない文字は許可されますか?

ウィキペディアのWi-Fi保護アクセスWPA-PSKパスフレーズは8から63であると言う印刷可能なASCII文字、そして脚注として次の参照が含まれています:

パスフレーズ内の各文字は、32 ~ 126 (10 進数) の範囲でエンコードされている必要があります。(IEEE Std. 802.11i-2004、Annex H.4.1) この範囲にはスペース文字も含まれます。

考えてみると... パスフレーズをランダムに生成するという私のアプローチは意味があるのでしょうか? ランダムな 64 バイトを生成してそれをキーとして使用する方がよいのでしょうか?

安全な RNG を使用して 256 ビットを生成するだけだと思います...

ワイヤレス ルーターと、ワイヤレス ネットワークに接続するすべてのデバイスで、WPA-PSK キーを 64 桁の 16 進文字として手動で入力できますか? そうでない場合は、すべてのデバイスで入力できるように ASCII パスフレーズを使用する必要があります。

答え2

からhttp://www.xs4all.nl/~rjoris/wpapsk.html- 「WPA キーの計算 - パスフレーズから 16 進キーへの計算の詳細」:

WPA-PSK 暗号化の場合、バイナリ キーは次の式に従ってパスフレーズから導出されます。

PBKDF2 関数は、パスフレーズからキーを導出する標準化された方法です。これは RFC2898 で指定されており、計算方法については明確に説明されています。この関数には、基礎となる疑似乱数関数が必要です。WPA の場合、基礎となる関数は HMAC-SHA1 です。SHA1 は、任意の量の入力データから 160 ビットのハッシュを計算する関数です。これは RFC3174 で明確に説明されています。HMAC は、暗号化ハッシュ関数をキー付きメッセージ認証関数に変換する標準化された方法です。これは RFC2104 で指定されています。

要約すると、キー導出プロセスでは、HMAC-SHA1 関数を 4096 回繰り返し、さらにそれを繰り返してキー ビットをさらに生成します。必要な計算量は、1 MByte のデータに対して SHA1 ハッシュを計算するのと同等です。おそらく、これがこのページの Javascript が非常に遅い理由です。

あなたの質問について:Does my approach of randomly generating a passphrase make any sense? Would it be better to just generate 64 random bytes and use that as a key?ランダムバイトパスフレーズにあらゆる種類の記号、数字、ランダムなアルファベット文字を使用する限り、どちらも非常に強力です。私の見方では、どちらも(生成されたものでもランダムなものでも)不可能推測する/ハッキングする...

関連情報