1

パスワードの暗号化に使用されるアルゴリズムは、新しいテクノロジー(CPUがより強力、GPU ...)により、年々弱くなっていると思います。

それで; これは、2006年に登録されたユーザーは、2012年に登録されたユーザーよりも保護されていないことを意味しますか?

それで; 2006年のそのユーザーのパスワードを更新する方法は?(たとえば、Yahoo、2006年以降に登録されている場合、私のパスワードは2012年に入力するパスワードよりも解読に時間がかからないので、Yahooは私のパスワードを新しい強力なシステムに更新する方法を教えてください。)

言い換えると、システムから別のシステムに移行する方法(たとえば、既存のMD5ハッシュパスワードの場合はMD5からBcryptに)

4

2 に答える 2

2

2つの実際の問題があります:

  • CPUパワーが増加するため、ブルートフォースクラッキングが増加します
  • 古いアルゴリズムは安全性が低くなります

後者は、通常のパスワードのハッシュとデータベースへの保存方法を変更することで修正されます。パスワードが古い形式で保存されている場合、ユーザーがログインするたびにこれを行うことができます。

最初のパスワードは実際にパスワードを変更する必要があるため、ユーザーにパスワードを頻繁に更新するように「強制」し、新しいパスワードを入力するときにパスワードの強度を確認(または少なくとも示す)する必要があります。

増加したCPUパワーに対抗する別の方法は、失敗したパスワードの試行回数を制限して、パスワードの総当たり攻撃を防ぐことです。

一般的に、ほとんどのWebサイトやシステムでは、パスワードストレージの適切な管理が不足していると思います。

于 2012-12-14T11:13:43.507 に答える
1

ハッシュスキームに現在の値を繰り返しハッシュするだけの場合(数千回)、後でいつでも反復回数を増やすことができます(減らすことはできません)。

反復関数としてbcryptを使用できるため、両方のスキームのメリットを享受できます。

このような:

var hash = bcrypt(pw, salt);
for N iterations:
 hash = bcrypt(hash, salt)

将来はいつでも新しいイテレーションを「追加」できます。

于 2012-12-14T11:26:08.457 に答える