Domanda:
Regole password: devo disabilitare le password del dizionario "leetspeak" come Tr0ub4dor di XKCD e 3
Jason Coyne
2015-07-10 23:13:49 UTC
view on stackexchange narkive permalink

TLDR: per alcuni utenti è già necessaria l ' autenticazione a due fattori. Sto hashing, saltando e facendo cose per incoraggiare passphrase lunghe. Non mi interessano i meriti delle regole di complessità delle password in generale. Alcuni di questi sono richiesti dalla legge e altri sono richiesti dal cliente. La mia domanda è piuttosto ristretta: devo rilevare le password in leetspeak come Tr0ub4dor&3 come parole del dizionario, e quindi fallire le password che consistono principalmente in una singola parola del dizionario (anche se leeted). Le passphrase di più parole sono sempre accettate indipendentemente dal fatto che vengano cancellate o meno, questa è solo una domanda su coloro che scelgono di utilizzare password brevi più tradizionali.

Sono lo sviluppatore principale di un imminente sito web del governo che esporrà dati personali sensibili informazioni (precedenti penali, SSN, ecc. principalmente). Il sito Web verrà utilizzato dal pubblico in generale, per eseguire controlli in background sui dipendenti, ecc.

Sul backend, sto memorizzando le password con hash PBKDF2 salate per utente con iterazioni molto elevate , quindi gli attacchi di hashing di forza bruta contro password più forti non sono realistici (attualmente) e il sito web blocca l'utente per 10 minuti dopo cinque tentativi errati, quindi non puoi nemmeno usare la forza bruta in questo modo.

Ricevo alcune critiche dai miei clienti / partner in merito alla gravità delle regole per le password che ho implementato.

Ovviamente voglio che le persone utilizzino passphrase di 16-20 caratteri, ma questa è una burocrazia lenta . Quindi, oltre a consentire / incoraggiare quelle buone password, devo consentire alcune password "dure" più brevi. Sto solo cercando di limitare la nostra visibilità.

In particolare, il requisito "nessuna parola del dizionario" sta causando frustrazione alle persone, poiché non ammetto le classiche password in leetspeak come il famoso Tr0ub4dor&3 di XKCD. (Per i curiosi, eseguo la password proposta tramite un traduttore di permutazioni leetspeak (incluso il rilascio del carattere) e quindi confronto ogni permutazione con un dizionario)

Sono troppo severo? Sono un grande sostenitore della "regola dell'usabilità Avids": la sicurezza a scapito dell'usabilità va a scapito della sicurezza. Ma in questo caso, penso che sia più una questione di abitudine / educazione. Consento password diceware / passphrase leggibili senza restrizioni, solo le password "normali" ottengono requisiti più rigorosi. XKCD # 936: password breve e complessa o passphrase del dizionario lunga?

Dovrei provare a risolvere questo problema con un aiuto dell'interfaccia utente migliore? Dovrei restare fedele alle mie pistole? I numerosi recenti hack di alto profilo, in particolare quelli che hanno esposto le password, mi fanno pensare di avere ragione, ma non voglio nemmeno rendere le cose stupide senza motivo. Dato che sono abbastanza protetto dagli attacchi di forza bruta (penso / spero), questa complessità non è necessaria? O solo una buona difesa in profondità?

Per coloro che non riescono a trovare passphrase o password veramente casuali, le password "due parole più num / simboli" sembrano essere abbastanza facili e almeno più difficili da hackerare , se riesco a convincere la gente a leggere le istruzioni ...

Idee:

  • Suggerimenti per la password migliori / visualizzati in modo più visibile (troppo soggettivo?)
  • Miglior misuratore di forza (qualcosa basato su zxcvbn? - fallirebbe le parole del dizionario sul lato client piuttosto che dopo un invio)
  • Non consentire tutte le password "brevi", costringere le persone a utilizzare solo passphrase, il che rende le regole sono più semplici?
  • pulsante "fammi una password" che genera una passphrase per loro e li fa copiarla nei campi della password
  • Rinunciare e lasciare passare le password leetspeek?

Ecco cosa ho attualmente nelle mie istruzioni / regole per la password:

  • Passphrase di 16 caratteri o più lunga (massimo illimitato)

    o

  • Almeno otto caratteri

  • Contiene tre dei seguenti
    • MAIUSCOLO
    • minuscolo
    • Numeri 0123456789
    • Simboli! @ # $% ^ & * () _ - + =,. / <>?;: '"
  • Non basato su una parola del dizionario
  • Non è il tuo nome utente

Esempi di password che non saranno accettate

  • Troubador (parola del dizionario singola)
  • Troubador&3 (parola del dizionario singola più numeri e simboli)
  • Tr0ub4dor&3 (Basato su una singola parola del dizionario)
  • 12345678 (Non contiene tipi di carattere 3/4)
  • abcdefgh (Non contiene tipi di carattere 3/4)
  • ABCDEFGH (Non contiene tipi di caratteri 3/4)
  • ABCdefgh (Non contiene tipi di caratteri 3/4)
  • ABC @ # $%! (Non contiene non contengono 3/4 tipi di carattere)
  • ab12CD (Troppo corto)

Esempi di password che verranno accettate (non utilizzare nessuna di queste password ds):

  • corretta graffetta della batteria del cavallo (password Diceware)
  • dovrebbe fluttuare le cose modellano il mandato (Passphrase leggibile - collegamento a makemeapassword.org)
  • GoodPassword4! (più parole, maiuscole, minuscole, numeri, simboli)
  • Yyqlzka6IAGMyoZPAGpP (stringa casuale che utilizza maiuscole, minuscole e numeri)
