ブログ

パスワードレス認証で注目される「FIDO2」とは?

パスワードレス認証で注目される「FIDO2」とは?

FIDO(読み方:ファイド)2は、生体認証などの認証用デバイスと、サーバーやクライアントとのやり取りを標準化した技術の最新規格です。FIDOはFast Identity Onlineの略で、業界団体であるFIDOアライアンスが規格を策定しています。

FIDO2登場の背景

従来の認証は、サーバーがIDとパスワード情報を管理し、クライアントから送られてくるID・パスワード情報を基に、サービスを提供するサーバーがアクセスするユーザーを識別し、アクセスを許可するのが一般的でした。このような「伝統的な」認証方式には三つの問題があります(図1)。①成りすましサーバーにアクセスを誘導されたり、IDやパスワードを盗み取られたりする危険性がある、②複数サーバーでIDやパスワードを使いまわすユーザーは、1カ所のサーバーへの不正アクセスで被害が複数サーバーに拡大する可能性がある。③かといってユーザーがサーバーごとのパスワードを使い分けて覚えておくのは困難――です。そこで2012年、このような課題を解決する規格を策定するためにPayPalやLenovoなど6社がFIDOアライアンスを設立、2013年に最初のFIDO規格を発表しました。2020年時点での最新のバージョンはFIDO2です。
FIDO_図1_s.png

FIDO2の考え方

FIDOでは、サーバーから認証を切り離し、ユーザーの手元に置く「認証器」と名付けたデバイスでユーザーを認証します(図2)。認証器として想定しているのは、パソコンやスマートフォンなどのクライアントに組み込まれている生体認証装置、USBキーのような外付けの認証装置、パソコンでログインするときに認証でスマホを使うような場合の独立した認証装置――の3種類です。認証器を使うことで、①サーバーがパスワードを管理する必要がなくなり、②パスワードに頼らず複数のサーバーにアクセスできるようになり、③ユーザーが複数のパスワードを覚える必要もなくなります。

FIDOは認証器での認証そのものを規定しているわけではありません。ユーザーの手元でなされた認証とサーバーをどのように連携させるのかを規定しています。またFIDOでは、ID/パスワードによる認証とUSBキーによる認証の組み合わせといったような、2要素認証も規格化しています。2要素階認証でより厳密な認証もできるわけです。

FIDO2はクライアントにWebブラウザを想定しています。Webブラウザ上のアプリケーションがFIDO2を利用するためにWebAuthn(読み方:ウェブオースン)というJavaScript APIを規定しています。またクライアントと外部の認証器の間の通信もCTAP2というプロトコルで規定しています。

FIDO_図2_s.png

FIDO2の認証手順

FIDO 2は従来からあるクライアント、サーバーに加え、認証器とFIDOサーバーで構成します。ユーザーがクライアントを通じて、サーバーが管理する認証が必要なコンテンツやアプリケーションにアクセスしようとすると(図2①)、サーバーはまずFIDOサーバーに認証の開始を要求します(図2②)。FIDOサーバーは認証に必要な付加情報をサーバーに渡します(図2③)。サーバーはその情報をクライアントに転送し(図2④)、クライアントは付加情報の中の認証指示に従って認証器を起動して付加情報を渡します(図2⑤)。

ユーザーを認証した認証器は、FIDOサーバーからサーバー、クライアント経由で送られてきた付加情報を、自身が持つ秘密情報(秘密鍵)で暗号化してFIDOサーバーに送信します(図2⑥)。この暗号は情報技術上「署名」と呼ばれるもので、認証器が公開する情報(公開鍵)によって復元(検証)できますが、悪意のある第三者が偽造することはできません。FIDOサーバーが公開鍵で情報を復元して、自身が送った付加情報を取り出せれば、認証が成功したことをサーバーに伝えます(図2⑦)。

FIDO2の利用イメージ

FIDO2対応の生体認証機能を備えるパソコンやスマートフォンを使う場合、デバイスの画面で認証が必要なサイトにアクセスすると生体認証が始まることになります。指紋認証のようにユーザーが意識する必要がある場合は、画面に表示された指示に従って(指を置くなど)認証操作をすることになります。顔認証のように意識する必要がない場合には、認証動作なしに認証が必要なサイトにアクセスできるようになります。

このようにエンドユーザーはFIDO2を特別に意識したり、難しい操作を覚えたりする必要はありません。USBキーといったデバイスを接続して認証したり、パソコンのログイン時に自分の手持ちのスマートフォンで認証したりする場合でFIDO2を使う場合でも、特別に難しくはありません。

FIDO2の導入

エンドユーザーの利便性や、システムのセキュリティ向上という面ではメリットの多いFIDO2ですが、導入にはいくつか面倒な点があります。まず製品の対応。WindowsやAndroidはFIDO2に対応済みですが、2020年1月時点でiOSは未対応です(ただしSafariは対応済み)。たとえばiPhoneの生体認証機能をFIDO2に組み込むといった場合には特別な対応が必要になります。また、従来からのサーバーからFIDOサーバーへのユーザー・データの移行や、導入後、複数サーバーのユーザー管理をどうするかといった点については周到に計画、実装していかなければなりません。

いずれにしてもFIDO2の導入にあたっては、まずはノウハウと知識のあるインテグレータを見つけ出すことが肝心です。かもめエンジニアリングは、豊富な実績とノウハウに基づきFIDO2対応を含む企業のシングル・サインオン(SSO)導入をお手伝いしています。