Mezzi di autenticazione
Possiamo classificare i mezzi di autenticazione in base a:
- Quello che si sa
- Quello che si ha
- Quello che si è
- Quello che si fa
Quello che si sa
Per quanto riguarda quello che si sa, li possiamo dividere in password, pin e risposte a domande personali. Le password sono stringhe di 6-8 caratteri che permettono l’identificazione. Le proprietà delle password sono:
- Non reciprocità: normalmente le password permettono un’identificazione unilaterale;
- Bassa complessità: molto efficienti sia dal punto di vista computazionale che dal punto di vista della comunicazione;
- Non è richiesta una terza parte;
- La chiave è normalmente tenuta a memoria dall’utente ed in un file di sistema.
L’affidabilità delle password dipende dalla lunghezza ed il tasso di errore nell’inserimento cresce più che linearmente sia all’aumentare della lunghezza della password sia in situazioni di stress. Possiamo inoltre fare un hashing delle password, ossia non si mantiene in memoria la password ma solo il valore di hash; in questo modo è possibile confrontare l’hash ottenuto sulla password introdotta con l’hash memorizzato.
Attacchi alle password
Sulle password possono essere fatti diversi attacchi:
- Attacchi replay
- Ricerca esaustiva
- Attacchi tipo dizionario
- Attacchi su password note
La sicurezza delle password si basa quindi su file di password criptati, regole sulle password (avere password con alta entropia seguendo regole sintattiche e procedurali come ad esempio che la password deve avere almeno 8 caratteri, includere caratteri speciali, non dovrebbe avere un significato, ecc.), rallentamento nella verifica delle password (per limitare l’uso di programmi per la ricerca esaustiva; normalmente si ottiene applicando in maniera ricorsiva una funzione più semplice in cui l’iterazione t+1 usa il risultato dell’iterazione t), e salting (aggiunge alcuni bit alla password prima dell’hashing per limitare l’uso di attacchi simultanei tipo dizionario; in questo caso l’informazione rimane nel file delle password).
One-Time Password (OTP)
Inoltre, per quanto riguarda le password, abbiamo le One-Time Password (OTP), ossia una password valida una sola volta. È una password che è valida solo per una singola sessione di accesso o una transazione. La OTP evita una serie di carenze associate all'uso della tradizionale password (statica). Il più importante problema che viene risolto da OTP è che, al contrario della password statica, essa non è vulnerabile agli attacchi con replica. Ciò significa che, se un potenziale intruso riesce a intercettare una OTP che è stata già utilizzata per accedere a un servizio o eseguire una transazione, non sarà in grado di riutilizzarla, in quanto non sarà più valida.
D'altra parte, una OTP non può essere memorizzata da una persona. Essa richiede quindi una tecnologia supplementare per poter essere utilizzata. Gli algoritmi di generazione delle OTP in genere fanno uso di numeri casuali o pseudocasuali. Ciò è necessario perché altrimenti sarebbe facile prevedere la OTP futura osservando quelle precedenti. Gli algoritmi OTP che sono stati realizzati sono abbastanza diversi tra loro. I vari approcci per la generazione di OTP sono elencati di seguito.
- Algoritmi basati sulla sincronizzazione temporale tra server di autenticazione e client che fornisce la password (le OTP sono valide solo per un breve periodo di tempo).
- Algoritmi matematici che generano una nuova password in base alla password precedente (le OTP sono, di fatto, una catena di password legate tra loro, e devono essere utilizzate in un ordine predefinito).
- Algoritmi matematici dove la password è basata su un challenge (per proseguire il discorso).