C'è qualche punto nell'utilizzo di password "forti"?

39

Diciamo che sto impostando un nuovo account su un sito web. Dovrei preoccuparmi di usare una password complessa? Il mio ragionamento è questo:

Il livello di sicurezza della password è una misura approssimativa di quanto tempo occorrerebbe per forzare la mia password da un hash. Forzare brutalmente anche una password "debole" è difficile tramite l'endpoint di autenticazione per il sito Web: è troppo lento e le limitazioni sul numero di tentativi di password errati sono comuni. Le password "brute-forzanti" anche "forti" stanno diventando banale quando hai l'hash della password, e questa situazione peggiorerà. Nella situazione in cui gli hash delle password sono trapelati da un sito Web, le password vengono comunque ripristinate.

Mi sembra che non ci sia alcuna differenza tra l'utilizzo della password fredleyyyy o 7p27mXSo4%TIMZonmAJIVaFvr5wW0%mV4KK1p6Gh alla fine del giorno.

    
posta fredley 10.09.2013 - 11:30
fonte

10 risposte

78

Brute-forcing even 'strong' passwords is becoming trivial when you have the password hash, and this situation will only get worse.

Questo è non true. Una password altamente casuale è quasi impossibile da bruteforce dato che l'applicazione Web in questione utilizza un algoritmo di hash strong come bcrypt o pbkdf2 . D'altra parte, le password deboli sono ridicolmente facili da bruteforce anche se viene utilizzato un algoritmo di hashing strong.

Quindi sì, c'è il merito di usare una password complessa.

    
risposta data 10.09.2013 - 11:34
fonte
14

Nessuna password è infrangibile, ma non devono essere infrangibili. Devono solo sopravvivere alla pazienza di un attaccante. Anche quando qualcuno ruba gli hash, in genere decidono dopo i primi pochi milioni che hanno abbastanza password, e se il tuo non è stato incrinato da allora, è ancora sicuro.

Questo è il problema delle password complesse. L'unica misura di forza di cui hai veramente bisogno è che deve essere più strong delle password che usano tutti gli altri. Ma dal momento che non hai idea di cosa possa significare (perché non conosci le password degli altri utenti), il modo migliore per farlo è rendere il tuo più strong possibile.

    
risposta data 10.09.2013 - 13:27
fonte
4

Quando una password complessa è anche una password lunga, hai il vantaggio che è difficile portarti dietro il surf.

Alcuni siti e servizi hanno API che consumano credenziali dell'account utente - a meno che non siano anche limitate e protette dallo spoofing IP, diventano un altro canale di attacco con una velocità di forzatura bruta più veloce.

Le probabilità sono che se si utilizza una password corta, non proviene da un generatore di password, il che significa che la password non è molto casuale. Gli umani sono spaventosi nel scegliere numeri casuali.

Se i normali gestori di password rallentano un po 'per navigare con il mouse e la tastiera; ci sono impronta digitale e prossimità dispositivi di accesso automatico sul mercato.

Se il sito web è spam e di scarso valore per te, potresti optare per una password debole e memorabile. Ma può essere molto difficile anticipare il valore futuro di qualsiasi informazione o servizio che hai unito al sito web. Alcuni siti Web potrebbero contenere Termini di servizio che ritengono gli utenti responsabili dei danni causati da violazioni dovute a una password debole (presumendo che lo sapessero).

    
risposta data 10.09.2013 - 12:02
fonte
3

Si presume che l'unico modo in cui qualcuno possa compromettere la propria password è ottenere l'hash. Anche le password complesse sono preziose in quanto sono molto più difficili da rompere senza l'hash. PizzaTime è molto più facile da indovinare dato il mio amore da ninja-tartaruga dei dischi bready di quanto non lo sia rpqwe; fdlaskje [] @ # 4094fd93.

    
risposta data 10.09.2013 - 11:43
fonte
2

Ho trascorso molto tempo a lavorare con framework di autenticazione, standard e implementazioni di rilevanza nazionale, quindi non è una risposta semplice, mi spiace.

Le password da sole non acquistano molto, ma nessuno dei due controlla da solo. Una password che richiede più calcoli per indovinare rispetto a quella che richiede meno è ovviamente meglio contro un dizionario o un attacco di forza bruta. Il sale e il numero di round utilizzati in PKDF2 consentono all'operatore di sistema di regolare il costo della forza bruta computazionale, ma gli attacchi con password basati su dizionario saranno sempre presenti in un arsenale di aggressori dove non ci sono controlli minimi per prevenire attacchi brute force (ad esempio ottenere una copia dell'hash della password salata su cui montare un dizionario / attacco brute-force) sia offline che online.

