LUKS, ¿cómo hacer una frase de contraseña lo más fuerte posible y razonable?

5

Digamos que tengo un volumen cifrado bajo LUKS con una clave de 512 bits. Eso significaría que hay 2 ^ 512 de los valores posibles que puede ser la clave.

Ahora necesito una frase de contraseña que sea al menos tan resistente a la fuerza bruta como la clave de cifrado de volumen real de 512 bits. Corríjame si mis suposiciones de abajo son incorrectas, todos los valores numéricos se usan solo para ejemplos matemáticos:

Digamos que mi contraseña se genera mediante la entrada aleatoria de codificación base64 y, por lo tanto, el espacio de teclas para mi frase de contraseña es 64 caracteres. Entonces, para que mi frase de contraseña sea al menos tan fuerte como la clave de cifrado del volumen, entonces debe haber al menos 2 ^ 512 de combinaciones posibles dentro de la longitud de la frase de contraseña. Esto se puede expresar como:

(size_of_keyspace) ^ number_of_characters >= 2 ^ (size_of_key)

Entonces, para este ejemplo de un tamaño de clave de volumen de 512 y un espacio de clave de frase de contraseña de 64 , entonces el número mínimo de caracteres que mi frase de contraseña debe tener para ser al menos tan seguro como la tecla de volumen sería 86 .

¿Es correcta esta lógica o hay algunos inconvenientes que debo tener en cuenta? ¿Alguna otra recomendación que pueda ofrecerse en la línea de esta pregunta?

Mi razonamiento para esto es que no hay un beneficio inherente de tener una frase de contraseña que sea más fuerte que la propia clave de carga útil - alguien brutal que fuerza mi unidad está tratando de descifrar mi clave de cifrado, no mi frase de contraseña. Si mi frase de contraseña es más fuerte que la clave de cifrado, entonces un atacante puede forzar la clave de cifrado de forma bruta más rápido que la frase de contraseña. ¿Es correcto o hay algún beneficio en tener una frase de contraseña que sea más fuerte que la clave de cifrado, tal vez como una fuga de recursos para un atacante que no diversifica sus métodos lo suficientemente bien?

    
pregunta Radmilla Mustafa 22.02.2015 - 19:06
fuente

2 respuestas

4

En el contexto de la seguridad, todo es un intercambio. Más sobre eso en un segundo ....

¿Cuáles son las opciones de ataque para entrar en tu volumen cifrado? Ellos son, básicamente:

  1. Búsqueda de fuerza bruta del espacio de claves para la clave utilizada por la primitiva de cifrado simétrico.

  2. Brute forza la frase de contraseña al intentar cada contraseña posible utilizando los parámetros específicos de sal y clave de derivación de su volumen.

  3. La mucama malvada, la manguera de goma, el registrador de llaves u otros medios "no criptográficos" para asegurar su teclado.

Debes preocuparte por el número 3. Porque es el vector de ataque obvio.

Nadie va a tener éxito en la aplicación bruta de la clave utilizada para la primitiva de cifrado de bloque.

Desde una perspectiva de seguridad básica, sigo convencido de que incluso las claves de 128 bits son completamente seguras si la implementación no se rompe. Una búsqueda de fuerza bruta en ese caso debe agotar en promedio la mitad de un espacio clave que tiene 340,282,366,920,938,463,463,374,607,431,768,211,456 posibilidades.

Para una primitiva de 256 bits, estás hablando de 115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,557,007,913,129,639,636 posibilidades.

Entonces, incluso con 256 bits de seguridad clave, ya está alcanzando números que se acercan al número de átomos en el universo conocido.

Eso está fuera.

Lo que te preocupa es que alguien intente cada frase de contraseña posible.

Ahora, recuerda que LUKS usa un poco de sal + PBKDF2 para estirar tu frase de paso al tamaño del espacio clave. Lo que esto significa es que incluso una contraseña de "a" puede asignarse a cualquier lugar posible en todo el espacio clave. Así que los atacantes no van a tener una mesa de arco iris que ayude aquí.

