Chapter3-Authentication Flashcards
Cos’è un Credential Service Provider (CSP)?
Un CSP è un servizio che si occupa di assegnare delle credenziali ad un utente che si vuole iscrivere ad un determinato servizio. Per poter entrare in comunicazione con un CSP un utente si deve rivolgere ad una registration authority.
Cos’è una Registration Authority?
La base dell’user authentication è che l’utente sia registrato a un sistema. Per farlo l’utente si rivolge a una registration authority per diventare “iscritto” ad un credential service provider. In questo modello la RA è una entità trusted che stabilisce e fa valere l’identità dell’iscritto al CSP.
Cosa si intende per User Authentication
Si intende un processo che garantisce ad un utente l’accesso ad un sistema, attraverso l’autenticazione. In questo modo il sistema ottiene fiducia nei confronti dell’identità di un utente.
Risposta del tizio:
Per user authentication si intende un processo che permette di ottenere fiducia nell’identità di un utente, presente elettronicamente all’interno di un sistema.
L’autenticazione è articolata in due step:
- l’identification step: presenting an identifier to the security system;
- verification step: presenting or generating authentication information that corroborates the binding between entity and identifier.
Cosa può essere usato per autenticare un utente?
- Qualcosa che l’utente conosce (password, pin);
- Qualcosa che l’utente possiede (carta magnetica, token);
- Qualcosa che l’utente è (biometria);
- Qualcosa che l’utente fa (riconoscimento vocale, scrittura a mano libera)
Cos’è l’autenticazione a più fattori?
Tipo di autenticazione che unisce più metodi, è più sicuro rispetto all’autenticazione a singolo fattore. Mandatory:
1) something the user knows;
2) something generated by a device that the user owns (In band check).
Cosa sono l’Assurance Level ed il Potential Impact?
Un assurance level descrive un grado di confidenza che un’azienda ha sul fatto che un determinato utente abbia presentato delle credenziali che si riferiscono alla sua vera identità. Si hanno 4 livelli di assurance, dal livello 1 che è quello in cui non si ha fiducia nella validità dell’identità inserita fino al 4 in cui si ha un’estrema fiducia che ogni utente abbia immesso le proprie effettive credenziali. Il potential impact è strettamente legato all’assurance level, e identifica l’impatto che un
errore di autenticazione potrebbe provare all’azienda (low, moderate, high).
Come funziona l’autenticazione basata su password?
L’autenticazione basata su password o chiave segreta lega l’ID di un utente a una parola chiave che solo l’utente conosce, in modo da certificare la sua identità e autorizzarlo a compiere determinate operazioni sugli asset. Quando l’utente vuole autenticarsi deve presentare sul sistema il suo ID (può essere qualsiasi cosa che identifichi l’utente, come una mail o il numero di telefono) e la password. Se la password coincide con la stessa password presente sul sistema (presumibilmente impostata durante la fase di
registrazione) l’utente è autenticato. L’ID è caratterizzato da 3 fondamentali aspetti:
- certifica che l’utente è autorizzato ad accedere;
- determina i privilegi dell’utente;
- è utilizzato nel controllo degli accessi.
Quali sono i metodi più utilizzati per attaccare l’autenticazione basata su password?
- Offline dictionary attack: in genere, vengono utilizzati controlli di accesso avanzati per proteggere il file delle password del sistema.
Tuttavia, gli hacker possono spesso aggirare tali controlli e ottenere l’accesso al file. l’aggressore ottiene il file della password di sistema e
confronta gli hash della password contro gli hash delle password di uso comune. Se viene trovata una corrispondenza, l’attaccante può ottenere
l’accesso tramite quella combinazione ID/password. Le contromisure includono controlli per impedire l’accesso non autorizzato al file delle password, rilevamento delle intrusioni per identificare una compromissione e una rapida remissione delle password nel caso in cui il file della password venga compromesso. - Specific account attack: l’attaccante prende di mira un account specifico e prova ad indovinare la password finché non viene scoperta. Una contromisura sarebbe quella di implementare un meccanismo di blocco dell’account, che blocca l’accesso all’account dopo una serie di
tentativi di accesso non riusciti. - popular password attack: una variante dell’attacco precedente consiste nell’utilizzare una password e provala con un’ampia gamma di ID utente. La tendenza di un utente è scegliere una password che si ricordi facilmente; questo purtroppo rende la password facile da indovinare. Le contromisure includono politiche per disincentivare la selezione da parte
degli utenti di password comuni. - password guessing against a single user: l’attaccante tenta di acquisire informazioni sul titolare dell’account al fine di indovinare la password. Le contromisure comprendono l’applicazione di criteri di password che rendono le password difficili da indovinare. Tali politiche riguardano la segretezza, la lunghezza minima della password, il set di caratteri.
- workstation hijacking: l’attaccante attende che una workstation connessa sia incustodita. La contromisura standard blocca la macchina della postazione.
- exploiting user mistake: se il sistema assegna una password, l’utente è più probabile che la scriva da qualche parte perché è difficile da
ricordare. Questa situazione crea la possibilità per un avversario di leggere la password scritta. Un utente può condividere intenzionalmente
una password, per consentire a un collega di condividere file, per esempio. Inoltre, gli aggressori riescono spesso a ottenere le password utilizzando tattiche di social engineer che ingannano l’utente facendoli così rivelare la password. Le contromisure comprendono la formazione degli utenti, rilevamento delle intrusioni e l’uso di password semplici combinate con un altro meccanismo di autenticazione. - exploiting multiple password use: gli attacchi possono anche diventare molto di più efficaci o dannosi se diversi dispositivi di rete condividono la stessa password o una password simile per un determinato utente. Le contromisure includono una politica che vieta di usare password uguali o
simili su particolari dispositivi di rete. - electronic monitoring: se viene comunicata una password attraverso una rete, è vulnerabile alle intercettazioni. La crittografia semplice non risolve il problema, perché la password crittografata è, di fatto, la password e può essere osservata e riutilizzata da un avversario.
Cos’è il salt value nell’autenticazione? A cosa serve?
Il salt value è un valore in plain text che viene assegnato all’utente durante la fase di registrazione al sistema. Può essere generato pseudo casualmente o in base al momento in
cui l’utente si registra. Il salt viene usato come input insieme alla password della funzione di hash per generare l’hash della password. Il salt è mantenuto insieme al record dell’utente in modo da poter calcolare l’hash nel momento dell’autenticazione. Il salt non varia nel tempo.
Il salt è fighissimo, serve a:
1) prevenire che due password uguali abbiano lo stesso hash nel file delle password.
2) La difficoltà di attacchi offline cresce di brutto, per un salt di n bit il numero di password da provare aumenta di 2^n
3) Diventa molto difficile capire se un utente ha usato la stessa password su sistemi
diversi.
Dove viene inserito il salt value? Quando viene generato? Varia nel tempo?
Viene inserito all’interno del db delle password hashate, in chiaro. Viene generato durante l’iscrizione dell’utente ad un servizio, per poi essere passato ad una hash function, insieme alla password. Non varia nel tempo.
Che metodo usano i sistemi UNIX per gestire le password?
I sistemi UNIX fanno ricorso a delle password hashate e a dei salt values, con la seguente
procedura: per inserire una nuova password nel sistema essa sarà combinata con un salt value di dimensione fissa, questi due valori fanno da input per una funzione hash che restituirà in output un digest di dimensioni fisse, questo sarà memorizzato insieme ad una versione in chiaro del salt value utilizzato. Quando un utente proverà a loggare in un sistema UNIX immetterà un ID che servirà per identificare il salt value della password relativa, e una password, che sarà data in input insieme al salt value appena trovato alla funzione di hash, allo scopo di confrontarla con quella già in memoria.
Cos’è un dizionario di password?
È un documento che contiene una grande quantità di testo che corrisponde a password
utilizzate da vari utenti e che sono definite come molto semplici o usate spesso. Viene utilizzato da un attaccante per effettuare attacchi a dizionario offline o anche da chi gestisce un sistema per impedire agli utenti di scegliere determinate password vulnerabili.
Cos’è OpenBSD?
Si tratta di una versione di UNIX molto incentrata sulla sicurezza informatica. È predisposto per supportare di base diversi meccanismi avanzati di sicurezza. “Our effort emphasize portability, standardization, correctness, proactive security and integrated cryptography.”
Cos’è John The Ripper?
E’ uno strumento per il controllo della bontà delle password, al fine di limitare il rischio di intrusioni nel sistema. E’ il sw più famoso per questo scopo, è open source e disponibile per diversi SO. JTR usa in input un unico file, ottenibile dalla fusione di password e shadow (a system file in Linux that stores encrypted user passwords and is accessible only to the root user, preventing unauthorized users or malicious actors from breaking into the system). La bontà delle password si può testare in diversi modi:
- Single crack mode: Permette di trovare le pw più banali usando unicamente il file combinato.
- Wordlist: sfrutta un dizionario
- Incrementale: utilizza un approccio di tipo bruteforce. Di questa modalità vi è una
variante, che sfrutta un wordlist con parole variate (ad esempio con numeri e caratteri
aggiunti) sulla base di “mangling rules”
Quali vulnerabilità restano se criptiamo il file delle password?
Il file delle password può sempre esseere sottratto al sistema da un malintenzionato e portato su un altro sistema sul quale viene utilizzato un approccio a brute force per la decrittazione.