web-dev-qa-db-ja.com

ユーザーにパスワードを現在のパスワードにリセットすることを許可する必要がありますか?

次の質問に答えようとしていますが、明確な答えが見つからないようです...

ユーザーがパスワードを忘れたときにリセットした場合、パスワードをすでに設定されているパスワードに変更できるようにする必要がありますか?

ユーザーがパスワードをリセットした理由はすべて、ユーザーがパスワードを忘れたことにあると理解していますが、セキュリティの観点から、別のパスワードに変更しても意味がないのではないでしょうか。 Forgot Password Cheat SheetAuthentication Cheat Sheet では、古いパスワードの再利用についての言及はありません。

このルールを使用する必要がある場合、これは適切なエラーメッセージですか?

パスワードは既存のものとは異なる必要があります。

4
ub3rst4r

ユーザーによるパスワードの再利用を制限するアプリケーションは、アプリケーションとそのリスクの受け入れに大きく依存すると思います。パスワードの「ベストプラクティス」は、おそらく情報セキュリティの最も対立するトピックの1つであるため、これらのチートシートでパスワードについて言及されていないのはこのためです。

ユーザーがX日ごとにパスワードを変更することを要求するパスワードポリシーを採用している組織では、ユーザーが自分のパスワードを既存のパスワードに変更することを制限することは理にかなっています。この背後にある論理は、ユーザーが定期的にパスワードを変更するように要求することで、古いパスワードが危険にさらされた場合に、パスワードリプレイ攻撃で使用される可能性を減らすことです。

このようなポリシーでは、「Remembered Passwords」の値が設定される可能性があります。このポリシーは、以前のユーザー[〜#〜] x [〜#〜]のパスワードを記憶し、パスワードポリシーに準拠し、古いパスワードを再利用しないようにします。 。古いパスワードを再利用すると、パスワードポリシーが実質的に役に立たなくなります。この場合、ユーザーが「パスワードを忘れた」オプションをクリックした場合に、ユーザーに新しいパスワードを設定するように強制する必要があります。ユーザーにそうすることを強制することなく、ユーザーはアプリケーションで「パスワードを忘れた」機能を使用して、パスワードを新しいものに変更せずに常に同じパスワードを使用できるようにすることができます。

さらに一歩進んで、ユーザーが[〜#〜] x [〜#〜]のパスワードを変更できないパスワードの「フリーズ」時間が存在することも一般的です変更後の日数。これは、変更された3つのパスワードを繰り返し使用して、好きなパスワードを利用できるようにすることを防ぐためです。このように、ユーザーが好きなパスワードの有効期限が切れた場合、ユーザーは自分のパスワード[〜#〜] x [〜#〜]をすばやく変更して、好きなパスワードに戻すことができません。

編集:これはあなたが何をするかですが、NISTは ガイドラインを発行 推奨againstパスワードポリシーをユーザーにパスワードの変更を要求します。

4
DKNUCKLES

一般的な経験則:ほとんどのパスワードポリシーはがらくたです。それらは古く、検証されていない仮定に基づいています。ちょうど今年は、主流のニュースさえ作ったNIST標準の明るい例がありました。

定期的または何らかのイベントのためにユーザーにパスワードの変更を強制すると、パスワードが何であったかを覚えるのが難しくなります。人間は変数処理が得意ではありません。パスワードを忘れた非常に一般的な原因の1つは、パスワードの強制変更です。ヘルプデスクの多くの苦情は、基本的に「覚えていません」であり、完全な記憶ではありません。

ユーザーがパスワードを忘れた理由があるため、変更は有益です。多分それはひどく選ばれた(覚えにくい)。ただし、これはユーザーが選択する必要があります。

私がほとんど常に見逃している重要な考慮事項の1つは、ユーザーの観点からシステムの種類と重要性を説明することです。ほとんどのユーザーが毎日使用するシステムのルールは、ほとんどのユーザーが不規則に使用するルールとは異なり、使用間で一時停止が長くなります。

4
Tom

最新のNISTガイドラインによると、パスワードを変更する理由は2つあります。これらは徐々に業界標準になりつつあります。

  1. ユーザーは現在のパスワードが気に入らない。
  2. 現在のパスワードが侵害されたか、または侵害された疑いがあります。

ユーザーはさまざまな理由で現在のパスワードを嫌う可能性があります-パスワードを忘れた、タイプするのが難しい、安全でないと思った、自分でパスワードをローテーションしたい、など。ユーザーがパスワードをリセットして現在のパスワードに設定した場合パスワード、問題はありません-これらは私が「ユーザビリティのリセット」と呼んでいるものです-それらはセキュリティにまったく関係していません。ユーザーが自分のパスワードを現在のパスワードにリセットしたい場合、誰が気にかけますか?侵害されていなかったので、それが同じであるかどうかは問題ではありません。

反対に、パスワードが危険にさらされている場合は変更する必要があり、同じパスワードに変更することはできません。

ユーザーが開始するパスワードリセットと管理者/システムが開始するパスワードリセットを区別するシステムでは、ユーザーに同じパスワードの使用を許可(またはリセットを拒否)しながら、管理リセットにパスワード履歴の要件を適用できます。ほとんどのシステムはこれを行わず、すべてのリセットを最も厳しいルールに基づいて処理しますが、ユーザーが妥協のないパスワードを現在のパスワードにリセットすることを選択できるようにすることにはセキュリティ上の懸念はありません。

ユーザーが古いパスワードを再利用できないようにするには、せいぜい古いハッシュを残しておく必要があります。セキュリティの観点から見ると、攻撃者が持つ情報量が増えるため、パスワードのセキュリティが低下するだけです。パスワードハッシュDBの違反の場合、これは攻撃者の仕事を簡単にするだけです。

たとえば、パスワードを反復したり、パスワードを再利用したりすることは珍しくありません。 5つの古いパスワードハッシュを保持し、ハッシュがpa $$ Word1、pa $$ Word2、pa $$ Word3、pa $$ Word4、およびpa $$ Word5の場合、ハッシュが侵害された場合どちらも、1つのパスワードが解読される可能性を5増やし、アクティブなパスワードのパターン(明らかにpa $$ Word6)に関する情報も増やしました。

これにより、ユーザーが古いパスワードを再利用またはリサイクルする可能性がある他の無関係なWebサイトのセキュリティが低下するという影響もあります。

他の人が指摘したように、パスワードを取り巻く規則はブードゥー教、不十分な仮定に基づいており、それらに関連するコストを考慮していません。ユーザーがパスワードを再利用できないようにすることは、この良い例です。

1
Steve Sether