Protection des clés privées du service d’authentification fédérée
Introduction
Les certificats sont stockés dans le registre sur le serveur FAS. Les clés privées associées sont stockées par le biais du compte de service réseau du serveur FAS 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 serveur FAS, 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.
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 | Commentaire |
---|---|
true | Utiliser les API CAPI |
false (valeur par défaut) | Utiliser les API CNG |
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderName (nom du fournisseur à utiliser)
Valeur | Commentaire |
---|---|
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 | Commentaire |
---|---|
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 | Commentaire |
---|---|
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 | Commentaire |
---|---|
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) :
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://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-vista/cc749022(v=ws.10)?redirectedfrom=MSDN.
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 ».
É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 :
É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 <nom de domaine complet du serveur FAS>
Par exemple :
New-FasAuthorizationCertificateRequest -UseTPM $true -address fashsm.auth.net
Les éléments suivants sont affichés :
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.
Notez : “[TPM: True]”
Suivi de :
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.
É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:<modèle de certificat de l'étape 2>" <fichier de demande de certificat de l'étape 6>
Par exemple :
certreq -submit -attrib “certificatetemplate:Offline_RA” C:\Users\Administrator.AUTH\Desktop\usmcertreq.txt
Les éléments suivants sont affichés :
À 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 :
Après que l’autorité de certification (CA) a été spécifiée, PowerShell affiche la RequestID :
É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 :
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 :
Par exemple :
Les éléments suivants sont affichés :
Étape 12 : fermez la console de gestion FAS, puis redémarrez-la.
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 :
Le fichier doit maintenant s’afficher comme suit :
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 :
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 ».
É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 :
Le fichier doit maintenant s’afficher comme suit :
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 :
Remarque : [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.
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: [<Nom CA>] »
É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 <nom de domaine complet du serveur FAS>
Par exemple :
Get-FasAuthorizationCertificate –address cg-fas-2.auth.net
Pour obtenir une liste de certificats utilisateur, entrez :
Get-FasUserCertificate –address <nom de domaine complet du serveur FAS>
Par exemple :
Get-FasUserCertificate –address cg-fas-2.auth.net
Informations connexes
- L’article Service d’authentification fédérée est le document de référence principal pour obtenir des informations sur l’installation et la configuration du FAS.
- Les déploiements FAS courants sont décrits dans l’article Vue d’ensemble des architectures du Service d’authentification fédérée.
- D’autres informations pratiques sont disponibles dans l’article Configuration et gestion du service d’authentification fédérée.