現在のところ、Blowfish で暗号化された文字列の値を取得する方法は報告されていないため、Blowfish にパスワードを保存することは SHA-1 よりも安全です。一方、SHA-1 では、暗号化された文字列からデータを取得する方法が報告されています。誰かがそのデータを取得するのを防ぐために SHA-1 を信頼することはできません。
提案を受け入れる場合は、パスワードを保存しているため、双方向の暗号化を使用する必要はまったくないと思います。ソルト化されたSHA-256メソッドを使用してユーザーのパスワードをハッシュすることもオプションの 1 つです。ユーザーが電子メールを介して自分のパスワードをリセットできるようにすることは、一般に適切なポリシーと見なされており、簡単にクラックできないデータ セットが作成されます。
何らかの理由で双方向の暗号化が必要な場合は、Blowfish を除いて、 AES-256 (Rijndael) またはTwofishも現在、機密データを処理するのに十分安全です。暗号化されたデータを保存するために複数のアルゴリズムを自由に使用できることを忘れないでください。
ブルート フォースに関して言えば、暗号化されたデータベース ストレージとはほとんど関係がありません。攻撃方法について言及するときは、完全なセキュリティ モデルを見ています。非推奨のアルゴリズムを使用し、ポリシーを実装して攻撃の容易さを防ぐことで「それを補う」ことは、セキュリティに対する成熟したアプローチとは見なされません。
要するに
- パスワードの保存に一方向ハッシュを使用し、ユーザーがメール経由でリセットできるようにする
- 複数の方法を使用して暗号化されたデータを保存することを恐れないでください
- 暗号化/復号化スキームを使用する必要がある場合は、鍵を安全に保管し、実績のあるアルゴリズムのみを使用してください
- ブルート フォース攻撃を防止することは良い考え方ですが、誰かを遅らせたり、別の侵入ポイントを探すよう促したりするだけです。
これを正しいとは思わないでください。セキュリティに関して言えば、要件は人それぞれ異なります。調査を行えば行うほど、方法が改善されます。完全なセキュリティ ポリシーを使用して機密データを完全にカプセル化しないと、後で驚くべき事態が発生する可能性があります。
出典: ウィキペディア、http ://eprint.iacr.org/2005/010