¿Cómo compruebo que tengo una conexión SSL directa con un sitio web?

11

Siempre pensé que si tuviera una conexión SSL no habría ataques MITM. Ahora parece que no es cierto (vea los comentarios en esta pregunta ¿Está bien desde una perspectiva de seguridad leer cookies extranjeras (no confiables) en una red de confianza? )

Todavía no estoy seguro de cómo funciona y si cada navegador necesita instalar un certificado, pero suena como un proxy en su conexión LAN o bien redirige el dominio (probablemente no lo entendí bien) o usa un certificado alternativo (¿no es así? ¿Debo coincidir con el dominio? Todavía estoy confundido).

¿Sería posible verificar si estoy conectado al sitio verdadero? También sería útil si puede explicar cómo el proxy puede crear un certificado válido para un dominio para el que no tiene el certificado / claves reales. (Sé que se trata de dos preguntas, pero ambas pueden explicarse mediante una respuesta).

    
pregunta Community 06.05.2012 - 23:29
fuente

3 respuestas

8

Para verificar que está hablando con el servidor remoto que desea directamente, se requieren dos puntos:

Lo que constituye que el servidor remoto depende del proveedor de servicios. Estás confundiendo varios tipos de servidores proxy aquí.

  • Hay servidores proxy HTTP normales que se pueden usar para conexiones HTTPS. Esto se hace usando el verbo HTTP CONNECT y todo el tráfico SSL / TLS entre el navegador y el servidor de destino simplemente es retransmitido por el servidor proxy. En lo que respecta a la conexión SSL / TLS, esto es aproximadamente equivalente al enrutamiento IP: el proxy no verá nada.

  • Hay servidores proxy inversos HTTP. Esto es lo que se explica en la pregunta a la que se vincula . Sin embargo, la solicitud se maneja internamente y depende del proveedor del servicio.

    De la misma forma que para las conexiones de base de datos , puede ser útil para el proveedor del servicio proteger su interna. Tráfico HTTP mediante SSL / TLS, si las solicitudes son atendidas por nodos de trabajo HTTP. En este caso, el nodo principal del equilibrador de carga / proxy inverso será el cliente de esos servidores web internos.

    En lo que a usted respecta, el "sitio verdadero" es el nodo principal / proxy inverso. https://www.google.com/ ciertamente tiene más de una caja para manejar las solicitudes que recibe. En lo que a usted respecta, el grupo completo que hay detrás es la máquina (grande).

  • Servidores proxy MITM. Algunos servidores proxy HTTP podrán ver el tráfico HTTP (por ejemplo, Squid + SSL Bump ). Para ello, volverán a generar un certificado utilizando su propia Autoridad de Certificación sobre la marcha. Dichos certificados fallarán en la validación en su navegador (paso 1 anterior), a menos que su máquina haya sido configurada explícitamente para confiar en esta CA local.

respondido por el Bruno 07.05.2012 - 15:05
fuente
5

Si está utilizando un proxy SSL, debe estar configurado específicamente para confiar en el proxy. El proxy utiliza un certificado comodín, por lo que su navegador aceptará su certificado para cualquier sitio. Obviamente, el uso de un proxy SSL en el que no confías completamente es una muy mala idea.

Los proxies HTTP normales pueden hacer proxy SSL, pero solo copian los datos, no pueden cambiarlos ni descodificarlos. Todavía ves el certificado normal del sitio.

Si está preocupado por la poca seguridad del lado del sitio web, no hay nada que pueda verificar o hacer al respecto. Tienen derecho a descifrar todos los datos que elijas enviarles. Si no lo protegen, no hay nada que puedas hacer al respecto. Si están utilizando un proxy internamente para ser el punto final de SSL, es su responsabilidad mantener seguros los datos descifrados en su red interna. No hay nada que puedas hacer si comprometen los datos. Se supone que deben poder manejar los datos descifrados como quieran.

SSL solo protege los datos entre los dos puntos finales de SSL.

    
respondido por el David Schwartz 07.05.2012 - 02:02
fuente
3

La única forma en que un proxy puede actuar como un intermediario (asumiendo que el cliente y el servidor implementan correctamente una versión no rota del protocolo SSL / TLS, y que las autoridades de certificación hacen su trabajo correctamente ) es si su navegador confía en el proxy. Esto se debe a que al inicio de la conexión, el cliente valida que el otro extremo tenga un certificado válido generado por una autoridad de certificación reconocida.

Puede haber un proxy entre el cliente y el servidor. Esto es común en las redes empresariales, por ejemplo, que a menudo no tienen una conexión directa entre los hosts internos e Internet. Pero el proxy solo puede intercambiar bytes de ida y vuelta. No puede saber, y mucho menos modificar, el contenido. Puede saber a qué dirección IP se está conectando, pero no a qué URL está navegando.

Entonces, ¿qué puede salir mal? Si su navegador reconoce una CA que está dispuesta a firmar que proxy.example.com es el servidor al que el cliente intenta conectarse, entonces proxy.example.com puede establecer su propia conexión con el servidor, y la conexión del cliente puede redirigirse de forma visible o transparente al proxy. Entonces el proxy es un hombre en el medio.

Algunas redes empresariales configuran a todos los clientes para que confíen en la propia autoridad de certificación de la empresa e imponen un proxy que reescribe todas las conexiones SSL. El cliente ve que cada sitio tiene un certificado firmado por la CA de la empresa. Como todos los certificados tienen una firma válida, no lo notará en el uso diario. La forma de averiguar si esto está sucediendo (suponiendo que el navegador no haya sido alterado, solo su lista de certificados) es verificar quién firmó un certificado en particular, o buscar en la lista de autoridades de certificados de confianza.

    
respondido por el Gilles 07.05.2012 - 02:53
fuente

Lea otras preguntas en las etiquetas