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 au moyen du 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, issue du modèle de certificat Citrix_RegistrationAuthority.
  • Les clés privées associées aux certificats utilisateur, issues du modèle de certificat Citrix_SmartcardLogon.

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

À l’étape 3 de l’onglet Configuration initiale dans 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 pendant 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 pendant 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 politique 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 cet 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é pour que les nouveaux paramètres soient pris en compte.

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

Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderLegacyCsp (bascule 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écifiez 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 TPM, puis initialisé dans Windows ; consultez 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 FAS ne peut pas effectuer de demande de signature de certificat hors ligne, il n’est donc pas recommandé de l’utiliser à 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 importants.

É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 ultérieures de clé privée 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. Ceci 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, effectuez uniquement 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 entrant 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 du serveur FAS\>

Par exemple :

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

Le résultat suivant 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 automatiques ultérieures de clé privée de certificat utilisateur initiées 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 : « Provider: [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 d’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 « Standard 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 d’autorité d’enregistrement dans 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 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 12 : Fermez la console d’administration FAS, puis redémarrez-la.

localized image

Remarque : L’étape « Autoriser ce service » a une coche verte.

É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 « HSM_Vendor’s Key Storage Provider ».

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

Image localisée

Étape 2 : Consultez la documentation de votre fournisseur 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 :

Image localisée

Le fichier doit maintenant apparaître comme suit :

Image localisée

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 HSM pour déterminer si votre HSM utilise CAPI ou CNG. Consultez également la documentation de votre fournisseur 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 dans le 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 :

Image localisée

Remarque : [Fournisseur : [CNG] Fournisseur de stockage de clés du fournisseur HSM]

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

Image localisée

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

Remarque : L’étape « Autoriser ce service » est marquée d’une coche verte.

Image localisée

É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 d’autorité d’enregistrement, entrez les applets de commande PowerShell suivantes sur le serveur FAS :

Add-pssnapin Citrix.a\*

Get-FasAuthorizationCertificate –address \<FQDN du serveur FAS>

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

Image localisée

Pour obtenir une liste des certificats utilisateur, entrez :

Get-FasUserCertificate –address \<FQDN du serveur FAS>

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

Image localisée

Remarque :

Lors de l’utilisation d’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 \<FQDN du serveur FAS> -KeyInfo $true

Par exemple :

Get-FasUserCertificate –address fas3.djwfas.net -KeyInfo $true

Image localisée

Informations connexes

Protection des clés privées