Conceptos de sintaxis de mensajería criptográfica PKCS #7

Las funciones de mensaje CryptoAPI se adhieren al estándar de sintaxis de mensajes criptográficos (CMS)PKCS #7. Los desarrolladores deben estar familiarizados con esta especificación para usar de forma más eficaz las funciones de mensaje de bajo nivel. Aquí se resaltan algunas de sus definiciones.

El estándar PKCS #7 describe una sintaxis general para los datos que pueden tener criptografía aplicada, como firmas digitales y sobres digitales. La sintaxis admite recursividad, por lo que, por ejemplo, un sobre se puede anidar dentro de otro, o una entidad puede firmar datos digitales que ya se han colocado en un sobre. También permite autenticar atributos arbitrarios, como el tiempo de firma, junto con el contenido de un mensaje. Además, proporciona otros atributos, como las contrafirmas, que se asociarán a una firma.

El tipo de datos contenidos en un mensaje PKCS #7 se denomina tipo de contenido. Hay dos clases de tipos de contenido: Base y Mejorado.

  • Los tipos de contenido base solo contienen datos sin mejoras criptográficas. Actualmente solo hay un tipo de contenido en esta clase, el tipo de contenido de datos.
  • Los tipos de contenido mejorados contienen datos de algún tipo (posiblemente cifrados) y otras mejoras criptográficas (como hashes o firmas).

El contenido de la clase Enhanced emplea encapsulación, lo que da lugar a los términos contenido externo (el que contiene las mejoras) y el contenido interno (el que se mejora). Por ejemplo, una clase Enhanced podría contener el tipo de contenido de datos (clase Base) que tiene una firma incluida con ella. En este caso, el tipo de contenido de datos es el contenido interno y la combinación del tipo de contenido de datos y la firma forma el contenido externo.

Los tipos de contenido definidos en el estándar PKCS #7 son los siguientes.

Tipo de contenido Descripción
data Cadena de octetos (BYTE).
Datos firmados Contenido de cualquier tipo y hash de mensajes cifrados (resúmenes) del contenido de cero o más firmantes.
Datos sobres Contenido cifrado de cualquier tipo y claves de cifrado de contenido cifradas para uno o varios destinatarios. La combinación de contenido cifrado y clave de cifrado de contenido cifrado para un destinatario es un sobre digital para ese destinatario.
Datos firmados y sobres Contenido cifrado de cualquier tipo, claves de cifrado de contenido cifradas para uno o varios destinatarios, y resúmenes de mensajes cifrados doblemente para uno o varios firmantes. El cifrado doble consta de un cifrado con la clave privada de un firmante seguida de un cifrado con la clave de cifrado de contenido.
Datos implícitas Contenido de cualquier tipo y un hash de mensaje (resumen) del contenido.
Datos cifrados Contenido cifrado de cualquier tipo. A diferencia del tipo de contenido de datos sobres, el tipo de contenido de datos cifrados no tiene destinatarios ni claves de cifrado de cifrado de contenido. Se supone que las claves se administran por otros medios.

 

Nota

A lo largo de la especificación PKCS #7, los términos resumen y resumen hacen referencia al valor generado a partir de aplicar un algoritmo hash a los datos. En esta documentación se usan los términos hash y hash para el mismo propósito. Por ejemplo, el tipo de datos usado con las funciones de mensaje de bajo nivel se denomina hash en lugar de implícita. Para los fines de esta documentación, los dos conjuntos de términos se pueden usar indistintamente.