NTLM: cos’è la tecnologia Microsoft per la gestione LAN
Una rete, se non protetta adeguatamente, è vulnerabile agli attacchi informatici. Per questo nel corso degli anni sono state sviluppate diverse tecnologie pensate proprio per impedire l’accesso alle reti a persone non autorizzate, proteggendo così i dati condivisi. Tra queste tecnologie vi è anche NTLM, una suite di protocolli di sicurezza sviluppati da Microsoft.
Contenuti
Cos’è NTLM
NTLM è l’acronimo di NT LAN Manager, termine che identifica un insieme di protocolli di autenticazione sviluppato da Microsoft nel 1993. Prima di allora, Microsoft utilizzava LAN Manager (LM) come protocollo predefinito, che era però una soluzione molto meno sicura.
Con NTLM è possibile autenticarsi senza inviare la propria password direttamente attraverso la rete: ciò significa che quando un sistema cerca di collegarsi a un server, quest’ultimo richiederà l’invio di un token valido anziché di dati sensibili che potrebbero essere intercettati da terze parti.
NTLM era inizialmente una soluzione proprietaria Microsoft, ma in seguito (NTLMv2) è stato reso disponibile anche per altri sistemi operativi, sebbene col tempo sia stato superato da altre soluzioni più efficaci e sicure.
Cos’è il processo di autenticazione NTLM e come funziona
NTLM è un protocollo di autenticazione basato su un sistema “challenge-response”, una versione più avanzata e sicura dell’autenticazione Digest.
Quando un client cerca di collegarsi a un server tramite una rete locale, invia una richiesta di accesso. Il server invia quindi al client una challenge, sotto forma di un numero generato in modo casuale. Il client usa questo numero per generare un hash della password dell’utente che sta tentando di effettuare l’accesso, inviandolo poi al server, che potrà così verificare la validità del token e della password associata. In questo modo, non viene mai inviata direttamente la password tramite rete, evitando così che qualcuno possa intercettarla e impossessarsene.
Più nel dettaglio, questo processo si può descrivere con i seguenti passaggi:
- Il cliente cerca di collegarsi a un server, identificandosi con un determinato nome utente.
- Il server, che conosce gli abbinamenti di nome utente e password dei client autorizzati, genera un numero casuale e lo invia al client. Questo passaggio rappresenta la challenge, o “sfida”.
- Il client usa il numero casuale ricevuto per creare un hash della password associata al nome utente precedentemente inviato. Allo stesso tempo, anche il server esegue la stessa operazione.
- Il client invia l’hash così generato al server. Questo passaggio rappresenta la response, o “risposta”.
- Il server confronta l’hash ricevuto con quello generato internamente: se i due valori corrispondono, l’autenticazione è andata a buon fine e al client viene garantito l’accesso al server. Se invece i due valori non corrispondono, il client viene bloccato.
Con questa procedura, la password dell’utente non viene mai inviata tramite la rete: a essere inviati sono soltanto il numero casuale della challenge e il valore di hash.
Sicurezza e NTLM
Anche se NTLM è stato un importante passo avanti in materia di sicurezza, non è privo di rischi. Ad esempio, non offre supporto per la crittografia moderna, come i protocolli AES e SHA-256: ciò significa che è vulnerabile a un attacco brute force. NTLM, inoltre, non supporta l’uso di salt, il che significa che se un client ripete la richiesta di accesso più volte con la stessa password, questa genererà sempre lo stesso hash.
NTLM non supporta nemmeno l’autenticazione a più fattori, ormai diventata un vero e proprio standard di sicurezza. Senza questo tipo di autenticazione, è sufficiente conoscere l’hash di una password per poter bypassare i controlli di sicurezza.
NTLM o Kerberos
Kerberos è una tecnologia che in realtà risale a prima dello sviluppo di NTLM, e che col tempo è diventata sempre più efficace fino a sostituire lo stesso NTLM nei sistemi Windows. Oggi, infatti, Microsoft stessa sconsiglia l’uso di NTLM.
Vantaggi di NTLM
- Configurazione più semplice. È molto più facile configurare NTLM rispetto a Kerberos.
- Supporto nativo di Windows. NTLM è supportato a livello nativo dai sistemi Windows, anche dai più vecchi.
- Autenticazione senza connessione. Non è necessario avviare una sessione per poter inoltrare una richiesta di autenticazione.
- Proxy NTLM. Si può usare un proxy per permettere la comunicazione tra sistemi NTLM e sistemi non NTLM.
Vantaggi di Kerberos
- Supporta la crittografia. Il supporto a moderni protocolli di crittografia garantisce una maggiore sicurezza.
- Autenticazione reciproca. Con Kerberos il server autentica il client e viceversa, aggiungendo un ulteriore livello di sicurezza.
- Sistema a scadenza. Le richieste hanno una scadenza dopo la quale non sono più valide, rendendo più difficile l’accesso tramite attacco brute force.
- Single-Sign On. Permette di utilizzare un solo servizio di identificazione in modo da non dover ripetere il processo di autenticazione più volte.
Perché Kerberos ha sostituito NTLM
Nel tempo Microsoft ha sviluppato una versione più avanzata di NTLM, chiamata NTLMv2, che però non è stata in grado di tenere il passo con i tempi. Rimane uno dei protocolli più diffusi, anche grazie alla sua integrazione con Windows, ma è preferibile disattivarlo (almeno nella sua versione 1) perché rappresenta un potenziale rischio per la sicurezza.
È proprio a causa delle sue note vulnerabilità e della sua relativa inefficacia a far fronte alle minacce più moderne, che NTLM è stato ormai sostituito da Kerberos come protocollo di autenticazione più utilizzato e sicuro.