Protezione degli account e delle password degli utenti

Protezione degli
account e delle
password degli utenti
In ambito locale (Sam) e di dominio
basato su Active Directory
Manuela Gaglianone, Manuela Micheli, Alessio Antonelli
Principi base della sicurezza

Gestire la sicurezza delle informazioni non è semplice. Per realizzare una buona
gestione in questo senso occorre una buona combinazione di capacità di tipo tecnico,
economico e personale.

Le 10 leggi fondamentali della sicurezza

Nel 2000 Scott Culp del Microsoft Security Respons ha pubblicato l’ articolo “The Ten
Immutable Laws of Security
Le dieci leggi della sicurezza

1) Se una persona poco affidabile può convincervi ad utilizzare il suo programma sul
vostro computer, non si tratta più del vostro computer

2) Se una persona poco affidabile può alterare il sistema operativo del vostro
computer, non si tratta più del vostro computer

3) Se una persona poco affidabile ha accesso fisico illimitato al vostro computer, non
si tratta più del vostro computer

4) Se si consente a una persona poco affidabile di caricare programmi sul vostro sito
web, non si tratta più del vostro sito web.

5) Le password deboli riducono notevolmente anche una protezione elevata
(Anche se la progettazione di un sistema è completamente sicura, se gli utenti
o gli amministratori non utilizzano password oppure utilizzano password
predefinite o semplici, la protezione verrà resa inefficace una volta che un
aggressore compromette la password)
Le dieci leggi della sicurezza

6) Un computer è tanto sicuro quanto un amministratore è affidabile

7) I dati crittografati sono tanto sicuri quanto la chiave di decrittazione (Nessun
algoritmo crittografico proteggerà il testo cifrato da un aggressore se questo
possiede o può entrare in possesso della chiave di decrittazione. La crittografia
da sola non è una soluzione al problema, a meno che esista un forte
componente di gestione delle chiavi e gli utenti e amministratori siano attenti
nel proteggere le loro chiavi o il materiale correlato)

8) Un programma antivirus non aggiornato è appena meglio di nessun programma
antivirus

9) L’anonimato assoluto non è pratico, sia nella vita reale che nel web

10) La tecnologia non è una panacea
Il problema dell’ autenticazione

Il primo obbiettivo: riconoscere l’utente

L’ account come unità centrale di protezione del computer basato su
windows nt, windows 2000 e windows xp

Le autorizzazioni, le credenziali e le possibilità di accesso ad una risorsa,
sia essa locale o di rete vengono definite dalle credenziali associate a quell’
account, la somma di queste autorizzazioni e diritti definisce le operazioni
che un utente può effettuare sulle risorse condivise.
Il problema dell’ autenticazione

Gli account utente possono avere ambito locale o di dominio.

In ambito locale gli account sono memorizzati in database S.A.M. (Security
Account Manager) individuali sulle unità disco rigido delle workstation

In ambito di dominio gli account sono memorizzati nel servizio Active
Directory dei controller di dominio (Server Primario)

Il processo di riconoscimento e autenticazione è differente nei due casi.

Tale processo ha lo stesso fine: affidare le giuste credenziali all’ operatore
che si sta autenticando
Il problema della complessità







La complessità di una password è di vitale importanza alla protezione dell’
account
Password semplici sono vulnerabili sia ad attacchi brute force sia ad
attacchi vocabolario
La potenza dei calcolatori aumentando mette a rischio la robustezza della
password e la espone ad attachi di forza bruta
Una buona password deve soddisfare i requisiti di lunghezza (almeno 8
caratteri per i computer client o fuori rete e 12 caratteri per i controller di
dominio)
Non di senso compiuto ( un attacco vocabolario la renderebbe praticamente
nulla)
Alfanumerica (per aumentare il pool delle combinazioni)
Contenente caratteri speciali ( come sopra )
Descrizione degli identificatori di
protezione

Mentre gli utenti identificano gli account con nome utente e password il
sistema operativo li identifica attraverso gli identificatori di protezione S.I.D.

Per gli account di dominio, il S.I.D. di una identità di protezione è creato
concatenando il S.I.D. del dominio con un identificativo relativo dell’ account
(R.I.D.)

I S.I.D. sono univoci nel loro ambito (dominio o locale) e non possono
essere riutilizzati.

