二要素認証とは?仕組みや使い方、メリットなどを解説。安全性を高めるための重要なセキュリティ対策です。

June 18, 2024
玄関のドアに2つの鍵があると想像してください。1つはあなたの鍵(パスワード)、もう1つはあなたの電話に送られる常に変化するコード(第二の要素)です。これが二要素認証(2FA)の本質であり、オンラインアカウントへの不正アクセスに対する追加の防御層を提供するセキュリティシステムです。
OTPと2FAは同じものですか?
しばしば同じ意味で使われることがありますが、OTP(一回限りのパスワード)と2FA(二要素認証)には微妙な違いがあります:
- OTP:OTPは一度のログイン試行に使われる一意のコードです。SMS、メール、またはアプリによって配信されることがあります。クレジットカードのチップにある使い捨てコードのようなものと考えてください。
- 2FA:2FAは認証に2つの要素を用いるより広範なシステムで、知っているもの(パスワード)と持っているもの(電話やセキュリティキー)、または身体的特徴(指紋や顔認証)を組み合わせます。OTPは2FAを実現する一つの方法ですが、それだけではありません。
つまり、Google Authenticatorは2FAそのものより優れているわけではありません。Google AuthenticatorはTOTP(時間ベースの一回限りパスワード)方式を用いて2FA用のOTPコードを生成するアプリです。TOTPコードは通常30秒ごとに変わり、携帯ネットワークに依存しないため、従来のSMS配信OTPよりも安全とされています。
2FAの中で最も強力な方法とは?
「最も強力な」2FA方式は状況によります。以下がポイントです:
認証アプリ:
- TOTP(時間ベースの一回限りパスワード):Google AuthenticatorやMicrosoft Authenticatorなど多くの認証アプリの基盤です。以下の組み合わせを使います:
- 秘密鍵:アプリとログイン先サービス間で共有される一意の秘密鍵。通常、初期設定時に生成されます。
- 時間同期:アプリとサーバーは同じ時間基準(通常はUTC)を参照します。
- コード生成:アプリはHMAC-SHA1などの特定のアルゴリズムを使い、秘密鍵と現在の時刻を組み合わせて約30秒ごとに変わる一意のコードを生成します。これにより、コードが傍受されても短時間で無効になります。
- 検証:ログイン時に入力されたコードに対し、サーバーも同じ計算を行い、コードが一致すればアクセスが許可されます。
セキュリティキー:
- 公開鍵暗号方式:YubiKeyなどのセキュリティキーは公開鍵暗号を利用します。この方式は数学的に関連した2つの鍵、公開鍵と秘密鍵から成ります。
- 公開鍵(サーバー側):サーバーがチャレンジを暗号化するために公開されている鍵です。
- 秘密鍵(キー内):セキュリティキー内に安全に保管され、外部に出ることはありません。チャレンジの復号とデジタル署名の生成に使われます。
- チャレンジ・レス