FIDOの仕組み
FIDOのプロトコルでは、標準的な公開鍵暗号方式を用いて堅牢な認証を実現しています。オンラインサービスへの登録時に、ユーザーのクライアントデバイスは新しい鍵のペアを生成します。秘密鍵はクライアントデバイスに保持され、公開鍵がオンラインサービスに登録されます。クライアントデバイスがチャレンジに署名することにより、秘密鍵を保持していることをオンラインサービスに証明すると、認証が完了します。クライアントデバイスに保持された秘密鍵は、ユーザーがデバイス上でロック解除を行うことで始めて使用することができます。ロック解除には、指紋の読み取り、暗証番号の入力、マイクに対する発話、2段階認証デバイスの挿入、ボタンの押下など、ユーザーにとって使いやすく安全なアクションを採用することができます。
FIDOのプロトコルは、ユーザーのプライバシー保護の観点に立ち戻り設計が行われました。プロトコルでは、異なるサービス間においてユーザーの情報は独立するように設計されており、サービスをまたがりユーザーが追跡されることもありません。また、認証に生体情報が用いられた場合でも、生体情報はユーザーのデバイスにとどまります。
FIDO登録(Registration)
登録:
- オンラインサービスの受け入れポリシーに適合し、デバイス上で利用可能なFIDO認証器を選択する画面がユーザーにFIDO認証器を選択するように促されます。
- ユーザーは、指紋認証、2段階認証デバイスボタンの押下、安全な入力をサポートしたPINコードなどの方法で、FIDO認証器をロック解除します。
- ユーザーのデバイスは、そのデバイスと、オンラインサービス、ユーザーアカウントに対して一意の新しい公開鍵/秘密鍵のペアを生成します。
- 公開鍵がオンラインサービスに送信され、ユーザーアカウントと関連付けられます。秘密鍵やデバイス上の認証で用いられる情報(生体情報の測定値やテンプレートなど)はデバイスにとどまります。
FIDOログイン
ログイン:
- オンラインサービスは、サービスの受け入れポリシーに適合した、登録済みのしたデバイスでログインするように、ユーザーにチャレンジを送信します。
- ユーザーは、登録時と同じ方法を使って、FIDO認証器をロック解除します。
- デバイスは、サービスから提供されたユーザーアカウント名を使い正しい秘密鍵を選択し、サービスから提供されたチャレンジに署名します。
- クライアントデバイスは、署名付きのチャレンジをサービスに応答します。サービスは、保管している公開鍵を用いて応答の検証を行い、ユーザーをログインさせます。