Questo non è veramente fattibile con le password. Questo è fattibile con qualsiasi schema in cui la chiave / segreto / credenziale / token / qualsiasi cosa sia memorizzata sul computer di un cliente e non all'interno del cervello umano.
contorto? Trasforma esattamente la stessa cosa in giro: se hai una chiave sufficientemente sufficiente e sufficientemente complicata / segreto / credenziale / token / qualsiasi cosa, non ha nemmeno senso chiedere ad un utente un nome utente , un nickname, un GUID, qualsiasi altro identificazione per un'autenticazione quotidiana. Il software dirà loro tutto questo.
Se il tuo software non accetta gli account suckpuppet . Ad esempio, ssh è felice con "sockpuppets", diversi account usati da un essere umano, chiede il nome dell'account anche se si fornisce una chiave RSA. Sockpuppet Le chiavi private RSA che si trovano una accanto all'altra sullo stesso dispositivo sarebbero complicazione inutile, non più sicurezza.) Chiedere un soprannome è il modo più semplice per supportare i sockpuppet.
La chiave "sufficientemente complicata" implica che non ci si aspetterebbe mai una collisione . Implica che non ci si aspetterebbe mai che sia necessario salt . Implica che il umano medio non possa ricordare . E implica che non abbiamo bisogno di ulteriori parti di complessità da parte di umani che ricordano il nome utente.
Ripristino dell'account
L'unico problema viene ripristinato dopo aver perso la chiave o dopo che è stata compromessa. Significa un dispositivo smarrito o compromesso. Qui abbiamo bisogno di usare un'autenticazione più sicura (probabilmente anche più problematica). Hai bisogno di un utente per ricordare il loro soprannome qui? Se chiedi all'utente solo il cognome da nubile di una madre, la collisione è quasi certa. Ciò non significa che tu abbia bisogno di un soprannome, significa che l'autenticazione del cognome è troppo debole! Tutti gli attacchi riguarderebbero i nomi da nubile delle madri povere. Ma probabilmente dovrai chiedere un identificatore globale fuori dall'app, molto probabilmente un numero di cellulare per la verifica tramite SMS (questo esclude la minaccia di un malintenzionato che controlla il tuo cellulare).
Lo schema alternativo è la verifica della posta elettronica, che richiede anche un identificatore globale fuori dall'app (questo esclude la minaccia di attaccante che controlla qualsiasi dispositivo, quindi è molto debole in questa impostazione).
Osserva che, nella maggior parte dei casi, gli umani non hanno bisogno di ricordare il loro identificatore globale, ma a volte hanno bisogno di andare a controllarlo e inserirlo manualmente.
Lo schema alternativo è la verifica della carta pre-condivisa: chiedi all'utente un numero di password una tantum 04 dalla scheda cartacea inviata loro quando hanno aperto un account. È un caso in cui trovo utile aumentare con un'autenticazione "banale segreto", in modo tale che quasi ogni persona che ottiene una lettera non resetta l'accesso solo per divertimento o per pura curiosità. Potrebbe essere "quale codice postale usiamo per spedire questo articolo?", Potrebbe essere il temuto nome da nubile, ma potrebbe anche usare un soprannome.
Password memorizzate dagli esseri umani
La password, o un breve testo segreto che potrebbe essere ricordato da un essere umano, è uno schema inferiore che è in ritardo da tempo. I costi non necessari associati includono:
- "effettua l'accesso" pagina
- "questo nickname è occupato" problema
- "questa password è troppo debole" problema
- bisogno di un server side-sale (aggiornando il segreto debole a uno veramente casuale per contrastare le tabelle arcobaleno)
- KeePass e database simili - soluzione complicata a un semplice problema di ottenere uno schema corretto per lavorare su vecchi prompt di accesso
Questi svaniscono tutti con uno schema di tasti memorizzato su macchina (simmetrico o asimmetrico, quest'ultimo suggerito).