2012-04-30 36 views
0

特定のウェブサイトに対してhttpsリクエストを実行したいが、途中にプロキシがあるとします。プロキシを使用したhttpsリクエスト

上記のプロキシは要求を調べませんが、ユーザーエージェントがHTTP CONNECTメソッドを使用した後に(http://www.web-cache.com/Writings/Internet-Drafts/draft-luotonen-web-proxy-tunneling-01.txtのように)実際のHTTPSサーバーにすべてのトラフィックを中継します。

私の質問は次のとおりです:プロキシが接続先のWebサーバーにSSL接続を開いた後、クライアントとの接続をSSLで処理するソケットもアップグレードする必要がありますか?もしそうなら、実際のコンテンツを盗聴することなく、どのようにパケットをサーバーに転送するのでしょうか?

プロキシが実際にSSLクライアントソケットからデータを読み取り、SSLサーバーソケットに転送すると、そのデータは暗号化されません。

答えて

3

プロキシは、CONNECTコマンドを受信したクライアントに対して公開されている平文接続を持っています。サーバーへの平文接続を開きます。その後、両方向のバイトをコピーするだけです。クライアントとサーバの両方から来るバイトはSSLであるので、これはプロキシが暗号文の中身を知ることなく動作します。

+1

ちょっと小さなメモ:私は平文ではなく、 "平文"ではなく "不透明なデータ"と読みやすくするとします。 –

+0

@ EugeneMayevski'EldoSCorp私は同意しません。 OPの観点からは、平文(SSLなし)と暗号文(SSL)の2種類のTCP接続があります。 – EJP

+1

それは主観的な観点からです:)。現実には、CONNECT要求後のすべてが不透明なデータとして扱われます(RFC 2817、セクション8.2)。 –

関連する問題