Esempio di S.I.D. S-1-5-21-833815213-1531848612-156796815-1105
I S.I.D. contengono diversi componenti:
Revisione: La versione del sistema operativo (1 nell’esempio NT/2000/XP)
Autorità identificatore: Il più alto livello di autorità che può rilasciare S.I.D.
Sottoautorità: o identificativo di dominio (3 gruppi di 9 caratteri)
Il R.I.D.: Che identifica l’ appartenenza dell’ utente al gruppo di protezione:
Administrator, Power User, Guest, Domain User, . . . . . (1105 nell’esempio)






Descrizione dei token di accesso

Ogni volta che un utente richiede l’ autenticazione viene creato un token di
accesso

Il token è utilizzato dal computer per detrminare se l’ utente dispone o meno
dell’ autorità appropriata per accedere a informazioni o per eseguire un
azione o operazione

Il token contiene le seguenti informazioni: S.I.D. account, S.I.D. di gruppo,
Diritti, Proprietario, Gruppo Primario, Origine, Tipo, Livello di
rappresentazione, Statistiche, S.I.D. con restrizioni, ID sessione.
Descrizione della sequenza di
autenticazione





Definizione dell’ L.S.A. LSA (Local Security Authority, ovvero Autorità di
Sicurezza Locale). E` conosciuto anche con il nome di Security Subsystem
(Sottosistema di Sicurezza). E` il componente centrale della sicurezza NT
ed è preposto all'autenticazione degli utenti e all'audit (login).
Interazione con il database S.A.M. (Security Account Manager, ovvero
Manager di Sicurezza degli Account) Fornisce autenticazione al LSA e
controlla gli account per gruppi e utenti.
L'autenticazione degli utenti funziona nel modo seguente: l'utente effettua il
login, NT crea un token che rappresenta quell'utente e associa al token i
privilegi che gli competono, e agisce in base ad essi.
La sequenza di autenticazione avviene utilizzando diversi protocolli tra cui:
Lan Manager, NT Lan Manager (NTLM), NTLMv2
Hash: valore numerico che rappresenta la password crittografata, si trova
nel S.A.M o in Active Directory.
Lan Manager

L’autenticazione Lan Manager è implementata in Windows NT, Windows
2000 Windows XP per supportare applicazioni precedenti. Le password LM
sono limitate a 14 caratteri. Con LM, le password stesse non sono
memorizzate dal sistema operativo ma crittografate con la funzione OWF
(One Way Function) di Lan Manager.

Archiviazione della password:

Questa funzione è formata convertendo la password in caratteri maiuscoli,
dividendo la password di 14 caratteri in due metà di 7 caratteri, aggiungendo
caratteri di riempimento a password con meno di 14 caratteri e
crittografando una costante con le due metà di caratteri utilizzando l’
algoritmo di crittografia DES.
Lan Manager
Lan Manager



L’autenticazione di una password con il protocollo LM viene eseguita
utilizzando un semplice meccanismo challenge / responce (sfida –
risposta) del controller di dominio o del computer di autenticazione
locale.
Ciò che viene usato per autenticarsi è l’hash e non la password vera e
propria
In figura viene mostrato il processo di autenticazione di un account
utilizzando LM
Lan Manager


Nella figura è illustrato come il client invia una richiesta di autenticazione al
server di accesso. Questo restituisce un challenge costituito da un numero
casuale, o nonce. Il client utilizza l’ hash di password LM per crittografare il
nonce utilizzando l’algoritmo di crittografia DES. Quindi il server decifra il
nonce crittografato dal client utilizzando la password LM che è stata
memorizzata nel Database degli account ( oppure nel S.A.M. in caso di
accesso locale). Se il nonce corrisponde al nonce inviato al client, le
credenziali del client verranno convalidate.
Riducendo il pool di tasti per le lettere in modo da includere solo lettere
maiuscole, limitando le password a 14 caratteri e separandole in due metà,
si rendono gli hash particolarmente vulnerabili ad attacchi a forza bruta e di
dizionario.
NT Lan Manager



