Abbiamo davvero bisogno di una password lunga e complicata per i siti web?

66

La maggior parte dei siti Web che gestiscono informazioni importanti (Gmail, ad esempio) ha una sorta di protezione da forza bruta. A volte se provi più di X volte bloccherà l'account o almeno ti darò un captcha da risolvere.

Attualmente tutti gli esperti di sicurezza continuano a dire la stessa cosa: creare caratteri lunghi e misti, password ad alta entropia. Questo ha molto senso se pensi a una chiave RSA o qualcosa che potrebbe essere decifrato offline, ma è davvero importante quando parliamo di password di account online?

Ad esempio, creiamo una password per Gmail utilizzando solo 6 lettere dell'alfabeto inglese. Questo è approssimativamente 26 ^ 6 = 309 milioni di combinazioni. Se consideriamo che possiamo testare 1 password al secondo (che ritengo sia più veloce di quanto effettivamente possiamo, se prendi in considerazione i captcha di Gmail), avremo bisogno di fino a 10 anni di interruzione e in media di 5 anni.

Punti da considerare:

  • Se si utilizza la stessa password su un sito Web diverso, un altro sito Web potrebbe essere compromesso e la password verrà esposta. Suppongo che la password sia unica. Utilizzato solo con Gmail.
  • Se qualcuno può afferrare il database, potrebbe forzare la forzatura dell'hash della tua password offline. Suppongo che il sito web utilizzi almeno un hash salato (molto improbabile che l'hacker proverà a infrangere tutte le password) e / o è molto improbabile che il database venga violato (è una buona ipotesi con Gmail)
  • Suppongo anche che la tua password non sia una parola del dizionario o qualcosa di facile da indovinare. Questo dovrebbe escludere la forza bruta di più account (ad esempio testare la stessa password comune su più account).

È lecito ritenere che non abbiamo bisogno di una password veramente lunga per i siti web non appena seguiamo le altre misure di sicurezza? Se suggeriamo che le persone usano una password lunga solo perché normalmente non seguono l'altro consiglio di sicurezza (usa la stessa password per tutti gli account, ecc.). Non stiamo davvero cercando di risolvere i sintomi e non la causa?

PS: alcune altre domande riguardano quasi la stessa cosa, ma le risposte considerano sempre che la persona sta usando la stessa password su tutti i siti web o che il database del sito web è facilmente rubato.

    
posta drpexe 05.11.2014 - 13:16
fonte

12 risposte

36

Ciò che segue non rende giustizia a questo, ma in sintesi ...

In un mondo ideale no, non dovrebbero essere richieste password complesse per le risorse online.

Ma, in quel mondo ideale, dipendiamo dagli amministratori del sistema per rafforzare i sistemi per impedire l'accesso non autorizzato al 'file password', il seguente minimizzerà il rischio:

  • Configura in modo sicuro l'infrastruttura;
  • Applica tempestivamente le patch;
  • Avere qualche forma di monitoraggio per identificare un compromesso in caso di uno scenario di exploit zero-day (in modo che gli utenti possano essere "informati" di cambiare le loro password);
  • Avere e seguire metodologie di programmazione / sviluppo 'sicure';
  • Impiega solo persone affidabili.

La combinazione completa dei quali è improbabile per molti siti.

Le debolezze nella lista sopra possono portare a exploit che consentono di bypassare completamente le password, ma indipendentemente dalla natura di un exploit di successo è una scommessa sicura che, dopo aver ottenuto l'accesso non autorizzato a un sistema gli utenti malintenzionati tenteranno di estrarre il file della password e successivamente forzarlo in modo da favorire la prosecuzione degli altri sistemi (sfruttando il riciclaggio delle password).

Quindi, anche se non vi è alcuna garanzia che una password (er) strong possa impedire tutto ciò che è brutto, può aiutare a mitigare le debolezze nelle soluzioni dei provider (sia note che non).

A scanso di equivoci dipendiamo anche dal fornitore di servizi per fare quanto segue:

  • Applica l'hashing e il salting alle password;
  • Assicurati che la password non venga mai scambiata in chiaro.

Credo che per la maggior parte degli utenti finali la decisione sulla complessità e la lunghezza della password dipenda dalle informazioni a cui il sito (e quindi la password) dà accesso.

La mia raccomandazione è: se è importante usare una password complessa in modo che, in caso di compromissione del sistema, le password di altre persone vengano scoperte per prime. Ma se qualcosa di banale e di convenienza è più importante, prendi una possibilità su una password più debole, ma accetta che un hack possa portare alla perdita di accesso all'account e / o al rilascio di informazioni dall'account.

