Spesso i siti che dovrebbero davvero valutare la sicurezza (in particolare le banche) richiedono diversi caratteri individuali da una password.
In genere li ho visti fare così:
download bmml source - Wireframe creati con Balsamiq Mockups
Esiste un modo migliore?
La mia soluzione sarebbe quella di completare il processo di accesso in due passaggi.
Saltare dentro con una risposta perché ho visto un esempio davvero bello di questo in natura. Hargreaves Lansdown è un istituto finanziario del Regno Unito, ed ecco come lo fanno:
L'idea di dare un contesto a un utente non mi era venuta in mente prima di vederlo. In pratica, trovo molto più veloce e più facile inserire una password quando posso vedere quanto sono lontani i caratteri richiesti da ciascuna estremità.
Se un servizio può confermare qual è l'ennesimo carattere della tua password, significa che sta memorizzando la tua password in un formato non sicuro. Nessun servizio dovrebbe mai sapere quale sia la tua password, dovrebbero solo poter dire se la tua password è autentica o meno.
Quindi non dovresti mai chiedere l'ennesimo carattere di una password e non dovresti mai essere in grado di valutare se questo è il carattere corretto o meno.
Se si desidera autenticare qualcuno, è necessario tilizzare una password completa archiviato in modo sicuro.
HSBC utilizza una combinazione di nome utente, password e chiave di sicurezza.
In questa implementazione, inserisci prima il tuo nome utente.
Successivamente, viene richiesto di inserire la password e tre caratteri casuali dalla chiave di sicurezza:
download bmml source - Wireframe creati con Balsamiq Mockups
Il vantaggio di questo approccio è che la password non deve essere archiviata in uno stato non sicuro. Inoltre, l'interfaccia non indica a una persona non autorizzata la lunghezza della chiave di sicurezza.
Includendo caselle di testo disabilitate nell'interfaccia per i caratteri non richiesti, l'utente può "sillabare" più facilmente la propria Parola e fornire la lettera corretta senza dover visualizzare internamente i singoli caratteri della chiave.
L'implementazione nella domanda ha un carico cognitivo molto più elevato perché l'utente deve visualizzare la Parola e quindi contare i luoghi per ottenere il personaggio.
Dovresti chiedere l'intera password, non solo perché è più sicura, ma perché intere password degli utenti in base alla memoria muscolare, in particolare password composte da caratteri arbitrari o definite da movimenti sulla tastiera. Questo rende difficile per gli utenti ricordare personaggi in posizioni specifiche.
Vorrei utilizzare un menu a discesa qui. L'utilizzo di un menu a discesa regolare consente comunque all'input da tastiera di selezionare rapidamente il carattere corretto, ma rende più semplice per gli utenti le tastiere touch e coloro che preferiscono utilizzare il mouse.