NTLM

Da Wikipedia, l'enciclopedia libera.

Nelle reti Windows, NTLM (NT LAN Manager) è una suite di protocolli di sicurezza Microsoft che forniscono autenticazione, integrità e confidenzialità agli utenti.[1][2][3] NTLM è il successore del protocollo Microsoft LAN Manager (LANMAN), un vecchio prodotto Microsoft, e cerca di fornire retrocompatibilità con LANMAN.

NTLM e Kerberos[modifica | modifica wikitesto]

Microsoft ha adottato Kerberos come protocollo di autenticazione preferito per Windows 2000 e per i domini Active Directory. Kerberos è usato solitamente quando un server appartiene ad un dominio Windows oppure se viene stabilito un trust con un dominio (come ad esempio accade nell'autenticazione tra Linux e Windows Active Directory).

NTLM è utilizzato nelle seguenti situazioni:

  • Il client si sta autenticando ad un server utilizzando un indirizzo IP
  • Il client si sta autenticando ad un server che appartiene ad una foresta Active Directory differente che ha un legacy trust NTLM invece di un trust inter-foresta
  • Il client si sta autenticando ad un server che non appartiene ad un dominio
  • Non esiste un dominio Active Directory (ovvero quando esiste un workgroup oppure una rete peer-to-peer)

In Windows Vista e superiori, né LM o NTLM sono utilizzati di default. NTLM è ancora utilizzato per autenticazione interna. Per le autenticazioni esterne viene utilizzato di default NTLMv2. Le versioni precedenti di Windows possono essere configurate per funzionare in questo modo, ma non è la configurazione di default.

Protocollo[modifica | modifica wikitesto]

NTLM è un protocollo challenge-response (sfida-risposta) che utilizza tre messaggi per autenticare un client all'interno di un ambiente orientato alla connessione e permette messaggi aggiuntivi se è richiesta integrità.

All'inizio, il client stabilisce un percorso verso il server ed invia un messaggio di negoziazione con le proprie capacità di connessione. In seguito il server risponde con un messaggio "sfida" (challenge) che è utilizzato per stabilire l'identità del client. Infine, il client risponde con il messaggio di autenticazione.

NTLM utilizza uno o entrambi i valori di password hashed, che sono entrambi memorizzati nel server (o nel domain controller) e che sono equivalenti alla password. Questo significa che se si riesce ad ottenere un hash password dal server, è possibile autenticarsi senza conoscere la password vera. I valori di password sono lLM hash (una funzione di hashing di autenticazione basata su DES applicata ai primi 14 caratteri della password convertita al charset 8-bit della lingua) e lNT hash (ovvero l'MD4 Little endian della password). Entrambi i valori hash sono di 16 bytes (128 bits).

NTLMv1[modifica | modifica wikitesto]

Il server autentica il client inviando un numero casuale da 8 byte. Il client esegue un'operazione che coinvolge la stringa di sfida ed una stringa segreta condivisa tra client e server, nello specifico, si tratta di uno dei due password hash discritti in precedenza. Il client restituisce i 24 byte risultato della computazione. Le elaborazioni NTLMv1 sono solitamente eseguite utilizzando entrambi gli hash e entrambi i risultati da 24 byte vengono inviati. Il server verifica che il client ha restituito il risultato corretto e da questo individua il corretto possesso della frase segreta ed, in definitiva, l'autenticità del client.

Entrambi gli hash producono risultati a 16 byte. Vengono aggiunti 5 byte di zero per arrivare a 21. I 21 byte sono separati in tre blocchi da 7 byte (56 bit). Ognuno di questi blocchi è utilizzato come chiave per criptare i 64 bit della sfida tramite DES. Queste tre codifiche sono nuovamente unite per formare una risposta a 24 byte. Entrambe le risposte, usando l'hash LM e l'hash NT sono restituire come risposta. Questa situazione è comunque configurabile.

C = 8-byte server challenge, casuale
K1 | K2 | K3 = NT-Hash | 5-bytes-0
R1 = DES(K1,C) | DES(K2,C) | DES(K3,C)
K1 | K2 | K3 = LM-Hash | 5-bytes-0
R2 = DES(K1,C) | DES(K2,C) | DES(K3,C)
risposta = R1 | R2

NTLMv2[modifica | modifica wikitesto]

NTLMv2, introdotto con Windows NT 4.0 SP4,[4] è un protocollo di autenticazione challenge-response. È considerato come un sostituto migliorativo di NTLMv1.

NTLMv2 invia due risposte a 16 byte ad una sfida server da 8 byte. La risposta è il HMAC-MD5 hash della sfida server, di una sfida client generata casualmente ed un HMAC-MD5 hash della password dell'utente e di altre informazioni identificative.

Le due risposte differiscono per il formato della sfida client. La risposta più corta utilizza un valore casuale ad 8 byte. Per verificare la risposta, il server deve ricevere la sfida client come parte della risposta. Viene quindi generato un pacchetto da 24 bytes composto dalla sfida breve concatenata alla risposta da 16 byte che corrisponde alla risposta prevista per il NTLMv1. In alcune documentazioni non ufficiali questa risposta è chiamata LMv2.

La seconda risposta inviata da NTLMv2 utilizza una sfida client di lunghezza variabile che include l'ora corrente nel formato NT Time, un valore casuale da 8 byte, il nome dominio ed altre informazioni standard. La risposta deve includere una copia di questa sfida client e la sua lunghezza. In alcune documentazioni non ufficiali questa risposta è chiamata NTv2.

Entrambi gli LMv2 e NTv2 eseguono l'hash della sfida client e server con la password utente ed altri informazioni utente La formula corretta prevede di cominciare con l'NT Hash, memorizzato nel SAM o AD e continuare l'hash utilizzando HMAC-MD5, con la username e il nome di dominio. Nel riquadro sottostante, X si riferisce al contenuto fisso del campo di formattazione.

SC = 8-byte server challenge, casuale
CC = 8-byte client challenge, casuale
CC* = (X, time, CC, nome dominio)
v2-Hash = HMAC-MD5(NT-Hash, username, nome dominio)
LMv2 = HMAC-MD5(v2-Hash, SC, CC)
NTv2 = HMAC-MD5(v2-Hash, SC, CC*)
risposta = LMv2 | CC | NTv2 | CC*

Note[modifica | modifica wikitesto]

  1. ^ Introduction in NT LAN Manager (NTLM) Authentication Protocol Specification, Microsoft. URL consultato il 15 agosto 2010.
  2. ^ Session Security Details in NT LAN Manager (NTLM) Authentication Protocol Specification, Microsoft. URL consultato il 15 agosto 2010.
  3. ^ T Takahashi, Reflecting on NTLM Reflection in FrequencyX Blog, IBM Internet System Security (ISS), 17 dicembre 2009. URL consultato il 14 agosto 2010.
  4. ^ What's New in Windows NT 4.0 Service Pack 4?
informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica