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.