Perché i siti web limitano il numero e la scelta dei caratteri in una password? [duplicare]

12

Registrarsi sul sito web di una compagnia di assicurazioni adesso, e la mia password è lunga 16 caratteri, usando una buona varietà di lettere, numeri, caratteri speciali, ecc. Tuttavia, ecco il loro elenco di restrizioni:

Note your password:

  • must be between 6 and 12 characters
  • must not contain spaces, special/international characters
  • must not contain your user name, first name or last name
  • is case-sensitive
  • should contain at least 1 number and 1 letter

Riesco a capire un minimo di 6 caratteri, non consentendo parti del tuo nome, che fanno distinzione tra maiuscole e minuscole e che richiedono almeno un numero e una lettera. La parte che non ottengo limita la scelta dei caratteri che puoi utilizzare e il limite superiore.

Perché i siti Web fanno questo? L'unica cosa che posso pensare è che non conoscono le nozioni di base dell'hashing di una password, che lo proteggerebbe meglio di qualsiasi altra cosa e di eliminare qualsiasi problema di sicurezza.

Se scelgo di digitare DELETE FROM users WHERE 1=1 come password, dovrei essere autorizzato a farlo. L'hash MD5 di PHP diventa fe5d54132b51b7d65ab89b739b600b4b che non credo danneggi nulla.

    
posta Tarka 28.10.2010 - 16:24
fonte

6 risposte

17

Dipende dai programmatori (o dalla loro gestione) essere pigri e / o ignoranti. Non ci vuole molto più lavoro per far sì che il tuo sistema accetti qualsiasi carattere, ma significa che devi passare un po 'di tempo a pensare agli attacchi SQL injection, allo scripting cross-site, assicurandoti che tutte le parti del sistema siano in grado di gestirle , ecc. Può essere più economico e veloce solo per vietare qualsiasi carattere che potrebbe essere un problema.

    
risposta data 28.10.2010 - 16:44
fonte
10

Di solito le restrizioni sui "caratteri estesi" sono perché la gestione nei gruppi di programmazione bancari era un programmatore COBOL e sapeva che i set di caratteri sono difficili.

    
risposta data 28.10.2010 - 18:36
fonte
2

Le banche limitano i caratteri speciali, probabilmente perché stanno memorizzando le password in testo semplice, che non dovrebbero fare , e hanno paura che alcuni caratteri speciali infiltrarsi nella loro logica di business e hackerarlo.

Per quanto riguarda il limite del numero di caratteri, posso solo ipotizzare che il software su alcuni dei mainframe che usano ancora non possa gestire campi di testo più grandi di quello.

    
risposta data 28.10.2010 - 16:53
fonte
1

Riesco a capire come proibire i caratteri speciali, ma non ci sono scuse per i limiti di lunghezza della password. Uso un gestore di password e mi piace usare password incredibilmente lunghe. Dal momento che non devo ricordarli o digitarli, perché no?

Posso pensare ad una sola ragione per cui un sito potrebbe limitare la lunghezza della password. Le persone che gestiscono il sito temono che se lasciano che i propri utenti utilizzino password veramente valide, le dimenticheranno con maggiore frequenza e dovranno inviare un paio di ulteriori chiamate o e-mail di supporto. È una scusa molto scusa, ma è l'unica ragione possibile per una politica così stupida che posso inventare.

    
risposta data 28.10.2010 - 16:52
fonte
0

Questa decisione sembra essere basata su ciò che è pratico per la maggior parte degli utenti. A differenza dei programmatori e dei tecnici, molti utenti di servizi bancari online sembrano avere difficoltà a ricordare un pin di 4 caratteri, figuriamoci una password di lunghezza decente. Quale è uno dei driver per l'autenticazione a 2 fattori: dai loro un dispositivo che produce una password, quindi tutto ciò che devono fare è non perdere il dispositivo!

Rispetto al "perché non ci sono personaggi speciali" - non è la pigrizia, è una decisione sensata nel ridurre il potenziale panorama degli attacchi. Se permetti gli apostrofi, gli hash, i segni di uguale, ecc, devi essere sicuro al 100% che la tua routine di validazione dell'input catturi i tentativi di iniezione SQL, ad esempio: se autorizzi solo quei caratteri che vuoi inserire nell'input, ti risparmi un sacco di danno potenziale.

Sono d'accordo in linea di principio con Matteo - in un mondo ideale le password dovrebbero essere memorizzate solo con un hash a 1 via, tuttavia una banca perderebbe i clienti se lo facessero, quindi deve esserci un modo. Spesso, oltre agli hash memorizzati nel database principale, esiste un campo crittografato, nello stesso database o in un database separato per le password solo per questa funzione

    
risposta data 04.12.2010 - 14:39
fonte
-1

Non sono d'accordo con la restrizione della password in questo caso, ma in generale il pieno set di caratteri unicode per la password potrebbe introdurre alcuni problemi. Per esempio. se il sistema consente di recuperare la password tramite e-mail tramite un meccanismo di convalida, la password potrebbe non essere visualizzata correttamente nel client di posta elettronica a causa della mancanza di supporto Unicode.

Per quanto riguarda il motivo per cui non sono consentiti spazi e altri caratteri speciali, ad es. nella email di recupero della password:

La tua password è: effettivamente qualcos'altro, non questo

Ermm ... confondendo sì?

vs

La tua password è ActuallySomethingElseNotThis1

    
risposta data 28.10.2010 - 16:32
fonte

Leggi altre domande sui tag