Supponiamo che un sito web abbia una pagina di accesso con "Email o nome utente" e mostri il nome utente pubblicamente a tutti gli utenti di quel sito.
Questo rende facile per un utente malintenzionato hackerare l'account di altri?
Normalmente l'email e il nome utente sono entrambi considerati informazioni pubbliche, quindi non dovrebbero fare molta differenza. Non avere queste informazioni pubbliche pubblicamente disponibili potrebbe rallentare un hacker per la durata di una ricerca su Google.
Se hai intenzione di renderlo pubblico, magari aggiungi solo una cifra in più alla lunghezza minima della password per compensare.
Se il nome utente viene mostrato pubblicamente, dai agli attaccanti un altro pezzo del puzzle prima di lanciare l'attacco.
Ad esempio:
Supponendo che tu possa usare la forza bruta Facebook, se Facebook ha mostrato parte delle informazioni di accesso dei suoi utenti, un utente malintenzionato che vuole preformare una forza bruta dovrà solo navigare nella pagina delle vittime e ottenere le informazioni di accesso e avviare l'attacco.
Ma se dovessero trovare le informazioni di accesso, l'attacco sarà molto più difficile. Dovranno preformare una sorta di Ingegneria Sociale / OSint per trovare le informazioni di accesso che a volte possono risultare in nulla (si noti che a volte Facebook fornisce il nome utente degli account quando visita il profilo ma impedisce gli attacchi di forza bruta).
Che cosa dovrebbe essere fatto?
Se non c'è nulla che puoi fare al riguardo e devi visualizzare il nome utente che è anche il login dell'account, allora hai la massima sicurezza che puoi per prevenire qualsiasi attacco all'utente (Compreso nella password dimenticata sezione).
Devi consentire all'utente di nascondere il nome utente e avere invece un nome visualizzato (ad esempio, il mio nome visualizzato è Bubble Hacker ma il mio nome utente è diverso)
Prima di tutto, forse l'utente non vuole che sia pubblicamente noto che sta usando il sito. Quindi potrebbe non essere una buona idea mostrare queste informazioni senza approvazione.
Per rispondere alla tua domanda, in una situazione normale, un attacco dovrebbe conoscere l'e-mail prima di provare a condurre un attacco di forza bruta. Se mandi via tutti gli indirizzi e-mail, semplificherà il lavoro dell'aggressore.
Tuttavia, alcuni malintenzionati non stanno tentando di hackerare il tuo sito web, ma piuttosto hanno ottenuto credenziali tramite un altro modo (hackerando la posta elettronica). Quindi avranno entrambi l'indirizzo e-mail e la password, quindi non sarà molto importante.
Tuttavia, in ogni caso, consente agli hacker di creare un indice dei servizi / applicazioni utilizzati da un utente e costituisce una violazione della privacy. Pertanto, a meno che tu non abbia l'approvazione dell'utente e una buona ragione, non invierei tutti gli indirizzi e-mail o i nomi utente.
Penso che sia una specie di domande semplici.
Se i nomi utente sono elencati e lo stesso nome utente può essere utilizzato per l'autenticazione, allora questo suona come un enumerazione utente vulnerabilità.
Quindi, se voglio tentare di accedere al sistema, posso semplicemente prendere l'elenco dei nomi utente e quindi provare una lista di password delle prime 10.000.000 password contro ogni nome utente a turno, avendo cura di eliminare quelli che non corrispondono le regole di complessità della password minima per il sito.
Se provo prima ogni password, poi prova contro ogni utente e fallo abbastanza sufficientemente e ci sono abbastanza nomi utente, quindi posso evitare qualsiasi politica di blocco che blocchi gli account dopo alcune cattive ipotesi.
per es.
Username Password
bob 123456
alice 123456
ken 123456
...10,000 attempts later...
bob password1
Se ci sono dei lockout basati su IP, io uso una vasta gamma di server proxy per eseguire il looping casuale per ogni richiesta.
Se i nomi utente sono noti, potrebbe essere meglio consentire solo accessi con una combinazione di indirizzo email e password, in quanto le email saranno più private.
Naturalmente, il sito deve ancora essere protetto contro l'enumerazione degli utenti. Ciò significa non rivelare mai da nessuna parte se un particolare indirizzo e-mail è in uso sul sistema. Questo include moduli di iscrizione, moduli di password dimenticati e login. Vedi questa risposta .
Su alcuni sistemi questa non è vista come una vulnerabilità. Per esempio. gli account di accesso webmail dove nomi utente sono pubblici in ogni caso (tutti sanno [email protected] ha un account su Gmail), o su larga scala le reti sociali come Facebook, dove il numero di persone con un account è più o meno tutti e non c'è molto da guadagnare in restringere un elenco di indirizzi email a quelli con account.
Leggi altre domande sui tag authentication attacks