Esistono motivi validi per vietare i 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 vietano determinati caratteri. Questo mi limita perché voglio ampliare e allungare lo spazio di ricerca della mia password. Mi dà anche una sensazione spiacevole che potrebbero non avere hash.

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


26
Sicuro! Rende più facile indovinare le password delle persone! : P
FrustratedWithFormsDesigner,

4
Stiamo parlando di validi motivi "tecnici" o validi motivi "commerciali"?
Martin York,

1
@Martin: stavo pensando tecnico ma o suppongo.
chris,

11
@JYelton Perché ti importa qual è la lunghezza della password originale? L'hash avrà sempre le stesse dimensioni. Spero sicuramente che non li memorizzi in testo normale ...
Pewpewarrows,

Risposte:


27

No

Non ci sono buoni motivi.

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


3
Sono d'accordo, ma il commento che Kissaki fa sulla codifica è valido. Alcuni stack / programmatori non riescono a ottenere la codifica corretta, poiché limitarsi a ASCII è un trucco economico per farlo funzionare.
edA-qa mort-ora-y

10
Potresti almeno provare a elaborare? O non lo sai per certo, o hai motivo di credere che i motivi comuni / esistenti non siano validi. Dandoti il ​​beneficio del dubbio e assumendo quest'ultimo, dovresti spiegare perché questi motivi non sono validi.
Aaronaught,

8
-1 - Posso pensare a diverse buone ragioni per limitare le password a un determinato set di caratteri. Allo stesso modo, anche il supporto di password telefoniche a toni o di quelle digitate tramite tastiera è una situazione da tenere a mente.
rjzii,

9
-1. Nessuna giustificazione, solo opinione. Se hai intenzione di fare una dichiarazione generale, esegui il backup.
Michael K,

4
Questo è ora in discussione sul nostro sito di meta-discussione : sarebbe utile capire perché una risposta di una sola parola è così popolare e cosa possiamo fare per migliorare la qualità delle risposte in questo modo.

25

Limitando la lunghezza può essere una misura per limitare il tempo di esecuzione del hashing oltre a limitare la larghezza di banda (e sia di quelle sono davvero comunque marginale). A parte questo, non esiste una buona ragione, soprattutto dal punto di vista della sicurezza.

Si potrebbe dire: "Le persone dimenticheranno più facilmente le password più lunghe", ma questa è davvero un'affermazione stupida e non arriva affatto al punto.

Per quanto riguarda i caratteri, fintanto che siete a conoscenza di potenziali problemi di codifica con il trasferimento e / o la migrazione dei dati in futuro (ad esempio, passerete da ASCII a UTF-8 in 2 anni) consentendo più caratteri può essere utile solo per i punti di forza delle password.


4
Considerato il sovraccarico di qualsiasi lunghezza di protocollo moderna, non può assolutamente essere una buona ragione - a parte un limite elevato come 1K solo per prevenire determinati attacchi / sciocchezze.
edA-qa mort-ora-y

3
Limitare i tempi di esecuzione dell'hash è generalmente negativo. Più tempo ci vuole per calcolare un hash, più tempo ci vuole per forzarlo.
tdammers,

Anche se è vero, è sempre un compromesso. Non vuoi calcolare sempre l'hash migliore che richiede più tempo. Quindi stretta di mano asimmetrica vs flusso di dati simmetrico in VPN, ecc.
Kissaki,

17

, c'è un motivo per i personaggi speciali.

Non consentire caratteri speciali è più una questione di usabilità, piuttosto che legata alla sicurezza. Prima di tutto potrebbero essere rovinati da problemi di codifica. In secondo luogo, anche se avresti la garanzia di utilizzare sempre la stessa codifica, c'è ancora il problema del dispositivo di input. Dipenderai dalla tastiera completa (che elimina la maggior parte dei dispositivi mobili), con lo stesso layout di tastiera. Successivamente differiscono non solo tra le lingue, ma anche tra i sistemi operativi, i layout per Windows, Linux e OSX potrebbero essere leggermente diversi. Così vedo una buona ragione per non permettere la password come: √Ω≈ç∫∞§…¬å∑±.


3
a meno che tu non stia fornendo una password ai tuoi utenti, vale a dire, se sono loro a inserire la password stessa, se scelgono di usare uno strano simbolo matematico è davvero la loro attività. ora sono d'accordo con il problema della codifica qui, anche se trovo più una scusa per passare sotto l'incompetenza del radar che un buon motivo per prevenire arbitrariamente determinati personaggi.
Newtopian,

2
@nuovo: non sono affari loro. Se si sparano ai piedi, percepiranno comunque come un problema con la tua applicazione e chiameranno il tuo supporto.
vartec,

7
@Newtopian: lo odio quando, come utente, vengo circoscritto per ignoranza (come non essere in grado di specificare un "+" nel mio indirizzo e-mail). A volte, tuttavia, è una buona idea non dare agli utenti troppa corda con cui impiccarsi. Penso che sia un'occasione simile. Non si tratta di "arbitrariamente" impedire determinati personaggi.
Zano,

