見出し画像

FIDO認証:一目で分かる!FIDO認証の大まかな流れ

前回からの続きです。パスワード不要!ヒミツを渡さない!FIDO認証についてご紹介しています。

前回は、FIDOが「所有要素」と「生体要素」を組み合わせて認証する仕組みであることをお話ししました。つまり、FIDOは、それ自体で「多要素認証」(MFA)を行っているんですね。

今回から、FIDO2がどのように認証を行うのか、その過程を解説していきます~!

いってみよう!

超簡略版!FIDO2認証の流れ

FIDO2の仕組みは、想像どおりに、かなり難しいです。私もエラそうに記事を書いていますが、複数の文献を読みつつ四苦八苦しております(汗)。

その原因の一つは、独特な専門用語が多数登場することです。CTAP、WebAuthn、Relying Partyなどなど。けっこう、混乱します…。

しかし、しょっぱなからくじけるわけにはいきません。正確さをおもいっきり棚上げして、認証の大きな流れをつかむことにしましょう!本当は、「認証」の前に、「登録」(署名を検証するための鍵をサーバに登録)する過程が必要ですがそれも後にします。

例にとるのは、デバイス組み込み型の認証器(Platform Authenticator)を使い、サーバが「RP(Relying Party)サーバ」と「FIDOサーバ」を兼ねている場合とします。まあ、今は細かいことを気にならないでください。ようは、登場人物が少ない例です。

FIDO2の簡略版シーケンス図

1.アプリが認証を依頼

アプリの画面でIDを入力して、サーバに「ログインしたいんだけど!」と伝えます。この場合、パスワード入力はしません。

2.サーバが認証を要求

サーバは、「じゃあ、これに署名してね」と、「チャレンジ」なるものをアプリに送信します。「チャレンジ」は一種の乱数です。

3.生体認証を実施

アプリは、ユーザに生体認証を要求します(本当はPINコードを使って「知識認証」してもいいのですが)。そして、ユーザは指紋などをスキャンさせ、認証器が認証します。

4.署名鍵でチャレンジに署名

認証OKにより「署名鍵」が使えるようになります。その署名鍵によって、チャレンジに署名します。(署名鍵は、認証器の内部に安全に保存されています)。

5.検証を依頼

アプリが署名をサーバに送りかえします。「検証してね」と。

6.サーバが署名を検証

サーバは、事前に登録してあった「検証鍵」を使って、署名を検証します。「ふむ、間違いないね」と。そして、ログインさせます。


以上が、超簡単なFIDO認証の流れです。なにやら公開鍵暗号方式に似ている技術を使っているな~とか、気づくことがあったのでなはいでしょうか。

でもこれでは簡略すぎるので次回から、もう少し詳細を見ていきませんか?

では!



この記事が気に入ったらサポートをしてみませんか?