jeudi 11 novembre 2021

Mettre à niveau de l'algorithme de hachage d'une autorité de certification sous Windows

 Introduction

Dans cet article nous allons vous montrer comment nous pouvons mettre à niveau l'algorithme de hachage d'une autorité de certification.

Un petit rappel, l'algorithme de hachage , est une fonction mathématique qui permet de créer une empreinte numérique pour vérifier l'intégrité des données.

Si votre PKI utilise encore des algorithmes de hachage vulnérable comme SHA1,MD4 et MD5,c'est le moment de penser à migrer le plutôt possible vers SHA256 ou plus.

Pour mettre à niveau l'algorithme de hachage vers SHA256, il faut suivre les étapes suivantes:

  1. Mettre à niveau l'algorithme de hachage vers SHA256 du fournisseur du chiffrement
  2. Régénérer un nouveau certificat racine avec le nouveau algorithme de hachage pour l'autorité de certification
  3. Régénérer tous les certificats déjà délivrés

Avant de commencer la migration de l'algorithme de hachage , il est recommandé de sauvegarder la PKI pour assurer la possibilité d'un retour en arrière en cas de problème.

Dans notre environnement de test nous avons installé un domaine LAB.LAN et une autorité de certification entreprise PKI2008 qui  utilise l'algorithme SHA1 comme algorithme de hachage.


  1. Mettre à niveau l'algorithme de hachage du fournisseur du chiffrement:

Pour afficher l'algorithme utilisé par le fournisseur de chiffrement "Software Key Storage Provider" pour notre cas:

  •  Depuis la console certsrv.msc , cliquer sur le nom de la PKI (PKI2008) avec le bouton droit de la souris ensuite cliquet sur Propriétés : 


  • Dans les propriétés de la PKI allez vers l'onglet général et vous allez trouver l'algorithme de hachage utilisé par le fournisseur Microsoft Software Key Storage Provider:


  • Dans les propriétés de la PKI , onglet général ,cliquer sur Afficher le certificat pour vérifier l'algorithme de hachage utilisé pour signer le certificat racine :



  • Pour modifier l'algorithme de hachage du fournisseur "Software Key Storage Provider", il suffit de taper la commande suivante:

Certutil -setreg ca\csp\CNGHashAlgorithm SHA256



  • Une fois que la commande est bien exécutée, un message s'affiche pour vous demander de redémarrer le service CertSvc:

  • Pour redémarrer le service Certsvc, depuis la console certsrv.msc cliquer avec le bouton droit de la souris sur le nom de la PKI ensuite allez vers Toutes les tâches pour trouver l'option Démarrer et arrêter le service:



  • Maintenant vérifiez que le nouvel algorithme de hachage utilisé par le fournisseur "Software Key Storage Provider" est bien SHA256:

2. Régénérer un nouveau certificat racine pour l'autorité de certification:

Pour générer un nouveau certificat racine, vous pouvez suivre les étapes suivantes:

  • Depuis la console certsrv.msc ,cliquer avec le bouton droit de a souris sur le nom de la PKI ensuite cliquer sur toutes les tâches puis sur l'option Renouveler le certificat d'autorité de certification:


  • Une fenêtre s'affiche pour vous avertir que le service de certificats active directory va s'arrêter, cliquez sur oui



  • Dans cette étape si vous avez la possibilité de générer un nouveau pair de clé privé et publique avant la génération du nouveau certificat:



  • Une fois que la génération du certificat est terminé, vous pouvez affciher le certificat en allant dans les propriétés de la PKI et sous l'onglet General sélectionner le nouveau certificat et cliquer sur Afficher le certificat:


  • Dans les propriétés du certificat , allez vers l'onglet Détails et vérifier l'algorithme de Hachage:


3. Régénérer tous les certificats déjà délivrés:

La dernière étape consiste à regénérer tous les certificats déjà livrés par l'autorité de certification, afin  de mettre à jour le hache de chaque certificat calculé par l'autorité de certification en question  à travers le nouveau algorithme de hachage. Pour rappel, lors de la génération du certificat le hache est calculé et signé par la l'autorité de certification pour assurer son intégrité .

Cette étape dépend de la méthode d'enregistrement utilisée pour générer le certificat.
Pour les certificat générés automatiquement à travers GPO, ils seront regénérer automatiquement après l'expiration ou la suppression de l'ancien certificat.

mardi 2 novembre 2021

Corbeille Active directory

