L'hashing è la concatenazione della mia password e del tipo di account sicuro? [duplicare]

0

Concetto

L'obiettivo di un gestore di password è di ridurre il numero di password che è necessario memorizzare fino a uno, e quindi di crittografare tutte le altre password con quella password principale. La mia soluzione mira a risolvere lo stesso processo senza l'uso di alcuna archiviazione di dati.

Idea

In primo luogo, genera una password sicura. Quindi, concatena il nome dell'account alla fine di esso e cancella il risultato, possibilmente nello stile di catena delineato in questa risposta . Il risultato finale sarebbe la mia password per quell'account.

Esempio

Usando una password di esempio "GreenPlanetAboutStudentCaughtGoodbye" e il mio account "StackExchange", avrei cancellato "GreenPlanetAboutStudentCaughtGoodbyeStackExchange" e utilizzare il risultato come password.

Sicurezza

Lo scopo dell'hashing è quello di garantire che anche se un sito web memorizzasse la mia password in chiaro, solo quella password sarebbe compromessa. Supponendo che gli account consentano tutti i 40 caratteri di un SHA-256, l'entropia delle password sarebbe max(256, entropy of initial password) .

vantaggi

  • Non richiede crittografia
  • Non richiede memorizzazione dei dati
  • Le password possono essere perse solo se la password principale è dimenticata
  • Può essere utilizzato ovunque

Svantaggi

  • Dipende dai siti Web che consentono una lunghezza illimitata della password (anche se è possibile tagliare l'hash per i siti Web che lo richiedono)
  • Presume che tutte le richieste di carattere speciale saranno soddisfatte dalla password casuale (molto probabilmente ma è comunque una possibilità che non lo faranno)

Domanda

La mia idea è valida (ragionevolmente sicura)? C'è qualche difetto critico che mi manca?

    
posta Sebastian 01.03.2018 - 05:09
fonte

1 risposta

3

L'idea è, in generale, sicura. In effetti, è stato implementato diverse volte prima. Ci sono alcuni problemi in cui qualsiasi approccio di questo tipo (e alcuni di più di un approccio semplice come questo) si imbatterà, però. In nessun ordine particolare:

  1. Più account per sito. Lo schema, come descritto, non fornisce alcun modo per differenziare gli account per lo stesso sito. Dovresti inserire un nome utente lì da qualche parte.
  2. Rotazioni della password (obbligatorie o dovute a compromessi). Non è possibile modificare la password generata senza modificare la password principale. Mentre le rotazioni delle password obbligatorie stanno diventando meno comuni, esistono ancora in alcuni punti.
  3. Regole di complessità della password. I siti tendono ad avere un ampio (e spesso molto cattivo) elenco di regole di complessità, alcune delle quali sono reciprocamente incompatibili (ad esempio, un sito insiste su "caratteri speciali", un altro proibisce qualsiasi cosa non alfanumerica). Questo strumento non ha modo di soddisfare vincoli del genere.
    • A proposito, in che modo pianifichi di codificare l'hash digest? 256 bit è 32 byte 44 (se si mantiene la terminazione = ) caratteri base64 o 64 caratteri esadecimali ... Nessuno di questi sono i 40 caratteri che si menzionano (stai pensando a SHA1 - un digest a 160 bit - in esadecimale encoding?)
  4. La password principale non può essere ruotata. Con i normali gestori di password, puoi cambiare la password principale (se, ad esempio, temi che qualcuno possa averlo keyloggato), e anche se è una buona idea cambiare anche tutte le password che stava proteggendo probabilmente hai tempo per farlo . Con questo schema, devi aggiornare le password su tutti i tuoi siti se vuoi cambiare la password principale.
  5. Manca la protezione bruta-forzante. Mentre la password principale che hai scelto è abbastanza lunga da essere probabilmente sicura (supponendo che tu usi qualcosa di simile entropia), la maggior parte delle persone sceglierà password più prevedibili di quella. Un singolo round di qualsiasi hash veloce (inclusi tutti i membri della famiglia SHA) salato con nient'altro che una stringa prevedibile fornisce pochissima protezione contro il brute-forcing, in questi giorni; una scheda grafica decente può calcolare miliardi di hash al secondo (e l'hardware specializzato può fare molto di più) cercando di trovare la password originale. Hai bisogno, come minimo, di utilizzare qualche migliaio di giri di hashing per rallentare la ricerca; potresti anche utilizzare uno degli algoritmi più recenti (come scrypt o argon2) che è specificamente progettato per l'hashing della password.
  6. Le password sono difficili da trascrivere. Se devi inserire una password in qualcosa che non ti consente di incollarlo e incollarlo, stai digitando molto attentamente.
  7. Impossibile cercare gli account archiviati. Mentre questo può essere un vantaggio nel caso in cui il tuo sistema venga compromesso, è più spesso un segno meno. Se non sai se hai un account per qualche servizio, o non sai qual è il "sale" per l'account (è "bankofamerica", "BankOfAmerica", "Bank of America", "BOA", "boa", "BofA", ...?) potresti passare un po 'di tempo a cercare password sbagliate senza saperlo con certezza.
  8. Nessun modo per archiviare i segreti associati. Ad esempio, un gestore di password consente di archiviare elementi come codici di backup multifattoriali o risposte "domande segrete"; questo sistema non supporta affatto il primo e il secondo solo goffamente (utilizzando fondamentalmente la domanda stessa come sito / nome utente / sale / qualunque).
  9. Nessun supporto per la modifica di primitive crittografiche o fattori di lavoro. Se SHA-256 si rompe e viene detto a tutti di passare alla famiglia SHA3, è necessario modificare tutte le password. Se in due anni si desidera raddoppiare il numero di iterazioni che si fanno per rendere conto della legge di Moore, è necessario modificare tutte le password.

In ogni caso, non dire che uno schema di questo tipo è in realtà insicuro (anche se potresti voler un po 'indurire la funzione di hashing, come minimo) ma ha un sacco di limitazioni e potenziali insidie.

    
risposta data 01.03.2018 - 05:54
fonte

Leggi altre domande sui tag