クラウドサービスやSNSへのログインでは、いまも多くの場面でIDとパスワードが使われています。ところがパスワードは、盗まれる・推測される・使い回しで連鎖被害が起きる、といった弱点と常に隣り合わせです。そこで「パスワードが漏れても、そのままではログインできない」状態を作る追加の手段として、ワンタイムパスワード(OTP)が広く使われています。
この記事では、ワンタイムパスワードの概要から仕組み(HOTP/TOTP・チャレンジレスポンス)、受け取り方法(トークン/アプリ/SMS/メール)、メリット・デメリット、企業導入で押さえるべき設計ポイント(登録・復旧・監視・フィッシング耐性)までを、運用の現実に即して整理します。
ワンタイムパスワード(One-Time Password:OTP)とは、一度だけ、または短時間だけ有効な使い捨てコードを用いて本人確認を補強する仕組みです。固定パスワードが漏えいしても、OTPがなければログインできない設計にできるため、パスワード単独の認証より不正利用の成功率を下げられます。
OTPは、単体で使うというより、一般的には「ID/パスワード+OTP」のように組み合わせて使います。これにより、攻撃者が固定パスワードを入手しても「追加のコード」が必要になり、突破の難易度が上がります。
パスワードが突破される経路は「総当たり」だけではありません。現実の侵害では、次のような経路が重なって発生します。
OTPは「固定パスワードが漏れても、そのままではログインできない」状態を作ることで、これらの経路のうち少なくとも“パスワード単独で成立する攻撃”を潰すのが役割です。ただし後述のとおり、OTPにも苦手な攻撃があり、導入するだけで安全が保証されるわけではありません。
OTPの生成・検証方法は複数ありますが、実務で押さえるべきポイントは「サーバーと利用者側が、同じ条件で“同じコード”を作れる(または検証できる)」ことです。多くのOTPは、事前に共有した秘密情報(シード/シークレット)を基に、一定のルールでコードを生成します。
OTPの代表的な方式は、HOTP(カウンター方式)とTOTP(時刻方式)です。呼び方は難しく見えますが、違いは「何を変数にしてコードを変化させるか」です。
HOTPは、サーバーと利用者側で「カウンター(回数)」を共有し、その値を進めながらコードを生成します。ボタンを押すたびに次のコードが出るトークンなどは、この考え方で説明できます。時刻に依存しない一方で、カウンターずれ(押し過ぎ・未同期)を吸収するための検証窓(いくつか先まで許容)が必要になり、運用設計が重要になります。
TOTPは、現在時刻を一定間隔(例:30秒)に区切った値を使ってコードを生成します。スマホの認証アプリで「30秒ごとにコードが変わる」タイプは、この方式が典型です。時刻同期が前提になるため、端末の時計が大きくずれていると失敗しやすく、サーバー側は時間のずれを吸収する検証窓を持つのが一般的です。
チャレンジレスポンスは、サーバーがその場で提示する「チャレンジ(乱数など)」に対して、利用者側がチャレンジを使ってレスポンスを生成し、サーバーが検証する方式です。ログインのたびに条件が変わるため、設計次第でリプレイ(再送)に強くできます。
一方で、実装や運用がやや複雑になりやすく、一般的な「認証アプリに表示される6桁コード」よりも、専用の仕組み・要件に沿って使われることが多い方式です。
OTPの安全性は「コードの短さ」ではなく、コードを生成するための秘密情報(シード/シークレット)が守られていることで成り立っています。つまり、次の点が設計の急所になります。
OTPは「どう生成・どう届けるか」で、利便性とリスクが大きく変わります。ここでは企業利用で比較されやすい代表パターンを整理します。
専用機器がコードを生成・表示し、利用者がそれを入力する方式です。スマホ不要で運用できる点は強みですが、配布・回収・故障交換・在庫管理などの運用負荷が発生します。紛失・盗難時には、当該トークンを無効化し再発行する手順が必須です。
スマホの認証アプリがOTPを生成する方式です。配布物が不要で導入しやすく、TOTPの代表的な形態でもあります。一方で、端末の紛失・故障・機種変更・初期化は必ず起きるため、復旧(再登録)を業務停止にしない設計が重要です。
また、スマホ自体がロックされていない、端末がマルウェアに感染している、バックアップから他端末に複製される、といった状況ではリスクが上がります。OTPは「アプリを入れたら終わり」ではなく、端末側の基本対策も含めて成立します。
登録済みメールにコードを送る方式です。専用アプリ不要で手軽ですが、メールアカウントが乗っ取られていると同時に突破される点が最大の弱点です。加えて、遅延・迷惑メール判定・配送失敗などでログインできなくなることがあり、業務利用では可用性の面で設計が必要になります。
登録済み電話番号宛てにSMSでコードを送る、または音声で案内する方式です。導入は簡単ですが、SMSはフィッシングと相性が悪く、転送設定・番号再発行・SIMを狙った攻撃などの論点もあります。重要度が高い用途では、認証アプリやセキュリティキー等の選択肢も含めて検討するのが現実的です。
OTPを追加すると、固定パスワードが漏れても「それだけではログインできない」状態を作れます。結果として、パスワードリスト攻撃の成功率を下げやすくなります。
固定パスワード(知識)に対し、OTPを「所持」に寄せて運用できれば、二要素認証(2FA)の形になります。とくに管理者アカウント、リモートアクセス、重要データに触れる業務など、突破時の影響が大きい入口の補強に向きます。
全社員・全システムを一度に切り替えるのが難しい場合でも、まずは高リスクのアカウントからOTPを必須化し、順次対象を広げるといった段階導入が現実的です。
利用者がコード確認・入力をする分、UXは下がりやすくなります。業務でログイン頻度が高い場合は、セッション設計(再認証間隔)や、リスクに応じた追加認証(高リスク時のみ要求)など、負担を抑える工夫が必要です。
OTPは「手元のデバイスが使えること」を前提にしやすく、復旧手順が弱いと業務停止に直結します。導入前に、再登録フロー・本人確認手段・ヘルプデスクの対応範囲・停止時の暫定措置を決めておく必要があります。
OTPは使い捨てでも、フィッシングサイトに入力させられると、その瞬間に攻撃者が正規サイトへ中継して悪用できる場合があります。つまりOTPは「パスワード単独より強い」が、「フィッシングを根絶できる」わけではありません。
フィッシング耐性を重視するなら、利用者教育だけでなく、ログイン画面の保護、異常検知、そして必要に応じてフィッシング耐性の高い認証方式の検討も視野に入ります。
OTPは技術要素だけでなく、登録・復旧・監視まで含めた運用設計で効果が決まります。ここでは「導入して終わり」になりやすい論点を、先回りで整理します。
メールやSMSは手軽ですが、メールアカウントや電話番号の保護が弱いと、OTPの意味が薄れます。逆に認証アプリは強くしやすい一方で、端末紛失や機種変更が必ず起きます。自社の運用前提(端末管理・ヘルプデスク・復旧フロー)と合わせて選定します。
OTPの導入で見落とされがちなのが、初期登録時のなりすましです。攻撃者が先にOTPを登録できてしまうと、以後の防御が崩れます。登録時にどの情報で本人確認するか、登録後に通知や監査ログをどう残すかが重要です。
端末紛失・故障・機種変更は例外ではなく日常イベントです。復旧手順が未整備だと、現場は抜け道(共有OTP、例外運用の常態化)を作り、結果として全体の強度が落ちます。次を最低限定義します。
最初に効果が出やすいのは、管理者アカウント、クラウドの管理画面、VPN/リモートアクセス、重要データに触れる業務システムなど「突破時の影響が大きい入口」です。ここを先に必須化し、例外運用を最小化しながら対象を拡大するのが現実的です。
OTPはコードが短いことが多く、無制限に試行できると総当たりの余地が生まれます。OTP入力の失敗回数制限、レート制限、一定回数での追加確認、異常な失敗の検知とアラートなどを合わせて設計します。ログを取るだけでなく「誰が見るか」「何を異常とするか」を決めて初めて効果が出ます。
OTPを導入しても、入力させられれば突破されるケースがあります。対策は「教育」だけに依存させず、URLのなりすまし対策、ログイン通知、リスクベースの追加認証、怪しい挙動の遮断など、複数層で設計します。
ワンタイムパスワード(OTP)は、一度だけ、または短時間だけ有効なコードを使ってログインを補強する仕組みです。固定パスワードが漏えいしても、そのままではログインできない状態を作れるため、パスワード単独認証より不正ログインのリスクを下げられます。
一方で、OTPは万能ではありません。フィッシングには弱いケースがあり、紛失・機種変更などでログイン不能になるリスクもあります。企業で導入するなら、方式選定だけでなく、登録時の本人確認、復旧手順、試行回数制限と監視、フィッシング対策まで含めて設計し、「強くしたはずなのに運用で弱くなる」状況を避けることが重要です。
ワンタイムパスワードは、一度だけ、または短時間だけ有効な使い捨てコードです。固定パスワードと組み合わせて使うことで、パスワードが漏えいしても不正ログインされにくくします。
同じコードを繰り返し使えず、有効時間も短いことが多いためです。固定パスワードが漏れても、OTPがなければログインできない設計にできる点が効果になります。
HOTPはカウンターの進み具合に応じてコードが変わる方式で、TOTPは一定間隔の時刻に応じてコードが変わる方式です。認証アプリで30秒ごとに変わるコードはTOTPの典型です。
サーバーが提示するチャレンジに対し、利用者側がレスポンスを生成して返し、サーバーが検証する方式です。ログインのたびに条件が変わるため、設計次第で再送攻撃に強くできます。
近年は配布物が不要で導入しやすいことから、スマホアプリが選ばれることが増えています。どちらでも、紛失や故障時の再登録手順を先に決めておくことが重要です。
手軽ですが、メールアカウントが乗っ取られていると突破される可能性があります。重要な用途では、メール以外の方式も含めて検討するのが現実的です。
広く使われていますが、フィッシングや転送設定などのリスクがあり得ます。利用の重要度と運用前提に応じて、方式を選ぶことが大切です。
一定の効果はありますが万能ではありません。フィッシングサイトに入力させられると、その場で悪用される可能性があるため、別の対策と組み合わせる必要があります。
OTPが使えずログインできなくなる可能性があります。再登録や暫定アクセスなどの復旧手順を用意し、業務停止を防ぐ設計にしておくことが重要です。
管理者アカウントやリモートアクセス、重要データに触れる業務システムなど、突破されたときの影響が大きい入口から優先して必須化すると効果が出やすいです。