Pregunta

PKCS # 12 es una forma conveniente de agrupar una llave privada con su X correspondiente.509 certificado en un formato de archivo único estandarizado.Sin embargo, la especificación fue publicada por Rsalabs en 1999 y utiliza solo RC4, RC2 y Tripledes para el cifrado simétrico.¿Existen extensiones semi-estándar comunes al esquema que agregue más algoritmos de cifrado u otras funciones de derivación clave? openssl está documentado para implementar el soporte para AES y Camellia, pero una búsqueda de un estándar correspondiente se convierte en blanco,Así que esto parece ser algo de implementación específica para OpenSSL.¿Alguien ha documentado el módulo ASN.1 y el código pseudo para estas extensiones?

¿Fue útil?

Solución

PKCS # 12 utiliza bloques de construcción de otras normas.

El modo de cifrado recomendado se basa en el cifrado basado en la contraseña de PKCS # 5 (PBES2).Esto se ha extendido con soporte para SHA-2 y AES en pkcs # 5 v.2.1 .

Cuando OpenSSL usa AES, le gusta esto:

 684 30  806:                     SEQUENCE {
 688 30  802:                       SEQUENCE {
 692 06   11:                         OBJECT IDENTIFIER
            :                           pkcs-12-pkcs-8ShroudedKeyBag (1 2 840 113549 1 12 10 1 2)
 705 A0  723:                         [0] {
 709 30  719:                           SEQUENCE {
 713 30   73:                             SEQUENCE {
 715 06    9:                               OBJECT IDENTIFIER
            :                                 pkcs5PBES2 (1 2 840 113549 1 5 13)
 726 30   60:                               SEQUENCE {
 728 30   27:                                 SEQUENCE {
 730 06    9:                                   OBJECT IDENTIFIER
            :                                     pkcs5PBKDF2 (1 2 840 113549 1
5 12)
 741 30   14:                                   SEQUENCE {
 743 04    8:                                     OCTET STRING
            :                   BA 6B 5B B3 47 27 C9 73
 753 02    2:                                     INTEGER 2048
            :                                     }
            :                                   }
 757 30   29:                                 SEQUENCE {
 759 06    9:                                   OBJECT IDENTIFIER
            :                                     aes128-CBC (2 16 840 1 101 3 4 1 2)
 770 04   16:                                   OCTET STRING
            :                   0F 79 79 0A D3 EC C0 3E 20 B8 51 85 2F 2B 6C 29
            :                                   }
            :                                 }
            :                               }

En la medida en que puedo leer la fuente, OpenSSL codifica la contraseña como ASCII en lugar de Terminada por cero UTF-16 cuando se usa PKCS # 5 PBES2.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top