web-dev-qa-db-ja.com

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個のランダムバイトを生成し、それをキーとして使用する方がよいでしょうか?

8
asveikau

>ここで「ASCIIエンコード」の基準は正確に何ですか?上位ビットが設定されていない8ビット文字でなければならないというだけですか?印刷できない文字は許可されますか?

ウィキペディアの Wi-Fi Protected Access は、WPA-PSKパスフレーズが8〜63であると述べています printable ASCII characters で、脚注としてこの参照が含まれています:

パスフレーズの各文字は、32〜126(10進数)の範囲のエンコードである必要があります。(IEEEStd。802.11i-2004 、付録H.4.1)
スペース文字はこの範囲に含まれます。

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

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

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

12
Bavi_H

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

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

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

要約すると、鍵導出プロセスでは、HMAC-SHA1関数を4096回繰り返し、それを再度実行して、より多くの鍵ビットを生成します。必要な計算量は、1Mバイトのデータで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?:ランダムバイトのパスフレーズであらゆる種類の記号、数字、ランダムなアルファベット文字を使用している限り、どちらも非常に強力です。私の見方:両方(生成またはランダム)は推測/ハッキングすることが不可能になります...

1
studiohack