Sono un po 'sorpreso che tu non abbia una regola hard-coded che blocchi il "corretto fiocco della batteria del cavallo"
_ "Passphrase di 16 caratteri o più lunga (numero massimo illimitato)" _ Quindi, se metto GB di caratteri in quel campo, mi permetti di postarla sul server? Interessante...
@KevinCoulombe Se lo fai, stai virtualmente * costringendo * le persone a scrivere la password che stai costringendo a usare. E che piaccia o no, molte di quelle persone che memorizzano la password da qualche parte perché non la ricordano, la metteranno da qualche parte come il loro database dei contatti di Google.
I commenti non sono per discussioni estese; questa conversazione è stata [spostata in chat] (http://chat.stackexchange.com/rooms/25819/discussion-on-question-by-jason-coyne-password-rules-should-i-disallow-leetspe).
Quando un utente sceglie una password, cercala su Google e rifiutala se restituisce risultati. Ma è una specie di grossa perdita ...
Il mio professore universitario ha detto molte volte che le password troppo complesse sono dannose perché le persone tentano di scriverle sui `post-it` e di attaccarle ai monitor poiché non possono memorizzarle.
"Ma in questo caso penso che sia più una questione di abitudine / educazione". Rieducare tutti i tuoi utenti può essere una causa nobile, ma sconsiderata. Cercare di cambiare le abitudini di una sola persona è dannatamente quasi impossibile.
@Tony Sì, è una perdita infernale. Vai avanti e pubblicalo su TheDailyWTF
Non dimenticare "SlowEquals ()".
@FallenAngel: L'ho sentito molto e continuo a chiedermi se sia il pericolo più grande in questi giorni?Voglio dire, se qualcuno è riuscito a superare i controlli di sicurezza sulla mia scrivania, presumibilmente potrebbe anche utilizzare un registratore di chiavi fisico sulla mia tastiera, che mette in discussione gran parte della sicurezza.D'altra parte, vai avanti e prova a hackerare in remoto un post-it.
@sharur ecco perché la soluzione migliore è una lunga password casuale, memorizzata in un gestore di password, protetta da una passphrase lunga ma facile da memorizzare.Ciò protegge da attacchi remoti / hash e attacchi di ingegneria sociale / locale
Attingendo a [questa risposta] (https://security.stackexchange.com/a/45852/10990) sembra che "Tr0ub4d0ur" sia vulnerabile agli "attacchi ai dizionari basati su regole".
Undici risposte:
Tom Leek
2015-07-10 23:55:19 UTC
view on stackexchange narkive permalink

L'errore qui sarebbe credere che regole aggiuntive per le password aumentino la sicurezza. Loro non. Aumentano il fastidio dell'utente; e fanno scegliere agli utenti le password più difficili da memorizzare. Per qualche strana ragione psicologica, la maggior parte delle persone crede che una password con simboli diversi da lettere sia "più sicura" in qualche modo ontologico di una password con solo lettere. Tuttavia, questo è completamente infondato.

Esiste una "regola per la password" che non è dannosa per la sicurezza: una lunghezza minima della password. Ciò è dovuto alla combinazione di due cose:

  • Gli attacchi di forza bruta più stupidi enumerano tutte le sequenze di simboli, iniziando con sequenze di 1, poi 2 e così via. In questo senso, una password che contiene solo 4 simboli può essere considerata irrimediabilmente debole.

  • Gli utenti comprendono la nozione di enumerazione di tutte le password piccole. Sono pronti ad accettare la necessità di digitare almeno 6 o 7 lettere.

Tutte le altre regole saranno, nella migliore delle ipotesi, neutre, ma la maggior parte di esse sarà infatti diminuiscono la sicurezza, perché indurranno gli utenti a:

  1. progettare e condividere tra loro "metodi" per la generazione di password che il tuo server accetterà, metodi che di solito hanno molta punteggiatura caratteri ma pochissima entropia;

  2. annotare le proprie password, che sono difficili da memorizzare;

  3. riutilizzare le password su altri sistemi , per lo stesso motivo di difficile memorizzazione.

Anche i "misuratori di sicurezza delle password" sono dannosi, perché:

  • sono non e non può essere affidabile. Un misuratore di sicurezza della password misura solo la durata di una determinata password rispetto all'esatta strategia di forza bruta incarnata dal codice del misuratore, ma nessun aggressore è obbligato a seguire la stessa identica strategia.

  • I misuratori di forza delle password non possono misurare l'entropia prevalente nella selezione della password, poiché vedono solo il risultato (la password stessa).

  • Trasformano la selezione delle password in un gioco che incoraggia strategie argute da parte dell'utente, e l'arguzia è esattamente ciò che non vogliamo per le password. Le password sicure puntano alla casualità.

Ciò che può aiutare molto è fornire un sistema di generazione delle password. Abbi cura di rendere quel sistema opzionale : vuoi che gli utenti lo usino volentieri, non di forzarlo su di loro, per evitare che si ribellassero (e scrivano le password, condividano e riutilizzino).


Quindi il mio consiglio sarebbe:

  • Rifiuta le password più corte di 7 caratteri (dato che hai un sistema di mitigazione contro gli attacchi online, ovvero il blocco automatico per 10 minuti dopo 5 tentativi sbagliati: puoi tollerare password relativamente brevi). MA NESSUN'ALTRA REGOLA. Va bene qualsiasi sequenza di 7 o più caratteri.
  • Fornisci uno o, ancora meglio, diversi meccanismi di generazione di password opzionali, ad es. diceware, il "cavallo corretto" e così via.
  • Incoraggia l'uso di gestori di password.
  • Se possibile, prova a trovare qualcos'altro oltre alle password per autenticare gli utenti.

La mia affermazione è che stai spingendo le cose in una direzione un po 'distorta , non esattamente quella giusta. In particolare, le regole delle password che insistono su alcuni caratteri specifici sono una cosa negativa (una cosa comune, ma comunque una brutta cosa).

Gli attacchi offline contro una password di 7 caratteri senza regole indovinerebbero molte password molto rapidamente.
L'OP ha detto che stanno lavorando a un sito governativo. Se è per il governo degli Stati Uniti, dovranno seguire le linee guida del NIST che richiedono un minimo di 12 caratteri - 7 non lo faranno affatto.
In questo caso particolare siamo soggetti alle linee guida CJIS che sono 8 e non una parola del dizionario. Forzare i simboli implicitamente non lo rende una parola del dizionario, ma stavo cercando di renderlo un po 'più sicuro di così
Wow. Rispetto al NIST, sono per lo più piuttosto rilassati. 8 caratteri contro 12. Scadenza di 90 giorni contro 60. Cronologia password di 10 contro 24. L'unica cosa che lo rinforza sono i bit relativi all'assenza di parole del dizionario o nomi propri e al non essere lo stesso dell'ID utente.
Per eliminare la gamification, è sufficiente che il tuo programma annunci a tutti in ufficio quali password errate le persone cercano di utilizzare. È improbabile che le persone sperimentino se le persone li guardano sperimentare.
Aggiungerei altre due regole: la password non può essere la stessa del nome utente e la password non può apparire in un dizionario o in un elenco delle password più comuni. Un blocco di cinque tentativi non aiuta se la password è una delle prime cinque cose che tenterà un utente malintenzionato.
@Mark: Almeno, non consentire "password" come password.
Per interesse, esiste un algoritmo di compressione pertinente (forse uno che utilizza un dizionario predefinito di linguaggio naturale) tale da non poter semplicemente limitare la lunghezza della password, ma limitare la lunghezza della password * compressa *? La mia paura è che nel regno di cui stiamo parlando, 7 o 12 byte o altro, non ci siano buoni algoritmi di compressione, ma non si sa mai. E potrebbe escludere le persone che dicono "" 123 "non funziona, che dire di" 123123123 "? Ordinato".
@SteveJessop LZW o qualcosa di simile farebbe un lavoro decente di testare la compressione come suggerisci, ma lo stesso farebbe solo testare direttamente la ripetizione.
@JasonCoyne: Abbastanza giusto, `len (list (lzw.compress ('123123123'))) == 8`. Quindi è un inizio in quanto sono stati identificati 8 bit di "allentamento" nella password. Come dici tu, testare la ripetizione identificherebbe molto di più.
Se l'unica regola è davvero "almeno 7 caratteri", penso che possiamo essere tutti d'accordo sul fatto che la quantità di parole banali del dizionario sarà estremamente alta. E poiché sappiamo che uno di questi è sicuro quanto 4 lettere alfanumeriche casuali (sono davvero generoso lì) perché non accettare anche quelle? Accettare una password davvero sbagliata ma non l'altra è piuttosto ingiusto. Personalmente sono favorevole alle persone che scrivono le loro password complesse per i sistemi online - in genere chiunque possa ottenere così tanto accesso fisico per rubare uno di quei frammenti di carta potrebbe comunque installare un keylogger altrettanto facilmente.
A un livello più concettuale, il problema principale è cercare di forzare l'utente a scegliere una password "complessa". Per ottenere una sicurezza decente, l'utente dovrebbe _ capire_ cosa rende valida o meno una password. Le "regole della password" come l'applicazione di un segno di punteggiatura non sono efficaci per questo; infatti, fanno credere all'utente che "." è in qualche modo "più sicuro" di una lettera come 'k', e questo è controproducente (rende _ meno_ probabile che l'utente capisca effettivamente le cose). La sicurezza richiede la collaborazione dell'utente, che si nutre di _libertà_ e _pedagogia_, non di _rules_.
Mi piace molto di questa risposta (FWIW), ma sembra sfidare solo a metà la cornice della domanda. Da un lato, dici che non puoi legiferare buone password, invece gli utenti devono essere educati a sceglierne di buone. Questo giustifica il tuo forte consiglio che la password `password` non dovrebbe essere rifiutata dal sistema. Ma poi consigli di vietare le password di 6 lettere. Non seguo la logica: se per una questione di politica permetti password terribili che sai cadrebbe rapidamente in forza bruta, dato che spetta all'utente non sceglierne una, allora perché rifiutare 6 lettere?
È solo perché è così leggero (nel codice) da imporre un limite di lunghezza, mentre è relativamente pesante da confrontare con un elenco di password comuni note che gli aggressori proveranno per primi?
Bene, la lunghezza (specialmente quando arrivi al 16/12/20 ecc.) Risolve completamente il problema. Tutto il resto ne risolve una parte e lascia scappatoie e posti in cui le persone possono fare cose stupide. ottenere gli utenti (e i proprietari dei siti) al passo con i tempi richiede tempo. la regola degli "8 complessi" si avvicina ormai a un decennio fa, i non geek non capiscono perché non sarebbe ancora abbastanza buona.
@SteveJessop: secondo la mia logica non dovrebbe esserci alcun limite inferiore alla lunghezza della password. Tuttavia, se il sistema accetta (ad esempio) password di tre lettere, molti utenti si sentiranno investiti della sacra missione di avvisare te (l'amministratore di sistema) della follia delle password di tre lettere e di leggere semplicemente tutti questi reclami consumerà molto tempo. Imporre una lunghezza minima è qualcosa che gli utenti medi comprendono e accettano e serve come segnale che ti interessa davvero la sicurezza.
@Voo, a meno che non avessero bisogno dell'accesso root / amministratore per installare un keylogger ..... per il quale avrebbero bisogno di una password ..... comodamente attaccata allo schermo.
Esistono keylogger hardware di @Paul e sono incredibilmente economici, veloci e facili da installare. E questa è solo la più semplice delle molte opzioni disponibili. Cerca tutti gli attacchi delle cameriere malvagie. C'è un motivo per cui Security 101 dice che se l'aggressore ha accesso fisico alla tua macchina che hai perso.
"[I misuratori di forza delle password] non sono e non possono essere affidabili": mi sembra una semplificazione eccessiva. Certo, [zxcvbn] (https://blogs.dropbox.com/tech/2012/04/zxcvbn-realistic-password-strength-estimation/) non è * perfetto *, ma è probabilmente meglio di niente.
@TomLeek è il tuo ultimo commento, quindi in pratica stai dicendo che la lunghezza minima della password è una forma di * teatro di sicurezza *, ma il tipo buono che mitiga un costo specifico (umano)? Penso che ti stia affidando troppo alla competenza degli utenti medi.
Il punto principale è che gli utenti dovrebbero selezionare password non deboli _ di propria volontà_: più regole applichi, più utenti troveranno modi creativi per generare password deboli, invece di produrre password complesse. Tuttavia, il sistema deve ancora proiettare l'idea che le password complesse siano importanti e una lunghezza minima è, a mio avviso, il miglior compromesso: non troppo dannoso poiché gli utenti sono pronti ad accettare tale limitazione (sentono di capirla), e ancora un buon trasportatore dell'idea che esiste una cosa come la sicurezza.
Sono d'accordo sul fatto che sia meglio convincere gli utenti a migliorare la sicurezza e farlo da soli. Ma la realtà mostra che la stragrande maggioranza degli utenti non lo fa. Se questo fosse un sito interno, potrei istruirli, ma questo è un sito accessibile al pubblico in generale, ma deve comunque essere sicuro. Le mie uniche scelte sono di far rispettare le cose e cercare di istruire il più possibile attraverso i suggerimenti dell'interfaccia utente, bilanciando ciò che penso sia giusto, ciò che la legge richiede e ciò che il cliente richiede (e questi tre vincoli spesso non sono d'accordo)
@JasonCoyne Stai perdendo il punto. Restrizioni aumentate = password e abitudini di password meno sicure. Non importa se l'utente ha una password generata casualmente di 16 cifre che il tuo sistema ha creato per lui se la scrive e la incolla sulla scrivania.
@TonyEnnis Sfortunatamente "Educare gli utenti" è il numero 5 nell'elenco delle cattive strategie http://www.ranum.com/security/computer_security/editorials/dumb/
Adam Katz
2015-07-11 01:10:21 UTC
view on stackexchange narkive permalink

Un indice di valori di entropia ( dividi le volte per il numero di nodi : gli attori dello stato hanno molti nodi):

 BIT ~ RAND CRACK DIZIONARIO COUNT ENTROPY CHARS MD5 PBKDF2̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ Alfabetico (lettere, numeri) 62 5,95 0,9 0 s 0 s Caratteri stampabili casuali (qualsiasi tasto su una tastiera americana) 94 6.55 1.0 0s 0s Parola del dizionario del Diceware 7776 12.92 2.0 0s 0s Parola di dict di inglese americano standard (en_US) 100k 16,61 2,5 0s 0s Parola di dizionario di inglese americano grande 650k 19,31 2,9 0s 1s Qualsiasi parola in qualsiasi Wikipedia (qualsiasi lingua) 58,4M 25,80 3.9 0s 58sDizionario en_US standard con CASE raNDomizzato 6.3M 22.60 3.4 0s 6sDizionario en_US standard con variazioni di l33t 6.3M 22.60 3.4 0s 6sStd en_US con errori di battitura + (caso rand o leet) 38M 25.18 3,8 0s 38sStd en_US con case rand + errori di battitura + leet 2.4B 31.18 4.8 0s 41m Parola di Wikipedia con cASE raNDomIZed (o l33t) 3,7B 31,80 4,9 0s 1 ora Parola di Wikipedia con errori di battitura + (caso rand xor leet) 22B 34,39 5,2 0s 6 ore ordine: 5 inferiore, 1 speciale, 1 num, 1 superiore 1e11 36,52 5,6 2s 1 ordine dei caratteri: 6 inferiore e due di superiore / num / speciale 4e11 38,67 5,9 10s 5drand ordine: 6 inferiore, 1 spec / superiore, anno 1900-2100 4e12 41,70 6,4 1 m 49drand ordine: 7 inferiore e due di superiore / num / speciale 1e13 43,37 6,6 4 m 131 ordine di marcia: 8 inferiore e due di superiore / num / speciale 3e14 48,07 7,3 2h 4y * 4 parole frase chiave diceware 4e15 51,70 7,9 2d 8y * 8 caratteri (stampabile a caso) codice di accesso 6e15 52,44 8,0 2d 9y *
Passphrase Diceware di 5 parole 3e19 64.62 9.9 6y * 27y * Codice di accesso 10 caratteri (stampabile casuale) 5e19 65.55 10.0 6y * 29y * 4 parole en_US standard 1e20 66.44 10.1 7y * 31y * 3 parole en_US std e una parola en_US grande 6e20 69.10 10.5 11y * 35y * 3 std en_US parole e 3 caratteri stampabili casuali 8e20 69.46 10.6 12y * 35y * 6 parole chiave diceware 2e23 77.55 11.8 26y * 47y * 

"Any Wikipedia" include Wiktionary, Wikibooks, ecc, in tutte le lingue, con 58,4 milioni di parole uniche nel 2009. Diceware è stata la base del fumetto xkcd. Presumo una parola di sei caratteri per lettere maiuscole e minuscole miste (quindi ci sono 2 it iterazioni extra) e presumo che le variazioni di leet siano abbondanti quanto le maiuscole e minuscole. Sto usando un valore di sei per errori di battitura / errori di ortografia intenzionali.

I tempi di cracking sono stime per sistemi di cracking a nodo singolo di fascia alta, con aggiornamenti ogni 18 mesi per tenerne conto Legge di Moore (quando vedi un asterisco, * ). Uno spazio è considerato incrinato quando la metà di esso è stata esaminata. Il cracking basato su GPU può testare gli MD5 a 23 B / s su un singolo nodo di computer . PBKDF2 è più robusto, stimato a 300 k / s su un sistema a 4 GPU nel 2013 (27 mesi fa → 2 27/18 , quindi 300 k × 2.828 = 849k / s → arrotondato a 1 M / s).

(Nota per se stessi: leggere e incorporare / confutare la matematica per crackare le password di Jeffrey Goldberg su Quora)

La domanda è stata chiarita nei commenti alla mia altra risposta (che lascio poiché potrebbe essere ancora utile). In realtà si tratta solo di chiedere se consentire o meno il leetspeak. L'autenticazione a due fattori è già in uso per le aree ad alta sicurezza.

La parola "troubador" non è nel mio dizionario standard ma è nel mio dizionario grande. Mettere in maiuscolo la prima lettera di una parola non maiuscole e minuscole casuali (è una comune topologia delle password), quindi raddoppia il conteggio. Il suo equivalente in caratteri stampabili casuali è quindi log₂ (650k × 2⁶ × 2) / 6.55 che è di soli quattro caratteri!

Pertanto Tr0ub4dor&3 è equivalente a sei caratteri stampabili casuali di complessità. Una password debole, ma forte quanto la maggior parte delle password create dalle persone per soddisfare i requisiti di complessità minimi.

Se sei caratteri casuali sono troppo deboli, non consentire le password del dizionario "leetspeak".

Per essere completamente accurato, potresti anche volere un dizionario grande in modo da poter contare le parole come me, altrimenti una password come presidentclinton (33,22 bit, 5 caratteri, inferiore in realtà perché correlato) sarebbe accettato dal tuo sistema.

Ci scusiamo per la confusione pre-chiarimento. Ottima risposta. Anche se vedo il problema delle due parole come reale, sto ricevendo così tante critiche nel non consentire una parola, due parole non sono un inizio. Piccoli passi. Il mio obiettivo è incoraggiare il più possibile il diceware o altre passphrase tramite i suggerimenti dell'interfaccia utente. Aggiungerò zxcvbn che dovrebbe almeno avvisare gli utenti che le 2 parole sono deboli.
È molto più importante limitare i tentativi di password. Presumo che tu stia facendo questo: 5 errori in 5 minuti dallo stesso IP * o * lo stesso nome utente blocca l'IP e / o blocca l'account). Finché il tuo hash db non viene mai compromesso e il tuo throttling non viene mai eluso, la forza della password non ha importanza. Pertanto, se non è possibile migliorare la sicurezza della password, migliorare la sicurezza di quel database hash.
Sto limitando i tentativi online. ci sono abbastanza esempi di vulnerabilità in OS / DB / SSL ecc. che la perdita di hash è una preoccupazione legittima. Con password brevi è ragionevole decifrarle. Ho proposto al cliente di eliminare tutti i requisiti di complessità, ma facendo una lunghezza minima di 16, vedremo come va.
Whoa, rifiuta la ripetizione in questo caso, altrimenti otterrai password come `asdfasdfasdfasdf` e` hiiiiiiiiiiiiiii`. Controllando ciò, dovresti stare bene poiché tutte le lettere minuscole danno ancora 26 ^ 16 che è 75 bit di entropia (equivalente a 11,5 caratteri stampabili casuali) ... o, tramite un attacco di dizionario assumendo tre parole, 100k ^ 3 a 49,9 bit , (equivalente a 7,6 caratteri, anche se con combinazioni di 2 parole e 4+ parole valide, hai più di 9 caratteri). Peccato che non puoi cercare su Google ogni frase per verificarne la popolarità (troppo rischio di fuga di informazioni).
@JasonCoyne: 16 lettere è troppo alto per l'utente medio. Rendilo più ragionevole (7-8 lettere) e usa bcrypt con un [numero estremamente alto di round] (http://security.stackexchange.com/a/83382/1508), se sei così preoccupato. In questo modo la sicurezza generale grava sulle tue spalle e può essere aumentata in seguito se necessario senza disturbare l'utente.
Mi piace come il richiedente abbia accettato la risposta che voleva sentire e non la risposta con più di cinque volte più voti.
@KevinKrumwiede Anche se avrei potuto essere più chiaro nella mia domanda su ciò che stavo chiedendo, ho accettato la risposta che ha risposto più direttamente alla mia domanda. Non stavo chiedendo regole sulle password o pratiche di sicurezza in generale. Stavo chiedendo specificamente del problema di ricerca nel dizionario e del leetspeak. (Come ho detto, avrei potuto renderlo più ovvio nella domanda in origine)
@BlueRaja-DannyPflughoeft Sto usando PBKDF2 a causa di problemi di certificazione FIPS, ma il concetto è lo stesso. Sto usando round molto alti, ma raddoppiare i round aggiunge la stessa complessità a un cracker come un singolo bit aggiuntivo di complessità della password. una lunghezza di 8 senza altre regole di complessità significativa avrà la password violata molto facilmente. Le persone useranno assolutamente password facilmente crackabili, anche con un hashing lento.
@AdamKatz Lockouts rende un banale attacco di negazione del servizio per chiunque conosca un nome utente.
@JasonCoyne: Sfido la tua affermazione secondo cui * "una lunghezza di 8 [..] avrà la password decifrata molto facilmente." * Supponiamo che l'utente utilizzi solo lettere maiuscole e minuscole, senza numeri o caratteri speciali. E supponiamo che il tuo PBKDF2 sia impostato in modo che il server impieghi 0,3 secondi per hash una password. E diciamo che gli aggressori hanno una botnet 1000 volte più potente del tuo server. Quindi un utente malintenzionato impiegherà ancora oltre 250 anni previsti per forzare la password di un utente. Dal momento che stai salando, sono 250 anni ** per utente **.
@BlueRaja-DannyPflughoeft Per una password RANDOM di 8 caratteri, hai ragione. Ma sappiamo per certo che gli utenti scelgono password davvero pessime. Le password leetspeak hanno un'entropia di ~ 25 bit. nel tuo scenario, in cui sono solo lettere, è probabile che una percentuale molto alta di password siano solo parole. Cerchiamo di essere GENEROSI e diciamo tra il vocabolario degli utenti medi (~ 10-20k) e l'entropia / tappi / numeri che useranno le sue combinazioni da 50k-100k. 100K x 0,3 s = 8,3 ore e in media si otterrebbe una password a metà. E questo non tiene nemmeno conto della botnet.
Per i leetspeak 25 bit ti darebbero in media 4,5 anni per password, prima della botnet. Supponendo la botnet, ~ 1,5 giorni
entrambi questi tempi (~ 4 ore, ~ 4,5 anni) ignorano il fatto che i bravi cracker proverebbero parole / combinazioni in ordine di frequenza e probabilmente risolverebbero le cose molto prima per la maggior parte degli utenti.
@DavidRicherby Sì, lo fanno. È quello che fanno anche le banche. In caso contrario, una botnet può forzare brutemente le credenziali di un account.
Il mio blocco è di 10 minuti, il che è sufficiente per fermare la forza bruta online, ma non abbastanza per tenere l'utente fuori in modo permanente (a meno che la botnet non sia dedicata a mantenerlo attivo)
@KevinKrumwiede Ecco perché i meccanismi sono indipendenti. L'OP può (e dovrebbe) scegliere qualsiasi risposta migliore * alla sua particolare domanda. * Il voto della comunità decide cosa è meglio * per i record storici e per i futuri visitatori. *
@Angew Non proprio, poiché la risposta accettata è in alto. La maggior parte delle persone non si preoccupa di scorrere verso il basso fino alla seconda risposta. So che non lo avrei fatto finché non ho visto il commento di Kevin.
Disabilitare un certo _ "tipo" _ di password è sciocco e decisamente fastidioso senza darti alcun vantaggio effettivo.
@DavidRicherby, è d'accordo. I blocchi sono inaccettabili. Anche un blocco di 10 minuti potrebbe bloccare efficacemente un utente reale dal proprio account se qualcuno scrive uno script per continuare a inviare richieste ogni 10 minuti. È più che sufficiente aggiungere solo un leggero ritardo. Dormire per un breve periodo di tempo è un ritardo accettabile per un essere umano, ma rende quasi impossibile la forzatura bruta.
il blocco è richiesto dalla legge in questo caso, quindi nessuna scelta.
@AdamKatz Ottimo aggiornamento al tuo post. 2 numero. 1) Troubador è davvero scritto Troubadour, questo potrebbe metterlo nel tuo piccolo dizionario. 2) Penso che potresti sottovalutare in modo significativo le velocità di hash PKDBF2 sulle GPU. I ragazzi della 1 password la stimano a 1 M / s https://blog.agilebits.com/2012/07/31/1password-is-ready-for-john-the-ripper/ Questo è in realtà lo stesso articolo collegato in quella risposta SO ti sei collegato, ma non hanno visto la stima della GPU
@JasonCoyne ** 1) ** Corretto, `Troubadour` appare in tutti i dizionari, incluso il dizionario di parole standard 100k, mentre` Troubador` è solo nei dizionari lg 650k e wikipedia. Se dovessi doppiare quest'ultimo come un errore di ortografia, si adatterebbe al dizionario std + mispellings (100k * 6) e la sua entropia diminuirebbe leggermente. ** 2) ** Bella presa, ma la cifra di 1 M / s si riferisce a 1k iterazioni, non 10k. Supponendo che la complessità dell'iterazione sia lineare, 10k iterazioni sarebbero 400k / s (ancora 4000x la risposta SO). Posso aggiornare la mia tabella e i risultati w.r.t. quella.
@JasonCoyne 1. blocco tramite IP, non dall'utente (sembra ovvio) 2. rilevamento delle password in stile leet specificamente per * rimuoverle * dallo spazio delle password. Controproducente. Sono un neofita, ma le prove qui suggeriscono fortemente che hai accettato la risposta sbagliata.
@StevenLu Sì, li rimuove dallo spazio della password. Così fa qualsiasi tipo di limitazione della complessità della password. Ma le password che rimangono sono quelle che richiedono una ricerca esaustiva rispetto a quelle che verranno catturate in attacchi basati su regole in poche ore / giorni
Guarda .... `Tr0ub4dor & 3` è una password * superiore * a` Troubadore` o `Troubadour` o quello che hai. Non ha senso battere il cavallo morto perché l'altra risposta con 5 volte più voti positivi ha già superato meglio di me. Pensa a come _questa_ risposta non è riuscita a utilizzare alcuna logica per collegare la raccomandazione per eliminare le leet-password. Non è stata fornita alcuna ragione convincente. C'erano un sacco di informazioni dall'aspetto accurato (che non ho dubbi che siano accurate). Ma la conclusione della risposta è un non sequitur.
"Se sei caratteri casuali sono troppo deboli, non consentire le password del dizionario" leetspeak "." Hai appena ridotto l'entropia qui (se l'utente continua con la parola che ha in mente) di qualche bit in più. È controproducente ... Qualcuno un po 'più esperto potrebbe usare una password simile a "correggere la graffetta della batteria del cavallo". Ma non puoi sostenere con serietà che "C0rr3ct hOr5E b4773 | 2Y sT4P1e" è una password peggiore. È una password di gran lunga superiore.
@StevenLu - Non l'ho mai affermato. Ho detto che la complessità di una parola in formato leetspeak aumenta di 64, il che non è sufficiente per una * singola * parola leetspeak (22.6b entropia, 3.4 caratteri) per servire come password completa. c-h-b-s ha 66,4b di entropia (10,1 caratteri) mentre leet (c-h-b-s) ha un'entropia maggiore di 90,4b (13,8 caratteri).
@StevenLu ha riletto l'ultima frase del primo paragrafo. il leetcheck è solo perché sono così deboli per le password SHORT. Nelle passphrase non mi interessa leet.
Ok. Mi scuso per aver scremato un po 'troppo la scorsa notte. Immagino che tu stia già confrontando un dizionario per * parole * a passaggio breve e la tua domanda è su dove * tracciare la linea *. Mi sembra che a questo livello di sofisticazione potresti anche impegnarti in un calcolo dell'entropia basato sulla teoria dei numeri (sul client?) Usando la password / frase fornita. Non sono sicuro di quanto possa essere pratico né di come conciliare / combinare ciò con il risultato del test sul dizionario. Ma aiuterebbe a ottenere una caratterizzazione entropica dalla quale prendere una decisione go / no-go.
Non sono sicuro che sia d'aiuto, ma a volte quando scrivo domande che diventano piuttosto grandi, ripetevo la pepita di domande principale ripetendola e scrivendola in grassetto.
Ho aggiornato la tabella per utilizzare 1M pw / sec per PBKDF2 a 10k iterazioni. Non sono sicuro dei conteggi> 64 bit, potrebbero essere molto più alti.
Cort Ammon
2015-07-11 04:10:44 UTC
view on stackexchange narkive permalink

Le regole aggiuntive per le password dovrebbero sempre essere temperate con la seguente regola:

"Più è difficile ottenere una password valida e mantenerla aggiornata, più è probabile che le persone le annotino nei loro pianificatori giornalieri. "

Di conseguenza, la tua domanda è sociale. Quanta istruzione in merito a una buona gestione delle password puoi fornire rispetto a quanta applicazione puoi fornire. Devi bilanciarlo per i tuoi affari. Sembra che tu abbia informazioni importanti da proteggere ... Qualcuno sta insegnando agli operatori come lavorare con tali informazioni sensibili? O si affidano ciecamente a te e a un algoritmo hash per farlo per loro.

Solo perché è diverso, prenderei in considerazione l'idea di suggerire un'esperienza di apprendimento quando viene fornita una password errata. Penso che potrebbe essere un equilibrio tra gli approcci. Ancora più importante, potrebbe ispirarti a trovare una soluzione ancora migliore:

  • Avere una lunghezza minima della password. Questo è il requisito essenziale e dovrai applicarlo
  • Se una password è debole, fagli sapere che è debole e offri di farla usare comunque ( con del testo che indica che ti affidi per proteggere le proprie credenziali in modo appropriato)
  • Quando accetti una password debole, includi del testo che spieghi ciò che consideri debole ("Sembra che tu abbia usato l33t per creare la tua la password sembra più sicura. Indovina un po ': non lo è! Questa password è circa 45000 volte più debole di quanto pensi che sia ")
E le persone che annotano la password nei loro pianificatori giornalieri? Per avere accesso a coloro che qualcuno deve ottenere un accesso indisturbato al posto di lavoro. Se sei in grado di farlo, il gioco è finito: ci vuole meno tempo per installare un keylogger (hardware non software se vogliamo essere veloci) che trovare una password in un pianificatore giornaliero. Questa è la regola 101 della sicurezza del computer: se l'hardware è compromesso hai perso. Per la maggior parte dei luoghi di lavoro annotare le password è un'ottima opzione e probabilmente il più sicuro possibile.
@Voo richiede sicuramente la comprensione del modello di minaccia. Tuttavia, ci sono molti casi in cui il luogo in cui viene annotata la password (ad esempio l'agenda giornaliera) lascia il luogo di lavoro protetto. Se scrivi tutte le tue password, le metti in una cassaforte e proteggi la password sicura al livello della tua password più preziosa, è un approccio molto sicuro.
* digitato male * Avrebbe dovuto essere "Se scrivi tutte le tue password, le metti in una cassaforte e la proteggi a livello della tua password più preziosa, è un approccio molto sicuro."
@Cort Sicuramente. Non è l'opzione giusta in ogni situazione (e dipende davvero da come lo fai come dici). Trovo solo che venga picchiato troppo spesso e per i motivi sbagliati, poiché per molti scopi pratici è la migliore sicurezza che il tuo profano sarà in grado di ottenere.
@Voo È vero, viene colpito troppo spesso. Penso di averlo colpito perché sembra così facile aggiungere un'altra regola per la password. Ho lavorato su alcuni sistemi di password ASININE nella mia vita (continuo a calunniare il nome del pazzo informatico che ha impostato un sistema che richiedeva il cambio di password ogni 60 giorni, almeno un numero ma non conterà i numeri alla fine, maiuscole e minuscole, ma il primo carattere non conterà come maiuscola, non può essere una parola del dizionario o una parola scritta e non consentirebbe ovvi apttern da tastiera ...
... ma poi aveva un MASSIMO di 8 caratteri perché il software sottostante non avrebbe richiesto più di quello)
Nella mia azienda precedente, ho scritto tutte le mie password nella mia agenda giornaliera. Avevo circa 10 password da ricordare, tutte modificabili in base a programmi non correlati e, naturalmente, nessun archivio centrale di password. Le password che ho scritto erano leggermente crittografate. Se la mia password era "bluecolt", ad esempio, ho scritto "b45".
ztk
2015-07-10 23:24:19 UTC
view on stackexchange narkive permalink

Se non hai paura che qualcuno possa rubare e forzare le tue password, il tuo caso più probabile di scoperta di una password è un attacco di phishing. I requisiti di complessità della password non ti proteggeranno dagli attacchi di phishing.

Se utilizzi password molto complesse, gli utenti troveranno una password che funziona e la manterranno, quando scade, apporteranno la minima modifica e Continua così. Ciò significa che un determinato phisher sarà in grado di indovinare la nuova password abbastanza rapidamente.

Prendi in considerazione l'utilizzo dell'autenticazione a 2 fattori perché nessuno schema di complessità della password ti proteggerà dalle azioni dell'utente. (Ricorda, anche gli utenti sono umani e vogliono portare a termine il proprio lavoro senza spendere tutto il giorno in una password)

A proposito, ecco un paio di domande correlate:

Sono regole di complessità delle password controproducenti?

Criterio consigliato sulla complessità delle password

Per i dati più sicuri abbiamo anche 2FA. Immagino di essere preoccupato per la forzatura bruta. Anche con PBKDF2 se gli utenti hanno password scadenti, è probabile che si verifichino nelle prime ipotesi 10k-100k, che è un breve lasso di tempo.Voglio che le persone usino le passphrase, di cui non sono preoccupato. Ma se non li useranno, allora voglio impedire a John / hashcat di ottenerlo nelle regole facili.
Gli esseri umani non usano molto bene le password complesse, quindi non forzarle. Puoi incoraggiare un gestore di password come Lastpass? Metterebbe password complesse nel tuo sistema senza far impazzire gli utenti.
Bene, il mio obiettivo è forzare le password in stile Diceware. Non mi permettono di impostare la regola "Devono essere più di 16 caratteri" e finiscono qui, quindi per le cose più brevi, cerco di mantenerla sicura. Ho inserito un collegamento a keepass e makemeapassword.org nella mia interfaccia utente e si sono lamentati del collegamento a siti esterni :(
La complessità non porterà a una maggiore sicurezza, ma solo utenti frustrati che creano password ovvie che superano minimamente le regole. i numeri saranno sempre 123 ei simboli! @ #. Inoltre, invece di collegarti a un sito esterno, aggiungi una casella nell'interfaccia utente con suggerimenti sulla creazione di password complesse e fai riferimento a siti di diceware e generatore di password senza utilizzare un URL.
Suggerirei anche di bloccare le circa 1.000 password più comuni.
La parte inferiore del mio OP è essenzialmente l'interfaccia utente dalla schermata della password. Ha le regole e i suggerimenti. Qual è il modo più veloce / più indolore per educare le persone che sono abituate a Tr0ubad0r & 3 a correggere i punti metallici della batteria del cavallo?
Non esiste un modo veloce o indolore. Gli utenti non vogliono essere istruiti, la maggior parte di loro è già abbastanza istruita sulle cose che contano per loro. Vogliono accedere e mettersi al lavoro.
la tua risposta originale è vera, ma sia come individuo, come dipendente di una società di consulenza, sia come agenzia proprietaria del sito, CYA / responsabilità sono preoccupazioni reali. Come hai giustamente sottolineato, non si possono mai tappare tutti i buchi, si può semplicemente spostare il vettore più vulnerabile da qualche altra parte. Ma spostare il vettore più vulnerabile in un luogo fuori dal nostro controllo ci evita comunque di essere citati in giudizio. Come affermato in alcuni degli altri commenti, stiamo usando 2factor per i dati più sensibili, ma ciò non significa che voglio lasciare le porte spalancate per gli utenti che non sono costretti a usare TFA
Adam Katz
2015-07-10 23:40:08 UTC
view on stackexchange narkive permalink

Direi che 8 è troppo basso, anche 9 è un ordine di grandezza più sicuro (letteralmente) per qualcosa di simile. Sicuramente vorrai considerare l'autenticazione a 2 fattori dato ciò che è questo contenuto.

Inoltre, considera come le persone si avvicinano a cose obbligatorie come lettere maiuscole (quasi sempre il primo carattere) e numeri (quasi sempre l'ultimo carattere). Questi in realtà indeboliscono la tua entropia. Suggerirei anche l'uso di parole, purché tu possa chiarire che non dovrebbero essere correlate e sicuramente non una citazione di alcun tipo.

La passphrase più sicura ma memorabile che puoi avere è una raccolta di parole, una delle quali è un passcode. Un utente malintenzionato dovrebbe sapere dove mettere quel codice oppure presumere che la password molto lunga possa contenere il codice ovunque.

Un trucco che le banche usano per evitare i keylogger è avere immagini su cui fare clic. Alcuni, come ING Direct (prima che CapitalOne li acquistasse e cambiasse il metodo), utilizzavano un sistema di spilli; la tua password era un pin di quattro cifre che poteva essere inserito solo con un mouse o premendo i tasti randomizzati associati alle immagini e se mancava un cookie persistente, dovresti anche rispondere a una domanda di sicurezza. Funziona quasi come l'autenticazione a due fattori.

Entrambi sono soggetti a dirottamento di sessione. Per far fronte a ciò, puoi provare a utilizzare un'impronta digitale del browser oltre a quella di un cookie. Un'approssimazione abbastanza decente senza mettersi nei guai di qualcosa come Panopticlick sarebbe quella di utilizzare semplicemente l'indirizzo IP, la stringa dell'agente utente, un cookie SSL e un timeout di sessione di dieci minuti.

La richiesta di rotazione della password nel tempo può aiutare a combattere il phishing e i keylogger, ma danneggiano nuovamente la complessità della password. Questi aiutano solo a questo proposito se l'attaccante ha un lungo ritardo prima di tentare di eseguire l'accesso. È qui che possono essere utili ulteriori domande di sicurezza per computer sconosciuti.

Potresti anche considerare i certificati SSL del client, anche se potrebbero non essere protetti da password (e non puoi imporlo), il che significa che un computer smarrito è un grosso problema.

Consiglio più livelli . Una passphrase sicura è un livello, il secondo livello (necessario solo se l'impronta digitale del browser non corrisponde) è esterno (due fattori), una sequenza di immagini nota posizionata casualmente su cui fare clic o un certificato SSL client (che allevierebbe la necessità per il rilevamento delle impronte digitali).

Troppi utenti per utilizzare i certificati client. Il fattore 2 è richiesto per i dati più sicuri, ma questa è una percentuale relativamente piccola degli utenti totali. Se usano una password in stile diceware, tutte le regole vengono ignorate. Potrei creare il miniumum 9 senza problemi probabilmente, ma questo non risolve il nocciolo della domanda: non consentire parole del dizionario leetspeak come XKCD è troppo severo?
(la mia risposta è stata spostata in un'altra risposta)
Vincent
2015-07-13 22:57:00 UTC
view on stackexchange narkive permalink

Perché non gestisci semplicemente leetspeak-Words come quelle normali? Nei tuoi esempi dici che accetti GoodPassword4! , poiché contiene più di una parola (e simboli e numeri). Quindi la regola implicita che sembra applicare qui è:

"Se devi usare le parole di un dizionario, usane più di una (e anche alcuni simboli e numeri)".

Immagino che sia una regola che in realtà è facile da capire e da accettare dal punto di vista dell'utente. Ma sarebbe piuttosto fastidioso ottenere G00dP4ssword4! o B4DTr0ub4dor1! rifiutato in base a quella regola.

Quindi, no, non dovresti non consentire "leetspeak" parole del dizionario di per sé, ma trattarle come normali parole del dizionario.

Forse non ero chiaro nella formulazione della mia domanda. Il mio intento era essenzialmente come lo intendi tu. Non è stato davvero disabilitato il leetspeak, ma piuttosto nella regola che non consente le singole parole del dizionario, se dovessi rilevare leetspeak.Se stai usando una passphrase di più parole e ti capita di leggere alcune delle parole, va bene.
Loren Pechtel
2015-07-12 10:31:05 UTC
view on stackexchange narkive permalink

Che ne dici di una via di mezzo?

Le regole che stai dando fondamentalmente dicono o lunghe o dure senza una via di mezzo.

Invece, che ne dici di un sistema graduato: assegna un determinato complessità per personaggio e un certo moltiplicatore per le varie caratteristiche difficili. Se il numero è abbastanza alto, accetti la password. Quindi, se accetti praticamente qualsiasi cosa a 16 caratteri, accetteresti 15 con una caratteristica difficile.

Ho proposto qualcosa di simile anche al cliente. La politica di Stanford è molto simile. https://itservices.stanford.edu/service/accounts/passwords/quickguideMa questo non risponde alla domanda sulle password brevi "complesse", se le parole non sono ancora consentite. L'altro problema con questa soluzione, è quella parte del problema è la complessità / comunicazione. mentre questo consente una complessità graduale, spiegando che per l'utente è ancora più complessa (cosa di cui il mio cliente si è lamentato anche per le mie regole di complessità di "2 livello". :)
Sto dicendo che una "parola" leet-speak è fondamentalmente un dizionario + una certa complessità e dovrebbe essere valutata di conseguenza. Quella politica di Stanford è una versione semplificata di ciò che sto dicendo.
basic6
2015-07-13 19:29:00 UTC
view on stackexchange narkive permalink

Chiedi a tua nonna (oa qualsiasi nonna a pochi passi) di definire una password. Dovrà seguire le rigide regole della password (che hai stampato per lei), ma non le è permesso parlare con te. E non dovrebbe richiedere "troppo tempo".

Inoltre, dille che avrà bisogno di quella password nei giorni / settimane seguenti (per utilizzare il tuo servizio web), quindi dovrà assicurarsi di ricordalo (probabilmente scrivendolo).

(Ricorda che, quando vedi tua nonna prendere un pezzo di carta, potresti dirle di non scriverlo e di attaccarlo sul frigorifero - tu non sarà in grado di dirlo ai tuoi veri utenti, a meno che tu non scriva un elenco di regole sul modulo di registrazione, come "non scrivere la tua password sul frigorifero" e "no, neanche sul tuo monitor".)

Ora, come è andata? Se la risposta è "non così eccezionale" (si è arresa dopo 5 minuti e ti ha chiesto se hai già mangiato perché conta anche come "non così eccezionale"), potrebbe essere una forte indicazione che le regole della tua password sono troppo rigide .

Sono generalmente d'accordo con la risposta che ha ottenuto la maggior parte dei voti positivi e con molti commenti:

Una regola di base, che è la lunghezza minima, come 7 o 12 o 15 o qualsiasi altra cosa. Sì, questo permetterà alle persone di usare "aaaaaaa" come password, ma almeno non sarà scritta in chiaro dove le altre persone la vedranno perché possono ricordarla. Tutte queste regole probabilmente non fanno altro che danneggiare (beh, soprattutto). Indipendentemente dal numero di milioni di parole del dizionario che escludi, qualcuno userà una parola a cui non hai pensato (beh, non "tu" tecnicamente, probabilmente avrai solo quell'elenco da qualche parte). E per qualche motivo, un utente malintenzionato avrà successo perché la password corretta "Mugwump" o "Smellfungus" è la prima che ha provato.

Per quanto riguarda le regole "devi usare 3 maiuscole, minuscole, numeri e caratteri speciali", questo farà sì che molte persone scrivano ABCabc012! @ # su un pezzo di carta perché possono lo ricordo. (Se non c'è un frigorifero nella zona, va bene anche un comodo muro, leggi questo articolo.)

E ad essere onesti, le persone che capiscono quanto sia importante questo sono persone inoltre, non saranno in grado di ricordare nemmeno quelle password (artificiali) e saranno infastiditi. La maggior parte degli utenti regolari di computer (il tipo di utenti "stampa Internet") sarà comunque infastidita (anche il solo fatto che sia necessaria una password è "fastidioso" per molti, dopotutto, i computer dovrebbero essere in grado di identificare magicamente l'utente nel 2015 ).

Senza queste regole complicate, avrai almeno una possibilità che molte persone siano effettivamente in grado di ricordare la loro password.

Tuttavia, come fatto da alcuni servizi, aumentando la sicurezza se viene rilevato qualcosa di sospetto potrebbe essere un'idea. Stai già bloccando completamente l'autenticazione dopo alcuni tentativi falliti, il che è positivo. Potresti pensare a passaggi intermedi, ad esempio dopo uno o due tentativi falliti, potresti chiedere un captcha. Inoltre, un client specifico che continua a provare ad accedere (anche se l'accesso è già bloccato) potrebbe essere bloccato automaticamente per un giorno (a un livello inferiore, forse anche da un firewall).

berto
2015-07-14 21:08:50 UTC
view on stackexchange narkive permalink

Non mi piacciono le regole per le password che hanno molte regole, "questo, ma non quello, una di queste, ma non troppe di quelle".

Sono troppo severo?

Penso di sì, ecco perché. Uso 1Password. Genera password casuali per me. Hanno questo aspetto:

  luaD / fcr61nt7A% NxBCRNeTtVL7uuAqmL5_j&cm1qwtlOjJsQor) 9nM1% zl2  

Alcuni siti web hanno rifiutato tali password. Perché? Regole arbitrarie.

Prima di questo non avevo considerato un sistema che è il contrario: invece di chiedermi di creare una password, il sistema me ne assegna una che soddisfi le sue regole. La password finirà invariabilmente su carta o incollata in qualche file dalla persona, ma è unica e non in un dizionario.

IAM all'interno di Amazon Web Services fa praticamente questo, quindi questa idea ha anche qualche precedente arte là fuori.

Vedi la mia risposta in chat.
Questo sembra non rispondere alla domanda.
@NeilSmithline Rispondo alla domanda dell'OP sul fatto che la restrizione sia troppo severa. Tuttavia, offro molti suggerimenti / opinioni aggiuntivi.
Si. Immagino che risponda all'inizio.
Atsby
2015-07-15 11:55:34 UTC
view on stackexchange narkive permalink

Ecco una soluzione a forza bruta al problema del cracking delle password con forza bruta: dedica alcuni PC a tentare effettivamente di violare le password utilizzando gli stessi (pochi) strumenti di cracking utilizzati dagli aggressori. Quando una password viene violata con successo, invia un'e-mail informando cortesemente l'utente che la sua password è stata rilevata come troppo debole e chiedendo all'utente di cambiare la password.

Forse potresti provare a "violare" la password non crittografata;un paio di secondi dovrebbero essere equivalenti a una buona quantità di tempo nel tentativo di decifrare un hash della password sano.Non sono sicuro che sia più facile pre-generare (dieci / centinaia? Di) milioni di password e fare una ricerca o provare a ricrearle dinamicamente.
user15249
2015-07-14 19:04:37 UTC
view on stackexchange narkive permalink

Ancora una volta, non sono affatto un esperto di sicurezza delle informazioni, ma forse potresti semplicemente incoraggiare i tuoi utenti a utilizzare LastPass o Keeper per generare e archiviare password di grandi dimensioni (veramente) casuali per loro e archiviarle nel sicuro volta? E per usare anche l'autenticazione a 2 fattori.

Mi rendo conto che LastPass è stato recentemente violato, ma gli utenti che hanno scelto password LastPass lunghe e sicure dovrebbero comunque essere al sicuro dall'apertura del loro vault. Gli utenti che hanno scelto una password debole come password principale non possono comunque essere aiutati.

Ovviamente, non è il piano migliore, ma dovrebbe almeno mettere i tuoi utenti sulla strada giusta. C'è molta incoerenza nella sicurezza tra i siti web. Capisco che (ad esempio, la mia banca consente una lunghezza massima della password di 16 caratteri, ma la mia password reddit è di 100 caratteri). Ma 16 caratteri casuali sono ancora meglio che dover scrivere la password perché non puoi ricordarla.

Lo incoraggiamo, ma ovviamente non è qualcosa che puoi imporre. Ma questo li risolve solo ricordando la password, non affronta quale complessità / regole ha quella password.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...