¿Qué tan costoso es adivinar una contraseña de 15 caracteres, y debo preocuparme?

8

Actualmente estoy usando el cifrado AES (en casa) en GNU / Linux (una de las variantes LUKS AES-256 con xts) y en Windows 7 (Truecrypt) con una contraseña de 15 caracteres (solo en minúscula alfanumérica más _).

Si esto fuera suficiente o sería mejor cambiar hacia una contraseña más larga. ¿Cuánto tiempo debe ser? Recientemente, viendo los resultados con la ruptura de GPU, me preocupé un poco. La cosa es que no quiero elegir una contraseña por tanto tiempo para que la olvide y quede bloqueada.

    
pregunta user51166 24.02.2012 - 09:36
fuente

2 respuestas

13

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.

    
respondido por el CodesInChaos 24.02.2012 - 11:16
fuente
4

Eché un vistazo rápido a la especificación LUKS : este enlace no es el formato más reciente y es posible que desee verificarlo. Para citar parcialmente desde allí, en la sección 2.3 requisitos previos:

  

LUKS necesita procesar la contraseña de fuentes débiles de entropía como el teclado   entrada. La función de derivación de clave basada en contraseña de PKCS # 5 (PBKDF2) ha sido   definido con el propósito de mejorar las propiedades de seguridad de la entropía débil   contraseña

Truecrypt también usa PBKDF2.

En resumen, LUKS usa PBKDF2 para derivar su clave de cifrado de su teclado. Este proceso aplica una sal para dificultar la generación de una tabla arco iris genérica y también es lento de calcular al derivar claves, lo que hace que cada verificación sea relativamente costosa.

Por lo tanto, una contraseña de 15 caracteres debería estar bien. PBKDF2 está diseñado para proteger tales contraseñas. Dicho esto, siempre recomendaría diferentes clases de caracteres (use mayúsculas, puntuación, dígitos numéricos también) si puede: cualquier cosa que aumente la entropía y la longitud de la contraseña es algo bueno.

    
respondido por el user2213 24.02.2012 - 10:00
fuente

Lea otras preguntas en las etiquetas