用語比較
TOTPとHOTPの違い
HOTPはイベント(カウンタ)ベース、TOTPは時刻ベースのワンタイムパスワード。現在主流はTOTPで、Google Authenticatorなどが採用。
- 難易度
- 中級
- 想定読者
- 開発者・情シス・MFA設計者
- 所要時間
- 約6分
HOTPとは
HMAC-based One-Time Password (RFC 4226)。共有鍵とカウンタからOTPを生成し、認証成功でカウンタを進める。
TOTPとは
Time-based One-Time Password (RFC 6238)。HOTPを基盤に、現在時刻のウィンドウ(30秒)でOTPを生成する。
違いの比較表
| 比較軸 | HOTP | TOTP |
|---|---|---|
| 基準 | カウンタ(イベント) | 時刻(30秒ウィンドウ) |
| 同期方法 | 認証成功時にカウンタ同期 | 端末/サーバーの時刻同期が前提 |
| 主な利用例 | ハードトークン、メール/SMS送信OTP | Google Authenticator等のアプリ |
| 弱点 | カウンタ同期ずれによるロックアウト | 時刻ずれ、フィッシングでのリアルタイム盗用 |
使い分け
- 一般的なアプリ MFA では TOTP を採用する
- 物理ハードトークンを併用する環境では HOTP が残る場合がある
- フィッシング耐性が必要な領域では FIDO2/パスキーへ移行する
よくある誤解
- TOTPはフィッシングに完全耐性がある、というのは誤解
- HOTPは古い規格で全て使われない、とは限らない
- SMSのOTPはTOTP/HOTPと同じく安全、というのは誤り
よくある質問
HOTPとTOTPの違いは?
HOTPはイベント(カウンタ)ベース、TOTPは時刻ベースのワンタイムパスワード。現在主流はTOTPで、Google Authenticatorなどが採用。
HOTPとは?
HMAC-based One-Time Password (RFC 4226)。共有鍵とカウンタからOTPを生成し、認証成功でカウンタを進める。
TOTPとは?
Time-based One-Time Password (RFC 6238)。HOTPを基盤に、現在時刻のウィンドウ(30秒)でOTPを生成する。
HOTPとTOTPはどう使い分ける?
一般的なアプリ MFA では TOTP を採用する 物理ハードトークンを併用する環境では HOTP が残る場合がある フィッシング耐性が必要な領域では FIDO2/パスキーへ移行する
HOTPとTOTPでよくある誤解は?
TOTPはフィッシングに完全耐性がある、というのは誤解 HOTPは古い規格で全て使われない、とは限らない SMSのOTPはTOTP/HOTPと同じく安全、というのは誤り