web-dev-qa-db-ja.com

Squid ssl_bump server_first

Ssl_bump server_first Squidディレクティブをテストしようとしていますが、どのように機能するのか理解できませんでした。私が理解している限り、ssl_bumpディレクティブには3つの動作モードがあります。

  • なし:HTTPSトラフィックは傍受されず、クライアントはリモートサーバーに直接接続し、squidはトラフィックを転送するだけです。
  • クライアントファースト:クライアントはSSL経由でSquidに接続し(したがって、最初の接続時にユーザーはSquidのSSL証明書を受け入れる必要があります)、Squidはサーバーに接続し、SSL証明書を自動的に受け入れます。 (または、一部の証明書のみを受け入れ、他の証明書を拒否するオプションはありますか?)
  • サーバーファースト:Squidはサーバーに接続し、SSL証明書を受け入れ、次に...?イカのドキュメントによると:

最初にサーバーとの安全な接続を確立してから、模倣されたサーバー証明書を使用してクライアントとの安全な接続を確立します。

「模倣サーバー証明書」とはどういう意味ですか? Squidは、リモートサーバーから受信したものをコピーした偽の証明書(?)を生成しますか? ssl_bump server_first Squidをセットアップしようとしましたが、HTTPSサイトに接続するたびに、ブラウザーは証明書が一致しないことを警告します。証明書を調べると、Squidのインストール中に作成されたものと常に同じであることがわかります。 ..「クライアントファースト」の動作との違いは見られません...

SSLインターセプトが安全な手順ではないことは知っていますが、強制的に使用する可能性があるため、この機能を検討しています...

前もって感謝します。

2
J.B.

サーバーファーストとクライアントファーストの違いは、ユーザーが最終的に表示する(または表示しない)エラーメッセージです。

クライアントファーストのSSLバンプでは、次の3つの問題があります。

  1. 提示されたSSL証明書が宛先と一致しません。例えばクライアントはSSL証明書がproxy.yourdomain.comに発行されていることを確認しましたが、ユーザーはwww.securewebsite.comにアクセスしようとしています。彼らのブラウザはこれについて彼らに警告します。 (悪い)
  2. SSL証明書は、信頼できない認証局からのものです。彼らのブラウザはこれについても警告します。 (悪い)
  3. サーバーのSSL証明書に問題がある場合、クライアントに通知する良い方法はありません。 Squidがエラー(期限切れ、信頼できない、間違ったサイトなど)があることを発見するまでに、クライアントはすでに「適切な」SSL証明書を持っており、実際のトラフィックを受信しようとしていると考えています。彼らのブラウザはこれについて彼らに警告することはできません。 (また悪い)

サーバーファーストSSLバンプは、最初と3番目の問題を排除します。 2番目が残っています。これが サーバーファーストのSSLバンピングを使用する理由に関するまともなリソース です。機能がまだ開発されているときに書かれたようですので、未来形で混乱させないでください。

自分で証明書を生成し、誰でも自分で証明書を生成できるので、証明書を持っているだけでは通信が安全であるとは限りません。証明書は、信頼できる発行者からのものである必要があります。ブラウザには、デフォルトで信頼できる認証局のリストが付属しています。これらのCAは、販売する証明書を保証します。これにより、コンピューターは証明書を信頼することができます。

この問題の解決策は、SSLバンピングに使用している証明書を信頼するようにコンピューターに指示する必要があることです。手順はOSによって異なります。 Windowsクライアントの場合はGPOを介して何かをプッシュでき、モバイルの場合はMDMなどを使用してプッシュできます。

(Windowsでの)テストのためだけに、証明書を右クリックしてインストールを選択できます。ウィザードをウォークスルーします。ウィンドウに証明書を配置する場所を選択させる代わりに、信頼されたルート証明機関を参照して選択します。これを実行すると、コンピューターはsquidssl-bumpサーバーによって生成されたすべての証明書を信頼します。

2
Keith Twombley