SECURE · BROWSER-ONLY
パスワード生成.jp
Secure Password Generator
🛡 ブラウザ完結 🔐 Web Crypto API 📡 通信ゼロ

TOTP(時刻ベースワンタイムパスワード)とは

30秒ごとに変わる6桁コードで認証する仕組み

TOTPとは

TOTP(Time-based One-Time Password)は、現在時刻を使って30秒ごとに変わる6桁のワンタイムパスワードを生成する認証方式だよ。Google AuthenticatorやAuthyで見たことがある人も多いんじゃないかな。

仕組み

TOTPの計算はシンプルだよ。

  1. 登録時にサービスと端末で「共有シークレット(秘密鍵)」を交換する(QRコードスキャンがこれ)
  2. 認証時に HOTP(シークレット, floor(現在時刻 / 30)) を計算
  3. 結果の6桁を入力する

サービス側も同じ計算をして、一致すれば認証成功。鍵を共有しているだけで、ネットワーク通信なしに認証できるんだ。

なぜ30秒なの?

時刻のずれ(クロックスキュー)に対応しながら、もし覗き見されても即座に使えないようにするバランスとして30秒が標準になってるよ。多くの実装では前後1タイム(±30秒)まで許容してる。

セキュリティの注意点

TOTPはフィッシングサイトでリアルタイムに盗まれる「リアルタイムフィッシング」に対しては弱い面がある。攻撃者が偽サイトと本物サイトの間に立って30秒以内に転送すれば突破できてしまうんだ。そういう意味ではパスキーやWebAuthnのほうが強力だけど、TOTPも何もないよりはるかに安全だよ。

バックアップコードも保存しよう

デバイスを失くしたときのために、設定時に表示されるバックアップコードは安全な場所に保管しておこう。パスワードマネージャーに保存するのがおすすめだよ。