Protection des clés privées

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 via le compte Service réseau du serveur FAS et sont 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’enregistrement, à 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’enregistrement : Citrix_RegistrationAuthority_ManualAuthorization (valide 24 heures par défaut) et Citrix_RegistrationAuthority (valide deux ans par défaut).

Au cours de l’étape 3 de l’onglet Configuration initiale de la console d’administration de Federated Authentication Service (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 24 heures par défaut. L’autorité de certification n’émet pas automatiquement ce certificat ; son émission doit être autorisée manuellement sur l’autorité de certification par un administrateur. Une fois le certificat émis pour le serveur FAS, FAS utilise le certificat Citrix_RegistrationAuthority_ManualAuthorization pour obtenir automatiquement le certificat Citrix_RegistrationAuthority (valide deux ans par défaut). Le serveur FAS supprime le certificat et la clé de Citrix_RegistrationAuthority_ManualAuthorization dès qu’il obtient le certificat Citrix_RegistrationAuthority.

La clé privée associée au certificat de l’autorité d’enregistrement est particulièrement sensible, car la stratégie de certificat de l’autorité d’enregistrement permet à quiconque possède la clé privée d’émettre des demandes de certificat pour l’ensemble des utilisateurs configurés dans le modèle. Par conséquent, quiconque contrôle cette clé peut se connecter à l’environnement en tant que n’importe quel utilisateur de l’ensemble.

Vous pouvez configurer le serveur FAS pour protéger les clés privées d’une manière qui correspond aux exigences de sécurité de votre organisation, en utilisant l’une des options suivantes :

  • Microsoft Enhanced RSA and AES Cryptographic Provider ou Microsoft Software Key Storage Provider pour le certificat de l’autorité d’enregistrement 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 de l’autorité d’enregistrement, et Microsoft Enhanced RSA and AES Cryptographic Provider ou Microsoft Software Key Storage Provider pour les clés privées des certificats utilisateur.
  • Un service cryptographique ou un fournisseur de stockage de clés d’un fournisseur de module de sécurité matérielle (HSM) avec le périphérique HSM pour le certificat de l’autorité d’enregistrement 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 dans le dossier Program Files\Citrix\Federated Authentication Service sur le serveur FAS.

image localisée

FAS lit le fichier de configuration uniquement lorsque le service démarre. Si des valeurs sont modifiées, FAS doit être redémarré avant que les nouveaux paramètres ne soient pris en compte.

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

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

Valeur Commentaire
true Utiliser les API CAPI
false (par défaut) Utiliser les API CNG

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

Valeur Commentaire
Microsoft Enhanced RSA and AES Cryptographic Provider Fournisseur CAPI par défaut
Microsoft Software Key Storage Provider Fournisseur CNG par défaut
Microsoft Platform Key Storage Provider Fournisseur TPM par défaut. Notez que le TPM n’est pas recommandé pour les clés utilisateur. Utilisez le TPM uniquement pour la clé de l’autorité d’enregistrement. Si vous prévoyez d’exécuter votre serveur FAS dans un environnement virtualisé, vérifiez auprès de votre fournisseur TPM et d’hyperviseur si la virtualisation est prise en charge.
HSM_Vendor CSP/Key Storage Provider Fourni par le fournisseur HSM. La valeur diffère selon les fournisseurs. Si vous prévoyez d’exécuter votre serveur FAS dans un environnement virtualisé, vérifiez auprès de votre fournisseur HSM si la virtualisation est prise en charge.

Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderType (Requis uniquement en cas d’API CAPI)

Valeur Commentaire
24 Par défaut. Fait référence à la propriété Microsoft KeyContainerPermissionAccessEntry.ProviderType PROV_RSA_AES 24. Doit toujours être 24, sauf si vous utilisez un HSM avec CAPI et que le fournisseur HSM spécifie le contraire.

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 du stockage de clés TPM, si pris en charge par le matériel.

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

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

Valeur Commentaire
2048 Par défaut. 1024 ou 4096 peuvent également être utilisés.

Les paramètres du fichier de configuration sont représentés graphiquement comme suit (les valeurs par défaut de l’installation sont affichées en rouge) :

image localisée

Exemples de scénarios de configuration

Exemple 1

Cet exemple couvre la clé privée du certificat de l’autorité d’enregistrement et les clés privées des certificats utilisateur stockées à l’aide du Microsoft Software Key Storage Provider.

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

Exemple 2

Cet exemple montre la clé privée du certificat de l’autorité d’enregistrement stockée dans le module TPM matériel de la carte mère du serveur FAS via le fournisseur de stockage de clés de plateforme Microsoft, et les clés privées des certificats utilisateur stockées à l’aide du fournisseur de stockage de clés logicielles Microsoft.

Ce scénario suppose que le module TPM de la carte mère de votre serveur FAS a été activé dans le BIOS conformément à la documentation du fabricant du module TPM, puis initialisé dans Windows ; consultez https://docs.microsoft.com/fr-fr/previous-versions/windows/it-pro/windows-vista/cc749022(v=ws.10).

Utilisation de la console d’administration FAS

La console d’administration FAS ne peut pas effectuer de demande de signature de certificat hors ligne, son utilisation n’est donc pas recommandée à moins que votre organisation n’autorise les demandes de signature de certificat en ligne pour les certificats d’autorité d’enregistrement.

Lors de 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 de la séquence de configuration) :

