¿Se pueden ver las URL durante las transacciones HTTPS a uno o más sitios web desde una única IP?

58

Por ejemplo, supongamos que las siguientes son direcciones URL HTTPS a dos sitios web por una dirección IP durante 5 minutos: "A.com/1", "A.com/2", "A.com/3", "B.com/1", "B.com/2".

El monitoreo de paquetes revelaría:

  • nada,
  • revelar solo la IP que ha visitado "A.com" y "B.com" (es decir, solo DNS),
  • revelar solo que la IP ha visitado "A.com/1" y "B.com/1" (la primera solicitud de HTTPS para cada sitio),
  • revelar una lista completa de todas las URL de HTTPS visitadas,
  • solo revela las IP de "A.com" y "B.com",
  • o algo más?

Pregunta relacionada: ¿puede mi empresa ver a qué sitios HTTPS visité? ?

Si bien esta pregunta tiene información adicional, por lo que puedo decir, no aborda específicamente el escenario de "revelar solo que el IP ha visitado" A.com/1 "y" B.com/1 " (la primera solicitud de HTTPS para cada sitio) "- aunque existe una gran posibilidad de error al respecto, y me complace eliminar la pregunta si es un duplicado.

NOTA: Esta es una pregunta de seguimiento para un respuesta que se publicó como: ¿Por qué HTTPS no es el protocolo predeterminado?

    
pregunta blunders 06.06.2011 - 14:22
fuente

3 respuestas

69

TLS revela a un intruso la siguiente información:

  • el sitio con el que se está contactando
  • la longitud (posiblemente aproximada) del resto de la URL
  • la longitud (posiblemente aproximada) del HTML de la página que visitó (suponiendo que no esté en caché)
  • el número (posiblemente aproximado) de otros recursos (por ejemplo, imágenes, iframes, hojas de estilo CSS, etc.) en la página que visitó (suponiendo que no estén en caché)
  • la hora a la que se envía cada paquete y se inicia cada conexión. (@nealmcb señala que el intruso aprende a lot sobre el tiempo: la hora exacta en que se inició cada conexión, la duración de la conexión, la hora en que se envió cada paquete y la hora en que se envió la respuesta, el tiempo para que el servidor responda a cada paquete, etc.)

Si interactúas con un sitio web haciendo clic en los enlaces en serie, el intruso puede ver cada uno de estos por cada clic en la página web. Esta información se puede combinar para tratar de inferir qué páginas está visitando.

Por lo tanto, en su ejemplo, TLS solo revela A.com vs B.com, porque en su ejemplo, el resto de la URL tiene la misma longitud en todos los casos. Sin embargo, su ejemplo fue mal elegido: no es representativo de la práctica típica en la web. Por lo general, las longitudes de las URL en un sitio en particular varían y, por lo tanto, revelan información sobre la URL a la que está accediendo. Además, la longitud de la página y la cantidad de recursos también varían, lo que revela aún más información.

Se han realizado investigaciones que sugieren que estas fugas pueden revelar información importante a los oyentes sobre qué páginas está visitando. Por lo tanto, debe no asumir que TLS oculta qué páginas está visitando de un interceptor. (Me doy cuenta de que esto es contrario a la intuición).

Agregado: Aquí hay citas de algunas investigaciones en la literatura sobre análisis de tráfico de HTTPS:

respondido por el D.W. 07.06.2011 - 21:02
fuente
18

La segunda opción. Sobre todo.

Cuando un navegador visita un sitio web HTTPS, establece un túnel TLS , que implica un intercambio de claves asimétrico (cliente y el servidor acuerda un secreto compartido). Ese mecanismo de intercambio de claves utiliza la clave pública del servidor, que el servidor muestra como parte de su certificado. El certificado del servidor contiene el nombre del servidor (por ejemplo, A.com ) y el cliente verifica que el nombre coincida con el que espera (es decir, el nombre del servidor en la URL). El certificado del servidor se envía, fatalmente, antes del intercambio de claves, por lo tanto, a simple vista.

El resto de la URL se envía como parte de la solicitud HTTP que se produce dentro del túnel cifrado, por lo que es invisible para terceros. Un túnel determinado puede reutilizarse para varias otras solicitudes HTTP, pero (por construcción) son todas para el mismo servidor (el mismo nombre de dominio).

    
respondido por el Thomas Pornin 06.06.2011 - 15:11
fuente
-3

Esta es en realidad una pregunta vaga. Esta es la razón por. Cuando accede a un servidor https, http (verve aquí que https es solo http sobre TLS) es una capa más alta que TLS que se ejecuta debajo. Lo primero que se hace es negociar la configuración de TLS, como la suite de cifrado, las claves, el protocolo de enlace, etc. Esto se hace en el puerto https pero todavía no hay datos http. Luego, el cliente o el servidor cambia al modo de cifrado donde todo está cifrado.

Una vez finalizada esta negociación, se convierte en datos de la aplicación, que es simplemente un protocolo http antiguo como la carga útil.

Pero estos datos están cifrados, por lo que no se muestran las URL. Sin embargo, como se conoce comúnmente, la dirección IP del servidor y del cliente NO están cifradas porque no se utiliza en la capa TLS sino en la capa IP que está por debajo de TLS y este es un nivel inferior. TLS es la carga útil del paquete IP que contiene la dirección IP, el número de puerto, el protocolo IP como tcp, etc. como encabezados. Por lo tanto, debido a que solo TLS está cifrado, estos elementos no están cifrados.

Además, las escuchas ilegales no son un problema siempre que el certificado del cliente y / o del servidor se pueda "vincular" a la autoridad raíz o tenga un certificado válido.

Finalmente, me gustaría decir que TLS y, por lo tanto, HTTPS son en realidad un marco y algoritmo para negociar el nivel de seguridad más alto, según las preferencias del cliente y el servidor y los marcos mínimos soportados. Básicamente, TLS no define el cifrado real utilizado. Estas son suites de cifrado que normalmente están reguladas en una configuración de tipo RFC separada del protocolo TLS. Por lo tanto, basado solo en HTTPS, no es suficiente decir la calidad de la seguridad en las áreas que proporciona. Sólo se puede asumir una mínima seguridad y dificultad. La calidad real de las suites de cifrado es una pregunta compleja y específica para cada tipo, porque hay muchos que dependen de mecanismos completamente diferentes.

Editar También se me ha informado que la extensión de TLS del Indicador de nombre de servidor (utilizada para varios servidores que comparten una dirección IP) le dice fácilmente a cualquiera el nombre de dominio del servidor al que se accedió. Solo en los primeros mensajes enviados al servidor, un campo contendrá el texto ASCII del nombre de dominio como "google.com". Así que esta información es fácilmente vista por cualquiera que esté monitoreando el primer paquete. Esta es una opción que es común entre muchos anfitriones de sitios web en estos días. Pero ninguna URL debe ser sin garantía.

Finalmente, realmente depende de las demandas de cifrado, no todas son iguales, como el conjunto de cifrado predeterminado que no es cifrado. Entonces, cualquiera vería http sin formato si su navegador y el sitio web están configurados para admitir esas demandas. Por lo tanto, dependiendo de su navegador web y del servidor, desde la dirección IP, a la dirección IP y al nombre del dominio (TLS con la extensión SNI, a veces puede resolverse de otra manera, lo cual es menos fácil), para Todo en algunos otros casos dependiendo de las fortalezas de los trajes de cifrado.

    
respondido por el marshal craft 13.01.2018 - 05:21
fuente

Lea otras preguntas en las etiquetas