¿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.