Protection des clés privées du service d’authentification fédérée

Introduction

Les clés privées sont stockées par le biais du compte de service réseau et marquées comme non-exportables par défaut.

Il existe deux types de clés privées:

  • La clé privée associée au certificat de l’autorité d’inscription (RA), à partir du modèle de certificat Citrix_RegistrationAuthority.
  • Les clés privées associées aux certificats utilisateur, à partir du modèle de certificat Citrix_SmartcardLogon.

Il existe en fait deux certificats d’autorité d’inscription : Citrix_RegistrationAuthority_ManualAuthorization (valide pendant 24 heures par défaut) et Citrix_RegistrationAuthority (valide pendant deux ans par défaut).

Lors de l’étape 3 de la configuration initiale dans la console de gestion FAS, lorsque l’administrateur clique sur « Autoriser », le serveur FAS génère une paire de clés et envoie une demande de signature de certificat (CSR) à l’autorité de certification pour le certificat Citrix_RegistrationAuthority_ManualAuthorization. Il s’agit d’un certificat temporaire, valide pendant 24 heures par défaut. L’autorité de certification n’émet pas automatiquement ce certificat ; son émission doit être manuellement autorisée sur l’autorité de certification par un administrateur. Une fois que le certificat a été généré sur le FAS serveur, FAS utilise le certificat Citrix_RegistrationAuthority_ManualAuthorization pour obtenir automatiquement le certificat Citrix_RegistrationAuthority (valide pendant deux ans par défaut). Le serveur FAS supprime le certificat et la clé pour Citrix_RegistrationAuthority_ManualAuthorization dès qu’il obtient le certificat Citrix_RegistrationAuthority.

La clé privée associée au certificat RA est particulièrement sensible car la stratégie de certificat RA permet à toute personne qui dispose de la clé privée d’émettre des demandes de certificat pour le groupe d’utilisateurs configuré dans le modèle. En conséquence, toute personne qui contrôle cette clé peut se connecter à l’environnement en tant qu’utilisateur du groupe.

Vous pouvez configurer le serveur FAS pour protéger les clés privées selon les besoins de sécurité de votre organisation, à l’aide de l’une des configurations suivantes :

  • Microsoft Enhanced RSA and AES Cryptographic Provider ou Microsoft Software Key Storage Provider pour le certificat RA et les clés privées des certificats utilisateur.
  • Microsoft Platform Key Storage Provider avec une puce Trusted Platform Module (TPM) pour la clé privée du certificat RA et Microsoft Enhanced RSA and AES Cryptographic Provider ou Microsoft Software Key Storage Provider pour les clés privées des certificats utilisateur.
  • Un fournisseur de service cryptographique ou un fournisseur de stockage de clés de module de sécurité matérielle (HSM) avec le périphérique HSM pour le certificat RA et les clés privées des certificats utilisateur.

Paramètres de configuration des clés privées

Configurez FAS pour utiliser l’une des trois options. Utilisez un éditeur de texte pour modifier le fichier Citrix.Authentication.FederatedAuthenticationService.exe.config. L’emplacement par défaut du fichier est le dossier Program Files\Citrix\Federated Authentication Service sur le serveur FAS.

image localisée

Le FAS lit le fichier de configuration uniquement lorsque le service démarre. Si des valeurs sont modifiées, le FAS doit être redémarré avant qu’il reflète les nouveaux paramètres.

Définissez les valeurs appropriées dans le fichier Citrix.Authentication.FederatedAuthenticationService.exe.config comme suit :

Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderLegacyCsp (basculement entre API CAPI et CNG)

Valeur Commentaires
vrai Utiliser les API CAPI
false (valeur par défaut) Utiliser les API CNG

Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderName (nom du fournisseur à utiliser)

