Password hashing e supporto per il tuo utente

10

Recentemente abbiamo adottato una strategia di archiviazione delle password migliore, con tutte le cose positive:

  • Le password vengono memorizzate dopo aver attraversato bCrypt
  • All'utente viene inviato un link di attivazione sulla creazione dell'account per confermare la proprietà dell'indirizzo
  • Hai dimenticato la password senza domanda di sicurezza, un link viene inviato alla loro email.
  • Il link scade dopo 24 ore, a quel punto sarà necessario richiederne uno nuovo.
  • Se l'account viene creato dal nostro staff, viene inviata un'email con una password complessa casuale. Al momento dell'accesso, l'utente deve reimpostarlo su qualcosa che non conosciamo e che è bCrypt'd.

Ora questo è in accordo con le "best practice" in giro, ma questo ha aumentato la nostra quantità di richieste di supporto molto da utenti regolari che non capiscono tutto questo, vogliono solo accedere.

Spesso riceviamo richieste da parte degli utenti che si lamentano di:

  • Password errata (da quella che è necessario reimpostare, spesso la incolla con uno spazio alla fine). Ci dicono cosa stanno usando, ma non abbiamo modo di dirgli quale sia la loro vera password.
  • Dicendo che non ricevono l'e-mail che inviamo (attivazione, ripristino, ecc.). Questo spesso non accade, dopo una lunga risoluzione dei problemi di solito abbiamo scoperto che hanno fatto un refuso nell'e-mail, che non stanno controllando l'account e-mail corretto o che sono semplicemente andati nella cartella spam.

Naturalmente non possiamo provarlo per loro perché non abbiamo la password. Stiamo registrando i tentativi falliti, ma cancelliamo anche la password che hanno utilizzato poiché è probabile che sia la password utilizzata per un altro account e non volevamo archiviarli in un file di registro di solo testo. Questo ci lascia praticamente senza aiuto per segnalare problemi.

Sono curioso di sapere come la maggior parte delle persone si occupa di problemi come questi?

    
posta jfrobishow 24.02.2012 - 20:56
fonte

7 risposte

7

Incorrect password (from the one that they need to reset they often paste it with a space at the end). They tell us what they are using but we have no way of telling them what their actual password is.

Riparabile includendo invece un collegamento con un GUID utilizzabile una sola volta che li registra e obbliga a reimpostare la password. Non costringere l'utente a copiare e incollare. (Inoltre, perché non eliminare gli spazi bianchi alla fine della password nel modulo.)

Saying they aren't receiving the email we send them (activation, reset, etc.). This is often not the case, after much troubleshooting we usually found out they did a typo in the email, that they aren't checking the right email account or that it simply went in the spam folder.

Assicurati che l'e-mail in uscita sia spammata (magari imposta gli account di prova su alcuni servizi di posta comuni), registra tutto ciò che accade e magari riferiscilo all'utente se prova a richiedere un nuovo reset (es. [email protected] non è riuscito, utente non trovato, hai scritto correttamente?). Inoltre, ricorda agli utenti i problemi di ortografia e spam.

Inoltre, OpenID e altre autorizzazioni di terze parti sono anche un'opzione, come altri hanno detto.

    
risposta data 24.02.2012 - 22:44
fonte
3

Direi di utilizzare un metodo di autenticazione di terze parti, come Facebook, OpenID, Google ... qualunque sia appropriato per i tuoi utenti. Tuttavia, se i tuoi utenti non ricordano la tua password, forse non saranno in grado di utilizzare un sistema di autenticazione di terze parti ...

A seconda della situazione, potresti essere in grado di utilizzare un altro sistema, come i certificati client SSL (sono decisamente difficili da installare per gli utenti finali, ma se questa è un'azienda e puoi automatizzarne l'installazione, è grandiosa), Windows SSO, un'app mobile, ecc.

    
risposta data 24.02.2012 - 21:26
fonte
3

Hai anche bisogno di farlo? La prima cosa che devi fare determina ciò che stai proteggendo e da chi lo stai proteggendo. Forse non vale il costo delle migliori pratiche, e forse le migliori pratiche non fermeranno nemmeno il tuo aggressore.

Se ti trovi contro la NSA e hai qualcosa che vogliono, rinuncia e facilita la vita ai tuoi utenti. Se hai i numeri delle carte di credito, dovrai affrontare i problemi richiesti dal livello di sicurezza richiesto, perché là fuori ci sono i cattivi che li vogliono e spendono soldi e tempo per ottenerli. È l'accesso a un album di foto di famiglia, hai bisogno di tutta quella sicurezza.

Leggi le opere di Buce Scheiners (Secrets and Lies) come buon inizio per capire la sicurezza.

    
risposta data 24.02.2012 - 22:18
fonte
3

