いつも丁寧に教えていただきまして本当にありがとうございます。
先生がおっしゃることと重複しているかもしれませんが、
「何が分かっていないか」がわかっていない 「何を勘違いしているか」がわかっていない
まま質問をさせていただいたようです。
クライアント <--> Proxy <--> Webサーバ
間におけるHTTP通信(tcp:80)においては、 ProxyサーバがTCPセッションを2つ持つことは理解しておりました。 つまりルータのL3レベルでの転送動作(ルーティング)とは異なる。
でも「HTTPSの場合もProxyは2つTCPセッションを持つの?」
というところがわかっていませんでした。
すみません。。 本来なら自分で調べてから質問させて頂くべきでしたが 今日パソコンでキャプチャーしてみてHTTPS通信時のパケットの中身を 確認してみました。
Webサーバ(443番)<----->(*番)Proxy(3128番)<----->(*番)クライアント
↑このようになっていることが確認できました。 パソコン側でキャプチャしただけですので、 クライアント-Proxy間のみの確認ですが、 知りたかったのはここでしたので十分でした。
このキャプチャ結果を見たときに、
>Proxyが転送するのはパケットではなく,TCPのコネクションの中を流れるデータです。
の「データ」の意味する具体的なものが、 レイヤ4よりも上の部分=パケットのレイヤ5,6,7の部分のこと、 だとわかりました。
そして、HTTPSの場合もProxyは2つTCPセッションを持っている!
■勘違いしていたこと クライアント-Proxy間でtcp:3128を使用する(逆に言うとtcp:443を使用しない) のであれば、だれがSSLの処理(パケットの暗号化)をやるのか? クライアントがWebサーバとHTTPS通信をしたいのだから パケットの暗号化はクライアントが実施するに決まっている。
だから、クライアント-Proxy間は、tcp:443のはずだ。<--ここを勘違いしていたようです
と考えてしまっていました。
クライアント-Proxy間も、Proxy-Webサーバ間もtcp:443を使っている。 これがSSLトンネルの動作だろう。<--という勘違いとも連動していたようです
■理解できたこと1 HTTPS通信の時もProxyサーバはTCPセッションを2つ持つ。
■理解できたこと2 クライアント-Proxy間も、Proxy-Webサーバ間もプロトコルは同じHTTPSだが、 tcp の Port番号は、 3128(クライアント-Proxy間)、443(Proxy-Webサーバ間)であり、異なる。
結論として、このような理解であっているでしょうか?
More information about text formats
だいぶ、わかってきた気がいたします。
いつも丁寧に教えていただきまして本当にありがとうございます。
先生がおっしゃることと重複しているかもしれませんが、
「何が分かっていないか」がわかっていない
「何を勘違いしているか」がわかっていない
まま質問をさせていただいたようです。
クライアント <--> Proxy <--> Webサーバ
間におけるHTTP通信(tcp:80)においては、
ProxyサーバがTCPセッションを2つ持つことは理解しておりました。
つまりルータのL3レベルでの転送動作(ルーティング)とは異なる。
でも「HTTPSの場合もProxyは2つTCPセッションを持つの?」
というところがわかっていませんでした。
すみません。。
本来なら自分で調べてから質問させて頂くべきでしたが
今日パソコンでキャプチャーしてみてHTTPS通信時のパケットの中身を
確認してみました。
Webサーバ(443番)<----->(*番)Proxy(3128番)<----->(*番)クライアント
↑このようになっていることが確認できました。
パソコン側でキャプチャしただけですので、
クライアント-Proxy間のみの確認ですが、
知りたかったのはここでしたので十分でした。
このキャプチャ結果を見たときに、
>Proxyが転送するのはパケットではなく,TCPのコネクションの中を流れるデータです。
の「データ」の意味する具体的なものが、
レイヤ4よりも上の部分=パケットのレイヤ5,6,7の部分のこと、
だとわかりました。
そして、HTTPSの場合もProxyは2つTCPセッションを持っている!
■勘違いしていたこと
クライアント-Proxy間でtcp:3128を使用する(逆に言うとtcp:443を使用しない)
のであれば、だれがSSLの処理(パケットの暗号化)をやるのか?
クライアントがWebサーバとHTTPS通信をしたいのだから
パケットの暗号化はクライアントが実施するに決まっている。
だから、クライアント-Proxy間は、tcp:443のはずだ。<--ここを勘違いしていたようです
と考えてしまっていました。
クライアント-Proxy間も、Proxy-Webサーバ間もtcp:443を使っている。
これがSSLトンネルの動作だろう。<--という勘違いとも連動していたようです
■理解できたこと1
HTTPS通信の時もProxyサーバはTCPセッションを2つ持つ。
■理解できたこと2
クライアント-Proxy間も、Proxy-Webサーバ間もプロトコルは同じHTTPSだが、
tcp の Port番号は、
3128(クライアント-Proxy間)、443(Proxy-Webサーバ間)であり、異なる。
結論として、このような理解であっているでしょうか?