Valeur Commentaires
Microsoft Enhanced RSA and Cryptographic Provider Fournisseur CAPI par défaut
Fournisseur de stockage des clés de logiciel Microsoft Fournisseur CNG par défaut
Fournisseur de stockage des clés de plateforme Microsoft Fournisseur TPM par défaut Veuillez noter que TPM n’est pas recommandé pour les clés utilisateur. Utilisez TPM uniquement pour la clé RA. Si vous prévoyez d’exécuter votre serveur FAS dans un environnement virtualisé, demandez à votre fournisseur d’hyperviseur et de puce TPM si la virtualisation est prise en charge.
HSM_Vendor CSP/Fournisseur de stockage de clés Fourni par le fournisseur HSM. La valeur diffère d’un fournisseur à l’autre. Si vous prévoyez d’exécuter votre serveur FAS dans un environnement virtualisé, demandez à votre fournisseur HSM si la virtualisation est prise en charge.

Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderType (requis uniquement avec API CAPI)

Valeur Commentaires
24 Valeur par défaut. Fait référence à la propriété Microsoft KeyContainerPermissionAccessEntry.ProviderType PROV_RSA_AES 24. Doit être toujours 24, sauf si vous utilisez un HSM avec CAPI et que le fournisseur HSM en décide autrement.

Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.KeyProtection (lorsque FAS doit effectuer une opération de clé privée, il utilise la valeur spécifiée ici) Contrôle l’indicateur « exportable » des clés privées. Permet l’utilisation de stockage de clé TPM, s’il est pris en charge par le matériel.

Valeur Commentaires
NoProtection La clé privée peut être exportée.
GenerateNonExportableKey Valeur par défaut. La clé privée ne peut pas être exportée.
GenerateTPMProtectedKey La clé privée sera gérée à l’aide de TPM. La clé privée est stockée via le nom de fournisseur que vous avez spécifié dans NomFournisseur (par exemple, Microsoft Platform Key Storage Provider).

Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.KeyLength (spécifiez la taille de la clé privée en bits)

Valeur Commentaires
2048 Default. 1024 ou 4096 peut également être utilisé.

Les paramètres du fichier de configuration sont représentés sous forme de graphiques comme suit (les valeurs par défaut d’installation apparaissent en rouge) :

image localisée

Exemples de scénario de configuration

Exemple 1

Cet exemple concerne la clé privée du certificat RA et les clés privées des certificats utilisateur à l’aide de Microsoft Software Key Storage Provider

Il s’agit de la configuration post-installation par défaut. Aucune configuration de clé privée supplémentaire n’est requise.

Exemple 2

Cet exemple illustre la clé privée de certificat RA stockée dans la puce TPM matérielle de la carte mère du serveur FAS via Microsoft Platform Key Storage Provider et les clés privées des certificats utilisateur stockées à l’aide de Microsoft Software Key Storage Provider.

Ce scénario part du principe que la puce TPM sur la carte mère de votre serveur FAS a été activée dans le BIOS selon la documentation du fabricant de la puce TPM et initialisée dans Windows ; consultez la section https://technet.microsoft.com/en-gb/library/cc749022(v=ws.10).aspx.

Utilisation de PowerShell (recommandé)

Le certificat RA peut être demandé en mode déconnecté à l’aide de PowerShell. Cette option est recommandée pour les entreprises qui ne souhaitent pas que l’autorité de certification émette un certificat RA via une demande de signature de certificat en ligne. Une demande de signature de certificat RA en mode déconnecté ne peut pas être effectuée à l’aide de la console de gestion FAS.

Étape 1 : lors de la configuration initiale du FAS à l’aide de la console de gestion, effectuez uniquement les deux premières étapes : « Déployer les modèles de certificat » et « Configurer l’autorité de certification ».

image localisée

Étape 2 : sur le serveur d’autorité de certification, ajoutez le composant logiciel enfichable MMC des modèles de certificat. Cliquez avec le bouton droit sur le modèle Citrix_RegistrationAuthority_ManualAuthorization et sélectionnez Dupliquer le modèle.

Sélectionnez l’onglet Général. Modifiez le nom et la période de validité. Dans cet exemple, le nom est Offline_RA et la période de validité est de 2 ans :

image localisée