1
Quindi stai sostenendo che Greci, Arabi, Cinesi e altri usano US-ASCII?
l0b0,

@ l0: no, sto sostenendo che nelle loro lingue usino caratteri normali e comunemente usati, piuttosto che alcuni caratteri speciali, che potrebbero essere assenti in alcuni layout.
Vartec,

13

Qualche anno fa c'è stata una controversia nel mondo della sicurezza quando i clienti di Chase hanno scoperto che le loro password non distinguevano tra 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 una limitazione tecnica che ignorava il caso. Risolvere il problema sarebbe apparentemente costato milioni di dollari.

Il punto è che potrebbero esserci costosi motivi legacy per non consentire password per un certo periodo.
(Nota che non sto perdonando questa scusa ...)


1
nella misura in cui questa è l'unica buona ragione per limitare la password in alcun modo ... solo se il sistema sottostante manterrà tali limitazioni in primo luogo.
Newtopian,

8

La maggior parte delle banche, dipartimenti IT, ecc. Chi applica le massime restrizioni per le password non lo fa per motivi tecnici. Sono perfettamente consapevoli di come funziona l'hash delle password e come archiviare password complesse. Impongono queste limitazioni perché riduce il numero di chiamate a supporto per le persone che hanno dimenticato la password. È una buona ragione per imporre quel tipo di limitazione? Senza significato. Tuttavia, è la ragione principale.


1
Vedo ridurre le chiamate di supporto come valid Business reason(Personalmente non credo davvero che ci sia una correlazione)
Martin York,

2
Bene, ci sono altri modi per ripristinare le password o educare gli utenti su come scegliere password sufficientemente complesse e facili da ricordare. Le mie ultime password sul lavoro sono state> 25 caratteri e non ho avuto problemi a ricordarle. Inoltre, presumibilmente, le persone che hanno difficoltà a ricordare le loro lunghe password sceglieranno comunque password più brevi, anche se non ho idea di quanto spesso sia vero. Ridurre le chiamate di supporto sembra in superficie un valido motivo commerciale, ma è ancora un motivo scadente per limitare la lunghezza della password.
Greg Jackson,

1
Penso che il mio (e molte persone) troverebbero digitando accuratamente (non solo ricordando) 25 caratteri senza vedere l'output quasi impossibile. Finora ho corretto 5 errori di battitura durante la digitazione!
Gerry,

Bene, ricordare non è lo stesso che scrivere. Ricordare le password lunghe è molto semplice se sai come sceglierle; scegli semplicemente linee di storie o opere teatrali o parti di poesie o testi di canzoni. Finché cambi una o due cose lì dentro (errori ortografici intenzionali, cambia una parola in un'altra che sembra simile o significa la stessa cosa, ecc.), È abbastanza facile ed estremamente sicuro. È vero, digitarlo potrebbe essere più difficile, ma non è una scusa per le banche che ti costringono a digitare meno di 8/10/12 caratteri.
Greg Jackson,

prova a digitare quella password di 25 lettere su un dispositivo mobile
Lie Ryan

7

Non tutti i dispositivi di input (dal punto di vista hardware) hanno spesso tutti i caratteri di una tastiera completa o similmente. Se non si utilizza un gestore di password, è possibile riscontrare problemi nell'inserimento di tale password, no? E Unicode è ancora molto lontano (molto lontano) dall'essere uno standard.


1
Di solito le persone che inseriscono le password useranno lo stesso hardware (o classe hardware) per crearle e autenticarle. Non vedo come questo sia un argomento per limitare i set di caratteri o la lunghezza. Per quanto riguarda Unicode, quando si costruisce il lato server (la parte di autenticazione) perché dovresti limitare le dimensioni o i set di caratteri? qualsiasi sistema che richiede una password per entrare dovrebbe essere in grado di controllare come questa password è inserita nel sistema, quindi, se hai bisogno di unicode per il tuo client, allora così sia!
Newtopian,

@Newtopian Stai assumendo che non devi interfacciarti con sistemi legacy o con sistemi al di fuori del tuo controllo.
Grahamparks,

1
hanno chiesto una buona ragione, questa non è una buona ragione

2
@Jarrod - Non riuscire a inserire una password non è un buon motivo ?! In ogni caso, non ti ho visto inventarne uno migliore (o nessuno).
Rook,

3
@Rook non avresti dovuto usare quei personaggi se avessi saputo che non potevi sceglierli da un dispositivo, questo non lo rende un buon motivo per limitarli per tutti, lo rende un buon motivo per te personalmente non usarli.

7

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

Ho intenzione di fare un'ipotesi e dire che alcune di queste restrizioni sono dovute al filtro dei caratteri sul loro sito Web ( & < > #) per tenere fuori gli hacker. Mentre altri sono le idee dalla testa d'osso 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 IRA e la mia pensione. Per fare qualsiasi contatto con la pensione mi impone di digitare la mia password al telefono (altrimenti non è possibile raggiungerli). Il mio account di intermediazione / IRA utilizza lettere (maiuscole e minuscole) nonché alcuni segni di punteggiatura: nessuno di questi caratteri appare su un tastierino numerico del telefono. Se non riesci ad accedere con la password al telefono, ti consente di reimpostare la password del tuo account di brokeraggio su qualcosa che puoi digitare al telefono.

Il mio sistema di gestione stipendi (per la società di consulenza per cui lavoro) richiede numeri e solo numeri: ciò consente loro di utilizzare lo stesso database se l'utente chiama (non l'ho mai fatto) o utilizza l'interfaccia Web (io uso solo questo) .

