web-dev-qa-db-ja.com

パスワードがハッシュされて保存されている場合、パスワードをリセットしようとすると、コンピューターはどのようにしてパスワードが最後のパスワードと類似していると認識しますか?

パスワードがハッシュされて保存されている場合、パスワードをリセットしようとすると、コンピューターはどのようにしてパスワードが最後のパスワードと類似していると認識しますか? 2つのパスワードはハッシュ化されており、元に戻すことができないため、完全に異なるのではないでしょうか。

11
bob larry

これを実装する1つの方法は、パスワードをリセットする場合、通常は古いパスワードも入力するように求められます。この時点では、両方のパスワードがプレーンテキスト形式であるため、通常の文字列類似性比較を単純に使用できます。

これを実装する別の方法は、パスワードを正規化することです。たとえば、アクセント付き文字は最も近い英語のアルファベットに正規化され、テキストを音声変換して、数字などを削除し、パスワードから生成されるハッシュの複数のバージョンを事前計算して、さまざまな方法で正規化されていました。これは不特定の量だけハッシュメカニズムを弱めることに注意してください。これをセキュリティのベストプラクティスとは見なしません。

15
Lie Ryan

簡単な答えは、安全なシステムはそれらが類似しているかどうかを知らないということです。

ただし、一部のシステムでは、特定のパスワードのセキュリティを意図的に低下させて、新しいパスワードが古いパスワードやそれに類似したものになるのを防ぎます。費用対効果のトレードオフは、類似情報があっても誰かが現在のパスワードを悪意を持って解読する前に新しいパスワードが作成されることです。

  • それらはあなたが使用したパスワードの最後のNハッシュを保存するかもしれません。古いパスワードを入力すると、新しいパスワードのハッシュが古いパスワードのハッシュと一致するため、そのパスワードは明らかです。
  • 使用されるハッシュメカニズムには、サムネイリングメカニズムが含まれている場合と、ハッシュされたサムネイルがハッシュと一緒に格納される場合があります。基本的に、ハッシュサムネイル内の特定のビットパターンは、基になる値の非常に類似したビットパターンのセットを表します。
  • 同様に、彼らはあなたのパスワードに関する統計を脇に寄せておくかもしれません、それは類似性の正確な測定を可能にするでしょう。

一般に、これらの手法はそれぞれ、パスワードのセキュリティを低下させます。

  • 古いパスワードを保持すると、それらのパスワードのセキュリティが低下します。これらのパスワードのいずれかがクラックされた場合、現在のパスワードがそれらに類似する可能性が高く、ほとんどの人は番号を変更するだけです。

  • サムネイリングと統計により、不正なパスワードの推測をハッシュして比較するよりも迅速に排除できます。これは、ハードウェアが高速化されている場合でも、ハッシュ、特にセキュアハッシュは計算と作業が複雑になるためです。 「間違いなく」または「たぶん」と言うより単純な計算でこれらの推測のほとんどを排除できますが、類似性チェックはすべて、古いものに似ていないまったく新しいパスワードを使用するのではなく、類似したパスワードの使用を停止することを目的としています。

要するに、現在のパスワードと古いパスワードの類似性を示すサイトには注意してください。新しいパスワードが古いパスワードであると彼らが言っていない限り。

12
Kain0_0

パスワードがハッシュされて保存されている場合、パスワードをリセットしようとすると、コンピューターはどのようにしてパスワードが最後のパスワードと類似していると認識しますか? 2つのパスワードはハッシュ化されており、元に戻すことができないため、完全に異なるのではないでしょうか。

ユーザーが入力したパスワードから複数の類似したパスワードを生成し、それらのハッシュのいずれかが古いパスワードのハッシュと一致するかどうかを確認します。

7
Jörg W Mittag

別のパターンは、システムがパスワードの特徴的なサブセットをハッシュし、それらのハッシュを保存して、新しいパスワードのサブセットが古いパスワードのいずれかに一致するかどうかをチェックすることです。新しいもの。

2
Lukasz Matysiak

1つの方法は、過去5つのハッシュされたパスワードを「パスワード履歴」などのテーブルに保存し、ユーザーが新しいパスワードを設定しようとしたときにハッシュして、テーブル内のハッシュされたパスワードと比較することです。

1
SKDev