Aggiunta di un nuovo utente: email temp password vs link con token

3

Sono uno sviluppatore che lavora a un sito web per la prima volta e ho una domanda sull'attivazione di un nuovo utente.

Il modo in cui il nostro sito è configurato ora un utente crea un nuovo account e riceve una password temporanea. La password temporanea viene sottoposta a hash e quindi salvata nel nostro database. L'utente si collega e gli viene detto di reimpostare la propria password (se manteniamo questo metodo forzeremo la reimpostazione della password).

La mia preoccupazione è che non ho mai visto un sito che faccia questo. Per i nuovi siti ricevo sempre e-mail con collegamenti che verificano il mio account e quindi mi è consentito accedere.

La mia domanda è quale di questi metodi è più sicuro e perché?

    
posta Sentient 21.01.2015 - 20:57
fonte

2 risposte

3

Non è terribilmente comune, ma non è neanche così raro. È semplicemente un modo per eseguire la convalida della posta elettronica senza dover memorizzare ulteriori informazioni di stato.

Quindi, è semplice, che ha alcuni vantaggi in quanto la complessità è il nemico della sicurezza, quindi le soluzioni semplici sono in genere migliori per la sicurezza rispetto alle alternative più complesse che fanno la stessa cosa.

TUTTAVIA ... Suggerirei che in questo caso, non solo non è migliore, ma in realtà meno sicuro e meno che ideale.

La ragione principale è che è sempre una cattiva pratica inviare password in email. Anche quelli temporanei. È molto meglio inviare un collegamento che consente all'utente di impostare una password seguendo il link. Funziona per la convalida della posta elettronica, per gli account creati in modo asincrono (da un amministratore o un processo batch, ad esempio) e la password viene reimpostata quando un utente ha dimenticato la propria password. Ciò richiede un po 'di stato extra come ho detto prima (il link deve essere unico, e devi ricordare il valore per quando l'utente fa clic sul link e restituisce) ma questo non è tutto per nulla. Significa non solo che la password non deve mai essere inviata nell'etere in testo in chiaro, ma ti consente anche di terminare un singolo punto (il token) se non è stato utilizzato in un tempo ragionevole e di controllare per impedire -uso. (Un singolo token dovrebbe funzionare solo una volta.)

Quindi, il collegamento è decisamente più sicuro. I token sono più facili da proteggere con i controlli di sicurezza rispetto alle password e non si dovrebbero mai inviare password in chiaro, il che richiede abuso e uso improprio.

    
risposta data 21.01.2015 - 22:06
fonte
3

Se l'utente finale è colui che avvia la configurazione dell'account e fornisce una password, l'utilizzo di una password temporanea che dovrà modificare al primo accesso non offre alcun vantaggio. E servirà solo a infastidire l'utente.

Le password temporanee sono utili quando qualcun altro avvia l'impostazione dell'account. Ad esempio, un nuovo dipendente che entra in un'azienda viene in genere dotato di un account di dominio. Non vorrai permettere agli utenti di registrarsi da sé e creare qualsiasi account di dominio che volevano. In genere, si fornisce loro una password temporanea in modo da poter controllare gli account creati e assicurarsi che solo loro possano configurare quell'account. Con una password temporanea l'utente finale e l'amministratore sanno che nessuno ha utilizzato quell'account se al momento dell'autenticazione, sono obbligati a cambiare la password la prima volta. Se l'utente prova la propria password ed è errata, si ha il sospetto che l'account potrebbe essere stato compromesso o utilizzato da qualcuno che ha acquisito la password temporanea e può indagare a seconda delle necessità.

L'opzione password non temporanea è la più sicura. Perché ci vuole qualcuno che non sia l'utente finale che conosce la password fuori dall'equazione.

    
risposta data 21.01.2015 - 21:44
fonte

Leggi altre domande sui tag