Con openssl des3, ¿cuáles son los parámetros de frase de contraseña?

3

Estoy usando OpenSSL 's des3 herramienta para cifrar un archivo, por ejemplo,

openssl des3 -salt -k SUPER_SECURE_PASSPHRASE < inputFile > outputFile

Todo funciona, pero ahora tengo que elegir una frase de contraseña de cifrado final y fija. No es necesario memorizarlo, así que obviamente elegiría algún tipo de caracteres generados al azar. Sin embargo, ¿qué tan al azar es útil, y cuánto tiempo es útil? Me preocupa que, sin saberlo, voy a tirar la entropía útil.

Por ejemplo, AZQBB sería una frase de contraseña deficiente, probablemente debido a la longitud y al conjunto de caracteres limitado. Pero, ¿ kecqnutaspyyhgheikfzuwkjaoitqooasujjfhhsiiwqoekihaeyhflpijfmnhssdyyy sería pobre debido a su conjunto de caracteres limitado? O, ¿ dU# i?|m:v sería pobre debido a su longitud? Todo importa cómo openssl usa la frase de contraseña para generar los bits de las claves de cifrado, y no he encontrado eso documentado en ninguna parte.

Como otro ejemplo, si openssl solo obtiene sus 156 bits de la representación ASCII de 8 bits de los primeros 21 caracteres de mi frase de contraseña, entonces, si me limito a un ASCII bajo que no sea de control de caracteres, lo eliminaré. aproximadamente 30 bits de entropía.

Por lo tanto, para una frase de contraseña altamente segura, mis preguntas son:

  • ¿Cuánto tiempo necesito una frase de contraseña?
  • ¿Cuán diverso es el conjunto de caracteres que necesito?
pregunta Daniel Griscom 14.01.2016 - 16:41
fuente

2 respuestas

4

"openssl des3" es realmente "openssl enc -des3". La derivación de clave basada en contraseña es un esquema personalizado e indocumentado que, en lo que respecta a los esquemas de derivación de clave basada en contraseña, es bastante débil; Consulte esta respuesta (especialmente al final) para obtener algunos detalles. Básicamente, esto es equivalente a hashear la contraseña con un par de invocaciones MD5.

Lo que importa para las contraseñas es entropía , es decir, no la longitud de la contraseña o el tipo de caracteres utilizados; La entropía es una medida de cuál podría haber sido la contraseña . Consulte esta respuesta para Detalles sobre cómo calcular la entropía. Recuerde que la entropía no se calcula en la contraseña en sí, sino que analiza el proceso que generó la contraseña.

Dado que el esquema de derivación de claves utilizado por OpenSSL es bastante malo, se necesita mucha entropía de contraseñas para lograr una seguridad decente. Como regla general, el límite del poder computacional de los atacantes serios es 2 80 de una primitiva criptográfica como MD5 (los atacantes ricos como la NSA tendrían muchos problemas para alcanzar tales niveles computacionales; incluso organizaciones muy ricas como Google o Apple lo encontrarían bastante desafiante, y no podrían hacerlo de manera discreta). En este caso, dado que intentar una contraseña significa aproximadamente computar dos MD5, esto significa que la entropía de la contraseña debe exceder 2 79 , es decir, "79 bits" porque la entropía (en criptografía) normalmente se expresa en bits ( que es una escala logarítmica).

SI genera su frase de contraseña como una secuencia de caracteres aleatorios en un alfabeto dado, con cada carácter seleccionado al azar, de manera uniforme y (de manera crucial) independientemente de los otros caracteres de la frase de contraseña, ENTONCES la entropía se puede calcular fácilmente: si usa n letras minúsculas (26 opciones para cada carácter), entonces la entropía es 26 n . Con n = 17 (17 letras minúsculas al azar), entonces la entropía es cercana a 2 80 , es decir, 80 bits, que, como se explicó anteriormente, debería ser suficiente. Incluso un pequeño conjunto de caracteres puede compensarse utilizando una frase de contraseña lo suficientemente larga, porque lo que realmente importa es la entropía, no la longitud o el tipo de carácter.

Si intentas generar frases de contraseña que "tengan sentido" de alguna manera para un humano, entonces la entropía es mucho más difícil de calcular, porque la psicología humana es muy mala al azar. Nuevamente, vea la respuesta en el cálculo de entropía.

    
respondido por el Thomas Pornin 14.01.2016 - 17:35
fuente
0

DES3 usa un tamaño máximo de clave de 168 bits, por lo que si debe usar DES3, vaya al tamaño máximo de clave. Como no estás memorizando la clave, debes generarla desde un CPRNG. Si tiene la opción, debe considerar AES, que puede tener tamaños de clave más grandes.

    
respondido por el Seth M. Larson 14.01.2016 - 17:21
fuente

Lea otras preguntas en las etiquetas