P12 clave privada vs archivo de clave privada: ¿qué es más seguro?

2

La pregunta es un poco difícil porque no tienen el mismo propósito, pero:

¿Ambos tipos de archivos enfrentan el mismo problema de seguridad relacionado con la protección de claves privadas: la seguridad de la contraseña? (PBKDF2, ya que ambos a menudo se cifran utilizando un cifrado basado en contraseña)

Me gustaría entender mejor las diferencias entre los dos formatos relacionados con la confidencialidad de la clave privada.

    
pregunta crypto-learner 26.02.2015 - 19:50
fuente

1 respuesta

2

Resulta que esto es algo muy interesante.

Del blog de Martin Kleppmann " Mejorando la seguridad de su Archivos de clave privada SSH "(Publicado el 2013-06-26. Archivado aquí . HackerNews'd here ):

But how do you get from the passphrase to the AES encryption key? 
I couldn’t find it documented anywhere, so I had to dig through 
the OpenSSL source to find it:

1. Append the first 8 bytes of the IV to the passphrase, without 
   a separator (serves as a salt).
2. Take the MD5 hash of the resulting string (once).

That’s it.

Esto significa que no hay mucha transformación de contraseña a clave en marcha. Y Martin luego recomienda usar PKCS # 8 en su lugar.

Pero la pregunta no era sobre PKCS # 8 sino sobre PKCS # 12.

Y el RFC para PKCS # 12 dice que todavía hay un modo de compatibilidad que funciona de manera similar . Y dicen que debes usar PBKDF2.

Appendix B.  Deriving Keys and IVs from Passwords and Salt

   Note that this method for password privacy mode is not recommended
   and is deprecated for new usage.  The procedures and algorithms
   defined in PKCS #5 v2.1 [13] [22] should be used instead.
   Specifically, PBES2 should be used as encryption scheme, with PBKDF2
   as the key derivation function.

Ahora, esto implica que se pueden usar métodos antiguos y nuevos. Y el nuevo método es más seguro.

En resumen: los archivos PKCS # 12 son potencialmente más seguros que los archivos PEM "BEGIN RSA PRIVATE KEY".

Pero: Lo que NO PUEDO decirle es cómo descubriría si un archivo PKCS # 12 determinado haya utilizado el método antiguo o el nuevo. Tal vez algún otro miembro de StackExchange pueda participar?

    
respondido por el StackzOfZtuff 27.02.2015 - 13:45
fuente