Pregunta

Tengo una aplicación cliente que se conecta a un servicio web a través de HTTPS. Necesito "oler" todo el tráfico de red entre el servicio web y mi cliente para verificar si todo está bien, es decir, tengo que depurar la conexión.

He probado Wireshark, pero como no tengo una clave privada del servidor, los datos que se muestran en la pantalla Wireshark están, por supuesto, encriptados.

¿Hay alguna manera de observar el tráfico de red SSL entre mi cliente y mi servicio web cuando no tengo acceso al servidor mismo y, por lo tanto, las claves privadas y otras cosas relacionadas?

Gracias por adelantado.

¿Fue útil?

Solución

Mira esto: Depuración de comunicaciones SSL.

Sé que teóricamente se puede hacer: puede configurar un proxy que se comunique con el servicio web objetivo, apunte a su aplicación para conectarse a través de este proxy. Es una limitación conocida: HTTPS supone que confía en todos los proxy y certificados instalados en su máquina. Es una forma de Ataque de hombre en el medio.

Ve si Violinista sería de alguna utilidad.

Ataques de hombre en el medio

En un ataque de hombre en el medio, el atacante intercepta el tráfico de usuarios para capturar credenciales y otra información relevante. El atacante luego usa esta información para acceder a la red de destino real. Durante el proceso, el atacante generalmente sirve como un proxy/puerta de enlace que presenta un sitio VPN falso SSL al usuario; Este proxy/puerta de enlace pasa cualquier autenticación en la que ingrese el usuario al sitio de destino real.

Otros consejos

¿Tiene Python instalado?

Instalación de PIP mitmproxi

Mitmproxy -P 1234

incluso un video para ti

(Por cierto, tuve que apt-get instalar python-lxml en Debian Squeeze después de una actualización de apto))

Buque de eructo (incluso la edición gratuita) le permite establecer un "proxy" SSL, presentará un certificado diferente a su solicitud y descifrará (y mostrará) el tráfico para usted. Y si también desea probar con el servidor en localhost, también le permite establecer el proxy (algo que no he podido hacer con Wireshark en Windows y Fiddler).

Si no tiene acceso a la clave privada del servidor, no hay mucho que pueda hacer para ver qué está protegido por SSL/TLS. (Al menos verás el apretón de manos inicial).

Si tiene un control completo en el cliente, puede escribir un servidor falso que tenga una clave privada y un certificado que controle, y que transmitiría todo lo que el cliente envió al servidor real. Para esto, debe hacer que el cliente confíe en su propio certificado, por lo tanto, necesita el control del cliente. Podría ser más fácil ajustar el correspondiente hosts Archivo en el cliente para realizar la falsificación del DNS también, para hacer conexiones con el nombre de host correcto, vaya a su servidor falso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top