NT Lan Manager noto anche come NTLM, era inizialmente fornito con
Windows NT ed è un miglioramento del protocollo di autenticazione LM. A
differenza delle password LM, le password NTLM sono basate sul set di
caratteri UNICODE, supportano il riconoscimento delle maiuscole e
possono avere una lunghezza massima di 128 caratteri. Come per LM, il
sistema operativo non memorizza di fatto la password ma una sua
rappresentazione utilizzando la funzione OWF di NTLM. La funzione
suddetta è ottenuta utilizzando la funzione hash MD4 che calcola un hash di
16 byte o digest di una stringa di testo di lunghezza variabile ( nel nostro
caso la password dell’utente )
Un’ altra differenza tra NTLM e LM è che la password NTLM non sono
suddivise in parti più piccole prima che venga calcolato l’algoritmo di hash.
NTLM utilizza lo stesso processo challenge / response di autenticazione
utilizzato da LM.
NT Lan Manager
MD 4

E’ considerato basilare per le funzioni hash:


Il messaggio è diviso in blocchi da 512 bit
Funzione di compressione sui blocchi
Si genera il valore hash

L’output ha lunghezza di 128 bit

Hans Dobbertin sviluppò un attacco in grado di generare collisioni in circa
un minuto di tempo di calcolo su un normale pc.

MD 4

Vantaggi:

Semplicità e compattezza
Descriverlo non richiede molte linee di codice






Sicurezza:
Un attacco forza bruta è computazionalmente impraticabile
Velocità:
Si basa su semplici operazioni su parole di 32 bit
Nel 1994 è stato perfezionato con MD 5 meno simmetrico e più sicuro ma
anche meno veloce
NT Lan Manager v2

NTLMv2 la seconda versione del protocollo NTLM segue le stesse regole
di password della precedente versione, tuttavia questa utilizza un processo
leggermente diverso per calcolare l’ hash di password e un diverso
processo di autenticazione.

NTLMv2 richiede inoltre che la differenza tra gli orologi del client e dei
server sia inferiore a 30 minuti.

NTLMv2 utilizza un keyspace per tasti derivati da una password di 128 bit
criptata con la System Key. Questo rende difficili gli attacchi a forza bruta.
Se client e server supportano NTLMv2, verrà negoziata una protezione di
sessione avanzata.

Questa operazione separa le chiavi in base a integrità e riservatezza di un
messaggio, fornisce input di client nel challenge per evitare attacchi a testo
in chiaro.
Kerberos v.5









Kerberos è il componente chiave del modello di sicurezza di Windows 2000
Server,Windows 2000 e Windows XP che sostituisce NTLM come protocollo
alla base del sistema di autenticazione.
Cenni storici: Nella mitologia greca Cerbero era il cane a tre teste che
difendeva l’ Ade. Il software Kerberos è stato sviluppato nel corso del
progetto Athena condotto presso il M.I.T. (Massachussets Institute of
Technology) negli anni ’80.
Si tratta di un metodo che permette di verificare l’ identità di un utente
utilizzando diverse chiavi di codifica
Kerberos è composto da diverse componenti tra cui le fondamentali per
l’autenticazione tra client e controller di dominio Active Directory:
Centro distribuzione chiavi (KDC, Key Distribution Center)
Ticket di concessione Ticket (TGT)
Ticket di servizio
Ticket di riferimento
Client / Server Authentication Exchange
Kerberos v.5







Struttura dell’ autenticazione Client / Server
L’ utente inserisce nome utente password e dominio di accesso nella
finestra di dialogo di Windows XP o 2k
Il client individua un KDC interrogando un server DNS sulla rete
Il client invia un pacchetto Kerberos Authentication Request
(KRB_AS_REQ) al controller di dominio.
In questa fase le informazioni dell’ account utente vengono crittografate
usando la chiave a lungo termine presente nel client e nel KDC
Per finire, il servizio di autenticazione KDC autentica l’utente e genera un
TGT che restituisce all’ utente stesso in un messaggio di tipo Kerberos
Autentication Service Response (KRB_AS_REP).
Quando un utente si autentica vengono scambiati una serie di pacchetti che
completano la convalida delle credenziali.
Kerberos v.5
Questa sequenza fornisce all’
utente un TGT corretto, ma se,
come nel nostro caso, il client
utilizza un sistema Win 2K o
Win Xp allora questo ticket non
è sufficiente.
Si dovrà ottenere un Ticket per
il computer locale:
1) L’ utente invia un messaggio Ticket-Granting Service Request
(KRB_TGS_REQ) al KDC per ottenere un ticket di servizio per il computer di
destinazione. Tale messaggio include il TGT e un autenticatore.
 Il servizio di concessione ticket del KDC controlla l’autenticatore e il TGT,
