프록시 서버에서 HTTPS 요청을 캐시 할 수있는 방법이 있습니까?


12

우리는 환경에서 Squid 프록시 서버를 사용하고 있으며 HTTPS 요청을 캐시하려고합니다.

HTTPS 요청을 캐시하도록 Squid 또는 일반적으로 프록시 서버를 구성 할 수있는 방법이 있습니까?


이것은 아마도 security.se에 속할 것입니다
Tom O'Connor

1
분명히, 당신은 당신의 자신의 서버 앞에서 오징어를 사용하고 있습니까, 아니면 워크 스테이션과 인터넷 사이에서 사용합니까?
Zoredache

다시 한번 확인하기 위해. 요청 또는 응답을 캐시 하시겠습니까?
Gqqnbig

답변:


12

방법이 있지만 기본적으로 HTTPS를 사용하는 이유와는 다릅니다.

방법은 다음과 같습니다.

  1. 요청을 가로 채고 캐시하려는 사이트에 대해 자체 서명 된 SSL 인증서를 생성하십시오.
  2. 프록시 서버에 stunnel을 설치하고 실행하여 인증서가 1 단계에서 생성 된 인증서임을 알려줍니다.
  3. 해독 된 요청을 오징어에 전달합니다.
  4. 요청을 업스트림 서버로 다시 암호화하려면 반대쪽에 stunnel이 있거나 openssl_client가 필요할 수 있습니다.

주의 사항 :

  1. 당신의 사용자는 당신을 미워할 것입니다. 해당 사이트에 대한 모든 SSL 요청에는 잘못된 인증서 창이 표시됩니다.
  2. 당신은 장난 꾸러기 일을 할 수있는 잠재적 인 소송에 노출되고 있습니다. (아날)
  3. SSL 인증서에 대한 PKI 신뢰 웹의 작동 방식으로 인해 자체 서명 된 인증서 만 얻을 수 있습니다. 손상된 루트 CA에 대해서는 아무 말도하지 않습니다.

a) 다소 비 윤리적이라고 생각하고 b) 그렇게하는 방법을 배우는 것이 더 낫기 때문에이 작업을 수행하는 방법에 대한 정확한 세부 정보는 제공하지 않겠 습니다.

stunnel과 man-in-the-middle 공격이 어떻게 작동하는지 연구 해 보시기 바랍니다.


Trustwave zdnet.com/… 에 루트 인증서를 판매 하도록 요청 하면 사용자에게 불편 을주지 않고이 솔루션을 구현할 수 있습니다 . : P
Rory

2
실제로 도메인에있는 경우 자체 CA를 생성하고 그룹 정책으로 공용 인증서를 배포하는 것이 훨씬 쉽습니다.
Tom O'Connor

1
SSC + MITM을 신뢰하면 프로토콜 디버깅, 캐싱, 심층 패킷 검사 및 검열 / 로깅에 유용합니다. : / 그 이유 외에는 좋지 않습니다.

6

MITM없이이 작업을 수행 할 수없는 이유를 설명하기 위해 프록시는 암호화 된 HTTPS를 사용할 때 연결하려는 서버의 DNS 이름 만 볼 수 있습니다. URL이나 응답 헤더가 표시되지 않습니다. 사이트에서 액세스하는 개별 리소스, 캐시 가능 여부 또는 수정 시간은 확인할 수 없습니다. 누군가가 HTTPS를 사용하여 원격 서버에서 무언가를 원한다는 것을 알 수 있습니다.

이는 프록시가 어떤 캐시 된 객체를 제공하는지 또는 처음에 객체를 얻는 방법을 알지 못하므로 캐싱이 작동하지 않음을 의미합니다.


5

아니요, 암호화되지 않았습니다 ... 해결 방법은 중간자 배포와 같지만 https 뒤에있는 모든 이유를 극복 할 수 있습니다.


1
이를 달성하거나 프록시 서버가 암호를 해독하고 캐시하도록 강제하는 해결 방법이 없습니까?
Supratik

해결 방법은 다소 man-in-middle배치 를 재개하는 것이지만 https의 모든 이유를
무시할 것입니다.

5
나는 그것이 https의 모든 이유를 물리 칠 것이라고 동의하지 않는다. 집에서이 작업을 수행하고 프록시를 소유 한 경우 데이터는 프록시와 웹 사이트간에 https를 계속 사용합니다.
brunoqc

@brunoqc는 VPN의 일입니다.
yrk

1
어떤 이유로 https 페이로드 캐싱이 중요하거나 https 세션을 디버깅하는 경우 MITM이 매우 유용합니다. 실제로 이것은 Charles가 작동하는 방식입니다.

1

Zeus (Now Riverbed 's) ZTM Traffic Manager는 http 및 https 트래픽을 양방향으로 변환하고 암호화되지 않은 컨텐츠를 캐시 할 수 있기 때문에이 작업을 수행 할 수 있습니다.


5
그러나 여전히 클라이언트에 새로운 루트 인증서를 설치해야합니까? 그리고 당신은 여전히 ​​프록시를 신뢰해야합니까?
phihag
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.