Étape 1 : Modifiez le fichier de configuration en changeant la ligne suivante comme suit :

Image localisée

Le fichier doit maintenant apparaître comme suit :

Image localisée

Certains TPM limitent la longueur de clé. La longueur de clé par défaut est de 2048 bits. Assurez-vous de spécifier 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 du fichier de configuration.

Étape 3 : Autorisez le service.

Étape 4 : Émettez manuellement la demande de certificat en attente depuis le serveur d’autorité de certification. Une fois le certificat d’autorité d’enregistrement obtenu, l’étape 3 de la séquence de configuration dans la console d’administration sera verte. À ce stade, la clé privée du certificat d’autorité d’enregistrement aura été générée dans le TPM. Le certificat sera valide pendant 2 ans par défaut.

Pour confirmer que la clé privée du certificat d’autorité d’enregistrement est correctement stockée dans le TPM, utilisez les commandes PowerShell suivantes. Le champ PrivateKeyProvider sera défini sur Microsoft Platform Crypto Provider si la clé privée du certificat d’autorité d’enregistrement est stockée dans le TPM :

Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1
Get-FasAuthorizationCertificate -FullCertInfo -Address localhost
<!--NeedCopy-->

Étape 5 : Rétablissez 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 par TPM, le matériel TPM peut être trop lent pour les déploiements à grande échelle.

Étape 6 : Redémarrez FAS. Cela force le service à relire le fichier de configuration et à refléter les valeurs modifiées. Les opérations automatiques de clé privée ultérieures affecteront les clés de certificat utilisateur ; ces opérations ne stockeront pas les clés privées dans le TPM, mais utiliseront le fournisseur de stockage de clés logicielles Microsoft.

Étape 7 : Sélectionnez l’onglet Règles dans la console d’administration FAS et modifiez les paramètres comme décrit dans Installer et configurer.

Utilisation de PowerShell

Le certificat d’autorité d’enregistrement peut être demandé hors ligne à l’aide de PowerShell. Cela convient aux organisations qui ne souhaitent pas que leur autorité de certification émette un certificat d’autorité d’enregistrement via une demande de signature de certificat en ligne. Vous ne pouvez pas effectuer une demande de signature de certificat d’autorité d’enregistrement hors ligne à l’aide de la console d’administration FAS.

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

Image localisée

Étape 2 : Sur votre serveur d’autorité de certification, ajoutez le composant logiciel enfichable MMC Modèles de certificats. 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 votre serveur d’autorité de certification, ajoutez le composant logiciel enfichable MMC Autorité de certification. Cliquez avec le bouton droit sur Modèles de certificats. Sélectionnez Nouveau, puis cliquez sur Modèle de certificat à émettre. Choisissez le modèle que vous venez de créer.

Étape 4 : Chargez les cmdlets PowerShell suivantes sur le serveur FAS :

Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1

Étape 5 : Générez la paire de clés RSA à l’intérieur du TPM du serveur FAS et créez la demande de signature de certificat en saisissant la cmdlet PowerShell suivante sur le serveur FAS. Remarque : Certains TPM limitent la longueur de clé. La longueur de clé par défaut est de 2048 bits. Assurez-vous de 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

Ce qui suit s’affiche :

Image localisée

Remarques :

  • L’ID GUID (dans cet exemple, « 5ac3d8bd-b484-4ebe-abf8-4b2cfd62ca39 ») est requis à une étape ultérieure.
  • Considérez cette cmdlet PowerShell comme une « substitution » unique utilisée pour générer la clé privée du certificat d’autorité d’enregistrement.
  • Lors de l’exécution de cette cmdlet, les valeurs lues dans le fichier de configuration au démarrage de FAS sont vérifiées pour déterminer la longueur de clé à utiliser (la valeur par défaut est 2048).
  • Étant donné que -UseTPM est défini sur $true dans cette opération manuelle de clé privée de certificat d’autorité d’enregistrement initiée par PowerShell, le système ignore les valeurs du fichier qui ne correspondent pas aux paramètres requis pour utiliser un TPM.
  • L’exécution de cette cmdlet ne modifie aucun paramètre dans le fichier de configuration.
  • Lors des opérations ultérieures de clé privée de certificat utilisateur initiées automatiquement par FAS, les valeurs lues dans le fichier au démarrage de FAS 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 le TPM.

Pour vérifier que le TPM a été utilisé pour générer la paire de clés, consultez le journal des applications dans l’Observateur d’événements Windows sur le serveur FAS, au moment où la paire de clés est générée.