È tipico bloccare un account dopo aver raggiunto una velocità di tentativi non validi. Questo è un esempio di un controllo che rende accettabili le password deboli / brevi / indovinate, come il modo in cui vengono utilizzati i PIN delle carte di credito a 4-6 cifre; l'approccio di autenticazione a due fattori (qualcosa che hai e qualcosa che conosci) e il dispositivo di inserimento chiave (PIN pad), i controlli di blocco account / carta, la strong distribuzione delle chiavi e i processi di reset insieme rendono il sistema di autenticazione generale accettabilmente sicuro per MOLTO BREVE password. E quando non è accettabile, vengono introdotti controlli aggiuntivi per controllare i rischi, ad es. Dispositivi per impedire la scrematura della carta, l'educazione dell'utente per coprire la tastiera quando si inserisce il PIN, un migliore controllo e monitoraggio, ecc. Ci sono anche fattori umani ben noti da considerare, ad es. password lunghe / criptiche / difficili da ricordare e persone che si dimenticano o scrivono contro password più brevi e, si spera, più facili da ricordare che non vengono scritte o registrate da qualche parte.

Quindi in risposta alla tua domanda, 'dipende'. Quali altri controlli sono presenti per mitigare i rischi di una password breve / indovinabile e rendere ancora il sistema accettabilmente sicuro per le tue informazioni? Se non conosci la risposta o non ti fidi dell'operatore del servizio, dovresti solo fidarti minimamente (o non farlo affatto) delle tue informazioni INDIPENDENTEMENTE della lunghezza della password.

Quali informazioni stai ospitando o condividendo con il fornitore di servizi?

Quali sono le conseguenze della sua modifica non autorizzata, distruzione o divulgazione?

Può dipendere dalla tua creatività o conoscenza perché potresti essere sorpreso di ciò che può essere ottenuto con un po 'di informazioni se c'è un guadagno in termini significativi per l'agente delle minacce.

    
risposta data 11.09.2013 - 04:48
fonte
1

La maggior parte degli hacker utilizza un approccio a forza bruta quando trova le password: provando tutte le possibili combinazioni. Questo metodo, anche se sembra stupido, sta diventando più efficace man mano che i computer diventano più veloci.

In genere, è necessario utilizzare una password complessa per ritardare tale metodo. E oh ragazzo può essere ritardato! Questo sito qui ti dà un'idea di quanto sia strong la tua password contro questo tipo di attacchi.

BTW, una password complessa è efficace solo contro questo metodo. Ce ne sono altri che non dipendono dalla tua password ma dalle tue impostazioni sulla privacy come la cache, sessioni registrate tra molte altre cose. Dovresti controllare regolarmente il tuo computer per individuare spyware e malware per evitarli.

    
risposta data 10.09.2013 - 14:41
fonte
1

Hai ragione, e questo è un grosso fastidio. Infatti, tutto questo business delle password di hashing e la scelta di quelle che sono difficili da decifrare tramite hashing è una finzione completamente inutile e costituisce ciò che Schneier chiama "teatro della sicurezza".

L'hashing della password è irrilevante, tranne in situazioni specifiche: protocolli di autenticazione che comunicano gli hash in chiaro (che non dovrebbe essere eseguito) e database delle password che memorizzano gli hash in un modo leggibile in tutto il mondo, come il classico /etc/passwd (che non è più fatto).

In passato, se si era su un sistema pubblico Unix con migliaia di utenti, come una macchina o una fattoria di macchine, fornendo account e-mail per studenti universitari, le password scadenti venivano letteralmente spezzate a destra ea sinistra. Il file di password di un tale sistema era un grande magnete per il cracking, con grandi profitti. Certamente, un tale file di password è completamente stupido. Ogni discreta distribuzione Linux al giorno d'oggi mette gli hash delle password in /etc/shadow .

Quindi, il punto è che se un utente malintenzionato ha accesso agli hash, il sistema in questione è mal progettato (protocolli di autenticazione di rete quasi-plaintext, database di password leggibili pubblicamente) o è stato compromesso al punto che la conoscenza della tua password in chiaro non è più rilevante, dal momento che l'utente malintenzionato aveva bisogno dei privilegi di amministratore per ottenere l'hash.

Ancora, gli hash forniscono un piccolo livello di sicurezza aggiuntiva. E quel livello protegge coloro che riutilizzano le password tra siti . Se un sito è "pwnato", in modo che gli hacker posseggano la tua password hash, sei nei guai se usi la stessa password altrove e quella password è facile da decifrare.

Ironicamente, le persone hanno maggiori probabilità di riutilizzare password molto difficili su più siti, perché sono difficili da ricordare. In secondo luogo, è probabile che riutilizzino quasi la stessa password difficile introducendo piccole variazioni su di esso. Ad esempio, se la password originale è considerata abbastanza strong da essere accettata da un sistema, la useranno solo su un altro sistema, ma cambieranno una 1 in una 2 , o 3 e così via. Se gli hacker violano la password con 1 , possono facilmente indovinare gli altri.

È molto più facile generare e memorizzare password relativamente semplici, in modo tale che non siano completamente correlate l'una con l'altra.