quindi genera un nuovo ticket di servizio che restituisce all’ utente per mezzo di
un messaggio Kerberos Ticket-Granting Service Response (KRB_TGS_REP).
Il ticket di servizio è crittografato utilizzando la chiave a lungo termine del
servizio di destinazione, nota solo al KDC e al servizio di destinazione.
 L’utente invia il ticket di servizio ricevuto e un autenticatore al server di
destinazione utilizzando un messaggio Kerberos Application Request
(KRB_AP_REQ)

Kerberos v.5

Il server di destinazione verifica il ticket con l’autenticatore, decrittografa la
chiave di sessione utilizzando la chiave principale condivisa con il KDC e
restituisce un autenticatore in un messaggio Kerberos Application
Response (KRB_AP_REP). Questa sequenza, infine autentica del tutto il
client fornendo una applicazione di reciproca “fiducia” tra client e server.
Archiviazione in locale “LSA”






Oltre a memorizzare, come visto, password in database SAM o Active
Directory in controller di dominio, Win NT/2K/XP memorizzano le chiavi di
accesso in altri percorsi e altre regioni.
L’autorità di protezione locale (LSA) gestisce le informazioni riguardanti tutti
gli aspetti della protezione del sistema operativo locale. L’ LSA esegue tra le
altre cose le seguenti operazioni:
Autenticazione degli utenti locali
Gestione dei criteri di protezione locali
Generazione dei token di accesso
Inoltre LSA memorizza informazioni utilizzate in maniera segreta dal sitema
operativo, note come segreti LSA. I segreti LSA includono password di
relazioni trust, nomi utente, password e nomi account e password di servizi
eseguiti utilizzando un contesto di account utente. I segreti LSA possono
essere rivelati localmente da account con diritti utente Debug Programs. Di
conseguenza è necessario prestare attenzione alle informazioni
memorizzate dalle applicazioni come segreti LSA. Aggressori che
manomettono fisicamente il computer possono facilmente ottenere l’
accesso alle informazioni memorizzate come segreti LSA se non sono
adottate altre precauzioni, come l’utilizzo della chiave di sistema
(SysKey.exe).
Archiviazione in locale “LSA”




L’ utilità Chiave di sistema era inizialmente disponibile in Windows NT. E’
possibile configurare l’utilità Chiave di sistema digitando Syskey.exe al
prompt dei comandi. Solo i membri del gruppo Administrators possono
eseguire Syskey.exe per inizializzare o modificare la chiave di sistema.
Questa è la “ chiave principale ”utilizzata per proteggere la chiave di
crittografia password; pertanto, la protezione della chiave di sistema è un
operazione di protezione del sistema fondamentale. Sono disponibili tre
opzioni per gestire la chiave di sistema:
Livello 1 Utilizza una chiave di sistema casuale generata dalla macchina e
la memorizza nel sistema locale. Per impostazione di default questa
purtroppo è la configurazione che tutti i sistemi windows xp o 2000
utilizzano.
Livello 2 Utilizza una chiave casuale generata dalla macchina e la
memorizza su un disco floppy. Per consentire agli utenti di connettersi il
sistema deve essere avviato con il disco floppy contenente la chiave di
sistema.
Livello 3 Utilizza una password scelta dall’ amministratore per derivare la
chiave di sistema. Durante la fase iniziale della sequenza di avvio viene
visualizzata una finestra di dialogo in cui viene chiesto di inserire la
password della chiave di sistema prima che gli utenti possano connettersi.
Utilizzo della chiave di sistema

La password Chiave di sistema non è memorizzata nel sistema. Un hash
MD5 della password è invece utilizzato come chiave principale per
proteggere la chiave di crittografia password. Se si dimentica la password il
sistema non potrà essere avviato.

Come rendere sicuro l’accesso ad un sistema di tipo 2 oppure 3 ? La
risposta è posta nella biometria.
Un disco floppy si può distruggere o deteriorare oppure una password
dimenticare i sistemi biometrici impediscono questi inconvenienti rendendo
sicuro l’accesso al sistema.
Tra i metodi di autenticazione biometrica troviamo: Il fingerprint
(riconoscimento delle impronte digitali), Il riconoscimento della geometria
del viso o della mano, il riconoscimento dell’ iride e il futuristico
riconoscimento della sequenza genica.
In natura ci sono caratteristiche che differenziano in maniera univoca ogni
essere umano, tali differenze se digitalizzate sono un ottimo metodo di
riconoscimento e autenticazione.



