Intermédiaires
Les intermédiaires communiquent avec les applications clientes pour leur permettre d’envoyer des demandes de certificat et (en supposant que la demande aboutit à un certificat émis) de télécharger le certificat émis pour le client. Chaque protocole de couche de transport nécessite son propre intermédiaire.
Microsoft Certificate Services est fourni avec un intermédiaire (les pages d’inscription web) pour HTTP. Un autre exemple d’intermédiaire est le composant logiciel enfichable MMC Certificats Microsoft Windows (qui permet d’appeler l’Assistant Demande de certificat). Si d’autres protocoles de couche de transport doivent être utilisés avec les services de certificats, un développeur peut créer un intermédiaire pour chaque protocole de couche de transport souhaité.
Les intermédiaires communiquent avec les services de certificats à l’aide des interfaces ICertRequest et ICertConfig fournies par le moteur de serveur. La méthode ICertRequest::Submit est utilisée pour envoyer une demande de certificat, et ICertRequest::GetCertificate est utilisé pour obtenir le certificat émis résultant. De même, ICertConfig::GetConfig est utilisé pour déterminer quelle autorité de certification peut être utilisée pour émettre le certificat.
Un intermédiaire n’est pas dépendant de la langue. Il peut s’agir d’un programme écrit en C++, Visual Basic, Java, script ou un autre langage.
En plus de collecter des données à partir du client pour générer une demande de certificat, un intermédiaire peut spécifier des attributs de requête. Les demandes envoyées à une autorité de certification exécutant le module de stratégie d’entreprise doivent indiquer le type de certificat demandé en spécifiant un attribut « CertificateTemplate » ou une extension de modèle de certificat dans la demande elle-même.
Notez que lors de la création d’une demande de certificat, les développeurs (et les intermédiaires) sont responsables du maintien du secret de la clé privée. Une fois qu’une clé privée a été compromise (elle a perdu son secret), elle est inutile.
Les pages d’inscription web des services de certificats utilisent les interfaces d’inscription de certificats, qui protègent les clés privées en les générant sur la station de travail. En plus de maintenir le secret de la clé privée, le contrôle d’inscription de certificat permet à un intermédiaire de spécifier le fournisseur de services de chiffrement, la spécification de la clé, la force de la clé et l’algorithme de hachage.
Le composant logiciel enfichable MMC Certificats utilise également le contrôle d’inscription de certificats (Xenroll.dll). Toutefois, lorsque les pages d’inscription web des services de certificats entraînent le téléchargement de la ressource contrôle d’inscription de certificats (Xenroll.dll) sur le client si nécessaire, le composant logiciel enfichable MMC Certificats s’exécute dans un environnement où Xenroll.dll est déjà une ressource disponible.
Outre ICertRequest et ICertConfig, les développeurs d’intermédiaires peuvent trouver utiles les interfaces d’inscription de certificat et le contrôle d’inscription de carte à puce .