Sicurezza II Prof. Dario Catalano Autentica di Umani.
-
Upload
vincenza-cozzi -
Category
Documents
-
view
213 -
download
0
Transcript of Sicurezza II Prof. Dario Catalano Autentica di Umani.
Sicurezza IIProf. Dario Catalano
Autentica di Umani
User Authentication
Fino ad ora abbiamo trattato il caso in cui una macchina si autentica presso un’altra macchina (via rete).
Adesso considereremo il caso in cui un umano voglia autenticarsi presso una macchina.
User Authentication Authentication dipende dalle
caratteristiche di chi deve essere autenticato. Capacita’ di memorizzare chiavi
crittografiche (di alta qualita’) Abilita’ nel fare calcoli crittografici
I computer hanno queste capacita’ Gli umani sono pessimi in
entrambe
User Authentication User Auth. consiste in un computer che
verifica se l’utente e’ chi dice di essere Tre tecniche principali
Cosa conosci Es. pwds
Cosa possiedi Es. Bancomat
Chi sei Es. Biometric devices
Passwords Concetto antichissimo Usare una pwd per autenticarsi ha
diversi problemi Un adv puo’ “vedere” la pwd Puo’ leggere il file che le conserva La pwd puo’ essere facile da indovinare La pwd puo’ essere soggetta a dictionary
attacks Forzare gli utenti a scegliere pwd “difficili”
puo’ generare altri problemi.
Passwords
Oggi studieremo meccanismi per evitare che utenti non autorizzati accedano alle pwds
Linee di difesa Proteggere la comunicazione Limitare il numero di tentativi possibili Rendere le pwd difficili da indovinare
On line pwd guess Spesso indovinare la pwd di un utente non
e’ difficile In alcuni sistemi la pwd e’ inizialmente settata
ad un attributo (noto) dell’utente. E’ sorprendente quante poche frodi
effettivamente abbiano luogo. Anche se la pwd non e’ ovvia, puo’ essere
facile da indovinare. Se chi attacca ha abbastanza tentativi a
disposizione. In pratica bisogna vedere cosa tale
“abbastanza” significa.
On line attacks Dato che errare e’ umano e’ importante
dare piu’ di una possibilita’. Esistono diversi modi per limitare il
numero di tentativi (o l’intervallo tra diversi tentativi). Fare in modo che a provare sia un umano. Contare gli insuccessi, se oltre una data
soglia bloccare il sistema. Tale accorgimento puo’ creare altri problemi
(in determinati contesti).
On line attacks
Frenare l’attaccante permettendo solo un num. limitato di
tentativi per sessione. Le pwd scorrette vengono verificate
molto lentamente.
On line attacks
“Catturare” l’intruso Determinati comportamenti possono
destare sospetto. Tali comportamenti possono essere
rilevati grazie (anche) alla collaborazione degli utenti. All’avvio, segnalare eventuali login avvenuti
senza successo all’utente. Tale strategia non funziona per i cosiddetti
“stale accounts”.
Rendere le pwd difficili da indovinare. Se l’insieme di possibili pwd e’ troppo
grande, provare a caso diventa inutile. Se la pwd e’ una stringa random di 10
caratteri, un attaccante che puo’ testare una pwd ogni millesimo di sec avrebbe bisogno di circa tre anni per trovare quella giusta.
Problema: chi usa stringhe casuali come pwd?
Pwd casuali Io odio queste pwd
Non le ricordo e tendo a scriverle da qualche parte
Cio’ apre la via a tutta una nuova serie di attacchi.
Password pronunciabili La pwd e’ una stringa pronunciabile. Una stringa pronunciabile di 10 caratteri e’
piu’ facile da memorizzare di una stringa casuale di 8.
Fattibile soprattutto con la lingua inglese.
Un approccio migliore
Lasciare che gli utenti scelgano le proprie pwds. Si suggerisce una scelta adeguata. Ad es imporre qualche numero o
errori di ortografia. Il programma di selezione della pwd
dovrebbe impedire l’utilizzo di pwd facili da indovinare.
Off-line pwd guessing A volte l’avversario ha la possibilita’
(spiando comunicaz. o accedendo ad un DB) di acquisire informzioni che gli permettono di verificare la validita’ di una pwd, OFF-LINE L’attacco puo’ essere fatto con calma,
senza che nessuno sappia che un attacco e’ in corso.
Vera spina nel fianco degli schemi basati su pwd.
Un altro problema e’ che le pwd devono essere memorizzate (in qualche modo) nel server.
Il file delle pwd deve essere adeguatamente protetto e adeguatamente gestito. Ad es. una poco accurata gestione del
back-up puo’ creare problemi.
Unix Come abbiamo visto in Unix (vecchie
versioni) il file pwd contiene l’hash di ogni pwd ed e’ pubblicamente disponibile.
Quest’ultima e’ una pessima scelta. Le nuove implementazioni sono state
modificate in modo che gli utenti non autorizzati non abbiano tale accesso.
Memorizzare le hash Un problema di tale approccio e’ che il
system manager non ha accesso diretto alle pwd. Se un utente dimentica la pwd, deve
interagire con il SM per installarne una nuova.
Questo puo’ essere un problema se l’utente non sa se ha dimenticato la pwd o e’ vittima di un attacco.
Poter verificare la pwd in uso sarebbe utile.
L’uso di semi Un modo utile per limitare i danni
quando si intende rendere pubblico il file pwd e’ di usare un seme.
Ad ogni utente e’ associato un valore casuale seed (pubblico) di, per es., 4 cifre.
La funzione hash della pwd di Alice e’ dunque hash(seedAlice||pwdAlice).
Tale accorgimento permette di evitare attacchi ad utenti “generici”.
Quanto deve essere grande un segreto?
Con la tecnologia attuale una stringa casuale di 80 bit e’ (computaz.) impossibile da indovinare.
Un num di 80 bit ha piu’ di 20 cifre (espresso in decimale)
Nessuno riuscira’ mai a ricordare un segreto cosi’ grande.
Stringhe casuali
Assumendo di avere a disposizione 64 caratteri distinti, cio’ vuol dire una stringa (casuale) di 13 caratteri (circa). Nessuno puo’ ricordare qualcosa del
genere!
Stringhe pronunciabili Limitiamoci a stringhe pronunciabili Una consonante seguita da vocale (in
linea di massima una vocale ogni due parole).
Possiamo scegliere le vocali in 6(<23) modi e le consonanti in 20(<25).
Per avere una probabilita’ di successo minore di 280, dovremmo considerare stringhe di 20 caratteri.
Stringhe scelte dall’utente
L’esperienza suggerisce che per ogni carattere si hanno 2 bit di randomness.
Per avere una stringa non indovinabile si dovrebbe donque considerare una password di 40 caratteri.
Anche questa soluzione e’ improponibile!
Utenti disattenti Uno dei problemi della sicurezza e’ che
anche gli utenti legittimi possono comportarsi da avversari.
Molti utenti guardano alla sicurezza (e alle conseguenti limitazioni) piu’ come ad un problema che ad un servizio.
Usi sbagliati delle pwd sono estremamente frequenti. Pwd accessibili on line, o memorizzate in
email Script che contengono pwd (in chiaro) per
automatizzare accessi.
Password multiuso
Dilemma: usare sempre la stessa pwd o una per ogni applicazione.
In teoria sarebbe meglio usare una stessa pwd il meno possibile.
In pratica tale approccio potrebbe condurre a tanti problemi Scrivere le pwd per ricordare a cosa
corrispondono.
Cascade Break-ins
Un argomento a favore dell’approccio multipassword e’ che se un attaccante ottiene una pwd universale, puo’ entare ovunque tale pwd e’ usata.
Usare pwd diverse permette di limitare i danni di una intrusione.
Cambiare le pwd Anche questa e’ una questione
spinosa In linea di principio e’ buona abitudine
cambiare regolarmente la pwd. Alcuni sistemi obbligano l’utente a
cambiare regorlarmente pwd ogni tot giorni.
In pratica questa soluzione puo’ introdurre problemi sorprendenti.
Guardia e ladri Il SM obbliga l’utente a cambiare pwd ogni 4
mesi. L’utente utilizza il comand passwd ma introduce
sempre la stessa pwd. Il SM obbliga l’utente a cambiare davvero la
pwd L’utente crea dapprima una pwd temporanea e
subito dopo ritorna alla pwd iniziale. Il SM tiene traccia delle n pwd piu’ recenti e
costringe l’utente a scegliere una pwd non usata da almeno n cambi. L’utente crea n pwd temporanee per poi ritornare
alla pwd iniziale.
Guardia e ladri Il SM obbliga l’utente a cambiare pwd
ma non permette ulteriori cambi per (qualche) giorno a seguire L’utente crea una nuova pwd che e’ diversa
dalla precedente nell’ultimo carattere. Il SM impedisce di scegliere una nuova
pwd troppo simile alla precedente. L’utente si arrende. Sceglie una pwd
impossibile da ricordare e la scrive su un post-it da attaccare al monitor.
Login Trojan Horses
Programma che simula una schermata di login Una volta inserita la pwd, il
programma simula un errore, esce (ma conosce la pwd).
Se l’utente e’ “sprovveduto” non c’e’ nulla che si possa fare contro un tale attacco.
Contromisure minime In molti sistemi esistono svariati modi per
interrompere programmi in esecuzione. Win NT (e seguenti) richiede all’utente di premere
CTRL-ALT-CANC prima di fare il log-in. Pero’ molti sistemi permettono ai programmi che
eseguono di disabilitare gli interrupt In ogni caso, e’ importante capire che la
collaborazione dell’utente e’ fondamentale.
Distribuzione iniziale delle pwd Tutto quanto detto sino ad ora assume
che utenti e sistemi condividano (in qualche modo) una pwd
Come arrivare a tale stato? L’utente si “presenta” al SM
(fisicamente) e sceglie una pwd. Potrebbe essere complicato per l’utente
incontrare il SM Potrebbe essere pericoloso lasciare un
utente agire sulla macchina del SM
Altre soluzioni
Il SM sceglie una “buona” pwd per l’utente, e ricorda a quest’ultimo di cambiarla. Alcuni sistemi impongono all’utente di
cambiare la pwd come procedura di primo login.
Alternativamente la stessa procedura puo’ essere fatta via posta (ordinaria).
Una soluzione molto diffusa (e insicura) e’ di scegliere una prima pwd facilmente derivabile dai dati dell’utente.
Tale soluzione puo’ comunque essere accettata in contesti in cui la perdita di sicurezza ha conseguenze limitate.
Authentication Tokens Oggetto che puo’ essere utilizzato per
autenticarsi Es. Bancomat, Chiavi di casa, chiavi della
macchina, documenti. Il problema di tali oggetti e’ che in
generale non sono indissolubilmente legati all’utente. Possono essere rubati,persi,…
Inoltre richiedono spesso hardware dedicato. Puo’ essere costoso
Per questo si ricorre talvolta ad un ulteriore meccanismo.
Carte di credito
Nella vers. tradiz. non offrono nessuna sicurezza contro chi origlia la comunicazione. Qualunque informazione inviata puo’
essere memorizzata ed utilizzata. Le piu’ recenti smart card sono
molto migliori.
Smart Cards Molto simile alle carte di credito. Dotate di piccola CPU e memoria. Quando inserite nel lettore la carta
comincia una protocollo con il lettore Le carte magnetiche si limitano a leggere il
contenuto della propria memoria. Tre tipi di smart cards: PIN protected,
Crypto challenge/response e Crypto Calculator.
PIN Protected Cards L’info in memoria puo’ essere letto solo
dopo che il PIN e’ inserito correttamente. Dopo un certo num di errori la carta si
blocca. Una carta senza il PIN e’ del tutto inutile Carte piu’ difficili da duplicare rispetto a
quelle magnetiche (soprattutto senza il PIN)
Challenge Response La memoria contiene una chiave k (usata
per cifrare e decifrare) La carta non rivela la chiave nemmeno se
il PIN corretto e’ inserito. Un computer che conosce k, puo’
autenticare la carta (utente) chiedendo di cifrare (o decifrare) un messaggio random. Se la risposta e’ corretta il server conclude
che il PIN inserito e’ quello giusto e la carta e’ letta dall’apposito lettore.
Challenge Response (cont)
Possono essere costruite in modo da essere praticamente impossibili da copiare
Non avendo alcun modo diretto per estrarre la chiave, l’unica possibilita’ e’ di disassemblarla.
In pratica cio’ le rende molto sicure.
Crypto Calculator Esegue calcoli crittografici usando una
chiave (non rivelata esplicitamente) Diversa da smart card, perche’ non
deve essere collegata ad un lettore. Ha un display, (talvolta) una tastiera e
interagisce col sistema tramite l’utente. Non aver bisogno di hardware dedicato
e’ un bel vantaggio in pratica.
Esempio Simula una smart card L’utente inserisce il PIN (per iniziare) Il server genera un valore random A e
chiede all’utente di rispondere per autenticarsi.
L’utente inserisce A nella CC e ottiene una risposta R da inviare al server. Es. CC cifra A e restituisce il crittotesto.
Esempio (cont.) Un modo per migliorare l’efficienza
del protocollo descritto e’ cifrare l’ora attuale e usare tale crittotesto per autenticarsi. Bisogna pero’ fare in modo che il
computer e la CC siano sinconizzati. La tastiera puo’ essere eliminata
permettendo una connessione diretta computer CC.
Accesso Fisico
Un buon modo per proteggere la sicurezza di un sistema e’ Isolare il sistema. Porre una guardia armata (o qualcosa
di simile) a sua custodia. Alcuni sistemi adottano soluzioni
simili a questa.
Biometric Devices Misurano caratteristiche fisiche e
le confrontano con quelle memorizzate in archivio. Es. Impronte digitali
In generale richiedono hardware dedicato (e costoso) Lettori di impronte digitali, Scanner di
retina o dell’iride, riconoscitori vocali, tempo di battitura, firme etc…
Biometric Devices
Un altro problema di tale approccio e’ che i dati biometrici sono difficili da tenere segreti.
Chiunque ha visto la mia firma potrebbe duplicarla con non troppe difficolta’.