二要素認証(2FA)のセキュリティ問題

二要素認証(2FA)は多要素認証(MFA)の特定のタイプで、本人確認のために2つの方法(認証要素とも呼ばれる)を要求することでアクセスセキュリティを強化するものである。 これらの要素には、ユーザー名やパスワードなど知っているものと、認証要求を承認するためのスマートフォン アプリなど持っているものがあります。

2FA はフィッシング、ソーシャル エンジニアリング、パスワード ブルートフォース攻撃から保護し、弱いまたは盗まれた認証情報を悪用する攻撃者からログイン情報を保護します。 機密データを保護するためには、そのデータにアクセスしようとするユーザーが本人であることを確認する必要があります。 2FA は、フィッシング、ブルートフォース攻撃、クレデンシャル搾取など、ユーザーのパスワードやアカウントを標的とする多くのセキュリティ脅威から保護する効果的な方法です。

アプリケーションへの一次認証を完了するためにユーザー名とパスワードを使用するとします。 その情報は、インターネット (プライマリ ネットワーク) を介して送信されます。 2 つ目の認証には、別の(帯域外の)チャネルを使用する必要があります。

2FAにはどのような種類がありますか。

SMS 2FA

howtogeek.com

SMS 2ファクタ認証はセキュリティコードをモバイルデバイスにテキスト送信してユーザーの識別を検証するものです。

meteor.com

Time-Based One Time Password (TOTP) 2FA メソッドは、ユーザーがアクセスしようとしているデバイスでローカルにキーを生成します。 このような状況において、携帯電話機側で利用可能な Self-Defense Networks (SANDS)の最新バージョンがあれば、さらに便利です。 その後、ユーザーはこれらの数字をウェブサイトやアプリケーションに入力し、アクセスする。 認証機能によって生成されたパスコードは、一定期間後に失効し、ユーザーが次にアカウントにログインする際に新しいものが生成される。 TOTP は Open Authentication (OAUTH) セキュリティ アーキテクチャの一部です。

Push-Based 2FA

how-to-geek

Push-based 2FA はエンドユーザーにとって使いやすいものに改善しながら、追加のセキュリティ層を追加することにより SMS および TOTP 2FA に改良を加えている。 プッシュ型2FAは、他の方法では不可能な複数の認証要素でユーザーのアイデンティティを確認します。 Duo Securityは、プッシュ型2FAのリーディングプロバイダです。

U2F トークン

wellesley.edu

U2F トークンは物理 USB ポートを使ってログインしようとするユーザの場所と ID を検証し2要素認証を確保します。 U2Fトークンを使用するには、ユーザーがトークンをデバイスに挿入し、デバイスの上部にあるボタンを押します。 トークンがアクティブになると、ユーザーはPINを入力し、アカウントにアクセスできるようになります。de

FIDO (Fast IDentity Online) Alliance と W3C によって作成された Web Authentication API は、強力な公開鍵暗号方式の登録と認証を可能にするための仕様です。 WebAuthn (Web Authentication API)は、Duoのようなサードパーティがラップトップやスマートフォンに内蔵されたバイオメトリクス認証機能を利用できるようにし、ユーザーがすでに手元にあるツールで素早く認証できるようにします。

2FAはどのような脅威に対応しているか?

  • 盗まれたパスワード
  • フィッシングの試み
  • ソーシャル エンジニアリング
  • ブルート(Brute)・・・・・・・・・・・・・などなど。フォース攻撃
  • Broken Logic
  • Key Logging

Vulnerabilities in Two-Factor authentication

Bypassing two-factor authentication

at times, 二要素認証の実装は、完全に回避できるほどの欠陥があります。

ユーザーが最初にパスワードを入力するよう促され、次に別のページで検証コードを入力するよう促された場合、ユーザーは検証コードを入力する前に事実上「ログイン」状態にあります。 この場合、最初の認証ステップを完了した後、「ログインのみ」のページに直接飛べるかどうか、テストしてみる価値があります。 時折、Web サイトが、ページを読み込む前に 2 番目のステップを完了したかどうかを実際には確認しないことがあります。

二要素認証トークン

検証コードは通常、何らかの物理デバイスからユーザーによって読み取られます。 多くの高セキュリティ Web サイトでは、オンライン バンキングや仕事のラップトップへのアクセスに使用する RSA トークンまたはキーパッド デバイスのように、この目的のために専用のデバイスをユーザーに提供しています。 これらの専用デバイスは、セキュリティのために作られているだけでなく、検証コードを直接生成できる利点もあります。 同じ理由で、Web サイトが Google Authenticator などの専用のモバイルアプリを使用することもよくあります。

一方、一部の Web サイトでは、ユーザーの携帯電話にテキストメッセージとして検証コードを送信します。 これは技術的にはまだ「持っているもの」という要素を検証しているのですが、悪用される可能性があります。 第一に、コードはデバイス自体で生成されるのではなく、SMSで送信される。 このため、コードが傍受される可能性があります。 また、攻撃者が被害者の電話番号のSIMカードを不正に入手する、SIMスワップのリスクもあります。 攻撃者は、被害者に送信されたすべてのSMSメッセージ(検証コードを含むもの)を受信することになります