Quale derivazione della chiave basata su password utilizza PKCS # 12?

1

Vorrei prendere nota che ho letto tutto rfc 7292.

Sto tentando di decifrare la chiave privata crittografata in un file pfx # 12 pkcs.

La chiave privata è racchiusa nella busta con chiave protetta da pkcs # 8.

L'OID che precede la chiave privata crittografata rappresentata da una stringa di ottetto è

pbeWithSHAAnd3-KeyTripleDES-CBC  OBJECT IDENTIFIER ::= {pkcs-12PbeIds 3}

che prenderei per assumere che la chiave privata sia crittografata con Triple DES

CBC e il metodo di derivazione della password è pbe.

L'RFC 7292 descrive un "Metodo generale" nella sezione B.2 e B.3 e l'appendice C

chiaramente note

here, we specify a few more, all of which use the procedure detailed in Appendices B.2 and B.3 to construct keys (and IVs, where needed).  

Le istruzioni nel primo paragrafo dell'Appendice B indicano, tuttavia,

 Specifically, PBES2 should be used as encryption scheme, with PBKDF2
   as the key derivation function.

Quindi in questo file pfx, la chiave privata è crittografata con una chiave simmetrica derivata dal metodo generale descritto o è più probabile che sia crittografata da un simmetrico derivato da pbkdf2?

Inoltre, PKCS # 5 non descrive come IV deriva da PBKDF2. Dove posso trovare specificazione?

    
posta user45979 03.02.2016 - 11:08
fonte

1 risposta

1

Il primo paragrafo dell'appendice B di RFC7272, che è il paragrafo secondo in originale [RSA PKCS # 12v1.1] ( link ), consiglia di utilizzare PBES2 / PBKDF2 da PKCS # 5v2 +, ma questo è solo "dovrebbe" (nemmeno la maiuscola RFC2119 DOVREBBE) e lo schema delle appendici B e C (tutto in B nell'originale) può essere usato, e è usato dallo specifico OID che citi.

Nota RFC7292 come pubblicato ha due errori di battitura in B.2 passaggio 6 A, (solo) uno dei quali era precedentemente errata. Ho riferito questo al rfc-editor e sistemeranno l'erratum; fino ad allora dovresti usare la versione originale v1.1 (o v1). O in alternativa il codice in a implementazione funzionante e disponibile come OpenSSL (oi suoi fork) o NSS o Java.

RFC7292 C (o PKCS # 12v1 + B.4) dice

The PBES1 encryption scheme defined in PKCS #5 provides a number of algorithm identifiers for deriving keys and IVs; here, we specify a few more, all of which use the procedure detailed in Appendices B.2 and B.3 to construct keys (and IVs, where needed).

Come affermato, questi schemi derivano sia la chiave che la IV se necessario (che è per 3TDES-CBC), utilizzando diversi input "diversificatori" come descritto in B.3 e citati in B.2.

Al contrario PKCS # 5 PBES1 deriva sia la chiave che IV da una singola operazione PBKDF1, mentre PBES2 usa PBKDF2 per derivare solo la chiave; la IV se è stata scelta separatamente, e trasportati nel campo parametri di AlgorithmIdentifier per PBES2.

    
risposta data 04.02.2016 - 14:40
fonte

Leggi altre domande sui tag