¿Hay alguna forma de almacenar en caché las solicitudes HTTPS en un servidor proxy?


12

Estamos utilizando el servidor proxy Squid en nuestro entorno y queremos almacenar en caché las solicitudes HTTPS.

¿Hay alguna forma de configurar Squid o, en general, un servidor proxy para almacenar en caché las solicitudes HTTPS?


Esto probablemente pertenece a security.se
Tom O'Connor

1
Para ser claros, ¿estás usando squid frente a un grupo de tus propios servidores, o lo estás usando entre tus estaciones de trabajo e Internet?
Zoredache

Solo para aclarar. ¿Desea almacenar en caché las solicitudes o respuestas?
Gqqnbig

Respuestas:


12

Hay una manera de hacerlo, pero es fundamentalmente en contra de las razones para usar HTTPS.

Así es como lo harías.

  1. Genere un certificado SSL autofirmado para el sitio desde el que desea interceptar y almacenar en caché las solicitudes.
  2. Instale y ejecute stunnel en su servidor proxy, diciéndole que el certificado que debe presentar es el generado en la etapa 1.
  3. Haga que las solicitudes descifradas se envíen al calamar.
  4. Es posible que necesite tener stunnel en el otro lado, o openssl_client para volver a cifrar la solicitud en el servidor ascendente.

Advertencias:

  1. Tus usuarios te odiarán. Cada solicitud SSL a ese sitio presentará una ventana de certificado no válida.
  2. Te expones a potenciales demandas por hacer cosas malas. (IANAL)
  3. Solo podrá obtener un certificado autofirmado que funcione para esto, debido a cómo se supone que funciona la red de confianza PKI para certificados SSL. Sin decir nada sobre las CA raíz comprometidas.

No voy a darte los detalles exactos de cómo hacer esto, porque a) creo que es algo poco ético, yb) es mejor que aprendas cómo hacerlo.

Le sugiero que investigue cómo funcionan los ataques de aturdimiento y de hombre en el medio.


Puede solicitar a Trustwave zdnet.com/… que le venda un certificado raíz para que pueda implementar esta solución sin molestar a sus usuarios: P
Rory

2
En realidad, si está en un dominio, es mucho más fácil generar su propia CA e implementar los certificados públicos con la Política de grupo.
Tom O'Connor

1
Confiar en un SSC + MITM es útil para la depuración de protocolos, el almacenamiento en caché, la inspección profunda de paquetes y la censura / registro. : / Aparte de esas razones, no tan bueno.

6

Solo para explicar por qué esto no se puede hacer sin MITM: un proxy solo ve el nombre DNS del servidor al que desea conectarse cuando usa HTTPS encriptado. No ve la URL ni los encabezados de respuesta. No puede determinar a qué recurso individual está accediendo en un sitio, si es o no almacenable en caché, ni cuáles son sus tiempos de modificación. Todo lo que puede ver es que alguien quiere algo de un servidor remoto usando HTTPS.

Esto significa que el almacenamiento en caché no puede funcionar ya que el proxy no sabe qué objetos almacenados en caché debe proporcionarle ni cómo obtenerlos en primer lugar.


5

No, no hay: están encriptados ... Una solución alternativa sería algo así como un despliegue de hombre en el medio , pero eso anularía todas las razones detrás de https .


1
¿No hay una solución alternativa para lograr esto o forzar al servidor proxy a descifrar y almacenar en caché?
Supratik

Una solución sería algo que se parezca a la man-in-middleimplementación, pero eso vencería todas las razones detrás de https
yrk

55
No estoy de acuerdo con que derrote todas las razones detrás de https. Si hace esto en casa y es propietario del proxy, sus datos seguirán usando https entre su proxy y los sitios web.
brunoqc

@brunoqc ese es el trabajo de una VPN.
yrk

1
Si el almacenamiento en caché de cargas útiles https es importante por alguna razón o para depurar una sesión https, MITM es muy útil. De hecho, así es como trabaja Charles.

1

El Administrador de tráfico ZTM de Zeus (ahora Riverbed) puede hacer esto, ya que puede traducir el tráfico http y https en ambos sentidos y almacenar en caché el contenido no cifrado: funciona, lo usamos, pero es terriblemente costoso, como en el precio de un Porsche por servidor.


55
Pero todavía requiere que instales un nuevo certificado raíz en el cliente, ¿no? Y todavía tienes que confiar en el proxy, ¿no?
phihag
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.