二要素認証とは何ですか?| 2ステップの認証を説明

二要素認証(2FA)では、ユーザーは2つの異なる手段で自身の身元を証明した後でアクセスを許可されます。

学習目的

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

  • 二要素認証の定義
  • 認証要素の例の概要
  • 2FAの欠点を知る

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

二要素認証とは何ですか?

二要素認証(略して2FA)は、IDの確立に2つの異なる認証要素を必要とする認証プロセスです。簡単に言えば、ユーザーはアクセスを許可される前に、自身の身元を2つの異なる方法で証明する必要があります。2FAは、多要素認証の一形態です。

認証とは何ですか?

認証は、アクセス制御の重要な構成要素です。これは、ある人が主張どおりの人であることを確認する、セキュリティ対策です。出入国審査でパスポートを提示する旅行者も、その一例です。

サイバーセキュリティの範囲において、最も一般的な認証の例としては、Web上のサービスへのログイン、例えばWebブラウザでのGmailへのサインインやFacebookアプリへのログインがあります。ユーザーがユーザー名とパスワードの組み合わせを提示すると、サービス側でこれらの情報を確認し、これを使ってユーザーを認証します。

認証要素とは何ですか?

認証要素とは、別分類のID検証手段です。よくある2FAの認証要素には、次のようなものがあります。

  • 知識:これは、たとえばパスワードやセキュリティの質問への答えのような、ユーザーしか知らない情報です。
  • 所有:この要素は、ユーザーが持っている物体に依存します。たとえば、パスコードを生成可能なハードキーや、コードを受信可能なモバイルデバイスです。
  • バイオメトリックデータ:認証に使用可能な、ユーザーの生物学的特徴です。例えば指紋、網膜スキャン、顔認証などです。
  • 場所:場所に基づくGPSのようなツールを使用して、指定された地理的地域内のユーザーに認証を制限することができます。

同一の認証要素に2つのインスタンスが必要なものは、2FAではないので注意が必要です。例えば、パスワードとセキュリティの質問が求められるものは、一要素認証です。この両方とも、知識の要素に関連しています。

二要素認証はどのように機能しますか?

二要素認証は、複数の方法で機能することができます。2FAの最も一般的な例の1つは、ユーザー名/パスワードによる認証とSMSによるテキスト認証を必要とするものです。

この例は、ユーザーがあるサービスのアカウントを作成する際に、固有のユーザー名、パスワード、および携帯電話番号を入力する必要があると言うものです。ユーザーがこのサービスにログインする際、ユーザーは自身のユーザー名とパスワードを提示します。これが最初の認証要素(知識:ユーザーは、自身に固有のログイン資格情報を知っていることを証明する)です。

次に、サービス側からユーザーに対して、数字のコードが記載されたテキストメッセージが自動で送信されます。ユーザー側には、この数字のコードを入力するプロンプトが表示されます。コードは正しいものと仮定し、ユーザーはここで2つめの認証要素(所有:ユーザーは自身のモバイルデバイスを所有している)を提示したことになります。これで、2FAの条件が満たされ、ユーザーは認証されてアカウントへのアクセスの許可を受けます。

なぜ、二要素認証を使うのですか?

パスワードベースのセキュリティは、攻撃者が容易に悪用できるようになっています。フィッシング詐欺中間者攻撃ブルートフォース攻撃の広がりや、パスワードの使いまわしによって、攻撃者にとって盗まれたログイン資格情報を収集することは格段に容易になっているのです。これらの盗まれた資格情報はクレデンシャルスタッフィング攻撃で使用するために取引または販売される可能性があります。このような理由から、2FAはますます一般的になってきています。

また、リモートワークの普及に伴い、より強固な本人確認の重要性が増しています。社員が物理的にオフィスに出社していることを本人確認に利用することができないため、2FAなどの手段が社員のアカウントが侵害されていないことを確認する助けとなります。

セキュリティの専門家は基本的に、ユーザーが可能な限り2FAを有効にするよう薦め、ユーザーの機密データを取り扱いながら現在2FAを提供していないサービス側にも2FAを求めています。2FAは攻撃者から解析できないわけではありませんが、パスワードのみの認証の場合よりも侵害することは格段に難しく高価になります。

SMSベースの二要素認証は安全ですか?

SMSベースの2FA(テキストメッセージによる検証)は、一要素認証(パスワードのみ)よりもはるかに安全です。とは言っても、SMSは最も安全性の低い2FA手段の1つでもあります。SMSのプロトコルはそれほど安全ではなく、SMSメッセージは攻撃者から傍受されます。

2FAには、モバイルデバイスを使用した、もっと安全な別の実装方法があります。例えば、認証コードを強力な暗号化を使用した安全なアプリ経由で送信する方法です。Googleや他の主要なインターネットサービスでは、時間ベースのワンタイムパスワード(TOTP)を使用しています。TOTPでは、クライアント(たいていはスマートフォン上で実行するアプリ)でその日の時間を基に、一時的なシングルユースコードを生成します。これらのコードの寿命はきわめて短く、平均で1分未満です。この厳格なタイムラインによって、攻撃者がコードを傍受して期限切れ前に復号化することは非常に難しくなっています。

新たに、周囲の騒音をマイクで捕捉してモバイルデバイスとラップトップに取り入れる「サウンドプルーフ」と呼ばれる2FAテクノロジーも出てきています。サウンドプルーフでは、周囲の騒音サンプルを比較することで、両方のデバイスが同じ室内にあることを確認します。

二要素認証に欠点はありますか?

2FAは、インターネットをより安全にしますが、いくつか検討の必要な欠点があります。たとえば、2FAは、スマートフォン用の認証アプリをダウンロードして操作することを難しいと感じるような、テクノロジーに苦手意識のあるユーザーにはなじみにくいかもしれません。

サービスに2FAを要求する場合は、初期費用の障壁が生じるかもしれません。すべてのユーザーが多くの2FAで必要な最新のスマートフォンを持っているわけではありません。さらに、モバイルデータ通信は国や地域によっては非常に高額なため、スマートフォン所有者であっても、2FA認証アプリをダウンロードして高額な料金が発生しては困るという場合もあるでしょう。

2FAでは、サービスを管理する企業の側にもコストの問題が発生します。2FAは、パスワードのみの認証よりも格段に実装が難しく、2FAを提供する企業にはセットアップコストが生じるか、サードパーティが提供する認証サービスに継続的に料金を支払うことになるでしょう。より小規模なビジネスであれば、サポート費用を賄えないために2FAレベルの高度なセキュリティはあきらめるかもしれません。