証券口座の乗っ取りが相次ぎ、本人認証の仕組みが大きな注目を集めています。その中で「FIDO」や「パスキー」という言葉を耳にする機会も増えました。しかし「生体認証のことだろう」というイメージは必ずしも正しくありません。実際には、端末と利用者を組み合わせて確認することで、パスワードに依存しない強力な仕組みを提供するのがFIDOとパスキーです。本記事では、その仕組みと強み、そして導入を検討する際に知っておくべき課題について、わかりやすく解説します。
FIDO認証は、「自分の端末そのものが合鍵を持っている」ような仕組みです。まず、サービスを使うときに、その端末にだけ保存されている特別な鍵を使って「正しい端末ですよ」とサーバに証明します。そして同時に、指紋や顔認証、あるいはPINコードなどを通じて「その端末を操作しているのが確かに本人です」と確認します。
つまり、FIDO認証は「正しい端末であること」と「その端末を使っているのが本人であること」を両方チェックする仕組みなのです。パスワードを盗まれても、端末と本人がそろわなければログインできないため、不正アクセスを強力に防ぐことができます。
この仕組みにより、秘密鍵はサーバに渡らないため、サーバが侵害されても漏洩するのは公開鍵のみのため安全です。留意点としては、ユーザが新たな端末を使おうとした場合、登録から実施する必要があることです。
FIDO(正確には最新の仕様であるFIDO2)は、W3Cが策定したWebAuthnと、FIDOアライアンスが定めたCTAPの2つの仕様を基盤としています。これにより、従来のセキュリティキーに加え、スマートフォンやPC内蔵の生体認証機能を用いて安全なログインが可能になりました。つまりFIDOとは「技術仕様」の総称であり、業界標準として幅広く利用できる仕組みを提供するものです。
一方、パスキー(英語では「Passkeys」と複数形になっています)はApple、Google、Microsoftといった主要プラットフォーマーが推進するFIDOの一つの実装形態です。パスキーはFIDO2を基盤としつつ、クラウドアカウントを通じた秘密鍵のデバイス間同期やバックアップ機能を備えている点が特徴です。これにより、新たな端末をクラウドアカウントに参加させるだけで、「登録」を実施する必要なくFIDO認証が行えます。この点がFIDO2をそのまま実装するケースとの違いです。
FIDO/パスキーの強みは、強力なフィッシング耐性です。通常のフィッシングに加え以下の手口も防御することができます。
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認証は使えません。そのため、どうしても、より強度の低い認証を行うしか他に手がないのです。この課題は「Binding Assurance」と呼ばれており、「登録」におけるセキュリティを確保するには認証に加え以下のような対策を重ねることが望ましいと考えています。
FIDOを自社で独自に構築する場合は、この「登録」時のセキュリティを自社でコントロールできますが、Passkeysについてはプラットフォーマーに委ねることになります。この点がFIDOとPasskeysのどちらを導入するかのポイントになります。
FIDOとパスキーは、これからのオンライン生活を守る大切な仕組みです。パスワードを盗まれても端末と本人が揃わなければ使えないため、不正ログインを大きく減らせます。ただし、最初の登録手続きには注意が必要です。仕組みを理解し、安全に使いこなすことが私たち一人ひとりの安心につながります。