Per molti proprietari di siti sospetto che la decisione di richiedere password complesse sia una combinazione di FUD e il desiderio di ridurre al minimo l'impatto di un errore critico dei controlli aumentando la quantità di tempo per le password a forza bruta, dando quindi più tempo per rettificare e ridurre al minimo l'effettivo compromesso dell'account utente (anche se se un utente malintenzionato ha accesso agli hash delle password probabilmente hanno accesso sufficiente al sistema per compromettere il sistema in altri modi comunque).

    
risposta data 05.11.2014 - 14:30
fonte
33

La lunga raccomandazione per le password è di proteggere le password dal crack se qualcuno ha accesso all'hash di quella password.

Strumenti come hashcat possono facilmente (usando gpu) test 93800M c / s md5 hash

Come utente di solito non sai come il sito memorizza la tua password, quindi è meglio usare una lunga password per mitigare quegli attacchi.

    
risposta data 05.11.2014 - 13:36
fonte
31

Scegliere buone password è difficile. Gli esseri umani e la nostra passione per i modelli semplicemente non sono molto bravi in questo. Moltiplichiamo quello delle dozzine di account che accumuliamo nel tempo, e questa è la radice del problema.

Quindi sì, l'eliminazione di password errate e il riutilizzo della password può risolvere il problema della creazione di obiettivi morbidi, ma non risolve il problema di fondo di mantenere tutti questi account e password, che è ciò che porta a password errate e riutilizzo della password innanzitutto. Quindi, è bene dire "basta seguire le politiche di sicurezza delle password valide" e sarai al sicuro, ma senza affrontare il problema della gestione degli account non hai risolto nulla.

Quindi, qual è la risposta? Utilizzare un gestore di password. Questo risolve il problema. Quando si scarica il problema di creazione e gestione della password in uno strumento progettato specificamente per tale scopo, si ottengono password complesse per impostazione predefinita e non è necessario riutilizzare nuovamente una password. Non è una soluzione perfetta (niente è) ma è la migliore che abbiamo al momento e fa domande sulla complessità della password e sulla lunghezza, perché quando non sei tu a dover creare e ricordare la password, non ti interessa più quanto è complesso e lungo, solo che è generato con sufficiente entropia per renderlo strong e un gestore di password ti dà questo.

    
risposta data 05.11.2014 - 15:37
fonte
11

Le uniche ipotesi sane per gli sviluppatori web che utilizzano l'autenticazione della password locale sono:

  1. che i loro utenti utilizzeranno la stessa password per tutto;

  2. che il sito è già stato compromesso, anche se non hanno ancora finito di scriverlo; e

  3. ci sarà una responsabilità legale molto onerosa legata alle conseguenze di tale compromesso.

(Si prega di notare che non sto insinuando, né sto suggerendo, che tutti - o anche qualsiasi - gli sviluppatori web sono sani di mente o sanno abbastanza su quello che stanno facendo per rendersi conto di quello che stanno facendo sarebbe insano se sapessero cosa stavano facendo. Gli hash semplici, sia semplici che salati, sono computazionalmente abbastanza vicini al testo semplice da non rendere mai più chiaro in questi giorni, eppure si trova ancora testo semplice, MD5 non salato, ecc. sparsi su tutto il web in cosiddetti "tutorial" che le persone stanno copiando e incollando in produzione su server ovunque.)

Queste supposizioni significano che, anche se gestisco un sito con un'applicazione estremamente locale dedicata a permettere alle persone di elencare i consigli per le crocchette di criceto senza glutine organiche, allevate all'aperto e allevate localmente, devo trattare la tua password come se erano i tuoi account PayPal, eBay ed e-mail tutti combinati (perché ci sono buone probabilità che sia effettivamente). E questo significa che, al fine di proteggere la mia parte piuttosto preziosa, devo prendere almeno alcuni passaggi minimi per proteggere il tuo prezioso dietro, che ti piaccia o no. Idealmente, ciò significa rendere la password qualcosa che non può essere banalmente bruta-forzata (usando un sale crittografico casuale e una costosa funzione di derivazione della chiave) e ponendo un limite inferiore assoluto al conteggio dei caratteri (idealmente senza limite superiore, entro la ragione ), pur continuando a permetterti di usare qualcosa che è facile da ricordare (niente di tutto questo "deve usare almeno un'assurdità di un personaggio accentato, un'emoji e uno hiragana"). In altre parole, farti usare una password davvero breve espone i miei glutei personali a pericoli ingiustificati, quindi non aspettarti che me lo permetta. E questo se il mio sito non custodisce alcun segreto tranne la tua password. Se ci sono dei dati personali associati a te di cui sono responsabile, aspettati la mia paranoia sul tuo nome per aumentare drammaticamente.

    
risposta data 06.11.2014 - 13:46
fonte
5