Étape 3 : sur le serveur d’autorité de certification, ajoutez le composant logiciel enfichable MMC d’autorité de certification. Cliquez avec le bouton droit sur Modèles de certificats. Sélectionnez Nouveau, puis cliquez sur Modèle de certificat à délivrer. Choisissez le modèle que vous venez de créer.

Étape 4 : chargez les applets de commande PowerShell suivantes sur le serveur FAS :

Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1

Étape 5 : générez la paire de clés RSA dans la puce TPM du serveur FAS et créez la CSR en entrant l’applet de commande PowerShell suivante sur le FAS serveur. Remarque : certaines puces TPM limitent la longueur de clé. La valeur par défaut est une longueur de 2048 bits. Veillez à spécifier une longueur de clé prise en charge par votre matériel.

New-FasAuthorizationCertificateRequest -UseTPM $true -address \<FQDN of FAS Server>

Par exemple :

New-FasAuthorizationCertificateRequest -UseTPM $true -address fashsm.auth.net

Les éléments suivants sont affichés :

image localisée

Remarques :

  • L’ID GUID (dans cet exemple, « 5ac3d8bd-b484-4ebe-abf8-4b2cfd62ca39 ») est requis dans une étape suivante.
  • Considérez cette applet de commande PowerShell comme un « remplacement » à usage unique, utilisé pour générer la clé privée pour le certificat RA.
  • Lors de l’exécution de cette applet de commande, les valeurs qui sont lues à partir du fichier de configuration lorsque le service FAS démarre sont vérifiées pour déterminer la longueur de clé à utiliser (la valeur par défaut est de 2048).
  • Étant donné que -UseTPM est défini sur $true dans cette opération manuelle de clé privée de certificat RA initiée par PowerShell, le système ignore les valeurs du fichier qui ne correspondent pas aux paramètres requis pour utiliser une puce TPM.
  • L’exécution de cette applet de commande ne modifie pas les paramètres du fichier de configuration.
  • Durant les opérations automatiques de clé privée de certificat utilisateur initiées par FAS, les valeurs qui ont été lues à partir du fichier lorsque le service FAS a démarré seront utilisées.
  • Il est également possible de définir la valeur KeyProtection dans le fichier de configuration sur GenerateTPMProtectedKey lorsque le serveur FAS émet des certificats utilisateur pour générer des clés privées de certificat utilisateur protégées par la puce TPM.

Pour vérifier que la puce TPM a été utilisée pour générer la paire de clés, consultez le journal d’application dans l’observateur d’événements de Windows sur le serveur FAS, à l’heure où la paire de clés a été générée.

image localisée

Notez : “TPM: [True”]

Suivi de :

image localisée

Notez : “Provider: CNG M[icr]osoft Platform Crypto Provider”

Étape 6 : copiez la section de requête de certificat dans un éditeur de texte et enregistrez-la sur disque en tant que fichier texte.

image localisée

Étape 7 : envoyez la demande de signature de certificat à l’autorité de certification (CA) en tapant les commandes suivantes dans PowerShell sur le serveur FAS :

certreq -submit -attrib "certificatetemplate:\<certificate template from step 2>" \<certificate request file from step 6>

Par exemple :

certreq -submit -attrib "certificatetemplate:Offline_RA" C:\Users\Administrator.AUTH\Desktop\usmcertreq.txt

Les éléments suivants sont affichés :

image localisée

À ce stade, une fenêtre contenant une liste d’autorités de certification peut s’afficher. Dans cet exemple, les inscriptions http (haut) et DCOM (bas) sont activées toutes les deux pour l’autorité de certification. Sélectionnez l’option DCOM, si elle est disponible :

image localisée

Après que l’autorité de certification (CA) a été spécifiée, PowerShell affiche la RequestID :

image localisée

Étape 8 : sur le serveur de l’autorité de certification (CA), dans le composant logiciel enfichable MMC CA, cliquez sur Demandes en attente. Notez l’ID de la demande, RequestID. Puis cliquez avec le bouton droit sur la demande et choisissez Délivrer.

