本文へスキップ

HOTPとは?

えいちおーとぴー

HOTPとは、カウンター値を基にワンタイムパスワードを生成するHMACベースの認証アルゴリズムです。

HOTP(HMAC-based One-Time Password)は、ワンタイムパスワード(OTP)を生成するアルゴリズムの一種で、IETF RFC 4226として標準化されています。二要素認証(2FA)の基盤技術として広く利用されています。

HOTPの仕組みは、共有秘密鍵とカウンター値をHMAC-SHA1関数に入力し、その出力から6〜8桁の数値を切り出すことでパスワードを生成します。認証サーバーとクライアント(スマートフォンアプリやトークンデバイスなど)が同じ秘密鍵とカウンターを保持しており、認証のたびにカウンターを同期させることで同一のパスワードを生成・照合します。

HOTPと混同されやすいのがTOTP(Time-based OTP)です。TOTPはカウンターの代わりに現在時刻を使うため、30秒ごとにパスワードが変わります。一方HOTPはカウンター方式なので、認証が行われるまでパスワードは変わりません。この特性からHOTPはハードウェアトークン(時計機能を持たないデバイス)との相性が良い反面、カウンターのずれ(同期ずれ)が生じると認証に失敗するリスクがあります。

HOTPの主な利点と注意点は以下のとおりです。

  • 時刻同期が不要でオフライン環境でも利用可能
  • 生成されたパスワードは使い切りで再利用不可
  • カウンターのずれが大きくなると再同期が必要
  • 盗聴された未使用パスワードが悪用されるリスクがある
現在はTOTPが主流ですが、HOTPはFIDOやOATH仕様の基礎として重要な位置を占めています。

使い方・例文

銀行のハードウェアトークンでボタンを押すたびに新しい番号が表示される仕組みは、HOTPの原理を応用しています。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語