🔐

多要素認証(MFA)について

2025/03/26に公開

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