※本ページにはプロモーション(広告)が含まれています
Google Authenticatorの時刻同期ドリフトとは何か?なぜコードが無効になるのか
スマートフォンでGoogle Authenticatorを開いて6桁のコードを入力したのに「コードが無効です」と弾かれる——そんな経験はありませんか?パスワードは正しいのにログインできない状況は非常に焦りますし、アカウントにアクセスできなくなるリスクもあります。
原因の多くは「時刻同期ドリフト(Time Sync Drift)」と呼ばれる現象です。Google AuthenticatorはTOTP(時刻ベースのワンタイムパスワード)という仕組みを使っており、スマートフォンの内部時計がズレると生成されるコードも正しい値からズレてしまいます。パスワードは合っているのに認証が通らない、という不思議な現象はほぼこれが原因です。
本記事ではGoogle Authenticatorの時刻ドリフトの仕組みから、具体的な修正手順、再発防止策まで詳しく解説します。

この記事でわかること
- Google AuthenticatorのTOTPが時刻に依存する理由
- 時刻ドリフトが発生するメカニズムと原因
- Android・iPhone別の時刻同期修正手順
- Google Authenticatorアプリ内の時刻補正機能の使い方
- 再発防止のための設定と代替アプリの比較
Google AuthenticatorのTOTP基礎知識
TOTPとは何か
TOTP(Time-based One-Time Password)は、現在時刻と秘密鍵を組み合わせてワンタイムパスワードを生成する仕組みです。RFC 6238で標準化されており、Google Authenticatorはこの規格に準拠しています。
コードは30秒ごとに更新され、クライアント(スマートフォン)とサーバーが同じアルゴリズムで同じ時刻を使って計算することでコードが一致します。したがって、スマートフォンの時計がサーバーの時計とズレると、生成されるコードも異なる値になります。
許容されるズレの範囲
多くのサービスは前後1〜2ステップ(30〜60秒)のズレを許容しています。しかし時刻ドリフトが90秒以上になると、ほぼすべてのサービスで認証が失敗します。
| 時刻のズレ | 認証成否 | 対処の緊急度 |
|---|---|---|
| 0〜30秒 | ほぼ成功 | 低 |
| 30〜60秒 | サービスによる | 中 |
| 60〜90秒 | 多くのサービスで失敗 | 高 |
| 90秒以上 | ほぼすべて失敗 | 緊急 |
時刻ドリフトが発生する主な原因
原因1: 機内モードや電波が届かない場所での長期使用
スマートフォンは通常、携帯キャリアのネットワークやNTPサーバーから定期的に時刻を同期します。長時間機内モードにしていたり、電波の届かない場所にいたりすると、内部時計が自動補正されずにズレが蓄積します。
原因2: タイムゾーン設定のミスマッチ
海外旅行後にタイムゾーンが適切に変更されていない場合、時刻表示は正しく見えても内部的にはズレが生じることがあります。特に「自動設定」をオフにしている場合に発生しやすいです。
原因3: バッテリーの劣化とRTCドリフト
スマートフォンには電源オフ時に時刻を保持するためのリアルタイムクロック(RTC)が内蔵されています。バッテリーが劣化すると、このRTCへの電力供給が不安定になり、時刻のドリフトが加速することがあります。
原因4: OSやシステムの更新後のリセット
大型OSアップデート後に「ネットワーク時刻同期」設定がリセットされるケースが報告されています。アップデート後にGoogle Authenticatorの認証が突然失敗し始めた場合はこれを疑います。
原因5: Androidカスタムロムや一部のモデル固有の問題
カスタムROMを使用しているAndroid端末や、一部のメーカー独自チューニングが入った機種では、NTP同期の動作が標準と異なる場合があります。

