P12 private key vs private key file: cos'è più sicuro?

2

La domanda è un po 'complicata perché non hanno lo stesso scopo ma:

Entrambi i tipi di file affrontano lo stesso problema di sicurezza relativo alla protezione della chiave privata: la sicurezza della password? (PBKDF2 poiché entrambi vengono spesso crittografati utilizzando la crittografia basata su password)

Vorrei capire meglio le differenze tra entrambi i formati riguardo alla riservatezza della chiave privata.

    
posta crypto-learner 26.02.2015 - 19:50
fonte

1 risposta

2

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?

    
risposta data 27.02.2015 - 13:45
fonte