La prima cosa che salta fuori è che le e-mail stanno andando nella posta indesiderata. Configurare la posta elettronica in modo che sia riconosciuta come reale non è banale. Ti suggerisco di esaminare come impedire che la tua email venga contrassegnata in modo errato (domanda separata su SO?)

La seconda cosa che consiglierei è dare agli utenti un sito web / app con un clic che avvia la password per recuperare le e-mail. Rifiutarsi di farlo in modo diverso dall'email, non è sicuro e crea un precedente negativo.

    
risposta data 24.02.2012 - 21:23
fonte
2

Il fatto che siano disposti a chiamarti e dirti ad alta voce la loro password ti dice che per questi utenti, la password e le informazioni che protegge non è un grosso problema. Non farei mai nessuna di quelle cose con la mia password bancaria. Ma ci sono un certo numero di siti che richiedono password per cose che davvero non meritano. Ho una password standard che uso per tutti questi, e più "hey non è una password sicura" o "ti faremo una password e ti costringeremo a cambiarla regolarmente" e così via, meno voglio usare quel servizio. Avrei una breve conversazione con le persone del "valore aziendale" della tua vita per vedere se in realtà basta tenere semplicemente i testi nel db e inviarli via email alle persone su richiesta sarebbe un approccio migliore.

Se in effetti questo dovrebbe essere così sicuro, potresti provare quello che uno dei miei clienti ha fatto con il sistema che abbiamo codificato per loro. Mentre sei al telefono con la persona, entra nel db e cambia il loro indirizzo email nel tuo. Quindi vai sul Web e fai clic su Password dimenticata. Attendi l'e-mail e usalo per accedere. Usando il sito web, cambia la password in Password o qualcos'altro che sei d'accordo verbalmente con il cliente. Cambia il loro indirizzo e-mail al loro indirizzo e dì loro "tutto pronto, la tua nuova password è attiva ora!" Buon cliente e non devi spiegare loro cosa sta succedendo.

    
risposta data 24.02.2012 - 21:08
fonte
2

il metodo di ultima istanza che ho usato su un sistema con utenti molto analfabeti in passato era quello di indirizzare l'utente a uno schermo in cui sono stati forniti un numero di telefono e un numero di conferma. Hanno chiamato il numero di telefono, verificato la loro identità tramite mezzi manuali, quindi hanno letto la conferma. la persona di supporto ha effettuato l'accesso a un sistema separato, ha inserito il numero e ottenuto un secondo numero da restituire al cliente. il client ha utilizzato il secondo codice per continuare con la pagina di reimpostazione della password. la versione client della pagina non può essere eseguita dalle sottoreti del personale di supporto e la schermata di supporto non può essere eseguita dai client.

non è a prova di proiettile perché una persona di supporto potrebbe utilizzare una VPN per eseguire entrambe le estremità da una posizione, ma è stato sufficiente per la verifica poiché l'account di supporto è stato registrato come responsabile dell'attività

    
risposta data 25.02.2012 - 05:35
fonte
-5

Forse implementando regole di sicurezza che non sono INSANE. In questo modo, tutto quello che ottieni è meno sicurezza, perché il sistema è così difficile da usare che i tuoi clienti reiteranno le password a te e ai loro amici solo per farlo funzionare!

Non puoi semplicemente inviarli link NORMAL, quindi password sotto. Se il collegamento viene interrotto dal client di posta elettronica, basta visualizzare il modulo con un campo "codice di attivazione" ... "digitare il codice di attivazione presente nell'e-mail" ... 5 cifre in modo che non scambino 0 con O, ecc. 4 le cifre vanno bene per le carte di credito e hai bisogno di una politica così complicata per un semplice accesso? Se il codice non funziona, ripetere il controllo con la stringa TRIMmed? Immagino che non lo renderà meno sicuro, giusto? :)

Per me succede spesso anche ... Faccio doppio clic sulla password e lo spazio finale viene copiato. Non riesco a credermi perché non riesca a capire come eliminare i caratteri bianchi finali quando il controllo fallisce e ripetere il processo? Quindi forse TOGGLE lettera intelaiatura per me per controllare se non ho premuto CL accidentalmente.

L'hai complicato eccessivamente. Non è "reimpostazione della password" e "password iniziale" ... ma "Codice di conferma" e "Inserisci il numero di conferma che ti abbiamo inviato all'email", "Non avere e-mail? È stato inviato a [email protected], verifica il tuo spam di nuovo, ancora non lo hai? Risentito il tuo indirizzo email di conferma ". Nel corpo HTML un link. link . Nessun client di posta lo interromperà.

    
risposta data 24.02.2012 - 21:26
fonte

Leggi altre domande sui tag