FIDO認証の標準規格(UAF、U2F、FIDO2)を解説

Frederico Hakamine, January 22, 2019

FIDOは、認証技術の1つで、ラテン語で「信頼」を意味するfidoに由来する頭字語であり、エイブラハム・リンカーンが飼い犬の名前に使用したことで広く知られるようになりました。人間にとって良き友である愛犬にぴったりの名前であるのと同様に、信頼が鍵となるセキュリティの世界で使用するのにもふさわしい言葉です。

技術的な意味で使用されるFIDO(Fast IDentity Online)は、2012年に登場し、PayPal、Lenovo、Google、Visa、Microsoftなど、FIDOアライアンスと呼ばれる大手テクノロジー/金融企業の後ろ盾を得ています。公開鍵暗号に基づくFIDOの標準規格は、ほぼすべてのタイプの認証をサポートするように設計された一連のプロトコルです。たとえば、指紋、バイオメトリクスワンタイムパスワード(OTP)、Trusted Platform Module(TPM)、USBセキュリティトークン、ニアフィールド通信(NFC)、モバイルデバイス向けBluetoothなどが含まれ、開発者の作業を軽減するためのAPIサポートが提供されます。

登場以来、FIDOアライアンスはUniversal 2nd Factor(U2F)Universal Authentication Framework(UAF)FIDO2の3つの仕様を公開しました。3つ目のFIDO2は、Web認証(WebAuthn)Client to Authenticator Protocol 2(CTAP2)で構成されます。

これだけ多様な頭字語が使用されると、それぞれ異なる仕様を把握するのも厄介です。そこで、このガイドではFIDOアライアンスが推進するFIDO認証のUAF、U2Fなどの各仕様を定義し、それぞれの違いについて説明します。

FIDO 1.0:U2FとUAFの認証プロトコル

2014年、FIDOはバイオメトリクスによるパスワードレス認証の実装向けとして、Universal Authentication Framework(UAF)を発表しました。その後、GoogleとYubicoが開発したUniversal 2nd Factor(U2F)が追加されました。これは、従来のOTPベースの二要素認証(2FA)の代替として安全性を高めたものです。U2Fに含まれるクライアント対認証プロトコル(CTAP)は、USB、ニアフィールド通信(NFC)、Bluetoothを介してトークンを認証するために使用できる独自のクライアント側プロトコルです。

これによって、FIDO 1.0により実装される公開鍵暗号化は、安全でないネットワークを介して送信されるOTPの固有の脆弱性を克服しました。単純なPINではなく、サービスの登録時に秘密鍵/公開鍵のペアが作成されます。秘密鍵は、ユーザーのトークンまたはデバイスで保護され、送信されることがありません。これは、傍受して盗む対象が存在しないことを意味します。保持されるすべてのサービスプロバイダーは、ユーザーに関連付けられた公開キーです。

それにもかかわらず、FIDO 1.0は、PayPal(UAF)とGoogle(U2F)という2つの異なるプレイヤーが支援する業界アライアンスです。異なる目的を果たすために構築され、これらの企業の利益に関連するものとして作成された2つの認証プロトコルです。しかし、それまでアライアンスに参加していなかった主要プレイヤーのAppleが、独自の生体認証であるTouch IDとその後に登場したFace IDの実装に乗り出しました。このように、FIDO認証が断片化し、ユーザーエクスペリエンスがプラットフォームとデバイスに左右されるというリスクがありました。

一方でプラスの面もあります。UAFはモバイルデバイスに生体認証のサポートを組み込み、U2Fは世界で最も人気のあるWebブラウザであるChromeで、ネイティブでサポートされました。つまり、FIDO認証はユーザーによる有効化やダウンロードを必要とせず、組み込み機能であり、多くの人々がすでに利用していたのです。

FIDO2の目的とWeb認証

FIDO2は、GoogleとYubicoによるU2Fをさらに開発した認証プロトコルです。CTAPの拡張バージョンがあり、これはCTAP2と呼ばれるようになっています。U2Fはパスワードの第2要素として機能するように設計されていますが、FIDO2の目的は認証をパスワードレスにすることです。これは、Web認証(WebAuthn)と呼ばれる新しいWeb APIを介して行われます。このAPIにより、Webアプリケーションは公開鍵暗号化とオーセンティケーターを直接使用できます。このように、FIDO 1.0は依然としてユーザー名とパスワードを要求しますが、FIDO2は従来の認証情報を排除するために必要なアーキテクチャを作成しました。

CTAP2を使用するWebAuthnには、2つの重要な機能があります。まず、U2FやUAFとの下位互換性があり、補完的です。そのため、取り組みはWebAuthnやCTAP2へと移行していますが、これらのテクノロジーを引き続き使用することも可能です。第二に、WebAuthnはWorld Wide Web Consortium(W3C)により採用されています。つまり、一握りの企業だけが支持するものではなく、オープンなWeb標準となっています。

Chrome、Firefox、Edgeにも、WebAuthnのブラウザサポートが追加されるようになっています。現在はまだ初期段階ですが、今後の幅広いサポートが期待できます。W3Cの採用により、AppleのSafariなどが追随する可能性が高いと考えられます。

ユーザーの視点で考えると、FIDO 1.0がWebAuthnによって改善されたことで、認証が普遍的で使いやすいものになり、誰もがパスワードレスに移行グローバルなセキュリティの弱点となった認証から移行)できるようになります。しかし、課題は残っています。たとえば、認証の必要性についての意識不足や、UAFとU2Fが企業やパワーユーザーのみを対象としたものであるという認識などに対処する必要があります。

課題の克服には、WebAuthnをデフォルトのオプションとして提供するブランドやサービスプロバイダーの取り組みが有効でしょう。今後2年間の課題は、一般のWebユーザーがパスワードからWebAuthnに切り替えるように推進することです。そのためには信頼が欠かせません。

Oktaは、FIDOなどのオープンスタンダードのサポートに力を入れています。OktaのAdaptive MFAによりパスワードレス認証を実装できるとともに、Yubicoとの提携を通じて企業向けにU2Fのセキュリティキーを提供しています。安全なパスワードレスソリューションを作成し、FIDO認証標準をサポートするための詳細については、WebAuthn、パスワードレスへの道、その他の考慮事項をご覧ください。