いまだに認証の中心が「パスワード」なのはイマイチだなあ・・と思ってます。
ということで、今回はパスワードレスの話題です。
CTAPとWebAuthn
パスワード列の技術といえば「FIDO2(ファイドツー)」とのことです。
早速、勉強してみました。
FDIO2は、「CTAP(Client To Authenticator Protocol)」と「WebAuthn(Web Authentication=Web認証)」で構成されます。
CTAP
CTAPは、外部の認証器をBluetooth(BLE)やNFC、USBなどによりWebブラウザに接続して使用する際の仕様を決めてます。
具体的な製品だと、たとえば、こんなやつですかね。
WebAuthn
WebAuthn(Web認証)は、Webサイトでの認証に生体認証やPINコードなどを利用できるようにする技術仕様です。
JavaScriptのAPIみたいです。
Webブラウザで生体認証を行うわけなのですが、従来の技術だと、例えば生体認証用の秘密情報をサーバー側(事業者側になるんですかね)で共有しないといけなかったのですが、FDIO2ではそうではなく、生体認証情報は共有せずローカルに置いたままで、更公開鍵暗号技術を巧みに使って、セキュアな認証を実現している点が違います。
UAFとUF2
FIDO2の発表前に、FIDOとして、「UAF(Universal Authentication Factor)」と「U2F(Universal 2nd Factor)」の仕様が発表されてます。
UAF
生体認証機能を備え持つスマートフォンなどの利用を想定した仕様みたいです。
つまり。
モバイルアプリに適用可能な形態ですね。
iPhoneのTouchIDによる指紋認証によるアプリのロック解除とかをイメージするかと思うのですが、それらは事前に入力したパスワード情報を保存しておいて認証後に補完入力するような実装になっているので、UAFとは根本的に異なるそうです。
U2F
従来のパスワード+ワンタイムパスコードに代表される「記憶認証」+「所持認証」の組み合わせによる2要素認証プロトコルだそうです。
USB接続タイプのセキュリティキーなどを用いて、パスワード認証に追加するみたいな感じですかね。
実際の利用シーンでの混在とか
FIDO2は、既存のFIDOの仕様の「UAF」と「U2F」を飲み込んだ上位互換のように見えてしまうのですけど、違うようです。
UAFの認証器は「FIDO2」の認証器と互換性がなくて、「U2F」の認証器と「FIDO2」の認証器には後方互換性があったりするようですし。
UAFとFIDO2の両方を使えるAndroid端末があったり、UAF,U2F,FIDO2すべての認証器に対応する「ユニバーサルサーバー」なんてものがあったりするくらいなので、共存・住み分けをする感じなんですかね。
まあ、正直なところ、自分もまだまだ勉強中で、しっかりとした理解ができているわけではないのですが・・・。
仕組についての説明
有難いことに、ヤフーさんが非常に詳しい技術解説ブログを書いていただいてます。
ひとつは、2015年末の記事なんですが、FIDOの既存仕様「UAF]]「U2F」技術に関して非常に参考になる内容です。
もうひとつが、2018年末の記事で、FIDO2・・特にWebauthnに関する詳しい説明が書かれてます。
まだ、自分もしっかりと理解できてはいないのですけどね。
とりあえず、勉強させてもらおうと思ってます。
パスワードレスは主流になる?
パスワードレスが広まるかどうか・・、よくわかりません。
でも、Yahooのこの記事の主張見てると楽しみだなとは思います。
それに、KDDIとかLINEとか、続々FDIO2認証を取得しているらしいですしね。
主要なブラウザのFDIO2対応も進んでいるみたいです。
Chrome、MicrosoftEdge、Firefoxは既に「FIDO2」のサポートを済ませていて、AppleのSafariもRelease 71でサポートということなので、4大ブラウザ対応済と言ってもいいでしょう。
外堀はだんだん埋まってきました。
ここからの展開が楽しみではあります。
でも。
今回調べて思ったけど、まだ、なんか難しい。
もう少しかかるかな・・。
そういう気はしました。
ではでは。