NTLM sicurezza e complessità della password

1

Un client che consente di rispondere al server con LM e NTLM, con una password semplice, non sicura.

Non è un modo più sicuro avere tutte le comunicazioni con lo schema NTLMv2? e in aggiunta a questo hanno una password complessa.

è vero che una password debole può essere violata anche in NTLMv2?

    
posta BlackFire27 07.07.2013 - 07:44
fonte

3 risposte

3

In NTLM (sia v1 che v2), il protocollo di autenticazione di per sé non è male, a patto che venga riprodotto all'interno di una connessione protetta. Infatti:

  • Gli attaccanti attivi , che possono origliare sulla rete e iniettare anche i propri pakket, possono dirottare le connessioni aperte a proprio piacimento. Se il tuo protocollo di autenticazione viene eseguito su una connessione TCP di base, un utente malintenzionato deve semplicemente attendere una normale connessione da un utente autorizzato e rubarlo una volta completata la fase di autenticazione.

  • Anche gli attaccanti passivi, osservando i messaggi del protocollo, otterranno informazioni sufficienti per eseguire un attacco del dizionario offline : possono provare la potenziale password fino a quando ne viene trovato uno che corrisponde ai messaggi visti sul filo; e possono farlo nella privacy delle proprie macchine (questa è la parte "offline").

SSL / TLS risolve entrambi i problemi. Se il client apre prima una connessione SSL al server (con l'autenticazione del server dovuta attraverso il suo certificato e così via) e il resto della comunicazione (incluso il protocollo di autenticazione basato su password) si verifica all'interno del tunnel crittografato, allora sarai al sicuro dagli aggressori. Tuttavia, in queste condizioni, un semplice protocollo "mostra la password", in cui il client invia semplicemente la password "così com'è" (nel tunnel SSL), sarebbe meglio.

In effetti, gli aggressori sono inventivi e non si limitano semplicemente a spiare la rete. Accade spesso (troppo spesso) che gli aggressori ottengano alcuni scorci sui dati del server, ad es. attraverso iniezioni SQL, o recuperando vecchi dischi rigidi dai cassonetti. Questo è il motivo per cui i server devono memorizzare solo le password con hash . Ma ci sono buone funzioni di hash per questo, e ci sono anche le funzioni di hash male (vedi questa risposta per molti dettagli). Quando si utilizza il semplice protocollo "mostra la password", il server è libero di utilizzare qualsiasi funzione di hashing della password che ritenga opportuna; tuttavia, quando si utilizza NTLM, il server deve memorizzare il valore hash che il protocollo richiede, ad esempio "Hash NT" o "Hash LM".

Sfortunatamente, NT Hash è molto debole contro un attaccante brutale: è molto veloce (un attaccante con un PC + GPU può provare miliardi di password al secondo) ed è non salato (gli attaccanti possono collude e usa tabelle precalcolate, come tabelle arcobaleno , per eseguire attacchi quasi gratis). LM Hash è anche peggio .

Quindi non dovresti davvero usare NTLM se puoi evitarlo.

Una password debole è debole, tuttavia lo metti, perché gli attaccanti possono anche eseguire attacchi di dizionario online semplicemente parlando al server. In queste condizioni, una password debole può essere tollerata solo con procedure di blocco rigorose, come la chiusura dell'account utente se vengono immesse quattro password errate consecutive. Questo è ciò che fa la maggior parte delle smart card. Tuttavia, questo non è appropriato per un server, perché renderebbe troppo facile per la persona malintenzionata bloccare i conti di altre persone.

Quindi devi istruire i tuoi utenti nella scelta di password efficaci. Del resto, NTLMv1 aggiunge qualche offesa in più alla lesione, tramite LM Hash , che limita le password a 14 caratteri e mappa le lettere minuscole in maiuscolo. La forza della password dipende dall'entità : una misura di ciò che potrebbe essere stata la password. L'entropia ha bisogno di spazio; soprattutto perché gli umani sono coinvolti. Gli umani fanno male a fare scelte casuali, ma anche a ricordare scelte casuali; il loro compito è reso più facile se gli è consentito scegliere lungo password . Ma LM Hash non consente lunghe password. La cosa migliore, quindi, è aggiungere un'ulteriore entropia, ad esempio, rendendo ogni lettera maiuscola o minuscola su base casuale. Ma anche LM Hash lo impedisce!

    
risposta data 07.07.2013 - 14:19
fonte
5

Consentire la memorizzazione e l'uso degli hash di LanMan (LM) è un problema di sicurezza dato che Lan Manager suddivide la password in due parti da 7 caratteri maiuscole e minuscole prima dell'hashing, il che rende molto più semplice l'hash della password.

In generale forzare NTLMv2 e disabilitare la memorizzazione degli hash LM è una buona idea dal punto di vista della sicurezza e poiché nessuna versione supportata di Windows richiede l'hash LM, sembrerebbe una scommessa abbastanza sicura in questi giorni.

Una password debole può quasi sempre essere incrinata se l'utente malintenzionato ottiene una sospensione della versione con hash di esso che è memorizzata su un sistema. Un utente malintenzionato può utilizzare un attacco di dizionario che di solito è abbastanza veloce da decifrare molte password deboli e, per brevissime parole d'ordine, le tabelle arcobaleno possono essere acquisite per accelerare il processo di cracking.

    
risposta data 07.07.2013 - 10:03
fonte
1

Le password di LanMan sono al massimo 14 caratteri (troncati) e quindi divise in due di 7 caratteri e convertiti in maiuscolo. Ciò significa che la forza massima della password è: 26 caratteri + 10 cifre + ~ 10 caratteri speciali, che risultano in 46 ^ 7 o 435818 milioni di combinazioni. Su un computer moderno con una GPU veloce queste combinazioni possono essere provate (brute-forzate) molto velocemente, nel giro di pochi minuti. Supponendo che tu abbia accesso all'hash: se sono coinvolte reti, è molto più lento. Ma meglio non memorizzare nemmeno quell'hash LM, se non è necessario da un sistema (molto) vecchio. Tali vecchi sistemi sarebbero Windows for Workgroups (WfW) 3.11 o tali sistemi dal 1993 o giù di lì.

Quindi la raccomandazione è di disabilitare l'hashing LM e usare solo NTLMv2. Con NTLM (v2) l'intera password viene sottoposta a hash, nessuna suddivisione in due parti e anche nessuna modifica di caso. Quindi se usi una lunga password (più lunga di 7 caratteri) e caratteri misti (maiuscolo, minuscolo, cifre, speciali), non è facile provare le nostre combinazioni. Ma si possono ancora facilmente provare tutte le password di 6 caratteri in pochi minuti, o tutte le password di 7 caratteri che non contengono caratteri maiuscoli, ecc. Nello stesso momento delle password LM.

Per impostazione predefinita, l'hashing LM è disabilitato su macchine più recenti di Windows XP.

    
risposta data 07.07.2013 - 14:04
fonte

Leggi altre domande sui tag