二要素認証の定義と目的
二要素認証(2FA)は、ログインや重要な操作の前に「本人が持つもの/知っているもの/その場にいること(のような特徴)」など、種類の異なる要素を複数用いて本人確認する方式です。目的は、仮にパスワードが漏れても、それだけでは突破しにくくすることにあります。ここでの「要素」は、単に別の入力欄が増えることではなく、攻撃者が同じ条件を揃えにくい形で検証する点が重要です。
仕組み:典型的な流れ
一般的には、次のような手順になります。
- まずユーザー名やパスワードなどで一次確認を行う
- その後に「第2の要素」を追加で要求する(例:認証コード、承認通知、物理キーなど)
- 正しい第2要素が提示されてはじめてログインが完了する
第2要素としてよく使われるのは、(a) 認証アプリが生成するワンタイムコード、(b) SMSやメールで届くコード、(c) ハードウェアキー、(d) アプリの承認(プッシュ通知)などです。どれが採用されているかで、攻撃のされ方に差が出ます。
制限とよくある誤解
二要素認証は強力ですが「万能」ではありません。たとえば、第2要素がパスワードと同じ画面や同じ手順で奪われる攻撃(入力内容をそのまま盗む類の攻撃)に対して、必ずしも十分に防げない場合があります。また、アカウントの「回復」や「例外処理」が緩いと、結果的に突破される可能性があります。
よくある誤解として、「2FAにすれば絶対安全」「何を使っても同じ強さ」といった考えがあります。しかし要素の種類、要求タイミング(常時か、都度か)、失効や再設定の手順など、運用の差が大きく影響します。
実践的な確認方法:自分で見て判断する
導入先(サービスやアカウント設定画面)で、次の観点をチェックすると理解が進みます。
