
証券口座の乗っ取りが相次ぎ、本人認証の仕組みが大きな注目を集めています。その中で「FIDO」や「パスキー」という言葉を耳にする機会も増えました。しかし「生体認証のことだろう」というイメージは必ずしも正しくありません。実際には、端末と利用者を組み合わせて確認することで、パスワードに依存しない強力な仕組みを提供するのがFIDOとパスキーです。本記事では、その仕組みと強み、そして導入を検討する際に知っておくべき課題について、わかりやすく解説します。
FIDO認証の仕組み
FIDO認証は、「自分の端末そのものが合鍵を持っている」ような仕組みです。まず、サービスを使うときに、その端末にだけ保存されている特別な鍵を使って「正しい端末ですよ」とサーバに証明します。そして同時に、指紋や顔認証、あるいはPINコードなどを通じて「その端末を操作しているのが確かに本人です」と確認します。
つまり、FIDO認証は「正しい端末であること」と「その端末を使っているのが本人であること」を両方チェックする仕組みなのです。パスワードを盗まれても、端末と本人がそろわなければログインできないため、不正アクセスを強力に防ぐことができます。
登録(レジストレーション):ユーザがFIDO認証で使う端末を登録
- サービスにログインし、「登録」を選択
- サーバが端末に「新しい鍵を作ってください」というリクエストを送信
- 端末は内部で公開鍵と秘密鍵のペアを生成し、サーバに公開鍵だけを送信(秘密鍵は端末の中に厳重に保管)
- サーバでは、ユーザのアカウントと公開鍵を紐づける
認証(サインイン):実際にログインする場面
- サービスにログインを要求
- サーバはランダムな文字列(チャレンジ)を端末に送信し、「これに署名してください」と要求
- 端末は指紋や顔認証、あるいはPINコードなどを通じて、本人が端末を操作していることを確認
- 端末は秘密鍵を使ってチャレンジに署名を行い、その結果をサーバに送信
- サーバはあらかじめ保存している公開鍵でその署名を検証し、正しければ本人確認が成立
この仕組みにより、秘密鍵はサーバに渡らないため、サーバが侵害されても漏洩するのは公開鍵のみのため安全です。留意点としては、ユーザが新たな端末を使おうとした場合、登録から実施する必要があることです。
FIDOとパスキーの違い
FIDO(正確には最新の仕様であるFIDO2)は、W3Cが策定したWebAuthnと、FIDOアライアンスが定めたCTAPの2つの仕様を基盤としています。これにより、従来のセキュリティキーに加え、スマートフォンやPC内蔵の生体認証機能を用いて安全なログインが可能になりました。つまりFIDOとは「技術仕様」の総称であり、業界標準として幅広く利用できる仕組みを提供するものです。
一方、パスキー(英語では「Passkeys」と複数形になっています)はApple、Google、Microsoftといった主要プラットフォーマーが推進するFIDOの一つの実装形態です。パスキーはFIDO2を基盤としつつ、クラウドアカウントを通じた秘密鍵のデバイス間同期やバックアップ機能を備えている点が特徴です。これにより、新たな端末をクラウドアカウントに参加させるだけで、「登録」を実施する必要なくFIDO認証が行えます。この点がFIDO2をそのまま実装するケースとの違いです。
FIDO/パスキーのフィッシング耐性
FIDO/パスキーの強みは、強力なフィッシング耐性です。通常のフィッシングに加え以下の手口も防御することができます。
- リアルタイムフィッシング フィッシングサイトで窃取した情報をリアルタイムで悪用することで、ワンタイムパスワードを使った認証をも突破する手口です。
- AiTM(Adversary-in-the-Middle)攻撃 ユーザと正規のサービスとの通信のあいだに攻撃者が割り込み、やり取りを盗んだり改ざんしたりする手口。ユーザは偽サイトに誘導し、偽サイトを経由し正規サイトにログインさせログイン情報や認証後のセッショントークンを窃取します。特に、セッショントークンを窃取されると、認証後のセッションに割り込むことが可能であり、多要素認証も突破されてしまいます。
FIDO/パスキーは端末が合鍵であるため、リアルタイムフィッシングでは突破できないことは理解いただけると思いますが、AiTM攻撃への耐性については、RPID(Relying Party Identifier)というFIDO2の機能を説明する必要があります。
RPIDとは「登録」の際、端末がサービスのドメイン(例:example.com)を確認し、そのドメイン専用の秘密鍵を生成します。そして「秘密鍵+そのドメイン情報(RPID)」をペアとして端末の中に保存します。そして認証の際、アクセスしているサービスのドメインと同じドメインの秘密鍵を持っているかを確認する仕組みです。 AiTM攻撃の場合、端末がアクセスしているのは偽サイトであるため、正規サイトの秘密鍵を使うことができず、認証が失敗します。なお、初期のFIDO(U2F)にはこの仕組みがありません。また、初期のFIDOと最新の仕様であるFIDO2には互換性がありません。
さらに注目すべきは、Cross-Device Authentication(クロスデバイス認証)における「近接性要件」です。クロスデバイス認証とはPCでWebサイトを開き、QRコード等で登録済みのスマートフォンに連携し認証するようなシナリオです。ここでもFIDO/パスキーはよりセキュアな工夫を行なっています。それは端末間の通信がBLE(Bluetooth Low Energy)で行われるため、両方の端末が近接している必要があるものです。この「近接性要件」によって、攻撃者が遠隔からクロスデバイス認証を悪用することは困難になります。「近接性要件」がなければ、QRコードをフィッシングサイトに表示しユーザの端末で認証させるという手口が可能です。
FIDO/パスキー導入における考慮点
ここまで見てきたように、FIDO/パスキーは非常に強固な認証なのですが、唯一の弱点があります。それが「登録」です。「登録」においても認証を行いますが、この時点ではFIDO認証は使えません。そのため、どうしても、より強度の低い認証を行うしか他に手がないのです。この課題は「Binding Assurance」と呼ばれており、「登録」におけるセキュリティを確保するには認証に加え以下のような対策を重ねることが望ましいと考えています。
- 不審な取引を検知するような仕組み
- 登録後の端末は一定期間、取引を制限する
- 既存のFIDO端末で認証する(ただし、端末紛失時は使えない)
FIDOを自社で独自に構築する場合は、この「登録」時のセキュリティを自社でコントロールできますが、Passkeysについてはプラットフォーマーに委ねることになります。この点がFIDOとPasskeysのどちらを導入するかのポイントになります。
最後に
FIDOとパスキーは、これからのオンライン生活を守る大切な仕組みです。パスワードを盗まれても端末と本人が揃わなければ使えないため、不正ログインを大きく減らせます。ただし、最初の登録手続きには注意が必要です。仕組みを理解し、安全に使いこなすことが私たち一人ひとりの安心につながります。

北尾 辰也
サイバーセキュリティコンサルタント。三菱UFJ銀行で12年間サイバーセキュリティに従事し、2022年4月にフリーランスとして独立。現在はサイバーセキュリティに関するコンサルティングやアドバイザー業務を行うとともに、国土交通省最高セキュリティアドバイザーや日本シーサート協議会専門委員、⾦融ISAC個⼈賛助会員として活動している。