it-swarm.it

Perché le password sono limitate a 16 caratteri?

Qual è il motivo per cui la maggior parte dei siti Web ha un limite di 16 caratteri?

Avrei pensato che più lunga fosse la password, più difficile sarebbe per qualcuno decifrarla?

Ha a che fare con le collisioni di hash?

36
orange

Se si deve rispettare CWE-521: Requisiti password deboli . Quindi tutte le password devono avere una lunghezza minima e massima della password.

Esistono due motivi per limitare la dimensione della password. Per uno, l'hashing di una grande quantità di dati può causare un consumo significativo di risorse per conto del server e sarebbe un obiettivo facile per Denial of Service. Soprattutto se il server utilizza l'estensione dei tasti come PBKDF2.

L'altra preoccupazione è l'hash attacchi di estensione della lunghezza o l'attacco prefisso contro MD5. Tuttavia, se si utilizza una funzione hash che non è interrotta, come bcrypt o sha-256, questo non dovrebbe essere un problema per le password.

16 byte IMHO è troppo piccolo . bcrypt ha un limite incorporato di 72 caratteri, che è probabilmente una dimensione ragionevole per una funzione hash pesante. L'allungamento dei tasti utilizzato da queste funzioni crea la possibilità di un Algorithmic Complexity Attack o ACA.

32
rook

Qual è il motivo per cui la maggior parte dei siti Web ha un limite di 16 caratteri?

Limite di attuazione arbitrario.

Forse vogliono solo allocare un buffer di 17 ottetti (16 caratteri ASCII/1 ottetto + NUL che termina).

Forse credono che avere una password con più di 16 caratteri sia inutile o sciocco, perché non hanno comprensione delle password.

Avrei pensato che più lunga fosse la password, più difficile sarebbe per qualcuno decifrarla?

Infatti. Una password con 16 caratteri alfabetici indipendenti casuali con una distribuzione uniforme ha abbastanza entropia. Ma l'essere umano fa male a scegliere casualmente 16 caratteri alfabetici indipendenti casuali con una distribuzione uniforme e terribilmente cattivo nel ricordare sequenze di caratteri così insignificanti, quindi scelgono password che possono ricordare, ma con meno entropia per carattere .

Ciò che conta è solo l'entropia totale, non l'entropia per carattere. Ad esempio, una sequenza di parole del dizionario casuali, generate con un dado (Word-die: apre una pagina casuale in un dizionario, ecc.) è più facile da ricordare di una sequenza di lettere ottenuta con una lettera-dado.

Tali password saranno più lunghe delle sequenze di lettere puramente casuali, ma saranno molto più facili da ricordare per la stessa entropia; o, se preferisci, avranno molta più entropia per lo stesso sforzo di memoria mentale.

Per una forza adeguata, queste password fatte di parole del dizionario avranno probabilmente più di 16 caratteri.

In altre parole, questo limite è stupido.

Ha a che fare con le collisioni di hash?

No.

Non esiste alcuna garanzia formale in merito alle collisioni con password brevi, ma l'impatto pratico delle collisioni con hash è inesistente.

18
curiousguy