Sun Java System Web Proxy Server 4.0.4 管理ガイド

Proxy Server を介した SSL のトンネリング

Proxy Server (プロキシ) を順方向に実行していて、クライアントがセキュリティー保護されたサーバーに対してプロキシ経由の SSL 接続を要求した場合、プロキシは、セキュリティー保護されたサーバーへの接続を開き、セキュリティー保護されたトランザクションには介入せず、データを双方向にコピーします。このプロセスは、SSL トンネリングとして知られています。概要を次の図に示します。

図 5–1 SSL 接続

クライアントからセキュリティー保護されたサーバーに対するプロキシサーバー経由の SSL 接続を示す図

HTTPS URL で SSL トンネリングを使用するには、クライアントが SSL と HTTPS の両方をサポートしている必要があります。HTTPS は、SSL と通常の HTTP を使用して実装されます。HTTPS をサポートしないクライアントでも、Proxy Server の HTTPS プロキシ機能を使用して、HTTPS ドキュメントにアクセスできます。

SSL トンネリングは、アプリケーションレベル (HTTPS) には影響を及ぼさない、下位レベルのアクティビティーです。SSL トンネリングは、プロキシ機能のない SSL と同じぐらいセキュリティー保護されています。間に Proxy Server が存在することで、セキュリティーが危険にさらされたり、SSL の機能が低下したりすることはありません。

データストリームは SSL を使用して暗号化されるため、プロキシは、実際のトランザクションにはアクセスできません。そのため、アクセスログでは、リモートサーバーから受け取った状態コードや、ヘッダー長を表示することができません。また、このプロセスにより、プロキシやサードパーティーのプロキシは、トランザクションを傍受できません。

プロキシがデータを見ることはないため、クライアントとリモートサーバーの間で使用されているプロトコルが SSL であることは確認できません。つまり、プロキシは、その他のプロトコルでやり取りされることを防ぐことができない、ということでもあります。Internet Assigned Numbers Authority (IANA) によって割り当てられている一般的な SSL ポートだけ、つまり、HTTPS の場合はポート 443、SNEWS の場合はポート 563 だけに SSL 接続を制限することをお勧めします。セキュリティー保護されたサーバーがその他のポートで稼働しているサイトがある場合は、 connect://.* リソースを使用して、特定ホストのその他のポートに接続できるように、明示的な例外を設定できます。

SSL トンネリング機能は、SOCKS に似た汎用の機能で、プロトコルから独立しています。そのため、この機能をその他のサービスにも利用できます。Proxy Server は、HTTPS や SNEWS プロトコルだけでなく、SSL に対応した任意のアプリケーションの SSL トンネリングに対応できます。