私の組織では、ネットワークへのアクセスが許可される前にユーザーを認証するように強制するキャプティブポータルを設定しています。課題は、ユーザーがブラウザーを開き、ホームページがhttps(例 https://google.com/ )であり、トラフィックをhttp://myportal.company.com
にリダイレクトすると、エンドユーザーがエラーを受け取ることです。 。
WebがますますHTTPSにデフォルト設定されているので(これは良いことです!)、問題が発生しています。
どのようなオプションがありますか?
キャプティブポータルは、基本的に中間者攻撃を行っています。 SSL/TLSを使用するHTTPSおよびその他のプロトコルは、このような中間者攻撃を明示的に検出および防止するためのものです。これには2つの選択肢があります。中間者攻撃を行わないか、クライアントに中間者を信頼させます。すべての完全に透過的なソリューションでは、クライアントをある程度制御する必要があります。
キャプティブポータルの中央CAにいる男性をクライアントに信頼できるものとして追加できる場合、多くの場合、中央の男性を信頼することが可能です。 Windowsのような一部のシステムでは、これは自動化された方法(グループポリシー)で実行できます。ブラウザーが、この明示的に追加されたCAによって証明書が署名されていることを確認すると、公開キーのピン留め(明示的および組み込みのHPKP)のチェックも無効になります。ただし、すべてのケースで機能するわけではないことに注意してください。つまり、Dropboxのようなブラウザー以外のアプリケーションがあり、証明書のピン留めを継続しているため、機能しなくなります。
キャプティブポータルをクライアントで明示的なプロキシとして設定すると、中間者攻撃を行わなくても機能します。クライアントでプロキシの自動構成が有効になっている場合、これはWPADサーバーで実行できます。グループポリシーで構成するか、手動で構成する必要があります。プロキシを使用すると、認証を要求できます。ただし、基本認証(ユーザー名とパスワード)またはNTLMを使用した透過的な認証に制限されます。最初にクライアントが受け入れる必要がある情報をクライアントに提示する方法はありません。プロキシ認証は、クライアントがプロキシと通信していることがわかっている場合にのみ機能します。通常のHTTP/HTTPSトラフィックを傍受し、プロキシ認証要求を送り返すだけでは機能しません。これは、プロキシを認識しない(つまり、システム設定を使用しない)アプリケーションが機能しないことも意味します。
そして最後に、ユーザーをリダイレクトする試みを放棄し、クライアントが最初にいくつかの内部URLを使用して自分自身を承認する必要があることを説明する情報を投稿することができます。これが完了するまで、アクセスは失敗し、クライアントが自分自身を承認すると、特定のクライアントのMACがしばらく許可されます。
あなたの質問を理解したら、エンドユーザーが認証されるまでインターネットアクセスをブロックするプロキシサーバーがあります。 「ブロック」とは、つまり、プロキシが https://google.com のリクエストを受信した場合、リクエストされたホスト(google.com)を偽装し、ログインページに302リダイレクトヘッダーを返すプロキシ自体でホストされています。これは、マクドナルドやスターバックスなどの公共のwifiで見られる非常に一般的なスキームで、企業の設定でもかなり一般的です。
これの問題はもちろんスプーフィングです。 google.comをスプーフィングすると、証明書エラーが発生しますが、(最近まで)ユーザーはこれをクリックすることができました。 [〜#〜] hsts [〜#〜] の導入により、証明書エラーを回避してプロキシのログインページに進むことができなくなり、エンドユーザーがオーバーライドすることはほとんどできなくなりましたそれ。
エンドユーザーとして、私は最近、この問題にますます直面しています。エンドユーザーとして私がこれに対処してきた方法は、HSTSのないサイト(例:CNN.com)に移動するか、IPで移動する(例:http://192.168.0.1
)。これらもプロキシによってインターセプトされますが、証明書のエラーは回避できます。
プロキシサーバーが認証を要求する「正しい」方法は、302リダイレクトではなく、 HTTP 407ステータスコード を使用することであり、これは「プロキシ認証が必要」を意味します。プロキシは、302リダイレクトではなく、このヘッダーで応答する必要があります。ブラウザーは、HTTP 407を解釈する方法を知っている必要があり、ユーザー名とパスワードを収集するための適切なダイアログを表示する必要があります。
2番目のオプション...これが企業ネットワークであり、グループポリシーをプッシュする機能がある場合、それを使用して ブラウザのホームページを設定する をプロキシログインページに設定することで、リダイレクト。
Chrome検出キャプティブポータル:
メインフレームのHTTPS読み込みにしばらく時間がかかる場合、 http://www.gstatic.com/generate_204 のバックグラウンドリクエストを先制的に開きます
https://docs.google.com/document/d/1k-gP2sswzYNvryu9NcgN7q5XrsMlUdlUdoW9WRaEmfM/edit
キャプティブポータルにいるかオンラインにあるかのこの判断は、Webページ http://clients3.google.com/generate_204 を取得しようとすることによって行われます。
https://www.chromium.org/chromium-os/chromiumos-design-docs/network-portal-detection