Bene, per prima cosa con LanMan devi ricordare che è stato progettato e implementato in un contesto di sicurezza molto, molto diverso rispetto a quello che stiamo affrontando oggi, o persino di quello che dovevamo affrontare quando NTLM & NTML v.2 sono stati progettati e implementati. Probabilmente andrà un po 'lontano per dire che Microsoft - in realtà, l'industria tecnologica in generale - non si è preoccupata molto della sicurezza a metà degli anni '90, quando LanMan fu presentato. Ma come preoccupazione e priorità era un tempo molto, molto diverso. A quei tempi Windows non aveva nemmeno un modello multiutente. Oppure i livelli di privilegio dell'account amministratore e utente. O interfaccia con qualsiasi tipo di rete Windows Server con qualcosa come qualsiasi sistema di autenticazione / identità Active Directory / enterprise grade. È un po 'come la domanda sul perché le prime versioni di Internet Explorer e Netscape Navigator non avessero quasi nessuna protezione di sicurezza rispetto ai principali browser di oggi. Diverse circostanze, diversi ambienti di minacce, diversi livelli di conoscenza tecnologica su come costruire elementi di sistema più sicuri.
Riguardo NTLM (e anche NTLM v.2), sì, è un po 'più difficile assolvere Microsoft di. NTML era un notevole passo avanti rispetto a ciò che veniva prima? Come fai notare, assolutamente. Microsoft ha provato ad allontanarsi da NTLM enfatizzando l'utilizzo dell'autenticazione Kerberos come un modello molto più sicuro (almeno dove viene utilizzato Kerberos)? Sì. Ma Microsoft ha propagato pratiche non sicure continuando a fare affidamento su NTLM v.2 nelle molte situazioni che Kerberos non copre ? Dati i punti deboli nell'approccio NTLM di cui parli, ritengo che la risposta debba essere "Sì".
Perché NTLM è ancora in uso? Perché Microsoft non l'ha sostituito con qualcosa di più robusto per coprire le circostanze in cui Kerberos non viene utilizzato? Qui stiamo entrando più pienamente nel territorio della speculazione. Ma se dovessi speculare, direi che (1) si deve ricordare quanto intensamente Microsoft sia stata storicamente impegnata nella retrocompatibilità, specialmente nelle aree di rete e di autenticazione; e (2) c'è davvero una bella domanda su quanta sicurezza extra che una sostituzione NTLM realmente fornirebbe. Come hai sottolineato, NTLM ha un sacco di problemi in termini di resistenza al cracking dell'hash, ma la maggior parte dei bypass di autenticazione di Windows non viene compiuta rubando un hash NTLM e facendolo scoppiare per ottenere la password in chiaro. Invece, gli hacker spesso prendono i modi più semplici di (a) passare l'hash, se stiamo parlando dell'autenticazione non Kerberos su una rete, o (b) semplicemente resettando una password dell'amministratore tramite la linea di comando nell'ambiente di recupero se si dispone di local accesso a una macchina. Considerando questi punti, e che l'unico modo veramente sicuro per bloccare il contenuto del PC contro un utente malintenzionato locale - la crittografia completa del disco con Bitlocker, con lo sblocco del TPM - non ha nulla a che fare con NTLM, si può sostenere che sostituire NTML v .2 con una sorta di "NTLM v.3" (o qualsiasi altra cosa si possa chiamare) più moderna e molto più difficile farebbe meno bene di quanto si possa pensare.
(Comunque, devo essere d'accordo con il tuo sentimento. A mio avviso, è qualcosa che Microsoft avrebbe dovuto fare. In Windows Vista o Windows 7.)
Quanto detto sopra, penso che con Windows 10 Microsoft abbia effettivamente iniziato a compiere alcuni primi passi importanti verso l'allontanamento da NTLM - e gli hash delle password vulnerabili al furto / passaggio / cracking del tutto, in realtà. Credential Guard è progettato per utilizzare un'area protetta virtualizzata per salvaguardare l'autenticazione informazioni - a partire dagli hash delle password - contro il furto o il cracking anche se il kernel del sistema operativo principale è completamente compromesso. La combinazione di Passport e Windows Hello è progettata per eliminare completamente l'autenticazione basata su hash della password: l'inserimento di una password, PIN e / o l'autenticazione biometrica sblocca solo una chiave privata per l'uso per firmare un ticket di autenticazione in una parte sicura del sistema operativo, che viene quindi inviata al server remoto. (O, almeno, questo è il modo in cui le cose funzioneranno presumibilmente quando tutte le funzionalità promesse di Passport e Credential Guard saranno effettivamente consegnate a Windows 10. In questo momento la funzionalità di questi elementi è solo parzialmente nel sistema operativo e / o abilitata.)
Quindi, il cambiamento sta arrivando. Una specie di. Lentamente.