El manejo de contraseñas en un sistema operativo de Microsoft es complejo porque usan contraseñas para muchos usos. El sistema operativo (o su controlador de dominio) almacenará una versión con hash de la contraseña, pero también hay valores que se cifran simétricamente con claves derivadas de la contraseña o de su hash. Los protocolos de autenticación no incluyen disposiciones para el intercambio de sales cuando debe ocurrir algún hashing del lado del cliente. Es difícil alterar los algoritmos de procesamiento de contraseñas sin afectar a muchos subsistemas y potencialmente romper la compatibilidad con versiones anteriores, que es la fuerza impulsora del ecosistema de Windows.
Se reduce a prioridades estratégicas. Microsoft sabe que modificar el hash de contraseña y los protocolos de autenticación para incluir un salt tendrá algunos costos no despreciables que tendrían que asumir (al arreglar todos los componentes afectados). Por otra parte, no cambiar el hashing de contraseña es más bien "gratuito" para ellos, porque un algoritmo de hashing no convencerá a los clientes de cambiar a otros sistemas que no sean de Microsoft (el mercado de sistemas operativos es, en la práctica, , un mercado cautivo ); se necesita mucho más para forzar a los clientes potenciales a imaginar un cambio de sistema operativo que es muy costoso. Además, el hashing de contraseñas puede calificarse como "defensa en profundidad" , una segunda capa que tiene algún impacto solo una vez que se produjo una infracción; como tal, podría ser presentado como de importancia secundaria. Por lo tanto, es lógico, aunque irritante, que Microsoft no actualice sus malas prácticas de procesamiento de contraseñas.
Históricamente, Microsoft solo realizó una actualización cuando cambió de NTLM v1 a v2, y fue algo necesario porque el hash LM más antiguo era tan débil que estaba empezando a ser vergonzoso . Mi conjetura es que involucró muchos problemas internos y no están ansiosos por volver a hacerlo.