Si van a forzar bruscamente la frase de contraseña, tendrán que probar todas las entradas posibles, ejecutando cada una de ellas a través de la función de derivación de clave con los parámetros utilizados en su volumen (salt & iterations). Eso lleva tiempo. Y, si la memoria sirve, LUKS realmente establece las iteraciones para tomar una cantidad específica de tiempo por "intento".

Lo que esto significa es que simplemente necesitas una longitud de frase de paso que tenga suficiente entropía para que un atacante no pueda probar un número suficiente de frases posibles para ubicar tu frase. El atacante, por supuesto, puede usar GPU o hardware ASIC especializado para acelerar este proceso (es por eso que la gente está experimentando con cosas como Scrypt para hacerlo más difícil), pero estará más que protegido con 20 a 30 caracteres que contienen minúsculas, mayúsculas, números y los símbolos del teclado (incluidos los símbolos de los números desplazados y otros símbolos en el teclado).

Esto me lleva de nuevo a mi comentario inicial. Es importante tener en cuenta las compensaciones. Puede intentar crear una frase de paso que sea equivalente a la dificultad de su espacio de claves de 512 bits, pero IMPACTO su comportamiento. Es posible que no se desmonte / cierre la sesión cuando se levanta para tomar una taza de café, ya que es muy difícil obtener la contraseña correcta cuando es el momento de volver a iniciar sesión. Puede guardar la frase de contraseña larga en un teléfono o pieza. de papel. Si lo almacena en un administrador de contraseñas, estará limitado por la seguridad del administrador de contraseñas y no por la seguridad de la longitud de su frase de contraseña.

Mientras tanto, una vez que un atacante tiene que probar de 20 a 30 caracteres de la frase de paso utilizando 93 caracteres posibles, el atacante enfrenta (efectivamente) de 95 a 150 bits de entropía que lo coloca fuera del rango razonable de fuerza bruta.

Y, todo lo cual conduce a la tercera posibilidad de ingresar a tu volumen. Comparado con la fuerza bruta de la clave del cifrado primitivo o el intento de todas las frases de paso posibles, el tercer escenario "COMPROMISO" es realmente de lo que debería preocuparse. Un atacante que le permite apuntar un navegador web comprometido a un exploit que le otorga privilegios escalados en su sistema en ejecución puede escanear la memoria en busca de su contraseña. Un atacante que obtiene un rootkit en su sistema puede hacer lo mismo. Si enchufa un dispositivo USB o dispositivo FireWire comprometido, puede estar comprometiendo la seguridad. Y todos estos son mucho más fáciles para el atacante que los brutos forzando el espacio de claves o espacio de frase de contraseña.

    
respondido por el boggart 22.02.2015 - 20:36
fuente
0

En la práctica, un atacante intentará atacar su frase de contraseña antes de su clave. En algunos casos es mucho más difícil atacar la clave real. Tenga en cuenta que, tanto para la contraseña como para la clave, es importante tener políticas de bloqueo.

En realidad, en un sistema con una buena política de bloqueo, los atacantes contra frases de alta calidad de 10 a 12 caracteres no son realistas. 86 caracteres de la frase de contraseña alta calidad serían muy difíciles de superar. Si fuera un atacante, simplemente encontraría otra manera. Creo que una frase de contraseña de 20 caracteres sería más que suficiente para sus propósitos.

Entonces, para responder a tu pregunta, diría que no debes preocuparte por si la longitud de tu contraseña puede atraer a usuarios malintencionados hacia la clave directamente. En su lugar, me aseguraría de que haya un bloqueo adecuado y políticas de limitación de velocidad para que los ataques de fuerza bruta sean esencialmente imposibles en primer lugar.

Aquí es fácil perderse el bosque por los árboles. No se preocupe por las contraseñas, piense demasiado en ellas cuando no realizó la investigación para asegurarse de que no existía una omisión de autenticación para un software obsoleto que está utilizando. Trate de ver toda la imagen de seguridad. Investigue su plataforma de software y asegúrese de que no haya más agujeros graves de seguridad, ese será el próximo objetivo una vez que el atacante se dé cuenta de que su contraseña no es una "contraseña".

    
respondido por el baordog 22.02.2015 - 20:09
fuente

Lea otras preguntas en las etiquetas