Ci sono domande sull'utilizzo di una password solo per identificare e autenticare un utente, piuttosto che un indirizzo email o nome utente più password:
- Perché effettuiamo l'autenticazione chiedendo a un utente di inserire sia nome utente che password? La richiesta di password è sufficiente?
- Perché avere nome utente e password?
- Differenza tra autenticazione e identificazione [Crypto and Security prospettiva]
- I nomi utente dovrebbero essere mantenuti segreti?
- Revisione dell'hash del nome utente
Tutti, tuttavia, riguardavano nomi utente e / o password impostati dall'utente con la possibilità di reimpostarli. Che dire di password / passphrase casuali che non possono essere ripristinate? Il salvataggio del cloud di DuckDuckGo mi ha fatto riflettere su questo, poiché utilizza le stesse passphrase casuali per identità e autenticazione, senza indirizzo email o nome utente coinvolti.
Diciamo che stiamo costruendo un servizio che memorizza i dati sui suoi utenti.
- Se il servizio genera in modo casuale una passphrase / password (ad es. cinque parole casuali da un dizionario di 2000 parole) per ogni nuovo utente,
- e l'identità di ogni utente è privata,
- e non dobbiamo supportare il ripristino delle password dimenticate (ad es., perché utilizziamo le passphrase dell'utente per crittografare tutti i dati memorizzati dell'utente con SHA-512 con PBKDF2 o qualsiasi altra cosa),
- allora quali rischi ci sono dall'usare solo quella frase casuale, piuttosto che richiedere anche un indirizzo email o un nome utente per identificare l'utente?
- (Se la nuova passphrase si scontra con un altro utente durante la creazione di un nuovo utente, il servizio genererebbe automaticamente un'altra passphrase casuale e la userà invece.)
C'è un chiaro vantaggio: l'utente dovrebbe solo digitare la passphrase al momento dell'accesso, piuttosto che un email / username e una passphrase.
Per quanto riguarda i rischi, se un utente malintenzionato sapeva che una persona specifica era un utente del nostro servizio, l'utente malintenzionato dovrebbe tentare di forzare la passphrase dell'utente ... che in teoria dovrebbe essere difficile da eseguire in ogni caso.
Tuttavia, posso vedere il rischio che l'autore dell'attacco possa accadere accidentalmente sulla passphrase di un altro utente mentre sta provando a forzare la prima passphrase dell'utente, ottenendo l'accesso all'altro utente. Ma non è comunque una possibilità altrettanto piccola? Posso vedere come dipenderebbe da quanti utenti ci sono registrati nel servizio-se ci sono un account utente di quintilioni, allora sarà più facile ottenere casualmente l'account di qualcuno da brute-forzante. Non so come calcolare questo, però.
Ma ciò non pregiudica ancora la difficoltà di rompere i dati utente crittografati se l'attaccante ottiene l'accesso ai dati; il suo punto di forza dipende dalla passphrase e dalla crittografia solo se viene utilizzata o meno una e-mail / nome utente per l'identità.
-
Esistono altri rischi nell'utilizzo di passphrase casuali per l'identità e l'autenticazione / crittografia dei dati, senza e-mail / nomi utente?
-
Come si può calcolare la probabilità che un utente malintenzionato trovi la passphrase di qualsiasi utente dopo T, date N passphrase utente esistenti e D passphrase teoriche possibili possibili?