C'è un'applicazione, che accetta un ID utente e una password per accedere. La convalida dell'ID e della password viene elaborata da un altro sistema. Ora dopo la convalida della password, l'applicazione genera un One Time Passcode (OTP) e lo invia come SMS o e-mail all'utente.
Questo OTP scade tra 15-30 minuti. Solo quando l'OTP è validato correttamente, l'accesso dell'utente è completo.
Se l'utente ha due dispositivi e inserisce la sua password in un dispositivo, viene generato un OTP. Ma lui non usa l'OTP sul primo dispositivo. Usa il suo secondo dispositivo per accedere di nuovo e inserisce la sua password lì. Poiché è in 15-30 minuti, lo stesso OTP viene generato di nuovo. Ora può accedere a due dispositivi con lo stesso OTP.
Questo scenario sembra essere buono?
Continuando lo scenario, il suo id è bloccato nel frattempo per qualche motivo. Tenta di inserire l'OTP in uno dei due dispositivi. Ora dovremmo consentire il login? Altrimenti dovremmo controllare lo stato di identificazione ogni volta che un OTP viene convalidato?
Allo stesso modo, nell'intervallo di 15-30 minuti, se la password viene modificata tramite l'help desk, dovremmo reimpostare le sessioni esistenti che hanno validato la password, ma sono in attesa dell'OTP? O possiamo consentire l'accesso con la password precedente stessa?
Il problema tecnico qui è che la convalida della password è in un sistema, ma la convalida OTP è in un altro sistema e si escludono a vicenda. Non comunicano tra loro.
È appropriata la procedura di convalida OTP?