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는 일반 HTTP에 SSL을 사용하여 구현됩니다. HTTPS 지원이 없는 클라이언트도 Proxy Server의 HTTPS 프록싱 기능을 사용하여 HTTPS 문서에 액세스할 수 있습니다.

SSL 터널링은 응용 프로그램 수준(HTTPS)에 영향을 미치지 않는 더 낮은 수준의 작동입니다. SSL 터널링은 프록싱이 없는 SSL만큼 안전합니다. 사이에 프록시가 있어도 보안이 손상되거나 SSL 기능이 저하되지 않습니다.

SSL을 통해 데이터 스트림이 암호화되므로 프록시가 실제 트랜잭션에 액세스할 수 없습니다. 따라서 액세스 로그가 원격 서버에서 수신된 상태 코드나 헤더 길이를 나열할 수 없습니다. 또한 이 프로세스를 통해 프록시 또는 다른 제 3자가 트랜잭션을 도청하는 것을 방지할 수 있습니다.

프록시는 데이터를 볼 수 없으므로 클라이언트와 원격 서버 사이에 사용되는 프로토콜이 SSL인지 확인할 수 없습니다. 따라서 프록시도 다른 프로토콜이 통과되는 것을 차단할 수 없습니다. IANA(Assigned Numbers AuthorityIANA)에 의해 할당된 HTTPS용 포트 443 및 SNEWS용 포트 563과 같이 잘 알려진 SSL 포트로만 SSL 연결을 제한해야 합니다. 다른 포트에서 보안 서버를 실행하는 사이트가 있는 경우 connect://.* 자원을 사용하여 명시적으로 예외를 지정하여 특정 호스트에 있는 다른 포트에 대한 연결을 허용할 수 있습니다.

SSL 터널링 기능은 실제로 프로토콜에 독립적인 일반 SOCKS의 기능과 유사하기 때문에 다른 서비스에도 이 기능을 사용할 수 있습니다. 프록시 서버는 HTTPS 및 SNEWS 프로토콜뿐만 아니라 SSL을 지원하는 모든 응용 프로그램에 대한 SSL 터널링을 처리할 수 있습니다.