En criptografía , PKCS # 12 define un formato de archivo de almacenamiento para almacenar muchos objetos de criptografía como un solo archivo. Se utiliza comúnmente para agrupar una clave privada con su certificado X.509 o para agrupar a todos los miembros de una cadena de confianza .
Extensión de nombre de archivo | .p12 , .pfx |
---|---|
Tipo de medio de Internet | aplicación / x-pkcs12 |
Identificador de tipo uniforme (UTI) | 0 |
Desarrollado por | Seguridad RSA |
Versión inicial | 1996 |
Último lanzamiento | PKCS # 12 v1.1 (27 de octubre de 2012 ) |
Tipo de formato | Formato de archivo de archivo |
Contenedor para | Certificados de clave pública X.509 , claves privadas X.509 , CRL X.509 , datos genéricos |
Extendido desde | Formato de archivo Microsoft PFX |
Un archivo PKCS # 12 puede estar cifrado y firmado. Los contenedores de almacenamiento interno, llamados "SafeBags", también pueden estar cifrados y firmados. Algunas SafeBags están predefinidas para almacenar certificados, claves privadas y CRL . Se proporciona otra SafeBag para almacenar cualquier otro dato a elección del implementador individual. [1] [2]
PKCS # 12 pertenece a la familia de estándares denominados Estándares de criptografía de clave pública (PKCS) publicados por RSA Laboratories .
La extensión del nombre de archivo para los archivos PKCS # 12 es .p12
o .pfx
. [3]
Estos archivos se pueden crear, analizar y leer con el comando OpenSSL pkcs12
. [4]
Relación con el formato de archivo PFX
PKCS # 12 es el sucesor de "PFX" de Microsoft ; [5] sin embargo, los términos "archivo PKCS # 12" y "archivo PFX" a veces se usan indistintamente. [3] [4] [6]
El formato PFX ha sido criticado por ser uno de los protocolos criptográficos más complejos. [6]
Uso normal
El estándar PKCS # 12 completo es muy complejo. Permite depósitos de objetos complejos, como estructuras PKCS # 8 , anidados profundamente. Pero en la práctica, normalmente se usa para almacenar solo una 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 de claves de Java se puede utilizar para crear múltiples "entradas" desde Java 8, pero eso puede ser incompatible con muchos otros sistemas. A partir de Java 9, PKCS # 12 es el formato de almacén de claves predeterminado. [7] [8]
Un formato alternativo más simple a PKCS # 12 es PEM, que solo enumera los certificados y posiblemente las claves privadas como cadenas de Base 64 en un archivo de texto.
La herramienta de certificación de GnuTLS también se puede utilizar para crear archivos PKCS # 12, incluidos certificados, claves y certificados de CA a través de --to-p12 . Sin embargo, tenga en cuenta que para la intercambiabilidad con otro software, si las fuentes están en texto PEM Base64, también se debe usar --outder .
Referencias
- ^ "PKCS # 12: estándar de sintaxis de intercambio de información personal" . Laboratorios RSA . Archivado desde el original el 17 de abril de 2017.
Este estándar especifica un formato portátil para almacenar o transportar claves privadas, certificados, secretos varios, etc. de un usuario.
- ^ "PKCS 12 v1.0: Sintaxis de intercambio de información personal" (PDF) . Laboratorios RSA. 1999-06-24 . Consultado el 16 de enero de 2020 .
- ^ a b Michel I. Gallant (marzo de 2004). "Tipos de archivo PKCS # 12: claves protegidas portátiles en .NET" . Microsoft Corporation . Consultado 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.
- ^ a b "openssl-cmds: pkcs12" . Proyecto OpenSSL . 2019 . Consultado el 16 de enero de 2020 .
El comando pkcs12 permite crear y analizar archivos PKCS # 12 (a veces denominados archivos PFX).
- ^ Peter Gutmann (agosto de 2002). "Lecciones aprendidas en la implementación e implementación de software criptográfico" (PDF) . La Asociación USENIX . Consultado el 16 de enero de 2020 .
En 1996, Microsoft introdujo un nuevo formato de almacenamiento [...] llamado PFX (Intercambio de información personal) [...] que luego fue relanzado en una forma limpia como PKCS # 12
- ^ a b Peter Gutmann (12 de marzo de 1998). "PFX - Cómo no diseñar un protocolo / estándar de cifrado" . Consultado el 16 de enero de 2020 .
- ^ "JEP 229: Crear almacenes de claves PKCS12 por defecto" . JEP de OpenJDK . Oracle Corporation . 2014-05-30.
- ^ Ryan, Vincent (30 de mayo de 2014). "Error JDK-8044445: Crear almacenes de claves PKCS12 por defecto" . Sistema de errores JDK .
enlaces externos
- RFC 7292 - PKCS # 12: Sintaxis de intercambio de información personal v1.1
- "PKCS # 12: Estándar de sintaxis de intercambio de información personal" . Laboratorios RSA . Archivado desde el original el 17 de abril de 2017.
Este estándar especifica un formato portátil para almacenar o transportar claves privadas, certificados, secretos varios, etc. de un usuario.
- Descripción general sobre las capacidades, el uso, las implementaciones, el historial 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" . Archivado desde el original el 3 de marzo de 2017.