¿Puede alguien detectar la URL que usa una aplicación de Android?

6

Tengo una aplicación de Android que realiza una conexión HTTPS a una URL específica. ¿Hay alguna manera de mantener este URL en secreto?

Sé que la dirección IP y el número de puerto de esa conexión pueden detectarse, pero ¿qué pasa con el nombre de host exacto y, lo que es más importante, el URI y / o la cadena de consulta?

No me refiero solo a través de un enrutador o a través de algún otro 'hack' de la red, sino también al usar alguna otra aplicación de Android o al usar el plugin de eclipse.

La aplicación es nativa y sé cómo ofuscar y ocultar la URL en el código, por lo que no se puede ver al descompilar la aplicación.

    
pregunta ilija139 18.10.2012 - 14:49
fuente

3 respuestas

16

HTTPS (es decir, SSL / TLS) cifra toda la comunicación HTTP, incluida la URL completa. HTTPS no no protege el nombre de dominio, ya que se envía al DNS de forma clara, pero protege el resto de la URL. Otras aplicaciones no tienen acceso al tráfico cifrado SSL / TLS de su aplicación, incluidas las URL. Entonces, mientras la conexión SSL / TLS esté configurada de manera segura, un atacante no podrá obtener su URI del tráfico.

Pero a partir de la última frase que escribió ("Sé cómo ofuscar y ocultar la URL en el código, por lo que no se puede ver al descompilar la aplicación") Comprendo que debe proteger la URL contra un atacante. quién tiene acceso completo al dispositivo (por ejemplo, el propietario del dispositivo). En este caso, no puede confiar en que la conexión SSL / TLS esté asegurada, ya que es posible que el atacante instale su certificado de CA en su dispositivo. Esto anula completamente la seguridad de SSL / TLS, ya que el atacante puede hacerse pasar por su servidor y realizar un ataque de hombre en el medio, como El hack de Alexey V. Borodin en las compras de Apple desde la aplicación . Incluso si utiliza un certificado SSL codificado, el atacante puede rootear el dispositivo y modificar el O / S para que salgan todas las comunicaciones SSL / TLS de forma transparente. Por lo tanto, HTTPS no no protegerá sus URI de un atacante que ejecute su aplicación en su propio dispositivo.

    
respondido por el David Wachtfogel 18.10.2012 - 16:02
fuente
5
  1. Configure un anuncio Red hoc en una computadora.
  2. Haga que su teléfono se conecte a la red recién creada
  3. Use Wireshark para ver qué conexiones se han realizado
respondido por el Henning Klevjer 18.10.2012 - 14:54
fuente
3

En una conexión HTTPS, los datos de la URL están encriptados. La dirección IP y el puerto del servidor al que se está conectando se pueden enumerar fácilmente mediante un rastreador de paquetes, por lo que es probable que si se puede rastrear la URL, el servidor no sea un secreto. Los datos transmitidos dentro de una conexión https (es decir, SSL / TLS) son secretos, siempre que no haya Man in the Middle, consulte las discusiones anteriores sobre ese tema.

Si el objetivo es intentar evitar que alguien vea a qué sistema se está conectando la aplicación, entonces la única forma concebible de hacerlo es canalizar el tráfico a través de una VPN de algún tipo, y esperar que cualquier oyente no pueda oler. El tráfico que sale del otro lado. Enviar su tráfico a través de algún tipo de anonimizador lograría esto.

    
respondido por el GdD 18.10.2012 - 15:50
fuente

Lea otras preguntas en las etiquetas