I sistemi biometrici





Analizzeremo ora come è possibile tradurre una informazione biologica in
segnali da utilizzare al posto della semplice crittografia. Coniugando questa
scienza con tali informazioni è possibile raggiungere il massimo sistema di
sicurezza ad oggi disponibile.
Il fingerprint, come metodo di riconoscimento si sta affermando
velocemente ed è già possibile trovare in vendita nei negozi specializzati
hardware di questo tipo ad un prezzo accessibile.
La microsoft ha realizzato periferiche di uso comune come mouse e tastiere
che possiedono la funzione di fingerprint reader. Maggiori informazioni sul
sito Microsoft.com
(http://www.microsoft.com/italy/hardware/mouseandkeyboard/features/finger
print.mspx)
Analizziamo il funzionamento di tale tecnologia per la sostituzione delle
password tenendo presente che il processo di acquisizione e
digitalizzazione è praticamente uguale in ogni tipologia di riconoscimento
biometrico.
I sistemi biometrici
Un sistema è detto biometrico quando è in grado di
riconoscere una persona (cioè verificare se un
individuo è veramente colui che dichiara di essere)
sulla base di caratteristiche fisiologiche (impronta
digitale, forma del volto o della mano, retina, iride,
timbro di voce, vene …) e/o comportamentali
(calligrafia, stile di battitura …).
Un sistema biometrico è costituito da due diversi momenti:
La fase di registrazione iniziale (normalmente definita enrollment), durante la
quale vengono acquisiti più campioni della caratteristica biometrica e viene
creato il modello che verrà usato per i confronti successivi.
la fase di riconoscimento, che si ripete ogni qual volta l’utente si presenta al
punto di controllo.
I sistemi biometrici

A sua volta la fase di riconoscimento può essere di due tipi:

Si parla di verifica (o riconoscimento 1:1) quando l'utente che si
presenta al punto di controllo confronta la sua caratteristica
biometrica con quello che dovrebbe essere il suo modello regsitrato
al momento dell'enrollment. Per fare questo, prima di identificarsi
biometricamente, l'utente richiama il proprio modello digitando il
codice univoco a lui associato (es. la propria matricola).

Si parla invece di identificazione (o riconoscimento 1:N) quando
l'utente che vuole identificarsi si confronta con tutta la popolazione
degli N utenti presenti nel sistema. Al momento del riconoscimento,
quindi, il dispositivo confronta la caratteristica sottopostagli con tutte
quelle registrate.
I sistemi biometrici





Ma i sistemi di cui abbiamo parlato per la gestione delle password sono
comunque validi?
La risposta è decisamente si, la biometria sostituisce la password ottenendo
una rappresentazione digitale della caratteristica fisiologica e
trasformandola in un valore di 1024 bit che rappresenta la password e viene
trattata dai sistemi informativi come se fosse immessa dall’ utente.
Il vantaggio principale oltre a quelli ovvi dell’ unicità e della praticità di non
dover conservare ne smart card, ne password tradizionali, è soprattutto
quello che consente la scelta di una parola chiave di accesso al sistema
talmente varia e incomprensibile che la rende molto protetta da attacchi di
forza bruta e praticamente inattaccabile agli attacchi vocabolario. (Non di
senso compiuto)
I valori hash delle password “biometriche” sono trattati esattamente allo
stesso modo delle password tradizionali ma con il vantaggio di essere
assolutamente inavvicinabili.
L’unico modo per sormontare un sistema biometrico è quello di cercare in
qualche modo di ricreare in laboratorio la componente biologica della
persona autorizzata, cosa attualmente possibile per le impronte digitali ma
improponibile per il riconoscimento dell’ iride e della conformazione di vene
e arterie.
I sistemi biometrici

Maggiori informazioni sulle applicazioni User consumer dei supporti
biometrici ed in particolare su Fingerprint su http://www.microsoft.com

Informazioni su altri sistemi biometrici quali riconoscimento della geometria
del viso, della mano, dell’ iride o della struttura vascolare su
http://www.biometric.it