-1

ユーザーパスワードを保存および確認するための正しい手順を読んでいて、塩について少し困惑しています。

レインボーテーブルなどのツールの使用を防ぐためのものだと思いますが、ソルトをハッシュと一緒に保存するという考えは、潜在的なセキュリティ上の問題のように思えます。私の好みでは、1 つの場所にあまりにも多くのデータがあります。

私が人々に実行させたいと思っているアイデアは、「ラッキー ナンバー」を使用して、パスワード ハッシュの一部からソルトを作成することです。基本的に、パスワードを選択するとともに、ユーザーは「ラッキー ナンバー」も選択します。この数値は、ハッシュされたパスからソルトを取得するための開始インデックスとして使用されます。

したがって、非常に基本的な例は次のようになります。

Pass = "Password"
Lucky Number = "4"
Pass Hash = "00003gebdksjh2h4"
Salt Length = "5"
Resulting Salt = "3gebd"

私の考えでは、「ラッキー ナンバー」を保存する必要がないため、salt の計算にも時間がかかり、攻撃がさらに困難になります。プラスは、わずかに少ないデータを保存することを意味します。

4

1 に答える 1

0

セキュリティが強化されるわけではありません。レインボー テーブルを使用する目的は、辞書の単語と関連するハッシュの組み合わせのマップを作成することです。計算するパスワード ハッシュごとに多かれ少なかれ異なるソルト (通常、辞書にはありません) を使用することで、攻撃者はエントリごとにレインボー テーブルの新しいセットを生成することになります。計算コストが高い。攻撃者は (ハッシュ テーブルの生成を除いて) どの時点でもハッシュを計算しないため、ここでの戦略は失敗します。

一方、通常の辞書攻撃を使用する場合、攻撃者はソルトを計算するために一定時間の計算しか必要としません。ソルトは、生成する必要がある数百万以上のハッシュの組み合わせに対して 1 回だけ計算する必要があります。それをすべて生成するよりも計算コストが高い場合にのみ機能しますが、ユーザーがログインするたびに同じ計算を行う必要があり、これは実現不可能です。

于 2015-02-09T22:31:27.310 に答える