Gli hash mkpasswd SHA512 sono sicuri per il pubblico?

2

Non sono esperto di crittografia in alcun modo quindi ti prego di sopportarmi se la mia domanda è abbastanza stupida.

Usiamo regolarmente le coppie di chiavi OpenSSH ea causa della natura asimmetrica delle coppie di chiavi, per quanto ho capito il concetto, dare la tua chiave pubblica al ... beh ... "pubblico" - è considerato una cosa sicura da fare in quanto può essere utilizzata solo per verificare che sei veramente tu. Creare contenuti o autenticarti funziona contro la chiave privata che non lascia mai la tua macchina, quindi la strong sicurezza.

Ora, data la situazione di cui sopra come un confronto, può essere considerato sicuro se ho creato un hash della password con lo strumento unix mkpasswd e un hash SHA512 salato e l'ho reso pubblico?

La mia ipotesi sarebbe che non è una buona idea da fare, come faresti con le password con hash in un database utente di un sito web. Tuttavia, dal momento che questa è solo una supposizione vorrei alcune opinioni di esperti.

Grazie!

    
posta ArSeN 20.07.2018 - 18:20
fonte

3 risposte

5

La differenza chiave qui (nessun gioco di parole previsto) è che la chiave includa una quantità significativa di entropia (cioè è casuale). Le password sono spesso abbastanza terribili, avendo meno di 30 bit di entropia. 30 bit sono facilmente forzabili, così gli hash delle password sono progettati per essere lenti (hai specificato SHA512 salato, ma hai omesso il numero di round), rendendo la forza bruta più lunga. Nonostante questa attenuazione, le password scadenti verranno comunque risolte rapidamente.

Senza sale, un utente malintenzionato potrebbe utilizzare la precomputazione sotto forma di tabella arcobaleno . In questo modo, potrebbero trascorrere un po 'di tempo a lavorare in modo che quando fanno scoprono il valore hash, possono romperlo molto rapidamente. L'uso di un sale (sufficientemente lungo e casuale) impedisce questo, in modo che l'attacco possa iniziare solo nel momento in cui l'hash è esposto.

Quindi hai ragione, questa è una cattiva idea a meno che non sia la tua password e tu la hai generata con oltre 100 bit di entropia (nel qual caso è più simile a una chiave che a una password).

Va anche notato che SHA-512 con il valore predefinito di 5.000 round non è molto buono. Non è male come un singolo round di MD5, ma la maggior parte dei computer al giorno d'oggi può fare oltre 2.000.000 di colpi in meno di un secondo. Potresti aspettarti che un attaccante motivato bersagliando una password da 5.000 round SHA-512 esegua milioni o milioni di supposizioni al secondo.

    
risposta data 20.07.2018 - 18:40
fonte
3

Il fattore chiave qui risulta essere la difficoltà di indovinare la password in questione . Se la password è debole e la maggior parte delle password di gran lunga sono terribili -Quando distribuire l'hash, l'hacker può usare un metodo per indovinare i tentativi di tipo sì / no, e il costo per provare molte di queste ipotesi è molto più basso di quello di trovare una pre-immagine per l'hash (un input che produce lo stesso risultato rivelato).

Con le chiavi private generate correttamente questo non è un problema perché non ci sono metodi efficaci per indovinare una chiave privata. Ma nota che con le chiavi private generate in modo errato è un'altra storia - ci sono stati molti incidenti di software buggy che producono chiavi RSA che si adattano a modelli facili da indovinare e quindi possono essere violati.

Viceversa, se una password è selezionata in modo uniforme a caso da un insieme sufficientemente grande, rilasciare un hash di esso sarebbe sicuro. Ad esempio, una password ASCII stampabile casuale uniforme da 19 caratteri ha circa 126 bit di entropia, all'incirca quanto una chiave AES-128.

    
risposta data 20.07.2018 - 22:53
fonte
1

Prima di tutto, non avresti modo di autenticarti. Se invii l'hash, non hai dimostrato nulla come tutti conoscono il tuo hash. Se invii una password in chiaro, la parte ora non solo lo sa, ma altre parti potrebbero non sapere che l'hai usata. Quindi è un uso unico nel migliore dei casi e nel peggiore dei casi è completamente insicuro.

Per quanto riguarda la sicurezza dell'hashing di una password, può essere sicura se la password è lunga, generata in modo casuale e hash con una strong funzione di hash. Ma per le password create dagli utenti, gli attacchi di dizionario lo renderebbero discutibilmente sicuro anche per password lunghe e valide come punti metallici corretti per la batteria dei cavalli .

Ci sono applicazioni reali che si basano sul fatto che il contenuto non sia recuperabile dall'hash diverso dalla protezione con password. Un uso notevole è un coin flip sicuro. Pertanto, è stato presumibilmente studiato e determinato sicuro per password / chiavi casuali.

    
risposta data 20.07.2018 - 18:27
fonte

Leggi altre domande sui tag