Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
Ce document décrit le protocole SCEP (Simple Certificate Enrollment Protocol), qui est un protocole utilisé pour l'inscription et d'autres opérations PKI (Public Key Infrastructure).
Le SCEP a été développé à l'origine par Cisco et est documenté dans une ébauche de l'IETF (Internet Engineering Task Force).
Ses principales caractéristiques sont les suivantes :
L'inscription et l'utilisation du SCEP suivent généralement ce processus :
Le SCEP utilise le certificat d'autorité de certification afin de sécuriser l'échange de messages pour le CSR. Par conséquent, il est nécessaire d'obtenir une copie du certificat d'AC. L'opération GetCACert est utilisée.
La requête est envoyée en tant que requête HTTP GET. Une capture de paquets pour la requête ressemble à ceci :
GET /cgi-bin/pkiclient.exe?operation=GetCACert
La réponse est simplement le certificat CA codé en binaire (X.509). Le client doit valider que le certificat de l'autorité de certification est approuvé par un examen de l'empreinte digitale/hachage. Pour ce faire, vous devez utiliser une méthode hors bande (appel téléphonique à un administrateur système ou préconfiguration de l'empreinte digitale au sein du point de confiance).
La demande d'inscription est envoyée en tant que requête HTTP GET. Une capture de paquets pour la requête ressemble à ceci :
/cgi-bin/pkiclient.exe?operation=PKIOperation&message=
MIIHCgYJKoZIhvcNAQcCoIIG%2BzCCBvcCAQExDjA......<snip>
La réponse à la demande d'inscription SCEP est de trois types :
Avant l'expiration du certificat, le client doit obtenir un nouveau certificat. Il y a une légère différence de comportement entre le renouvellement et le roulement. Le renouvellement se produit lorsque le certificat d'ID du client approche l'expiration et que sa date d'expiration n'est pas identique (antérieure) à la date d'expiration du certificat de l'autorité de certification. Le survol se produit lorsque le certificat d'ID approche de l'expiration et que sa date d'expiration est identique à la date d'expiration du certificat de l'Autorité de certification.
À l'approche de la date d'expiration d'un certificat d'ID, un client SCEP peut vouloir obtenir un nouveau certificat. Le client génère un CSR et passe par le processus d'inscription (tel que défini précédemment). Le certificat actuel est utilisé afin de signer le PKCS 7 SignedData, qui à son tour prouve l'identité de l'autorité de certification. Dès réception du nouveau certificat, le client supprime immédiatement le certificat actuel et le remplace par le nouveau, dont la validité commence immédiatement.
Le renvoi est un cas particulier où le certificat d'autorité de certification expire et un nouveau certificat d'autorité de certification est généré. L'autorité de certification génère un nouveau certificat d'autorité de certification qui devient valide une fois que le certificat d'autorité de certification actuel expire. L'autorité de certification génère généralement ce certificat d'« autorité de certification fantôme » un certain temps avant le temps de transfert, car il est nécessaire pour générer des certificats d'« identification fantôme » pour les clients.
Lorsque le certificat d'ID du client SCEP approche de l'expiration, le client SCEP demande à l'autorité de certification le certificat d'« autorité de certification fantôme ». Cela se fait avec l'opération GetNextCACert comme indiqué ici :
GET /cgi-bin/pkiclient.exe?operation=GetNextCACert
Une fois que le client SCEP a le certificat « Shadow CA », il demande un certificat « Shadow ID » après la procédure d'inscription normale. L'autorité de certification signe le certificat « Shadow ID » avec le certificat « Shadow CA ». Contrairement à une demande de renouvellement normale, le certificat « ID d'ombre » retourné devient valide au moment de l'expiration du certificat de l'autorité de certification (inversement). Par conséquent, le client doit conserver une copie des certificats pré- et post-renversement pour l'AC et le certificat d'ID. Au moment de l'expiration de l'autorité de certification (inversement), le client SCEP supprime le certificat et l'ID de l'autorité de certification actuels et les remplace par les copies « fantômes ».
Cette structure est utilisée comme éléments de base du SCEP.
Note: PKCS#7 et PKCS#10 ne sont pas spécifiques à SCEP.
PKCS#7 est un format de données défini qui permet de signer ou de chiffrer des données. Le format des données inclut les données d'origine et les métadonnées associées nécessaires pour effectuer l'opération de cryptographie.
L'enveloppe signée est un format qui transporte les données et confirme que les données encapsulées ne sont pas modifiées en transit par le biais de signatures numériques. Elle comprend ces informations :
SignedData ::= SEQUENCE {
version CMSVersion,
digestAlgorithms DigestAlgorithmIdentifiers,
encapContentInfo EncapsulatedContentInfo,
certificates [0] IMPLICIT CertificateSet OPTIONAL,
crls [1] IMPLICIT RevocationInfoChoices OPTIONAL,
signerInfos SignerInfos }
Les données encapsulées ne sont ni chiffrées ni masquées. Ce format offre simplement une protection contre le message modifié.
Le format Données enveloppées transporte des données chiffrées et ne peuvent être décryptées que par le ou les destinataires spécifiés. Elle comprend ces informations :
EnvelopedData ::= SEQUENCE {
version CMSVersion,
originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
recipientInfos RecipientInfos,
encryptedContentInfo EncryptedContentInfo,
unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL }
PKCS#10 décrit le format d'une CSR. Une RSE contient les informations que les clients demandent à être incluses dans leurs certificats :
Voici un exemple de 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
Les requêtes sont envoyées avec un HTTP GET du formulaire :
GET CGI-path/pkiclient.exe?operation=operation&message=message HTTP/version
Where:
Avec la méthode GET, la partie du message est soit du texte brut, soit du PKCS#7 codé par des règles de codage différencié (DER) converti en Base64. Si la méthode POST est prise en charge, le contenu qui serait envoyé en codage Base64 avec GET peut être envoyé au format binaire avec POST à la place.
Valeurs possibles pour les opérations et leurs valeurs de message associées :
opération PKIO
:
Les réponses SCEP sont retournées sous forme de contenu HTTP standard, avec un type de contenu qui dépend de la requête d'origine et du type de données retournées. Le contenu DER est retourné sous forme binaire (pas dans Base64 comme pour la requête). Le contenu PKCS#7 peut contenir ou non des données enveloppées cryptées/signées ; s'il ne contient pas (contient uniquement un ensemble de certificats), il est appelé PKCS#7 dégénéré.
Valeurs possibles pour 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