Ci sono problemi con un paio di ipotesi.

309 milioni sono un numero ridicolo se c'è un attacco offline. E su un attacco offline, anche con un buon sale, l'attaccante andrà prima dopo aver appeso il frutto basso. Vale a dire. trova le password che sono nel dizionario, quindi le password brevi, quindi altre password semplici. Tuttavia, l'ammontare di un problema è discutibile: la possibilità è buona che un utente malintenzionato con accesso al database delle password abbia accesso a qualsiasi altra attività. - Questo presuppone che non sia in corso alcun riutilizzo della password.

309 milioni sono, come si nota, uno spazio di ricerca troppo grande per la forza bruta in un attacco online. Tuttavia le tue ipotesi che portano a questo numero sono discutibili. Noi come specie siamo notoriamente poveri in due compiti importanti; presentarsi con sequenze veramente casuali e ricordare sequenze casuali. Ciò significa che l'entropia è significativamente inferiore se hai selezionato una password di 6 caratteri. Questo può essere evitato se si utilizza un gestore di password o un'utilità simile, ma in tal caso si potrebbe anche utilizzare una password più lunga per proteggersi dagli attacchi offline.

In conclusione; ottenere una buona entropia nella tua password dipende dal carattere di entropia e dalla lunghezza della tua password. - Se hai una buona entropia per personaggio, puoi accettare una password più breve. Tuttavia questo è un approccio poco adatto per la maggior parte degli umani, dal momento che ricordiamo le stringhe più lunghe con un'entropia inferiore per personaggio migliore delle stringhe più corte con un'alta entropia per carattere. Siamo anche in grado di generare stringhe casuali e il consiglio che citi è per le persone che non utilizzano i gestori di password per generare password.

    
risposta data 06.11.2014 - 16:04
fonte
5

L'uso di una password complessa per un singolo sito sicuro è come utilizzare un lucchetto speciale sulla porta dell'appartamento, il che rende più lunga l'apertura della porta e ti protegge meglio dall'1% di tutti i ladri

La maggior parte delle risposte si occupa di tutti i tipi di scenari di attacco, che potrebbero compromettere la tua password, ma decidere se una password più piccola (6 caratteri) è sufficiente se la usi solo su 1 singolo sito con ragionevole sicurezza sufficiente che dobbiamo solo confrontare un singolo numero:

Quanti attacchi funzionano significativamente meglio su una password debole che su una password complessa?

Se la protezione brute-force online è sufficientemente strong (una premessa nella domanda) l'unico scenario di attacco rilevante è la forzatura bruta offline. In tutti gli altri scenari di attacco (lettura di password in chiaro, furto di sessione, ingegneria sociale, phishing, falsificazione dell'utente) la complessità della password non ha alcun ruolo (se non è una password standard)

Quindi, quanti% di attacchi sul tuo account o su gmail useranno probabilmente una forzatura offline della tua password bruta? Probabilmente accanto a nessuno. Forza brutale funziona solo contro una versione hash o crittografata della tua password. In qualsiasi altro luogo la tua password è in chiaro (quindi la complessità è irrilevante) o non pertinente (ad es. ID di sessione, accesso diretto da un insider al server di archiviazione della posta)

