Esistono validi motivi per non consentire l'accesso ai caratteri e limitare la lunghezza delle password?

39

Mi sono imbattuto in parecchi siti che limitano la lunghezza che consentono alle password di essere e / o non consentono determinati caratteri. Questo mi limita perché voglio allargare e allungare lo spazio di ricerca della mia password. Mi dà anche l'impressione scomoda che potrebbero non essere hashing.

Ci sono motivi buoni per impostare una lunghezza superiore o escludere caratteri nelle password?

    
posta chris 27.06.2011 - 17:56
fonte

10 risposte

26

No

Non ci sono motivi buoni .

EDIT: Non posso provare che non ci sono buone ragioni, perché non si può dimostrare un negativo. Non riesco a pensare a ragioni valide per questo - come altri hanno sottolineato, l'hash avrà le stesse dimensioni indipendentemente dalle dimensioni dell'input, e l'eliminazione di caratteri validi (dal contesto della domanda) riduce lo spazio degli stati. La risposta sembra ovvia: non ci sono ragioni buone . Ci possono essere un gran numero di ragioni che sembrano buone o che sembrano buone, ma non lo sono. Se lo fossero, qualcuno li avrebbe già pubblicati qui, o se non fosse qui allora sicuramente su security.stackexchange.com, e questa risposta non sarebbe stata così strongmente pubblicizzata.

    
risposta data 27.06.2011 - 18:05
fonte
25

Limitare la lunghezza può essere una misura per limitare il tempo di esecuzione dell'hashing e limitare la larghezza di banda (ed entrambi sono veramente marginali comunque). Oltre a questo, non c'è una buona ragione, specialmente dal punto di vista della sicurezza.

Si potrebbe dire: "Le persone dimenticheranno più facilmente le password più lunghe" - ma questa è davvero una dichiarazione stupida e non arriva affatto al punto.

Per quanto riguarda i personaggi, purché tu sia a conoscenza dei potenziali problemi di codifica con trasferimento e / o migrazione dei dati in futuro (ad esempio, passerai da ASCII a UTF-8 in 2 anni) consentendo a più caratteri di essere validi solo per punti di forza delle password.

    
risposta data 27.06.2011 - 18:05
fonte
17

, esiste un motivo per caratteri speciali.

Disabilitare i caratteri speciali è più una cosa di usabilità, piuttosto che correlata alla sicurezza. Prima di tutto potrebbero venir lacerati da problemi di codifica. In secondo luogo, anche se si garantisce di utilizzare sempre la stessa codifica, c'è ancora il problema del dispositivo di input. Sarai dipendente dalla tastiera completa (che elimina la maggior parte dei dispositivi mobili), con lo stesso layout di tastiera. Più tardi differiscono non solo tra le lingue, ma anche tra i sistemi operativi, i layout per Windows, Linux e OSX potrebbero essere leggermente diversi. Quindi vedo una buona ragione per non consentire password come: √Ω≈ç∫∞§…¬å∑± .

    
risposta data 27.06.2011 - 21:48
fonte
13

Ci sono state alcune controversie nel mondo della sicurezza qualche anno fa, quando i clienti di Chase hanno scoperto che le loro password erano insensibili alle maiuscole e minuscole. Si è scoperto che la loro pagina web era solo un frontend per un sistema di backend OS / 400 di 30 anni, che aveva un limite tecnico che ignorava il caso. Riparare ciò a quanto pare sarebbe costato milioni di dollari.

Il punto è che ci possono essere costosi motivi di legacy per non permettere password su una certa lunghezza.
(Nota che non sto perdonando questa scusa ...)

    
risposta data 28.06.2011 - 00:57
fonte
8

La maggior parte delle banche, i dipartimenti IT, ecc. Chi impone restrizioni massime di password non lo fa per motivi tecnici. Sono perfettamente consapevoli di come funziona l'hashing della password e di come memorizzare password complesse. Impongono questi limiti perché riduce il numero di chiamate a supporto per le persone che hanno dimenticato le loro password. È una buona ragione per imporre questo tipo di limitazione? Senza significato. Ma, tuttavia, è la ragione principale.

    
risposta data 27.06.2011 - 18:54
fonte
7

