web-dev-qa-db-ja.com

ユーザーにパスワードのリセットのための独自の秘密の質問を選択させるべきですか?

私はWebアプリケーションを構築していて、実際に、ユーザーがパスワードを忘れた場合に、ユーザーが秘密の質問と答えを選択してそれらを識別するためのコードを書いています。

多くの有名なWebサイトは制限された質問と事前に設定された質問のリストのみを提供し、ユーザーが自分の秘密の質問を入力できないので、私はここで少し混乱しています。ただし、ハッカーがソーシャルエンジニアリングや情報収集によって答えを簡単に推測できるため、セキュリティが低下します(秘密の質問はもはや秘密ではありません)。

自分で秘密の質問を保存し、自分を特定する必要がある場合は他のランダムな質問の中から選択させることで、セキュリティ上のリスクはありますか?.

SQLインジェクションのリスクを認識しているので、コードが安全で、データが適切に保存されているとしましょう。

4
storm

あらかじめ決められたセキュリティの質問は、ユーザーが定義した質問よりも攻撃者に推測される可能性が高いというコメントをします。これは、平均的なユーザーが、システムを実装するユーザーよりも優れた(たとえば、より秘密で、推測しにくい)質問を設計することを前提としています。これは、ほとんどのユーザーには当てはまらないようです。

1つの研究室の研究 で、被験者は自分のセキュリティの質問を考え出すのに平均15秒しか費やしませんでした。良いセキュリティの質問をするものの特性について考える時間は、これからです。 別の研究 研究者は、セキュリティの質問を作成する人々に、質問を設計するときに重要な要素と考えていることを尋ねました。 「記憶力」が非常に重要であると答えたのは70%が「記憶力」を非常に重要な要素であると特定しました。したがって、ユーザーが独自の質問を記述できるようにすると、推測に抵抗するのではなく、簡単に回答できるようにすることに重点が置かれるため、セキュリティが低下することがよくあります。

私は実際にこの動作を少し観察できました 私が実施した調査 数年前、いくつかのWebサイトデータベース違反の際に漏えいしたユーザー定義のセキュリティ質問/回答のペア。質問の多くが、事前定義されたセキュリティの質問リストに表示されるのと同じタイプの質問であることがわかりました。母親の旧姓、ペットの名前、出生地などです。しかし、これには、「好きな色は何ですか」などの悪い質問が含まれており、一部の回答は他の回答よりも可能性が高く、5つの推測(青、紫、緑、赤、黒)を行うと、ユーザーの回答の75%に正しく一致します。

さらに悪いことに、一部のユーザーは、自分の選択によって質問のセキュリティを完全に損なうことを選択します。一部のユーザー(1つのサイトで15%、別のサイトで2%)は、回答を質問と一致させます。少数(0.2%および1.8%)でも、質問としてパスワードをリストします。これらの場合、質問を表示できるすべてのユーザーがその情報を使用して、ユーザーとしてログインできます。ユーザーが質問を提出するときに質問をチェックしてこの動作を防止するように制御を実装できますが、それを回避しようとするユーザーに対して強制することはかなり困難です。

セキュリティの質問は、ユーザーを認証するための非常に良い方法ではありませんが、ユーザー定義の質問を許可することは、さらに悪い解決策になる傾向があります。セキュリティの質問を使用する場合は、その長所と短所を評価するのに最も適任の人々によって評価および選択される必要があります。

7
PwdRsch

基本的に、人々は質問をするのが粗末です。彼らは「タイプ「シークレット」」や「私の名前」のようなものを思いつきます-それらは最高で価値がなく、最悪の場合は積極的に有害です(「通常のパスワード」-質問への回答はプレーンテキストで保存される傾向があります。 ..)。事前に決められた質問でさえかなり悪いです-簡単に推測されたり、忘れられたりする傾向があります(たとえば、「最初の車は何でしたか?」と尋ねると、サイトが18歳向けである場合、それは見ているだけの問題ですFacebook上にあり、ほぼ確実にそれらの写真があります...)。

ベストプラクティスは、保存された電子メールアドレスにパスワードリセットリンクを電子メールで送信することです(入力されたアドレスが存在するかどうかを公開しないでください)。これは時間制限があり、1回限りの使用です。その後、必要に応じて質問することができますが、アカウントに関連付けられているメールアドレスにアクセスできることをすでに確認しているため、通常はメールで送信される可能性のあるもの(アドレス、生年月日、パートナーの名前など)、セキュリティの観点からは、それほど多くはないかもしれません。

12
Matthew

他の回答に加えて、ユーザーが選択した二次的な秘密の質問を回避する理由は、「不適切な」コンテンツが含まれている可能性があることです。

これは通常、質問と回答が管理スタッフに表示される場合のみの問題です(たとえば、秘密の質問と回答がコールセンター認証プロセスの一部として使用される場合)。

2
A_Learner