Las colisiones son irrelevantes para la mayoría de los usos de las funciones hash junto con las contraseñas. Para el hashing de contraseñas, es importante la resistencia de preimagen , no la resistencia a la colisión. La resistencia de MD5 a las imágenes previas es (casi) tan buena como nueva.
MD5 para el almacenamiento de contraseñas sería una mala elección "solo", ya que el hashing de contraseñas requiere sales y lentitud, ambas características que MD5 no ofrece. Consulte esta respuesta para obtener una introducción al hashing de contraseñas.
NTLMv2 no utiliza MD5 para almacenar contraseñas. Lo que se almacena es un valor "equivalente a la contraseña" llamado "hash NT", que es el hash de la contraseña con MD4, no MD5. No, esto no es débil; Para ese uso específico, MD4 todavía está bien. En cuanto a MD5, se usa dentro de HMAC como parte del protocolo de desafío-respuesta, pero no para nada. almacenado .
No hay ningún ataque conocido contra HMAC / MD5. Las debilidades conocidas de MD5 anulan la "garantía": la prueba de seguridad que garantiza (matemáticamente) que HMAC es seguro se basa en la función de compresión de la función hash subyacente: esa función de compresión debe ser a PRF . Los ataques de colisión conocidos en MD5 demuestran que la función de compresión de MD5 es no un PRF; sin embargo, esto no rompe HMAC / MD5. Esto acaba de romper la prueba de seguridad. HMAC / MD5 no puede ser "probado fuerte". Simplemente cayó en la categoría más amplia de "no sabemos cómo romper eso".