多要素認証(MFA)とは?

多要素認証は、アプリケーションやデータベースへのアクセスを許可する前に、その人物の1つのID情報だけでなく、複数の側面をチェックします。単一要素認証よりもずっと安全です。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • 多要素認証(MFA)を定義する
  • MFAがパスワードのみを使用するよりも安全である理由を知る
  • さまざまな本人認証要素を探る

関連コンテンツ


さらに詳しく知りたいとお考えですか?

是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!

当社がお客様の個人データをどのように収集し処理するかについては、Cloudflareのプライバシーポリシーをご確認ください。

記事のリンクをコピーする

多要素認証(MFA)とは?

多要素認証(MFA)とは、従来のユーザーIDとパスワードの組み合わせよりもずっと安全な本人認証方法です。通常、MFAはパスワードを組み込みますが、1つまたは2つのほかの認証要素も組み込みます。二要素認証(2FA)はMFAの一種です。

MFAは、Identity and Access Management(IAM)の重要な部分であり、シングルサインオン(SSO)ソリューション内で実施されることが多いです。

認証要素とは?

ユーザーにソフトウェアアプリケーションやネットワークへのアクセス権限を付与する前に、本人認証システムは、ユーザーが本人であることを確認するためにユーザー固有の特性に基づいてユーザーを評価します。こうした特性を「認証要素」とも呼びます。

次の認証要素が、最も広く使用されています。

  1. 知識情報:ユーザーが知っていること
  2. 所有情報:ユーザーが持っているもの
  3. 本人の特徴:ユーザー自身の身体的特徴

MFAとは、2つ以上の認証要素を使用することを指します。2つの認証要素のみを使用するMFAのことは、二要素認証または2ステップ認証とも呼びます。三要素認証はMFAのもう1つの形態です。

三要素認証の実例にはどのようなものがあるか?

  • 知識情報(ユーザーが知っていること): この要素には1人のユーザーだけが持つ1つの知識はである、ユーザー名とパスワードの組み合わせがあります。そのほかの種類の知識要素には、秘密の質問、ID番号、社会保障番号などがあります。「シークレットハンドシェイク」もユーザーが知っていることになります。
  • 所有情報(ユーザーが持っているもの):この認証要素は、物理的なトークン、デバイス、または鍵の所有を指します。最もわかりやすい例は、家に入るのに物理的な鍵を使用することです。コンピューティングの世界では、キーフォブ、USBデバイス、あるいはスマートフォンといった物になります。多くの現代のMFAシステムは、アカウントにアクセスするために、ユーザーのスマートフォンにショートメッセージで送信した一時的なコードをユーザーに入力するよう求めます。そうすることで、ユーザーしか持っていないスマートフォンをユーザーが持っていることが分かるので本人確認に役立ちます(攻撃者がユーザーのSIMカードを乗っ取った場合を除く)。
  • 本人の特徴(ユーザー自身の身体的特徴):これは、本人だけにある身体的特徴のことを指します。最もわかりやすい例は、見た目や声で誰であるかを認識することです。人間は日々のやり取りの中で常にこのことを行っています。身分証の写真と照合することは、本人の特徴を確認するもう1つの例です。コンピューティングの世界では、この認証要素の一例は、多くの現代のスマートフォンに備わっている機能の1つである顔認証です。ほかの手段には、指紋認証、虹彩認証、静脈認証などがあります。

MFAが単一要素認証より安全な理由

単一要素認証とは、上記のいずれか1つの要素を使用して個人を識別することです。単一要素認証の最も一般的な例が、ユーザー名とパスワードの組み合わせを要求することです。

単一要素認証の問題は、攻撃者が1つの認証要素への攻撃に成功さえすればユーザーになりすますことができてしまうという点です。ユーザーのパスワードが盗まれると、ユーザーのアカウントは侵害されます。それに対して、ユーザーがMFAを実施した場合、攻撃者はアカウントにアクセスするのに、パスワード以外のものが必要になります。たとえば、ユーザーが持っているものを盗む必要があります。これは、攻撃者にとってはるかに難しいことになります。

この問題は、ほかの形態の単一要素認証にも当てはまります。銀行がデビット(キャッシュ)カードとPINの代わりに、所有情報であるデビットカードのみで現金を引き出すことを許可したとします。犯罪者はデビットカードを盗むだけで、その口座に入っているお金を盗むことができてしまいます。

MFAを安全にするのは、異なる要素の使用であることを覚えておく必要があります。

あるアプリケーションがユーザーにパスワードのみを入力するよう促し、もう1つのアプリケーションがユーザーにパスワードと秘密の質問の答えを入力するよう促すとします。どちらのアプリケーションがより安全ですか?

