PKCS # 10: Sintaxis de solicitud de certificación

Versión 1.5

Este memo proporciona información para la comunidad de Internet. Lo hace no especificar un estándar de Internet de ningún tipo. Distribución de este la nota es ilimitada.

Aviso de copyright

Copyright (C) The Internet Society (1998). Todos los derechos reservados.

Este documento describe una sintaxis para las solicitudes de certificación.

  1. Alcance

Una solicitud de certificación consta de un nombre distinguido, una clave, y opcionalmente un conjunto de atributos, firmados colectivamente por la entidad que solicita la certificación. Las solicitudes de certificación se envían a autoridad de certificación, que transforma la solicitud en un X.509 certificado de clave pública o un certificado extendido PKCS # 6. (El cómo se devuelve la autorización de certificación está fuera del alcance de este documento. Un mensaje PKCS # 7 es una posibilidad.)

La intención de incluir un conjunto de atributos es doble: proporcionar otra información sobre una entidad determinada, como la dirección postal a que el certificado firmado debe ser devuelto si el correo electrónico no está disponible, o una «contraseña de desafío» mediante la cual la entidad puede solicitar posteriormente la revocación del certificado; y proporcionar atributos para un Certificado extendido PKCS # 6. Una lista no exhaustiva de atributos es dada en PKCS # 9.

Las autoridades de certificación también pueden exigir formas no electrónicas de solicitud y puede devolver respuestas no electrónicas. Se espera que las descripciones de dichos formularios, que están fuera del alcance de este documento, estarán disponibles en la autoridad de certificación.

La aplicación preliminar prevista de este documento es apoyar mensajes criptográficos PKCS # 7, pero se espera que otros desarrollarán aplicaciones.

  1. Referencias

PKCS # 1 RSA Laboratorios. PKCS # 1: cifrado RSA Estándar. Versión 1.5, noviembre de 1993.

PKCS # 6 RSA Laboratorios. PKCS # 6: Certificado extendido Sintaxis. Versión 1.5, noviembre de 1993.

PKCS # 7 RSA Laboratories. PKCS # 7: Mensaje criptográfico Sintaxis. Versión 1.5, noviembre de 1993.

PKCS # 9 RSA Laboratories. PKCS # 9: Atributo seleccionado Tipos. Versión 1.1, noviembre de 1993.

RFC 1424 Kaliski, B., «Mejora de la privacidad para Correo electrónico de Internet: Parte IV: Clave Certificación y servicios relacionados, «RFC 1424, Febrero de 1993.

X.208 CCITT. Recomendación X.208: Especificación de Notación de sintaxis abstracta uno (ASN.1). 1988.

X.209 CCITT. Recomendación X.209: Especificación de Reglas de codificación básicas para la notación de sintaxis abstracta Uno (ASN.1). 1988.

X.500 CCITT. Recomendación X.500: El directorio: Resumen de conceptos, modelos y Servicios. 1988.

X.501 CCITT. Recomendación X.501: El directorio: Modelos. 1988.

X.509 CCITT. Recomendación X.509: El directorio: Marco de autenticación. 1988.

  1. Definiciones 

Para los propósitos de este documento, se aplican las siguientes definiciones.

Identificador de algoritmo: un tipo que identifica un algoritmo (por objeto identificador) y cualquier parámetro asociado. Este tipo se define en X.509.

Atributo: un tipo que contiene un tipo de atributo (especificado por identificador de objeto) y uno o más valores de atributo. Este tipo es definido en X.501.

ASN.1: Notación de sintaxis abstracta uno, como se define en X.208.

BER: Reglas de codificación básicas, como se define en X.209.

Certificado: un tipo que vincula el nombre distinguido de una entidad a una clave pública con firma digital. Este tipo se define en X.509. Este tipo también contiene el nombre distinguido del certificado.

Emisor (el firmante), un número de serie específico del emisor, el identificador del algoritmo de firma y un período de validez.

DER: Reglas de codificación distinguidas para ASN.1, como se define en X.509, Sección 8.7.

 

Nombre: un tipo que identifica o «distingue» de forma exclusiva los objetos en un Directorio X.500. Este tipo se define en X.501. En un X.509 certificado, el tipo identifica al emisor del certificado y el entidad cuya clave pública está certificada.

 

  1. Símbolos y abreviaturas.

En este documento no se definen símbolos ni abreviaturas.

  1. Panorama general.

La siguiente sección especifica la sintaxis de la solicitud de certificación. Este documento exporta un tipo, requerimiento de certificación.

  1. Sintaxis de la solicitud de certificación.

Esta sección proporciona la sintaxis de las solicitudes de certificación.

Una solicitud de certificación consta de tres partes: «solicitud de información de la certificación», un identificador de algoritmo de firma y una firma en la información de la solicitud de certificación. La certificación. La solicitud de información de la certificación consiste en la distinción del nombre de la entidad, la clave pública de la entidad y un conjunto de atributos que proporcionan otros sobre la entidad.

El proceso mediante el cual se construye una solicitud de certificación implica los siguientes pasos:

  1. Un valor de solicitud de información de certificación contiene una distinción del nombre, una clave pública y, opcionalmente, un conjunto de atributos construidos por una entidad.
  1. El valor está firmado con la clave privada de la entidad.
  1. El valor, una firma, el identificador del algoritmo y la firma de la entidad son recopilados así

Una autoridad de certificación cumple con la solicitud verificando la la firma de la entidad y, si es válida, se crea un certificado X.509 y la clave pública, así como un nombre del emisor, número de serie, período de validez y algoritmo de firma de la elección de la autoridad de certificación. Si la solicitud de certificación contiene un atributo de atributos de certificado extendido PKCS # 9, la autoridad de certificación también construye un PKCS # 6 extendido del certificado X.509.

