ソフトウェアトークンは、スマートフォンやPC上で動作し、OTPや承認応答によって本人確認を補強する仕組みです。専用デバイスを配らず導入しやすい一方、端末管理や再発行手順まで含めて設計しないと、期待した強度を維持しにくい面もあります。
ソフトウェアトークンとは、スマートフォンやPCなどのデバイス上で動作し、ワンタイムパスワード(OTP)や認証用レスポンスを生成・保持したり、認証要求に応答したりする仕組み(アプリケーション/機能)を指します。代表的な利用形態はOTPの生成・入力ですが、チャレンジ&レスポンスやプッシュ承認のように、別の方法で認証を補強する実装もあります。
多くのソフトウェアトークンは、あらかじめ利用者ごとに発行された秘密情報(シークレット)と、時刻や回数といった条件を材料にしてOTPを生成します。OTPは短時間で変化するため、同じコードを長く使い回しにくくなります。ただし、リプレイへの耐性は、サーバー側が有効期間中のOTPを一度しか受け付けないことや、OTPの送信経路が保護されていることを前提に成り立ちます。
現在では、オンラインバンキング、クラウドサービス、VPN、社内システムなど、幅広い場面で利用されています。特にリモートワークやクラウド移行が進むと社外からのアクセスが増えるため、ソフトウェアトークンを含む多要素認証(MFA)の重要性は高まります。
OTPを生成するタイプで見ると、ソフトウェアトークンとハードウェアトークンの違いは、そのOTPを生成する実体にあります。ハードウェアトークンは専用の物理デバイスでOTPを生成し、ソフトウェアトークンはスマートフォンやPCにインストールしたアプリ等でOTPを生成します。
どちらが優れているかは一概に言えません。本人確認の強さだけでなく、配布方法、復旧手順、端末管理の成熟度など、運用まで含めて選択することが重要です。
ソフトウェアトークンは「どの方式で認証を補強するか」でいくつかに分かれます。入力の手間を抑えたいのか、オフラインでも使いたいのか、高い保証を優先したいのかを先に決めると、方式ごとの差を見分けやすくなります。
代表例は次のとおりです。
なお、「APIトークン(アクセスキー)」のようにシステム間連携で使う文字列は、ここでいうソフトウェアトークン(利用者認証に使うアプリ/機能)とは意味が異なります。前者はシステムやプログラムが提示する資格情報であり、後者は利用者が本人確認のために使う仕組みです。用語が混同しやすいため、設計や説明の場面では分けて扱う必要があります。
ソフトウェアトークンは、ID・パスワードに“追加で”提示させることで本人確認を強化する用途で使われます。典型的には次のような場面です。
また、MFAの文脈ではソフトウェアトークンは一般に「所持(持っているもの)」の要素として扱われます。ただし、端末が共有されている、ロックが弱い、端末が乗っ取られているなどの場合は強度が落ちるため、端末管理やポリシー設計がセットで必要です。
ソフトウェアトークンがOTPを生成できる理由は、端末とサーバーが同じ秘密情報(シークレット)を共有し、同じルールで計算できるようにしているからです。サーバーは利用者が入力したOTPを、その時点で“計算上正しい値”と照合し、一致すれば本人だと判断します。
以下では、OTPがどう生成されるかと、代表的な方式である時刻ベース、カウンタベース、チャレンジ&レスポンスの違いを順に見ていきます。
OTPは一般に、次の要素を組み合わせて作られます。
ポイントは、OTPの安全性は「数字が複雑だから」ではなく、秘密情報を第三者が知らないことに依存している点です。したがって、シークレットの配布(プロビジョニング)と保護が、運用の根幹になります。
時刻ベース方式は、端末とサーバーが「現在時刻」を材料にしてOTPを計算します。時刻は一定間隔(例:30秒)ごとに区切られ、区切りが進むたびにOTPが変わる設計が一般的です。
実運用では、端末とサーバーの時刻が完全一致していなくても認証できるよう、サーバー側は前後の時間窓(許容範囲)を持って照合します。とはいえ、端末時刻が大きくずれるとログインできなくなるため、時刻同期(NTP、端末自動時刻設定)を前提にした設計が重要です。
カウンタベース方式は、OTP生成のたびにカウンタを進め、その値を材料にOTPを計算します。物理トークンでよく見られる方式ですが、ソフトウェアでも利用できます。
この方式の課題は、端末側とサーバー側のカウンタがずれると認証できなくなる点です。そのため、サーバーが一定範囲のカウンタ値を試す、再同期手順を用意するなど、運用設計が必要になります。
チャレンジ&レスポンス方式では、サーバーがチャレンジ(例:ランダム数値)を提示し、端末はそれを材料にレスポンスを計算して返します。チャレンジが毎回変わるため、固定値の使い回しが起こりにくく、取引署名のような設計にも発展させやすいのが特徴です。
一方で、利用者に「チャレンジを入力してレスポンスを返す」といった操作を求めると負担が増えるため、導入目的(高保証が必要か、利便性を優先するか)に合わせた選択が必要です。
ソフトウェアトークンは便利ですが、安全性は“アプリそのもの”だけで決まりません。特に次の点が重要です。
ソフトウェアトークンは認証強化に役立ちますが、導入しただけで十分な強度が得られるわけではありません。どの攻撃に効きやすく、どこに限界が残るのかを踏まえて運用することが重要です。
ソフトウェアトークンの主な役割は、ログイン時に追加の証明材料を要求し、パスワード単体の認証を突破されにくくすることです。特に、フィッシングやパスワードリスト攻撃が一般化している状況では、OTPがあるだけで突破難易度は上がります。
ただし、フィッシングサイトにOTPまで入力させる“リアルタイム中継”の攻撃もあり得ます。そのため、リスクが高い環境では、FIDO2などのフィッシング耐性の高い方式や、アクセス元条件・リスクベース認証などと組み合わせる設計が現実的です。
ソフトウェアトークンの効果を最大化するには、次のような対策をセットで検討します。
ソフトウェアトークンは、セキュリティ対策に加えて、運用効率や監査対応にも影響します。導入を検討するときは、何を守りたいのか、どの業務で追加認証を求めるのか、問い合わせや再発行を誰が受けるのかまで具体的に決める必要があります。
リモートワークやクラウド利用が増えると、社外からのアクセスが標準になります。たとえばVPNやクラウドの管理画面にMFAを必須化するだけでも、攻撃の成功確率を下げられます。
また、社内システムの重要操作(権限付与、データ出力、設定変更)に対して追加認証を要求すれば、内部不正やアカウント乗っ取りの影響を抑える設計にもつながります。
ソフトウェアトークンは、物理配布が不要で、再発行や利用停止などのライフサイクル管理も比較的しやすい傾向があります。拠点が分散している組織でも、配布・回収の手間を減らしやすい点はメリットです。
一方で、端末紛失や機種変更の問い合わせは必ず発生します。ヘルプデスクが迷わないように、再発行の本人確認や手順を標準化しておくと、結果として運用コストを抑えやすくなります。
多くの基準やガイドラインでは、「重要なアクセスに対して強い本人確認を求める」ことが求められます。ソフトウェアトークンによるMFAは、この要求に対する実装手段の一つになり得ます。
ただし、監査で問われやすいのは「導入したか」だけでなく、例外運用(どうしても使えない利用者への扱い)や、復旧手順(本人確認の妥当性)、ログの保全です。トークンの導入と合わせて、運用規程や記録の整備も必要になります。
認証強化の流れは今後も続く一方で、利用者の負担が大きい設計は定着しにくい傾向があります。ソフトウェアトークンも、プッシュ承認や生体認証、端末の安全性判定などと組み合わせながら、利便性と安全性のバランスを取る形で使われていくでしょう。
ただし、方式を新しくしただけで十分になるわけではありません。攻撃側も手口を変えるため、導入後もログ監視、例外運用の見直し、利用者教育を続ける必要があります。
ソフトウェアトークンの導入では、アプリを配るだけでは終わりません。登録(プロビジョニング)、端末変更、紛失時復旧、利用停止など、ライフサイクル全体を設計して初めて運用できる認証になります。
導入時は、少なくとも次の手順を押さえる必要があります。
運用では、次の管理項目が重要です。
継続運用では、次の基本を着実に守れるかが重要です。
導入後は「問い合わせ」「失敗理由」「例外の発生パターン」を見ながら改善します。たとえば、再登録手順の簡素化、バックアップコード運用の見直し、プッシュ承認への移行検討などが対象になります。
重要なのは、利便性の改善が“セキュリティ低下”にならないことです。手順を短くする場合でも、本人確認の品質やログの確保といった守るべき点は残し、現場で回る形に整えていきます。
ソフトウェアトークンは、スマートフォンやPC上で動作し、OTPの生成や認証要求への応答によって本人確認を強化する仕組みです。パスワードだけに依存した認証よりも不正ログインを防ぎやすく、リモートワークやクラウド利用が進む環境では、有力な選択肢になります。
ただし、方式を決めるだけでは足りません。どこに必須化するか、端末をどう管理するか、紛失や機種変更にどう対応するか、例外運用をどう監査するかまで設計して初めて、対策として機能します。最後は、自社の利用環境で無理なく続けられ、登録や再発行の手順に無理がないかを確認することが重要です。
スマートフォンやPC上で動作し、OTPの生成や認証要求への応答によって本人確認を強化する仕組みです。
OTPを生成するタイプで見ると、ハードウェアは専用の物理デバイスでOTPを生成し、ソフトウェアはスマホやPCのアプリでOTPを生成します。
TOTPは時刻を基にOTPを生成し、HOTPはカウンタ(回数)を基にOTPを生成します。
OTPの生成自体はオフラインでも可能ですが、認証先へ接続できないとログイン手続きは進められません。
秘密情報(シークレット)の保護、登録手順の確実性、端末の安全性、紛失時の復旧手順などの運用設計に大きく依存します。
起こり得ます。攻撃者がOTPをリアルタイムに中継する手口もあるため、追加対策と組み合わせて運用することが重要です。
再発行や再登録が必要になります。バックアップコードや本人確認を含む復旧手順を事前に用意しておくことが重要です。
対象システムと必須化範囲、採用方式(TOTPなど)、登録手順、例外運用と復旧手順の設計が優先事項です。
例外運用の放置、本人確認が弱い再発行、端末ポリシー未整備、ログを活用できない運用設計が典型的な落とし穴です。
利便性は高い一方、承認ボタンを押すだけの設計では弱くなります。番号一致やコード転記などで認証要求と利用者の操作を結び付ける設計が重要です。