二要素認証(通常は2FAと略される)は、パスワード入力後にさらなる認証ステップを追加するものです。たとえ誰かがそのパスワードを知ったり推測したりしたとしても、ログインするにはこの2つ目の要素が必要となります。

このガイドでは、その仕組みを平易な言葉で解説し、一般的な2FAの手法を比較するとともに、時間ベースの認証コードがこのプロセスにどのように組み込まれるかを説明します。

2FAとはどういう意味ですか?

2FAとは、2つの異なる種類の証拠を用いて本人であることを証明することを意味します。認証要素は一般的に以下の3つのカテゴリーに分類されます:

  • 「知っているもの」:パスワードやPIN。
  • 「持っているもの(Something you have)」:携帯電話、認証アプリ、またはハードウェアセキュリティキー。
  • 「本人固有の特性」:指紋や顔認証などの生体認証情報。

パスワードと別のパスワードを組み合わせた場合は、どちらも「知っているもの」という同じカテゴリーに属するため、真の二要素認証とは言えません。パスワードとデバイスで生成されたコードを組み合わせた場合は、2つの異なる要素タイプが使用されます。

2FAはどのように機能するのでしょうか?

具体的な手順はサービスによって異なりますが、一般的なサインインは次の4つのステップで行われます:

  1. ユーザー名とパスワードを入力します。
  2. サービス側がパスワードを確認し、第2の認証要素を要求します。
  3. 通知を承認するか、セキュリティキーを挿入するか、一時的なコードを入力します。
  4. サービス側がその2つ目の認証情報を検証し、アクセスを許可します。

この追加の手順により、盗まれたパスワードの価値が低下します。アカウントが絶対に侵害されなくなるわけではありませんが、パスワードのみを利用した攻撃の多くを防ぐことができます。

TOTPコードとは何ですか?

TOTP は、時間ベースのワンタイムパスワード(Time-based One-Time Password)の略です。設定時に、ウェブサイトと認証アプリは同じ秘密の設定キーを受け取ります。認証アプリはその秘密鍵と現在の時刻を組み合わせて、通常 6 桁の短いコードを算出します。このコードは約 30 秒ごとに更新されます。

ウェブサイト側でも同様の計算が行われます。入力したコードが、現在の時間枠における期待値と一致すれば、第2ステップが承認されます。テキストメッセージは不要で、通常、デバイスはオフライン状態でもコードを計算できます。

すでに承認済みのBase32セットアップキーをお持ちの場合は、当社のブラウザベースの2FAコードジェネレーターを使用してTOTPコードを生成できます。パスワードやリカバリーコードとは異なる値となるため、何かを入力する前に、2FA秘密鍵の確認方法をご確認ください。

TOTP flow from private key and synchronized time to a verified code
TOTP認証ツールは、秘密のセットアップキーと同期された時刻を組み合わせて、一時的なコードを生成します。

一般的な2FAの種類

認証アプリによるコード

認証アプリは、共有秘密鍵からTOTPコードを生成します。これらはモバイル通信が利用できない環境でも動作し、広くサポートされています。主なリスクは、バックアップなしで端末を紛失することや、セットアップキーが漏洩することです。

SMSまたは音声コード

サービス側から電話番号に一時的なコードが送信されます。SMSは利用しやすく、パスワードのみを使用するよりも安全ですが、SIMスワップ攻撃、番号の再割り当て、傍受、または配信の問題にさらされる可能性があります。

プッシュ通知

アプリがサインインの承認または拒否を求めます。プッシュ通知による認証は便利ですが、プロンプトを注意深く読み、予期しないリクエストは拒否する必要があります。プロンプトが繰り返し表示される場合は、誤って承認させてしまうことを狙った攻撃の可能性があります。

ハードウェアセキュリティキーとパスキー

セキュリティキーやパスキーは公開鍵暗号技術を利用しており、フィッシングに対するより強力な保護を提供できます。利用可能な場合は、復旧方法が安全に保管されているため、重要なアカウントの主要な認証手段として適しています。

バックアップコード

復旧コードやバックアップコードは、日常的に使用するTOTPコードではなく、緊急時の認証情報です。オフラインまたは安全なパスワードマネージャーに保管し、使用したものは適宜「使用済み」としてマークしてください。

2FAとMFAは同じものですか?

MFAとは多要素認証(Multi-Factor Authentication)の略で、2つ以上の要素を用いた認証を指します。2FAは、厳密に2つの要素が必要な特定のケースを指します。一般的な製品インターフェースでは、これらの用語はしばしば同じ意味で使用されます。

2FAを安全に有効にする方法

  1. アカウントの公式セキュリティ設定を開きます。
  2. 対応している場合は、認証アプリ、パスキー、またはセキュリティキーを選択します。
  3. 信頼できるデバイスでQRコードをスキャンするか、手動設定キーを入力します。
  4. 生成された最初のコードを入力して、設定を確認します。
  5. 復旧コードをダウンロードし、普段使用しているデバイスとは別の場所に保管してください。
  6. サービスで対応している場合は、2つ目の復旧方法を追加してください。

QR コードや手動設定キーは絶対に他人と共有しないでください。この秘密情報を入手した者は誰でも、将来同じ TOTP コードを生成できるようになります。当社のプライバシーポリシーでは、この公開ツールが認証入力をどのように処理するかについて説明しています。

なぜ2FAコードが拒否されるのですか?

TOTPで最も頻繁に発生する問題は、デバイスの時刻が正しくないことです。その他の原因としては、有効期限が切れたコードの使用、誤ったシークレットのコピー、誤った認証アプリエントリの選択、またはTOTPフィールドでバックアップコードを使用しようとした場合などが挙げられます。2FAコードが機能しない場合は、順序通りにチェックリストに従ってください。

よくある質問

2FAは強力なパスワードの代わりになりますか?

いいえ。サービスごとに固有のパスワードを使用し、追加のセキュリティ層として2FAを有効にしてください。パスワードマネージャーを利用すると、固有のパスワードの作成や保存に役立ちます。

2FAはハッキングされる可能性がありますか?

絶対的なセキュリティ対策は存在しません。攻撃者は、フィッシング、セッションの乗っ取り、マルウェア、復旧プロセスの悪用、または盗まれたシークレットを利用する場合があります。セキュリティキーやパスキーなどのフィッシング対策が施された方法を使用することで、これらのリスクのいくつかを軽減できます。

オンラインの2FAジェネレーターを使うべきですか?

長期的な日常利用においては、一般的に信頼できるオフライン認証アプリやハードウェアベースの手法が推奨されます。ブラウザツールは、承認されたテストや一時的なワークフローには有用ですが、信頼できるデバイスおよびブラウザ環境でのみ使用してください。

簡潔な答え

2FAは、2種類の異なる認証情報を要求することでアカウントを保護します。TOTP認証コードは一般的な第2の認証要素ですが、パスキーやハードウェアセキュリティキーは、フィッシングに対するより強力な耐性を提供します。どの方法を選択する場合でも、回復コードや設定用の秘密情報は、パスワードと同様に慎重に保護してください。