Product Documentation

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

Jul 25, 2017

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.

localized image

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.ProtectionClé (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) :

localized image

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 ».

localized image

É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 :

localized image

É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

Par exemple :

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

Les éléments suivants sont affichés :

localized image

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.

localized image

Notez « [TPM: True] » 

Suivi de :

localized image

Notez « Provider: [CNG] Microsoft 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.

localized image

É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:"

Par exemple : 

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

Les éléments suivants sont affichés :

localized image

À 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 :

localized image

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

localized image

É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 :

localized image

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 registre du serveur FAS en entrant l'applet de commande PowerShell suivante sur le serveur FAS :

localized image

Par exemple :

localized image

Les éléments suivants sont affichés :

localized image

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

localized image

Vous remarquerez que l'étape « Authorize this Service » est indiquée en vert, et affiche maintenant « 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 :

localized image

Le fichier doit maintenant s'afficher comme suit :

localized image

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.

É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 :

localized image

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 ».

localized image

É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 :

localized image

Le fichier doit maintenant s'afficher comme suit :

localized image

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 :

localized image

Note : [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.

localized image

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

Vous remarquerez que l'étape « Authorize this Service » est indiquée en vert, et affiche maintenant « Deauthorize this Service ». L'entrée en-dessous indique « Authorized by: [] »

localized image

É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 le registre.

Remarque : lorsque vous utilisez un HSM pour stocker des clés privées, les conteneurs HSM sont identifiés par un GUID. Le GUID pour la clé privée dans le HSM correspond au GUID du certificat équivalent dans le registre.

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

Par exemple :

Get-FasAuthorizationCertificate –address cg-fas-2.auth.net

localized image

Pour obtenir une liste de certificats utilisateur, entrez :

Get-FasUserCertificate –address

Par exemple :

Get-FasUserCertificate –address cg-fas-2.auth.net

localized image

Informations connexes