Quanto è costoso indovinare una password di 15 caratteri e dovrei essere preoccupato?

8

Attualmente sto usando la crittografia AES (a casa) su GNU / Linux (una delle varianti di LUKS AES-256 con xts) e su Windows 7 (TrueCrypt) con una password di 15 caratteri (solo lettere minuscole alfanumeriche più _).

Se questo fosse sufficiente o sarebbe meglio cambiare verso una password più lunga. Quanto dovrebbe essere lungo? Recentemente guardando i risultati con il cracking della GPU mi sono un po 'preoccupato. Il fatto è che non voglio scegliere una password così a lungo da dimenticarla e bloccarla.

    
posta user51166 24.02.2012 - 09:36
fonte

2 risposte

13

Un rapido calcolo:

Innanzitutto le mie ipotesi:

Suppongo che l'attaccante abbia $ 1.000.000 da spendere nel corso di due anni. Usa le schede grafiche standard e paga 10 ct / kWh.

Suppongo che KDF sia costituito da invocazioni 2 * n SHA256, dove n è il conteggio delle iterazioni e può essere implementato con efficienza simile sulle schede grafiche come semplice SHA256. 1

Una scheda grafica corrente fornisce circa 6MHash / s / $ e circa 4MHash / J. 2

Calcolo

  • Costo dell'energia elettrica per 1 Hash: ($ 0,10 / kWh) / (4MHash / J) = 7 * 10 -15 di dollari
  • Costo hardware per 1 hash: 1 / (6MHash / s / $ * 1yr) = 5 * 10 -15 dollari
  • Costo totale per 1 hash: 1.2 * 10 -14 dollars
  • Hash per 1 dollaro: 8 * 10 13
  • Hash per 1.000.000 di dollari: 8 * 10 19

Corrisponde a una password a 66 bit, protetta con SHA256 semplice. TrueCrypt utilizza PBKDF2 con 1000 iterazioni, il che ci dà un bonus di fattore 2000, quindi possiamo sottrarre 11 bit e arrivare a 55 bit.

Conclusione

Un utente malintenzionato disposto a spendere un milione di dollari può crackare le password TrueCrypt fino a 55 bit di entropia. Valuta il valore dei tuoi segreti e regolalo in modo appropriato.

Un attaccante sofisticato potrebbe utilizzare hardware personalizzato, che renderebbe l'attacco ancora più economico. Ma non ho numeri a portata di mano per quanta energia richiede l'hardware personalizzato per hash.

Una password completamente casuale di lunghezza 15 scelta tra 37 caratteri diversi ha un'entropia di 78 bit, e quindi è al sicuro fuori portata per attacchi basati su schede grafiche. Si noti che questo si applica solo se la password è completamente casuale. Se ha qualche struttura sfruttabile, come parole o pattern di tastiera, l'entropia potrebbe essere notevolmente inferiore.

1 PBKDF2 usa 1HMac per iterazioni, che a sua volta ha 2 invocazioni di hash

2 L'ho basato su Confronto di hardware Bitcoin Mining usando quell'unico hash bitcoin costituito da 2 invocazioni SHA256.

    
risposta data 24.02.2012 - 11:16
fonte
4

Ho dato una rapida occhiata alla specifica LUKS - questo collegamento non è il formato più recente e potresti volerlo controllare. Per citare parzialmente da lì, nella sezione 2.3 prerequisiti:

LUKS needs to process password from entropy-weak sources like keyboard input. PKCS#5’s password based key derivation function (PBKDF2) has been defined for the purpose to enhance the security properties of entropy-weak password

TrueCrypt utilizza anche PBKDF2.

In breve, LUKS utilizza PBKDF2 per ricavare la chiave di crittografia dalla tastiera. Questo processo applica un salt per rendere difficile la generazione di una tabella arcobaleno generica ed è anche lento da calcolare quando si derivano le chiavi, rendendo ogni controllo relativamente costoso.

Una password di 15 caratteri dovrebbe, quindi, essere a posto. PBKDF2 è progettato per proteggere tali password. Detto questo, consiglierei sempre varie classi di caratteri (usa maiuscole, punteggiatura, cifre numeriche) se puoi - tutto ciò che aumenta l'entropia e la lunghezza della password è una buona cosa.

    
risposta data 24.02.2012 - 10:00
fonte