2要素認証とは?
2要素認証 (2FA または TFA) は、ユーザーがシステムへのアクセスを許可される前に、2つの固有の方法で身元を確認することをユーザーに要求するプロセスの技術用語です。従来、ユーザーがシステムにアクセスするには、メールアドレス、ユーザー名、電話番号といった、ユニークIDと正しいパスワードまたはPINを要求する認証システムに頼り、それが当たり前となっています。
2FAは、認証プロセスに追加の手順を追加することで、このパラダイムを拡張します。最も一般的には、一時的に生成されたワンタイムトークンを、ユーザーのみがアクセスできる方法で配信し、それをユーザーが入力します。別の一般的な方法は、指紋や網膜などのユーザーの生体認証データを2番目の要素として使用することです。
セキュリティと安心の向上
2要素認証は新しいものではありません。実際、この技術は1984年に考案されました。個人とビジネスの両方でますます私たちの生活がデジタル媒体に移行し、ハッキング、盗難、アクセスの喪失の脅威が悲惨な結果をもたらす可能性があります。そのため、現代社会ではますます重要になっています。
何年もの間、企業はパスワードの長さ、特殊文字の要件、ユーザーにパスワードを頻繁に変更することの要求、実際のパスワードを隠す洗練されたハッシュ化およびソルティングなどのアルゴリズムなど、要件を次々に要求することによって、ユーザー認証のセキュリティを強化しようと試みてきました。結局のところ、ユーザーは複数のシステムで同じパスワードを使用する傾向があるため、パスワードのみのシステムは依然として脆弱です。ユーザーが無意識のうちに自分のパスワードを明らかにするフィッシングや、ソーシャルエンジニアリングの手法はあまりにも一般的であり、パスワードの侵害につながる可能性があります。
2要素認証は、ユーザーのパスワードが侵害された場合でも、2つ目の要素をパスしなければアカウントにアクセスできないことが保証されているため、ユーザーとシステム管理者に安心感を与えます。 さらにワンタイムパスワード (OTP) またはトークンの使用により、さらにセキュリティが強化されます。
ユーザーが知っていること、持っているもの、そしてユーザー自身
2要素認証は、ユーザーが次の3つの「何か」のうち2つを提供することで成立します。
- 知っていること – アカウントのパスワードまたはPIN
- 持っているもの - 携帯電話や、ワンタイムパスワードを生成できるソフトウェアアプリケーションなど、物理的なデバイス
- ユーザー自身 – 指紋、声、網膜などの身体的特徴
ほとんどのハッカーが狙うのは、アカウントのパスワードまたはPINです。ハードウェアトークンへのアクセスや身体的特徴の取得はより困難であるため、2FAはユーザー アカウントのセキュリティを強化するのに効果的です。
2要素認証の種類
2FAを実装するには、さまざまな方法があります。いずれにも長所と短所がありますが、実装するとユーザーアカウントのセキュリティが大幅に向上します。以下で説明するすべての方法の重要なポイントは、ユーザーがユーザー名とパスワードを確認したら、システムにアクセスする前に、一時的に生成され、常に変更される2つ目のパスワードを入力する必要があることです。
企業は2FAをいつ、どのように使用するかについて、追加のルールを実装することがよくあります。ユーザーが会社のイントラネット内にいる場合、または以前に 2FAを使用してログインしたデバイスを使用している場合、ユーザーは2FAを使用する必要がない場合があります。また、ユーザーが毎回2FAを使用する必要がある場合もあります。Auth0は、このようなルール及びそのほかのカスタムルールをサポートし、ビジネスニーズを満たしています。
SMSトークン
おそらく、2FAを実装する最も一般的な方法です。この方法では、ユーザーがユーザー名とパスワードを正常に入力した後、SMSを介してトークン (通常は 5 ~ 10 桁のコード) をユーザーに送信します。ユーザーがアクセスを許可されるには、このトークンを提供する必要があります。
メリット
- 使いやすさ – ほとんどのユーザーはSMSを簡単に受信できます
- 可用性 – ほとんどの携帯電話はSMS機能を備えています
- 費用 – セットアップとメンテナンスが安価です
デメリット
- コネクティビティ – SMSトークンが受信可能な接続環境が必要です
- セキュリティ – SMSは第三者に盗まれる可能性があります
- デバイス – 物理的なデバイスが必要なため、電話が紛失または盗難にあった場合、ユーザーは認証できません
Eメールトークン
2要素認証の、もう 1 つのかなり一般的な方法です。この方法は上記のSMSの方法と非常に似ていますが、一般的な実装には、ユーザーが5 ~ 10 の英数字のトークンを入力、あるいはEメールに記載されているリンクをクリックすることが含まれます。ここでは、一時的に生成されるワンタイムパスワードも使用されます。
メリット
- 使いやすさ - ユーザーはコンピューターとモバイルデバイスの両方でEメールを受信できます。
- 費用 – セットアップとメンテナンスが安価です。
- オプション – リンクをクリックするなど、トークンを検証するための追加オプションをユーザーに提供できます。
デメリット
- 受信 – さまざまな理由でEメールが配信されない可能性があります。例えば:Eメールがスパムに分類される、サーバーがメールを跳ね返す、配信キューにバックアップされて配信が遅延するなど。
- セキュリティ – Eメールが第三者によって盗まれ、トークンが侵害される可能性があります。
- 多重性 – サードパーティがユーザーの資格情報にアクセスできるようになった場合、彼らは電子メールにもアクセスできるため、トークンを簡単に取得できる可能性があります。
ハードウェアトークン
この方法はエンタープライズ環境で一般的ですが、どんなシステムにも使用できます。このメソッドはキーフォブ、USBドングル、またはユーザーのトークンを一時的に生成するその他のデバイスなど、物理的なデバイスがユーザーに与えられることで機能します。これらのトークンは一般に短期間のみ有効で、30秒程度のものもあり、常に変化します。
メリット
- スタンドアロン – トークンを生成するのに、受信、オンライン接続などの必要がありません。
- 信頼性 – ハードウェアトークンは、トークンを生成するためだけに特別に構築されています。
- 安全 – これらのデバイスは1つのタスクしか実行しないため、悪用される可能性の幅が非常に削減されます。
デメリット
- 費用 – セットアップとメンテナンスに費用がかかります。
- デバイス – デバイスを簡単に紛失する可能性があります。
- デバイスが多すぎる – 複数のサービスのためにハードウェアデバイスを使用する場合、ユーザーが2FAを使用したがらない場合あります。
ソフトウェアトークン
ソフトウェアトークンは、トークンを一時的に生成するアプリケーションを、ユーザーのコンピューターまたは携帯デバイスにダウンロード及びインストールする必要があります。スマートフォンの普及に伴い、この方法が人気を集めています。ソフトウェアトークンはハードウェアトークンと同様に機能し、トークンがランダムに生成されて短時間で変更されます。しかし、開発者はビジネスニーズに合わせて、さまざまな実装を選択できます。
メリット
- 使いやすさ – アプリは通常、トークンをユーザーに表示するだけのシンプルなインターフェースになっています。
- 更新 – ソフトウェアの更新と必要に応じたパッチの適用が容易です。
- 拡張性 – アプリにアクセスするためのPINを要求したり、複数のアカウントで1つのアプリを使用するなど、拡張機能を追加する機能があります。
デメリット
- 費用 – 実装とメンテナンスに費用がかかります。
- 追加のソフトウェア – ユーザーは、デバイスに追加のソフトウェアをダウンロードしてインストールする必要があります。
- 安全性 – トークンの生成に使用されるアプリケーションが、ユーザーの知らないうちに侵害される可能性があります。
電話
この2FAの方法では、ユーザーがユーザー名とパスワードを認証した後にユーザーが電話でトークンを受け取ります。これはおそらくユーザーにとって最も不便な方法ですが、一時的にトークンをユーザーに配信するには、実行可能で一般的な方法です。
メリット
- 使いやすさ - 電話を受けるだけなので簡単です。
- 費用 – セットアップと実装が安価です。
- 信頼性 – 一般に、音声/SMS の受信はデータよりも少ない帯域幅ですむため、データ接続が必要なソフトウェアやEメールベースの検証にとって代わる、良い方法かもしれません。
デメリット
- 安全性 – 通話の傍受、転送、ボイスメールのハッキングといった可能性があります。
- コネクティビティ – 電話受信が可能な接続環境が必要です。
- デバイス – トークンを受け取るには物理的なデバイスが必要です。
生体認証
この2FAの方法はユニークで、これまでに述べた他の方法とは異なります。生体認証は、ユーザー本人がトークンとなります。ユーザーの指紋や網膜などのユニークな特徴を使用して、ユーザーが本人であることを確認します。
メリット
- ユーザーがトークンになります。ありのままでいてください!
- オプション – 指紋、網膜、音声、顔認識など、トークンにはさまざまなオプションがあります。
- 使いやすさ – ユーザーがシステムの仕組みを理解するのが簡単です。
デメリット
- プライバシー – 生体認証データの保存にはプライバシーの問題が生じます。
- 安全性 – 指紋やその他の生体認証データは危険にさらされる可能性があり、しかも変えることはできません。
- 追加のハードウェア – 生体認証データを検証するための特別なデバイス (カメラ、スキャナーなど) が必要です。
Auth0による2要素認証の実装
Auth0を使用した2FAの実装は簡単でシンプルです。当社のGuardian アプリ、またはサードパーティの2FAプロバイダーを使用して 2FA を実装できます。Google Authenticator と Duo という、2つの一般的な2FAプロバイダーをすぐに利用できます。これらは、わずか数分で簡単にセットアップできます。
さらに、カスタムプロバイダーとルールを実装して、2FA のワークフローを強化および微調整し、ビジネスニーズを満たすことができます。このプロセスがGuardian でどのように機能するかを見てみましょう。
Auth0とGuardianによる2要素認証
Auth0とGuardian を使用した2FAの実装は、わずか2ステップで実行できます。
- Auth0の管理ダッシュボードで、[多要素認証] セクションに移動します。
- ユーザーは2FAコードを受け取る方法を選択します。プッシュ通知、SMS、またはその両方を選択できます。
- オプションでどのAuth0アプリケーション2FAを有効にするかを構成し、必要に応じて追加の構成変更を行います。
変更を保存すると、Guardianを使用した2FAがお使いのアプリで有効になります!その後でユーザーがログインを試みると、アプリにアクセスする前に2FAをセットアップするよう求められます。
適応可能なコンテクスト・アウェアに基づくマルチファクター
適応可能なコンテクスト・アウェアに基づくマルチファクターを使用すると、2FAまたは、以下の条件に基づく追加の認証レイヤーを適用できます。:地理的な場所、時刻/週、ネットワークの種類、カスタムドメイン、特定のIP、またはAuth0プラットフォーム上のコードで表現できるいかなる条件。
デフォルトでは、2FAは1か月に1回だけ要求されますが、ユーザーがログオンするたびに要求されるようにしたり、独自のルールを定義して2FAを行うこともできます。
会社のイントラネット外からミッションクリティカルなアプリケーションにアクセスする場合や、別のデバイスまたは新しい場所からアクセスする場合などのルールを定義できます。