TOTPコードが動作しない?一般的な問題の修正方法


あなたのコードは正しいのに、サイトが間違っていると言う

認証アプリを開き、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コードが動作しない場合は、これを実行してください:

  1. スマートフォンの時刻は自動に設定されていますか?(80%の問題を修正)
  2. 入力する前に新しいコードを待ちましたか?
  3. 正しいアカウントのコードを読んでいますか?
  4. コードは一度も動作したことがありますか、それとも最初から失敗しましたか?
  5. 2fa.zipでコードを検証できますか?

これらすべてを実行してもコードがまだ動作しない場合、問題はおそらくサービス側にあります。ステータスページを確認するか、サポートに連絡してください。

最初から正しく2FAを設定するステップバイステップガイドについては、DiscordおよびGitHubのガイドをご覧ください。

二要素認証でアカウントを保護しましょう

ブラウザ上でTOTPコードをすぐに生成できます。

無料の2FA認証コードジェネレーターを試す

関連記事