あなたのコードは正しいのに、サイトが間違っていると言う
認証アプリを開き、6桁のコードを読み、慎重に入力し、そして…「無効なコード」。次のコードでもう一度試します。同じこと。設定を間違えたか、サービスが壊れているのではないかと考え始めます。
これはあなたが思っているよりも頻繁に起こり、そしていつも単純な説明があります。
最も一般的な原因:時計がずれている
TOTPコードは2つのものから計算されます:秘密鍵と現在時刻。スマートフォンとサーバーは両方とも、現在時刻について合意する必要があります。スマートフォンの時計が30秒でもずれていると、間違った時間ウィンドウのコードを生成し、サーバーはそれを拒否します。
これは、TOTPコードが動作しない理由として、圧倒的に最も頻度が高いです。
修正方法:
- Android: 設定 > システム > 日時に移動し、「自動的に時刻を設定」をオンにします。すでにオンなら、オフにしてから再度オンにします。自動同期が有効でも、一部のスマートフォンは時間とともにずれる場合があります。
- iPhone: 設定 > 一般 > 日付と時刻に移動し、「自動設定」がオンになっていることを確認します。すでにオンでコードが失敗する場合は、オフにし、数秒待ってから再度オンにします。
- Google Authenticatorには内蔵の時刻同期があります:設定 > コードの時刻補正 > 今すぐ同期に移動します。これは、スマートフォンのシステム時計を変更せずに、アプリの内部オフセットを調整します。
旅行中にスマートフォンを手動で別のタイムゾーンに設定した場合、それはTOTPに影響を与えるべきではありません(アルゴリズムはUTCを使用します)が、設定の悪いデバイスは混乱する場合があります。自動時刻を維持してください。
コードの入力が遅すぎる
TOTPコードは30秒間有効です。アプリからコードを読み、ブラウザに切り替え、入力フィールドを見つけ、入力するまでに、次の時間ウィンドウに境界を超える可能性があります。入力したコードは、現在では前のコードです。
ほとんどのサーバーは、このことを考慮して隣接する時間ウィンドウ(前後)からのコードを受け入れます。しかし、ぎりぎりの場合、それでも拒否されることがあります。
修正方法: 認証アプリに新しいコードが表示されるのを待ち、すぐに入力します。カウントダウンに5秒残っているコードの入力を開始しないでください。
間違ったQRコードをスキャンした、または間違った秘密を入力した
設定以来コードが一度も動作していない場合、間違った秘密鍵を保存した可能性が高いです。これは以下の場合に発生します:
- 別のアカウントのQRコードをスキャンした
- 秘密鍵を手動で入力し、タイプミスをした
- 設定プロセスが中断され、鍵が正しく保存されなかった
修正方法: サービスのセキュリティ設定に移動し、2FAを無効にします(これにはバックアップコードが必要になる場合があります)。そして最初から再設定します。QRコードを慎重にスキャンし、設定ページを閉じる前にコードを入力して確認してください。
間違ったアカウントを見ている
同じサービスに複数のアカウントがある場合(例えば、個人用と仕事用のGmail)、認証アプリは両方のエントリーを持っています。特にラベルが似ている場合、間違ったものからコードを読み取りやすいです。
修正方法: アプリのTOTPエントリーのラベルを確認します。ほとんどの認証アプリは、各エントリーに関連付けられたメールアドレスまたはユーザー名を表示します。実際にログインしているアカウントのコードを読んでいることを確認してください。
サーバーの時計が間違っている(まれだが起こる)
時々、それはあなたのせいではありません。サービスのサーバーが時計ずれしている場合、皆からの有効なコードを拒否します。これは大手プロバイダーではめったに起こりませんが、小規模なサービス、セルフホストアプリケーション、または企業の内部ツールでは発生する可能性があります。
確認方法: 2fa.zipでコードを試してみてください。同じ秘密鍵を入力し、生成されるコードが認証アプリと一致するか確認します。一致すれば、問題はサーバーサイドにあり、あなたのせいではありません。サービスのサポートチームに連絡する必要があります。
秘密鍵の形式が間違っている
TOTPの秘密は、base32エンコードされた文字列です(文字A-Zと数字2-7を使用)。秘密を手動で入力し、この範囲外の文字を含めた場合、またはサービスが異なる形式の鍵を提供した場合、生成されたコードは間違ったものになります。
修正方法: 秘密鍵を再確認してください。スペースやダッシュを削除します(これらは読みやすさのためだけです)。曖昧な文字がないことを確認してください(0対O、1対l)。疑わしい場合は、エントリーを削除し、秘密鍵を手動で入力する代わりにQRコードをスキャンしてください。
クイックチェックリスト
TOTPコードが動作しない場合は、これを実行してください:
- スマートフォンの時刻は自動に設定されていますか?(80%の問題を修正)
- 入力する前に新しいコードを待ちましたか?
- 正しいアカウントのコードを読んでいますか?
- コードは一度も動作したことがありますか、それとも最初から失敗しましたか?
- 2fa.zipでコードを検証できますか?
これらすべてを実行してもコードがまだ動作しない場合、問題はおそらくサービス側にあります。ステータスページを確認するか、サポートに連絡してください。
最初から正しく2FAを設定するステップバイステップガイドについては、DiscordおよびGitHubのガイドをご覧ください。