Quale algoritmo di crittografia viene utilizzato in certificati * .pfx / PKCS 12 protetti da password?

10

Come dice il titolo, non riesco a trovare alcuna risorsa su quale algoritmo di crittografia venga utilizzato nei certificati * .pfx / PKCS 12 protetti da password.

    
posta architekt 03.03.2017 - 09:15
fonte

3 risposte

6

Tutte le specifiche per il formato PKCS # 12 sono definite in RFC7292 .

Il breve riassunto è che un file .p12 (e presumo anche il vecchio formato PFX di Microsoft, ma non ho mai lavorato con loro) è solo un formato contenitore che specifica la struttura di questo file, ma non dice nulla su che tipo di dati dovrebbero esserci.

Per usare una pessima analogia, la specifica per il formato .xlsx di Microsoft Excel specifica la struttura di un file di salvataggio Excel, ma non ti dice nulla su quali dati o formule è consentito contenere; che è controllato da quale versione di Excel stai usando.

Se si aprisse un .p12 in un editor esadecimale, si scoprirà che uno dei campi nell'intestazione è AlgorithmIdentifier: _____ in cui il programma che ha creato .p12 registra A) quale algoritmo di crittografia è stato utilizzato per crittografare i dati, e B) quale algoritmo hash è stato utilizzato per trasformare la password in una chiave. Per quanto ne so, non esiste un elenco definitivo di ciò che è permesso qui; il programma che crea .p12 può utilizzare qualsiasi AlgorithmIdentifier che desidera, compreso il crearne uno.

Ad esempio, se scrivessi software per leggere e scrivere file .p12 protetti da password, potrei impostare AlgorithmIdentifier: AES256WithPBKDF2 e andrebbe bene. Ma potrei anche impostare AlgorithmIdentifier: MikesCipherWithCatDoodles , e fino a quando il software all'altro capo saprà cosa fare con questo, va ancora bene.

TL; DR: Il formato PKCS # 12 specifica solo la struttura del file, non elenca quali algoritmi sono legali, quindi l'algoritmo di crittografia utilizzato dipenderà dal software utilizzato per crea il file .p12 .

Se vuoi sapere quali sono gli algoritmi utilizzati per proteggere i tuoi file .p12 , consulta la documentazione sul software che stai utilizzando per leggerli / scriverli.

    
risposta data 03.03.2017 - 17:29
fonte
3

Se hai un file .pfx specifico che desideri controllare, puoi determinare quali metodi di crittografia sono stati usati usando openssl:

openssl pkcs12 -info -in cert.pfx -noout

Questo potrebbe darti:

PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048

Ciò richiede che tu conosca la password del file .pfx. Se non conosci la password, puoi ancora trovare il metodo di crittografia più esterno utilizzando:

openssl pkcs12 -info -in cert.pfx -nomacver -noout -passin pass:unknown

Questo dà, per esempio:

PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048

Questo particolare file di certificato è stato generato da openssl con parametri predefiniti e sembra che abbia:

  • Uno strato di crittografia esterno che utilizza RC2 a 40 bit con SHA-1. Il livello di crittografia esterna contiene il certificato.
  • Un livello di crittografia interno che utilizza 3DES con SHA-1. Il livello di crittografia interna contiene la chiave privata.

Penso che non sia sicuro perché un utente malintenzionato può rompere la crittografia esterna con una forza bruta facile (la crittografia a 40 bit più RC2 ha diverse vulnerabilità) e quindi utilizzare la stessa password sul livello di crittografia interno. Tuttavia, questo probabilmente richiede ulteriori indagini.

    
risposta data 12.06.2017 - 19:59
fonte
1

Come accennato in precedenza,

the PKCS#12 format only specifies the structure of the file

Quindi può essere crittografato con uno dei seguenti algoritmi, secondo lo standard:

  • 128 bit RC4 con SHA1
  • 40 bit RC4 con SHA1
  • 3 tasti 3DES con SHA1 (168 bit)
  • 2 tasti 3DES con SHA1 (112 bit)
  • 128 bit RC2 con SHA1
  • 40 bit RC2 con SHA1

Tuttavia, come già detto da Mike Ounsworth, può trattarsi anche di un algoritmo personalizzato.

    
risposta data 03.03.2017 - 15:35
fonte

Leggi altre domande sui tag