Étape 9 : sélectionnez le nœud Certificats délivrés. Recherchez le certificat qui vient d’être émis (l’ID de demande doit correspondre). Cliquez deux fois pour ouvrir le certificat. Sélectionnez la page de l’onglet Détails. Cliquez sur Copier dans un fichier. L’Assistant d’exportation de certificat s’ouvre. Cliquez sur Suivant. Choisissez les options suivantes pour le format de fichier :

image localisée

Le format doit être Standard de syntaxe de message cryptographique – Certificate PKCS #7 (.P7B) et Inclure tous les certificats dans le chemin d’accès de certification, si possible doit être sélectionné.

Étape 10 : copiez le fichier de certificat exporté sur le serveur FAS.

Étape 11 : importez le certificat RA dans le serveur FAS en entrant l’applet de commande PowerShell suivante sur le serveur FAS :

image localisée

Par exemple :

image localisée

Les éléments suivants sont affichés :

image localisée

Étape 12 : fermez la console de gestion FAS, puis redémarrez-la.

image localisée

Remarque :

L’étape « Authorize this Service » est indiquée en vert et devient « Deauthorize this Service ». L’entrée en-dessous indique « Authorized by: Offline CSR »

Étape 13 : sélectionnez l’onglet User Roles dans la console de gestion FAS et modifiez les paramètres décrits dans l’article FAS principal.

Remarque :

Annuler l’autorisation du FAS par le biais de la console de gestion supprime la règle de l’utilisateur.

Utilisation de la console de gestion FAS

La console de gestion ne peut pas effectuer de requête de signature de certificat en mode déconnecté ; son utilisation n’est donc pas recommandée si votre organisation ne permet pas les requêtes CSR en mode connecté pour les certificats RA.

Lorsque vous effectuez les étapes de configuration initiale du FAS, après le déploiement des modèles de certificat et la configuration de l’autorité de certification, mais avant d’autoriser le service (étape 3 dans la séquence de configuration) :

Étape 1 : modifiez le fichier de configuration en modifiant la ligne suivante comme suit :

image localisée

Le fichier doit maintenant s’afficher comme suit :

image localisée

Certaines puces TPM limitent la longueur de clé. La valeur par défaut est une longueur de 2048 bits. Assurez-vous que vous spécifiez une longueur de clé prise en charge par votre matériel.

Étape 2 : autorisez le service.

Étape 3 : émettez manuellement la requête de certificat en attente depuis le serveur de l’autorité de certification. Une fois que le certificat RA a été obtenu, l’étape 3 dans la séquence d’installation de la console de gestion doit être indiquée en vert. À ce stade, la clé privée du certificat RA est générée dans la puce TPM. Le certificat sera valide pendant 2 ans par défaut.

Étape 4 : modifiez le fichier de configuration comme suit :

image localisée

Remarque :

Bien que FAS puisse générer des certificats utilisateur avec des clés protégées TPM, le matériel TPM peut être trop lent pour les déploiements de grande envergure.

Étape 5 : redémarrez le Service d’authentification fédérée Citrix. Cela oblige le service à relire le fichier de configuration et à refléter les valeurs modifiées. Les opérations de clé privée automatiques suivantes affecteront les clés de certificat utilisateur ; ces opérations ne stockeront pas les clés privées dans la puce TPM, mais utiliseront Microsoft Software Key Storage Provider.

Étape 6 : sélectionnez l’onglet User Roles dans la console de gestion FAS et modifiez les paramètres décrits dans l’article FAS principal.

Remarque :

Annuler l’autorisation du FAS par le biais de la console de gestion supprime la règle de l’utilisateur.

Exemple 3

Cet exemple illustre une clé privée de certificat RA et les clés privées de certificats utilisateur stockées dans un HSM. Cet exemple suppose un HSM configuré. Votre HSM aura un nom de fournisseur, par exemple « HSM_Vendor’s Key Storage Provider ».

