Si scopre che questa è roba piuttosto interessante.
Dal blog di Martin Kleppmann " Migliorare la sicurezza del tuo File chiave privata SSH "(pubblicato nel 2013-06-26. Archiviato qui . 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.
Quindi questo significa che non c'è molta trasformazione da password a chiave in corso. E Martin quindi consiglia di utilizzare PKCS # 8.
Ma la domanda non riguardava PKCS # 8 ma PKCS # 12.
E la RFC per PKCS # 12 dice che esiste ancora una modalità di compatibilità che funziona allo stesso modo . E dicono che dovresti invece usare 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.
Ora questo implica che sia possibile utilizzare sia i vecchi che i nuovi metodi. E il nuovo metodo è più sicuro.
Quindi in sintesi: i file PKCS # 12 sono potenzialmente più sicuri dei file PEM "BEGIN RSA PRIVATE KEY".
Ma: Quello che NON POSSO dirti è come verificherai se un determinato file PKCS # 12 ha effettivamente utilizzato il vecchio o il nuovo metodo. Forse qualche altro membro di StackExchange può eseguire il chime?