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の方が一般的に使われてるよ。
作ったパスワードは頭で覚えるのではなく、マネージャーに任せると安全です。 編集部がふだん使っているサービスをご紹介します。
洗練されたUI・Watchtower侵害通知・旅行モード搭載。Apple製品ユーザーに特に人気の老舗マネージャー。
オープンソースで透明性が高く、無料プランでも基本機能をフルに使える。セルフホストも可能。
SOC2 Type2認証取得済み。BreachWatch によるダークウェブ監視と法人向け管理コンソールが強力。
NordVPN 系列の老舗。XChaCha20 暗号化・データ漏洩スキャナ・パスワードヘルスを内蔵。日本語UI対応。
スイス拠点・Proton Mail 系列。E2E 暗号化・メールエイリアス・2FA を1つに統合。プライバシー重視派に。