認証アプリ、ハードウェアトークン、SMSコードは、2要素認証(2FA)を設定する際によく使用される認証方法です。これらはすべて、ワンタイムパスワード(OTP)を使用しています。TOTPHOTPは標準化された2つのタイプのOTPであり、SMSやメールコードはその他の一般的なOTP配信方法です。これらは基本的に同じ目的を果たしますが、実装方法が異なり、それぞれに独自のメリットと制限事項があります。この記事では、HOTP、TOTP、OTPの違いを詳しく解説し、ユースケースごとに最適なオプションについて説明します。

HOTP、TOTP、OTPについて

ワンタイムパスワード(OTP)

OTPは、使い捨てパスワードや2FAコードとも呼ばれる、一度しか使用できない一時的なコードです。パスワードの代わりになるものではなく、セキュリティを強化するものです。OTPは、ログイン時やオンラインアカウントのセットアップ時における本人確認のために、銀行アプリなどで一般的に使用されています。

注意:OTPは、TOTP、HOTP、メールやSMSなど、さまざまな形式の使い捨てパスワードの総称です。

タイムベースワンタイムパスワード(TOTP)

TOTPコードは、通常、認証アプリによって生成される6桁のコードです。有効期間は約30秒です(サービスによっては最大60秒の場合もあります)。コードの有効期限が切れると機能しなくなり、新しいコードが生成されます。TOTPは時間に基づいているため、盗まれたコードを攻撃者が使用できる時間が限られており、非常に安全です。

HMACベースワンタイムパスワード(HOTP)

HOTPは、YubiKeyなどのハードウェアトークンによく見られ、カウンターベースのシステムを利用してコードを生成します。このシステムは、番号入りのバウチャーの冊子と似た仕組みで動作します。つまり、システムと照合されるコードの順序が決められています。ハードウェアトークンとアプリサーバーの同期が維持されている限り、お客様にアクセスが許可されます。

TOTPとは異なり、HOTPコードはタイマーによって有効期限切れになることはありません。コードを使用するか、新しいコードを生成するまで有効なまま残ります。そのため、オフラインのシナリオには最適ですが、コードを生成して使用しなかった場合、攻撃者に発見されて悪用される可能性のある有効なキーとして残ることも意味します。

HOTP、TOTP、OTP:主な違い

TOTPとHOTPはどちらも、生成方法が異なるOTPの一種です。例えば、TOTPとOTPを比較する場合、通常は認証アプリによる時間ベース of コードと、SMSやメールコードなどの一般的なOTP方法を比較していることになります。

SMS/メールコードTOTPHOTP
コードの有効期間変動(数分から数時間)30〜60秒新しいコードが生成されるまで
セキュリティ*低い高い中程度
セットアップの複雑さなし低い中程度
アクティブなネットワーク要件はいいいえいいえ
追加のハードウェア なしなしハードウェアトークン

*セキュリティレベルは、コードの有効期間と傍受のリスクに基づいています。

セキュリティ

HOTP、TOTP、OTPはそれぞれ異なるレベルのセキュリティを提供しており、主な検討事項は露出時間と送信方法です。

TOTPは通常、SMSやメールコードよりも強力なセキュリティを提供します。 コードはデバイス上で生成され、有効期限が短いためです。攻撃者が何らかの方法でお客様のTOTPコードを入手したとしても、そのコードは役に立ちません。

HOTPは暗号化技術をベースに構築されており、強固なセキュリティを提供します。ただし、HOTPコードはタイマーによって有効期限切れになることはないため、 有効期間が長くなる可能性があり、盗まれたコードが脆弱性となる恐れがあります。

SMSとメールコードは、これらの中で最もセキュリティが低くなります。傍受やリダイレクトが可能なネットワークを介して転送されるため、SIMスワップやフィッシング攻撃に対してより脆弱になります。..

注意:フィッシングなどのソーシャルエンジニアリング攻撃に対して完全に安全なOTP方法は存在しません。ご自身を適切に守るためには、フィッシングを見分ける方法を知っておくことが重要です。

