叡智の三猿

~森羅万象を情報セキュリティで捉える~

FIDOという認証

スマートフォンへのログインで生体認証(指紋認証や顔認証など)を使用するのは一般的になりました。ボタンにワンタッチでログインできるのですからこれは便利です。生体認証は、利用者にとって簡単な操作かつ迅速です。生体認証を体感すると、面倒なパスワード入力に戻りたくありません。また、認証の目的である本人の真正性を確認する点でも生体認証は最強です。パスワードや、認証情報を含んだICカードに比べ、生体情報を攻撃者が盗むのは難しいと思います。

しかし、システムへの認証を生体だけに依存するのはリスクがあります。たとえば指紋認証であれば、認証登録した指を怪我したり、ちょっとした発汗で認証エラーになる可能性があります。正当な本人がログインしているにも関わらず、システムが悪意と検知するフォールスポジティブ(誤検知)になります。そのため、生体認証を行うシステムは、フォールスポジティブの対策をする必要があります。スマートフォンへのログインであれば指紋認証に失敗したら、従来型のパスワードの入力を要求する設計にするなどです。

スマホへのログイン

スマートフォンへのログインは生体認証で行うのが一般的ですが、アプリケーションへのログインはIDとパスワードに依存することがほとんどです。なりすましを防止しつつ、利便性を高めるには、機器の操作のはじめから終わりまで、本人確認に必要となるすべての認証操作を生体認証で行うことが理想だと思います。

認証の現実と理想

パスワードを使わずに認証サービスをする仕組みをFIDO(ファイド)といいます。FIDOを活用することでパスワードを使わずに多要素認証を実現できます。

FIDOの登録と実行は以下の流れです。

FIDOの使用にあたっては鍵ペア(秘密鍵と公開鍵)を認証機で生成する必要があります。ここで認証機とはわたしたちが使うパソコンやスマートフォンを指します。鍵ペアは使用するクラウドサービスごとに分ける必要があります。そのうえで公開鍵をサービスを行う認証サーバに送ります。

認証の実行にあたっては、認証機からのログイン要求をサーバが受け付けたら、チャレンジコードというランダムな値を生成し、認証機に送付します。認証機はチャレンジコードを受け取ったら、生体認証で本人を検証します。認証機は生体認証による検証が成功したら、秘密鍵でチャレンジコードを暗号化し、サーバに送ります。サーバは暗号化されたチャレンジコードを復号し、生成したチャレンジコードと一致することを確認します。これにより、サービスは利用開始となります。

FIDOによる多要素認証

FIDOで行われる多要素認証は、生体と所持の二要素であり、記憶に基づくパスワードは使いません。

  1. クライアント側で行う、生体認証を用いた本人の認証
  2. サーバ側で行うクライアントの認証

FIDO認証はパスワードを使わないので、利用者の利便性が高いという以外にもメリットがあります。

ひとつは鍵情報のやり取りで通信が発生するのは攻撃者に盗まれたとしてもセキュリティ上の脅威がない公開鍵のみであり、秘密鍵の送付がないことです。そのため、クラウドサービスを提供する会社が、サイバー攻撃をうけても、利用者の情報は守られます。

もうひとつは認証機となるパソコンやスマートフォンが攻撃者に奪われても、クライアントの認証は生体認証なので、攻撃者がサービスを乗っ取ることができないことです。

利用者にとって利便性が高く、安全な認証方式でもあるFIDO認証です。ただ、FIDO認証の登場によってパスワード認証が駆逐されるかというと、それは疑問です。

何故なら、利用者のなかには、自らの生体情報(指紋や顔など)をシステムに登録することを嫌がる人は少なからずいると思います。これは心理的な問題なので、生体情報の登録が技術的に安全であることとは、別次元の問題だと思います。また、前述したように生体認証はフォールスポジティブの課題があります。フォールスポジティブを減らすには、登録された生体情報と、検証する生体情報のかい離の許容範囲を広げる必要があります。逆にそれは他人を受け入れてしまうフォールスネガティブの問題につながるので簡単ではありません。

生体認証は用途が広がり、浸透すると思いますが、それによってパスワード認証が無くなるとは思えないです。