Seguridad de la clave privada protegida por contraseña

43

Si un atacante obtiene una clave privada que se creó sin una frase de contraseña, obviamente obtiene acceso a todo lo protegido con esa clave. ¿Qué tan seguras son las claves privadas configuradas con una frase de contraseña? Si un atacante roba una clave protegida por frase de contraseña, ¿qué tan difícil es comprometer la clave? En otras palabras, ¿es segura una clave privada con una buena frase de contraseña, incluso si es accedida por un atacante?

    
pregunta jrdioko 08.07.2011 - 18:33
fuente

4 respuestas

22

Con OpenSSL, OpenSSH y GPG / PGP, el algoritmo de ajuste será lo suficientemente fuerte como para que no tenga que preocuparse por eso (y si necesita preocuparse por eso, entonces tiene problemas más grandes, y este es el más pequeño tus preocupaciones).

Al igual que cualquier contraseña o frase de contraseña, depende de la fuerza de la frase de contraseña. Una frase de contraseña de 40 caracteres es tan difícil de fuerza bruta como una clave de 256 bits (ya que ASCII solo usa 7 bits). Las mismas reglas para contraseñas seguras se aplican aquí:

  • Al azar es mejor
  • Más largo es más fuerte
respondido por el bahamat 09.07.2011 - 20:44
fuente
15

Una vez que un atacante está en manos de un atacante, nunca está seguro para siempre , es una cuestión de cuánto tiempo y qué medios están disponibles para descifrarlo.

Aquí hay cosas a considerar:

  • fuerza del algoritmo de ajuste : estoy dispuesto a creerle a Bahamat sobre OpenSSL, OpenSSH y GPG / PGP: estos son componentes bien comprobados.

  • tamaño del espacio clave , es decir, tamaño y complejidad de la contraseña, se aplican los costos típicos de la adivinación de fuerza bruta. Es de destacar que algunas formas de almacenamiento de claves limitan los tipos de caracteres que se pueden usar en una contraseña, por ejemplo, JKS (Java Key Store) eliminó algunos caracteres especiales, reduciendo el tamaño potencial del espacio de claves. También tenga cuidado con los sistemas que recortan el tamaño de la clave a un cierto número de caracteres.

  • costo del intento ¿cuán computacionalmente costoso es intentar desenvolver la llave? Eso ralentizará el intento de fuerza bruta.

  • ¿Qué algoritmo? depende de cómo se almacena el archivo seguro. ¿Es obvio qué algoritmo se usó para el cifrado?

  • ¿Hay un texto cifrado disponible para comparar? ¿cómo sabrá el atacante que tiene éxito? ¿Cuál es su mecanismo de prueba? Uno de los elementos más poderosos de capturar un almacén de claves es que el atacante puede probar sus intentos sin que el sistema almacene la clave.

  • ¿Cuántos recursos están a disposición del atacante? : en general, el análisis de amenazas implica analizar cuáles son los recursos del atacante. ¿Tiene 1 computadora? ¿Un banco de computadoras? ¿Y toda la red viral de potencia de CPU robada a su disposición? Depende de si estás hablando de la chica de al lado del script de 13 años o de una nación deshonesta.

  • ¿Cuánto tiempo falta para que se cambie la clave? & ¿Cuánto tiempo deben permanecer protegidos los datos? : si el atacante tarda más en descifrar el almacén de contraseñas que la utilidad de los datos dentro de la tienda, entonces el almacén se considera lo suficientemente seguro como

respondido por el bethlakshmi 11.07.2011 - 22:00
fuente
7

Según Martin Kleppmann :

  

la protección de la clave privada [OpenSSH predeterminada] tiene dos puntos débiles:

     
  • El algoritmo de resumen está codificado para ser MD5, lo que significa que sin cambiar el formato, no es posible actualizar a otra función hash (por ejemplo, SHA-1). Esto podría ser un problema si MD5 resulta no ser lo suficientemente bueno.
  •   
  • La función hash solo se aplica una vez, no hay estiramiento. Este es un problema porque MD5 y AES son rápidos de calcular, y por lo tanto una frase de contraseña corta es bastante fácil de romper con fuerza bruta.
  •   

Si su clave SSH privada llega a las manos equivocadas [y si estaba protegida con frase de contraseña usando la configuración predeterminada de OpenSSH y si] su frase de contraseña es una palabra del diccionario, probablemente se pueda [descifrar] en cuestión de segundos. ... Pero hay buenas noticias: puedes actualizar a un formato de clave privada más seguro, ¡y todo sigue funcionando!

Luego continúa explicando cómo usar "PKCS # 8" según RFC 5208 para obtener una clave privada encriptada más segura:

$ mv test_rsa_key test_rsa_key.old
$ openssl pkcs8 -topk8 -v2 des3 \
    -in test_rsa_key.old -passin 'pass:super secret passphrase' \
    -out test_rsa_key -passout 'pass:super secret passphrase'
    
respondido por el sampablokuper 28.04.2013 - 02:15
fuente
4

¿El cifrado de la clave privada de OpenSSH es vulnerable?

La protección de una clave privada con una frase de contraseña debe hacerse con cuidado, como suele ser el caso en las cuestiones de cifrado. En general, el enfoque consiste en cifrar la clave privada con un algoritmo simétrico utilizando una clave derivada de la frase de contraseña a través de una función de derivación de clave. Un ejemplo clásico de una función de derivación de clave adecuada es PBKDF2 de RFC 2898 - PKCS # 5: Especificación de criptografía basada en contraseña versión 2.0 .

De acuerdo con la presentación de scrypt de Colin Percival, "OpenSSH usa MD5 como una función de derivación clave para frases de contraseña en archivos clave ". Desde el contexto, parece que está diciendo que no usan sales o iteraciones, lo cual es aterrador dado lo rápido que es el forzamiento de la fuerza bruta en estos días. Hay algunos formatos diferentes que OpenSSH usa para almacenar claves privadas, así que me gustaría saber algunos detalles más y exactamente qué versiones están afectadas, pero eso suena como muy lejos de PBKDF2 o el otro iteradas, técnicas saladas que han existido desde 1978 .

Veo una referencia que afirma que PGP y GPG usan técnicas de iteración / estiramiento cuando protegen una clave privada almacenada en un archivo, pero nuevamente no conocen los detalles.

    
respondido por el nealmcb 12.07.2011 - 07:36
fuente

Lea otras preguntas en las etiquetas