fatti e misfatti dei protocolli di autenticazione lm, ntlm e kerberos

43
Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos

Upload: adona-franchini

Post on 01-May-2015

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos

Fatti e misfatti dei protocolli di autenticazione

LM, NTLM e Kerberos

Page 2: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Come funziona Kerberos

AS_REQKDC

Windows

Server

User

Page 31: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos

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

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

Come funziona Kerberos

AS_REP TGTKDC

Windows

Server

User

Page 34: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos

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

Come funziona Kerberos

TGS_REQ TGTKDC

Windows

Server

TGT

User

Page 36: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos

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

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

Come funziona Kerberos

TGS_REP TSKDC

Windows

Server

TGT

User

Page 39: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos

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

Come funziona Kerberos

SERVICE_REQTS

KDC Windows

Server

TGT

TSUser

Page 41: Fatti e misfatti dei protocolli di autenticazione LM, NTLM e Kerberos

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

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

© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only.MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.