多要素認証(MFA)は、知っているもの・持っているもの・本人の特徴のうち、2つ以上を組み合わせて本人を確かめる仕組みです。パスワードが漏れても、それだけではログインされにくくなります。ただし方式によって強さが大きく違い、復旧手段が弱いとそこから破られます。Webサービスに導入する側が押さえる点を、OWASPとNISTの資料をもとに整理します。
多要素認証とは
総務省は、認証の3要素を「知識情報」「所持情報」「生体情報」とし、このうち2つ以上を組み合わせる認証を多要素認証と説明しています。2つの要素を使うものが2要素認証です。
認証の3要素
| 要素 | 例 |
|---|---|
| 知識情報(知っているもの) | パスワード、PIN |
| 所持情報(持っているもの) | 認証アプリの入ったスマートフォン、セキュリティキー、スマートカード |
| 生体情報(本人の特徴) | 指紋、顔 |
方式ごとの違い
どの方式を選ぶかで、防げる攻撃が変わります。OWASPとNIST SP 800-63B-4の説明をまとめると、次のとおりです。
主な方式の比較
| 方式 | 良い点 | 注意点 |
|---|---|---|
| セキュリティキー(FIDO) | 秘密鍵が端末の外に出ず、フィッシングに強い | 購入費用がかかり、紛失に備える必要がある |
| パスキー | 秘密鍵の所持とPINや生体の確認を組み合わせられる | サーバー側で本人確認のフラグを確かめる必要がある |
| 認証アプリ(TOTP) | 低コストで導入でき、標準に沿うアプリが使える | コードを手で入力するため、フィッシングで中継されうる |
| SMS・音声通話 | 導入が簡単で、利用者も慣れている | SIMの乗っ取りや通信の傍受の影響を受ける。送信費用を狙った大量送信にも備える |
| メール | 導入が簡単 | NISTは認証の経路としての利用を禁じている |
| 秘密の質問 | なし | 認証の要素として認められていない |
SMSは避けるべきか
NIST SP 800-63B-4は、SMSや音声通話を使う認証を「制限付き」と位置づけ、使う場合はそれ以外の方法も利用者に用意するよう求めています。OWASPは、個人情報を扱うアプリケーションの保護には使わないよう勧めています。すでにSMSを使っているサービスでは、認証アプリやパスキーを選べるようにするところから始めるのが現実的です。
フィッシングへの強さ
NIST SP 800-63B-4は、認証の結果を手で入力する方式(ワンタイムコードなど)を、フィッシングへの耐性があるとはみなしていません。また、保証レベルAAL2では耐性のある選択肢を少なくとも1つ用意すること、AAL3では耐性のある認証器を使うことを求めています。これは米国連邦政府向けの基準ですが、民間のサービスでも方式を選ぶときの参考になります。パスキーの仕組みはパスキーの解説にまとめています。
どこで多要素認証を求めるか
OWASPは、最も重要なのはログイン時だとしたうえで、次の操作でも求めることを勧めています。
多要素認証を求める場面
| 場面 | 例 |
|---|---|
| ログイン | パスワードなどを確かめた後 |
| 認証情報の変更 | パスワードやメールアドレスの変更 |
| 守りを外す操作 | 多要素認証の無効化 |
| 権限の昇格 | 通常のセッションから管理者のセッションへ切り替える |
見落としやすいのは別の入口です。OWASPは、ログインに使える別のAPIやモバイルアプリの経路を、よく漏れる場所として挙げています。ログイン画面だけ守っても、別の経路が残っていれば意味がありません。
導入するときの手順
既存のサービスに入れるなら、次の順で進めます。
守る範囲と入口を洗い出す
ログイン画面に加えて、API、モバイルアプリ、管理画面、古い認証方式の経路を一覧にします。
方式を選び、複数を登録できるようにする
認証アプリやパスキーなどを用意します。複数の方式を登録してもらうと、すべてを同時に失う可能性を減らせます。
復旧手段を先に決める
端末を失った利用者が戻れる方法を決めます。OWASPは、1回限りのリカバリコードの発行や、厳格な本人確認を伴うサポート対応などを例に挙げています。
要素の変更と失敗を通知する
電話番号や認証アプリの変更では既存の要素で再度確認し、変更したことを利用者へ知らせます。第2要素の失敗も、パスワード漏えいの兆候として通知します。
多要素認証を破る手口と対策
多要素認証を入れても、攻撃がなくなるわけではありません。OWASPは次の手口と対策を挙げています。
主な手口と対策
| 手口 | 内容 | 対策 |
|---|---|---|
| MFA疲労 | プッシュ通知を繰り返し送り、利用者が誤って承認するのを待つ | 数字の照合を求める、通知の回数を制限する、短時間の大量通知を監視する |
| リアルタイムのフィッシング | 偽サイトが認証情報やセッションを中継する | 接続先に結びついた、フィッシングに強い方式を使う |
| SIMの乗っ取り | 電話番号を移され、SMSや音声のコードを受け取られる | 番号の変更を監視し、TOTPやフィッシングに強い方式を優先する |
| 弱い方式への切り替え | 古い認証経路や弱い代替手段を使わせる | 古い経路を止め、低い水準への切り替えを防ぐ |
利用者向けのフィッシング対策はフィッシング詐欺の見分け方にまとめています。
よくある質問
二段階認証と多要素認証は同じですか?
同じではありません。多要素認証は、種類の違う要素を組み合わせることを指します。段階が2つあっても、パスワードの後に秘密の質問を聞くだけなら、どちらも知識情報なので多要素認証にはなりません。
パスキーがあれば多要素認証は不要ですか?
OWASPは、パスキーは秘密鍵の所持とPINや生体の確認を組み合わせることで、フィッシングに強い多要素認証になり得ると説明しています。その場合はサーバー側で本人確認の結果を確かめる必要があります。タッチするだけの確認は第2要素になりません。
パスワードは弱くても大丈夫になりますか?
なりません。使い回しを避ける基本は変わりません。NIST SP 800-63B-4の文字数の基準を含め、パスワード管理の解説にまとめています。
出典: 総務省「国民のためのサイバーセキュリティサイト」パスワードの設定・管理、OWASP Multifactor Authentication Cheat Sheet、NIST SP 800-63B-4



