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

HOTPとは

カウンター値を使うワンタイムパスワードの基礎仕様

HOTPとは

HOTP(HMAC-based One-Time Password)は、ワンタイムパスワードを生成するアルゴリズムで、RFC 4226として標準化されてるよ。時刻ベースのTOTPの基礎となった仕様で、カウンターの値を使ってワンタイムパスワードを生成するんだ。

TOTPとの違い

HOTP TOTP
変動要素 カウンター(回数) 時刻(30秒単位)
有効期限 使用されるまで無期限 30秒間
同期 カウンター同期が必要 時刻同期(NTP)
主な用途 ハードウェアトークン スマホアプリ

計算の仕組み

HOTP(秘密鍵, カウンター) = Truncate(HMAC-SHA1(秘密鍵, カウンター))

HMAC-SHA1の結果から特定のビットを取り出して6桁の数値に変換するよ。サービス側と端末側でカウンターを同期させておくことが前提なんだ。

現実での使われ方

HOTPは主にハードウェアトークン(RSTシークレット型の物理デバイス)で使われてるよ。ボタンを押すたびにカウンターが増えて新しいコードが表示される。銀行のワンタイムパスワードカードなどに使われてることが多いね。

セキュリティ上の注意

HOTPコードは使用されるまで有効なため、傍受された場合のリスクがTOTPより高い。また、カウンターのずれが大きくなると再同期が必要になる場合がある。現代の2FA実装ではTOTPの方が一般的に使われてるよ。