多要素認証(MFA)について
1. 多要素認証とは
多要素認証(MFA: Multi-Factor Authentication)は、ユーザーがシステムにログインする際に 複数の異なる種類の認証要素 を用いることで、セキュリティを強化する認証方法です。一般的には、次の3つのカテゴリーのうち 2つ以上の要素 を組み合わせて認証を行います。
1-1. 知識要素(Something You Know)
ユーザーが 知っている情報 を用いた認証。
例:
- パスワード
- PINコード
- 秘密の質問の回答
1-2. 所持要素(Something You Have)
ユーザーが 持っているもの を用いた認証。
例:
- スマートフォンの認証アプリ(Google Authenticatorなど)
- ワンタイムパスワード(OTP)
- セキュリティキー(YubiKey など)
- ICカード
1-3. 生体要素(Something You Are)
ユーザーの 身体的特徴 を用いた認証。
例:
- 指紋認証
- 顔認証(Face ID)
- 虹彩認証
- 音声認証
2. 多要素認証の例
2-1. 要素認証(2FA: Two-Factor Authentication)
例: 「パスワード」 + 「スマホアプリのワンタイムパスワード(OTP)」
多要素認証の中でも特に一般的な方法
2-2. 3要素認証(3FA: Three-Factor Authentication)
例: 「パスワード」 + 「スマートカード」 + 「指紋認証」
企業や金融機関など、高度なセキュリティが求められる場面で利用される
3. メリット
3-1. セキュリティ強化
パスワードだけの認証よりも、不正アクセスが難しくなる。
例えば、パスワードが流出しても、ワンタイムパスワード(OTP)や指紋認証が必要なため、攻撃者が簡単にログインできない。
3-2. フィッシング対策
もしパスワードを盗まれても、追加の認証要素があるため、攻撃者は簡単にログインできない。
3-3. ゼロトラストセキュリティの実現
近年、多要素認証は「ゼロトラスト(Zero Trust)」モデルの一環として導入されることが多い。
4. デメリット
4-1. 利便性の低下
認証プロセスが増えるため、ログインに時間がかかる。
特に生体認証がうまく動作しない場合、手間が増える。
4-2. 追加デバイスの必要性
スマートフォンやセキュリティキーを持っていないと認証できない場合がある。
4-3. 復旧の難しさ
スマホ紛失やセキュリティキーの紛失時に、アカウントを復旧するのが難しいことがある
5. Google Authenticator(TOTP)とSNS認証(SMS 2FA)はどっちが安全?
Google Authenticator(TOTP) の方が SNS認証(SMSベースの2FA) より安全です。
以下に、それぞれの特徴と セキュリティ面の比較 をまとめます。
5-1. Google Authenticator(TOTP)
- 特徴
- TOTP(Time-Based One-Time Password)方式
- スマホのアプリ(Google Authenticator, Authy など)で 30秒ごとに新しいワンタイムパスワードを生成
- オフラインで動作可能(スマホに認証シークレットキーが保存される)
- フィッシングに強い(コードを自動送信されることがない)
- セキュリティ面
- SMSのように盗聴されるリスクがない
- スワップ攻撃(SIMスワップ)に強い
- フィッシング攻撃には注意が必要(偽ログインページにコードを入力すると危険)
- バックアップを取らないと、スマホ紛失時に復旧が難しい
5-2. SNS認証(SMS 2FA)
- 特徴
- ログイン時に 登録した電話番号宛にワンタイムパスワード(OTP)がSMSで送信
- 特別なアプリは不要(スマホのSMSが受信できればOK)
- スマホ紛失時でも電話番号があれば復旧しやすい
- セキュリティ面
- SIMスワップ攻撃のリスクがある(攻撃者がキャリアに成りすましてSIMカードを乗っ取る)
- SMSは暗号化されていないため、盗聴される可能性がある(特に公衆Wi-Fiや携帯キャリアの脆弱性を狙われる)
- フィッシング攻撃に弱い(偽のログインページでコードを盗まれる)
5-3. どっちが安全?
Google Authenticator(TOTP)が圧倒的に安全!
SMSは SIMスワップ攻撃や盗聴のリスクが高い。
Google Authenticatorは オフラインで動作し、盗聴される可能性がない。
- 例外的にSMSが便利な場合
- スマホに認証アプリをインストールできない環境(社内ポリシーなど)
- 一般ユーザー向けサービス(誰でも使えるようにする場合)
5-4. 結論
- セキュリティを重視するなら Google Authenticator(TOTP)を使うべき
- SMS認証は 利便性が高いが、攻撃リスクがあるため、できれば避ける
- MFAの強化策として、FIDO2(YubiKeyなどのセキュリティキー)を追加するとさらに安全
実装するなら、Google Authenticator(TOTP)方式を採用しつつ、バックアップコードやリカバリー手段も用意しておくのがベスト。
6. SNS認証(SMS 2FA)が普及している理由
近年では SNS認証(SMSベースの2FA) を採用しているサービスが多い。
ただし、それは セキュリティの高さよりも、利便性の観点から選ばれている ことが大きな理由です。
6-1. 採用のメリット
(1)導入が簡単で、ユーザーにとって使いやすい
- 特別なアプリをインストールする必要がない
- Google Authenticator などのTOTP方式は、ユーザーがアプリをダウンロードし、QRコードをスキャンする手間がある
- 一方、SMS認証なら すでに持っているスマホで受信するだけ
- 電話番号はほぼ全員が持っている
- メールアドレスよりも電話番号の方が、本人確認の精度が高いこともある
(2)企業側の実装が容易
- SMS認証はAPIを使えば簡単に実装できる
- 例: Twilio, AWS SNS, Firebase Authentication(Google)などのAPIを使えば、すぐにSMS認証を導入可能
- 一方、TOTP(Google Authenticator)は、QRコードの生成やキー管理が必要 で、少し実装が複雑
(3)ユーザーのアカウント復旧がしやすい
- スマホを失くしても、新しいスマホにSIMを入れればSMSを受信できる
- 逆にTOTPは、スマホを失くすと復旧が難しい(バックアップキーがないと詰む)
(4)ユーザーがTOTPに慣れていない
多くの一般ユーザーは Google Authenticatorのようなアプリを使ったことがない
企業側としては「使い方がわからないからログインできない」という問い合わせが増えるのを避けたい
6-2. 問題点
- SIMスワップ攻撃(攻撃者がキャリアに成りすましてSIMを乗っ取る)
- SMSの盗聴リスク(特に古い携帯ネットワークでは暗号化されていない)
- フィッシング攻撃に弱い(ユーザーが偽のログインページにコードを入力してしまう)
だから、多くの企業が「SMS認証 + 他の認証」へ移行しつつある
例えば:
- Google, Microsoft, Apple
「SMS認証を廃止し、TOTPやFIDO2に移行」を推奨 - 銀行や金融機関
「SMS認証 + 生体認証(指紋や顔認証)」の組み合わせ
6-3. 結論:セキュリティ vs 利便性
- SMS認証は「とりあえずのセキュリティ向上」としては有効
- TOTP(Google Authenticator)の方が安全だが、一般ユーザー向けには普及しにくい
- 理想的なのは「SMS認証を入口にしつつ、TOTPやFIDO2に誘導する」戦略
Discussion