Configuration et utilisation de l'agent de récupération de clés avec la PKI 2008 R2

Michaël Todorovic

Cet article va vous permettre de configurer l'agent de récupération de clés de la PKI de Windows Server 2008 R2.
Commentez

- Titre : Configuration et utilisation de l'agent de récupération de clés avec la PKI 2008 R2

- Auteur : Michaël Todorovic

- Parution : 29 mars 2010

- Licence : Copyright ® 2010 Michaël Todorovic. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- II. Configuration de l'agent

- II-A. Activation du modèle de certificat

- II-B. Inscription du certificat

- II-C. Activation de l'agent

- III. Configuration des modèles de certificats à archiver

- IV. Récupération d'une clé supprimée

- IV-A. Identification du certificat correspondant à la clé perdue

- IV-B. Récupération du certificat à partir du numéro de série

- IV-C. Récupération de la clé privée à partir du certificat

- V. Conclusion

- VI. Remerciements

I - Introduction

Cet article fait suite à mon article Configuration d'une infrastructure à clés publiques à 2 niveaux sous Windows 2008 (R2).
Pour suivre cet article, il vous faudra une autorité de certification d'entreprise déjà installée.
L'agent de récupération de clés va vous permettre de récupérer des clés privées perdues. Cet agent va permettre l'archivage des clés privées associées aux clés publiques délivrées par l'autorité. Cet archivage sera crypté par la clé de l'agent de récupération. Cet agent dispose d'un modèle de certificat dédié qu'il faut activer.

Cette activation n'est pas à prendre à la légère puisqu'elle va archiver les clés privées de vos utilisateurs. Ces clés privées étant personnelles, elles ne doivent pas être utilisées par d'autres personnes que l'intéressé. Si votre agent de récupération est compromis, toutes vos clés archivées seront potentiellement compromises : pour cela, il sera nécessaire d'activer l'audit de l'agent afin de savoir par qui et quand il a été utilisé ainsi que les clés récupérées.

ATTENTION ! Il faut utiliser l'agent de récupération uniquement si la clé a été supprimée. Si la clé a été perdue, volée ou si vous avez un doute sur la nature de la disparition de celle-ci, il faudra la révoquer et en créer une nouvelle.

L'autre nom de l'agent de récupération de clé est KRA pour Key Recovery Agent.

II - Configuration de l'agent

II-A - Activation du modèle de certificat

L'agent de récupération de clés possède son propre modèle de certificat qui, par défaut, n'est pas délivré par votre autorité d'entreprise pour des raisons de sécurité : cet agent va vous permettre de récupérer toutes les clés archivées, donc son utilisation doit être restreinte.
Nous allons commencer par activer le modèle de certificat de l'agent de récupération de clés. Il faut vous connecter sur votre autorité d'entreprise avec un compte pouvant l'administrer. Ouvrez la console de l'autorité et allez dans les Modèles de certificats puis faites un clic droit et cliquez sur Gérer pour ouvrir la console de gestion des modèles de certificats.

Vous pouvez accéder à cette console en exécutant certtmpl.msc.

Gestion des modèles de certificat

Ouvrez les propriétés du modèle Agent de récupération de clé.

Propriétés du modèle de certificat de l'agent de récupération de clé

Dans l'onglet Traitement de la demande, vous pouvez changer la taille de la clé. Microsoft recommande de ne pas dépasser une taille de 8192 : la récupération de clé demandera plus de calculs et prendra donc plus de temps ce qui impactera les performances de votre autorité. Une taille de clé de 2048 assure une bonne sécurité des données et n'impactera pas de manière visible les performances de l'autorité. Cela représente donc un bon compromis entre sécurité et performance.
L'exportation de la clé est autorisée sur ce modèle de certificat. Je vous déconseille de désactiver cette possibilité : la clé de l'agent de récupération ne peut pas être récupérée. Vous pourrez donc exporter cette clé à titre de sauvegarde. Cette clé permettant de récupérer les clés archivées, il est essentiel de prendre des mesures de sécurité très fortes pour sa conservation. En effet, si l'agent de récupération est compromis, toutes les clés archivées pourront être récupérées et seront donc toutes compromises.

Choix de la taille de clé

Vous devez maintenant autoriser un utilisateur à générer le certificat de l'agent de récupération. Pour cela, allez dans l'onglet Sécurité et cliquez sur Ajouter.

Ajout d'un utilisateur

Sélectionnez l'utilisateur qui sera responsable de l'agent de récupération puis ajoutez-lui le droit d'inscription. Enfin cliquez sur OK. Je conseille de créer un utilisateur dédié à l'agent de récupération. Lorsque vous ne vous servez pas de ce compte, désactivez-le dans l'Active Directory afin d'éviter toute tentative de connexion. Vous pourrez activer l'utilisateur lorsqu'il y aura des clés à récupérer.

