L'LM hash o LAN Manager hash è uno dei formati che Microsoft LAN Manager e Microsoft Windows usano per memorizzare password che sono lunghe non più di 14 caratteri. Questo tipo di hash è l'unico metodo per criptare password usato in 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
[modifica | modifica wikitesto]L'LM hash funziona nel seguente modo[1]
- La password dell'utente viene convertita da stringa OEM a tutto maiuscolo.
- La password viene anche troncata dopo 14 byte.
- La password viene a sua volta divisa in due metà da 7 byte.
- Questi valori sono usati per creare due chiavi DES, una per ogni blocco 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 cifrare con il DES la stringa costante in ASCII “
KGS!@#$%
”, 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
[modifica | modifica wikitesto]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 differenti password ottenibili da 14 caratteri ASCII stampabili, questi scendono a 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 . Con un 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[2], Ophcrack[3]
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.
Note
[modifica | modifica wikitesto]- ^ Il protocollo LM
- ^ Cain & Abel, su oxid.it. URL consultato il 26 settembre 2008 (archiviato dall'url originale il 16 maggio 2019).
- ^ Ophcrack, il cracker del compromesso tempo-memoria
Voci correlate
[modifica | modifica wikitesto]Collegamenti esterni
[modifica | modifica wikitesto]- The Shmoo Group offre Rainbow tables precompilate che sono scaricabili via Bit Torrent
- Tool online per craccare gli hash LM utilizzando Rainbow tables, su LMcrack.com. URL consultato l'11 novembre 2019 (archiviato dall'url originale il 30 ottobre 2018).
- Sito online per il recovery dell'hash LM[collegamento interrotto] (~11GB di password basate sul dizionario italiano)
- Servizio online per la decodifica degli hash LM, su decryptyourpass.com. URL consultato il 7 giugno 2019 (archiviato dall'url originale il 17 maggio 2014).