web-dev-qa-db-ja.com

2FAが表示されるのに、Webサイト認証で「2つの別個のエンティティ」が優先されないのはなぜですか?

私はそこにいくつかの2段階のウェブサイト認証方法を見てきました。 HOTP/TOTP、Yubikey、SMSから電話番号など)の2つのパスワードが含まれているものもあります。ただし、これらのシステムはすべて、コンピューターまたはメインデバイスに依存して侵害されていないようです。

具体的には、TOTPについて具体的に説明します。サイトの典型的なTOTPWebサイトフローは次のとおりです。

  1. コンピューターにパスワードを入力します
  2. 2FAアプリを開きます(例:FreeOTP認証、Google認証)
  3. 現在のTOTPトークンをコンピューターに入力します

攻撃者がコンピューターにキーロガーまたはCPUロガーを持っていた場合、攻撃者はあなたのアカウントにアクセスできませんか?ステップ3までに、コンピューターが危険にさらされていると仮定すると、コンピューターにはパスワードと現在のTOTPトークンの両方があります。 TOTPトークンは30秒後に期限切れになるため、攻撃者がアカウントにアクセスできるのは1回だけであることを理解しています。

ただし、典型的なTOTPWebサイトフローが次の場合はどうでしょうか。

  1. コンピューターにパスワードを入力します
  2. 2FAアプリを開きます(例:FreeOTP認証、Google認証)
  3. 現在のTOTPトークンを携帯電話から、コンピューターからログインしようとしたサイトのサーバーに直接送信します。

サイトのサーバー側でこれほど多くの労力がかかるかどうかはわかりません。着信TOTPトークンがどのログイン用であるかを識別するために、ユーザー名で送信される着信TOTPトークンをリッスンするエンドポイントが必要になると思います。これで、攻撃者は、アカウントにアクセスするために、コンピューター(またはメインデバイス)と電話(または2番目のデバイス)にキーロガーをインストールする必要があります。

私の見解では、この提案されたセットアップでは、究極のセキュリティメカニズムは、サーバーにTOTPキーを送信できるコンピューターと特定のハードウェアデバイスです(おそらくビットコイントレゾールのようですが、ビットコインアドレスを表示する代わりに、ドメインを表示します確認のための名前またはIPアドレス)。しかし、私が知る限り、2つの別々のエンティティを使用してWebサイト認証を行うためのプッシュは表示されません。これには理由がありますか?

1
Kent Shikama

TOTPトークンは30秒後に期限切れになるため、攻撃者がアカウントにアクセスできるのは1回だけであることを理解しています。

これはTOTPの場合です。しかし、カウンターに基づくHOTPはたくさんあります。これは、実際にはワンタイムパスワードです。つまり、既にログインしている場合は、それをキャプチャしても他のユーザーはログインできません(コンピューター上のウイルスが実際のパスワードの送信を阻止する必要があります)。時間パスワード)。これは、ほとんどのハードウェアトークンとSMSトークンにも当てはまります。

現在のTOTPトークンを携帯電話から、コンピューターからログインしようとしたサイトのサーバーに直接送信します。

そのようなツールはありますが、私は公開Webサイトへの展開については知りません。これは通常、ポートノッキングまたはシングルパケット認証(SPA)と呼ばれ、通常、SSHなどのファイアウォールポートを開くために使用されます。これはセキュリティの追加レベルとしては優れていますが、日常の使用には過剰です。素晴らしい実装は fwknop であり、「2番目の要素」としてアプリケーションにバインドできると思います。

1
Jakuje

攻撃者がコンピューターにキーロガーまたはCPUロガーを持っていた場合、攻撃者はあなたのアカウントにアクセスできませんか?ステップ3までに、コンピューターが危険にさらされていると仮定すると、コンピューターにはパスワードと現在のTOTPトークンの両方があります。

はい。ただし、攻撃者がクライアントソフトウェア(SSHクライアントまたはWebブラウザ)を変更できる場合は、転送されたすべてのコンテンツとコマンドも変更できることに注意してください認証が行われます。結局のところ、クライアントプログラムはallデータにアクセスできます。

Webサービスでは、認証は通常、セッションCookieを提供するだけであり、これを使用して後続のすべての要求を認証します(すべてのHTTP要求はプロトコルレベルで論理的に分離されているため)。Cookieは、同じプロセスから完全に独立した別のプロセスから使用できます。必要に応じてマシン。 SSHを使用すると、変更されたクライアントは同じストリームにコマンドを挿入する必要があります(そして、出力が表示されないようにします)。これには注意が必要ですが、不可能ではありません。

侵害されたクライアントプログラムから実際に保護するには、個別のチャネルを介してすべての独立したトランザクションを認証する必要があります。コマンドが「日陰の国のこの銀行口座に$ 100000を送金する」のようなものである場合、これはとにかく悪い考えではないかもしれませんが、ファイルを一覧表示するたびに確認を取得しますSMSホームディレクトリにあるものはかなり早く古くなります。

TOTPトークンは30秒後に期限切れになるため、攻撃者がアカウントにアクセスできるのは1回だけであることを理解しています。

もちろんですが、一度ログインするだけで、すべてのデータをコピーしたり、バックドアをインストールしたりできます(システムにコード実行機能がある場合)。同じ資格情報を使用すると、有効なユーザーに偽のログイン失敗も表示されます。攻撃者の接続が機能するには、最初に認証する必要があり、OTPが無効になり、ユーザーのログインに失敗するためです。ただし、ユーザーがパスワードまたはOTPを誤って入力したと想定して、再試行する可能性があります。

もちろん、パッシブキーロガーを作成するのは簡単なので、本格的なカスタムコマンド送信トロイの木馬クライアントよりも、おそらくより一般的な攻撃モードです。

1
ilkkachu