Posibilidad de detectar tráfico HTTPS en dispositivos sin instalar un certificado

23

Mi objetivo es detectar el tráfico HTTPS de algunos dispositivos digitales (AppleTV, consolas de juegos, etc.) y descifrar los paquetes HTTPS en mi red local.

No puedo encontrar una manera de usar algunas herramientas de proxy de depuración HTTPS como Charles o Fiddler, porque necesitan tener un certificado instalado en el dispositivo. No tengo acceso al sistema de archivos en el dispositivo, no puedo copiar el certificado. Pero puedo configurar el proxy del dispositivo para que apunte a mi computadora portátil o usando el punto de acceso de mi computadora portátil.

    
pregunta Yifei 04.03.2015 - 17:12
fuente

6 respuestas

40

El punto entero de SSL es su resistencia a las escuchas por parte de los ataques del hombre en el medio como el que está proponiendo. Si no puede hacer que el dispositivo cliente confíe en su certificado autofirmado, sus únicas opciones son:

  • Intercepte una solicitud HTTP inicial y nunca permita que la comunicación se actualice a HTTPS (pero esto no funcionará si el cliente va explícitamente a una URL https://... )
  • Pretenda ser el servidor con su propio certificado autofirmado, y espere que el sistema que realiza la solicitud acepte ingenuamente un certificado autofirmado (que es la toma de decisiones equivalente a un usuario que ignora las severas advertencias del navegador sobre posible ataque MITM en progreso)
  • Verifique la susceptibilidad a ataques pasados conocidos en SSL (Heartbleed, BEAST, etc.). Tenga en cuenta que es probable que esta opción sea ilegal, ya que puede requerir un ataque en el servidor (que usted no posee) en lugar de un ataque en el cliente (que posiblemente tenga)

Si tiene muchos billones de dólares disponibles para usted, puede tener otras opciones:

  • Comprometa con éxito una autoridad de certificación de confianza mundial y use su clave de firma secreta para producir certificados falsificados para su propio par de llaves
  • Compre o descubra una vulnerabilidad de seguridad de día cero en un cliente web, un servidor web o (lo más preferible) una biblioteca SSL / TLS utilizada por el cliente o servidor
  • Descubra una debilidad paralizante en algunas primitivas criptográficas subyacentes utilizadas por SSL (por ejemplo, romper AES podría ser muy útil)
  • Gastar billones de dólares en hardware de computadora para realizar ataques de fuerza bruta en comunicaciones encriptadas interceptadas

Si tiene acceso físico ilimitado al dispositivo, es casi seguro que un ataque al propio almacén de certificados de confianza del dispositivo sea más fácil que un ataque a SSL (aunque también puede ser muy difícil).

    
respondido por el apsillers 04.03.2015 - 18:06
fuente
11
  

¿Alguna sugerencia? ¿Es factible?

Debe poseer un certificado en el que el dispositivo confíe para interceptar el tráfico. Cómo se puede lograr esto depende de qué tan apropiado y abierto sea la validación del certificado en el dispositivo.

  • El dispositivo puede tener una validación de certificados con errores o inexistentes. Esto es típicamente
    • Sin validación en absoluto, en cuyo caso podría usar cualquier certificado.
    • Solo valida la cadena de confianza, pero no el nombre dentro del certificado. En este caso, puede usar cualquier certificado firmado por una CA en el que el dispositivo confíe.
  • El dispositivo tiene una verificación de certificados adecuada pero permite la instalación de anclajes de confianza personalizados. En este caso, puede crear sus propios certificados e importarlos como de confianza.
  • El dispositivo tiene una verificación de certificados adecuada pero está cerrado contra la adición de nuevas anclas de confianza. Esto es malo para usted a menos que obtenga una de las CA confiables para que firme un nuevo certificado que sea aceptable para el dispositivo. Probablemente ninguna CA lo hará.

Si esto no ayuda, puede haber algunos otros errores. Mire los problemas de SSL de los últimos años y vea si podría emplear alguno de estos errores. También puede intentar utilizar errores que no sean SSL para piratear el dispositivo y cambiar el comportamiento del software.

    
respondido por el Steffen Ullrich 04.03.2015 - 17:54
fuente
3

No, la naturaleza misma de HTTPS es que el certificado es necesario para descifrarlo. Podrías oler el tráfico, pero sería encriptado e inútil para ti.

    
respondido por el armani 04.03.2015 - 17:45
fuente
3

No. Este es el punto de SSL, para evitar este tipo de espionaje no autorizado. Para autorizar su proxy, debe decirle al dispositivo que confíe en el certificado de proxy, e indicar a los clientes del dispositivo que confíen en su certificado o que usen la clave privada del dispositivo, lo que parece que no tiene acceso. Para más información:

enlace

    
respondido por el Antonius Bloch 04.03.2015 - 17:51
fuente
3

Echa un vistazo a la vulnerabilidad FREAK tls. debería poder inyectar datos en la negociación SSL para engañar al dispositivo en un cifrado RSA Export, y desde allí el desencriptado del tráfico por parte de un hombre en el medio es significativamente más fácil (también conocido como posible).

Charles está escrito en java, no debería ser demasiado difícil de modificar para explotarlo automáticamente.

    
respondido por el Damian Nikodem 05.03.2015 - 00:27
fuente
1

Todo esto depende del tráfico en el que esté interesado. Si desea descifrar el tráfico entre su cliente y el dispositivo, entonces es posible con un proxy. De hecho, es muy similar a cómo funciona Superfish. Consulte Lenovo está rompiendo la seguridad de HTTPS en sus portátiles recientes para un resumen de cómo funciona el super pez.

Por otra parte, si desea descifrar la información que su dispositivo está enviando / recibiendo desde otros puntos, como lo que Apple TV podría estar enviando / recibiendo desde Apple, eso es mucho más difícil. Sospecho que este es el tráfico en el que está más interesado.

Si bien se aplica el mismo principio: básicamente un ataque MiTM (Man in The Middle), necesitaría que su dispositivo confíe en un certificado que posee o comprometa la clave privada del certificado que usa el dispositivo. Esto puede ser más fácil de lo que debería ser o muy difícil, dependiendo de cuán minucioso ha sido el proveedor para garantizar la seguridad y administración adecuadas de las claves SSL. Por ejemplo, recientemente se informó que un conocido fabricante de módems y enrutadores de consumo utilizaba la misma clave de certificado en muchos de sus dispositivos, lo que significaba que una vez que extrajera la clave de un dispositivo, tenía acceso a todos los dispositivos que usaban esa clave. Si el fabricante de su dispositivo ha implementado una protección de seguridad deficiente similar, entonces es probable que haya un agujero que pueda explotar. Sin embargo, encontrarlo no es necesariamente trivial. Requiere algunas habilidades de piratería y el tipo correcto de mente desviada para encontrar la debilidad. Algunas personas son naturales en esto, otras no tanto.

Lo que deberías hacer es hacer que tu dispositivo confíe en un certificado que posees y luego configurar un proxy que tenga tu certificado que funcionará como un intermediario. La configuración del proxy es trivial si se trata de su red, es decir, una red doméstica, pero hacer que el dispositivo confíe en un certificado que ha creado es mucho más difícil y conlleva algunos riesgos, es decir, podría corromper el almacén de certificados en su dispositivo. Convertirlo en un ladrillo y es casi seguro que ilegal.

    
respondido por el Tim X 05.03.2015 - 23:30
fuente

Lea otras preguntas en las etiquetas