女性目閉じる

疑問なんですが、HTTPSによる暗号化通信の場合、プロキシサーバはうまく処理できるのですか? 暗号化の鍵はPCとWebサーバでのみ共有されているから…
HTTPS通信の場合、PCはプロキシサーバに対し、HTTPSのセッション中継せずに、透過させるように依頼するCONNECTメソッドを使用します。
過去問(H21NW午後1問2)では、「Webメールで利用するHTTPSでは、PCは[ オ CONNECT]メソッドを利用してプロキシサーバへ接続先を指定し、SSLセッションをASPサーバとの間で確立する」と述べられている。

具体的には、H23SC秋午後橘3に、Uプロキシの動作として説明がある。
Uプロキシを利用したHTTPS通信では,暗号化された通信路をブラウザとWebサーバ間で確立する。Uプロキシを利用した場合のHTTPS通信を図3に示す。proxy2
女性口開き

そうなんですか?じゃあ、SSL通信をすれば、プロキシによるセキュリティチェック、ウイルスチェックなどは無しということ?
結構危険ですね。
最近の製品では、HTTPS通信であっても、きちんと中継する製品が多い。この仕組みを実現するには、プロキシサーバで、代理のサーバ証明書を提示する。場合によっては、PC側でブラウザによるセキュリティ警告がでる可能性がある。
詳しくはこの問題にチャレンジいただきたい。
一方,  Lプロキシを利用したHTTPS通信では,ブラウザとLプロキシ間,及びLプロキシとWebサーバ間において,それぞれ独立の暗号化された通信路を確立する。Lプロキシは証明書1を受け取ると,ブラウザには転送せずに,自身で証明書1の検証を行う。次に,   Lプロキシは認証局として証明書1と同じコモンネームのサーバ証明書(以下,証明書2という)を新たに作成し,ブラウザに送る。Lプロキシを利用した場合のHTTPS通信を図4に示す。 proxy23  

■パケットをキャプチャしてみました。
プロキシサーバに対し、GETで送るのか、CONNECTメソッドにするかの判断をするのは誰でしょうか?
少なくとも利用者である人間はそんなことをしませんよね。
やっているのはブラウザです。
では、PCからのパケットを見てみましょう。
GoogleなどのHTTPS通信の場合は、以下のようにCONNECTメソッドを使っています。
connect
一方のHTTP通信の場合は、GETなどでアクセスします。
get
■Q&A
Q.CONNECTメソッドの場合、proxyサーバはCONNECTパケットを透過させて、そのままWebサーバに転送するのですか?

A.Noです。CONNECTメソッドは、そもそもProxyサーバまでしか送られません。

Q.そもそもですが、なぜ、CONNECTメソッドを使うんでしたっけ?

A.HTTPS通信であることをProxyサーバに通知するためです。

Q.じゃあ、通知が終わったらGETやPOSTで通信するのですか?

A.まず、TLSによる暗号化処理が行われます。
その後、暗号化された通信の中で、GETやPOST通信が行われます。
ちなみにですが、暗号化されているので、GETやPOSTなどの通信をパケットキャプチャでみることはできません。

Q.ProxyサーバはHTTPS通信を透過するのであれば、PCからWebサーバに直接通信をしますか?

A.いいえ。あくまでも通信先はProxyサーバです。なので、何もしない(転送するだけ)ですが、中継処理はしています。言葉だけの問題かもしれませんが、暗号鍵はWebサーバとPCしか持っていないので、WebサーバとPC間でTLSの通信路を確立します。
以下にパケットをお見せしますが、PCの通信相手は、全てProxyサーバのIPアドレスになっています。
connect
Q.Proxyサーバで復号化する場合の流れはどうなりますか?

A.以下のシーケンスを参考にしてください。
http://nw.seeeko.com/archives/50924117.html

■CONNECTメソッドの悪用
また、ここからはセキュリティの範囲になりますが、CONNECTメソッドを悪用してセキュリティをすり抜ける例を紹介します。

まずは過去問(2018春SC午後玉2)をみてみましょう。
W氏 :プロキシサーバの設定をみると,CONNECTメソッドの悪用を防ぐ制限がなされていませんね。
Kさん:CONNECTメソッドを悪用すると,どういう問題が生じるのでしょうか。
W氏  :図3に示すように,CONNECTメソッドを悪用してトンネルを確立させることで,Webメールサーバの機能を回避できます。そして,,海硫麋鬚砲茲辰討いつかの問題が生じます
Kさん: ポート制限機能に関する設計の見直しと設定変更案を作成します。

CONNECT x1.y1.z1.4:25 HTTP/1.1
図3 CONNECTメソッドを悪用したリクエスト

ここで、下線,里いつかの問題というのは、本来するべきセキュリティチェックが行われないというものです。
この問題に即して解説します。(問題文を読んでいただくと、より状況が分かりやすいと思います)
・メールを送信するには、セキュリティチェック機能がある「Webメールサーバ」を経由する必要がある。それ以外の方法(外部メールサーバに直接や、インターネットから直接)を使って、セキュリティチェック機能を逃れようとしても、FWのポリシーでブロックされてしまっている。
・しかし、Proxyサーバへの通信はもちろん許可されている(この場合はなぜか、DMZにProxyサーバがある)。Proxyサーバ経由で上記のCONNECTメソッドを使って、外部メールサーバ(x1.y1.z1.4)に25番ポートで送信する。すると、CONNECTメソッドなので、Proxyサーバはなにもチェックせずに外部メールサーバに通信を中継していまう。→これが抜け道。
・こうして、FWのポリシーで絞られていても、社内のセキュリティチェックをすり抜けることができる。

さて、対策ですが、問題文にあるように、「ポート制限機能に関する設計の見直し」を行います。簡単にいうと、Proxyサーバで25番ポートの通信をうけないのです。

Proxyサーバ(オープンソースのSquidの場合)で、この設定をするには、設定ファイルを以下のようにします。
acl SSL_ports port 443  ←SSLのポートとして443を指定。複数指定する場合は、443 25 21などと複数ポートを並べて指定
http_access deny CONNECT !SSL_ports ←指定した上記のポート以外はCONNECTメソッドの使用を禁止
こう指定することで、HTTPSである443の通信以外のCONNECTメソッドによる通信を禁止します。

スポンサードリンク