パスワードリセットリンクを送信するためのこの手法の外観が気に入っています。
https://neosmart.net/blog/2015/using-hmac-signatures-to-avoid-database-writes/
(TLDR:トークンをデータベースに保存しないでください。パスワードリセットリンクと電子メールアドレス、有効期限、対応するhmacを送信します)
特にMozilla/Bugzillaのリセットについて読んだ後 bug 。
しかし、それは攻撃をリプレイすることに対して脆弱であるようです。
Q1:良いHTTPSを想定して、どのような状況で脆弱ですか?
私のネットワークトラフィック(たとえば、wifiホットスポット)を監視している誰かが、リンクへのGETリクエストを単純に再生することはできないと思いますか?
Q2:攻撃者が私の電子メールへのアクセスまたは私のコンピューターへの物理的なアクセスを持っている場合、それがリプレイ攻撃のみの場合、トークンベースのパスワードは等しくリセットされません攻撃者が単に新しいリンクを要求する可能性があるため、脆弱です。
電子メールパスワードリセットシステムの主なリスクは、リセットトークンのSMTPトランスポートです。
有能な電子メールインフラストラクチャは、HTTPS(HTTP/TLS)Webメール、IMAPS(IMAP/TLS)、POP3/TLS、またはMAPI/TLSなどの独自プロトコルを使用します。そうでない場合は、できるだけ早く別のプロバイダーを入手してください。
リセットトークンリンクへのアクセス自体はTLS over HTTP GETを使用しており、攻撃者が見ることができるのはTCP接続レベル情報(ソース/宛先ポート/アドレス))だけです。
これにより、攻撃者はインターネット、送信者ネットワーク、またはメールプロバイダーのネットワークでのSMTPインターセプトのみを残します。 CFOや貴重な特権データアクセスを持つ他の個人などの価値の高いターゲットでない限り、ほとんどの攻撃者にとってこれは経済的ではありません。
攻撃者がアカウントの侵害を介してメールにアクセスできる場合、新しいリセットリンクを取得する可能性があります。二要素トークンはそれを軽減します。攻撃者がエンドポイントを侵害した場合、攻撃者はセッションを直接盗むことができます。その防御策は、アプリケーションがセッションを特定のホストにロックすることです。