avatar

佐藤 健一

更新日:2026-04-03

3542 閲覧数, 5 min 読む

HOTPとTOTPは、どちらもOTP(ワンタイムパスワード)を生成する代表的な方式です。ただし、認証コードの生成方法、運用のしやすさ、適した利用シーンには違いがあります。

本記事では、OTP・HOTP・TOTPの違いを整理し、それぞれの仕組み、特徴、主な利用シーン、使い分けのポイントをわかりやすく解説します。

HOTPとTOTPの違い

OTPとは?

OTP(ワンタイムパスワード)とは、1回限り有効な認証コードです。ログイン認証や取引確認、本人確認などで広く利用され、一定時間が経過すると無効になります。

OTPの基本的な意味や使われる場面を先に確認したい場合は、ワンタイムパスワード(OTP)とは?もあわせてご覧ください。

本記事では、そのOTPを実装する代表的な方式であるHOTPとTOTPに焦点を当て、それぞれの違いを比較します。

HOTPとは?

HOTP(HMAC-based One-Time Password)は、カウンター値をもとに認証コードを生成する方式です。RFC 4226で定義されており、オフライン環境でも利用しやすい点が特長です。

一方で、クライアント側とサーバー側でカウンター値を同期する必要があるため、利用状況によってはズレが生じることがあります。運用面では、この同期管理がHOTPの重要なポイントになります。

HOTPアルゴリズムの仕組み

HOTPは、認証サーバーとクライアントデバイスが共有する秘密鍵と、OTP生成のたびに増加するカウンター値を使ってコードを生成します。中核となるのはHMAC(ハッシュベースメッセージ認証コード)です。

  • 初期化:秘密鍵をサーバーとクライアントで安全に共有します。
  • カウンター同期:両者が同じカウンター値を保持し、OTP生成のたびに増加させます。
  • HMAC計算:秘密鍵とカウンター値をもとにハッシュ値を生成します。
  • 動的トランケーション:ハッシュ値から6〜8桁程度のコードを取り出します。
  • 認証:ユーザーが入力したコードをサーバー側で照合し、一致すれば認証が完了します。

この方式はネットワーク接続に依存しにくいため、専用トークンや一部の業務環境と相性が良い一方、未使用コードの連続生成などによって同期ズレが起きる可能性があります。原稿でも、HOTPの長所としてオフライン利用性、短所として同期ズレのリスクが挙げられています。

HOTPのメリットと注意点

  • オフライン環境でも使いやすい

    サーバーとの常時接続を前提としないため、通信環境が不安定な場面でも利用しやすい方式です。

  • 専用トークン運用と相性が良い

    ハードウェアトークンや一部の業務用認証デバイスで利用されるケースがあります。

  • 同期ズレへの配慮が必要

    ユーザーが複数回コードを生成した場合などに、サーバー側とのカウンター差が認証失敗の原因になることがあります。

TOTPとは?

TOTP(Time-based One-Time Password)は、現在時刻をもとに認証コードを生成する方式です。RFC 6238で定義されており、HOTPのカウンター同期課題を改善した、より一般的なOTP方式として広く利用されています。

一定時間ごとにコードが自動的に切り替わるため、運用しやすく、一般的なログイン認証や認証アプリとの相性にも優れています。

TOTPアルゴリズムの仕組み

TOTPの仕組み

TOTPは、HOTPと同様に秘密鍵とHMACを利用しますが、動的変数としてカウンターではなく現在時刻を使います。一般的には30〜60秒ごとに新しいコードが生成されます。

  • 秘密鍵の共有:サーバーとクライアントで秘密鍵を保持します。
  • 時刻ベース計算:現在時刻を一定のタイムステップに区切って値を生成します。
  • HMAC計算:秘密鍵と時間情報を使ってハッシュ値を計算します。
  • コード生成:ハッシュ値から短い数字コードを取り出します。
  • 照合:サーバー側で同じ時間窓のコードを計算し、一致すれば認証します。

TOTPのメリットと注意点

  • 使いやすく現在の主流

    認証アプリと組み合わせやすく、一般的な二要素認証の実装で広く採用されています。

  • 短い有効期限でリスクを抑えやすい

    コードが短時間で失効するため、漏えいしても悪用されにくい設計です。

  • 時刻同期が前提になる

    サーバーと端末の時計が大きくずれると認証失敗の原因になるため、時刻同期の管理が重要です。

HOTPとTOTPの違い

HOTPとTOTPはどちらもOTP生成方式ですが、運用方法やセキュリティ上の特性は大きく異なります。両者の違いを比較表で整理すると、導入判断がしやすくなります。比較表自体は原稿内でもこのページの中核情報として置かれていました。

HOTPとTOTPの比較表

特徴 HOTP(RFC4226) TOTP(RFC6238)
ベースアルゴリズム HMAC-SHA-1 HMAC-SHA-1
動的変数 増分カウンター UNIXタイムスタンプ/タイムステップ
有効期間 使用されるまで、または次回生成まで 30〜60秒(一般的)
同期方法 カウンターの同期が必要 システムクロックで自動同期
オフライン利用 完全対応 一部対応
主な課題 同期ズレ 時刻ズレ
主な利用例 ハードウェアトークン、専用端末 認証アプリ、一般的な二要素認証

一般的には、運用のしやすさと短い有効期限のバランスからTOTPの方が広く使われています。一方、ネットワーク接続に制約がある環境や専用デバイス中心の運用では、HOTPが適している場合もあります。

HOTPとTOTPはどちらを選ぶべきか

  • 一般的なログイン認証を導入したい場合

    認証アプリや一般的な二要素認証を前提とするなら、TOTPを優先する方が導入しやすいケースが多いです。

  • オフライン利用や専用機器を重視する場合

    ネットワーク接続が不安定な環境や専用トークン運用では、HOTPが適していることがあります。

  • 迷った場合

    特別な要件がない限り、使いやすさと一般性の観点からTOTPを優先する考え方が現実的です。

また、原稿内では、通常はTOTPを使いながら、バックアップやステップアップ認証でHOTPを補助的に組み合わせる運用例も紹介されていました。

認証導入を進めるなら

HOTPやTOTPの違いを理解したうえで認証導入を進める際には、配信チャネルの多様性、認証完了率、運用性、セキュリティ対策まで含めてサービスを検討することが重要です。

EngageLab OTP は、OTP配信や認証導入を支援する選択肢のひとつです。SMS、Email、音声、WhatsApp など複数チャネルに対応し、導入後の運用管理も進めやすい設計になっています。原稿後半でも、TOTP 送信や多チャネル管理、リスク対策、信頼性の高さが製品訴求ポイントとして並んでいました。

  • 導入しやすい構成

    API連携により、既存システムやアプリにOTP認証を組み込みやすい設計です。

  • 複数チャネル対応

    SMS、Email、音声、WhatsApp など、利用シーンに応じた配信方法を選択できます。

  • 運用・セキュリティ対策

    認証頻度の制御や不正検知など、運用面での対策を組み合わせやすい構成です。

まとめ

OTPは、一度だけ使える認証コードという考え方を指し、その代表的な実装方式としてHOTPとTOTPがあります。HOTPはカウンターベース、TOTPは時刻ベースという違いがあり、それぞれに適した利用シーンがあります。

一般的なログイン認証や認証アプリ運用ではTOTPが使いやすく、オフライン環境や専用トークン重視の場面ではHOTPが適していることがあります。違いを整理したうえで、自社の要件に合う方式を選ぶことが重要です。

OTP認証の導入を具体的に進めたい場合は、EngageLab OTPの製品ページや関連ドキュメントも参考にしてください。