先日、実家の母から「ネットスーパーにログインできない!パスワードは合ってるのに、6桁のコードを入れても何回やってもダメなの」と慌てた電話がかかってきました。乗っ取られた? と一瞬ドキッとしたのですが、原因はiPhoneの時計が5分ほどズレていただけでした。

同じ症状で困っている方、焦らなくて大丈夫です。アカウントが乗っ取られたわけではありません。スマホの時刻設定をひとつ確認するだけで、ほとんどの場合すぐに解決します。

なぜ時計がズレると認証コードが通らなくなるのか

Google AuthenticatorやMicrosoft Authenticatorなどの認証アプリが表示する6桁のコードは、TOTP(Time-based One-Time Password、時刻ベースのワンタイムパスワード)という仕組みで生成されています。ざっくり言うと「いまの時刻」と「あらかじめ登録された秘密のカギ」を組み合わせて、30秒ごとに新しいコードを計算する方式です。

つまり、スマホの時計とサーバーの時計がほぼ同じでないと計算結果が食い違います。たった数分のズレでもコードが一致しなくなるため、正しく打ち込んでいるのに「無効です」「コードが正しくありません」と弾かれる症状が出ます。

母の場合、iPhoneの「日付と時刻」の自動設定がオフになっていて、時計が約5分進んでいました。原因がわかってしまえば、設定を戻すだけ。3分で解決です。

iPhoneで時刻の自動設定を確認する手順

操作は1分もかかりません。

  1. ホーム画面で「設定」を開く
  2. 「一般」をタップ
  3. 「日付と時刻」をタップ
  4. 「自動設定」のスイッチを確認する

スイッチがオフ(グレー)になっていたら、タップしてオンに切り替えてください。iPhoneがネットワーク経由で正確な時刻を取得しなおしてくれます。

もしスイッチがグレーアウト(薄い色)になっていてタップできない場合は、スクリーンタイムの制限が原因の可能性があります。「設定」→「スクリーンタイム」→「コンテンツとプライバシーの制限」→「位置情報サービス」の中で「日付と時刻の自動設定」に制限がかかっていないか見てみてください。

フリーランス仲間とZoomしていたときにも同じ話題が出たのですが、iOSアップデートの直後にこの自動設定がオフに変わっていたケースがありました。その人はAmazonにログインできなくなって、最初は「アカウントを乗っ取られた」と焦っていたんです。結局、「設定」→「一般」→「日付と時刻」を開いたら自動設定がオフだったと。自分では触った記憶がなくても変わることがある、というのが厄介なところです。

Androidで時刻の自動設定を確認する手順

Androidはメーカーや機種によってメニューの場所が少し違います。代表的な手順はこちらです。

  1. 「設定」アプリを開く
  2. 「システム」または「一般管理」をタップ
  3. 「日付と時刻」をタップ
  4. 「日時を自動的に設定」がオンになっているか確認する

もし違う画面が出た場合は、設定アプリ上部の検索バーに「日付と時刻」と入力してみてください。ほとんどの機種でたどり着けます。

Googleの公式ヘルプによると、自動設定をいったんオフにしてからオンに戻すことで時刻が再同期される場合があります。オンのままなのに認証が通らない場合は、オフ→5秒待つ→オンの切り替えを試してみてください。

Google Authenticatorの「時刻の補正」機能はもうない

ネット上の古い解説記事を読むと、Google Authenticatorアプリの中に「コードの時間調整」→「今すぐ同期」というメニューがあった、と書いてあります。2024年リリースのバージョン7.0で、この機能は廃止されました。

現在のGoogle Authenticatorは、スマホのOS側の時刻設定をそのまま使う仕様です。つまり、前のセクションで紹介したiPhone・Androidの「日付と時刻」を正しくすることが、そのまま認証コードの時刻補正になります。

Microsoft Authenticatorも同じく端末の時刻に依存しているので、対処法は変わりません。認証アプリ側の設定をいじる必要はなく、端末の時計を合わせればOKです。

時刻を直してもコードが通らないときのチェックポイント

自動設定をオンにしたのにまだ弾かれる。そんなときは別の原因かもしれません。落ち着いて次の3点を確認してみてください。

  • 認証アプリに複数アカウントが並んでいないか 同じサービスで2つのアカウントを持っている場合、違うほうのコードを入力していることがあります。アカウント名(メールアドレス)をよく見てから入力してください
  • コードの残り秒数が少なくないか TOTPコードは30秒で切り替わります。残り3秒くらいのタイミングで入力を始めると、送信した瞬間にコードが変わっていることがあります。次のコードに切り替わった直後に入力するのがコツです
  • SMS認証と認証アプリを混同していないか ログイン画面に「テキストメッセージで送信されたコードを入力」と表示されていたら、それは認証アプリではなくSMS(ショートメッセージ)のほうを確認する必要があります

母のケースは時刻設定だけで直りましたが、5回以上コードを入力して全部ダメだった場合は、ロックがかかるサービスもあります。むやみに連打せず、サービスのアカウント復旧ページから手続きを進めるほうが安全です。

FAQ

時刻の自動設定がオンなのに認証コードが通りません

自動設定をいったんオフにして、5秒ほど待ってからオンに戻してみてください。これでスマホが時刻を再取得します。それでも直らない場合は、スマホの再起動も試してみてください。

二段階認証のコードが通らないのはアカウント乗っ取りのサインですか?

コードが通らないこと自体は乗っ取りの兆候ではありません。むしろ、認証の仕組みが正しく動いているからこそ「ズレたコード」を弾いている状態です。ただし身に覚えのないパスワード変更通知やログイン通知が届いている場合は、乗っ取りの可能性があるのでサービスのサポートに連絡してください。

機種変更したら認証アプリのコードが空になっていました。復旧できますか?

Google AuthenticatorはGoogleアカウントへのバックアップをオンにしていれば新端末で復元できます。バックアップがない場合は、各サービスのアカウント復旧手続きで二段階認証をリセットする必要があります。機種変更の前に、認証アプリのバックアップ設定を確認しておくことをおすすめします。

iOSアップデート後に時計がズレることは本当にあるのですか?

Apple公式には明記されていませんが、AppleコミュニティではiOSアップデート後に「日付と時刻の自動設定」がオフになっていた報告が複数投稿されています。アップデート後にログイントラブルが起きたら、まず時刻設定を確認するのが手早い対処法です。

参考文献