Has evolucionado hacia la mayor parte del derecho, pero para agregar varios puntos
y expandir en @CoverosGene más de lo que me sentía cómodo haciendo en una edición:
X.509 define un certificado (y algunas otras cosas que no son relevantes aquí) en ASN.1,
Un (muy!) método general de estructuración de datos que tiene varias codificaciones definidas, de las cuales
DER La representación de codificación distinguida es bastante común y se usa aquí.
Formato
PEM - para varios tipos de datos de los cuales un certificado es solo uno -
es lo que usted dice, simplemente los datos binarios (DER) codificados en base64 (editar) divididos en líneas normalmente cada 64 caracteres (pero hay variaciones), más las líneas de encabezado y final.
consiste en guiones + BEGIN o END + el tipo de datos, en este caso CERTIFICADO + guiones.
Esas líneas parecen redundantes para un humano, pero son esperadas y en su mayoría son requeridas por el software.
PEM (Privacy Enhanced Mail) era en realidad un estándar completo para correo electrónico seguro que ahora tiene
Se ha olvidado en su mayoría (ver más abajo) excepto por su formato de codificación.
(editar) A partir de 2015 hay RFC 7468 que describe en detalle la mayoría uso de formatos 'PEM' para datos criptográficos modernos.
PKCS # 7 fue definido por RSA (la compañía, no el algoritmo) como un formato multiuso.
Para datos encriptados y / o firmados. Fue entregado a IETF y se convirtió en
Sintaxis de mensajes criptográficos de CMS enlace luego enlace luego enlace luego enlace ,
de ahí la redacción del indicador de Windows (inetopt). "PKCS # 7" se usa a menudo para referirse a ambos
El RSA PKCS # 7 original y el CMS sucesor de IETF, de la misma manera que "SSL" se usa a menudo para
tanto el protocolo original de Netscape como el sucesor de IETF TLS Transport Level Security.
El formato .p7b o .p7c es un caso especial de PKCS # 7 / CMS: una estructura SignedData que contiene
sin "contenido" y cero SignerInfos, pero uno o más certificados (generalmente) y / o CRL (raramente).
Retrocedió cuando esto proporcionó una manera estándar de manejar (editar) el conjunto de certificados necesarios para formar una cadena (no necesariamente en orden).
PKCS # 7 / CMS es (son?) también ASN.1 y, dependiendo de las circunstancias, puede ser DER o BER ,
una codificación estrechamente relacionada con algunas diferencias muy pequeñas que la mayoría de los decodificadores DER manejan.
Aunque PKCS # 7 / CMS como cualquier objeto DER o BER puede tener formato PEM, no he visto ninguna implementación que no sea
openssl (editar) es raro para los certificados. (Java CertificateFactory
puede leer PKCS7 / CMS-certs-only desde DER o PEM, pero CertPath.getEncoded
lo escribe solo en DER.) En contraste, los formatos DER y PEM para un único certificado son comunes.
PKCS # 7 / CMS también se usa como base para el correo electrónico seguro S / MIME (múltiples rfcs a partir de 5751).
Básicamente, PEM codificó PKCS # 7 en texto ASCII que los sistemas de correo electrónico de la década de 1980 podrían manejar fácilmente, mientras que
S / MIME representa CMS como entidades MIME que están codificadas en varias formas en que los sistemas de correo electrónico modernos pueden manejar.
OpenSSL asuntos confusos al implementar, en orden: un comando pkcs7 que maneja
el caso certs-CRLs only no está lleno PKCS # 7; un comando crl2pkcs7 que realmente maneja
CRLs y certificados, pero de nuevo no el resto de PKCS # 7; un comando smime que realmente maneja tanto S / MIME
y PKCS # 7 / CMS para la mayoría de los casos de mensajes cifrados y / o firmados; y un comando cms que realmente maneja
tanto S / MIME como PKCS # 7 / CMS para un conjunto de casos más completo.
Así que describiría las opciones como: un certificado en formato PEM o DER; un (solo) certificado
en un contenedor PKCS # 7 o para abreviar solo p7, y mencione PEM solo en el caso raro que se aplique;
o una cadena de certificados en PKCS # 7 o p7. La diferencia semántica entre un solo certificado y una cadena de certificados.
es al menos tan importante como la diferencia de formato entre un certificado solo o en un contenedor.
Y esto ni siquiera llega a la confusión generalizada entre un certificado por sí mismo (para alguna otra entidad, en la mayoría de los casos una raíz CA o un ancla) y la combinación del certificado PLUS de clave privada, o generalmente una cadena, que se usa para pruebe su propia identidad, por ejemplo, como un servidor SSL / TLS o al firmar un correo electrónico S / MIME. Eso utiliza el formato original de intercambio de información personal de Microsoft PFX, o su formulario estandarizado PKCS # 12 o "p12".