多要素認証(MFA)とは?

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

Share facebook icon linkedin icon twitter icon email icon

多要素認証

学習目的

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

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

多要素認証(MFA)とは?

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

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

認証要素とは?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

この両方を追加の認証要素とみなす場合(議論の余地がありますが)、厳密に言えば、四要素認証や五要素認証も可能になります。両方とも多要素認証に分類されることになります。(そうした強力なセキュリティ対策を講じる場合は、ユーザーに及ぼす影響を加味する必要があります。なぜなら、過度に厳格なセキュリティ対策を講じると、ユーザーは正式なポリシーを回避しようとするからです。)

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

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

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

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

Cloudflare Accessは2FAをサポートしているSSOベンダーと統合します。Cloudflare Accessは、ユーザーができることを制御することで、企業のWebサイトとクラウドアプリケーションを保護するアクセス制御プロダクトです。