パスワードがハッシュされて保存されている場合、パスワードをリセットしようとすると、コンピューターはどのようにしてパスワードが最後のパスワードと類似していると認識しますか? 2つのパスワードはハッシュ化されており、元に戻すことができないため、完全に異なるのではないでしょうか。
これを実装する1つの方法は、パスワードをリセットする場合、通常は古いパスワードも入力するように求められます。この時点では、両方のパスワードがプレーンテキスト形式であるため、通常の文字列類似性比較を単純に使用できます。
これを実装する別の方法は、パスワードを正規化することです。たとえば、アクセント付き文字は最も近い英語のアルファベットに正規化され、テキストを音声変換して、数字などを削除し、パスワードから生成されるハッシュの複数のバージョンを事前計算して、さまざまな方法で正規化されていました。これは不特定の量だけハッシュメカニズムを弱めることに注意してください。これをセキュリティのベストプラクティスとは見なしません。
簡単な答えは、安全なシステムはそれらが類似しているかどうかを知らないということです。
ただし、一部のシステムでは、特定のパスワードのセキュリティを意図的に低下させて、新しいパスワードが古いパスワードやそれに類似したものになるのを防ぎます。費用対効果のトレードオフは、類似情報があっても誰かが現在のパスワードを悪意を持って解読する前に新しいパスワードが作成されることです。
一般に、これらの手法はそれぞれ、パスワードのセキュリティを低下させます。
古いパスワードを保持すると、それらのパスワードのセキュリティが低下します。これらのパスワードのいずれかがクラックされた場合、現在のパスワードがそれらに類似する可能性が高く、ほとんどの人は番号を変更するだけです。
サムネイリングと統計により、不正なパスワードの推測をハッシュして比較するよりも迅速に排除できます。これは、ハードウェアが高速化されている場合でも、ハッシュ、特にセキュアハッシュは計算と作業が複雑になるためです。 「間違いなく」または「たぶん」と言うより単純な計算でこれらの推測のほとんどを排除できますが、類似性チェックはすべて、古いものに似ていないまったく新しいパスワードを使用するのではなく、類似したパスワードの使用を停止することを目的としています。
要するに、現在のパスワードと古いパスワードの類似性を示すサイトには注意してください。新しいパスワードが古いパスワードであると彼らが言っていない限り。
パスワードがハッシュされて保存されている場合、パスワードをリセットしようとすると、コンピューターはどのようにしてパスワードが最後のパスワードと類似していると認識しますか? 2つのパスワードはハッシュ化されており、元に戻すことができないため、完全に異なるのではないでしょうか。
ユーザーが入力したパスワードから複数の類似したパスワードを生成し、それらのハッシュのいずれかが古いパスワードのハッシュと一致するかどうかを確認します。
別のパターンは、システムがパスワードの特徴的なサブセットをハッシュし、それらのハッシュを保存して、新しいパスワードのサブセットが古いパスワードのいずれかに一致するかどうかをチェックすることです。新しいもの。
1つの方法は、過去5つのハッシュされたパスワードを「パスワード履歴」などのテーブルに保存し、ユーザーが新しいパスワードを設定しようとしたときにハッシュして、テーブル内のハッシュされたパスワードと比較することです。