SMS/メールコードTOTPHOTP
アクティブなネットワーク要件のため、傍受されやすい攻撃者が盗まれたコードを悪用できる時間が極めて短い有効期間が長いため、攻撃を受ける機会が増える
暗号化なしのプラットフォームでは、コードが盗まれやすくなるコードがデバイス上で生成されるため、傍受のリスクが低い暗号化技術に基づく強固なセキュリティ

ユーザーエクスペリエンス

セットアップの複雑さ、時間的なプレッシャー、そして信頼性が、これら3つの方法のユーザーエクスペリエンスに影響を与えます。

TOTPは信頼性が高く便利です。セットアップは簡単で(多くの場合、単にQRコードをスキャンするだけです)、アクティブなネットワークがなくてもコードが生成されます。しかし、コードの有効期限が短いため時間的なプレッシャーが生じ、操作が遅いユーザーや複数のアカウントを管理しているユーザーにとっては、ストレスに感じられることがあります。

それに比べてHOTPは、時間的な制約が一切ないため、はるかに余裕があります。ただし、セットアップははるかに複雑で、追加のハードウェアの購入が必要になる場合があります。

SMSやメールコードは、セットアップが不要で最も手間がかかりませんが、ネットワーク接続に依存しているため、障害や接続の中断が発生した際に遅延が生じる可能性があります。

SMS/メールコードTOTPHOTP
セットアップ不要2要素認証アプリを使用したQRコードによる簡単なセットアップ複雑なセットアップ、追加のハードウェアが必要な場合あり
わずかな時間的プレッシャー(一部のコードは数時間で有効期限切れになる)時間的なプレッシャーがストレスになる場合がある時間的なプレッシャーがない
コードの配信がアクティブなネットワークに完全に依存しているネットワーク接続がなくても確実に動作するオフラインで動作するが、同期の問題が発生する場合がある

制限事項

各方法における特有の制限事項は、それらを使用する方法やタイミングに影響します。SMSやメールコードはお客様の既存のデバイスで動作しますが、ネットワークやインターネット接続に依存しているため、コードの配信に遅延が生じ、有効期間を過ぎてしまうことさえあります。

TOTPはコードを生成するためにネットワーク接続を必要としませんが、コードを機能させるには、お客様のスマートフォンの時刻がサーバーと同期している必要があります。これを確実にする最善の方法は、デバイスの時計をインターネットと自動的に同期させることです。これにより、旅行中であっても時刻同期が維持されます。

HOTPを使用する場合、ネットワーク接続が不安定なときにオフラインで新しいコードを生成できるのが便利です。しかし、これは諸刃の剣でもあります。コードを使用せずに再生成を繰り返すと、お客様のデバイスがサーバーとの同期から外れてしまい、認証エラーが発生する原因になります。また、HOTPで必要となる手動での再生成は、ユーザーに非常に大きなセキュリティ上の責任を課すことになります。

SMS/メールコードTOTPHOTP
ネットワーク環境が悪い場所では、コードの配信に大幅な遅延が生じることがあります旅行中であっても、デバイスの時間はサーバーの時間と同期している必要があります。使用されないコードが多数生成されると、同期がずれる可能性があります。

どのOTP方式を使用すべきでしょうか?

端的に言えば、TOTPはほとんどの人にとって最適な標準規格である一方、HOTPは特定のオフラインのニーズに対応します。どちらもSMSより優れています。

個々のニーズはそれぞれ異なりますが、ほとんどの状況においてTOTPはよりバランスの取れた選択肢であると言えます。時間依存 of 特性によってセキュリティがさらに向上し、スマートフォンで利用できる手軽さから、お客様が日常的にアクセスするアカウントにとって便利かつ安全な選択肢となります。しかし、フィッシングに対するより強力な保護としては、FIDO2やパスキーなどのハードウェアベースの方法が、どのOTP方式よりも一歩進んでいます。

パスワードを安全に保存し、OTPを安全に生成します

パスワードやTOTP認証コードの管理は面倒な場合があります。ログイン時の絶え間ないアプリの切り替えにより、コードを入力するためのお客様の限られた時間がさらに短くなってしまいます。Proton Passは、安全なパスワードマネージャーであり、弊社の統合された2要素認証(TOTP)機能によってこの煩わしさを軽減します。1つの安全な暗号化済み保管庫から、パスワードや2要素認証コードなどにアクセスできます。