fatti e misfatti dei protocolli di autenticazione lm, ntlm e kerberos
TRANSCRIPT
![Page 1: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/1.jpg)
Fatti e misfatti dei protocolli di autenticazione
LM, NTLM e Kerberos
![Page 2: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/2.jpg)
Autenticazione e Autorizzazione
Autenticazione:Verifica l’identità dei Security PrincipalBasata su diversi fattori
Qualcosa che si conosce (password, pin, …)Qualcosa che si possiede (smartcard, token, …)Qualcosa che “ci definisce” (biometria)
I fattori possono essere combinati per aumentare la sicurezza
Autorizzazione:Consente o nega l’accesso alle risorseAutorizzazione legata a “liste di accesso” (ACL)I dati di autorizzazione comprendono appartenenza a gruppi di sicurezza e la definizione di privilegi di sistema
![Page 3: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/3.jpg)
Protocolli di autenticazioni in Windows
In Windows sono disponibili i protocolli di autenticazione:
LM (Lan Manager)
NTLM v1 e v2
Kerberos
SSL
Certificati digitali
Sono usati in situazioni diverse e hanno un diverso grado di affidabilità
![Page 4: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/4.jpg)
Autenticazione (AuthN)
Winlogon passa le informazioni di autenticazione a LSASS
LSASS determina quale stack di AuthN usare:
Login locale o remoto? Se è remoto
Kerberos
MSV1_0
NTLMv2, NTLM, LM
Lo stack scelto genera i dati di AuthN
![Page 5: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/5.jpg)
Autenticazione LM
Usato per autenticare l’accesso a
Server LAN Manager
Windows 9x con password a livello di share
Usato per autenticare l’accesso da
Windows CE/Windows 3.x
Tra server di un cluster
In alcuni casi usato da RTC
Meccanismo basato su challenge-response
Usa hash LM
![Page 6: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/6.jpg)
Autenticazione NTLM
Usata per autenticazioni a
Membri di dominio da non membri di dominio
Membri di dominio quando si usa indirizzo IP
\\server\share Kerberos
\\192.168.1.100\share NTLM
Non-domain members
Macchine Windows 9x con password a livello utente o autenticazione pass-through verso domain controller
Usa hash NT
![Page 7: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/7.jpg)
Autenticazione NTLM e LM
Authn_Request
Response – DES(LM Hash, nonce)
Server_Challenge – nonce
Authn_Result
Client ServerResponse – DES(Unicode pwd, nonce)
![Page 8: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/8.jpg)
Autenticazione NTLMv2
Considerabilmente più forte di NTLM
Usata per autenticare l’accesso a qualsiasi cosaNon c’è una configurazione di default
Usata per autenticare l’accesso daEveryone
Non c’è negoziazione tra NTLM e NTLMv2
Windows 9x richiede Directory Services client
Disegnato per proteggere il traffico di rete meglio di NTLM
Usa hash NT
![Page 9: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/9.jpg)
Autenticazione NTLMv2
Authn_Request
Challenge_Response(over secured channel)
Server_Challenge – nonce
Authn_Result
ClientClient ServerServer
![Page 10: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/10.jpg)
LMCompatibilityLevel
Livello
Invia Accetta Invii proibiti
0* LM, NTLM, LM, NTLM, NTLMv2
NTLMv2, Session security
1 LM, NTLM, Session security
LM, NTLM, NTLMv2
NTLMv2
2* NTLM, Session security LM, NTLM, NTLMv2
LM e NTLMv2
3 NTLMv2, Session security
LM, NTLM, NTLMv2
LM e NTLM
Livello
Invia Accetta Accettazioni proibite
4 NTLMv2, Session security
NTLM, NTLMv2 LM
5 NTLMv2, Session security
NTLMv2 LM and NTLM
Impatto lato client
Impatto lato server
* Default per alcuni OS
![Page 11: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/11.jpg)
Rappresentazione delle password
“Hash” LMVecchia tecnologia usata in LAN Manager
Hash NTA.k.a., password unicode password o hash MD4
Usata per autenticazione nei più recenti sistemi Windows
Credenziali in cacheDerivazioni di hash NT
Nomi utente e password salvateLe diverse applicazioni decidono come salvare i dati
![Page 12: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/12.jpg)
Generazione di “hash” LM “Hash”
Password convertita in TUTTE MAIUSCOLE
Riempimento con NULL fino a 14 caratteri
Divisa in due blocchi da 7
Chiave
CostanteKGS!@#$%
Seattle1 SEATTLE 1****** = +
LM Hash
Chiave
CostanteKGS!@#$%
Concatena
DES DES
![Page 13: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/13.jpg)
Meccanismo challenge/response di LM
DES
maiuscola(password[1-7])
KGS!@#$% LM_hash[1-8]
DES
maiuscola(password[8-14])
KGS!@#$% LM_hash[9-16]
LM_hash[17-21]
Come chiave
Come chiave
0000000000
![Page 14: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/14.jpg)
Meccanismo challenge/response di LM
DES
00
Risposta-LM[1-8]
DES
00000000
Risposta-LM[9-16]
Risposta-LM[17-24]
Hash-LM[1-7]
Hash-LM[8-14]
Hash-LM[15-21]
DES
Codice di sfida
Codice di sfida
Codice di sfida
Come chiave
Come chiave
Come chiave
![Page 15: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/15.jpg)
Password con meno di 8 caratteri…
00
DES
00000000
Risposta-LM[9-16]
Risposta-LM[17-24]
Hash-LM[8-14]
Hash-LM[15-21] EE04
B51435AAD3B4
DESCodice di sfida
Codice di sfida
Come chiave
Come chiave
DES
maiuscola(password[8-14])
KGS!@#$%Hash-LM[9-16]
35AAD3B4 EEB51404
Come chiave
00000000000000
![Page 16: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/16.jpg)
Considerazioni su “hash” LM
Non è un hash
Insieme di caratteri limitatoSolo l’insieme comune di caratteri alfanumerici
Non distingue maiuscoe e minuscole (case insensitive)
Variazioni di carattere ≈ 69
Riempimento a esattamente 14 caratteriIn pratica sono due password da sette caratteri
Massima entropia ≈ 7.5*1012 password
Unsalted
![Page 17: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/17.jpg)
Generazione di hash NT
Esecuzione dell’hash della password
Salvataggio dell’hash
UnicodePwd
Seattle1 MD4
![Page 18: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/18.jpg)
Autenticazione NTLMv2
MD4
HMAC MD5
HMAC MD5
unicode(password)
Come chiave
unicode(maiuscolo(nome-utente)+dominio-o-host) Come chiave
Sfida del server + sfida del client Risposta NTLMv2
![Page 19: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/19.jpg)
Considerazioni su hash NT
Vengono preservate maiuscole e minuscoleVariazioni di caratteri > 630
Lunghezza massima = 127 caratteri
Entropia per password di 14 caratteri con lo stesso insieme usato da “hash” LM ≈ 5.6*1025
Entropia per password di 14 caratteri (insieme di caratteri pieno) ≈ 1.5*1039 password
Entropia per password di 110 caratteri > 8.4*10307
Excel non riesce ad eseguire il calcolo del numero di password con 127 caratteri
Unsalted
![Page 20: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/20.jpg)
Generazione delle credenziali in cache
Salvate al logon
Gestite da LSA
Hash di un hash
UnicodePwd
MD5
Nome utente Dominio
Concatena
Credenziali in cache
![Page 21: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/21.jpg)
Considerazioni sulle credenziali in cache
Sono salvate localmente
Possono essere compromesse
È veramente diffcile
Servono attacchi offline
Le credenziali in cache non possono essere usate cosi’ come sono per accedere a risorse in rete
![Page 22: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/22.jpg)
Nomi utenti e passwords salvate in locale
Credential Manager
Salva credenziali basate su password localmente
Le applicazioni possono usarlo per salvare le password
Usa DPAPI o Protected Storage
![Page 23: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/23.jpg)
Dove sono le password?
Security Accounts Manager
Usato in Windows NT 4.0 e per credenziali locali in Win2000/WinXP/Win2003
Active Directory
Usata per le credenziali di dominio in Win2000/2003
Credenziali in cache salvate nel registry
Nomi utenti e password salvati localmente
DPAPI o Protected Storage
![Page 24: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/24.jpg)
Autenticazione multipiattaforma
Windows Server
UNIX-Linux Server
Active Directory
Dati di Autenticazione Locali o Remoti
impostati via file di testo
Logon
LogonKERBER
OS
![Page 25: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/25.jpg)
Vantaggi di Kerberos
Standard de facto per l’autenticazione
Disponibile per molte diverse piattaforme
Non definisce standard per i dati di autorizzazione
Consente la mutua autenticazione Client/Server
Riduce i tempi di connessione Client/Server
Consente la delega di identità
Versione attuale Kerberos 5
![Page 26: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/26.jpg)
Autenticazione con
Messaggi Criptati
Come funziona KerberosGli attori
Server
Chiave utente generata dalla password di logon
Chiave host generata durante il join al dominio
Database di Security Principal
User
Tutti gli attori sono parte del realm KerberosPer comunicare con fiducia devono condividere un segreto
KDC
Chiave KDC generata durante la creazione del ruolo DC
![Page 27: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/27.jpg)
Come funziona KerberosVisione d’insieme
1 - Richiesta di autenticazione
2 – Se l’utente è riconosciuto viene restituitoun Ticket-Granting-Ticket che consentela richiesta di service ticket
TGTSR3 – Viene richiesto un Service Ticket per
accedere alla macchina Linux1.Nella richiesta è passato anche il TGTche identifica l’utente
4 – Il KDC rilascia un Service Ticket per l’accesso al server Linux1
ST
KDC
ST Server
TGT
User
![Page 28: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/28.jpg)
Come funziona KerberosTicket rilasciati
TGT: identifica l’utente presso il KDC durante le richieste di Service TicketEvita il mantenimento dei dati di logon
ST: Valido solamente tra User e ServizioConsente la mutua autenticazione
Accellera la velocità di connessione perché rende non necessaria l’autenticazione da parte del servizio
La criptatura assicura che i ticket siano usati solo dagli attori appropiati
![Page 29: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/29.jpg)
Cos’è e come funziona KerberosComponenti
Il KDC consiste di due componenti
Authentication Service (AS)
Riceve: AS_REQuest
Invia: AS_REPly
Ticket Granting Server (TGS)
Riceve: TGS_REQuest
Invia: TGS_REPly
![Page 30: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/30.jpg)
Come funziona Kerberos
AS_REQKDC
Windows
Server
User
![Page 31: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/31.jpg)
Come funziona KerberosLogon Iniziale
L’AS verifica l’esistenza dell’account e costruisce un Reply criptato
Criptatura eseguita con la chiave generata dalla password utente
Solo l’utente vero sarà in grado di leggere la risposta
UserKDC
Client principal nameTimestamp
Krbtgt principal nameRequested lifetime
AS_REQ
![Page 32: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/32.jpg)
Come funziona KerberosPre-autenticazione
Il KDC può richiedere la pre-autenticazione
Riduce i rischi di riuso dei ticket associati ad attacchi off-line a dizionario/forza bruta
Abilitata per default inWindows 2000/2003
UserKDC
Client principal nameTimestamp
Krbtgt principal nameRequested lifetime
AS_REQ
AS decripta il timestamp e, se corrisponde all’ora
attuale (con il delta consentito – 5’ per default), la richiesta è considerata valida
![Page 33: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/33.jpg)
Come funziona Kerberos
AS_REP TGTKDC
Windows
Server
User
![Page 34: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/34.jpg)
Come funziona KerberosRisposta dell’AS
UserKDC
AS_REP
USER-TGS keyKrbtgt principal name
Ticket lifetime
TGTUSER-TGS key
Client principal nameTicket lifetime
KDC TimestampClient IP address
USER-TGS Keygenerata dall’AS
Criptato con la chiave utente
Criptato con la chiave del TGS
TGT
TGT viene salvato in locale e viene usato per le successive transazioni tra utente e TGS
![Page 35: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/35.jpg)
Come funziona Kerberos
TGS_REQ TGTKDC
Windows
Server
TGT
User
![Page 36: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/36.jpg)
Come funziona KerberosIl TGS – accesso ai servizi
L’Autenticator garantisce che la richiesta arrivi dal client e impedisce gli attacchi di tipo reply
Criptato con la chiave del TGS
UserKDC
TGTUSER-TGS key
Client principal nameTicket lifetime
KDC TimestampClient IP address
TGS_REQ
Service principal nameRequested lifetime
Client timestampAutenticator
Criptato con la USER-TGS key
![Page 37: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/37.jpg)
Come funziona KerberosIl TGT
Il KDC non mantiene la USER-TGS key
La copia della USER-TGS key viene inviata con il TGT
Criptato con la chiave del TGS
UserKDC
TGTUSER-TGS key
Client principal nameTicket lifetime
KDC TimestampClient IP address
Inviato con TGS_REQ
Dialogo criptato con la USER-TGS key
![Page 38: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/38.jpg)
Come funziona Kerberos
TGS_REP TSKDC
Windows
Server
TGT
User
![Page 39: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/39.jpg)
Come funziona KerberosRisposta del TGS
UserKDC
TGS_REP
Service TicketUSER-SERVICE key
Client principal nameTicket lifetime
KDC TimestampClient IP address
USER-TGS Keygenerata dall’AS
Criptato con la USER-TGS key
Criptato con la chiave SERVICE-TGS
TGTUSER-TGS keyTicket lifetime
USER-SERVICE keyST
![Page 40: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/40.jpg)
Come funziona Kerberos
SERVICE_REQTS
KDC Windows
Server
TGT
TSUser
![Page 41: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/41.jpg)
Dialogo criptato con la USER-SERVICE key
Come funziona KerberosIl TGT
Kerberos non definisce un protocollo per la richiesta dei servizi e per l’autorizzazione di accesso
Criptato con la chiave
SERVICE-TGS
User
Service TicketUSER-SERVICE key
Client principal nameTicket lifetime
KDC TimestampClient IP address
Service Request
Server
Client timestampAutenticator Criptato con la
USER-SERVICE key
![Page 42: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/42.jpg)
Installazione di Kerberos
In Windows 2000/XP/2003 è supportato in modo nativo e automaticamente installato
Non si deve fare nulla
È disponibile solo per logon verso domini Active Directory o altri Realm Kerberos (configurazione “manuale”)
![Page 43: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5542eb4b497959361e8b79e1/html5/thumbnails/43.jpg)
© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only.MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.