Le uniche istanze in cui la password è crittografata o con hash sono 1. hash salato nel database e 2. trasferimento della password tramite HTTPS

  1. Hash salato nel database Se l'hacker ha ottenuto l'accesso al database in cui sono archiviate tutte le password utente (probabilmente uno dei migliori punti protetti nell'infrastruttura) ma non è possibile accedere ad altri servizi (come un ID sessione attivo o l'accesso diretto all'account) Quindi un attacco offline contro il tuo hash salato con un attacco a forza bruta rapidamente maneggierà la tua password.

  2. Trasferimento HTTP Molto improbabile perché l'autore dell'attacco dovrebbe forzare il flusso HTTPS per isolare la password, quindi la lunghezza della password molto probabilmente non è molto importante.

Quindi l'unico scenario in cui una lunga password ti protegge effettivamente è se qualcuno accede alla (probabilmente) più sicura archiviazione dei dati dell'infrastruttura senza che nessuno se ne accorga - e senza un accesso sufficiente per ottenere un accesso più facile al tuo account. Direi che questo scenario è davvero improbabile, perché nel vasto numero di vulnerabilità e attacchi contro il tuo account, questo è solo un tipo di attacco improbabile.

    
risposta data 07.11.2014 - 14:39
fonte
4

La mia risposta è semplicemente sì. Non puoi supporre che i siti utilizzino metodi di hashing salati. Ad esempio, MD5 viene ancora utilizzato in natura e la gente pensa che sia perfettamente accettabile.

Ma con un meccanismo di hashing strongmente salato, non c'è proprio modo che qualcuno possa accedere alla password vera e propria, anche se si tratta di un low char pass. Soprattutto se il tuo server è correttamente protetto e la tua API prende le dovute precauzioni per gli attacchi di forza bruta.

    
risposta data 06.11.2014 - 15:33
fonte
4

Sebbene sia più sicuro creare password complicate, consiglio sempre di renderle semplici allo stesso tempo e di avere unicità per ogni sito web. L'unico modo in cui questa sarebbe una vulnerabilità è se ti innamori di una truffa di phishing, motivo per cui è importante avere più modi per recuperare il tuo indirizzo email, perché la tua email è il modo per recuperare altri account.

Ecco le regole che uso personalmente:

  • Almeno 8 o 10 caratteri, preferibilmente 12 o più
  • Utilizza qualcosa che significa qualcosa per te
  • Le abbreviazioni o l'uso di un numero anziché di una lettera possono essere semplici ma efficaci
  • Se lo desideri, puoi utilizzare un prefisso o suffisso per mantenere le password univoche

Quindi ad esempio: ThisIsMyPassword14si

Usi: lettere maiuscole, numeri e il suffisso di si per lo scambio di stack, e ha un anno di qualcosa che significa qualcosa di personale. Questo tipo di password di solito viene sempre visualizzato come password complessa.

Esistono anche altri servizi che ti consentono di accedere utilizzando un altro servizio basato su token. Penso che questa sia una grande idea, perché puoi disconnetterti quando vuoi rimuovere qualsiasi accesso e non hai bisogno di una password per ogni singolo servizio (supponendo che gli sviluppatori abbiano progettato correttamente il processo). TUTTAVIA, devi essere più attento con la password per quel servizio e avere più opzioni di recupero per questo nel caso in cui perdi qualche motivo.

Penso che Google stia andando nella giusta direzione, avendo più opzioni di recupero e autenticazione a 2 fattori. Il problema è che quasi tutto può essere falsificato se non si presta attenzione alla pagina effettiva che richiede le informazioni.

Speriamo che in futuro ci sia un dispositivo su di te, come un telefono cellulare, che possa fungere da spazio di sicurezza per i servizi web. Le app sono controllate dal distributore, quindi avere un'app per piattaforma per ottenere la richiesta di accesso e chiedere il tuo permesso sarà il modo giusto per gestirlo in futuro, quindi non dobbiamo preoccuparci di questa singola password per tutto sciocchezze.

... un giorno ...

    
risposta data 07.11.2014 - 17:23
fonte
2

Non dimentichiamo che qualcuno non ha bisogno di forza bruta su un bersaglio. Possono provare la stessa password con molti obiettivi rendendo vulnerabili gli utenti con le password più comuni.

    
risposta data 06.11.2014 - 07:06
fonte
2

Hai dimenticato l'attacco fisico locale! Una password lunga e complessa rende molto meno probabile la riuscita della localizzazione della spalla. Anche se qualcuno guarda la mia tastiera, non riceverà la mia password a meno che non sia Rainman. (non può commentare)

    
risposta data 08.11.2014 - 11:36
fonte
2

Quando si utilizza un sistema di autenticazione a due fattori affidabile, è ragionevole usare una password meno sicura. È ancora meglio utilizzare una password complessa generata da un generatore di password utilizzando lettere maiuscole e minuscole, numeri e simboli.

Ma gente che non lo farà distribuire una password così sicura; nel caso di un servizio che offre l'autenticazione a due fattori, queste persone possono sentirsi ragionevolmente al sicuro.

    
risposta data 09.11.2014 - 06:15
fonte
-6

Non è possibile proteggere la password utilizzando una combinazione su larga scala.Per questo è necessario crittografare la password.Alcuni comuni algoritmi di crittografia sono md5, SHA-1, SHA-256 stc.Ma ancora non è sicuro al 100%. L'attaccante può decrittografare la tua password usando strumenti come hash cat con alta GPU come accennato in precedenza.

Quindi in un guscio di noce nessun algo è sicuro al 100%. Ma è possibile generare un meccanismo di password strong utilizzando sali con algos di cripta esistenti. Esistono alcuni famosi alghi di cripta.

link

    
risposta data 06.11.2014 - 09:36
fonte

Leggi altre domande sui tag