多要素認証は、アプリケーションやデータベースへのアクセスを許可する前に、その人物の1つのID情報だけでなく、複数の側面をチェックします。単一要素認証よりもずっと安全です。
この記事を読み終えると、以下のことができるようになります。
関連コンテンツ
是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!
記事のリンクをコピーする
多要素認証(MFA)とは、従来のユーザーIDとパスワードの組み合わせよりもずっと安全な本人認証方法です。通常、MFAはパスワードを組み込みますが、1つまたは2つのほかの認証要素も組み込みます。二要素認証(2FA)はMFAの一種です。
MFAは、Identity and Access Management(IAM)の重要な部分であり、シングルサインオン(SSO)ソリューション内で実施されることが多いです。
ユーザーにソフトウェアアプリケーションやネットワークへのアクセス権限を付与する前に、本人認証システムは、ユーザーが本人であることを確認するためにユーザー固有の特性に基づいてユーザーを評価します。こうした特性を「認証要素」とも呼びます。
次の認証要素が、最も広く使用されています。
MFAとは、2つ以上の認証要素を使用することを指します。2つの認証要素のみを使用するMFAのことは、二要素認証または2ステップ認証とも呼びます。三要素認証はMFAのもう1つの形態です。
単一要素認証とは、上記のいずれか1つの要素を使用して個人を識別することです。単一要素認証の最も一般的な例が、ユーザー名とパスワードの組み合わせを要求することです。
単一要素認証の問題は、攻撃者が1つの認証要素への攻撃に成功さえすればユーザーになりすますことができてしまうという点です。ユーザーのパスワードが盗まれると、ユーザーのアカウントは侵害されます。それに対して、ユーザーがMFAを実施した場合、攻撃者はアカウントにアクセスするのに、パスワード以外のものが必要になります。たとえば、ユーザーが持っているものを盗む必要があります。これは、攻撃者にとってはるかに難しいことになります。
この問題は、ほかの形態の単一要素認証にも当てはまります。銀行がデビット(キャッシュ)カードとPINの代わりに、所有情報であるデビットカードのみで現金を引き出すことを許可したとします。犯罪者はデビットカードを盗むだけで、その口座に入っているお金を盗むことができてしまいます。
MFAを安全にするのは、異なる要素の使用であることを覚えておく必要があります。
あるアプリケーションがユーザーにパスワードのみを入力するよう促し、もう1つのアプリケーションがユーザーにパスワードと秘密の質問の答えを入力するよう促すとします。どちらのアプリケーションがより安全ですか?
厳密に言うと、答えは「どちらでもない」になります:どちらのアプリケーションも知識情報という1つの認証要素のみに依存しています。パスワードと物理的なトークンまたは指紋を必要とするアプリケーションの方が、パスワードと秘密の質問のみを必要とするアプリケーションよりも安全です。
これは非常に文脈的な質問です。一般的に、多要素認証は、1要素認証よりもはるかに安全です。
とはいえ、ある種のMFAは、巧妙な攻撃手法に対して脆弱であることが示されています。ある実例では、攻撃者は従業員に、組織のシングルサインオンサービスの偽のログインページを示すSMSフィッシングメッセージを送信しました。この偽のページにユーザーがユーザー名とパスワードを入力すると、次のような手順で行われました。
一方、所有を検証する別の方法であるUSBセキュリティトークンでは、このような攻撃を受ける可能性はありません。もし、すべてのユーザーが自分のコンピューターに接続するために固有のセキュリティトークンを与えられ、認証のためにそのトークンを物理的に起動しなければならないとしたら、誰かのユーザー名とパスワードを手に入れた攻撃者は、その人のコンピュータを盗まない限り、アカウントにアクセスすることができなくなります。同じことが、ユーザーの指紋や顔のスキャンなど、固有の資質を利用した本人確認にも言えます。
ワンタイムパスワードよりも、セキュリティトークンや指紋スキャンの方が安全ということでしょうか。フィッシングの文脈では、その通りです。しかし、組織はMFA方式を選択する前に、特定のセキュリティリスクとニーズを評価する必要があります。また、どのような形態のMFAであっても、1要素認証よりも安全であり、組織のセキュリティ対策において重要な一歩となるでしょう。
セキュリティ業界の一部では、上記の3つの認証要素に加えて追加の認証要素を提案または実装しています。実装が行われている例が極めて少ないですが、こうした認証要素には次のようなものがあります:
位置情報:ログイン時にユーザーがいる場所。たとえば、米国に本社があり、全従業員が米国内で勤務する企業は、従業員のGPSの位置情報にアクセスして、別の国からのログインを拒否できます。
時刻: ユーザーがログインした時刻、通常は、ほかのログインや場所と照らし合わせます。ユーザーがある国でログインし、その数分後に別の国でログインしようとした場合、そのログイン要求は不正なものである可能性が高いです。システムは、通常の営業時間外でのログイン試行を拒否する場合があります。ただし、これは認証要素というよりもセキュリティポリシーとしてみなされます。
この両方を追加の認証要素とみなす場合(議論の余地がありますが)、厳密に言えば、四要素認証や五要素認証も可能になります。両方とも多要素認証に分類されることになります。
そうした強力なセキュリティ対策を講じる場合は、ユーザーに及ぼす影響を加味する必要があります。なぜなら、過度に厳格なセキュリティ対策を講じると、ユーザーは正式なポリシーを回避しようとするからです。
現在、多くのコンシューマー向けWebサービスはMFAを提供します。MFAを備えた大部分のアプリケーションは、ユーザーがログイン時にスマートフォンを使用することを必要とする2FAの形態を用いています。2FAを有効化できるかどうか、各アプリケーションのセキュリティ設定を調べてください。また、Cloudflareでは、すべてのCloudflareユーザーは各自のアカウントで2FAを実装することができます。
MFAの実装にはSSOソリューションを使用することが推奨されます。SSOは、すべてのアプリにMFAを実装するための単一箇所を提供しますが、すべてのアプリがMFAをサポートしているわけではありません。
Cloudflare Zero Trustは、2FAをサポートするSSOベンダーと連携します。Cloudflareは、ユーザーが実行できる操作を制御し、リモートワークであろうと管理されたオフィス環境であろうと働く従業員に強制的にセキュリティポリシーを適用することで、企業のWebサイトやクラウドアプリケーションを保護します。