Lorsque vous délivrez des certificats pour différents services et/ou utilisateurs, il peut être nécessaire de pouvoir révoquer (invalider) un certificat avant sa date d'expiration.
La révocation d'un certificat permet de l'invalider avant sa date d'expiration.
Ainsi, si vous savez qu'un pirate a potentiellement pu récupérer un certificat (ainsi que sa clé privée) qui se trouvait sur un serveur ou un ordinateur, vous avez la possibilité de le révoquer pour que celui-ci ne soit plus valide.
Ainsi, l'accès au service qui était protégé avec ce certificat sera complètement bloqué.
S'il s'agissait d'un certificat utilisateur, l'utilisateur ne pourra plus s'authentifier à l'aide de ce certificat.
Lorsque vous révoquez un certificat (depuis la console "Autorité de certification"), le numéro de série de ce certificat est ajouté à une liste de révocation (CRL) ou à une liste de révocation delta (CRL delta).
Comme vous le verrez dans ce tutoriel, les listes de révocations (CRL et CRL delta) sont publiées périodiquement et vous pouvez également publier celles-ci manuellement si vous le souhaitez.
Par défaut, ces listes de révocation sont publiées dans l'Active Directory et n'importe quel serveur ou ordinateur membre de votre domaine Active Directory peut donc y accéder (dans l'entreprise) via le protocole "ldap".
Notez que l'autorisation "Emettre et gérer des certificats" est nécessaire pour pouvoir révoquer des certificats.
Pour commencer, une application peut ne pas fonctionner correctement si les listes des révocations de ne sont pas accessibles.
En effet, par sécurité, l'application choisit de ne pas fonctionner pour être sûre qu'un certificat révoqué ne puisse pas être utilisé (par un pirate, par exemple).
C'est notamment le cas de Citrix XenApp.
Ceci est plutôt rare, mais il est possible qu'une application ne supporte pas la révocation.
Autrement dit, tant que le certificat est valide pour le serveur, l'ordinateur ou l'utilisateur concerné, cela fonctionnera. Et si vous révoquez ce certificat, le certificat continuera d'être "valide" dans ce cas précis étant donné que l'application ne vérifiera pas si celui-ci a été révoqué entre temps.
C'est notamment le cas du système de fichiers EFS (Encrypting File System) qui ne supporte pas la révocation lors du chiffrement de fichiers.
Par contre, la révocation est vérifiée par EFS lorsque vous tentez de partager un fichier chiffré avec d'autres utilisateurs.
Si une application sécurisée à l'aide d'un de vos certificats ne peut pas accéder aux listes de révocation de votre autorité de certification, il est possible que l'application refuse de fonctionner dans ce cas précis par mesure de sécurité.
En effet, étant donné que l'application n'arrive pas à vérifier si ce certificat a été révoqué ou non par votre autorité de certification, celle-ci préfère cesser de fonctionner pour éviter que vous vous connectiez à un serveur compromis par un pirate (par exemple).
Comme expliqué précédemment, par défaut, ces listes de révocation sont accessibles via le protocole "ldap" (autrement dit : depuis votre infrastructure Active Directory).
Si vous utilisez un PC portable et que vous sortez de l'entreprise avec celui-ci, vous ne pourrez pas accéder à ces listes de révocation via le protocole "ldap".
Pour régler le problème, vous devrez ajouter le protocole "HTTP" avec une adresse qui est toujours accessible par vos postes clients pour l'accès aux listes de révocation (CRL et CRL delta) de votre autorité de certification.
Comme le verrez dans ce tutoriel, par défaut, les listes de révocation (CRL) sont publiées toutes les semaines et une liste de révocation delta (CRL delta) est publiée tous les jours.
Ce qui signifie qu'il y aura toujours un délai entre le moment où vous révoquez un certificat et le moment où le numéro de série de celui-ci apparaitra dans une liste de révocation (CRL) ou une liste de révocation delta (CRL delta).
De plus, lorsqu'un poste client vérifie la révocation d'un certificat, il télécharge une copie de vos listes de révocations (CRL et CRL delta) et il garde ces copies en cache pendant un certain temps (délai = à la fréquence de publication de ces listes de révocations).
Ce qui signifie qu'il peut aussi y avoir un délai entre le moment où le numéro de série du certificat révoqué a été ajouté à une liste de révocation (CRL ou CRL delta) et le moment où le client aura connaissance de cette révocation.
Notez que vous pouvez forcer la vérification de la révocation en vidant le cache de la révocation du poste client en exécutant la commande :
Batch
certutil -setreg chain\ChainCacheResyncFiletime @now
L'utilisation du cache côté client permet de ne pas saturer la bande passante de votre autorité de certification en évitant de retélécharger à chaque fois vos listes de révocation à chaque fois que votre poste client doit vérifier la révocation d'un de vos certificats.
Pour commencer, nous avons sécurisé un serveur web IIS avec un certificat valide émanant de notre autorité de certification.
Pour révoquer un certificat, ouvrez la console "Autorité de certification", allez dans la section "Certificats délivrés" et repérez le certificat souhaité.
Si besoin, faites un double clic sur celui-ci pour obtenir plus d'informations sur celui-ci.
Vous pouvez également vérifier son numéro de série dans l'onglet "Détails" pour être sûr et certain qu'il s'agit du bon certificat.
Une fois que vous avez trouvé le certificat que vous souhaitez révoquer, faites un clic droit "Toutes les tâches -> Révoquer un certificat" sur celui-ci.
Dans la fenêtre "Révocation du certificat" qui apparait, vous pouvez sélectionner une raison de révocation :
Pour ce tutoriel, nous allons choisir "Clé compromise" (par exemple).
Vous pourrez également choisir une date à partir de laquelle ce certificat sera révoqué.
Par défaut : maintenant.
Le certificat révoqué disparait de la liste des certificats délivrés.
Le certificat révoqué apparaitra dans la liste des certificats révoqués.
Si vous faites un double clic sur celui-ci, vous pourrez à nouveau obtenir des informations sur celui-ci.
Vous pourrez également revérifier son numéro de série si vous le souhaitez.
Maintenant que ce certificat a été révoqué, il faut que vous ajoutiez son numéro de série dans une de vos listes de révocation pour que vos postes clients puissent savoir que celui-ci a été révoqué.
Pour cela, faites un clic droit "Toutes les tâches -> Publier" sur le dossier "Certificats révoqués".
Choisissez "Nouvelle liste de révocation des certificats" pour publier une liste de révocation complète "CRL".
Comme vous pouvez le voir, vous avez le choix entre :
Pour vérifier que le certificat révoqué a bien été ajouté à la liste de révocation des certificats (CRL), faites un clic droit "Propriétés" sur le dossier "Certificats révoqués".
Dans l'onglet "Afficher la liste de révocation des certificats", vous pouvez voir qu'une liste de révocation vient d'être publiée.
Pour obtenir des informations concernant celle-ci, cliquez sur le bouton : Afficher la liste de révocation des certificats.
Dans la fenêtre "Liste de révocation des certificats" qui apparait, allez dans l'onglet "Liste de révocation".
Dans cet onglet "Liste de révocation", vous verrez la liste des numéros de série des certificats révoqués sur votre autorité de certification.
Si vous sélectionnez un numéro de série dans cette liste, vous pourrez voir quand et pourquoi celui-ci a été révoqué.
Dans notre cas, nous pouvons voir que nous avions révoqué ce certificat pour : Clé compromise.
Si vous tentez d'accéder au service sécurisé grâce au certificat que vous venez de révoquer, une erreur se produira.
Dans notre cas, si nous tentons d'accéder à notre serveur web avec Internet Explorer, l'erreur "Le certificat de cette organisation a été révoqué" apparait et l'accès au site web souhaité est complètement bloqué.
En effet, comme vous pouvez le voir, lorsqu'un certificat est révoqué, vous ne pouvez pas ignorer ce problème de sécurité.
Néanmoins, il est aussi possible que vous ayez toujours accès à ce même service depuis d'autres serveurs ou postes clients.
En effet, comme expliqué précédemment, les clients gardent une copie de vos listes de révocation en cache pendant un certain temps (qui correspond à la fréquence de publication de celles-ci).
Lorsqu'un client vérifie si un de vos certificats a été révoqué, il télécharge une copie de vos listes de révocation (CRL et CRL delta) et il garde celles-ci pendant un certain temps.
Pour savoir pendant combien de temps ces copies seront gardées dans le cache de votre poste client, ouvrez la console "Autorité de certification" (sur votre serveur CA) et faites un clic droit "Propriétés" sur le dossier "Certificats révoqués".
Si vous allez dans l'onglet "Paramètres de publication de la liste de révocation des certificats", vous pourrez voir la fréquence à laquelle :
Côté client, les copies de ces listes seront gardées pendant le temps indiqué ici pour chacune d'entre-elles.
Pour forcer la mise à jour du statut de révocation côté client, effacez le cache de votre navigateur web.
Effacez tout.
Ensuite, ouvrez un invite de commandes et forcez la mise à jour du cache de révocation de votre ordinateur ou serveur en exécutant la commande :
Batch
certutil -setreg chain\ChainCacheResyncFiletime @now
Maintenant, si ouvrez à nouveau votre navigateur web et que vous tentez de réaccéder au site web sécurisé avec un certificat révoqué, vous verrez que l'erreur "Le certificat de cette organisation a été révoqué" s'affichera.
Articles 26/1/2024
Windows Server 15/8/2014
Windows Server 6/10/2023
Windows Server 20/10/2023
Contenu épinglé
Contact
® InformatiWeb-Pro.net - InformatiWeb.net 2008-2022 - © Lionel Eppe - Tous droits réservés.
Toute reproduction totale ou partielle de ce site est interdite et constituerait une contrefaçon sanctionnée par les articles L.335-2 et suivants du Code de la propriété intellectuelle.
Vous devez être connecté pour pouvoir poster un commentaire