Asp.netメンバーシップのSaltキーとは何ですか。また、このキーが使用される理由。
4 に答える
ソルトとは、パスワードを追加の値(この場合はソルトキー)でハッシュして、解読を困難にするプロセスです。これがそうである理由はいくつかあります。そのうちの2つは次のとおりです。
- ランダムキーなしでハッシュされた特定のパスワードは、特定の値にハッシュされます
x
。一般的なパスワードとそれらの無塩ハッシュをリストする多くのルックアップ(レインボー)テーブルが存在します。データベースが危険にさらされている場合、弱いパスワードハッシュは、オンラインで検索するだけでかなり簡単に解読できます。 - パスワードをハッシュせずにデータベースが盗まれた場合、同じハッシュを持つ同じ弱いパスワードを持つユーザーの塊が存在します。これにより、ハッカーは共通のハッシュを解読すると複数のアカウントにアクセスできるようになるため、解読を開始する場所が与えられます。
最後に1つ覚えておいてください。ソルティングはセキュリティ対策ですが、データベースを安全にするわけではありません。ほとんどのハッシュ関数は、データをすばやくハッシュすることを目的としています。これは、関数が速度に対して最適化されているため、これらの関数をブルートフォースするのが比較的簡単であることを意味します。パスワードを保護するための唯一の最良の方法の1つは、処理に時間がかかる関数でパスワードをハッシュすることです。これにより、ブルートフォース攻撃がはるかに困難になります。5ミリ秒ではなく100ミリ秒かかるパスワードは、エンドユーザーに気付かないほどのパフォーマンスの影響を与えますが、ハッカーがブルートフォース攻撃を行うには20倍の時間がかかります。この手法をハッシュと組み合わせると、ユーザーのデータを安全に保つことができます。
これは、このテーマに関する私のお気に入りの記事の1つです:http://crackstation.net/hashing-security.htm
辞書攻撃を防ぐために、 http://en.wikipedia.org/wiki/Salt_ (cryptography )を参照してください。
詳細についても参照してください
http://blog.nerdbank.net/2009/06/reverse-engineering-aspnet-membership.html
ソルトは単なる乱数です。フレームワークライブラリのRNGCryptoServiceProviderクラスを使用して、ソルトとして使用するのに適した乱数を生成できます。
塩はハッシュをランダム化するために使用されます。そのため、ルックアップテーブル、逆ルックアップテーブル、レインボーテーブルなどの攻撃は無効になります。
理解を深めるために、http://crackstation.net/hashing-security.htmの記事を読むことをお勧めします。