Vedo un rischio per la sicurezza con la "richiesta di accesso approvata" senza codice QR, che viene utilizzata oggi, e cioè che l'approvazione di accesso non è in alcun modo legata alla sessione nel computer che si è utilizzato.
Ergo, se un utente è in qualche modo ingannato nell'accettare una richiesta di accesso che non è sua, l'account è compromesso.
Per prendere 3 esempi:
Esempio 1: se un utente effettua l'accesso, ma immediatamente prima, un utente malintenzionato tenta di accedere. L'utente riceverà una richiesta di accesso, penserà al suo "suo" login, ma in realtà sta approvando quella di un utente malintenzionato.
Esempio 2: un utente malintenzionato invia un'e-mail falsa. Fai clic sul link di questa email falsa e tieni indirizzato a una pagina HTML statica, che indica semplicemente all'utente di approvare l'accesso al telefono. Non appena viene caricata questa pagina HTML statica, l'utente malintenzionato lo rileva e tenta di accedere. Il problema con questo è che l'utente malintenzionato non ha bisogno di eseguire alcun codice o raccogliere alcuna informazione, il che significa che è possibile utilizzare pagine HTML completamente statiche. È improbabile che queste pagine generino avvisi nei sistemi anti-phishing e, inoltre, un altro problema è che l'utente malintenzionato può utilizzare un hosting anonimo non tracciabile, anche se l'hosting blocca completamente script / pagine dinamiche o persino un XSS non persistente riflesso. di qualche altra pagina, potrebbe essere usato per "ospitare" la pagina di phishing.
Ciò significa anche che è improbabile che l'host rimuova il contenuto (ad esempio "Abbiamo bloccato i tag modulo e script in modo che nessuno possa ospitare il phishing qui in ogni caso").
Esempio 3: una variante dell'esempio 2, ma qui l'autore dell'attacco scrive direttamente nel corpo dell'email che per qualche ragione deve accettare la richiesta di accesso. Quindi l'utente malintenzionato carica una piccola immagine 1x1 per rilevare quando viene letta l'e-mail, quindi effettua il tentativo di accesso.
Per attenuare:
Richiedi che l'utente inserisca una sorta di "sfida" o "ID di sessione" per rispondere alla richiesta di accesso.
In alternativa, ciò può essere fatto richiedendo all'utente di inserire un codice casuale nel telefono, ad esempio "Inserisci il codice 6236 nel telefono per approvare la richiesta di accesso" e quindi sul telefono viene visualizzato "Inserisci il codice visualizzato sullo schermo per approva: "+ inputbox. Anche un codice QR che deve essere scansionato è un'altra valida alternativa per garantire una connessione tra la richiesta di accesso al computer e la richiesta di accesso al telefono. Questo è in realtà ancora più sicuro, in quanto garantisce una linea di visuale tra il dispositivo di accesso e il dispositivo connesso.
O questo può essere fatto completamente fuori banda usando qualche challenge-response dove l'utente inserisce una sfida, poi questo viene calulato per quanto riguarda alcuni segreti memorizzati, quindi una risposta può essere mostrata sullo schermo del telefono, che deve essere inserito sul sito web per procedere.
Ecco perché uno schema basato su QR è più sicuro.