Un cálculo rápido:
Primero mis suposiciones:
Supongo que el atacante tiene $ 1,000,000 para gastar en el transcurso de dos años. Está utilizando tarjetas gráficas estándar y paga 10ct / kWh.
Supongo que el KDF consta de 2 * n invocaciones SHA256, donde n es el recuento de iteraciones, y se puede implementar con una eficiencia similar en tarjetas gráficas como SHA256 simple. 1
Una tarjeta gráfica actual da alrededor de 6MHash / s / $ y alrededor de 4MHash / J. 2
Cálculo
- Costo de electricidad para 1 Hash: ($ 0.10 / kWh) / (4MHash / J) = 7 * 10 -15 dólares
- Costo de hardware para 1 Hash: 1 / (6MHash / s / $ * 1 año) = 5 * 10 -15 dólares
- Costo total para 1 Hash: 1.2 * 10 -14 dólares
- Hashes por 1 dólar: 8 * 10 13
- Hashes por 1,000,000 de dólares: 8 * 10 19
Esto corresponde a una contraseña de 66 bits, protegida con SHA256 simple. TrueCrypt usa PBKDF2 con 1000 iteraciones, lo que nos otorga una bonificación de factor 2000, por lo que podemos restar 11 bits y llegamos a 55 bits.
Conclusión
Un atacante que quiera gastar un millón de dólares puede descifrar las contraseñas de TrueCrypt hasta 55 bits de entropía. Calcule el valor de sus secretos y ajústelo adecuadamente.
Un atacante sofisticado podría usar hardware personalizado, lo que haría que el ataque sea incluso más barato. Pero no tengo ningún número a mano para determinar la cantidad de energía que requiere el hardware personalizado por hash.
Una contraseña completamente aleatoria de longitud 15 elegida entre 37 caracteres diferentes tiene una entropía de 78 bits y, por lo tanto, está fuera de rango para ataques basados en tarjetas gráficas. Tenga en cuenta que esto solo se aplica si la contraseña es completamente aleatoria. Si tiene alguna estructura explotable, como palabras o patrones de teclado, la entropía podría ser considerablemente menor.
1 PBKDF2 usa 1HMac por iteraciones, que a su vez tiene 2 invocaciones de hash
2 Basé esto en comparación de hardware de Bitcoin Mining usando ese hash de bitcoin que consiste en 2 invocaciones SHA256.