sábado, 29 de enero de 2011

Depurar conexiones HTTPS

Tienes una aplicación Internet que no funciona y los mensajes de error no ayudan... ¿qué se puede hacer?

Pues se arranca Wireshark, y se puede ver las conexiones de la aplicación, si las peticiones funcionan, si hay respuestas incorrectas. No siempre ayuda, pero la mitad de las veces te permite arreglarlo.

¿Pero qué pasa si la comunicación es HTTPS? Bueno, está cifrada por lo que el analizador no nos va ayudar demasiado... pero he aquí que hay otras posibildades. Han hecho falta tres o cuatro búsquedas de Google, pero al final es posible.

La cuestión está en conseguir un proxy especializado en intercepción de conexiones HTTPS. Parece ser que no es muy difícil. Hoy estaba usando Mac OSX, por lo que es levemente más difícil, pero Burp Proxy me ha funcionado a la primera. Hay bastantes alternativas, por lo que he visto, pero ¿para qué mirar más?

¿Cómo funciona? Se arranca la aplicación, se cambian las opciones del navegador para que utilice proxy para HTTPS, usando la dirección del programa, 127.0.0.1:8080, y en la pestaña de proxy aparecen todas nuestras peticiones, seguramente descifradas para la depuración que se quiera hacer.

Para que funcione cómodamente, la propia aplicación genera un certificado falso para cada página web, basado en una autoridad local generada localmente. No hay más que confiar en esa autoridad para siempre... y ya está toda nuestra seguridad perdida irremediablemente y sin esfuerzo adicional. Por lo que no hay que olvidarse de borrar el certificado una vez se haya acabado...

La aplicación tiene múltiples otras opciones que puede aplicar por conexión, interviniendo las peticiones, las respuestas... pero ¿quién querría usar eso para depurar?

No hay comentarios:

Publicar un comentario