FIDO2認証では、公開鍵暗号を使用して、ユーザーのアカウントに関連付けられた「パスキー」と呼ばれる一意の暗号鍵ペアを生成します。この鍵ペアは、サービス・プロバイダーが保持する公開鍵とユーザーのデバイスに存在する秘密鍵で構成されます。
ユーザーがアカウントにログインすると、サービス・プロバイダーはチャレンジ(通常はランダムな文字列)をユーザーのデバイスに送信します。デバイスは、PINを入力するか生体認証を使用することによる認証をユーザーに求めます。
ユーザーが認証に成功すると、デバイスは秘密鍵を使用してチャレンジに署名し、サービス・プロバイダーに送り返します。サービスプロバイダーは公開鍵を使用して、適切な秘密鍵が使用されていることを検証し、ユーザーに自分のアカウントへのアクセスを付与します。
あるデバイスに保管されたパスキーは、別のデバイス上のサービスにログインするために使用できます。たとえば、ユーザーがモバイル・デバイスでEメール・アカウントのパスキーを設定した場合、ノートPCでもそのEメール・アカウントにログインできます。ユーザーは、登録済みのモバイル・デバイスで認証チャレンジを完了します。
FIDO2は、YubiKeyやGoogle Titanなどのセキュリティキーを認証方法として使用することにも対応しています。
「ハードウェア・トークン」とも呼ばれるセキュリティー・キーは、認証情報をサービスに直接送信する小さな物理デバイスです。Bluetooth、近距離無線通信(NFC)プロトコル、またはUSBポートを介して接続できます。ユーザーは、生体認証データやPINの代わりにFIDO2セキュリティー・キーを使用して、自分自身を認証し、チャレンジに署名できます。
秘密鍵はユーザーのデバイスに保管され、決して離れることはないため、セキュリティー侵害の可能性は最小限に抑えられます。ハッカーは、データベースに侵入したり、通信を傍受したりして、それを盗むことはできません。サービスプロバイダーにある公開鍵には機密情報は含まれていないため、ハッカーにはほとんど役に立ちません。