多要素認証(MFA)を導入するとき、多くの組織や個人がまず選ぶのは、スマートフォンの認証アプリやSMSといったソフトウェアベースの方法です。手軽に始められる一方で、フィッシングの手口が高度になった今、どの方法を選ぶかによって守れる範囲は大きく変わります。
この記事では、ハードウェアセキュリティキーとソフトウェア認証の違いを「仕組み」「攻撃への強さ」「運用のしやすさ」の3つの観点から比較し、物理的な鍵がより安全な理由を考えます。
ソフトウェア認証とハードウェアセキュリティキーの違い
ソフトウェア認証とは、スマートフォンやPCのアプリ、OSの上で認証を行う方法です。代表的なものに、認証アプリが30秒ごとに生成するワンタイムパスワード(TOTP)、SMSで届く確認コード、スマートフォンに届くプッシュ通知の承認があります。
ハードウェアセキュリティキーは、認証のための専用の物理デバイスです。YubiKeyのようにUSBポートに挿したり、スマートフォンにかざしたりして使います。FIDO2 / WebAuthnなどの標準規格に沿って、デバイス内部に保管された秘密鍵で認証を行います。
比較表:主な認証方法の特徴
| 認証方法 | フィッシング耐性 | 秘密情報の保管場所 | 主なリスク |
|---|---|---|---|
| SMSの確認コード | ✕ 低い | 通信事業者・スマートフォン | SIMスワップ、コードの盗み取り |
| 認証アプリ(TOTP) | ✕ 低い | スマートフォンとサーバーの両方 | 偽サイトでのコード入力、端末やバックアップからの流出 |
| プッシュ通知の承認 | △ 中程度 | スマートフォン | 承認要求を大量に送りつける「MFA疲労攻撃」 |
| ハードウェアセキュリティキー(FIDO2) | ◎ 高い | キー内部の専用チップ(外に出ない) | 紛失(バックアップ用のキーを登録しておけば対策可能) |
※スマートフォンでは表を横にスクロールしてご覧いただけます。
TOTPの弱点:認証アプリだけでは不十分な理由
1. 偽サイトに入力したコードが、そのまま悪用される
TOTPのコードは、どのサイトに入力されているかを区別しません。本物そっくりのフィッシングサイトにパスワードとコードを入力してしまうと、攻撃者はそれをすぐに本物のサイトへ転送してログインできます。こうした中間者型(AiTM)のフィッシングは攻撃用のツールも出回っており、高度な専門知識がなくても実行できるようになっています。
2. 共有シークレットが、端末とサーバーの両方にある
TOTPは、最初の設定時にQRコードで受け取る「共有シークレット」をもとにコードを計算します。この情報はスマートフォンとサービス側のサーバーの両方に保存されるため、どちらかが侵害されたり、アプリのバックアップが不正に読み取られたりすると、攻撃者も正しいコードを生成できてしまいます。
3. スマートフォン自体が攻撃の対象になる
認証アプリやSMSは、汎用のスマートフォンの上で動いています。マルウェアへの感染、OSの脆弱性、紛失や盗難、電話番号を乗っ取るSIMスワップなど、認証とは別の理由で守りが崩れる経路がいくつもあります。
ハードウェアセキュリティキーが優れている理由
正規のサイトでしか認証が成立しない
FIDO2 / WebAuthnに対応したセキュリティキーは、登録時にサイトのドメイン(オリジン)と鍵を結びつけます。偽サイトから認証を求められても、ドメインが一致しないため認証は成立しません。ユーザーが偽サイトに気づかなくても、仕組みとして突破されない点が最大の違いです。
秘密鍵がキーの外に出ない
認証に使う秘密鍵はキーの内部で生成され、外に取り出すことはできません。サービス側に保存されるのは公開鍵だけなので、仮にサーバーから情報が流出しても、攻撃者はそれを使ってログインできません。
専用のセキュリティチップが、物理的な攻撃にも備える
Yubicoは、YubiKeyに汎用のマイクロコントローラーではなく、セキュリティ用途のために設計された専用チップ(セキュアエレメント)を採用しています。Yubicoによれば、汎用チップはデバッグ用の端子からの侵入や、消費電力などの情報から鍵を推測するサイドチャネル攻撃、意図的に誤作動を起こさせるフォールト注入攻撃に弱い場合があります。専用チップはこうした攻撃への対策を備えており、鍵を抜き取ることを格段に難しくします。
タッチが必要なので、遠隔からは操作できない
認証のたびにキーへの物理的なタッチを求めるため、PCがマルウェアに感染していても、攻撃者が遠隔から勝手に認証を完了させることはできません。電池も通信も不要で、スマートフォンの充電切れや電波の状況にも左右されません。
公的なガイドラインもフィッシング耐性のある認証を推奨
米国国立標準技術研究所(NIST)の認証ガイドライン「SP 800-63B(英語)」は、最も高い保証レベルであるAAL3の要件として、ハードウェアベースの認証器と、なりすましサイトへの耐性を求めています。また、米国サイバーセキュリティ・インフラストラクチャセキュリティ庁(CISA)も、FIDOベースのフィッシング耐性のあるMFAへの移行を推奨しています。
ソフトウェア認証から切り替えるときのポイント
- 重要なアカウントから始める:メール、クラウドストレージ、管理者権限のあるアカウントなど、乗っ取られたときの影響が大きいものから登録します。
- キーは2本用意する:メイン用とバックアップ用の両方を登録しておけば、1本を紛失してもアクセスを失いません。
- 弱い方法を残さない:セキュリティキーを登録した後もSMSなどの方法が有効なままだと、攻撃者はそちらを狙います。対応しているサービスでは、弱い認証方法を無効にしましょう。
お使いのデバイスに合ったモデルは、YubiKey製品一覧から確認できます。
守りの強さは「鍵がどこにあるか」で決まる
認証アプリやSMSは、パスワードだけの状態と比べれば確実に安全性を高めます。しかし、コードを入力する方式である以上、フィッシングを完全に防ぐことはできません。秘密鍵を専用チップの中に閉じ込め、正規のサイトでしか応答しないハードウェアセキュリティキーなら、人の注意力に頼らずにアカウントを守れます。大切なアカウントから、物理的な鍵への切り替えを検討してみてください。
よくある質問
- 認証アプリ(TOTP)とハードウェアセキュリティキーの違いは何ですか?
認証アプリは共有シークレットからワンタイムコードを生成し、ユーザーがそのコードを入力する方式です。ハードウェアセキュリティキーはキー内部の秘密鍵で認証し、登録したサイトのドメインでしか応答しないため、偽サイトにだまされて認証してしまうことがありません。
- TOTPの弱点は何ですか?
主な弱点は3つです。偽サイトに入力したコードがそのまま悪用されること、共有シークレットが端末とサーバーの両方に保存されるため流出のリスクがあること、そしてスマートフォンのマルウェア感染や紛失の影響を受けることです。
- セキュリティキーを紛失したらどうなりますか?
バックアップ用のキーを事前に登録しておけば、そのキーでログインできます。そのため、メイン用とバックアップ用の2本を登録しておくことが推奨されています。




























