ハードウェアセキュリティキー実践ガイド - YubiKey から FIDO2 まで
この記事は約 13 分で読めます
ハードウェアセキュリティキーは、現在利用可能な最強の認証手段です。フィッシングで 盗まれるパスワードとも、傍受される可能性のある TOTP コードとも異なり、FIDO2 準拠の セキュリティキーはリクエスト元サイトのオリジンを暗号的に検証するため、フィッシング攻撃を 数学的に不可能にします。Google は 2017 年に全 85,000 人以上の従業員にセキュリティキーを 配布した結果、フィッシング攻撃の成功件数がゼロになったと報告しており、この成果は 7 年以上維持されています。YubiKey 5 NFC の価格は約 50 ドルからですが、サイバーセキュリティ における最大の単一攻撃ベクトルを排除できます。本記事では、セキュリティトークンの 技術的基盤、製品比較、主要サービスでの設定手順、リカバリー計画、そして個人・組織 それぞれのコスト対効果分析を解説します。
FIDO2/WebAuthn の技術的仕組み
ハードウェアセキュリティキーの強さを理解するには、その基盤となる FIDO2 プロトコルの仕組みを知る必要があります。FIDO2 は W3C の WebAuthn 仕様と FIDO Alliance の CTAP (Client to Authenticator Protocol) から構成されます。認証の流れは公開鍵暗号方式に基づいています。まず、サービスへの初回登録時にセキュリティキー内部で公開鍵と秘密鍵のペアが生成されます。公開鍵はサービス側に送信・保存され、秘密鍵はキーのセキュアエレメント内に格納され、外部に取り出すことはできません。
ログイン時には、サービスがランダムなチャレンジ (ナンス) を送信します。セキュリティキーはこのチャレンジに秘密鍵で署名し、署名データをサービスに返します。サービスは保存している公開鍵で署名を検証し、正当なキーの所有者であることを確認します。この過程で秘密鍵そのものがネットワーク上を流れることは一切ありません。パスワードのように「共有された秘密」が存在しないため、サーバー側のデータベースが漏洩しても認証情報は安全です。
フィッシング耐性の技術的根拠
FIDO2 がフィッシングに対して無敵である理由は、オリジン検証にあります。セキュリティキーが署名を生成する際、ブラウザから渡されるオリジン情報 (ドメイン名) が署名データに含まれます。つまり、google.com で登録したキーペアは、g00gle.com (フィッシングサイト) からのチャレンジには応答しません。ブラウザが自動的にオリジンを検証するため、ユーザーが URL を目視で確認する必要がなく、人間の判断ミスに依存しない設計になっています。これが TOTP (時間ベースのワンタイムパスワード) との決定的な違いです。TOTP はユーザーがフィッシングサイトにコードを入力すれば、攻撃者はそのコードをリアルタイムで正規サイトに転送できます。
主要製品の比較
2025 年現在、市場で入手可能な主要なハードウェアセキュリティキーを比較します。選定基準は FIDO2/WebAuthn 対応、接続インターフェース、NFC 対応、価格、耐久性です。
YubiKey 5 シリーズは最も広く採用されている製品です。YubiKey 5 NFC (約 7,000 円) は USB-A と NFC に対応し、YubiKey 5C NFC (約 8,500 円) は USB-C と NFC に対応します。FIDO2、U2F、スマートカード (PIV)、OpenPGP、TOTP など多数のプロトコルをサポートし、IP68 防水・耐衝撃設計で物理的な耐久性も高いのが特徴です。電池不要で、USB ポートからの給電で動作します。企業での大規模導入実績が豊富で、Google、Facebook、Salesforce などが社内標準として採用しています。
Google Titan セキュリティキーは Google が自社設計したファームウェアを搭載し、USB-C/NFC モデルが約 4,000 円で入手できます。FIDO2 と U2F に対応しますが、YubiKey と異なり OpenPGP やスマートカード機能は非搭載です。Google アカウントとの統合が深く、Google Advanced Protection Program (高度な保護機能プログラム) との組み合わせで最高レベルのアカウント保護を実現します。Feitian ePass シリーズは中国メーカーの製品で、約 3,000 円からと価格が最も手頃です。FIDO2 対応で基本的な機能は備えていますが、対応プロトコルの幅と企業サポートの充実度では YubiKey に劣ります。
対応サービスと設定手順
主要サービスでのセキュリティキー設定手順を解説します。共通する前提として、セキュリティキーを登録する前に、まずアカウントのパスワードを強固なものに変更し、リカバリー用のバックアップ手段 (バックアップコード、予備のセキュリティキー) を準備しておくことが重要です。
Google アカウントでは、「セキュリティ」→「2 段階認証プロセス」→「セキュリティキー」から登録します。Google は最大 5 本のセキュリティキーを登録でき、メインキーとバックアップキーの 2 本体制を推奨しています。Advanced Protection Program に登録すると、セキュリティキーが唯一のログイン手段となり、SMS やアプリによる認証は無効化されます。これにより、SIM スワップ攻撃やフィッシングによる認証コードの窃取を完全に防止できます。
GitHub では「Settings」→「Password and authentication」→「Two-factor authentication」から セキュリティキーを多要素認証の 手段として登録できます。開発者にとってこれは特に重要で、GitHub アカウントの侵害は リポジトリへの悪意あるコード注入によるサプライチェーン攻撃につながる可能性があります。 Microsoft アカウントは「セキュリティ」→「高度なセキュリティオプション」→ 「サインインの新しい方法を追加」からセキュリティキーを登録できます。 Twitter/X は二段階認証を有効にしたアカウントでセキュリティキーをサポートしています。 認証方式の全体像については、二段階認証ガイドを 参照してください。
紛失・故障時のリカバリー計画
セキュリティキーの最大の懸念は「紛失したらどうなるか」です。この問題に対する回答は明確で、バックアップキーの事前登録が唯一の確実な対策です。すべての主要サービスで 2 本目のセキュリティキーを登録し、バックアップキーは自宅の金庫や銀行の貸金庫など、メインキーとは物理的に異なる場所に保管します。
バックアップキーに加えて、各サービスのリカバリーコード (バックアップコード) を印刷して安全な場所に保管することも重要です。Google は 10 個のバックアップコードを生成でき、GitHub は 16 個のリカバリーコードを提供します。これらのコードは 1 回限りの使い捨てで、セキュリティキーが使えない緊急時のアクセス手段となります。コードはデジタルではなく紙に印刷して保管することを推奨します。デジタル保存はマルウェアによる窃取リスクがあるためです。
パスキーを 補完的なリカバリー手段として検討することも有効です。一部のサービスでは、 ハードウェアセキュリティキーとスマートフォンに保存したパスキーの両方を登録でき、 追加のフォールバック手段となります。異なる認証技術の関係を理解するには、TOTP の用語集や生体認証のリスクの 記事が参考になります。
コスト対効果分析
個人利用の場合、メインキーとバックアップキーの 2 本体制で約 15,000 円の初期投資が必要です (YubiKey 5 NFC × 2 本)。この金額は、アカウント乗っ取りによる被害額と比較すると極めて合理的です。IPA の調査によると、不正アクセス被害の平均損害額は個人で約 30 万円、企業では数千万円に上ります。セキュリティキーは電池不要で可動部品もないため、通常 5 年以上使用でき、年間コストに換算すると約 3,000 円です。
企業導入の場合、従業員 100 人規模で YubiKey を 2 本ずつ配布すると約 150 万円の初期コストがかかります。しかし、フィッシング攻撃 1 件の対応コスト (インシデント調査、システム復旧、顧客通知、信用回復) は平均で数百万円から数千万円に達するため、1 件の攻撃を防ぐだけで投資を回収できます。さらに、パスワードリセット対応の IT ヘルプデスクコストの削減効果もあります。Gartner の調査では、パスワードリセット 1 件あたりの IT サポートコストは約 70 ドルとされており、年間のリセット件数を考慮すると、セキュリティキー導入による間接的なコスト削減も無視できません。
認証セキュリティの理解を深めたい方には、FIDO2 セキュリティキー関連製品 (Amazon)がエントリーレベルからエンタープライズグレードまで幅広い選択肢を提供しています。
導入ステップ
セキュリティキーの導入は、以下の手順で進めることを推奨します。
- メインキーとバックアップキーの 2 本を購入する (USB-C/NFC 対応モデルが最も汎用性が高い)
- 最も重要なアカウント (メール、クラウドストレージ) から順にセキュリティキーを登録する
- 各サービスでバックアップキーも登録する
- リカバリーコードを印刷し、安全な場所に保管する
- バックアップキーを物理的に別の場所に保管する
- メインキーをキーホルダーに取り付け、日常的に携帯する
セキュリティキーに未対応のサービスのパスワード管理には、パスワードマネージャーを 併用し、パスつく.com で各サービスに固有の強力なパスワードを生成しましょう。マルチデバイスパスワード同期の 設定も見直して、すべてのデバイスからシームレスにアクセスできるようにしてください。
よくある質問
- セキュリティキーを紛失した場合、アカウントにアクセスできなくなりますか?
- バックアップキーを事前に登録していれば、バックアップキーでログインできます。バックアップキーもない場合は、各サービスのリカバリーコード (バックアップコード) を使用してアクセスを回復できます。そのため、セキュリティキーの導入時には必ずバックアップキーの登録とリカバリーコードの印刷・保管を行ってください。
- セキュリティキーはスマートフォンでも使えますか?
- はい、NFC 対応のセキュリティキー (YubiKey 5 NFC など) であれば、iPhone や Android スマートフォンで利用できます。iPhone の場合は iOS 13.3 以降で NFC セキュリティキーに対応しています。Android は NFC または USB-C 接続で利用可能です。スマートフォンの背面にセキュリティキーをかざすだけで認証が完了します。
- パスキーとセキュリティキーの違いは何ですか?
- どちらも FIDO2/WebAuthn に基づく技術ですが、秘密鍵の保存場所が異なります。パスキーはスマートフォンや PC のセキュアエレメントに秘密鍵を保存し、クラウド同期が可能です。セキュリティキーは専用のハードウェアデバイス内に秘密鍵を保存し、外部に取り出せません。セキュリティキーの方がフィッシング耐性は高いですが、パスキーの方が利便性に優れます。最高レベルのセキュリティが必要な場合はセキュリティキー、日常的な利便性を重視する場合はパスキーが適しています。