Cet utilisateur devra disposer des droits d'administration de votre autorité de certification.

Ajout de la permission d'inscription

Fermez la console de gestion des modèles de certificats pour revenir aux modèles de certificats délivrés par votre autorité. Ajoutez le modèle de l'agent de récupération de clés en faisant un clic droit sur Nouveau, Modèle de certificat à délivrer. Cela va permettre à votre autorité de délivrer des certificats d'agent de récupération de clés.

Ajout du modèle de certificat

Sélectionnez le modèle de l'agent de récupération de clé et cliquez sur OK.

Sélection de l'agent de récupération de clé

II-B - Inscription du certificat

Vous devrez ensuite vous connecter avec l'utilisateur responsable de l'agent de récupération de clés. Ouvrez une MMC (en exécutant mmc) puis ajoutez le composant Certificats en cliquant sur Fichier, Ajouter/Supprimer un composant logiciel enfichable. Ajoutez le composants Certificats (en double-cliquant dessus). Il vous sera demandé pour qui le composant devra générer des certificats, choisissez Mon compte d'utilisateur. Cliquez sur Terminer puis OK. Allez dans Racine de la console, Certificats - Utilisateur, Personnel. Faites un clic droit sur Certificats, Toutes les tâches, Demander un nouveau certificat.

Demande de nouveau certificat

Vous n'aurez pas à changer la stratégie d'inscription à Active Directory, cliquez sur Suivant.

Stratégie d'inscription à Active Directory

Vous devrez ensuite sélectionner le type de certificat à générer parmi ceux qui vous ont été accordés. Cochez l'agent de récupération de clés et cliquez sur Inscription.

Sélection du type de certificat

La soumission de la demande est envoyée à l'autorité de certification. Un tel certificat ne doit pas être distribué à n'importe qui donc il est soumis à validation manuelle.

Inscription soumise à l'autorité

Vous pouvez voir votre demande dans la MMC ouverte précédemment dans Demandes d'inscription de certificat, Certificats.

Il va maintenant falloir délivrer ce certificat sur l'autorité de certification afin de compléter l'inscription. Allez sur votre autorité de certification dans Demandes en attente. Vous devriez voir la demande de votre utilisateur pour un certificat d'agent de récupération de clé à une heure donnée.

Demande en attente

S'il s'agit bien de la bonne demande, vous pouvez délivrer le certificat en faisant un clic droit sur Toutes les tâches, Délivrer.

Retournez sur votre session utilisateur responsable de la récupération de clés pour récupérer le certificat. Dans la MMC certificats, faites un clic droit sur Certificats - Utilisateur, Toutes les tâches, Inscrire et récupérer automatiquement les certificats.

Inscription du certificat

Vous verrez alors les types de certificats en attente que vous pouvez inscrire. Sélectionnez l'Agent de récupération de clé et cliquez sur Inscription.

L'inscription est terminée et le certificat est installé sur le compte utilisateur.

Installation du certificat

Dans la liste des certificats, vous pourrez ouvrir le nouveau certificat installé en double-cliquant dessus et contrôler son rôle et à qui il a été délivré.

Nouveau certificat installé

II-C - Activation de l'agent

Cette partie requiert un redémarrage de l'autorité de certification. Veillez donc à prendre les dispositions nécessaires pour redémarrer sans trop d'incidence (à une heure creuse par exemple).

Il va maintenant falloir attribuer le certificat à l'agent de récupération de clés. Allez dans les propriétés de votre autorité de certification.

Propriétés de l'autorité

Allez dans l'onglet Agents de récupération puis cliquez sur Archiver la clé. Indiquez le nombre d'agents que vous souhaitez créer puis cliquez sur Ajouter.

Activation de l'agent de récupération de clé

Il vous sera alors proposé de sélectionner un certificat parmi la liste présentée : cette liste ne montre que les certificats valides pour l'utilisation voulue. Vous pouvez afficher les propriétés si vous le souhaitez afin de vous assurer de la sélection.

Sélection du certificat du KRA

Le certificat sera ajouté à la liste des certificats de l'agent de récupération de clés. Par défaut, il est jugé comme non valide pour l'utilisation dans l'agent : il n'a simplement pas été chargé.

Certificat ajouté mais non chargé

Pour charger le certificat, cliquez sur Appliquer. Il vous sera alors demandé de redémarrer l'autorité de certification.

Vous devrez relancer la console de l'autorité de certification afin de prendre en compte le redémarrage de l'autorité. Si vous retournez voir les propriétés de l'agent de récupération, le certificat sera marqué comme valide.

Certificat valide

III - Configuration des modèles de certificats à archiver

