16

各ユーザーのランダムなソルト値を保存するとします。ユーザーパスワードが変更されたときに新しいソルト値を生成する必要がありますか?それとも、そのユーザーアカウントの存続期間全体で同じ値を使用する必要がありますか?

4

2 に答える 2

25

塩を変えるべきです。ソルトは、すべてのパスワード インスタンスに対して (できるだけ) 一意になるように設計されています。

古いパスワードと新しいパスワードに同じソルトを使用すると、古いハッシュ化されたパスワードと新しいハッシュ化されたパスワードを見た攻撃者は、一方を攻撃するコストの 2 倍未満のコストで両方を攻撃できます。これはまさに、ソルトが回避するように設計された種類のものです (そして、ソルトにはそれ以外の用途はありません)。

もちろん、古いパスワードは古いため、もはやシステムに入る有効な方法ではありません、ユーザーはパスワードを再利用する傾向があるため、(攻撃者の観点から) 古いパスワードは依然として価値があるかもしれません。特に、ユーザーは自分のパスワードを再度変更するときに古いパスワードを再利用する可能性があります (これは、通常のパスワード変更が必要なシステムに直面したときに、ほとんどのユーザーが行うことです: 2 つのパスワードを交互に使用します)。

于 2011-04-28T13:51:22.897 に答える
3

パスワードが脆弱ではない (そして攻撃者がソルトを知らない) 場合、別のソルト値を使用しても、パスワードが変更された場合にパスワードのセキュリティは向上しないため、同じままにできます。

ソルト値の目的は、同じパスワードを持つ別のユーザーが同じパスワード ハッシュを持たないようにすることです。

とにかく、攻撃者が以前にユーザーのパスワードを解読し、salt の値を知っているとします。パスワードだけを変更すると、攻撃者はソルトをすでに知っているため、より少ない計算で再びパスワードを破ることができます。

したがって、新しいパスワードを設定するときにソルトを変更することをお勧めします。

于 2011-04-28T12:25:04.757 に答える