対処法: 時刻ドリフトを修正する手順
対処法1(Android): Googleの自動時刻同期を有効にする
- 「設定」アプリを開く
- 「一般管理」または「システム」をタップ
- 「日付と時刻」をタップ
- 「自動日時」または「ネットワークが提供する時刻を使用」をオンにする
- 「自動タイムゾーン」もオンにする
- 設定後、端末を再起動する
対処法2(Android): Google Authenticatorアプリ内の時刻補正機能を使う
Google Authenticatorには、アプリ内から時刻を補正する機能があります。
- Google Authenticatorアプリを開く
- 右上の「︙(三点リーダー)」をタップ
- 「設定」をタップ
- 「コードの時刻補正」をタップ
- 「今すぐ同期」をタップ
- 「内部時計を同期しました」と表示されたら完了
この機能はアプリ内部でGoogleのNTPサーバーと同期するため、端末のOS設定に関係なく補正が可能です。
対処法3(iPhone/iOS): 自動設定をオンにする
- 「設定」アプリを開く
- 「一般」をタップ
- 「日付と時刻」をタップ
- 「自動設定」をオンにする
- 画面を閉じて30秒ほど待つ
対処法4: 端末を再起動してNTP再同期を強制する
設定を変更した後でも時刻がズレたままの場合、端末の完全再起動でNTP同期が即時実行されることがあります。再起動後にWi-Fiまたはモバイルデータ通信に接続した状態で1〜2分待ちましょう。
対処法5: Google Authenticatorのバックアップ移行を使って再登録
上記すべての対処法を試しても改善しない場合、Google Authenticatorのアカウント移行機能を使って別のデバイスや新しいインストールに移行し、再度QRコードでアカウントを登録し直すことが最終手段です。この場合は必ず元のサービス側でバックアップコードを用意しておいてください。
Google Authenticatorと代替アプリの比較
| アプリ名 | 自動時刻補正 | クラウドバックアップ | マルチデバイス |
|---|---|---|---|
| Google Authenticator | 手動(アプリ内同期) | Googleアカウント | 対応(2023年〜) |
| Authy | 自動 | 暗号化クラウド | 対応 |
| Microsoft Authenticator | 自動 | Microsoftアカウント | 対応 |
| 1Password | 自動 | 有料プラン | 対応 |
再発防止策
「自動日時設定」は常にオンに保つ
手動で時刻を設定していると、ドリフトが蓄積しやすくなります。特に旅行後などはタイムゾーンの自動設定も合わせて確認しましょう。
定期的にNTP同期の確認習慣をつける
月に一度でよいので、設定画面で「自動日時」がオンになっているか確認する習慣をつけると、ドリフトによる問題を未然に防げます。
Googleアカウントとの同期バックアップを設定する
2023年以降のGoogle Authenticatorはアカウントバックアップに対応しています。Googleアカウントでサインインしておくと、機種変更時のデータ移行も簡単になります。

この記事に関連するおすすめ商品
ハードウェアセキュリティキー(YubiKey互換)
約4,000円〜
時刻に依存しない物理的な2段階認証デバイス
スマートフォン用 高精度GPS時計・NTP対応ルーター
約8,000円〜
ネットワーク機器レベルで時刻精度を担保
※ 価格は変動します。最新価格はリンク先でご確認ください
よくある質問(FAQ)
Q1. Google Authenticatorのコードが毎回失敗するのはなぜですか?
A. ほとんどの場合は端末の時刻ズレが原因です。Google Authenticatorアプリの設定から「コードの時刻補正」→「今すぐ同期」を試してください。それでも失敗する場合は、端末の「日付と時刻」の自動設定がオンになっているか確認しましょう。
Q2. 時刻同期しても直らない場合はどうすればよいですか?
A. タイムゾーン設定も確認してください。時刻は正しく見えてもタイムゾーンがズレていると内部的にはドリフトが生じます。また、端末を完全再起動してNTPサーバーへの再接続を試みてください。
Q3. iPhoneでGoogle Authenticatorの時刻補正機能はありますか?
A. iOS版Google Authenticatorには現時点でAndroid版のような「コードの時刻補正」機能はありません。代わりにiOSの「設定」→「一般」→「日付と時刻」→「自動設定」をオンにすることで対処します。
Q4. バックアップなしで端末を紛失した場合、2FAを解除できますか?
A. 各サービスで設定したバックアップコードを使用するか、サービスのサポートに本人確認のうえ依頼する必要があります。今後のためにGoogleアカウントとのバックアップ同期を有効にしておくことを強く推奨します。
Q5. Authyに乗り換えると時刻ドリフト問題は解消しますか?
A. Authyは自動的に時刻補正を行うため、手動での同期操作は不要です。ただし根本的なドリフトの原因(端末の時計設定)が解消されていないとAuthyでも問題が再発する可能性があります。端末側の自動時刻設定をまず正しく設定することが先決です。
まとめ
Google Authenticatorの「コード無効」エラーは、時刻ドリフト(端末の時計のズレ)が原因であることがほとんどです。解決の優先順位は以下の通りです。
- Google Authenticatorアプリ内の「コードの時刻補正」→「今すぐ同期」(Android)
- 端末設定の「自動日時」「自動タイムゾーン」をオンにする
- 端末を再起動してNTP再同期を強制する
- 改善しない場合はアカウント移行機能で再登録
2段階認証はセキュリティの要ですが、正常に動作していなければ意味がありません。普段からGoogleアカウントとのバックアップ同期を有効にし、いざというときに備えておきましょう。本記事の手順で問題が解消することを願っています。
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!