È stupidamente semplice aggirare la maggior parte delle serie di regole di complessità delle password valutabili in modo indipendente; lunghezza minima, requisiti del caso, requisiti del carattere non alpha. "Password1", a meno che il tuo nome non sia Joe Password, supererà la maggior parte dei sistemi di regole perché ha una lunghezza di almeno 8 caratteri, con una maiuscola e un numero. È anche la prima cosa che ogni crackbot proverà.
La regola cardinale di qualsiasi requisito di complessità della password è, più difficile è l'utilizzo del sistema, meno persone lo useranno . Ciò va ben oltre le regole di complessità della password, ma dal momento che la schermata di accesso (e la schermata di registrazione dell'utente che di solito si collega da lì) sono la prima vera interazione dell'utente con il proprio sistema, tanto più spiacevole è, meno gli utenti vorranno per affrontarlo e con te. Questo è particolarmente importante se stai cercando di "vendere" il tuo sistema agli utenti come un prodotto che non sapevano di aver bisogno, o se ci sono molte alternative sul mercato (come un forum online). Gli utenti in quella situazione diranno molto rapidamente "Fanculo, sono fuori gioco" e difficilmente riuscirai a riprenderli tutti.
Seguono naturalmente alcune regole aggiuntive. Uno è che tu informa l'utente in modo chiaro e semplice delle regole che hai in atto, prima di digitare qualsiasi cosa . Non è un problema di sicurezza per le regole di complessità che imponi di essere di dominio pubblico, a meno che quelle regole in realtà riducano possibile entropia di password accettabili (che regole come una lunghezza massima possono fare) e il tuo utente sarà molto meno frustrato nel tuo sistema di quanto sarebbe se dovesse imparare le regole con il reverse engineering.
Un'altra regola è che non deviare troppo dalle regole che gli utenti si aspettano . La maggior parte degli utenti è abbastanza intelligente da capire che la complessità minima è per il loro bene, e sanno anche che le barre più siti e set di applicazioni hanno un'altezza simile (minimo 6-8 caratteri, una lettera maiuscola e un numero, non possono contenere di alcune parole ovvie come "password"). Applicare password incredibilmente lunghe e complicate in eccesso rispetto allo standard implicito (minimo 20 caratteri, almeno due gruppi di almeno 4 numeri ciascuno e almeno 5 simboli) sta solo andando a far incazzare le persone, anche se le dici in anticipo.
L'ultima meta-regola che affermerò è, non imporre una regola fine a se stessa . Non usare mai una regola solo perché hai visto un altro sito o applicazione farlo, o anche solo perché è la migliore pratica. Ci sono delle ragioni alla base delle best practice, ma dovresti conoscere e comprendere tali motivi, incluso il motivo per cui potrebbero non essere applicabili nella tua situazione, prima che Scotch registrasse una politica di sicurezza.
Il set di regole che di solito mi piace è:
- Lunghezza minima di 8 caratteri.
- Simboli maiuscoli, numeri o .
- Non può essere composto solo da una parola del dizionario.
- Non può contenere alcuna parte del tuo nome, nome utente o data di nascita (se conosco queste cose)
- Non si può avere una "password vietata" uguale o superiore al 50% della password. Le password vietate includono quelle che sono mai apparse nell'elenco 25 di SplashData, inclusa la maggior parte dei grandi come "Password", "letmein", "12345678" ecc., Nonché qualsiasi stringa che sia "interessante" nella sicurezza IT ("correcthorsebatterystaple") , "orpheanbeholderscrydoubt") e qualsiasi password precedentemente utilizzata e nota per essere stata compromessa. L'elenco completo sarebbe relativamente breve e facilmente visualizzabile dagli utenti tramite un link dall'elenco delle regole.