¿Por qué es posible detectar una solicitud HTTPS / SSL?

46

Soy nuevo en el ámbito de las solicitudes y la seguridad HTTP y todas esas cosas buenas, pero por lo que he leído, si quieres que tus solicitudes y respuestas estén encriptadas, usa HTTPS y SSL, y serás bueno. Alguien en una pregunta anterior publicó un enlace a esta aplicación enlace que muestra que en realidad es posible detectar solicitudes HTTPS y ver la solicitud y la respuesta en texto PLAIN.

Intenté esto con el inicio de sesión de facebook.com, y pude ver mi nombre de usuario y contraseña en texto sin formato. Fue también fácil. ¿Que esta pasando? Pensé que ese era el punto central de HTTPS: ¿para cifrar solicitudes y respuestas?

    
pregunta bitmoe 01.09.2012 - 14:58
fuente

2 respuestas

57

Esto se explica en su página en proxy SSL , tal vez no con suficientes explicaciones.

Un proxy es, por definición, un man-in-the-middle : el el cliente se conecta al proxy y el proxy se conecta al servidor.

SSL hace dos cosas:

  • Asegura la confidencialidad e integridad de la conexión establecida.
  • Realiza una verificación de a quién te estás conectando.

Es la segunda parte que es importante, y aparentemente está rota, aquí: estás sentado en tu navegador y sorprendido de que tu navegador se conecte al proxy, mientras que esperas que se conecte a Facebook. Técnicamente, el proxy no está olfateando el tráfico HTTPS, lo está retransmitiendo.

Su navegador sabe que está conectado a Facebook porque el sitio tiene un certificado que dice "I'm really www.facebook.com ". Criptografía de clave pública , por el hecho de que no entraré aquí, garantiza que solo el titular de la clave privada Puede iniciar una conexión válida con este certificado. Eso es solo la mitad de la batalla: solo tienes la afirmación del servidor de que realmente es www.facebook.com y no randomhijacker.com . Lo que hace su navegador es además verificar que el certificado haya sido validado por una autoridad de certificación . Su navegador o sistema operativo viene con una lista de autoridades de certificación en las que confía. Una vez más, la criptografía de clave pública garantiza que solo la CA puede emitir certificados que su navegador aceptará.

Cuando te conectas al proxy, tu navegador recibe un certificado que dice "Realmente soy www.facebook.com ". Pero este certificado no está firmado por una CA en la que su navegador confía de forma predeterminada. Entonces:

  • o bien recibió una advertencia sobre una conexión HTTPS insegura, en la que hizo clic para ver la concentración en https://www.facebook.com/ ;
  • o usted agregó la CA que firmó el certificado del proxy ("Certificado de CA de Charles" ) a su lista de CAs en las que confía su navegador.

De cualquier manera, le dijiste a tu navegador que confiara en el proxy. Así lo hace. Una conexión SSL no es segura si empiezas a confiar en extraños aleatorios.

Lectura recomendada para más información:

respondido por el Gilles 01.09.2012 - 16:21
fuente
1

No puede interrumpir enlace a menos que tenga acceso a la sesión key simétrico . En resumen, las sesiones de enlace funcionan de esta manera:

  1. El cliente y el servidor intercambian información inicial
  2. Usando esta información, el cliente puede autenticar el servidor , asegurándose de que valga la pena de confianza
  3. El cliente utiliza la clave pública del servidor para enviarle un secreto cifrado
  4. El servidor descifra este secreto usando su clave privada (¡solo el servidor autenticado puede hacer eso!)
  5. Tanto el cliente como el servidor usan el secreto para generar localmente la clave simétrica de la sesión
  6. Ahora pueden hablar entre ellos de manera segura porque nadie más conoce la clave simétrica de su sesión

Si, de algún modo, un tercero puede obtener acceso al secreto compartido, también podrá generar la clave simétrica de la sesión y descifrar la comunicación.

    
respondido por el Thomas C. G. de Vilhena 01.09.2012 - 15:38
fuente

Lea otras preguntas en las etiquetas