Répondeurs OCSP
Introduction
Dans le chapitre précédent, nous avons utilisé des serveurs web pour publier les listes de révocation à l’extérieur de l’entreprise.
Les répondeurs OCSP (Online Certificate Status Protocol) sont utilisés pour remplir exactement le même rôle. Ils fournissent cependant pour cela un mécanisme plus simple à mettre en œuvre et beaucoup plus efficace.
Pour la validation des informations de révocation de certificats, l’implémentation de répondeur OCSP est en général préférable à l’utilisation de serveur web.
1. Fonctionnement
Lorsqu’un ordinateur doit déterminer l’état de révocation d’un certificat, il doit télécharger une liste de révocation (CRL), plus éventuellement des listes de révocation delta, pour vérifier si le numéro de série du certificat est dans ces listes de certificats révoqués.
Avec OCSP par contre, les ordinateurs qui doivent déterminer l’état de révocation ne téléchargent plus de listes de révocation. À la place, ils envoient une requête sécurisée à un serveur OCSP pour lui demander cet état. C’est le serveur OCSP qui utilise les listes de révocation pour valider l’état...
Configuration de révocation
La configuration de révocation est un lien qui relie une autorité de certification et le serveur OCSP qui aura pour charge de valider la révocation des certificats qu’elle aura émis.
1. Assistant de configuration de révocation
Après l’installation du rôle OCSP, cette configuration de révocation se crée simplement à l’aide d’un assistant Windows depuis la console de gestion OCSP.
Durant cette configuration de révocation, un certificat de Signature de réponse OCSP est délivré par l’autorité de certification au serveur OCSP.
2. Certificat OCSP
Le certificat délivré aux répondeurs OCSP permet de fournir des réponses signées aux ordinateurs clients qui demandent des informations de révocation. Il est basé sur une personnalisation du modèle par défaut Signature de réponse OCSP.
Les certificats de signature OCSP ont les caractéristiques suivantes :
-
L’entrée Signature OCSP existe dans l’extension d’utilisation de clé améliorée.
-
La révocation n’est pas sélectionnée (pas d’accès à l’information d’autorité ni d’extension de point de distribution de CRL pour ce certificat).
-
Par défaut, la période...
Signature de réponses OCSP
Afin de garantir qu’elles proviennent d’une source de confiance, les réponses OCSP sont signées avec le certificat qui a été délivré au serveur OCSP. Ce certificat est délivré lors de la création de la configuration de révocation et il n’est approuvé que pour signer des réponses OCSP uniquement.
1. Nombre de répondeurs OCSP
Pour chaque autorité de certification émettrice, il est requis de créer une configuration de révocation avec un serveur OCSP. Dans ce cas, la nécessité de disposer d’autant de serveurs OCSP que d’autorités de certification émettrices dépend de l’environnement d’utilisation du répondeur OCSP.
Environnement avec clients tiers
Selon la RFC 6960 (https://tools.ietf.org/html/rfc6960), les réponses OCSP ne doivent être acceptées que si le certificat du serveur OCSP, utilisé pour signer la réponse, et le certificat en cours de vérification pour la révocation ont été signés par la même clé. Dans un environnement avec des clients tiers respectant strictement la RFC vous devez donc installer un répondeur pour chaque autorité de certifications émettrices.
Environnement avec clients Microsoft uniquement
Dans un environnement...
Modification des extensions AIA
La configuration de l’autorité de certification doit être modifiée afin que les certificats émis intègrent le nouvel emplacement de révocation.
Cette tâche s’effectue dans l’onglet Extension des propriétés de l’autorité de certification par l’ajout d’un nouvel emplacement AIA (Authority Information Access - accès aux informations de l’autorité).
Il faut également cocher, pour ce nouvel emplacement, l’option Inclure dans l’extension OCSP (Online Certificate Status Protocol).
Ajout d’une nouvelle extension AIA (en HTTP) pour l’emplacement du serveur OCSP.
Cette option indique que ce nouveau chemin AIA en HTTP sera inclus dans tous les nouveaux certificats émis. Le processus de révocation utilisera ce chemin pour valider l’état de révocation des certificats.
Ce nouveau certificat inclut dans sa propriété Accès aux informations de l’autorité le nouvel emplacement en HTTP du serveur OCSP !
Processus de validation de la révocation
Afin d’optimiser les temps de réponse et de minimiser la charge sur les répondeurs OCSP, des mises en cache de réponses OCSP sont effectuées côté client et côté répondeurs OCSP.
1. Mise en cache des réponses OCSP
Lors du processus de validation de l’état de révocation d’un certificat, une mise en cache des réponses OCSP est effectuée localement sur le client OCSP. Cette mise en cache est effectuée sur le disque à l’emplacement suivant : <lecteur>:\Utilisateurs\<Nom_utilisateur>\AppData\LocalLow\Microsoft\CryptnetUrlCache.
Côté serveur OCPS, la bibliothèque IIS HTTP.SYS procède également à une mise en cache mémoire pendant 120 secondes. Les différentes demandes adressées au répondeur en ligne durant cette période sont traitées avec la réponse HTTP.SYS mise en cache.
Le processus de validation de la révocation est donc le suivant :
-
Le client OCSP consulte son cache local de réponses OCSP.
-
Si aucune réponse acceptable n’est trouvée dans le cache, une demande est adressée au serveur OCSP.
-
Le répondeur OCSP extrait le numéro de série de certificat à valider.
-
Le répondeur OCSP traite la demande avec les réponses...
Validation de la révocation OCSP
L’utilitaire Certutil dispose de commutateurs permettant une validation rapide ou plus détaillée de l’état de révocation d’un certificat.
Le certificat pour lequel la révocation OCSP est testée doit être, au préalable, exporté en format .cer avant de pouvoir être utilisé dans une commande Certutil.
1. Validation rapide
Pour un certificat incluant une extension OCSP, la commande suivante permet de vérifier si une validation de révocation OCSP est effectuée (l’URL du serveur OCSP utilisé est affichée) :
Certutil -verify -urlfetch nom_certificat.cer.
Certutl -verify -urlfetch permet de valider une vérification de révocation OCSP pour un certificat.
Cette commande affiche la réponse du répondeur OCSP mais n’effectue pas de mise en cache OCSP.
2. Validation de révocation OCSP détaillée
Avec Windows 10 et Windows Server 2016 (uniquement), l’utilitaire Certutil dispose d’un nouveau commutateur (-downloadocsp) qui permet de disposer d’éléments de réponse plus détaillés lors de la validation de révocation OCSP d’un certificat.
Exemple pratique d’utilisation du nouveau commutateur :
Téléchargement du cache de réponse OCSP :
Sur le disque c: de l’ordinateur...
Méthodologie d’implémentation
La méthodologie suivante doit être appliquée pour l’implémentation d’un serveur OCSP :
-
Créer un nouveau modèle de certificat pour le rôle OCSP
-
Installer le rôle OCSP
-
Créer la configuration de révocations
-
Modifier les extensions de l’autorité de certification
-
Tester le fonctionnement du serveur OCSP
Ces étapes sont mises en pratique, de façon complète et détaillée, dans l’atelier Répondeur OCSP de ce chapitre.
Le serveur OCSP interroge les listes de révocation dans l’active Directory puis les met en cache. Il peut alors répondre aux clients sur le statut de révocation des certificats présentés.
Application pratique : Répondeur OCSP
1. Objectif
La société Corp fournit au personnel de l’entreprise une connexion VPN SSTP (Secure Socket Tunneling Protocol).
Cette connexion fonctionne mais les listes de révocation à télécharger par les clients devenant de plus en plus conséquentes et le nombre de clients VPN ayant également augmenté, le serveur IIS installé en DMZ pour exposer ces listes de révocation génère un trafic HTTP trop important.
Afin d’optimiser le processus de validation de la révocation, le service informatique souhaite implémenter un serveur OCSP en remplacement du serveur web IIS.
Dans cet atelier pratique, nous allons implémenter un serveur OCSP. Nous validerons ensuite les réponses de révocation du serveur OCSP ainsi que le bon fonctionnement du VPN SSTP.
Les ordinateurs virtuels utilisés dans cet atelier sont les suivants :
S1 : contrôleur de domaine (Corp.lan)
S2 : autorité de certification (CorpRootCA)
S3 : autorité de certification racine hors connexion (CorpSubEntCA)
S4 : serveur OCSP (en DMZ)
S5 : serveur VPN, serveur DNS public (en DMZ)
W10 : client VPN (sur réseau externe)
Afin de minimiser le nombre d’ordinateurs virtuels et de simplifier l’architecture de l’atelier, le serveur VPN s5 est également serveur DNS public ainsi que serveur web public.
2. Restaurer le point de contrôle VPN SSTP
Cet atelier s’appuie sur une architecture de PKI sécurisée et le serveur VPN SSTP qu’elle inclut.
Cette architecture a été implémentée et sauvegardée lors de l’atelier du chapitre précédent (Publication de révocation en HTTP) à l’étape Point de contrôle VPN SSTP de l’atelier.
Ce point de contrôle est la base de cet atelier, si la configuration de votre plateforme de test a été modifiée entre temps, vous devez restaurer ce point de contrôle avant de réaliser l’atelier de ce chapitre.
Si nécessaire, restaurez le point de contrôle VPN SSTP sur les ordinateurs concernés.
3. Installer le serveur OCSP
Nous allons créer un modèle personnalisé du modèle par défaut Signature de réponse OCSP. Cela nous...