Image localisée

Remarque : « [TPM : True] »

Suivi de :

localized image

Remarque : « Fournisseur : [CNG] Microsoft Platform Crypto Provider »

Étape 6 : Copiez la section de demande de certificat dans un éditeur de texte et enregistrez-la sur le disque en tant que fichier texte.

  • localized image

Étape 7 : Soumettez la demande de signature de certificat à votre autorité de certification en tapant ce qui suit 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

Le résultat suivant s’affiche :

localized image

À ce stade, une fenêtre Liste des autorités de certification peut apparaître. L’autorité de certification dans cet exemple a l’inscription http (en haut) et DCOM (en bas) activée. Sélectionnez l’option DCOM, si disponible :

localized image

Une fois l’autorité de certification spécifiée, PowerShell affiche l’ID de demande :

localized image

Étape 8 : Sur le serveur de l’autorité de certification, dans le composant logiciel enfichable MMC de l’autorité de certification, cliquez sur Demandes en attente. Notez l’ID de demande. Ensuite, cliquez avec le bouton droit sur la demande et choisissez Émettre.

Étape 9 : Sélectionnez le nœud Certificats émis. Recherchez le certificat qui vient d’être émis (l’ID de demande doit correspondre). Double-cliquez pour ouvrir le certificat. Sélectionnez l’onglet Détails. Cliquez sur Copier dans un fichier. L’Assistant Exportation de certificat se lance. Cliquez sur Suivant. Choisissez les options suivantes pour le format de fichier :

localized image

Le format doit être « Norme de syntaxe de message cryptographique – Certificats PKCS #7 (.P7B) » et « Inclure tous les certificats dans le chemin 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 de l’autorité d’enregistrement sur le serveur FAS en entrant la cmdlet PowerShell suivante sur le serveur FAS :

localized image

Par exemple :

localized image

Le résultat suivant s’affiche :

localized image

Pour confirmer que la clé privée du certificat de l’autorité d’enregistrement est correctement stockée dans le TPM, 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’enregistrement est stockée dans le TPM :

Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1
Get-FasAuthorizationCertificate -FullCertInfo -Address localhost
<!--NeedCopy-->

Étape 12 : Fermez la console d’administration FAS, puis redémarrez-la.

localized image

Remarque : L’étape « Autoriser ce service » est cochée en vert.

Étape 13 : Sélectionnez l’onglet Règles dans la console d’administration FAS et modifiez les paramètres décrits dans Installer et configurer.

Exemple 3

Cet exemple couvre une clé privée de certificat d’autorité d’enregistrement et des 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 « Fournisseur de stockage de clés du fournisseur HSM ».

Si vous prévoyez d’exécuter votre serveur FAS dans un environnement virtualisé, vérifiez auprès de votre fournisseur HSM la prise en charge de l’hyperviseur.

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

localized image

Étape 2 : Consultez la documentation de votre fournisseur de module de sécurité matérielle (HSM) pour déterminer la valeur de ProviderName de votre HSM. Si votre HSM utilise CAPI, le fournisseur peut être désigné dans la documentation comme un fournisseur de services cryptographiques (CSP). Si votre HSM utilise CNG, le fournisseur peut être désigné comme un fournisseur de stockage de clés (KSP).

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

localized image

Le fichier doit maintenant apparaître comme suit :

localized image

Ce scénario suppose que votre HSM utilise CNG, de sorte que la valeur ProviderLegacyCsp est définie sur false. Si votre HSM utilise CAPI, la valeur ProviderLegacyCsp doit être définie sur true. Consultez la documentation de votre fournisseur de HSM pour déterminer si votre HSM utilise CAPI ou CNG. Consultez également la documentation de votre fournisseur de HSM sur les longueurs de clé prises en charge pour la génération de clés RSA asymétriques. 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 spécifiez 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 du fichier de configuration.

Étape 5 : Générez la paire de clés RSA à l’intérieur du HSM et créez la demande de signature de certificat en cliquant sur Autoriser dans l’onglet Configuration initiale de la console d’administration 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 de l’application dans le journal des événements Windows :

localized image

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

Étape 7 : Sur le serveur de l’autorité de certification, dans la console MMC de l’autorité de certification, sélectionnez le nœud Demandes en attente :

localized image

Cliquez avec le bouton droit sur la demande et sélectionnez Émettre.

Remarque : L’étape « Autoriser ce service » est cochée en vert.

localized image

Étape 8 : Sélectionnez l’onglet Règles dans la console d’administration FAS et modifiez les paramètres comme décrit dans Installer et configurer.

Stockage des 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 de l’autorité d’enregistrement, entrez les cmdlets 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 :

localized image

Pour obtenir une liste des certificats utilisateur, entrez :

Get-FasUserCertificate –address \<FAS server FQDN>

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

localized image

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

localized image

Informations connexes

Protection des clés privées