Si vous prévoyez d’exécuter votre serveur FAS dans un environnement virtualisé, demandez à votre fournisseur HSM si l’hyperviseur est pris en charge.

Étape 1. Lors de la configuration initiale du FAS à l’aide de la console de gestion, effectuez uniquement les deux premières étapes : « Déployer les modèles de certificat » et « Configurer l’autorité de certification ».

image localisée

Étape 2 : consultez la documentation de votre fournisseur HSM pour déterminer ce que doit être la valeur ProviderName de votre HSM. Si votre HSM utilise CAPI, le fournisseur peut être désigné dans la documentation comme fournisseur de service cryptographique (CSP). Si votre HSM utilise CNG, le fournisseur peut être désigné comme Key Storage Provider (KSP).

Étape 3 : modifiez le fichier de configuration comme suit :

image localisée

Le fichier doit maintenant s’afficher comme suit :

image localisée

Ce scénario part du principe que votre HSM utilise CNG de sorte que la valeur ProviderLegacyCsp est définie sur false. Si votre HSM utilise CAPI, la valeur ProviderLegacyCsp devrait être définie sur true. Consultez la documentation de votre fournisseur HSM pour déterminer si votre HSM utilise CAPI ou CNG. De plus, consultez la documentation de votre fournisseur HSM sur les longueurs de clé prises en charge pour la génération de clé asymétrique RSA. Dans cet exemple, la longueur de clé est définie sur la valeur par défaut de 2048 bits. Assurez-vous que la longueur de clé que vous avez spécifiée est prise en charge par votre matériel.

Étape 4: redémarrez le Service d’authentification fédérée Citrix pour lire les valeurs à partir du fichier de configuration.

Étape 5 : générez la paire de clés RSA dans le HSM et créez la demande de signature de certificat en cliquant sur Autoriser dans l’onglet Initial Setup de la console de gestion FAS.

Étape 6 : pour vérifier que la paire de clés a été générée dans le HSM, vérifiez les entrées d’application dans le journal d’événements Windows :

image localisée

Notez : [Provider: [CNG] HSM_Vendor’s Key Storage Provider]

Étape 7 : sur le serveur de l’autorité de certification (CA), dans la MMC CA, sélectionnez le nœud Demandes en attente.

image localisée

Cliquez avec le bouton droit sur la demande et choisissez Délivrer.

Remarque :

L’étape « Authorize this Service » est indiquée en vert et devient « Deauthorize this Service ». L’entrée en-dessous indique « Authorized by: [<Nom CA>] »

image localisée

Étape 8 : sélectionnez l’onglet User Roles dans la console de gestion FAS et modifiez les paramètres décrits dans l’article FAS principal.

Remarque :

Annuler l’autorisation du FAS par le biais de la console de gestion supprime la règle de l’utilisateur.

Stockage de certificats FAS

FAS n’utilise pas le magasin de certificats Microsoft sur le serveur FAS pour stocker ses certificats. Il utilise une base de données intégrée.

Pour déterminer le GUID du certificat RA, entrez les applets de commande PowerShell suivantes sur le serveur FAS :

Add-pssnapin Citrix.a\*
Get-FasAuthorizationCertificate –address \<FAS server FQDN>

Par exemple, Get-FasAuthorizationCertificate –address cg-fas-2.auth.net :

image localisée

Pour obtenir une liste de certificats utilisateur, entrez :

Get-FasUserCertificate –address \<FAS server FQDN>

Par exemple, Get-FasUserCertificate –address cg-fas-2.auth.net

image localisée

Remarque :

Lorsque vous utilisez un HSM pour stocker des clés privées, les conteneurs HSM sont identifiés par un GUID. Le GUID de la clé privée dans le HSM peut être obtenu à l’aide de :

Get-FasUserCertificate –address \<FAS server FQDN> -KeyInfo $true

Par exemple :

Get-FasUserCertificate –address [fas3.djwfas.net](http://fas3.djwfas.net/) -KeyInfo $true

image localisée

Informations connexes

Protection des clés privées du service d’authentification fédérée