web-dev-qa-db-ja.com

パスワードリセットトークンはいつまで有効ですか?

パスワードリセットトークンの有効期間はどれくらいですか?

短すぎるとユーザーエクスペリエンスが低下し、長すぎるとセキュリティが低下します。

Microsoft ID デフォルトは1日ですが、これは非常に長いです。

3
mantale

答えは、リセットトークンの複雑さによって異なります。目的は、指定された有効期間内にリセットトークンを推測できないようにすることです。

たとえば、リセットトークンが5文字で数字のみであり、サーバーがレート制限なしで1秒あたり100リクエストに応答できる場合、15分は長すぎる可能性があります。考えられる攻撃について考えてみてください。

  1. 攻撃者は自分のパスワードをリセットして、リンクの動作を確認します
  2. 攻撃者は犠牲者のアカウントをリセットし、自分がn分の時間を持っていることを知っている
  3. 攻撃者は、正しいキーが見つかるまで、多かれ少なかれランダムなキーでパスワードリセットページを呼び出します。

これ-特にステップ3-は、指定された時間内に可能ではありません。つまり、(32文字、英数字などの)リセットキーを描画するのに十分な大きさのユニバースと、アプリケーションでのレート制限があれば、1日でもセキュリティに大きな影響はありません。また、実行したパスワード変更について、2番目の電子メール/メッセージでユーザーに通知することもできます(そうする必要があります)。また、アプリケーションはユーザーが入力する必要がないため、ユーザーエクスペリエンスを損なうことなく、非常に長いリセットトークンをサポートする場合があることに注意してください。

編集:もちろん、所定の時間内にテストできるキーの割合が非常に少ない方法で計算する必要があります。たとえば、指定されたタイムスロットで0.000001%の確率で正しいキーを推測することは、許容できるリスクである可能性があります。少量のリスクは、何らかの形で受け入れる必要があるものです。

5
Ben