Huellas digitales pasivas del cliente HTTPS

7

¿Es posible realizar una huella digital pasiva de un cliente HTTPS, basado únicamente en datos visibles para una persona que escucha la red?

En otras palabras, considere un cuadro de monitoreo de red que pueda ver todos los paquetes (pero no conoce ninguna clave privada y solo monitorea el tráfico de forma pasiva). ¿Se puede inferir una estimación razonable de la versión del cliente que se está utilizando, basándose solo en lo que se ve en la traza de la red? Por ejemplo, ¿podemos adivinar qué navegador y qué versión se está utilizando en el lado del cliente?

Por supuesto, TLS encripta los datos y la carga útil, pero hay algunos valores que se envían de forma clara: el conjunto de conjuntos de cifrado sugeridos por el cliente, la fecha / hora del cliente (primeros 4 bytes de client_random ), una lista de los métodos de compresión soportados por el cliente, y una lista de extensiones TLS soportadas por el cliente, y por supuesto el orden de los valores en cada una de estas listas. ¿Hay suficiente variación aquí para inferir qué navegador está utilizando el usuario y distinguir entre la mayoría de los principales navegadores? ¿Hay suficiente para distinguir entre las versiones del navegador?

Estoy pensando en algo análogo a p0f (que hace huellas digitales del sistema operativo pasivo ), pero aquí está buscando la parte sin cifrar de una conexión HTTPS (en lugar de encabezados TCP), y aquí el objetivo es inferir el navegador / cliente HTTPS utilizado por el host del cliente (en lugar de inferir el sistema operativo utilizado por el cliente).

    
pregunta D.W. 17.06.2016 - 01:28
fuente

3 respuestas

2

Lee Brotherston habló en DerbyCon 2015 sobre Stealthier Attacks and Smarter Defending con TLS Fingerprinting - diapositivas - video .

También lanzó un código para acompañar la charla: enlace

Lo siguiente se ha tomado de su sitio web: enlace

  

Seguridad de la capa de transporte (TLS) proporciona seguridad en forma de   Encriptación a todo tipo de conexiones de red desde legítimas.   Transacciones financieras, a conversaciones privadas, y llamadas a malware.   casa. La incapacidad de un intruso para analizar este cifrado   El tráfico protege a sus usuarios, ya sean legítimos o maliciosos.   Aquellos que usan TLS operan bajo el supuesto de que aunque un   El espía puede observar fácilmente la existencia de su sesión, su   Direcciones IP de origen y destino, que el contenido en sí es seguro   e ilegible sin acceso al material de cifrado criptográfico en uno   o ambos extremos de la conexión. En la superficie esto es verdad,   Salvo cualquier defecto de configuración o vulnerabilidades explotables.   Sin embargo, utilizando la huella digital TLS, es fácil y rápido y pasivo   determine qué cliente se está utilizando y luego aplique esto   información tanto del atacante como del defensor.

     

[...]

     

FingerprinTLS

     

FingerprinTLS está diseñado para identificar rápidamente TLS conocidos   Conexiones y huellas dactilares conexiones TLS desconocidas. Se toma la entrada   ya sea a través de la red en vivo o leer un archivo PCAP. Salida para   Las conexiones reconocidas son (actualmente) en forma legible por humanos y para   huellas dactilares desconocidas en el formato JSON utilizado para la huella dactilar   definiciones.

     

Las huellas digitales que se generan se pueden exportar como una C   estructura por Fingerprintout y compilado de nuevo en FingerprinTLS para   habilitar la detección en instancias futuras.

Lee demuestra lo fácil que es hacer huellas dactilares a los clientes mediante las firmas TLS en una charla posterior que hizo en SecTor CA - enlace - asegúrese de revisar las diapositivas 66 y 69-70.

fingerprintls -i en0 -s

También muestra cómo importar nuevas firmas aquí: enlace

Otra demostración muestra cómo aprovechar Berkeley Packet Filter (BPF) de otras herramientas y marcos como Wireshark, tcpdump y / o libpcap - enlace

Finalmente, Lee analiza un pcap de muestra del videojuego Pokemon Go en un dispositivo Android: enlace

Ciertamente, los métodos más antiguos descritos por algunas de las otras respuestas aquí pueden ser relevantes, pero le sugiero que consulte el trabajo anterior. Para obtener más información sobre el trabajo que realizó SSLLabs, consulte enlace , que es un módulo de Apache para la toma de huellas dactilares del cliente SSL pasivo

    
respondido por el atdre 24.07.2016 - 08:28
fuente
0

Sí, puede realizar algunas huellas digitales del tráfico SSL. Aunque es posible que le resulte difícil tomar las huellas dactilares de un cliente, ya que la mayoría de ellas utilizará una de las bibliotecas comunes, como openssl. Por lo tanto, es posible que pueda crear huellas digitales de diferentes versiones de estas bibliotecas en lugar de curl vs firefox vs wget.

    
respondido por el wireghoul 17.06.2016 - 02:33
fuente
0

Sí. Es posible hacer huellas digitales en los clientes de esta manera. Incluso hay algunas herramientas existentes que implementan esto.

Sin embargo, parece no ser muy preciso. Puede ser capaz de reconocer un tipo de navegador principal (por ejemplo, Firefox, Chrome, Safari), pero es poco probable que sea capaz de identificar con precisión el número de versión, y cualquier huella digital obtenida de esta manera tiene una gran posibilidad de ser ambigua. Parece que a menudo habrá varios clientes que podrían ser consistentes con la traza SSL observada, y de esta manera, normalmente solo obtienes unos pocos bits de entropía.

La herramienta p0f incluye soporte para inferir el cliente TLS basado en una traza, utilizando una base de datos de huellas dactilares. Puede encontrar descripciones de cómo funciona en la página de github de SSL Labs .

El siguiente documento también analiza experimentos para hacer huellas digitales de clientes TLS de esta manera:

Martin Husák, Milan Čermák, Tomáš Jirsı́k, Pavel Čeleda. análisis de tráfico HTTPS e identificación de clientes mediante la identificación pasiva de SSL / TLS . Revista URASIP sobre Seguridad de la Información, 2016

    
respondido por el D.W. 24.06.2016 - 07:19
fuente

Lea otras preguntas en las etiquetas