¿Puede MITM redirigir mi HttpsURLConnection?

0

Escenario: Digamos que un MITM pudo plantar un certificado falso y autofirmado en mi cliente (aplicación de Android), en lugar del certificado autofirmado de mi servidor.

Cuando ahora mi aplicación intenta conectarse al servidor, utilizando:

URL url = new URL("https://www.hardcoded.unchangeable.uri.toserver");
HttpsURLConnection urlConnection = (HttpsURLConnection)url.openConnection();
urlConnection.setSSLSocketFactory(context.getSocketFactory());
urlConnection.connect();
...

¿El MITM puede redireccionar la solicitud a su servidor?

Si no estoy seguro, solo vería una excepción de apretón de manos, ¿no?

    
pregunta DividedBy0 02.04.2016 - 19:52
fuente

1 respuesta

1

Por lo tanto, asumimos que el atacante tiene un certificado que su dispositivo vería como "confiable" y que está en posición de interceptar y modificar el tráfico de su dispositivo antes de que llegue al servidor.

En ese caso, en un nivel básico, es probable que puedan redirigir al cliente a un servidor bajo su control. Cuando su dispositivo realiza la solicitud de DNS para resolver " enlace ", el atacante MITM puede interceptarlo y responder con una dirección IP bajo su control.

Su cliente inicia una conexión HTTPS con el servidor de los atacantes. Como el atacante ha plantado el certificado firmado falso en su dispositivo (asumiendo que han puesto una raíz confiable en el dispositivo), solo pueden firmar el certificado en el servidor al que redirigen al cliente con esa raíz y su dispositivo lo verá como "de confianza".

La mejor manera de mitigar este ataque es hacer que su aplicación use el "anclaje de certificados" donde solo confía en certificados específicos, en lugar de confiar en cualquier certificado con el nombre de host correcto, que ha sido firmado por una raíz confiable. certificado que se instala en el dispositivo.

    
respondido por el Rоry McCune 02.04.2016 - 20:34
fuente

Lea otras preguntas en las etiquetas