
FIDO認証:開始から完了までログインの流れを分かりやすく紹介!
前回からの続きです。パスワード不要!ヒミツを渡さない!FIDO認証についてご紹介しています。
前回は、認証器(検証鍵)をサーバへ登録する過程についてお話ししました。聞きなれない用語がたくさん出てくるし、なんとなく分かった気分になれましたでしょうか?

今回は、認証器の登録後、実際にFIDO認証を行う流れをご紹介したいと思います。すでにFIDO認証の流れの簡略版をご紹介済みですが、もう少し掘り下げてお話しします。
ではいきましょう!
絵で分かる!FIDO認証
FIDO認証の流れをまずは図で確認しましょう。こんな感じです。

簡略版の絵と大差ないですね(汗)。でも、簡略版の解説より、もっと丁寧に解説を試みます~。
1.認証を依頼
ユーザがアプリを通じてRPサーバ(オンラインサービスを提供するサーバ)に認証を依頼します。ユーザの実際の行動は、アカウント名の入力などです。
2.チャレンジを送信
RPサーバは、チャレンジ(ランダムに生成されたデータ)を送ります。ユーザには、「認証してください」という趣旨のメッセージなどが画面に表示されます。
3.認証器による認証
ユーザは、生体要素(顔、指紋など)や知識要素(PINなど)を使って認証器に認証してもらいます。
ときに生体要素と知識要素ともに求められこともありますね。パスワードレスをうたいつつも、実際は知識要素も組み入れて多要素認証にして、強度を上げているわけです。
4.署名鍵による署名
認証が成功することにより、認証器に保存されていた「署名鍵」(秘密鍵)が使えるようになります。といっても、認証器の外側へ出ることはありません。認証は認証器内で安全に行われます。また、登録時に使ったアテステーションの署名鍵とも異なりますので、ご注意ください。
その「署名鍵」でチャレンジを署名します。
5.署名の送信
アプリは署名をRPサーバに送りかえします。「ほれよっ」と。
6.署名の検証
RPサーバは、とどいた署名を検証します。「登録された認証器で署名されていることは間違いな」と。結果として、ユーザには、ログイン後の「ようこそ」画面が表示されます。
はい、本日はここまでにしましょう。そして、FIDO認証のシリーズもこれで終わりになります!シリーズをまとめて振り返りたいときは、FIDOシリーズでご覧くださいませ。
このシリーズをまとめた本ににが一番勉強になりました!皆さんにもお役に立てたらば幸いです。
次回からは、OpenID ConnectとOAuthについて紹介していきたいと思います。
では!