web-dev-qa-db-ja.com

MS-SQLパスワードストレージ

MS-SQLデータベース内のパスワードストレージへのMD5ハッシュアプ​​ローチの置き換えに関する推奨事項は何ですか。

12
David Stubley

現時点では、SHA256、SHA512の方が安全です。

2009年現在、最も一般的に使用されている2つの暗号化ハッシュ関数はMD5とSHA-1です。ただし、MD5は壊れています。これに対する攻撃は、2008年にSSLを破るために使用されました。SHA-0およびSHA-1ハッシュ関数は、NSAによって開発されました。
2005年2月に、SHA-1に対する攻撃が成功したことが報告され、160ビットのハッシュ関数で予想される2 ^ 80ではなく、約2 ^ 69のハッシュ操作で衝突が見つかりました。
2005年8月、SHA-1に対する別の成功した攻撃が報告され、2 ^ 63の操作で衝突が見つかりました。 SHA-1の理論上の弱点も存在し、数年以内に破ることが現実的である可能性があることを示唆しています。
新しいアプリケーションでは、SHA-2などのSHAファミリのより高度なメンバーを使用するか、衝突耐性を必要としないランダム化ハッシュなどの手法を使用することで、これらの問題を回避できます。

詳細は Wikipedia を参照してください。

2
garik

1978年にさかのぼって、Robert MorrisとKen Thompsonが nixの「crypt」パスワードスキーム を公開しました。これには、パスワードハッシュに重要な2つの革新、ソルトと反復回数が含まれます。ソルトがない場合、ハッシュはハッシュテーブルおよび Rainbow tables に対して非常に脆弱です。ソルトを使用しても、8字以下のほとんどすべてのパスワードのブルートフォースが非常に迅速に実行されるのを防ぐために、反復が必要です。 実際にRainbowテーブルを生成するのにどのくらい時間がかかりますか?

そのため、パスワード用に設計された実際のハッシュを使用してください。いくつかの良い候補は次のとおりです。

サーバー時間をあまり消費しないようにそれらを調整できますが、人々はあまり認証されないので、けちにしないでください。

参照: パスワードハッシュ-ITセキュリティ

9
nealmcb

最も重要なアドバイスは、パスワードハッシュ用に設計されたアルゴリズム(bcrypt、PBKDF2、またはscrypt)に移行することです。これらのアルゴリズムは、パスワードのハッシュのニーズを満たすように設計されています。たとえば、辞書攻撃を阻止するには、反復を使用してハッシュが低速であることを確認し、償却攻撃を阻止するには、ハッシュにソルトを含めます。

MD5からSHAに移行する必要はありません。 MD5が壊れていると聞いたことがあるかもしれません。これは事実ですが、MD5のパスワードハッシュを危険にさらすことはありません。 MD5への攻撃は、その衝突抵抗にあります。ただし、MD5の一方向性は依然として強力です。パスワードハッシュの場合、必要なのは一方向性だけです。したがって、MD5からSHA256やSHA512などの別のハッシュに移行する必要はありません( "外観"を除く)。

したがって、できる最も重要なことは、bcrypt/PBKDF2/scryptに切り替えて、辞書検索を困難にすることです。

パスワードをハッシュする方法についての優れたアドバイスを含む次の投稿も参照してください。

3
D.W.

SHA-2とソルトはうまく機能します。ただし、パスワードを移行する方法について考える必要があります。

2
Steve