Non tutti i dispositivi di input (per quanto riguarda l'hardware) hanno spesso tutti i caratteri che hanno una tastiera completa, o allo stesso modo. Se uno non sta usando un gestore di password, uno potrebbe trovarsi nei guai inserendo tale password, no? E Unicode è ancora lontano (molto lontano) dall'essere uno standard.

    
risposta data 27.06.2011 - 18:47
fonte
7

Are there good reasons for either setting an upper length or excluding characters in passwords?

Ho intenzione di fare una supposizione e dire che alcune di queste restrizioni sono dovute al filtro dei personaggi sul loro sito web ( & < > # ) per tenere lontani gli hacker. Mentre altri sono le idee a testa di ossa che escono dai comitati di capi dai capelli a punta.

Mi sono imbattuto in una serie di decisioni di "sicurezza" davvero stupide (secondo me). Ad esempio, una grande società di investimento gestisce i miei conti dell'IRA e anche la mia pensione. Per poter qualsiasi contatto con la pensione è necessario che io inserisca la mia password al telefono (non è possibile raggiungerli diversamente). Il mio account di brokeraggio / IRA utilizza lettere (maiuscole e minuscole) e alcuni segni di punteggiatura: nessuno di questi caratteri viene visualizzato su un tastierino numerico. Se non riesci ad accedere con la password al telefono, ti consente di reimpostare la password del tuo account di intermediazione su qualcosa che puoi digitare per telefono.

Il mio sistema di gestione stipendi (per la società di consulenza per cui lavoro) richiede numeri e solo numeri - questo consente loro di utilizzare lo stesso database indipendentemente dal fatto che l'utente effettui chiamate (non l'ho mai fatto) o utilizza l'interfaccia web (solo io Usa questo).

Detto questo, è tempo di cambiare la mia password in ufficio. Hanno delle restrizioni così pazze che ritengo che impiegherà circa mezza giornata per trovare una password accettabile per il sistema: almeno 2 lettere maiuscole, almeno 2 lettere minuscole, almeno 2 cifre (che non possono essere +/- 1 dalla precedente password), almeno 2 caratteri non alfabetici / non numerici, non può corrispondere a nessuna delle ultime 24 password, non può contenere alcuna stringa (avanti o indietro) che è una parola (3 o più lettere lunghe) in inglese ( anche un paio di altre lingue che non ho il permesso di sapere). penso la lunghezza minima è pari a 10-11 caratteri.

    
risposta data 27.06.2011 - 19:28
fonte
5

Un motivo per limitare i caratteri sarebbe dovuto a come viene inserita la password.

Diverse banche, ad esempio, con i loro siti Web di Internet Banking, richiedono caratteri specifici da una password e selezionano i caratteri appropriati tramite una casella a discesa.

Lo fanno, presumibilmente, in modo tale che i keylogger non possano rilevare la pressione del tasto e quindi conoscere [caratteri dalla] password. Mentre so che ci sono molti altri modi in cui tali misure potrebbero essere aggirate, ad es. screencapture; è ancora efficace contro i keylogger.

Se dovessero consentire tutti i caratteri, allora la lunghezza della casella a discesa diventerebbe ingombrante, e inoltre permetteranno la confusione tra personaggi dall'aspetto simile.

    
risposta data 28.06.2011 - 00:40
fonte
2

La disabilitazione di caratteri speciali come la scheda sarebbe valida. È possibile accedere o modificare la password con un carattere di tabulazione in modalità testo ma non è possibile utilizzarlo in una GUI o in un ambiente Web. Un backslash char presenterà anche alcuni problemi multipiattaforma.

btw le password lunghe non sono password: sono passphrase. Il tuo utente medio non può ricordare 2Z8d!% G # x ma possono ricordare "il nome del mio animale domestico è fido il cane". Il testo più lungo è più difficile da decifrare tramite la forza bruta ed è molto meno probabile che venga scritto su una nota allegata allo schermo.

    
risposta data 28.06.2011 - 15:09
fonte
0

Quando le persone digitano fanno errori, chiamate "errori di battitura". Normalmente le persone vedono i propri errori e li correggono. Per l'inserimento della password di solito non riesci a vedere cosa hai digitato e quindi non puoi correggere i tuoi errori di battitura. Fai errori senza rendertene conto, invia la tua password e torna come "password non valida". Quindi riprovi. Quindi riprovi.

Si può pensare a "3 piccoli errori di battitura minori e quindi non si può distinguere da un attacco di forza bruta". In che modo i sistemi difendono dagli attacchi di forza bruta? Una risposta esplicita " Troppi tentativi, vai via, non sarai in grado di accedere anche se hai ragione" "? Ritardi in aumento esponenziale dell'ingresso della password che portano a timeout del browser quando il ritardo è troppo lungo, rendendo impossibile riprovare ad accedere? Gli approcci variano, ma c'è sempre una conseguenza in un sistema ben progettato.

Si può pensare a "3 piccoli errori di battitura minori e quindi si ottiene una sorta di rifiuto di servizio".

Man mano che aumenta la lunghezza della password, aumenta il rischio di errori di battitura (e quindi il rischio di negare l'accesso a una persona autorizzata). Qualcosa di più lungo di circa 20 caratteri verrà erroneamente digitato (a meno che l'utente non sia intelligente / pigro e memorizzi la password da qualche parte in modo che possano "copiare e incollare" senza preoccuparsi di errori di battitura, come un bel file di testo sul desktop chiamato "< em> passwords.txt ").

    
risposta data 01.05.2017 - 11:39
fonte

Leggi altre domande sui tag