El conjunto de documentos para este producto aspira al uso de un lenguaje no discriminatorio. A los fines de esta documentación, "no discriminatorio" se refiere al lenguaje que no implica discriminación por motivos de edad, discapacidad, género, identidad de raza, identidad étnica, orientación sexual, nivel socioeconómico e interseccionalidad. Puede haber excepciones en la documentación debido al lenguaje que se encuentra ya en las interfaces de usuario del software del producto, el lenguaje utilizado en función de la documentación de la RFP o el lenguaje utilizado por un producto de terceros al que se hace referencia. Obtenga más información sobre cómo Cisco utiliza el lenguaje inclusivo.
Cisco ha traducido este documento combinando la traducción automática y los recursos humanos a fin de ofrecer a nuestros usuarios en todo el mundo contenido en su propio idioma. Tenga en cuenta que incluso la mejor traducción automática podría no ser tan precisa como la proporcionada por un traductor profesional. Cisco Systems, Inc. no asume ninguna responsabilidad por la precisión de estas traducciones y recomienda remitirse siempre al documento original escrito en inglés (insertar vínculo URL).
Este documento describe el Protocolo simple de inscripción de certificados (SCEP), que es un protocolo utilizado para las operaciones de inscripción y otras infraestructuras de clave pública (PKI).
SCEP fue desarrollado originalmente por Cisco y está documentado en un borrador de IETF (Grupo de Trabajo de Ingeniería de Internet).
Sus principales características son:
La inscripción y el uso de SCEP generalmente siguen este flujo de trabajo:
SCEP utiliza el certificado CA para asegurar el intercambio de mensajes para el CSR. Por consiguiente, es necesario obtener una copia del certificado de la CA. Se utiliza la operación GetCACert.
La solicitud se envía como una solicitud GET HTTP. Una captura de paquetes para la solicitud es similar a esta:
GET /cgi-bin/pkiclient.exe?operation=GetCACert
La respuesta es simplemente el certificado de CA con codificación binaria (X.509). El cliente necesita validar que el certificado de CA es de confianza mediante un examen de la huella dactilar/hash. Esto debe hacerse mediante un método fuera de banda (una llamada telefónica a un administrador del sistema o una configuración previa de la huella digital dentro del punto de confianza).
La solicitud de inscripción se envía como una solicitud GET HTTP. Una captura de paquetes para la solicitud es similar a esta:
/cgi-bin/pkiclient.exe?operation=PKIOperation&message=
MIIHCgYJKoZIhvcNAQcCoIIG%2BzCCBvcCAQExDjA......<snip>
La respuesta a la solicitud de inscripción SCEP es uno de los tres tipos siguientes:
Antes de la expiración del certificado, el cliente necesita obtener un nuevo certificado. Hay una ligera diferencia de comportamiento entre renovación y renovación. La renovación se produce cuando el certificado de ID del cliente se acerca a su vencimiento y su fecha de vencimiento no es la misma (anterior a) que la fecha de vencimiento del certificado de CA. La renovación se produce cuando el certificado de ID se acerca a la fecha de vencimiento y su fecha de vencimiento es la misma que la fecha de vencimiento del certificado de la CA.
A medida que se aproxima la fecha de vencimiento de un certificado de ID, un cliente SCEP puede querer obtener un nuevo certificado. El cliente genera una CSR y pasa por el proceso de inscripción (como se definió anteriormente). El certificado actual se utiliza para firmar el SignedData PKCS#7, que a su vez prueba la identidad a la CA. Tras recibir el nuevo certificado, el cliente elimina inmediatamente el certificado actual y lo reemplaza por el nuevo, cuya validez comienza inmediatamente.
Rollover es un caso especial en el que el certificado de CA caduca y se genera un nuevo certificado de CA. La CA genera un nuevo certificado de CA que se vuelve válido una vez que caduca el certificado de CA actual. La CA generalmente genera este certificado "Shadow CA" algún tiempo antes del tiempo de reversión, porque es necesario para generar certificados "Shadow ID" para los clientes.
Cuando el certificado de ID del cliente SCEP se acerca a la caducidad, el cliente SCEP consulta a la CA para el certificado "Shadow CA". Esto se hace con la operación GetNextCACert como se muestra aquí:
GET /cgi-bin/pkiclient.exe?operation=GetNextCACert
Una vez que el cliente SCEP tiene el certificado "Shadow CA", solicita un certificado "Shadow ID" después del procedimiento de inscripción normal. La CA firma el certificado "Shadow ID" con el certificado "Shadow CA". A diferencia de una solicitud de renovación normal, el certificado "Shadow ID" que se devuelve pasa a ser válido en el momento del vencimiento del certificado de CA (renovación). Como resultado, el cliente necesita guardar una copia de los certificados anteriores y posteriores a la renovación tanto para el certificado de CA como para el certificado de ID. En el momento del vencimiento de CA (renovación), el cliente SCEP elimina el certificado de CA y el certificado de ID actuales y los reemplaza por las copias "Shadow".
Esta estructura se utiliza como bloques de creación de SCEP.
Nota: PKCS#7 y PKCS#10 no son específicos de SCEP.
PKCS#7 es un formato de datos definido que permite firmar o cifrar datos. El formato de datos incluye los datos originales y los metadatos asociados necesarios para realizar la operación criptográfica.
El sobre firmado es un formato que transporta datos y confirma que los datos encapsulados no se modifican en tránsito a través de firmas digitales. Incluye esta información:
SignedData ::= SEQUENCE {
version CMSVersion,
digestAlgorithms DigestAlgorithmIdentifiers,
encapContentInfo EncapsulatedContentInfo,
certificates [0] IMPLICIT CertificateSet OPTIONAL,
crls [1] IMPLICIT RevocationInfoChoices OPTIONAL,
signerInfos SignerInfos }
Los datos encapsulados no están cifrados ni ofuscados. Este formato simplemente proporciona protección contra el mensaje que se modifica.
El formato de datos envueltos lleva los datos cifrados y sólo los destinatarios especificados pueden descifrarlos. Incluye esta información:
EnvelopedData ::= SEQUENCE {
version CMSVersion,
originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
recipientInfos RecipientInfos,
encryptedContentInfo EncryptedContentInfo,
unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL }
PKCS#10 describe el formato de una CSR. Una CSR contiene la información que los clientes solicitan que se incluya en sus certificados:
Este es un ejemplo de una RSE:
Certificate Request:
Data:
Version: 0 (0x0)
Subject: CN=scepclient
Subject Public Key Info:
Public Key Algorithm: rsaEncryption Public-Key: (1024 bit)
Modulus:
00:cd:46:5b:e2:13:f9:bf:14:11:25:6d:ff:2f:43:
64:75:89:77:f6:8a:98:46:97:13:ca:50:83:bb:10:
cf:73:a4:bc:c1:b0:4b:5c:8b:58:25:38:d1:19:00:
a2:35:73:ef:9e:30:72:27:02:b1:64:41:f8:f6:94:
7b:90:c4:04:28:a1:02:c2:20:a2:14:da:b6:42:6f:
e6:cb:bb:33:c4:a3:64:de:4b:3a:7d:4c:a0:d4:e1:
b8:d8:71:cc:c7:59:89:88:43:24:f1:a4:56:66:3f:
10:25:41:69:af:e0:e2:b8:c8:a4:22:89:55:e1:cb:
00:95:31:3f:af:51:3f:53:ad
Exponent: 65537 (0x10001)
Attributes:
challengePassword :
Requested Extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Subject Alternative Name:
DNS:webserver.example.com
Signature Algorithm: sha1WithRSAEncryption
8c:d6:4c:52:4e:c0:d0:28:ca:cf:dc:c1:67:93:aa:4a:93:d0:
d1:92:d9:66:d0:99:f5:ad:b4:79:a5:da:2d:6a:f0:39:63:8f:
e4:02:b9:bb:39:9d:a0:7a:6e:77:bf:d2:49:22:08:e2:dc:67:
ea:59:45:8f:77:45:60:62:67:64:1d:fe:c7:d6:a0:c3:06:85:
e8:f8:11:54:c5:94:9e:fd:42:69:be:e6:73:40:dc:11:a5:9a:
f5:18:a0:47:33:65:22:d3:45:9f:f0:fd:1d:f4:6f:38:75:c7:
a6:8b:3a:33:07:09:12:f3:f1:af:ba:b7:cf:a6:af:67:cf:47: 60:fc
Las solicitudes se envían con un HTTP GET del formulario :
GET CGI-path/pkiclient.exe?operation=operation&message=message HTTP/version
Where:
Con el método GET, la parte del mensaje es texto sin formato o PKCS#7 codificado por reglas de codificación distinguidas (DER) convertido en Base64. Si se admite el método POST, el contenido que se enviaría en codificación Base64 con GET podría enviarse en formato binario con POST en su lugar.
Valores posibles para las operaciones y sus valores de mensaje asociados:
operación PKIO
:
Las respuestas SCEP se devuelven como contenido HTTP estándar, con un tipo de contenido que depende de la solicitud original y del tipo de datos devueltos. El contenido DER se devuelve como binario (no en Base64 como para la solicitud). El contenido PKCS#7 puede o no contener datos cifrados/firmados; si no lo hace (sólo contiene un conjunto de certificados), se denomina degenerado PKCS#7.
Valores posibles para Content-Type:
application/x-pki-message:
application/x-x509-ca-cert:
application/x-x509-ca-ra-cert:
application/x-x509-next-ca-cert:
2.16.840.1.113733.1.9.2 scep-messageType
2.16.840.1.113733.1.9.3 scep-pkiStatus
2.16.840.1.113733.1.9.4 scep-failInfo
2.16.840.1.113733.1.9.5 scep-senderNonce
2.16.840.1.113733.1.9.6 scep-recipientNonce
2.16.840.1.113733.1.9.7 scep-transId
2.16.840.1.113733.1.9.8 scep-extensionReq