多要素認証(MFA:Multi-Factor Authentication)とは、クラウドサービス・Webサービスへのログイン時に、知識情報、所持情報、生体情報の3つの要素のうち、2つ以上の異なる「要素」によって行う認証を指します。
それぞれの要素に属する固有情報と、その情報を読み取るために必要なデバイスは右の表のとおりです。
ハッキングによる侵害の80%はパスワードが原因とも言われ、いよいよパスワードの危険性が明らかになってきました。 これまでクラウドサービスのセキュリティ対策としては二段階認証が広く用いられてきましたが、 最近では、パスワードと合わせてSMSや電子メールコードを使用する多要素認証の使用も一般的になっています。 これらの認証方法はパスワード単体での認証より安全な場合がありますが、それでもフィッシング攻撃の対策として十分ではありません。
FIDO2は、公開鍵の暗号化とともにMFAを使用することで認証をまったく新しいレベルまで引き上げ、パスワードを排除することで、ユーザーと企業を不正アクセスから保護するソリューションを提供します。
下記は、年月と共に進化してきた3つの異なる認証方法です。
二段階認証とは、2回に分けて行う認証をいいます。例えば、最初にIDとパスワードを入力し、その後、秘密の質問やSMS通知、アプリにより発行されたワンタイムパスワードなどを求める認証がこれに該当します。多要素認証は認証に必要な要素が複数なのに対し、二段階認証は単一要素でも認証ができます。
二段階認証はどの要素を使うかどうかに関わらず、2回に分けた認証を行う方式のため、単一要素でも認証が完結できます。つまり、知識情報であるパスワードを2度入力するだけでも二段階認証として成立するので、セキュリティ強度が高いとは言えません。
パスワードだけでは危ないと気づき始めた初期、2つ目の認証情報として「秘密の質問」を使って認証を行う二段階認証を採用している認証画面が流行しました。
しかし、この認証方式は2つの認証とも「知識情報」を確認しているため、単一要素を使った認証となります。万が一サイバー攻撃を受けた場合、個人に対する複数の知識情報が同時に流出する可能性は十分考えられるため、悪意のある第三者によっていとも簡単に不正ログインが成功してしまうので注意が必要です。
異なる認証要素を2つ以上確認する認証方式で、なおかつ1要素目と2要素目以降の認証要素はそれぞれ違うものでなければいけません。認証要素の中でも「生体情報」は、「知識情報」と「所持情報」に比べて窃取されにくいため、不正ログイン対策として効果を発揮します。
SMS通知やワンタイムパスワードを発行するアプリによる多要素認証の場合、確かに「知識情報」とは別に「所持情報」を確認してログインをしているため、さきほどの「知識情報」だけによる二段階認証と比較すると多少セキュリティは高くなります。 しかしながら、SMS通知は事前登録済みの電話番号が特定のスマートフォン(所持情報)に結び付けられていることを前提としているため、本当にこの状態を将来にわたって「持っている物」として取り扱うべきなのかは議論の余地がございます。
またワンタイムパスワードの場合、スマートフォンに表示されたときは「所持情報」ですが、ユーザーがその数字をログイン画面に入力する時点で「知識情報」に変換されており、この認証もまた不正ログインが可能なため注意が必要です。
ワンタイムパスワードによる多要素認証FIDO2認証は、パスワードに依存しない認証技術の開発と標準化を目的として発足した団体「FIDO Alliance」が規格の策定と普及推進を行っている技術です。 Windows HelloやFace IDなど現在市場に流通しているデバイスに一般的に搭載されている生体認証デバイスなどを利用してウェブブラウザーを通じたオンラインサービスへの安全なログインを実現します。
FIDO2認証は、認証サーバーから認証リクエスト(チャレンジ)に返信するため、予め登録された認証器により多要素認証を用いて本人検証を行います。生体認証やPINなどでの本人検証は認証器で完結するため、それらの情報はネットワーク上に一切流しません。
認証器による本人検証に成功すると認証サーバーからのチャレンジに対して認証器固有の秘密鍵で署名を行い、認証サーバーに返信し、認証サーバーは予め登録されていた公開鍵で署名の検証を行うことで認証を行います。署名されたチャレンジは再利用ができず、さらに認証情報の改ざんも難しいため、フィッシングを含む中間者攻撃に対して強い耐性があります。