Creazione sicura di chiavi e autenticazione in PHP

1

Non sono sicuro di come esprimerlo, quindi ti spiegherò il mio scenario e spero che tu possa aiutarti.

Devo creare un sito che abbia 50-100 studenti che selezionano i corsi che vorrebbero frequentare per il prossimo semestre. Dato che idealmente ogni studente dovrebbe essere in grado di accedere al sito solo per una settimana, stavo pensando di generare una chiave e inviare via email la chiave. Questa chiave dovrebbe essere composta da 8-10 caratteri alfanumerici: 8fgea2awde . La chiave verrà archiviata nel database con una data di scadenza collegata all'account utente. Quindi, una volta che l'utente si è connesso con la propria chiave, una sessione sicura viene creata e autenticata mentre sono connessi. So che non è molto lontano dal nome utente e dall'amplificatore; approccio con password.

So che Oauth esiste, anche se non ho idea di come funzioni. Idealmente non mi piacerebbe "rotolare la mia" sicurezza, mi piacerebbe usare una terza parte, ma non sono sicuro di come si adatti alla mia situazione.

Mi stavo chiedendo se questo fosse un buon approccio? Forse conosci un approccio migliore o più ampiamente utilizzato?

Mi faresti risparmiare un sacco di inferno.

    
posta Warosaurus 09.05.2015 - 20:28
fonte

1 risposta

0

The question is more geared towards is it a good idea to generate passwords for the users and email it to them?

I motivi per non farlo includono:

  • Potrebbe essere vulnerabile alla navigazione a spalla. Un utente che passa davanti mentre un altro utente apre la sua email non aspettandosi che una password venga visualizzata potrebbe essere rubata le sue credenziali. Questo è particolarmente rischioso in un ambiente universitario in cui tutti utilizzano lo stesso sistema.
  • Ciò viola una politica di non inviare mai le password. Un sistema più sicuro ha sempre l'input per le password: attenersi a questa regola e tenderà a scoprire che in genere si ottiene un sistema abbastanza sicuro in termini di gestione delle password.
  • Chiunque abbia accesso temporaneo a un account di posta elettronica sarà in grado di recuperare la password non rilevata. Ad esempio, se la workstation viene lasciata sbloccata per un periodo molto breve, abiliterà un attacco molto passivo in cui permangono poche prove del compromesso.

Un sistema più sicuro invierà e-mail e includerà invece un collegamento e un codice temporale univoco crittografato. Ciò consentirà allo studente di seguire il link, inserire il codice (il link e il codice possono essere combinati con la stringa di query, tuttavia questo è leggermente meno sicuro dato che gli URL sono registrati per impostazione predefinita, memorizzati nella cronologia e possono essere esposti in referer intestazione) e quindi impostare la propria password.

Una volta che la password è stata configurata, il link non può essere riutilizzato, rendendo qualsiasi uso successivo dell'e-mail benigno.

    
risposta data 10.05.2015 - 09:27
fonte

Leggi altre domande sui tag