Come dovrei memorizzare una password per consentire alle persone di inserire singoli caratteri da esso? [duplicare]

3

Alcune applicazioni bancarie richiedono lettere casuali dalla tua password, per esempio le 3 rd , 5 th e 6 th .

Presumibilmente si tratta di limitare l'efficacia dello sniffing del traffico di rete o del keylogging per ottenere informazioni sulla password.

Mi chiedevo in che modo queste informazioni sono probabilmente archiviate in modo che siano in grado di vedere i singoli caratteri nella password ma presumibilmente li hanno archiviati in modo sicuro?

Ogni personaggio sarebbe salato e hash? In tal caso verrebbero memorizzati ciascuno in colonne diverse di un tavolo? Oppure ogni permutazione di tre lettere dei caratteri della password viene memorizzata in una tabella univoca per l'utente?

    
posta Toby 04.08.2012 - 22:40
fonte

1 risposta

1

Non lo so, ma non penso che un hash sia pratico qui. Certo, puoi fare un hash di una sola lettera, ma è incredibilmente facile da usare come forza bruta se perde mai (come al massimo qualche microsecondo); meno di 100 possibilità. Anche memorizzare tutte le hash delle permutazioni a 3 caratteri sarebbe troppo facile da invertire.

In realtà è interessante considerare questo sistema da questa angolazione. Di solito stai calcolando quanti tentativi di accesso avresti bisogno nel caso peggiore e migliore prima che un utente malintenzionato conosca la password completa (o sia in grado di accedere entro 3 tentativi), o quanta sicurezza questo sistema aggiunge comunque (con MITM e l'attaccante può ancora accedere). Non ho mai pensato a cosa significasse per la memorizzazione del login, e non è bello.

    
risposta data 05.08.2012 - 01:48
fonte

Leggi altre domande sui tag