Articulo de referencia

PKCS 12

.p12 , .pfx "},"mime":{"wt":"application/x-pkcs12"},"released":{"wt":"{{start date|1996}}"},"standard":{"wt":""},"url":{"wt":""},"type code":{"wt":""},"uniform type":{"wt":"com....

En criptografía , PKCS #12 define un formato de archivo para almacenar varios objetos criptográficos en un solo archivo. Se utiliza comúnmente para agrupar una clave privada con su certificado X.509 o para agrupar todos los miembros de una cadena de confianza .

Un archivo PKCS #12 puede estar cifrado y firmado. Los contenedores de almacenamiento internos, denominados "SafeBags", también pueden estar cifrados y firmados. Algunos SafeBags están predefinidos para almacenar certificados, claves privadas y CRL . Se proporciona otro SafeBag para almacenar cualquier otro dato a elección del implementador. [ 2 ] [ 3 ]

PKCS #12 es uno de los estándares de la familia denominada Estándares de Criptografía de Clave Pública (PKCS) publicados por RSA Laboratories .

La extensión de archivo para los archivos PKCS #12 es .p12o .pfx. [ 4 ]

Estos archivos se pueden crear, analizar y leer con el comando OpenSSLpkcs12 . [ 5 ]

Relación con el formato de archivo PFX

PKCS #12 es el sucesor de "PFX" de Microsoft ; [ 6 ] sin embargo, los términos "archivo PKCS #12" y "archivo PFX" a veces se usan indistintamente. [ 4 ] [ 5 ] [ 7 ]

El formato PFX ha sido criticado por ser uno de los protocolos criptográficos más complejos. [ 7 ]

Uso normal

El estándar PKCS  #12 completo es muy complejo. Permite almacenar objetos complejos, como estructuras PKCS  #8 , con una estructura anidada en profundidad. Sin embargo, en la práctica, normalmente se utiliza para almacenar una única clave privada y su cadena de certificados asociada.

Los archivos PKCS  #12 generalmente se crean usando OpenSSL , que solo admite una única clave privada desde la interfaz de línea de comandos. La herramienta keytool de Java se puede usar para crear múltiples "entradas" desde Java  8, pero esto puede ser incompatible con muchos otros sistemas. [ 8 ] A partir de Java  9 (lanzado el 21/09/2017), PKCS  #12 es el formato de almacén de claves predeterminado. [ 9 ] [ 10 ]

Un formato alternativo más sencillo que PKCS  #12 es PEM , que simplemente enumera los certificados y, posiblemente, las claves privadas como cadenas Base  64 en un archivo de texto.

La herramienta certtool de GnuTLS también puede utilizarse para crear  archivos PKCS #12, incluidos certificados, claves y certificados CA, mediante la opción --to-p12 . Sin embargo, tenga en cuenta que, para garantizar la compatibilidad con otros programas, si los archivos fuente están en formato PEM Base64, también debe utilizarse la opción --outder .

Referencias

  1. "pkcs12" . Documentación para desarrolladores de Apple: Identificadores de tipo uniforme . Apple Inc. Archivado del original el 28 de mayo de 2023.
  2. "PKCS #12: Estándar de sintaxis para el intercambio de información personal" . RSA Laboratories . Archivado del original el 17 de abril de 2017. Este estándar especifica un formato portátil para almacenar o transportar las claves privadas, certificados, secretos diversos, etc., de un usuario.
  3. "PKCS 12 v1.0: Sintaxis de intercambio de información personal" (PDF) . RSA Laboratories. 24 de junio de 1999. Archivado del original (PDF) el 16 de enero de 2020. Consultado el 16 de enero de 2020 .
  4. 1 2 Michel I. Gallant (marzo de 2004). "Tipos de archivo PKCS #12: Claves protegidas portátiles en .NET" . Microsoft Corporation . Archivado del original el 6 de junio de 2023. Recuperado el 14 de marzo de 2013. Todos los sistemas operativos Windows definen las extensiones .pfx y .p12 como tipos de archivo de Intercambio de Información Personal, o PKCS #12.
  5. 1 2 "openssl-cmds: pkcs12" . Proyecto OpenSSL . 2019. Archivado del original el 6 de junio de 2023. Recuperado el 16 de enero de 2020. El comando pkcs12 permite crear y analizar archivos PKCS#12 (a veces denominados archivos PFX).
  6. Peter Gutmann (agosto de 2002). "Lecciones aprendidas en la implementación y despliegue de software criptográfico" (PDF) . The USENIX Association . Archivado (PDF) del original el 6 de junio de 2023. Recuperado el 16 de enero de 2020. En 1996 , Microsoft introdujo un nuevo formato de almacenamiento [...] llamado PFX (Personal Information Exchange) [...] que posteriormente se relanzó en una versión mejorada como PKCS #12.
  7. 1 2 Peter Gutmann (1998-03-12). "PFX - Cómo no diseñar un protocolo/estándar criptográfico" . Archivado del original el 2023-07-10 . Recuperado el 2020-01-16 .
  8. Kai Kramer (05/06/2016). "Los archivos p12 no muestran los certificados raíz y sub CA #35" . Existe un problema general cuando el formato PKCS#12, extremadamente flexible, se integra en la API del almacén de claves. [...] 2.16.840.1.113894.746875.1.1: <Etiqueta 6 no compatible>
  9. "JEP 229: Crear almacenes de claves PKCS12 por defecto" . JEPs de OpenJDK . Oracle Corporation . 30 de mayo de 2014. Archivado del original el 8 de junio de 2023.
  10. Ryan, Vincent (30 de mayo de 2014). "Error JDK-8044445: Crear almacenes de claves PKCS12 por defecto" . Sistema de errores de JDK . Archivado del original el 6 de febrero de 2023.
  • RFC 7292 - PKCS #12: Sintaxis de intercambio de información personal v1.1 
  • "PKCS #12: Estándar de sintaxis para el intercambio de información personal" . RSA Laboratories . Archivado del original el 17 de abril de 2017. Este estándar especifica un formato portátil para almacenar o transportar las claves privadas, certificados, secretos diversos, etc., de un usuario.
  • Descripción general de las capacidades, el uso, las implementaciones, la historia y el futuro de PKCS#12: Ryan Hurst y Yury Strozhevsky (2 de diciembre de 2015). "El estándar PKCS#12 necesita otra actualización" .{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace )