Perché ogni OTP deve essere unico

0

Tutti i sistemi OTP che ho osservato, inviano una nuova OTP ogni volta che un utente richiede una OTP. (per esempio whatsapp) Solo l'ultimo OTP è valido e un OTP può essere utilizzato solo per X ore.

Mi chiedo quale sarebbe lo svantaggio se invio lo stesso OTP per ogni richiesta utente nelle suddette X ore?

Quindi diciamo X = 2, quindi una volta inviato un OTP, tutte le ulteriori richieste di OTP nelle prossime 2 ore invierebbero lo stesso OTP. Qualsiasi richiesta dopo le 2 ore genererà un nuovo OTP.

Ho un'applicazione in cui utilizziamo OTP. Il motivo per cui lo chiedo è che a volte l'OTP SMS è in ritardo e quindi le richieste degli utenti per un altro OTP. Alla fine, quando arrivano gli SMS, l'utente non è sicuro di quale OTP utilizzare.

    
posta arahant 11.08.2014 - 11:46
fonte

4 risposte

3

L'idea alla base di un OTP è che può essere utilizzata solo una volta, quindi "One Time Pin". Se riutilizzi lo stesso OTP per un certo periodo di tempo, non lo utilizzi solo una volta. L'unico uso è garantire che la perdita di OTP compromessa diventi inefficace non appena ne viene richiesta una nuova.

Se il tuo "OTP" che è valido per un certo periodo di tempo (2 ore nell'esempio) è compromesso, l'utente malintenzionato può utilizzarlo per lo stesso periodo di tempo.

Immagina per un momento che Alice voglia eseguire qualche azione sulla tua applicazione che le imponga di inserire un OTP - nel momento in cui sta lavorando da un coffee shop sopra Malory's Rouge Access Point. Mentre Alice riceve il suo OTP e lo inserisce, Malory lo intercetta e scopre cosa può fare con esso.

Ora Malory ha 2 ore di libertà per svolgere qualsiasi funzione come Alice (supponendo che abbia le altre informazioni necessarie per impersonare Alice) usando l'OTP che è ancora valido E anche se Alice richiede un nuovo OTP, lo stesso OTP compromesso sarà inviato a lei, persistendo la capacità di Malory di impersonare Alice.

se fosse un OTP monouso, Malory non ne avrebbe più bisogno da quel momento in poi.

    
risposta data 11.08.2014 - 12:34
fonte
1

L'unico inconveniente che riesco a pensare - che è un serio svantaggio da prendere in considerazione) è che stai introducendo una nuova logica nel processo che complicherà la tua implementazione e alla fine potrebbe introdurre bug che degraderanno la tua sicurezza.

A proposito: se vuoi provare a risolvere l'esperienza utente, puoi semplicemente aggiungere un commento sulla tua interfaccia utente che l'OTP potrebbe impiegare X minuti per arrivare ...

    
risposta data 11.08.2014 - 12:34
fonte
1

Se stai pensando di fare tutto il lavoro per inviare lo stesso P per un dato utente all'interno di una finestra di X ore, perché non fare la stessa quantità di lavoro per permettere al tuo back-end di autenticazione di accettare qualsiasi NP di te? hai inviato le ultime X ore? Questo risolve in modo pulito il tuo problema con gli utenti impazienti senza compromettere l'OT in OTP. (Inutile dire che tutti i P dovrebbero essere invalidati non appena ne viene usato uno correttamente.)

Usando lo stesso P sembrerà meno sicuro - per i tuoi utenti e (se ne hai) per i tuoi auditor. Un OTP senza OT non è consigliabile, tanto per gli aspetti come per la vera sicurezza

    
risposta data 11.08.2014 - 14:46
fonte
0

Penso che tutte le risposte abbiano evidenziato che indebolirai la tua sicurezza. Dal momento che si rende riutilizzabile una password (se si consente di utilizzare la stessa password una tantum per un periodo di tempo) o si indebolisce la sicurezza consentendo a più OTP di essere validi contemporaneamente.

Bene, ho visto molte di quelle richieste durante il mio periodo di implementazione di una soluzione OTP e posso comprenderle. Abbiamo persino avuto la richiesta di avere una "password giornaliera", una password valida per un giorno per tutti gli accessi che desideri e cambia automaticamente il giorno successivo. Questa non è più una sola password, ma in alcuni scenari un requisito legale.

La soluzione di cui sto parlando è privacyIDEA . Può inviare SMS e invaliderà anche il valore OTP precedente se ne invia uno nuovo. Ma questo comportamento può essere facilmente migliorato con circa 3 righe di codice in SMS modulo .

    
risposta data 12.08.2014 - 08:23
fonte

Leggi altre domande sui tag