web-dev-qa-db-ja.com

FIPS準拠のために、bcryptまたはPBKDF2ではなくSHA(SHa-512など)を選択する必要があるのはなぜですか?

規制により、私の会社はFIPSに準拠する必要があります。

私は FIPS承認の暗号方式 の現在のリストを見ていましたが、このリストにはbcryptもPBKDF2もないことに気づきました。

  • これは、パスワードの保存にsaltedSHA-512を使用する必要があることを意味しますか?

  • それは良い考えですか?

12
John Assymptoth

FIPS 140-2は パスワードハッシュ のトピックをカバーしません。したがって、その意味で「FIPS承認」されるパスワードハッシュ関数はありません。 SHA-512を「そのまま」使用し、ソルトを使用するかどうかに関係なく、エンジンにそのソルトをどのように注入するかに関係なく、NISTの承認は付与されません。 NISTは単にパスワードのハッシュを承認(または不承認)しません。

NISTの世界で最も近いものは SP 800-132 であり、パスワードベースのキー導出のための承認されたメソッドをリストします 、パスワードハッシュに非常に近い(ただし同一ではない)もの。 PBKDF2で使用されている基本プリミティブ自体が「承認」されている(つまり、SHA-2機能の1つで使用されているHMACである)限り、NISTはPBKDF2を承認します。

19
Tom Leek

FIPS 140-2は、パスワードハッシュアルゴリズムをリストしません。実際にFIPS 140-2検証済みアルゴリズムを使用する必要がある場合は、必要なコンプライアンスレベルについてNISTによって検証済みのソリューションを見つける必要があります。

FIPS監査人でこれを確認する必要がありますが、PBKDF2には、たとえばPBKDF2-HMAC-SHA256または512などの実装があります。実装はSHA256または512を使用しているため、準拠していると見なすことができます。

5
Lucas Kauffman