Voglio che gli utenti eseguano l'accesso inserendo un'email e provando che controllano tale e-mail. Mi interessa solo che controllino l'e-mail, e quindi voglio evitare di aggiungere un'altra password al processo se posso tranquillamente rinviare all'accesso di sicurezza di un messaggio di posta elettronica inviato a quell'account di posta elettronica (per ritagliare una classe di attacco, io Non preoccuparti delle parti fondamentalmente affidabili che possono accedere legittimamente alle e-mail, come le persone IT di un'organizzazione).
Ci ho pensato e ho trovato il seguente schema. Qui ci sono molte risposte che mi forniscono informazioni sulle parti, ma mi chiedevo se questo schema specifico, nella sua interezza, fosse abbastanza per non dover usare il mio sistema di password in cima a una verifica via email sistema, per evitare che terzi illegittimi si colleghino a un indirizzo email a cui non si dovrebbe poter accedere.
- invia l'indirizzo email [email protected]
- genera un token casuale ad es. 'first-token' (fai finta che sia casuale!), con una scadenza di dire 2 minuti (configurabile, solo un breve periodo di tempo)
- invia un'email a [email protected], contenente un link per attivare un GET tramite https su un endpoint di accesso con l'indirizzo email e "first-token" come parametri di query
- la prima volta che l'endpoint di accesso viene colpito con 'first-token' e '[email protected]' mentre 'first-token' non è ancora scaduto, un altro token 'second-token' viene generato e restituito. il "secondo token" diventa quindi il token di accesso più duraturo per [email protected], con una scadenza più lunga (giorni, forse)
- se l'endpoint di accesso viene colpito con "first-token" e "[email protected]" dopo che "first-token" è scaduto, viene restituito un errore
Quindi, supponendo che l'utente abbia il proprio account di posta elettronica protetto con una password difficile da decifrare / socialmente ingegnerizzata e tutto il resto - quanto è sicuro questo schema di accesso?
Il mio pensiero immediato è che, poiché ho sentito che l'e-mail non è sicura e può essere intercettata come testo in chiaro sul filo, questo non è affatto sicuro. Tuttavia, non capisco molto bene quanto sia grande un problema: le e-mail inviate a un account possono essere prese di mira per l'intercettazione senza conoscere i server specifici attraverso cui passerà l'e-mail? Quanto è probabile, se non fattibile, che una e-mail specifica venga presa di mira, intercettata e letta se non si è, ad esempio, parte dell'organizzazione il cui server di posta elettronica riceverà l'e-mail?
E, se non è sicuro, allora non significa in modo efficace la maggior parte della password dimenticata? Ti invierò un link di resto via email 'i flussi su Internet sono vulnerabili agli attacchi, in quanto tutti usano qualcosa di molto simile, o anche più debole, rispetto allo schema sopra. Sto solo parlando di rendere questa porta sul retro della porta d'ingresso - ma in ogni caso la porta esisterà, giusto? Questo mi porta a credere che questo schema possa essere considerato sicuro nella pratica?
Ho pensato a potenziali falle nella sicurezza in questo schema, per quanto le mie conoscenze sull'argomento lo consentiranno - apprezzerei davvero l'aiuto degli esperti!