La gestione delle password in un sistema operativo Microsoft è complessa perché utilizzano password per molti usi. Il sistema operativo (o il suo controller di dominio) memorizzerà una versione hash della password, ma ci sono anche valori che sono simmetricamente crittografati con chiavi derivate dalla password o dal suo hash. I protocolli di autenticazione non includono le disposizioni per lo scambio di sali quando deve verificarsi qualche hashing sul lato client. È difficile modificare gli algoritmi di elaborazione delle password senza influire su molti sottosistemi e potenzialmente interrompere la compatibilità con le versioni precedenti, che è la la forza trainante dell'ecosistema Windows.
Passa alle priorità strategiche. Microsoft sa che alterare l'hashing delle password e i protocolli di autenticazione per includere un salt avrà alcuni costi non trascurabili che dovrebbero assumere (fissando tutti i componenti che sono quindi interessati). D'altra parte, non cambiare l'hashing della password è piuttosto "gratuito" per loro, perché un algoritmo di hashing flaky non convincerà i clienti a passare ad altri sistemi non Microsoft (il mercato del SO è, in pratica , un mercato vincolato ); ci vuole molto di più per costringere i potenziali clienti a prevedere un interruttore del sistema operativo che è molto costoso. Inoltre, l'hashing della password può essere qualificato come "difesa in profondità" , un secondo strato che ha un impatto solo una volta che si è già verificata una violazione; come tale, potrebbe essere presentato come di secondaria importanza. Pertanto, è logico, se irritante, che Microsoft non aggiorni le sue scarse pratiche di gestione della password.
Storicamente, Microsoft ha fatto solo un aggiornamento, quando è passato da NTLM v1 a v2, ed era abbastanza necessario perché il vecchio hash LM era così debole che stava cominciando a essere imbarazzante . La mia ipotesi è che ha coinvolto un sacco di problemi interni e non sono desiderosi di farlo di nuovo.