Ecco un'altra cosa che la gente trascura: gli amministratori del sito non sono i tuoi amici fidati. Devi sospettare non solo gli aggressori esterni, ma anche gli addetti ai lavori. Su qualsiasi sito in cui si dispone di un account protetto da password, potrebbe esserci un amministratore malvagio che raccoglie password in testo semplice. Non sai nemmeno se le password sono o meno sottoposte a hash. Supponiamo che non siano hash e presumiamo che tra gli amministratori di ogni sito vi sia una persona malintenzionata che raccoglie le password. Anche se si sa che il software del sito utilizza un database delle password hash, non si può presumere che il codice non abbia stato modificato. L'interfaccia utente JavaScript (o qualsiasi altra cosa) gestisce le password in chiaro.

Oh, e se non vedi "HTTPS" nella barra del browser, tutte le scommesse sono disattivate! La tua password a 32 caratteri generata a caso viene raccolta da qualcuno, in chiaro.

Una password deve essere solo abbastanza difficile da non poter essere indovinata in numerosi tentativi naïf (tentativo di immissione tramite il normale meccanismo di autenticazione). Qualsiasi sito decentemente implementato implementa l'importante misura di sicurezza del blocco di un account che è stato indovinato troppe volte, in modo che l'utente legittimo debba adottare ulteriori passaggi per sbloccarlo.

Se la tua password non può essere indovinata in una mezza dozzina di tentativi e sei in grado di generare e ricordare password completamente diverse di questo tipo per ogni sito, sei sostanzialmente d'accordo.

L'interfaccia utente per la creazione di password che obbliga gli utenti a inventare password complesse è fastidiosa, controproducente e non fondata su principi di sicurezza razionalmente concepiti o sulla corretta identificazione di possibili minacce.

    
risposta data 11.09.2013 - 01:15
fonte
1

Questo non è vero. Le password non sono trapelate solo dal loro hash, e gli hash sono molto diversi in termini di forza.

Inoltre, stai dimenticando la salatura, che aumenta il tempo esponenziale di cracking con la forza bruta.

Ad esempio, la migliore forza bruta non può decifrare una password WPA2 di 50 caratteri in un tempo ragionevole, mentre una chiave alfanumerica di 8 caratteri è forzata anche con un laptop.

    
risposta data 10.09.2013 - 13:05
fonte
0

Personalmente, penso che dipenda da cosa c'è dietro la password. Sì, le password sicure sono molto più sicure, dato che Terry ha fatto un ottimo lavoro di articolazione. Ma per me, più strong faccio la password, più diventa frustrante per me ricordare quale sia la password, digitare correttamente i simboli e l'involucro, ecc.

C'è una differenza significativa nel mondo reale tra un piccolo lucchetto in stile valigia e un catenaccio che hai messo sulla tua porta d'ingresso. Ciascuno ha un uso appropriato e, ovviamente, meno il blocco è complesso, maggiore è il rischio che si accetta di accettare.

I miei conti bancari ed e-mail? Quelli prendono il catenaccio. Le cose a cui non mi importa più tanto ... quelle prendono il lucchetto più leggero.

    
risposta data 10.09.2013 - 16:59
fonte
0

Sì, ovviamente dovresti applicare password complesse, per tutti i buoni motivi nelle altre risposte, ma è importante ricordare che le password e i loro hash esistono in un contesto e non in isolamento. Il tuo commento sugli hash sta diventando sempre più facile da invertire è una buona indicazione di questo - può essere vero, ma non è universalmente vero che l'annullamento degli hash è banale se usi i controlli giusti ma mette in evidenza una considerazione davvero importante ... dovrebbe anche si accerti che l'accesso agli hash sia un processo ben protetto.

Tuttavia, nella maggior parte dei casi le password sono protette contro la divulgazione da parte di altre password.

Le password devono essere protette attraverso una catena di flusso di dati in cui ogni collegamento nel flusso è protetto da un'altra password (per esempio) da un modulo di input del browser Web, attraverso un collegamento crittografato (si spera), in un demone del server, in un'applicazione di back-end, in una libreria o framework per il rehashing e in / out di un database.

Spesso, tutti questi collegamenti nella catena sono protetti in qualche modo da password (ad esempio, l'applicazione back-end è protetta da codice di intercettazione malevolo aggiunto dalla password dell'account di modifica del deployer o sviluppatore dell'applicazione) e gli hash del database sono protetti dalla password dell'account utente del database e dall'account di accesso al server database, e così via.

Sebbene le password complesse possano essere considerate "forti" come la password / il controllo più debole in questa catena, un'analisi del rischio dovrebbe confermare che le funzioni di gestione e autenticazione delle password front-end offerte all'utente sono le più adatte ad essere attaccate e dovrebbe quindi meritare più attenzione - e certamente una soglia di forza elevata che puoi applicare in modo affidabile.

    
risposta data 13.09.2013 - 08:51
fonte

Leggi altre domande sui tag