FIDOを3分で理解する
FIDOとはFast ID Onlineの頭文字を取った略語で、Passwordに替わる認証手段として注目されています。この記事は、小難しいことは横に置いておいてFIDOの概要を3分で把握頂くことを目標とします。
Why? - Passwordはもう限界
Passwordは長きに渡りユーザの認証要素として利用されてきましたが、昨今のPasswordの盗難によるAccountの不正乗っ取りを回避すべくPasswordのポリシーはどんどん厳しくなってきています。SaaSサービスを利用しようとAccountをサインアップしようとしたら、厳しいPasswordポリシー(例/16文字以上、大文字小文字を含む、2文字以上の数字と特殊文字を含む)を求められて、"今すぐにサービスを使いたいからサインアップしようとしているのに、何でこんな煩雑なPasswordを設定しなけりゃならないんだ!"とムッとしたご経験をお持ちの方も多いのではと推測しています。
厳しいポリシーのPasswordを複数覚えておくことは不可能で、結果、多くの方が1つのPasswordを複数のサービスで使い回し、万が一そのPasswordが盗まれてしまったらサインアップしている全てのサービスでAccountを乗っ取られてやられたい放題になってしまいす。
What? - Passwordの替わりにキーペア
ユーザ認証におけるPasswordへの依存をなくしてセキュリティと利便性を両立することが、FIDOの目指す世界です。FIDOでは認証要素として公開鍵と秘密鍵のペアを利用します。以下、従来のPasswordによる認証の流れです。
1. ユーザがWebサイトのフォームにID/Passwordを入力
2. フォームに入力されたID/PasswordとWebサイトに予め登録済のID/Passwordを比較して合っていれば認証成功
以下はFIDOによる認証の流れです。
1. ユーザがWebサイトのフォームにIDのみを入力
2. WebサイトからChallengeと呼ばれる暗号をユーザに送信
3. ユーザが予め作成済の秘密鍵でChallengeに署名してWebサイトに返信
4. Webサイトが予め持っている公開鍵を利用して署名を検査、検査に成功したら認証成功
How? - 従来のPKIと同じ
FIDOの仕組みは20年以上ITサービスの世界で利用されているPublic Key Infrastructure(PKI)と全く同じです。ユーザ側で秘密鍵と公開鍵のペアを作成して、公開鍵のみをWebサイトに渡します。Webサイトは任意の暗号をユーザに送り、ユーザはその暗号を秘密鍵で署名してWebサイトに返信します。この署名に利用する秘密鍵をユーザの認証要素として利用しています。
最後までお付き合い頂き誠にありがとうございます。ITの世界で一般的に言えることかもしれませんが、単純明快なことを必要以上に複雑怪奇に語って、ITテクノロジを専門としない人々を混乱させる、またはITそのものをとっつきにくいものにしている節があるかもしれません。複雑怪奇なことを単純明快に語って多くの人々がITテクノロジを利用してよりよい世の中になれば良いですね。