Il problema con la scelta di una password basata su un pattern è che, se l'hacker conosce il pattern, possono eliminare un numero relativamente grande di password che altrimenti avrebbero dovuto testare.
Questo è il motivo per cui sosteniamo che le password siano generate casualmente il più possibile. Le uniche restrizioni che potresti vuoi mettere sulla generazione casuale sono:
- Lunghezza minima del carattere
- Inclusione di più tipi di carattere
Questi aiutano a garantire (anche se, rigorosamente, non garantisce) che il generatore casuale non sputerà involontariamente una password che probabilmente si troverà nei dizionari o nelle tabelle arcobaleno. Tuttavia, dove può essere evitato, noi non vogliamo aggiungere restrizioni come queste:
- Lunghezza massima del carattere
- Esclusione di determinati caratteri o tipi di carattere
- Corrispondenza di modelli specifici (ad es. una parola del dizionario ripetuta n volte - anche se n è casuale)
Questi notevolmente riducono lo spazio di ricerca per un utente malintenzionato che conosce lo schema di generazione della password. Potresti ancora essere in grado di evitare quelli che stanno semplicemente cercando in un database le password che possono facilmente infrangere. Ma sarai molto più vulnerabile a un attaccante dedicato e intraprendente che ti sta bersagliando in modo specifico (alcuni lo chiamano "Advanced Persistent Threat" o "APT"), o se il tuo particolare metodo diventa comune tra altri utenti e la grande scala gli aggressori regolano i loro metodi per compensare.
La vera generazione casuale di password, con molto alcune restrizioni per evitare l'output accidentale di password deboli, è l'unico modo per essere sicuri che la tua password sia abbastanza potente da resistere praticamente a qualsiasi attaccante. Naturalmente, tutto questo presuppone che anche i meccanismi di archiviazione e trasmissione della password siano ragionevolmente sicuri, ma questo esula dallo scopo di questa domanda.
In breve: una password basata su una singola stringa ripetuta un numero di volte, è sempre più vulnerabile a un attacco dedicato rispetto a una che è di uguale lunghezza e generata casualmente in tutto.