デジタルバンキングの取引を承認するためにハードウェアトークンを使用したり、YubiKeyをタップしてログインコードを生成したりしたことがあるなら、HMACベースのワンタイムパスワード(HOTP)技術を利用したことがあるはずです。HOTPを使用してお客様のアカウントを保護する方法を理解していただくために、HOTPの仕組み、そのメリットと制限事項を解説し、他のOTP方式と比較します。

HOTPとは?

HOTPとは「HMAC-based one-time password(HMACベースのワンタイムパスワード)」の略です。これは、要求に応じて使い捨てのログインコードを生成する2要素認証(2FA)方式です。

HMAC(Hash-based Message Authentication Code:ハッシュベースメッセージ認証コード)とは、秘密鍵とハッシュ関数を使用して、改ざん防止機能に優れた安全な値を生成する暗号化技術です。HOTPはHMACをカウンターと組み合わせて適用し、各認証コードが固有で一度しか使用できないようにします。

HOTPコードは使用されるか別のコードに置き換わるまで有効であるため、信頼性の高い時間同期や常時接続が困難なリモートワークなどの環境に適しています。

HOTPはどのように機能するのでしょうか?

HOTP認証は、共有される2つのコンポーネント(秘密鍵とカウンター)に基づいています。ユーザーのデバイスと認証サーバーの双方がこれらの値を保管し、それらを使用して同じワンタイムコードをそれぞれ個別に生成します。

セットアップ:ハードウェアトークンをセットアップする際、秘密鍵がデバイスとアプリケーションサーバーとの間で共有され、双方向で安全に保管されます。

コードの生成:デバイスはHMACと呼ばれる暗号ハッシュ関数を使用して、秘密鍵と現在のカウンター値を組み合わせます。その結果、予測不可能な短いワンタイムパスワードが生成されます。

認証:お客様がHOTPコードを入力すると、サーバーは独自に保持している秘密鍵とカウンターのコピーを使用して同じ計算を行います。コードが一致すれば、アクセスが許可されます。

HOTPカウンターシステムの解説

HOTPは、お客様のデバイスと認証サーバー間で共有される独自のカウンターシステムに依存しています。新しいコードを生成するたびに、カウンターの値が1つ増加(インクリメント)します。ログインに成功すると、サーバー側も同様にカウンターを更新します。デバイスとサーバーのカウンターが同期している限り、コードは一致し、お客様のアクセスが許可されます。

HOTPは、順番に切り取って使用する番号付きのバウチャー(利用券)の冊子のようなものだとお考えください。一度使用したバウチャーは再利用できず、次のバウチャーを使用する必要があります。HOTPのカウンターシステムも同様に機能します。

HOTP認証 vs 他のOTP

HOTP vs OTP

ワンタイムパスワード(OTP)とは、2要素認証(2FA)に利用される、さまざまな使い捨てパスワードの広義の総称です。HOTPは、カウンターベースのシステムを利用してコードを生成する特定のOTP方式です。

HOTP vs TOTP

タイムベースのワンタイムパスワード(TOTP)は、30〜60秒ごとに自動的に新しいコードを生成します。最も一般的なTOTPの例は、認証アプリによって生成されるコードです。対照的に、 HOTPはタイマーではなくカウンターを使用して、リクエストがあった場合にのみ新しいコードを生成します。

この違いは、各OTP方式のセキュリティに影響します。TOTPの有効期限が短いことで、攻撃者が悪用できる時間は極めてわずかになります。これとは対照的に、HOTPコードは数日間、場合によっては数週間有効なままになる可能性があります。

しかし、HOTPはデバイスのクロックの信頼性が低い状況において、より高い信頼性を発揮します。例えば、 インターネット接続が不安定な遠隔の位置にある機器などです。

HOTPとSMS・メールコードの比較

携帯電話回線やインターネットネットワークを経由して送信されるSMSやメールのOTPコードは、傍受される危険性があります。HOTPはデバイス上でコードを生成するため、より安全であると同時に、ネットワーク障害が発生している間でも安定したアクセスを提供できます。

HOTPのメリットと制限事項は何ですか?

HOTP認証のメリット

推奨されるOTP方式としてHOTPを使用することには、いくつかのメリットがあります。

  • オフラインで動作:HOTPはオフラインで動作できるため、インターネットアクセスが制限されている場所での使用に最適です。
  • 時間制限がない:HOTPコードは自動的に有効期限切れにならないため、時間をかけてコードを入力できます。
  • 広く認められたアルゴリズム:HOTPはRFC 4226(新しいウィンドウ)で定義されており、さまざまなベンダーのソフトウェアプロバイダーやハードウェアトークン間での互換性が確保されています。
  • 依存関係が少ない:HOTPのカウンターベースのシステムは、正確なクロックや継続的な接続環境に依存しないため、特定の環境において動作の予測可能性が高まります。

HOTP認証の制限事項

すべてのテクノロジーと同様に、HOTPにも考慮すべき重要な事項がいくつかあります。

  • 無期限の有効性:新しいコードが生成されない限り、HOTPコードは無期限に有効なままになる可能性があります。これにより、攻撃者が盗んだコードを悪用する時間が長くなります。
  • カウンターの同期:コードを生成したものの使用しなかった場合、お客様のデバイスとサーバーのカウンターの同期がずれ、認証に失敗することがあります。
  • 手動での管理:コードは自動的に有効期限切れにならないため、使用するたびに新しいコードを生成することを忘れないようにする必要があります。

より強力なパスワードセキュリティへの第一歩を踏み出しましょう

HOTPには自動での有効期限切れというセキュリティ上のメリットや、SMSコードの利便性はないかもしれませんが、そのカウンターベースのシステムには独自の利点があります。これは確かな実績を持つ2要素認証システムであり、信頼性の高いオフラインアクセスを提供します。また、時間の制約がないため、一部のユーザーにとっては好ましい選択肢となるでしょう。
1つの暗号化された場所でパスワードと2要素認証コードを簡単に管理するには、Proton Passの使用をご検討ください。統合された2要素認証機能を備えた当社の安全なパスワードマネージャーは、完全なエンドツーエンド暗号化によって、お客様のすべての認証情報と2要素認証コードを保護します。デジタルライフの安全性と利便性を両立させることが、かつてないほど簡単になりました。