Sto scrivendo un sistema in cui l'utente deve accedere con due password: una password normale (salata e hash, memorizzata nel database) e una password speciale in cui l'utente deve digitare solo alcune lettere, ad es. "per favore digita la seconda, terza e ultima lettera della tua password".
Come si può progettare quel sistema per supportare la seconda password?
Idea 1: salva la password in testo semplice. Ovviamente no.
Idea 2: Memorizza ogni personaggio separatamente, salato e hash. Cattivo perché se l'attaccante conosce il sale, ci vogliono solo alcune dozzine di tentativi per rinforzare il personaggio.
C'è un altro modo?
Chiarimenti:
Le due password devono essere digitate contemporaneamente, in questo modo:
Gli scopi della seconda password sono:
- Sconfiggi l'attaccante che guarda da dietro mentre digiti la password o un keylogger.
- Sconfiggi il gestore della password nel tuo browser, quando qualcuno come il tuo familiare può accedere al tuo account se hai scelto di salvare la password nel browser.
- Fornire un'alternativa semplice a 2FA quando l'utente non accede a informazioni estremamente sensibili, quindi non li infastidiamo per recuperare il generatore di password monouso hardware (che hanno anche).