Perché le password sono limitate a 16 caratteri?

33

Qual è la ragione per cui la maggior parte dei siti Web limita a 16 caratteri?

Avrei pensato che più lunga è la password, più difficile è per qualcuno che la rompa?

Ha qualcosa a che fare con le collisioni di hash?

    
posta orange 31.07.2012 - 23:30
fonte

2 risposte

31

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

Ci sono due motivi per limitare la dimensione della password. Per esempio, l'hashing di una grande quantità di dati può causare un notevole consumo di risorse per conto del server e sarebbe un obiettivo facile per Denial of Service. Soprattutto se il server utilizza un allungamento della chiave come PBKDF2.

Le altre preoccupazioni sono gli hash attacchi di estensione della lunghezza o l'attacco di prefisso contro MD5. Tuttavia, se stai usando una funzione di hash che non è rotta, come bcrypt o sha-256, allora questo non dovrebbe preoccupare le password.

IMHO 16 byte è troppo piccolo . bcrypt ha un cappuccio integrato di 72 caratteri, che è probabilmente una dimensione ragionevole per una pesante funzione di hash. Lo stretching chiave utilizzato da queste funzioni crea la possibilità di un Algorithmic Complexity Attack o ACA .

    
risposta data 31.07.2012 - 23:52
fonte
19

What is the reason that most websites limit to 16 characters?

Limite di implementazione arbitrario.

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

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

I would have thought the longer the password the more difficult it makes it for someone to crack it?

In effetti. Una password con 16 caratteri alfabetici casuali indipendenti con una distribuzione uniforme ha abbastanza entropia. Ma l'essere umano non è in grado di scegliere casualmente 16 caratteri alfabetici casuali indipendenti con una distribuzione uniforme e terribilmente cattivi nel ricordare tali sequenze di caratteri prive di significato , quindi scelgono password che possono ricordare, ma con meno entropia per carattere .

Ciò che importa è solo l'entropia totale, non l'entropia per carattere. Ad esempio, una sequenza di parole di dizionario casuali, generate con un word-die (word-die: apre una pagina a caso in un dizionario, ecc.) è più facile da ricordare rispetto a una sequenza di lettere ottenute con un letter-die.

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

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

In altre parole, questo limite è stupido .

Is it something to do with hash collisions?

No.

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

    
risposta data 31.07.2012 - 23:49
fonte

Leggi altre domande sui tag