Cómo la autoridad de certificación devuelve el nuevo certificado está fuera del alcance de este documento. Una posibilidad es un PKCS # 7mensaje criptográfico con el tipo de contenido firmado Data, siguiendo el caso donde no hay firmantes. El mensaje de respuesta puede  incluir una ruta de certificación desde el nuevo certificado hasta la autoridad de certificación. También puede incluir otros certificados como certificados cruzados que la autoridad de certificación considera útil, y puede incluir listas de revocación de certificados (CRL). Otra posibilidad es que la autoridad de certificación inserte el nuevo certificado en una base de datos central.

Esta sección está dividida en dos partes. La primera parte describe el tipo de información de solicitud de información de certificación y la segunda parte describe el tipo de solicitud de certificación de nivel superior.

Notas.

  1. Una entidad normalmente enviaría una solicitud de certificación después de generar una clave pública / clave privada, pero también puede hacerlo después de un cambio en la distinción del nombre.
  2. La firma en la solicitud de certificación evita que una entidad solicite un certificado con la clave pública de otra parte. Tal ataque le daría a la entidad la capacidad menor de pretender ser el creador de cualquier mensaje firmado por la otra parte. Este ataque es significativo solo si la entidad no conoce el mensaje firmado, y la parte firmada del mensaje no identifica al firmante. La entidad aún no podría desencriptar mensajes destinados a la otra parte, por supuesto.
  3. Cómo envía la entidad la solicitud de certificación a una autoridad de certificación está fuera del alcance de este documento. Son posibles tanto formularios en papel como electrónicos.
  4. Este documento no es compatible con sintaxis de solicitud de certificación para correo con privacidad mejorada, como se describe en RFC 1424. La sintaxis en este documento difiere en tres aspectos: permite un conjunto de atributos; lo hace no incluir el nombre del emisor, el número de serie o el período de validez; y no requiere un mensaje «inocuo» para ser firmado. La sintaxis de este documento está diseñada para minimizar tamaño de la solicitud, una limitación importante para las autoridades de certificación que aceptan solicitudes en papel.

 

6.1 Solicitud de información de certificado

La información de la solicitud de certificación debe tener el tipo ASN.1

= SEQUENCE {

versión Versión,

nombre del tema,

subjectPublicKeyInfo SubjectPublicKeyInfo,

atributos [0] Atributos IMPLICIT}

Versión :: = INTEGER

Atributos :: = CONJUNTO DE Atributo

Los campos tienen lo siguiente significados:

  • versión es el número de versión, por compatibilidad con futuras revisiones de este documento. Será 0 para esta versión del documento.
  • sujeto es la distinción el nombre del certificado (la entidad cuya clave pública será certificada).
  • La clave pública contiene información sobre la clave pública se certifica. La información identifica el algoritmo de clave pública de la entidad (y cualquier parámetro asociado); ejemplos de algoritmos de clave pública incluyen Rsa de X.509 y rsaEncryption de PKCS # 1. La información también incluye una representación de cadena de bits de la llave pública de la entidad. Para los dos algoritmos de clave pública que acabamos de mencionar, la cadena de bits contiene la codificación BER de un valor de X.509 / PKCS # 1 tipo llave pública RSA
  • atributos es un conjunto de atributos que proporcionan información adicional sobre el tema del certificado. Algunos tipos de atributos que pueden resultar útiles aquí se definen en PKCS # 9. Un ejemplo es el desafío: atributo de contraseña, que especifica una contraseña mediante la cual la entidad puede solicitar la revocación del certificado. Otro ejemplo es el atributo de certificado extendido, que especifica atributos para un PKCS # 6 extendido

6.2 Solicitud de certificación

Una solicitud de certificación deberá tener el tipo ASN.1

= SECUENCIA {

certificationRequestInfo CertificationRequestInfo,

signatureAlgorithm SignatureAlgorithmIdentifier,

firma Firma}

SignatureAlgorithmIdentifier :: = AlgorithmIdentifier

Firma :: = BIT STRING

Los campos tienen los siguientes significados:

  • «solicitar información de certificación». Es el valor firmado.
  • La firma del algoritmo identifica la firma de algoritmo (y cualquier parámetro asociado) en cuál es la información de solicitud de certificación. Los ejemplos incluyen PKCS #1 md2WithRSAEncryption y md5WithRSAEncryption.
  • la firma es el resultado de la firma de la solicitud de certificación con la clave privada del sujeto de la solicitud de certificación. El proceso de firma consta de dos pasos:
  1. El valor del campo es DER codificado, produciendo una cadena de octetos.
  • El resultado del paso 1 se firma con la solicitud de certificación, la clave privada del sujeto bajo el algoritmo de firma especificado, produciendo en cadena la firma.

 

Nota. La sintaxis de la solicitud del certificado podría ser de forma equivalente escrita con la macro X.509 SIGNED:

CertificationRequest :: = FIRMADO CertificateRequestInf

Consideraciones de Seguridad

Los problemas de seguridad se tratan a lo largo de este memo.

Revisión histórica

Versión 1.0

La versión 1.0 es la versión inicial.

Agradecimientos

Este documento se basa en una contribución de RSA Laboratories, una división de RSA Data Security, Inc. Cualquier uso sustancial del texto de este documento debe reconocer RSA Data Security, Inc. RSA Data Security, Inc. solicita que todo el material que mencione o haga referencia este documento lo identifica como «RSA Data Security, Inc. PKCS # 10».

Dirección del autor

Burt Kaliski

Laboratorios RSA Este

20 Crosby Drive

Bedford, MA 01730

Teléfono: (617) 687-7000

Correo electrónico: [email protected]