Ci sono state un paio di domande su come applicare buone password, quindi ho pensato di aggiungere il mio:
Oltre a imporre un'entropia minima di Shannon, sarebbe generalmente buona norma vietare l'uso di password o elementi specifici a titolo definitivo, in base a criteri quali:
- È apparso almeno una volta nell'elenco "Top 25" di SplashData ("password", "letmein", "qwerty")
- Nome proprio di pubblico dominio ("parishilton", "hasselhoff")
- "Interessante" nel campo della sicurezza IT ("correcthorsebatterystaple", "orpheanbeholderscrydoubt")
- Qualsiasi password precedentemente utilizzata nel nostro sistema e nota per essere stata compromessa
- ecc.
Queste sono ovviamente tutte scelte sbagliate per le password, eppure almeno la prima categoria è cattiva perché sono così comunemente usate. La lezione è ovvia; non permettere agli utenti di utilizzare queste password errate.
Sarebbe banale prendere una password inviata, spogliare spazi e convertire tutte le lettere in minuscolo, quindi eseguire un confronto "contiene" con gli elementi della lista nera, sovvertendo i tentativi di aggiungere entropia usando spazi, lettere maiuscole o aggiungendo lettere aggiuntive / numeri. Sarebbe un po 'più difficile, non impossibile, rilevare le sostituzioni delle lettere (forse una distanza minima di Levenshtein). Sarebbe anche facile memorizzare il motivo per cui la voce è bannata e restituirla all'utente, incoraggiandoli a provare qualcosa di sostanzialmente diverso e, si spera, più imprevedibile (anche se un motivo così specifico di rifiuto potrebbe fornire troppe informazioni se l'utente "è un attaccante).
Buono in teoria? Quali problemi potresti prevedere nella pratica?