La raccomandazione comune di oscurare l'esistenza di un nome utente all'accesso è solo il teatro di sicurezza? [duplicare]

0

È un consiglio comune restituire "Nome utente o password errati" invece di "Nome utente inesistente" se il nome utente specificato non esiste e "Password errata" quando il nome utente esiste ma la password è errata.

Il motivo generalmente citato è che non si vuole fornire a un utente malintenzionato la conoscenza dell'esistenza di un nome utente, per prevenire attacchi online di forza bruta.

Tuttavia, se il nome utente è utilizzato per l'accesso, deve essere univoco e, pertanto, è necessario informare l'utente che il nome utente scelto viene preso mentre sta creando un account. Pertanto, un utente malintenzionato può facilmente determinare se esiste un nome utente anche se si dice "Nome utente o password errati" al momento del login.

Tuttavia, anche se non esiste alcuna pagina di registrazione o vengono prese altre misure per oscurare l'esistenza di nomi utente durante la registrazione, questa raccomandazione non ha ancora senso. I nomi utente non sono progettati per essere segreti. Molte persone riutilizzano i nomi utente e sono facili da trovare. E mantenerli segreti migliora solo la sicurezza, in quanto aumenta la dimensione totale del tuo segreto, che può essere ottenuto con password più lunghe richieste.

Inoltre, esistono modi migliori per prevenire gli attacchi di forza bruta in linea rispetto ai segreti più lunghi. Limita la velocità degli utenti all'accesso, che un algoritmo hash della password correttamente lento come bcrypt fa già implicitamente o che prevede un timeout dopo molti tentativi errati, risolve questo problema molto meglio di quanto non faccia un segreto più lungo.

C'è qualcos'altro che mi manca? Anche su questo sito vedo persone che difendono questa pratica, ma devo ancora vedere una ragione che non è risolta meglio con altri metodi.

Modifica: come follow-up, se questa raccomandazione non è davvero utile, perché è ancora comune? E da dove viene?

    
posta PaintingInAir 09.03.2018 - 23:30
fonte

2 risposte

1

A volte esiste una ragione legittima per tale protezione. Per dare un esempio ho personalmente osservato (dettagli elided), il sito web per un medico che si specializza in un particolare tipo di trattamento (forse qualcosa stigmatizzato, come la riassegnazione del sesso o la sostituzione ormonale, il suicidio o la consulenza alla tossicodipendenza, l'aborto, il trattamento STI , ecc.) dovrebbero assolutamente avere tali protezioni, perché solo sapere se qualcuno ha un account con il fornitore costituisce una violazione della riservatezza del paziente (in pratica, anche se non è legale).

Ovviamente, devi anche proteggere la pagina di registrazione, in tal caso - forse la pagina di registrazione non mostra mai un errore, dice semplicemente "controlla la tua email per i prossimi passi" indipendentemente dal fatto che l'utente sia o meno nel sistema, o forse la registrazione richiede alcune informazioni private oltre al solito indirizzo email + password - e tutte le altre vie di rilevamento degli account esistenti (pagine di password dimenticate, ecc.). Questo è totalmente fattibile, però.

Lo stesso principio può essere applicato ad altre cose in cui si desidera la privacy. Servizi di appuntamenti online, negozi di giocattoli / film per adulti, qualsiasi tipo di sito sociale dove gli utenti sono sempre sotto pseudonimi, servizi legali specializzati, qualsiasi tipo di segnalazione di problemi o servizio simile in cui qualcuno potrebbe voler vendicarsi (ad esempio, siti informatori) e così via.

Quando ci si avvicina ad esso, ci sono relativamente pochi scenari in cui non si preferirebbe avere tali protezioni (un sito di social networking / collaborazione / etc esplicitamente non anonimo è l'unica classe che viene immediatamente in mente). Per la maggior parte dei siti, probabilmente non è un grosso problema, ma in generale, a meno che tu non abbia una ragione per chiarire chi sta usando il tuo sito, dovresti cercare di evitare la perdita di nomi utente. Le persone preferiscono la privacy che vale la pena tenere a mente, e anche se in teoria dovrebbe essere compito dell'utente assicurarsi che non usino nomi utente / indirizzi di posta elettronica rintracciabili su più siti, in pratica le persone sono cattive a / don so come farlo.

EDIT: non ho letto prima tutti i commenti; @schroeder lo capisce.

    
risposta data 10.03.2018 - 03:15
fonte
0

Ciò che ti manca è l'elemento cruciale della definizione di "teatro della sicurezza": nessuna sicurezza migliorata.

Affermare che le linee guida generali non forniscono una sicurezza migliorata in alcuni casi non rende la linea guida un teatro di sicurezza. Come con la qualsiasi linea guida, raccomandazione, best practice, suggerimento o opinione, deve esserci una valutazione del rischio , che è ciò che manca al teatro di sicurezza.

Se una linea guida, come il modo in cui trattare la messaggistica per le password errate, non offre miglioramenti in una particolare istanza, effettua la valutazione del rischio. Ma se vai contro uno standard del settore, devi assicurarti di aver tenuto conto di tutti i potenziali rischi che potresti non aver considerato (come la privacy). Se hai tenuto conto di tutte le minacce, allora prendi la tua decisione migliore.

L'unico problema che ho con la tua preoccupazione su questa particolare linea guida generale è il motivo per cui non seguirlo. Non sono sicuro di cosa si ottiene non utilizzando questa particolare messaggistica. Ma se hai un caso aziendale legittimo e la valutazione del rischio lo garantisce, allora prendi la tua decisione migliore.

    
risposta data 10.03.2018 - 09:30
fonte

Leggi altre domande sui tag