ユーザー認証の新しい仕様「FIDO(Fast IDentity Online;ファイド)」のバージョン1.0最終版が、2014年12月に公開された。FIDOの特徴は、サーバーではなくクライアントで認証すること。パスワード認証とは異なり、認証情報をサーバーに保存したり送信したりしないので、攻撃者に盗まれたり漏洩されたりする危険性が小さい。

 仕様はオープンで、米マイクロソフトや米グーグルといった大手企業が普及を後押ししている。国内での知名度は低いが、パスワードに代わるユーザー認証方法の有力候補になる可能性がある。

クライアントで認証、漏洩の恐れなし

 FIDOは、Webサイトへのログインといった、オンラインでのユーザー認証手順(プロトコル)を定めた仕様である。特徴は、正規のユーザーだと判断するための認証情報を、サーバー側に置かないこと。つまり、サーバーではユーザー認証を実施しない代わりに、PCやスマートフォンといったユーザーのクライアント側で実施する。

 クライアント側には、ユーザーを認証するためのプログラムあるいはモジュールを用意しておく。プログラムやモジュールは、「FIDOオーセンティケーター」と呼ばれる。ユーザー認証に使う情報は、FIDOオーセンティケーター内でのみ使われ、サーバー(FIDOサーバー)に送信しない。

 FIDOでは、指紋や顔、音声などによる生体認証や、PIN(暗証番号)、USBデバイスなど、様々な認証方式に対応し、それぞれのデバイスや通信方法などについて規定している。どのような認証方式を許可するのかといったポリシーは、サービス提供者側で決定する。

 FIDOを使ったユーザー認証の概略は次の通り(図1)。基本的には公開鍵暗号を用いる。

図1●FIDOでのユーザー登録手順(FIDOアライアンスの発表資料から引用)
図1●FIDOでのユーザー登録手順(FIDOアライアンスの発表資料から引用)
[画像のクリックで拡大表示]

 ユーザーはまず、利用したいWebサイトに自分の端末を登録する。PCやスマートフォンなどにインストールしたFIDOオーセンティケーターを起動し、対象とするWebサイトが許可しているユーザー認証方式(例えば指紋)を選択(図1-1と1-2)。端末の読み取り装置に指紋を当てるなどして、正規のユーザーであることをFIDOオーセンティケーターに認証させる。

 すると、FIDOオーセンティケーターは新しい公開鍵と秘密鍵を生成し、公開鍵をWebサイトに送信し登録させる(図1-3と1-4)。秘密鍵やユーザー認証に必要な情報(指紋情報やPINなど)は、ユーザーの端末から外に出ない仕組みだ。