厳密に言うと、答えは「どちらでもない」になります:どちらのアプリケーションも知識情報という1つの認証要素のみに依存しています。パスワードと物理的なトークンまたは指紋を必要とするアプリケーションの方が、パスワードと秘密の質問のみを必要とするアプリケーションよりも安全です。

MFAはどのような形態が最も効果的なのでしょうか?

これは非常に文脈的な質問です。一般的に、多要素認証は、1要素認証よりもはるかに安全です。

とはいえ、ある種のMFAは、巧妙な攻撃手法に対して脆弱であることが示されています。ある実例では、攻撃者は従業員に、組織のシングルサインオンサービスの偽のログインページを示すSMSフィッシングメッセージを送信しました。この偽のページにユーザーがユーザー名とパスワードを入力すると、次のような手順で行われました。

  1. 攻撃者は、盗んだユーザー名とパスワードを組織の実際のログインページで使用しました。
  2. 実際のログインページは、実際のユーザーの携帯電話に一時的なコードを送信することで、他の認証要素(所有)を検証しようと試みました。
  3. 攻撃者は、ユーザーを別の偽のページにリダイレクトし、一時的なコードの入力を求めました。
  4. ユーザーが偽のページに誘導され、コードを入力してしまった場合、攻撃者はそのコードを実際のログインページで使用し、アカウントにアクセスすることができました。

一方、所有を検証する別の方法であるUSBセキュリティトークンでは、このような攻撃を受ける可能性はありません。もし、すべてのユーザーが自分のコンピューターに接続するために固有のセキュリティトークンを与えられ、認証のためにそのトークンを物理的に起動しなければならないとしたら、誰かのユーザー名とパスワードを手に入れた攻撃者は、その人のコンピュータを盗まない限り、アカウントにアクセスすることができなくなります。同じことが、ユーザーの指紋や顔のスキャンなど、固有の資質を利用した本人確認にも言えます。

ワンタイムパスワードよりも、セキュリティトークンや指紋スキャンの方が安全ということでしょうか。フィッシングの文脈では、その通りです。しかし、組織はMFA方式を選択する前に、特定のセキュリティリスクとニーズを評価する必要があります。また、どのような形態のMFAであっても、1要素認証よりも安全であり、組織のセキュリティ対策において重要な一歩となるでしょう。

ほかにどのような認証要素があるか?

セキュリティ業界の一部では、上記の3つの認証要素に加えて追加の認証要素を提案または実装しています。実装が行われている例が極めて少ないですが、こうした認証要素には次のようなものがあります:

位置情報:ログイン時にユーザーがいる場所。たとえば、米国に本社があり、全従業員が米国内で勤務する企業は、従業員のGPSの位置情報にアクセスして、別の国からのログインを拒否できます。

時刻: ユーザーがログインした時刻、通常は、ほかのログインや場所と照らし合わせます。ユーザーがある国でログインし、その数分後に別の国でログインしようとした場合、そのログイン要求は不正なものである可能性が高いです。システムは、通常の営業時間外でのログイン試行を拒否する場合があります。ただし、これは認証要素というよりもセキュリティポリシーとしてみなされます。

この両方を追加の認証要素とみなす場合(議論の余地がありますが)、厳密に言えば、四要素認証や五要素認証も可能になります。両方とも多要素認証に分類されることになります。

そうした強力なセキュリティ対策を講じる場合は、ユーザーに及ぼす影響を加味する必要があります。なぜなら、過度に厳格なセキュリティ対策を講じると、ユーザーは正式なポリシーを回避しようとするからです。

ユーザーはどのようにアカウントに対してMFAを適用できるか?

現在、多くのコンシューマー向けWebサービスはMFAを提供します。MFAを備えた大部分のアプリケーションは、ユーザーがログイン時にスマートフォンを使用することを必要とする2FAの形態を用いています。2FAを有効化できるかどうか、各アプリケーションのセキュリティ設定を調べてください。また、Cloudflareでは、すべてのCloudflareユーザーは各自のアカウントで2FAを実装することができます。

企業はどのようにMFAを実装できるか?

MFAの実装にはSSOソリューションを使用することが推奨されます。SSOは、すべてのアプリにMFAを実装するための単一箇所を提供しますが、すべてのアプリがMFAをサポートしているわけではありません。

Cloudflare Zero Trustは、2FAをサポートするSSOベンダーと連携します。Cloudflareは、ユーザーが実行できる操作を制御し、リモートワークであろうと管理されたオフィス環境であろうと働く従業員に強制的にセキュリティポリシーを適用することで、企業のWebサイトやクラウドアプリケーションを保護します。