Par défaut, Windows utilise la liste de révocation (CRL) en cache jusqu’à son expiration avant de tenter la récupération d’une nouvelle CRL publiée par l’Autorité de Certification.

Avant la version Windows Vista, Microsoft ne supportait pas la suppression ou le renseignement manuel du cache de CRL (via la commande « certutil -URLCache CRL –delete » …, bien que cela soit souvent fonctionnel sous Windows XP et Windows 2003).

Depuis Windows Vista CAPI2 et donc Windows Vista, Windows 7 et Windows 2008 /R2, il est maintenant supporté de supprimer le cache de CRL et même de procéder à son « invalidation » avec la commande suivante :

Pour la suppression du cache de CRL sur le disque (a effectuer dans le contexte de sécurité approprié, SYSTEM ou utilisateur):

certutil -URLCache CRL –delete

NB: Utiliser Certutil –v –URLCache CRL pour lister le cache des CRL sur le disque.

Pour l’obtention de la configuration actuelle ou visualiser quand le cache a été invalidé (avant cette date toutes les entrées sont invalides):

certutil –getreg chain\ChainCacheResyncFiletime

Nb : Si ce paramètre n’a jamais été utilisé vous obtiendrez le message ci-dessous ce qui est normal :

CertUtil: -getreg command FAILED: 0x80070002 (WIN32: 2)

CertUtil: The system cannot find the file specified.

Pour informer le SYSTEM qu’à présent toutes les entrées dans le cache CRL /OCSP sont invalides vous pouvez utiliser la commande suivante :

certutil -setreg chain\ChainCacheResyncFiletime @now

Pour informer le SYSTEM qu’à présent toutes les entrées dans le cache CRL /OCSP sont invalides et cela jusque dans 3 jours et 6 heures, vous pouvez utiliser la commande suivante :

certutil –setreg chain\ChainCacheResyncFiletime @now+3:6

          Par exemple, toutes les entrées en cache sont invalides jusqu’au 12/02/2010 16H42 :

clip_image002

Pour supprimer cette fonctionnalité vous pouvez simplement utiliser :

certutil –delreg chain\ChainCacheResyncFiletime

(ou mettre une date ancienne… dans ChainCacheResyncFiletime)

CAPI utilise 2 caches de CRL et d’OCSP : Le cache sur disque et le cache en mémoire.

- Le cache sur le disque contient les CRLs et les réponses OCSP récupérées lors du processus de contrôle de révocation et cela jusqu’à expiration.

- Le cache en mémoire des CRL  est lié à une application spécifique, quand l’application est terminée, les informations de CRL en mémoire sont vidées.

La commande “certutil –URLcache CRL delete” supprime le cache sur le disque mais pas en mémoire.

Si vous  souhaitez invalider l’utilisation des CRL en cache dans la mémoire et sur le disque il faut utiliser la commande certutil –setreg chain\ChainCacheResyncFiletime @now (Sous Windows Vista et ultérieure). Cette commande ne supprime pas les CRL en cache mais indique au SYSTEM que toutes les CRL ajoutées au cache avant la date spécifiée dans la clé ChainCacheResyncFiletime sont invalides.

Cette clé s’applique pour l’ensemble de la machine et pour tous les processus tournant sur cette machine.

Aucun redémarrage n’est nécessaire pour la prise en compte de cette clé, les droits d’administrateur local sont nécessaires pour la modification de cette valeur.

Hope this help!

Daniel PASQUIER

Sr Technical Lead

Domain & Security Team