Articulo de referencia

PKCS 7

.p7b , .p7s , .p7m , .p7c , .p7r "},"mime":{"wt":""},"released":{"wt":""},"standard":{"wt":""},"url":{"wt":""},"type code":{"wt":""},"uniform type":{"wt":""},"owner":{"wt":"[[RS...

En criptografía , PKCS #7 ("PKCS #7: Sintaxis de Mensajes Criptográficos", "CMS") es una sintaxis estándar para almacenar datos firmados y/o cifrados. PKCS #7 forma parte de la familia de estándares denominada Estándares de Criptografía de Clave Pública ( PKCS ), creada por RSA Laboratories .

Estándar

La última versión, 1.5, está disponible como RFC 2315. [ 1 ]

Una actualización de PKCS #7 se describe en RFC 2630, [ 2 ] que fue reemplazada a su vez por RFC 3369, [ 3 ] RFC 3852 [ 4 ] y luego por RFC 5652. [ 5 ]

Los archivos PKCS #7 pueden almacenarse tanto en formato DER sin procesar como en formato PEM . El formato PEM es igual que el formato DER, pero envuelto en codificación Base64 y colocado entre INICIO  PKCS7 y FIN  PKCS7 Windows utiliza la .p7bextensión de nombre de archivo [ 6 ] para ambas codificaciones.

Un uso típico de un archivo PKCS #7 sería almacenar certificados y/o listas de revocación de certificados (CRL).

Aquí tienes un ejemplo de cómo descargar primero un certificado, luego encapsularlo en un archivo PKCS #7 y, a continuación, leer desde ese archivo:

$ echo '' | openssl s_client -connect example.org:443 -host example.org 2 >/dev/null | openssl x509 > example.org.cer 2 >/dev/null$ openssl crl2pkcs7 -nocrl -certfile example.org.cer -out example.org.cer.pem.p7b $ openssl pkcs7 -in example.org.cer.pem.p7b -noout -print_certs subject=C = US, ST = California, L = Los Angeles, O = Internet Corporation for Assigned Names and Numbers, OU = Technology, CN = www.example.org issuer=C = US, O = DigiCert Inc, CN = DigiCert SHA2 Secure Server CA

Tipos de archivo

  • .p7r– Respuesta a la solicitud de servicio al cliente (CSR). Contiene el certificado recién firmado y el certificado de la propia CA.
  • .p7sFirma digital. Puede contener el archivo o mensaje original firmado. Se utiliza en S/MIME para la firma de correo electrónico. Se define en la RFC 2311.
  • .p7m– Mensaje (SignedData, EnvelopedData), por ejemplo, archivo cifrado ("enveloped"), mensaje o correo electrónico MIME. Definido en RFC 2311.
  • .p7c– Estructura SignedData degenerada "solo certificados", sin datos para firmar. Definida en RFC 2311.
  • .p7b– Estructura SignedData sin datos, solo paquete de certificado(s) y/o CRL (rara vez) pero no una clave privada. Utiliza el formato DER o BER o PEM que comienza con -----BEGIN PKCS7-----. El formato utilizado por Windows para el intercambio de certificados. Compatible con Java pero a menudo tiene .keystorecomo extensión. A diferencia de .pemlos certificados de estilo, este formato tiene una forma definida de incluir certificados de ruta de certificación.

Referencias

  1. RFC 2315 – Estándares de criptografía de clave pública (PKCS) n.° 7: Especificación de la sintaxis de mensajes criptográficos, versión 1.5, marzo de 1998 
  2. RFC 2630 – Sintaxis de mensajes criptográficos, junio de 1999 
  3. RFC 3369 – Sintaxis de mensajes criptográficos (CMS), agosto de 2002 
  4. RFC 3852 – Sintaxis de mensajes criptográficos (CMS), julio de 2004 
  5. RFC 5652 – Sintaxis de mensajes criptográficos (CMS), septiembre de 2009 
  6. "Extensión .p7b: lista de programas de Windows que pueden abrir archivos .p7b" .
  • Página de manual para openssl-pkcs7