"BOKU"のITな日常

BOKUが勉強したり、考えたことを頭の整理を兼ねてまとめてます。

パスワードレス技術のFIDO2(ファイドツー)認証について勉強してみた

f:id:arakan_no_boku:20190201155405j:plain

目次

はじめに

リライトして目次を追加しました。

内容は、2020年年2月時点で記載したものです

パスワードレス技術のFIDO2(ファイドツー)認証について勉強してみた

パスワードに依存した認証ではなく、指紋認証や顔認証やPINコードなどを基に生成した秘密鍵と公開鍵を用いた公開鍵暗号の仕組みによって、ユーザー認証を行う業界標準の策定や利用促進を行っている「FIDO」という業界団体があります。

FIDO2というのは、その「FIDO」が推奨する認証規格の1つの名称です。

2018年にリリースされた最も新しいものです。

 

FIDO2は専用機器が不要

FIDO2は、指紋認証や顔認証、虹彩認証といった「パスワードを使わない認証情報」を使うのですが、専用機器がいらないというメリットがあります。

なぜ、専用機器が不要なのかというと、

  • 主要ブラウザの全てがFIDO2に対応済である
  • WindowsAndroidがFIDO2に対応済である

からです。

iPhoneMacは現時点では対応していないのですが、SafariはFIDO2対応しているため、オンラインでの認証は実施可能です。

まあ、ほどなく対応されるでしょうしね。

 

FIDO2を構成するCTAPとWebAuthn

FDIO2は、「CTAP(Client To Authenticator Protocol)」と「WebAuthn(Web Authentication=Web認証)」で構成されます。

 

CTAP

CTAPは、外部の認証器をBluetooth(BLE)やNFC、USBなどによりWebブラウザに接続して使用する際の仕様を決めてます。

具体的な製品だと、たとえば、こんなやつですかね。

ftsafe.co.jp

こういうのをパソコンにつないで、認証に必要な生体情報の取得に使うわけですね。

 

WebAuthn

WebAuthn(Web認証)は、Webサイトでの認証に生体認証やPINコードなどを利用できるようにする技術仕様です。

JavaScriptAPIみたいです。

WebAuthnは、2019年3月にW3Cの勧告となり、すでにChromeFirefoxMicrosoft EdgeSafariなどの主要なWebブラウザに実装されています。

Webブラウザで生体認証を行うわけなのですが、従来の技術だと、例えば生体認証用の秘密情報をサーバー側(事業者側になるんですかね)で共有しないといけなかったのですが、FDIO2ではそうではなく、生体認証情報は共有せずローカルに置いたままで、更公開鍵暗号技術を巧みに使って、セキュアな認証を実現している点が違います。

詳しいことは、Webauthnに関する以下の記事が、めちゃくちゃ参考になります。。

techblog.yahoo.co.jp

 

パスワードレスが主流になっていくのが正しいと思う

FIDO2は「パスワードと同じように、認証情報が流出したら危険」という部分も克服する工夫がされています。

FIDO2では「認証情報は登録したデバイスのみで利用可能」という仕組みが前提であるため、認証情報が流出しても、デバイスが手元にあれば不正アクセスは防げるという点が画期的です。

まあ、逆に言えば、認証情報を登録したデバイスが壊れたり、紛失してしまうと、本人でもアクセスできなくなってしまうというリスクはありますけど、まあ、これは仕方ないです。

個人的には、パスワードレスはもっと広まるべきだと思いますし、当たり前のように、そうなっていくだろうとも思います。

でも、全部がパスワードレスに置き換わるというのではなくて、それほど厳しいセキュリティが必要ないものについては、ID・パスワードの従来の認証が残り、厳密なセキュリティで守られるべきもの・・企業とか・・は、どんどんパスワードレスに置き換わっていくという併用になっていくんじゃないかなあ。

それが、勉強してみた現時点の僕の感想です。

ではでは。