Tal como lo describe, las cosas van de la siguiente manera: su sitio web necesita reenviar una solicitud a otro sitio web, y este último solo aceptará si la solicitud viene con un "blob de autenticación", que es el hash de un identificador de usuario y su contraseña. Este blob (el resultado de MD5) es entonces "la contraseña", ya que demostrarlo es suficiente para otorgar acceso; esto es muy débil con respecto a los espías, ya que espiar en la línea sería suficiente para recuperar el blob, momento en el que el atacante podría adjuntarlo a cualquier solicitud que quisiera enviar.
Si el protocolo no es como se describe anteriormente, pero vincula el hash con los datos solicitados (por ejemplo, el hash no se calcula sobre la ID de usuario y la frase de acceso solo , pero también en la ruta de los datos solicitados), entonces la autenticación es un poco menos débil, pero todavía no es buena; Exhibiría los dos pecados clásicos:
-
Eavesdropping revela un valor de hash calculado sobre la frase de contraseña y algunos datos conocidos, lo que permite un ataque de diccionario sin conexión : el atacante simplemente "intenta" algunas contraseñas potenciales hasta que se encuentra una coincidencia con el hash observado. Como una GPU de 150 $ puede calcular miles de millones de instancias de MD5 por segundo, incluso las contraseñas de fuerza media no resistirán el ataque por mucho tiempo.
-
La comunicación completa no está protegida, por lo que los intrusos observarán los datos en sí mismos (los datos para los cuales se usó la autenticación de acceso, por lo que presumiblemente los datos sensibles ). Los atacantes activos podrán manipular la solicitud y la respuesta de manera arbitraria.
El canje se logra con el uso de SSL , que soluciona ambos problemas.