2017-01-14 24 views
0

クライアントからCONNECTメソッドを受け取った後にhttpプロキシによって実行されるsslトンネリングプロセスを巡って私の頭を覆そうとしています。HTTPプロキシSSLトンネリングリレーの詳細

スタッフ私が見つけたり、ドキュメント、ブログ、RFCで理解するように見えることはできません。

1)トンネルを設定するときに、クライアント・プロキシとプロキシ先の二つの別々の接続またはちょうどからの2つの接続があります全く同一の?例えば。 client-proxyとproxy-destinationの間のTCPハンドシェイクはありますか?

2)sslハンドシェイクを開始するとき、どのノードがクライアントによってターゲットに設定されていますか(IPアドレス/ホスト名)?プロキシまたは宛先ホスト? sslは認証作業を行うためにポイントツーポイント接続を必要とするため、私の感覚は宛先ホストでなければならないと私に伝えます。しかし、それは、宛先ホストがクライアントの観点から(直接的に)アクセスできない(したがって、プロキシ)ため、意味をなさないでしょう。

答えて

1

トンネルを設定する場合、client-proxyとproxy-destinationの2つの接続は2つの別々の接続か、まったく同じですか?例えば。 client-proxyとproxy-destinationの間のTCPハンドシェイクはありますか?

クライアントはプロキシとのTCP接続を確立するため、プロキシがサーバーと別のTCP接続を確立する以外の方法はありません。既存のTCP接続を変更して別のIP:ポートに接続する方法はありません。

sslハンドシェイクを開始するとき、どのノードがクライアントによってターゲットに設定されていますか(IPアドレス/ホスト名)?プロキシまたは宛先ホスト?

SSLハンドシェイクは、プロキシではなく宛先ホストで行われます。

SSLは、認証

それは、ポイント・ツー・ポイント接続を必要としません作るためのポイントツーポイント接続を必要とするので。プロキシが単にデータを転送する場合、クライアントとサーバーの間ですべてのデータが変更されずに交換される必要があります。

+0

クライアントの観点から、そのノードをルーティング不可能にする必要があるので、クライアントが宛先ホストとのsslハンドシェイクをどのように実行できるのかは本当に分かりません。プロキシはルータの機能を果たしていますか?私はこれを取得していないようです:/ – Marc

+0

@Marc:自分自身を引用する:*プロキシが単にデータを転送するとき*。はい、プロキシはデータを転送しますが、それはルータとして機能しません。ルータはパケットをネットワークレイヤで転送し、プロキシはセッションレイヤでパケットコンテンツを転送します。[OSIモデル](https://en.wikipedia.org/wiki/OSI_model)を参照してください。しかし、TLSハンドシェイクでは、パケットの内容だけが適切です。 –

+0

OK、私は今それを得ると思います。したがって、sslハンドシェイクを開始するとき、クライアントはclienthelloメッセージを、すでに開いているクライアントプロキシ間のtcp cxnに置きます。それがプロキシに到着すると、プロキシ宛先との間で既に開かれているtcp缶上でそれを中継する。正しい? – Marc