Perchè brute-forzare la password al posto della chiave direttamente?

3

Questa risposta su un'altra domanda su security stackexchange di un utente molto famoso spiega perché preferisce GnuPG rispetto a OpenSSL per la crittografia dei file. Da quanto ho capito, può essere riassunto come segue:

When using OpenSSL, the encryption key used is derived from MD5(password+salt) with only one iteration. So it is easy for an attacker to brute-force the password and get the encryption key.

La mia domanda è: perché un utente malintenzionato vuole forzare la password anziché la chiave direttamente? Ad esempio, se la chiave è lunga 128 bit e la mia password è lunga 16 caratteri (128 bit), my (password + salt) è già più lunga della chiave di crittografia. Ciò significa che sarebbe effettivamente più semplice forzare la chiave di crittografia direttamente anziché la password e il numero di iterazioni nella funzione di derivazione chiave è irrilevante.

Ma la risposta sopra riportata è spesso collegata come riferimento a molte altre domande simili e proviene da un utente famoso. Allora, dov'è il difetto nel mio ragionamento?

    
posta Gradient 20.08.2017 - 23:05
fonte

1 risposta

8

Forza la chiave brute - forzando la password

Forza bruta il tasto

Per forzare la chiave direttamente, ho bisogno di continuare a indovinare le chiavi e tentare di decrittografare il file crittografato con esso fino a quando il file decrittografa correttamente. Senza ulteriori informazioni, ho bisogno di provare i 2 128 possibili valori chiave a caso.

In media dovrò fare 2 supposizioni 128 / 2 = 2 127 . A proposito, questo è un numero enorme! Riduzione della fisica: un'istruzione di assemblaggio ARM (ADD, SUB, XOR, ...) consuma circa 300 pJ ~ = 3.0x10 -10 Joule per istruzione su un dispositivo embedded a bassa potenza. Il sole contiene approssimativamente 1.2x10 44 Joule di combustibile nucleare. Supponendo di poter indovinare una chiave e provare a decifrare il file in una singola istruzione ARM (che è banane, stai osservando milioni di istruzioni per un file di dimensioni ragionevoli), allora fare questo attacco a forza bruta richiederebbe consumando 2x10 < sup> 15 stelle ! Sì, 2 127 è un massiccio numero. Buona fortuna con quell'attacco a forza bruta. Spero che tu abbia una buona tariffa elettrica.

Brute-farsa la password

La lunghezza della password è rilevante solo se una password di 16 caratteri ha più combinazioni possibili da indovinare rispetto a una password di 8 caratteri. Mentre la tua password di 16 caratteri potrebbe richiedere 128 bit di spazio su disco, non è certamente 128 bit di sicurezza. Per cominciare, ci sono solo 95 caratteri ASCII stampabili , quindi per una password che utilizza solo caratteri di tastiera (senza accenti, emoji, ecc.), nella migliore delle ipotesi stai cercando 95 16 ~ = 2 105 possibili password da 16 caratteri da indovinare. Inoltre, sappiamo che il 30% degli account su Internet ha una password tra le 10.000 migliori password [ fonte ], quindi la lunghezza è effettivamente irrilevante se sei uno di quei 10.000.

Metterlo insieme

Forza la password, se si tratta di un utente di Internet casuale (cioè stanno inventando le loro password come fa l'utente medio di internet), allora hai il 30% di possibilità di scomporlo nelle prime 10.000 ipotesi. Se fingo forzatamente la chiave direttamente (senza utilizzare alcuna conoscenza extra), allora ho una possibilità di 0,0000000000000000000000000000000003% (3x10 -35 ) di scomporla nelle prime 10.000 ipotesi.

Fondamentalmente, le password sono più deboli delle chiavi perché i cervelli umani sono stupidi e prevedibili. Se la tua password proviene da un generatore casuale, questa è una storia completamente diversa perché è più una chiave che una password.

    
risposta data 21.08.2017 - 00:50
fonte

Leggi altre domande sui tag