Maintenant que l'agent est opérationnel, il va falloir activer l'archivage des clés sur les modèles de certificats. Je vais prendre un ancien modèle que j'ai créé pour l'article d'inscription automatique de certificats. Ce modèle nommé Utilisateur auto permet aux utilisateurs d'inscrire automatiquement des certificats. Afin d'éviter aux utilisateurs de perdre définitivement leur certificat, je vais activer l'archivage des clés privées.

Allez dans la console de gestion des modèles de certificats comme lors de l'activation du modèle de certificat de KRA. Faites un clic droit sur le modèle dont les clés seront archivées (dans mon cas Utilisateur auto) puis ouvrez les propriétés.

Propriétés du modèle de certificat

Allez dans l'onglet Traitement de la demande puis cochez Archive la clé privée de chiffrement du sujet. Enfin cliquez sur OK.

Activation de l'archivage

Voilà, c'est fini pour la configuration, il ne reste plus qu'à tester !

IV - Récupération d'une clé supprimée

ATTENTION ! Il ne faut utiliser l'agent de récupération uniquement si la clé a été supprimée. Si la clé a été perdue, volée ou si vous avez un doute sur la nature de la disparition de la clé, il faudra la révoquer et en créer une nouvelle.

Il est possible de récupérer uniquement les clés créées après l'activation de l'agent et de l'archivage. Toutes les clés créées précédemment sont irrécupérables.

Un utilisateur (michael) vient de supprimer sa clé par mégarde. Le modèle de certificat correspondant a été activé pour l'archivage et l'utilisateur a généré sa clé après cette activation. Il est donc possible de la récupérer. Vous savez quel type de clé l'utilisateur a perdu et comment cet utilisateur se nomme. Ces informations suffisent pour récupérer la clé.

IV-A - Identification du certificat correspondant à la clé perdue

Ouvrez la console de votre autorité de certification. Allez dans Certificats délivrés, cliquez sur Affichage, Ajouter/supprimer des colonnes.

Ajout d'une colonne

Cherchez Clé archivée dans les colonnes disponibles et cliquez sur Ajouter. Vous pouvez remonter cette colonne afin que cela soit plus pratique par la suite.

Ajout de la colonne Clé archivée

Vous reviendrez ensuite sur la liste des certificats délivrés par votre autorité : vous verrez alors les clés qui ont été archivées ou non.

Liste des certificats

Nous cherchons un certificat utilisateur généré automatiquement (modèle : Utilisateur auto) par le demandeur TODOROVIC\michael. Cela correspond à la demande n°16 : la colonne Clé archivée vaut Oui donc la clé sera récupérable. A partir du moment où le certificat est identifié, le travail est quasi-fini.

IV-B - Récupération du certificat à partir du numéro de série

Ouvrer le certificat identifié en double-cliquant dessus. Allez dans l'onglet Détail puis cliquez sur Numéro de série afin de le faire apparaître.

Récupération du numéro de série

Copiez le afin d'éviter de le retaper (et de faire une erreur de saisie).

Ouvrez une ligne de commande puis tapez :

certutil -getkey 00000000000000000000 certificat.p7b

Remplacez 00000000000000000000 par votre numéro de série en supprimant les espaces.

Récupération du certificat

Vous allez maintenant pouvoir récupérer la clé privée associée au certificat (clé publique).

IV-C - Récupération de la clé privée à partir du certificat

Toujours dans une ligne de commande, tapez :

certutil -p "M0tdeP@sse!" -recoverkey certificat.p7b cle-privee-publique.pfx

Vous devez reprendre le même nom de fichier p7b que précédemment. Le fichier pfx contiendra la clé privée et la clé publique de votre utilisateur. Il est capital de protéger cette clé avec un mot de passe très fort (argument -p de la ligne de commande). Le fichier pfx, bien que protégé par mot de passe fort, doit être transmis de manière sécurisée. Le mot de passe doit être également transmis de manière sécurisée. Une fois réinstallé chez l'utilisateur, le fichier pfx doit être détruit immédiatement.

Sur le client, le certificat et la clé privée réinstallés sont strictement les mêmes que les anciens. Vous pouvez le constater en comparant le numéro de série entre le client et l'autorité de certification. Il sera identique, ce qui signifie que le certificat et la clé privée n'ont pas été régénérés : il a bien eu récupération.

Clé privée présente

Numéro de série identique à l'ancien

V - Conclusion

L'agent de récupération de clés est très important dans une PKI. Il permet en effet de récupérer simplement des clés archivées et évite ainsi la révocation et la régénération prématurée de certificat. Je conseille de mettre en place ce type d'agent dès la création de la PKI sauf s'il est explicitement demandé de ne pas l'activer. Suggérez son activation lors de la planification de la PKI afin d'éviter des surprises plus tard.

VI - Remerciements

Je remercie blade159 et jacques_jean pour leurs conseils et leurs corrections.