二段階認証 (2FA: Two-Factor Authentication) とは、ログイン時にパスワードだけでなく、もう 1 つの認証要素を追加で要求するセキュリティ手法です。「知っているもの (パスワード)」に加えて「持っているもの (スマホ)」や「自分自身 (指紋)」を組み合わせることで、パスワードが漏洩しても不正ログインを防げます。
Google の調査によると、SMS ベースの 2FA を有効にするだけで、自動化されたボット攻撃の 100%、フィッシング攻撃の 96% を防止できるとされています。パスワードだけの認証がいかに脆弱かを示す数字です。
2FA の主な方式は 4 つあります。SMS 認証 (電話番号に送られるコードを入力)、認証アプリ (Google Authenticator や Authy が生成する 6 桁のコード)、ハードウェアキー (YubiKey などの物理デバイス)、生体認証 (指紋・顔認証) です。セキュリティ強度は SMS < 認証アプリ < ハードウェアキーの順に高くなります。SMS は SIM スワップ攻撃で突破される可能性があるため、可能なら認証アプリ以上を推奨します。
短縮 URL サービスのアカウントにも 2FA の設定を強く推奨します。短縮 URL の管理画面にアクセスされると、既存のリンクのリダイレクト先を書き換えられる危険があります。正規のリンクがフィッシングサイトに差し替えられれば、そのリンクを信頼してクリックするすべてのユーザーが被害を受けます。
2FA の導入で注意すべきは、リカバリー手段の確保です。スマホを紛失したり認証アプリのデータが消えたりすると、自分自身もログインできなくなります。バックアップコード (リカバリーコード) を安全な場所に保管しておくことが不可欠です。関連書籍は Amazon でも探せます。