¿Qué derivación de clave basada en contraseña usa PKCS # 12?

1

Me gustaría hacer una nota de que he leído todo el RFC 7292.

Estoy intentando descifrar la clave privada cifrada en un archivo pkcs # 12 pfx.

La clave privada está envuelta dentro de pkcs # 8.

El OID que precede a la clave privada cifrada representada como una cadena de octetos es

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

que asumiría que la clave privada está cifrada con Triple DES

CBC, y el método de derivación de contraseña es pbe.

RFC 7292 describe un "Método general" en la sección B.2 y B.3, y el apéndice C

notas claramente

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).  

Las instrucciones en el primer párrafo del Apéndice B dicen, sin embargo,

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

Entonces, en este archivo pfx, ¿se cifra la clave privada con una clave simétrica derivada del método general descrito o es más probable que esté cifrada por una simétrica derivada de pbkdf2?

Además, PKCS # 5 no describe cómo se deriva IV de PBKDF2. Dónde puedo encontrar especificación?

    
pregunta user45979 03.02.2016 - 11:08
fuente

1 respuesta

1

El primer párrafo del apéndice B de RFC7272, que es el párrafo segundo en el original [RSA PKCS # 12v1.1] ( enlace ), recomienda que se use PBES2 / PBKDF2 de PKCS # 5v2 +, pero esto es solo 'debería' (ni siquiera en mayúsculas RFC2119 DEBE) y el esquema de los apéndices B y C (todo en B en el original) puede ser usado, y es usado por el OID específico que usted cita.

La nota RFC7292 tal como se publicó tiene dos errores tipográficos en B.2 paso 6 A, (solo) uno de los cuales fue anteriormente errata-ed. He informado de esto al editor de rfc y ellos solucionarán el error; hasta entonces debe usar el v1.1 original (o v1). O alternativamente el código en una implementación de trabajo y disponible como OpenSSL (o sus bifurcaciones) o NSS o Java.

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

  

El esquema de cifrado PBES1 definido en PKCS # 5 proporciona una serie de      identificadores de algoritmo para derivar claves y IVs; aquí, especificamos un      Algunos más, todos los cuales utilizan el procedimiento detallado en los Apéndices B.2.      y B.3 para construir claves (y IVs, cuando sea necesario).

Como se indicó, estos esquemas derivan tanto la clave como la IV si es necesario (que es para 3TDES-CBC), utilizando diferentes entradas de 'diversificador' como se describe en B.3 y se hace referencia en B.2.

En contraste, PKCS # 5 PBES1 deriva tanto la clave como la IV de una sola operación PBKDF1, mientras que PBES2 usa PBKDF2 para derivar solo la clave; la IV si alguna se elige por separado, y transportado en el campo de parámetros del AlgorithmIdentifier para PBES2.

    
respondido por el dave_thompson_085 04.02.2016 - 14:40
fuente

Lea otras preguntas en las etiquetas