A partir de Windows 2008R2 , une nouvelle fonctionnalité Corbeille active directory est disponible  permettant la restauration  des objets  active directory.
Pour activer cette fonctionnalité , il faut que tous les contrôleurs de domaine soient installés sur des machines Windows 2008 R2 au minimum et que le niveau fonctionnel de la forêt soit 2008 R2 au minimum.
L'activation de la corbeille active directory est irréversible , pour faire le roll-back  il faut lancer une restauration de toute la forêt.
 Les objets supprimés avant l'activation de la corbeille active directory ne peuvent d' être restaurés qu'à partir d'une restauration autoritaire. Il s'agit de la même chose pour les objets modifiés.  
Activation de la corbeille active directory:
Pour activer la corbeille active directory via Powershell ,il suffit de lancer cette commande sur le contrôleur de domaine qui a le rôle maitre d'attribution du nom de domaine:
Enable-ADOptionalFeature "Recycle Bin Feature" -Scope ForestOrConfigurationSet -Target "lab.lan" -server dc1


Il est possible d'activer la corbeille à partir de la console Active Directory Administrative Center  sur Windows 2012/2012 R2/2016:



Pour  vérifier l'activation de la corbeille , il faut lancer la commande ci-dessous afin de vérifier la valeur EnabledScopes :
Get-ADOptionalfeature -Filter  {name -like"recycle bin feature"}
 Si la valeur EnabledScope est vide c'est que la corbeille n'est pas  encore activée:


Si la valeur EnabledScopes n'est pas vide c'est que  la corbeille est bien activée:



Restauration d'un objet supprimé :
Après l'activation de la corbeille active directory , les objets supprimés seront déplacés dans un autre conteneur  deleted objects, ce dernier est visible depuis la console centre d'administration active directory installé sur Windows 2012/2012 R2/2016.
Il existe deux attributs qui déterminent l'état de l'objet supprimé : isDeleted et isRecycled.
L'attribut isDeleted  prend la valeur TRUE une fois que l'objet est supprimé, cet attribut existe depuis la version Windows 2000.
L'attribut isRecycled a été ajouté depuis la version Windows 2008 R2, il détermine si l'objet supprimé a dépassé la durée maximale autorisé pour la restauration à travers la corbeille.
si l'objet supprimé (isDeleted=TRUE) a dépassé la durée msDSdeletedObjectLifetime , l'attribut isRecycled prend la valeur TRUE, et dans ce cas on ne peut pas restaurer l'objet à travers la corbeille active directory , il faut passer par une restauration autoritaire.
Par défaut la valeur de l'attribut isRecycled de tous les objets supprimés avant l'activation de la corbeille prend la valeur TRUE , pour cela on ne peut pas les restaurer par la corbeille active directory.

Durée de vie d'un objet supprimé:
Il existe aussi deux attributs qui détermine la durée de vie d'un objet supprimé : msDS-deletedObjectLifetime et tombstoneLifetime.
L'attribut msDSdeletedObjectLifetime a été ajouter  depuis la version Windows 2008R2, il permet de déterminer la durée maximale pendant laquelle la restauration d'un objet supprimé à travers  la corbeille est possible.
Par défaut, msDSdeletedObjectLifetime prend la même valeur que tombstoneLifetime.
Il est possible de changer cette valeur à travers un compte membre du groupe Entreprise Admin.
Pour changer la valeur de cet attribut via ADSIEDIT  , on doit de se connecter sur la partition configuration et allez chercher  les propriétés de CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=lab,DC=lan:


Il est aussi possible de modifier la valeur msDS-deletedObjectLifetime via powershell:
Set-ADObject -Identity “CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=contoso,DC=com” –Partition “CN=Configuration,DC=lab,DC=lan” –Replace:@{“msDS-DeletedObjectLifetime” = 240}
L'attribut tombstoneLifetime détermine  la durée de vie maximale des objets supprimés avec l'attribut isRecycled=TRUE avant d'être supprimé définitivement .
la valeur par défaut du  tombstoneLifetime dépend de la version du premier contrôleur de domaine installé dans la forêt:

Windows 2000
60j
Windows 2003
60j
Windows 2003 R2 sp1
60j
Windows 2003 SP1/2003 R2SP2
180j
Windows 2008/2008R2
180j
Windows 2012/2012R2
180j
Windows 2016
180j

Pour changer la valeur de cet attribut via ADSIEDIT  , on doit de se connecter sur la partition configuration et allez chercher  les propriétés de CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=lab,DC=lan:


Il est aussi possible de modifier la valeur tombstoneLifetime via powershell:

Set-ADObject -Identity “CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=contoso,DC=com” –Partition “CN=Configuration,DC=lab,DC=lan” –Replace:@{“ tombstoneLifetime ” = 240}


Ci-dessous un exemple de restauration d'un compte utilisateur test1 via powershell:


Il est possible aussi de restaurer le même compte via la console Active Directory Administrative Centre sous Windows 2012/2012R2/2016: