2012-04-30 15 views
0

특정 웹 사이트에 https 요청을 수행하려고하지만 중간에 프록시가 있다고 가정 해 봅시다.프록시를 사용하여 https 요청

위 프록시는 요청을 조사하지 않고 사용자 에이전트가 HTTP 연결 메소드 (http://www.web-cache.com/Writings/Internet-Drafts/draft-luotonen-web-proxy-tunneling-01.txt에서와 같이)를 사용한 후에 실제 HTTPS 서버로 모든 트래픽을 릴레이합니다.

이제 내 질문은 다음과 같습니다. 프록시가 대상 웹 서버에 대한 SSL 연결을 연 후 SSL을 사용하여 클라이언트와의 연결을 처리하는 소켓도 업그레이드해야합니까? 그렇다면 실제 콘텐츠를 스니핑하지 않고 서버에 패킷을 전달하는 방법은 무엇입니까?

프록시가 실제로 SSL 클라이언트 소켓에서 데이터를 읽고이를 SSL 서버 소켓으로 전달하면 데이터가 암호화되지 않습니다.

답변

3

프록시에는 CONNECT 명령을 수신 한 클라이언트에 대해 일반 텍스트 연결이 열려 있습니다. 서버에 대한 일반 텍스트 연결을 엽니 다. 그 후에 바이트를 양방향으로 복사합니다. 클라이언트와 서버 모두에서 오는 바이트는 SSL이므로 프록시가 암호문 내부의 내용을 알지 못하는 경우에도 작동합니다.

+1

작은 메모 : "평문"이 아니라 "불분명 한 데이터"라고 평범한 텍스트는 가독성을 전제로합니다. –

+0

@ EugeneMayevski'EldoSCorp 나는 동의하지 않는다. OP의 관점에서 보면 plaintext (SSL이 없음)와 ciphertext (SSL)의 두 가지 종류의 TCP 연결이 있습니다. – EJP

+1

그것은 주관적 관점에서입니다 :). 실제로 CONNECT 요청 이후의 모든 것은 불투명 한 데이터로 처리됩니다 (RFC 2817, 섹션 8.2). –

관련 문제