Protection de clé privée
Introduction
Les certificats sont stockés dans une base de données intégrée 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, à 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 vous cliquez sur Autoriser, le serveur FAS génère une paire de clés et envoie une demande de signature de certificat à 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 d’autorité d’inscription est particulièrement sensible car la stratégie de certificat d’autorité d’inscription 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 d’autorité d’inscription 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 d’autorité d’inscription 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 d’autorité d’inscription 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.
FAS lit le fichier de configuration uniquement lorsque le service démarre. Si des valeurs sont modifiées, 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 le module de plateforme sécurisée (TPM) pour la clé d’autorité d’inscription uniquement. 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 de l’autorité d’inscription 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 de l’autorité d’inscription 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).
Utilisation de la console d’administration FAS
La console d’administration de FAS 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 de signature de certificat en mode connecté pour les certificats d’autorité d’inscription.
Lorsque vous effectuez la configuration initiale de 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. Assurez-vous que vous spécifiez une longueur de clé prise en charge par votre matériel.
Étape 2: redémarrez le Service d’authentification fédérée Citrix pour lire les valeurs à partir du fichier de configuration.
Étape 3 : autorisez le service.
Étape 4 : émettez manuellement la requête de certificat en attente depuis le serveur de l’autorité de certification. Une fois que le certificat d’autorité d’inscription a été obtenu, l’étape 3 dans la séquence d’installation de la console d’administration doit être indiquée en vert. À ce stade, la clé privée du certificat d’autorité d’inscription est générée dans la puce TPM. Le certificat sera valide pendant 2 ans par défaut.
Pour vérifier que la clé privée du certificat de l’autorité d’inscription est correctement stockée dans le module de plateforme sécurisée, utilisez les commandes PowerShell suivantes. Le champ PrivateKeyProvider sera défini sur Microsoft Platform Crypto Provider si la clé privée du certificat de l’autorité d’inscription est stockée dans le module de plateforme sécurisée :
Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1
Get-FasAuthorizationCertificate -FullCertInfo -Address localhost
<!--NeedCopy-->
Étape 5 : 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 6 : redémarrez FAS. 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 7 : sélectionnez l’onglet Rules dans la console de gestion FAS et modifiez les paramètres décrits dans Installer et configurer.
Utilisation de PowerShell
Le certificat de l’autorité d’inscription peut être demandé hors connexion à l’aide de PowerShell. Cette option convient aux entreprises qui ne souhaitent pas que l’autorité de certification émette un certificat d’autorité d’inscription via une demande de signature de certificat en ligne. Vous ne pouvez pas effectuer de demande de signature de certificat d’autorité d’inscription hors connexion à l’aide de la console d’administration de FAS.
Étape 1 : lors de la configuration initiale de FAS à l’aide de la console de gestion, effectuez uniquement les deux premières étapes : « Déployer les modèles de certificat » et « Configurer une 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 votre 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 demande de signature de certificat en entrant l’applet de commande PowerShell suivante sur le serveur FAS. 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 :
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 d’autorité d’inscription.
- Lors de l’exécution de cette applet de commande, les valeurs qui sont lues à partir du fichier de configuration lorsque 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 d’autorité d’inscription 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 FAS a démarré sont 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.
Remarque : “[TPM: True]”
Suivi de :
Remarque : “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 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 :
À 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 a été spécifiée, PowerShell affiche la RequestID :
Étape 8 : sur le serveur de l’autorité de certification, dans le composant logiciel enfichable MMC d’autorité de certification, 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 d’autorité d’inscription 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 :
Pour vérifier que la clé privée du certificat de l’autorité d’inscription est correctement stockée dans le module de plateforme sécurisée, utilisez les commandes PowerShell suivantes. Le champ PrivateKeyProvider sera défini sur Microsoft Platform Crypto Provider si la clé privée du certificat de l’autorité d’inscription est stockée dans le module de plateforme sécurisée :
Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1
Get-FasAuthorizationCertificate -FullCertInfo -Address localhost
<!--NeedCopy-->
Étape 12 : fermez la console de gestion FAS, puis redémarrez-la.
Remarque : l’étape « Autoriser ce service » comporte une coche verte.
Étape 13 : sélectionnez l’onglet Rules dans la console de gestion FAS et modifiez les paramètres décrits dans Installer et configurer.
Exemple 3
Cet exemple illustre une clé privée de certificat d’autorité d’inscription 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 de FAS à l’aide de la console de gestion, effectuez uniquement les deux premières étapes : « Déployer les modèles de certificat » et « Configurer une 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 Authorize 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, dans la MMC d’autorité de certification, sélectionnez le nœud Demandes en attente.
Cliquez avec le bouton droit sur la demande et choisissez Délivrer.
Remarque : l’étape « Autoriser ce service » comporte une coche verte.
Étape 8 : sélectionnez l’onglet Rules dans la console de gestion FAS et modifiez les paramètres décrits dans Installer et configurer.
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 d’autorité d’inscription, 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 :
Pour obtenir une liste de certificats utilisateur, entrez :
Get-FasUserCertificate –address \<FAS server FQDN>
Par exemple, Get-FasUserCertificate –address cg-fas-2.auth.net
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 -KeyInfo $true
Informations connexes
- L’article Installer et configurer est le document de référence principal pour obtenir des informations sur l’installation et la configuration de 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 avancée.