多要素認証(MFA)の基本は「複数の条件で本人を確かめる」こと
多要素認証(MFA)は、ログインや重要操作の前に「複数の認証要素」を求めることで、攻撃者が1つの手がかりを入手しても不正に進みにくくする考え方です。要素は一般に、知っている情報(例:パスワード)、持っているもの(例:認証アプリやトークン)、本人の特徴(例:生体)など、性質の異なるものを組み合わせます。
MFAでは、システムが要求する要素の種類と数(たとえば2種類以上)が、ユーザーにとっての追加手順になり、攻撃者にとっての突破条件を増やします。ただし、要素の選び方や設定、運用の仕方によって効果は変わり得ます。
仕組みをシンプルにたどる
多くのサービスでの流れは、おおむね次のように整理できます。
- ユーザーがログイン画面などでサインインを開始する
- サービスが「追加の認証が必要」と判断する
- ユーザーは、指定された要素を使って追加確認を行う(例:コード入力、承認操作、認証器による応答など)
- サービスは、提示された要素が正しいか、かつ有効なタイミング・状態であるかを確認する
- 条件を満たした場合に限り、サインインや操作を許可する
ここで重要なのは、要素ごとに「使い方(入力・承認・応答)」「有効期間」「検証方法」が異なる点です。たとえば一時的に成立するコードや承認は、期限や回数の制限がある場合があります。
どの要素を組み合わせるかで、突破の難しさが変わる
MFAの考え方は共通でも、要素の種類は複数あります。一般論として、同じ種類の要素を2つ並べても、弱点が共通になりやすく、効果が十分にならないことがあります。逆に、性質の異なる要素を組むと、攻撃者が両方を同時に満たす必要が出るため、総合的に不正の成立確率が下がりやすくなります。
また、実装では「第2要素だけが強い」わけではありません。
