web-dev-qa-db-ja.com

クライアント証明書によるSSLインターセプト

Sslで暗号化されたtcpストリームを傍受したい。サーバーとクライアントのプライベートキーと証明書を持っています。しかし、どうすれば接続を遮断できますか。

そのような機能を持つインターセプトプロキシはありますか?

2
spitzbuaamy

通常、中間者を演じようとしています。それを行うには多くの方法があります。

  1. 簡単な方法はWiresharkを使用することです-blownie55の回答を参照してください
  2. 最近のWebブラウザーには、多くのことを示す開発者ツールが付属しています。 (ChromeでF12を押します)
  3. ゲートウェイでのパケットダンプ。 -クライアントからパケットを収集し、秘密鍵を使用してそれらを復号化します(かなり難しいが、実行可能)。
  4. ゲートウェイでのポートクローニングまたはポートミラーリング-ゲートウェイは、ルーター/スイッチの特定のポート(ポートAなど)からすべてのトラフィックを、選択した別のポート(ポートBなど)に転送するだけです。プライベートを使用してポートBからのトラフィックを復号化します。キー。
  5. Webプロキシ-これは次の方法で実現できます。

    • サーバーとクライアントの両方の秘密鍵を使用してWebプロキシを設定します。これにより、プロキシはクライアントと副サーバーにとってサーバーのように見えます。
    • 次に、Webプロキシを介してトラフィックをルーティングする必要があります(クライアントでホストファイルを使用するなど)。 -ゲートウェイがWebプロキシでもある場合は、この手順を実行しないでください。
1
JOW

すべてのエンドポイントを対象とし、ブラウザによって信頼されている新しい証明書を作成する必要があります。プロキシは、真正な証明書ではなくその証明書を配信して、中間者を作成します。

トラフィックは、ブラウザーとプロキシの間の偽の証明書を使用して暗号化され、プロキシとエンドポイントの間の正規の証明書を使用して再暗号化されます。

これを行うサービスは確かにあります 例えばソフォス が持っています。

0
Julian Knight

WireShark キー交換にRSAを使用する場合のsslトラフィックのインターセプトをサポートしますが、現在は Perfect Forward Secrecy、 を使用しているユーザーが使用している場合、Firefoxまたはクロム。それを取得し、wiresharkを使用してトラフィックを復号化する方法については、この link を参照してください。

Perfect Forward Secrecyを使用していない場合は、簡単です。それを使用していて、クライアントがChromeまたはFirefox以外の場合)、クライアントからセッションキーを取得する方法をさらに掘り下げる必要があります(それを制御している場合) )

0
ARau