SMS経由でスマートフォンにワンタイムパスワードを送信しました。これらのワンタイムパスワードには、2FAのパスワードと、時々のパスワードリセットが含まれます。
ワンタイムパスワードが使用された後、これらのSMSメッセージを削除する必要がありますか?
使用済みのワンタイムパスワードは再利用できませんが、使用済みのワンタイムパスワードの履歴にセキュリティ上の脆弱性があるのかと思います。サイトの認証で、1回限りのパスワード生成に安全でないアルゴリズムが使用されているとしましょう。ワンタイムパスワードの十分な履歴があれば、電話に保存されているSMSを取得できた人は、シーケンス内の次のワンタイムパスワードを取得できます。
この質問の範囲外:SMSメッセージが傍受されないと仮定します。
いつものように、脅威モデルを定義することから始めましょう:あなたは誰かがあなたの電話を手に入れ、あなたのSMS履歴を調べていることを心配しています。 。これは少し奇妙なセキュリティモデルで、SMSの傍受は本当に簡単で、携帯電話を盗んで強力なパスワードを取得することは比較的困難ですが、OKです。
サイトの認証で、1回限りのパスワード生成に安全でないアルゴリズムが使用されているとしましょう。ワンタイムパスワードの十分な履歴があれば、電話に保存されているSMSを取得できた人が、シーケンス内の次のワンタイムパスワードを取得できます。
もちろん、インターネット上のすべてのサイトがOTPを適切に実行することを保証することはできませんが、それはかなり厳密に定義された標準です。 wikipedia/Time-based_One-time_Password (およびより一般的な wikipedia/HOTP )を参照してください。これは強力な暗号化ハッシュ関数に基づいているため、攻撃者が過去の値から将来の値を導出するリスクはありません。または、可能であれば、ハッシュ関数は壊れていると見なされ、より良い関数を優先してそれを廃棄します。
また、ウェブサイトがワンタイムパスワードの「ワンタイム」部分を適切に適用していない可能性もありますが、これは、OTPシステムの実装のかなり基本的な部分です。
名前が示すように、OTPは1回の使用で、ほとんどの場合、時間制限(2〜3分)で実装されます。したがって、OTP(SMS経由)を使用するか、制限時間が経過すると、OTPは無効になります。
したがって、誰かがあなたの電話を盗んでOTPを使用する可能性は非常に低いです。また、攻撃者は、このOTPを使用するためにアクセスしているサイトを知る必要があります。
しかし、OTPは、モバイルに配信する前に攻撃者によってキャプチャされる可能性があります。 OTP転送に対するこの中間者攻撃を克服するためのHOTP(HMACベースのワンタイムパスワードアルゴリズム)などの高度なソリューションがあります。
HMACベースのワンタイムパスワードアルゴリズム:
このアルゴリズムは、2つの基本的なものに依存しています:共有シークレットと移動要素(別名カウンター)。アルゴリズムの一部として、移動要素のHmacSHA1ハッシュ(正確にはハッシュベースのメッセージ認証コード)が共有シークレットを使用して生成されます。このアルゴリズムはイベントベースです。つまり、新しいOTPが生成されるたびに、移動係数が増分されるため、その後生成されるパスワードは毎回異なるはずです。
出典: https://blogs.forgerock.org/petermajor/2014/02/one-time-passwords-hotp-and-totp/
これであなたの懸念が明確になることを願っています。
ワンタイムパスワードを送信するサイトが適切なアルゴリズム( [〜#〜] hotp [〜#〜] など)を使用して正しく実装している場合、古いメッセージを削除しても意味がありません。一方、サイトがおかしい自作を使用している場合や、正しく実装できない場合は、メッセージを削除すると便利です。
それで、それがどのケースであるかをどうやって知るのですか?あなたはしません。保護しようとしている情報がどれほど価値があるか、サイトを運営している人々をどれだけ信頼できるかについて考える必要があります。個人的に、私はこれらのメッセージを削除することを気にしたことは一度もありません。また、「通常の」ユーザーにも削除を勧めるつもりはないと思います。
そしてもう1つの側面:誰かがあなたの電話から古いメッセージを読むことができる場合、彼らは新しいメッセージも読むことができないのではないでしょうか?もしそうなら、攻撃者は新しいものをトリガーしてそれを読むことができるので、古いものを削除することは役に立ちません(彼女が最初の要素を知っていると仮定します)。