インターネットにおいてより充実したサービスを得るために避けては通れない「ID」と「パスワード」の問題。サービスを利用している個人が誰であるのかを特定するために重要な情報ですが、セキュリティにおける流出の起点でもあります。

「セキュリティを高めるためには定期的なパスワードの変更が重要だ」と言われていたのは一昔前の話。今は定期的なパスワードの変更よりも、しっかりとしたパスワードの管理体制を取ることの方が重要となっています。企業で取るべき重要な指針として紹介されているのは、多要素認証や多段階認証、IDaaSなどの管理体制を構築と、インシデントが発生した際の速やかな情報の変更です。

そのような中、パスワードに替わる新しい認証方法として最近取り組まれているオンライン認証方法の一つに「FIDO」があります。利便性と堅牢性のバランスが取れた認証方法と言われていますが、今回はFIDOとはいったいどんな認証方法なのか、またその活用方法について考えてみたいと思います。

FIDO(ファイド)とは

FIDOとはFast IDentity Onlineの略語です。直訳すれば「早いオンライン認証」となります。IDとパスワードによるログインに替わって認証技術の標準になるべく、業界団体のFIDO Allianceによって規格の策定と普及推進が行われています。

FIDO自体は特定のハードウェア・ソフトウェアを指すものではありません。その規格を採用したハードウェアを導入することによってFIDO Allianceが保有するサーバとの照合を経て認証を実現させます。

FIDOの導入に積極的だったGoogleでは早々に物理的なキーを用いるタイプのFIDOを導入しています。それによると社員8.5万人のフィッシング被害が完全になくなったということ。その堅牢性がうかがえます。

初期型のFIDOキーの形状は、USBメモリのようにコンピュータのUSBポートに差し込むことで認証が可能となるものが多く存在しています。まさに「コンピュータに差し込む『鍵そのもの』」のと考えていただいて良いでしょう。

公開鍵暗号方式との違い

FIDOの基本となっているのは既存の公開鍵暗号方式による認証です。ただ、その要素となる秘密鍵・公開鍵・トークンの保存と使用方法が、端末・サーバ・変換ルーチンなどと結びつき、ネットワーク上を流れるデータを傍受しただけでは同じ認証を行うことができないことが絶対的な条件となっています。

概要だけをかいつまんで説明しますと、各アイテムが物理的に「離れた」場所にある、ということがポイントです。ユーザが保有する端末(ハードウェア)と秘密鍵、FIDO Allianceのサーバに登録された公開鍵、そして、実際の認証時に生成される秘密鍵によって署名されたトークンの三つのセットでWEBサービス等にログインすることが可能となります。さらに、ユーザが保有する端末自身の機能によってユーザを特定する情報が設定されるため、この上に指紋認証や顔認証などの生体認証を追加することも可能です。

3セットの仕様、FIDO UAF 、FIDO U2F、FIDO2

FIDOの仕様は大きく二つの世代に分かれています。(この「世代」というのは策定時系列ではなく、どれだけの情報を組み合わせるか、という実現度と技術の複合性を示した世代となります。)

FIDO1とFIDO2がそれにあたり、FIDO1を細分化すると下記の通りです。
FIDO UAF : Universal Authentication Framework
FIDO U2F : Universal 2nd Factor

UAFはFIDO Allianceが指定するハードウェアを用いて認証する「汎用的認証フレームワーク」で、パスワードのかわりに指紋認証などの別要素による認証を実現させるものを示しています。それに対してU2Fは「汎用的2段階認証」という、パスワード認証後にハードウェアキーによる認証を行う仕組みを指します。先述のGoogleが導入した形態はこのU2Fであり、USBポートに接続するか、Bluetooth経由で情報を送るための小さな「セキュリティトークン」を使い、2段階認証を実現させています。

FIDO2はWEBの標準化団体であるW3Cによって策定されたウェブ認証系の標準化APIであるW3C WebAuthn と、セキュリティハードウェア間の通信規格であるCTAPの組み合わせです。簡単に言ってしまえば、FIDO1で規定されていたU2FとUAFを組み合わせた規格と考えて良いでしょう。

FIDO2では標準的なスマートフォンをセキュリティのハードウェアキーとして使用し、サービスに接続するブラウザがそれとの通信を備えているべきとされています。ですので、仕様上は一般的なスマートフォンさえあれば、FIDO2に対応可能です。

FIDO導入のメリットとデメリット

FIDO導入の最大のメリットは言わずもがな、認証系の大幅な安全性の上昇です。パスワードにわかりやすい文字列を使ってしまったり、パスワードを流用したりしていると、一つのサービスから流出したパスワードによって別のサービスを乗っ取られてしまうといったインシデントが発生しやすくなります。

しかし、FIDO UAFでは生体認証などによってユーザが特定できるため、第三者に使用される可能性は大幅に減ります。U2Fではハードウェアキーさえ安全に所持していれば、同様です。セキュリティが重要となる場所ではその導入をためらうことはありません。

一方で、FIDOを導入すると、ユーザの「デバイス忘れ・紛失」という事態が大きく利便性を損なうこととなります。以前までのパスワードであれば、「忘れた」という状況においてはパスワードの再発行を行えば問題ありませんでしたが、認証に必要となるハードウェアを忘れればログインすることがほぼ不可能となります。(もちろんFIDOに対応したサービスでは、そのような際に備えて何らかのユーザ特定方法を備えているのが普通ですが、やはり時間がかかることは否めません)

また、FIDOに対応したウェブサービスでなければ認証系を使用することすらできません。大手サービスプロバイダーであればすでにFIDOを利用した認証を行うことができますが、十分な数であるとはまだ言い難い状態にあります。自社で利用するサービスがどこまで対応しているかを検証するのが重要になるでしょう。

FIDO2対応のデバイス

ここまでFIDOの仕組みについて説明してきましたが、それでは何を使えばFIDOを導入できるのでしょうか。

実は、先述の通り、皆さんが持っているであろう標準的なAndroid端末さえあれば導入することが可能です。また、FIDO U2Fに対応したハードウェアキーが様々な業者から発売されており、それらを使用することでFIDOを導入することができます。iPhoneをはじめとするiOS機器では今後FIDOに対応していくと発表されており、FIDOへの対応はより容易になっていくことは間違いないでしょう。

なお、筆者は企業で使用する場合はハードウェアキーが望ましいと考えます。ユーザが使用するスマートフォンは短いサイクルで交換されることが多く、いつまでも同じ機器を使用するということは検討しがたいのが現状です。そのため、専用のハードウェアキー型のセキュリティトークンを用意してFIDO U2FないしFIDO2に対応した方が良いでしょう。

まとめ ~脱パスワードのための一歩、セキュリティ担当者こそ触れるべき~

FIDOはこれまで使用されていた人の記憶に頼ったパスワード認証から脱するための一歩です。すでにスマートフォンなどのロック解除では生体認証など、パスワードに頼らない解除方法が一般的ですから、ウェブサービスの認証もそうなっていくべきなのは間違いありません。

企業など、重要な情報を取り扱う場所においてFIDOなどを導入することによってもたらされるのは、安全性だけではないと筆者は考えます。ユーザがFIDOを触れることにより、「自分達が触っている情報がいかに重大か、どんなに大切に扱うべきなのか」といったセキュリティに対する考え方が成長する大きな足がかりになるはずです。

もちろん、FIDOを導入したからと言って足下のセキュリティをおろそかにはしてはいけません。最大の安全性を確保するために、日頃からセキュリティに対する知識や考え方を身につけておくべきでしょう。