LM hash: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1:
{{S|informatica}}
 
L'"'''LM hash'''" o "'''LAN Manager hash'''" è uno dei formati che [[Microsoft LAN Manager]] e [[Microsoft Windows]] usano per memorizzare [[password]] che sono lunghe almenonon più di 15 caratteri. Questo tipo di [[hash]] è l'unico metodo per criptare password usato in ''Microsoft LAN Manager'' (da cui il nome dell'hash) e da versioni di Windows fino a [[Windows Me]]. È anche supportato da versioni più recenti di Windows per assicurare la [[retrocompatibilità]], anche se in [[Windows Vista]] deve essere attivato manualmente.
 
==Algoritmo==
L'''LM hash'' funziona nel seguente modo<ref>[http://davenport.sourceforge.net/ntlm.html#theLmResponse Il protocollo LM]</ref>
# La password dell'utente viene convertita da [[stringa OEM]] a [[maiuscolo|tutto maiuscolo]].
# La password viene anche troncata dopo 14 byte.
# La password viene a sua volta divisa in pezzettidue metà da 7 byte.
# Questi valori sono usati per creare due chiavi criptate[[Data Encryption Standard|DES]], una per ogni pezzoblocco da 7 byte, convertendo i sette byte a un flusso di bit e aggiungendo un bit zero alla fine di ogni sette bit. Questo genera i 64 bit necessari per ogni chiave DES.
# Ognuna di queste di chiavi è usata per criptarecifrare con il DES la stringa costante in ASCII “<code>KGS!@#$%</code>”, trasformandola in due valori da 8 byte.
# Questi due valori sono concatenati per formare un valore da 16 byte, il quale è l'''LM hash''.
 
==Sicurezza==
Sebbene sia basato sul DES, un [[cifrario a blocchi]] ben noto e studiato, l'LM hash può essere violato molto facilmente a causa di due debolezze nella sua implementazione. La prima è che le password più lunghe di 7 caratteri sono divise in due ed ogni metà è trattata separatamente. La seconda è che tutte le lettere minuscole della password sono convertite in maiuscolo prima del calcolo dell'hash.
 
La prima debolezza permette di attaccare separatamente le due metà della password: mentre ci sono <math>95^{14} \approx 2^{92}</math> differenti password ottenibili da 14 caratteri [[ASCII]] stampabili, questi scendono a <math>95^{7} \approx 2^{46}</math> con i soli 7 caratteri di una metà della password. Riducendo, inoltre, il campo dei caratteri a causa della conversione da minuscolo a maiuscolo, si riducono anche il numero delle possibili combinazioni per ogni metà a <math>69^{7} \approx 2^{43}</math>. Con un [[Metodo forza bruta|attacco a forza bruta]] condotto sulle due singole metà, un moderno [[computer]] può violare un LM hash in poche ore.
 
Dato che l'LM hash non include un [[nonce]], vale a dire non include un valore univoco ma utilizza l'hash puro, un attacco di tipo a [[Rainbow tables]], porta alla scoperta delle password in pochi secondi. Questo tipo di attacco sfrutta il cosiddetto [[compromesso tempo-memoria]]: per accelerare il calcolo della password vengono caricati in memoria milioni di hash precalcolati che vengono confrontati con quello da violare. Un confronto è molto più veloce di un calcolo puro dell'hash. Esistono molti software che integrano la possibilità di sferrare un simile attacco: tra questi abbiamo [[RainbowCrack]], [[L0phtCrack]], [[Cain & Abel]]<ref>[http://www.oxid.it/ Cain & Abel]</ref>, [[Ophcrack]]<ref>[http://ophcrack.sourceforge.net/ Ophcrack, il cracker del compromesso tempo-memoria]</ref>
 
Per ovviare alle debolezze dell'LM Hash, [[Microsoft]] introdusse in [[Windows NT 3.1]] un nuovo algoritmo denominato [[NTLM]], poi aggiornato alla versione 2 con [[Windows NT 4.0]].
 
==Riferimenti==
<references/>
 
==Collegamenti esterni==
* [http://rainbowtables.shmoo.com/ The Shmoo Group] offre Rainbow tables precompilate che sono scaricabili via [[BitTorrent (protocol)|BitTorrent]]
* [http://www.LMcrack.com/ Tool online per craccare gli hash LM utilizzando Rainbow tables]
 
{{Portale|informatica}}