パスワードは、どれだけ複雑にしても「漏洩したら終わり」という弱点を抱えています。フィッシング、他サービスからの流出、マルウェアによる窃取——原因は様々ですが、結果はいつも同じで、パスワードだけの認証は突破されます。
この弱点を補うのが、多要素認証(MFA:Multi-Factor Authentication)です。
セキュリティ対策を横断的に確認したい方は、 Webアプリの脆弱性・セキュリティ対策まとめ もご覧ください。
多要素認証とは、ログイン時に「異なる種類の要素」を2つ以上組み合わせて本人確認を行う仕組みです。認証の要素は、一般的に次の3種類に分類されます。
「パスワード(知識要素)」と「スマホの認証アプリが生成するコード(所持要素)」を組み合わせるのが、実務で最も一般的なMFAの形です。似た言葉に「二段階認証(2FA)」がありますが、これはMFAのうち「2つの要素」を使う場合を指す、より狭い概念です。
実際に手を動かして確かめてみましょう。以下のデモは実際の通信を一切発生させません。「攻撃者が、どこかで漏洩したあなたのパスワードを入手した」という想定で試してください。
実際の通信は発生しません。「攻撃者が、どこかで漏洩したあなたのパスワードを入手した」という想定で試してください。
上のボタンを押すと、実行結果がここに表示されます。
「MFAなし」の状態でログインを試みると、パスワードが一致した時点でそのままログインが成立してしまったはずです。「MFAあり」に切り替えると、パスワードが一致しても追加のコード入力が求められ、攻撃者はそのコードを持っていないため突破できません。これがMFAの効果です。
パスワードは「知識要素」1つだけに依存しています。知識要素は、以下のような理由で第三者に渡ってしまうリスクが常につきまといます。
どれだけ複雑なパスワードを設定していても、「知っている」という1点が破られれば認証は突破されます。要素を増やし、複数の防壁を用意しておくことが、MFAの基本的な考え方です。
最後の「利便性とのバランス」は実務で見落とされがちなポイントです。すべての操作に一律でMFAを課すと利用者の離脱につながるため、重要度の高い操作や、いつもと異なる環境からのログイン時に絞って要求する設計も広く採用されています。
多要素認証は、「パスワードが漏洩する」という前提に立った上で、被害を防ぐための仕組みです。知識要素だけに頼らず、所持要素や生体要素を組み合わせることで、パスワード単体では防げない攻撃をブロックできます。
重要なアカウントから優先的に、MFAの導入を検討してみてください。