Detto questo, è tempo di cambiare la mia password in ufficio. Hanno restrizioni così folli che stimerò ci vorrà 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 password precedente), almeno 2 caratteri non alfa / non numerici, non può corrispondere a nessuna delle ultime 24 password, non può contenere alcuna stringa (avanti o indietro) che sia una parola (lunga 3 o più lettere) in inglese ( anche un paio di altre lingue che non ho nulla da sapere). Penso che la lunghezza minima sia di 10-11 caratteri.


Sì, ho visto quei personaggi nella lista no.
chris,

5
Attacco semplice: trova le note adesive sotto le tastiere perché nessuno può ricordare la propria password.
JeffO,

@Jeff, è corretto. Se lascio il mio notebook a casa, le password sono troppo complicate da ricordare, quindi non riesco ad accedere. E sul sistema di gestione stipendi, inserisco il nome utente e la password come parte del segnalibro.
Tangurena,

"non può contenere alcuna stringa (avanti o indietro) che sia una parola (lunga 3 o più lettere) in inglese" Questa è stata quella che mi ha procurato. Gli attacchi del dizionario non sono efficaci se la password contiene parole intere, ma piuttosto se l'intera password è costituita da nient'altro che parole intere ... Beh, davvero una parola completa o frasi molto comuni. Le password più sicure che sono pratiche da utilizzare senza scrivere sono passphrase che provengono da libri, poesie, testi di canzoni, ecc.
Greg Jackson,

1
Il filtro caratteri è un segno sicuro del codice immondizia non testato in background. Gli sviluppatori devono imparare a sfuggire alle stringhe.
l0b0,

5

Un motivo per limitare i caratteri sarebbe dovuto alla modalità di immissione della password.

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

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

Se dovessero consentire tutti i personaggi, la lunghezza della casella a discesa diventerebbe ingombrante e consentirebbe anche la confusione tra personaggi simili.


1
Sicuramente le persone (tecniche) digiterebbero comunque la lettera?
Gerry,

@Gerry - questo è un comportamento specifico del browser piuttosto che uno standard assoluto ed è anche dipendente dalla conoscenza dell'utente per renderlo praticabile.
Jon Hopkins,

La mia banca ha usato un'applet popup di una tastiera per un motivo simile. Ma era troppo difficile da usare e ha ricevuto molte critiche per essere inaccessibile (non ha funzionato per gli screen reader, input alternativi ecc.)
jqa,

1
@Jon - Ho detto persone tecniche e non conosco nessun browser Windows che non implementa almeno la corrispondenza del primo carattere, dato che è un comportamento standard di Windows - non può parlare per Mac e * nix
Gerry il

1
@Gerry Il browser sul mio telefono Android non lo consente. Mi aspetto che sia lo stesso per molti dispositivi mobili.
RoundTower

2

Non consentire caratteri speciali come tab sarebbe valido. È possibile accedere o modificare la password con un carattere di tabulazione in modalità testo ma non è possibile utilizzarla in una GUI o in un ambiente Web. Un carattere backslash presenterà anche alcuni problemi multipiattaforma.

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


Vedi anche xkcd.com/936
sergut

0

Quando le persone digitano commettono errori, chiamati "errori di battitura". Normalmente le persone vedono i loro errori e li correggono. Per l'immissione della password di solito non puoi vedere cosa hai digitato e quindi non puoi correggere i tuoi errori di battitura. Si commettono errori senza accorgersene, inviare la password e viene restituita come "password non valida". Quindi riprova. Quindi riprova.

Puoi pensarlo come "3 piccoli errori di battitura minori e poi sei indistinguibile 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 la risposta è corretta "? Aumentare in modo esponenziale i ritardi nell'inserimento della password che porta a timeout del browser quando il ritardo è troppo lungo, rendendo impossibile tentare di accedere nuovamente? Gli approcci variano, ma c'è sempre una conseguenza in un sistema ben progettato.

Puoi pensarlo come "3 piccoli errori di battitura minori e poi ottieni una sorta di negazione del servizio".

Poiché la lunghezza della password aumenta, aumenta il rischio di errori di battitura (e quindi il rischio di negare l'accesso a una persona autorizzata). Qualsiasi cosa più lungo di circa 20 caratteri sta per essere scritto male spesso (a meno che l'utente sia intelligente / pigro e memorizza la password da qualche parte in modo che possano "copia e incolla", senza preoccuparsi di errori di battitura, come un bel file di testo sul proprio desktop chiamata " le password .txt ").

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.