Product Documentation

Transport Layer Security (TLS)

Jul 25, 2017
La configuration d'un site XenApp ou XenDesktop pour utiliser le protocole TLS (Transport Layer Security) de sécurité inclut les procédures suivantes :
  • Obtenir, installer et enregistrer un certificat de serveur sur tous les Delivery Controller, et configurer un port avec le certificat SSL. Pour de plus amples informations, consultez la rubrique Installer les certificats de serveur TLS sur des Controller.

    Si vous le souhaitez, vous pouvez modifier les ports que le Controller utilise pour écouter le trafic HTTP et HTTPS.

  • Activez les connexions TLS entre les utilisateurs et Virtual Delivery Agents (VDA) en renseignant les tâches suivantes :
    Configuration requise et considérations :
    • L'activation des connexions TLS entre les utilisateurs et les VDA est valide uniquement pour les sites XenApp 7.6 et XenDesktop 7.6, ainsi que les versions ultérieures prises en charge.
    • Configurez TLS dans les groupes de mise à disposition et le VDA après l'installation de composants, créez un site, créez des catalogues de machines, et créez des groupes de mise à disposition.
    • Pour configurer TLS dans les groupes de mise à disposition, vous devez disposer de l'autorisation de modification des règles d'accès de Controller ; un administrateur complet possède ces permissions.
    • Pour configurer TLS sur les VDA, vous devez être un administrateur Windows sur la machine sur laquelle le VDA est installé.
    • Si vous prévoyez de configurer TLS sur les VDA qui ont été mis à niveau à partir de versions antérieures, désinstallez tous les relais SSL sur ces machines avant de les mettre à niveau.
    • Le script PowerShell permet de configurer TLS sur les VDA statiques  ; il ne configure pas TLS sur les VDA regroupés qui sont provisionnés par Machine Creation Services ou Provisioning Services, où l'image de la machine cliente est réinitialisée à chaque redémarrage.
Pour les tâches qui incluent l'utilisation du registre Windows :
Avertissement : toute utilisation incorrecte de l’Éditeur du Registre peut générer des problèmes sérieux, pouvant vous obliger à réinstaller le système d’exploitation. Citrix ne peut garantir la possibilité de résoudre les problèmes provenant d'une mauvaise utilisation de l'Éditeur du Registre. Vous assumez l’ensemble des risques liés à l’utilisation de cet outil. Veillez à faire une copie de sauvegarde de votre registre avant de le modifier.

Pour plus d'informations sur l'activation de TLS pour la base de données du site, consultez la section CTX137556

Remarque

Si TLS et UDT sont tous les deux activés sur le VDA :

  • Pour un accès direct au VDA, Citrix Receiver utilise toujours TLS sur TCP (et non UDP et UDT).
  • Pour un accès indirect au VDA à l’aide de NetScaler Gateway, Citrix Receiver utilise DTLS sur UDP pour les communications avec NetScaler Gateway. Les communications entre NetScaler Gateway et le VDA utilisent UDP sans DTLS.  UDT est utilisé.

Installer les certificats de serveur TLS sur des Controller

Pour HTTPS, Le service XML prend en charge les fonctionnalités TLS par le biais de certificats de serveur mais pas de certificats de client. Pour obtenir, installer et enregistrer un certificat sur un Controller, et pour configurer un port avec le certificat SSL :

Si IIS est installé sur le Controller, suivez les instructions dans https://technet.microsoft.com/en-us/library/cc771438%28v=ws.10%29.aspx.

Si IIS n'est pas installé sur le Controller, le certificat pourrait être configuré comme suit :

  1. Procurez-vous un certificat de serveur SSL et installez-le sur le Controller comme décrit dans l'article http://blogs.technet.com/b/pki/archive/2009/08/05/how-to-create-a-web-server-ssl-certificate-manually.aspx. Pour plus d'informations sur l'outil certreq, consultez l'article http://technet.microsoft.com/en-us/library/cc736326(WS.10).aspx.

    Si vous prévoyez d'utiliser le script PowerShell pour configurer TLS sur VDA, et sauf si vous prévoyez de spécifier l'empreinte numérique du certificat SSL, vérifiez que le certificat est présent dans la zone Ordinateur local > Personnel > Certificats du magasin de certificats. Si plusieurs certificats résident à cet emplacement, le premier détecté sera utilisé.

  2. Configurez un port avec le certificat ; consultez http://msdn.microsoft.com/fr-fr/library/ms733791%28v=vs.110%29.aspx.

Si le Controller est installé sur Windows Server 2016 et que StoreFront est installé sur Windows Server 2012, une modification de la configuration est nécessaire au niveau du Controller, pour modifier l'ordre des suites de chiffrement TLS.

Remarque : cette modification de la configuration n'est pas nécessaire pour le Controller et StoreFront avec d'autres combinaisons de versions de Windows Server.

La liste des suites de chiffrement doit contenir les suites de chiffrement TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 ou TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (ou les deux), et ces suites de chiffrement doivent précéder toute suite de chiffrement TLS_DHE_.

Remarque : Windows Server 2012 ne prend pas en charge les suites de chiffrement TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 ou TLS_ECDHE_RSA_WITH_AES_128_GCM _SHA256.

Référence - Microsoft MSDN - Priorité des suites de chiffrement Schannel

  1. Dans l'éditeur de stratégie de groupe Microsoft, accédez à Configuration ordinateur > Modèles d'administration > Réseau > Paramètres de configuration SSL.
  2. Modifiez la stratégie « Ordre des suites de chiffrement SSL ». Par défaut, cette stratégie est définie sur « Non configuré ». Définissez cette stratégie sur Activé.
  3. Organisez les suites dans l'ordre approprié ; supprimez les suites de chiffrement que vous ne souhaitez pas utiliser.

Assurez-vous que TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 ou TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 précède toute suite de chiffrement TLS_DHE_.

Modifier les ports HTTP ou HTTPS

Par défaut, le service XML du Controller écoute le trafic HTTP sur le port 80 et le trafic HTTPS sur le port 443. Bien que vous puissiez utiliser des ports différents de ceux par défaut, n'oubliez pas les risques de sécurité relatifs à l'exposition d'un Controller à des réseaux non approuvés. Le déploiement d'un serveur StoreFront autonome est préférable à la modification des valeurs par défaut.

Pour modifier la valeur par défaut des ports HTTP ou HTTPS utilisés par le Controller, exécutez la commande suivante à partir de Studio :

BrokerService.exe -WIPORT <http-port> -WISSLPORT <https-port>

où <http-port> est le numéro de port pour le trafic HTTP et <https-port> le numéro de port pour le trafic HTTPS.

Remarque : après avoir modifié un port, il se peut que Studio affiche un message sur la compatibilité et la mise à niveau des licences. Pour résoudre le problème, ré-enregistrez les instances de service à l'aide de la séquence de l'applet de commande PowerShell suivante :

Get-ConfigRegisteredServiceInstance -ServiceType Broker
-Binding  XML_HTTPS |
Unregister-ConfigRegisteredServiceInstance 

Get-BrokerServiceInstance | where Binding -eq "XML_HTTPS" |  
Register-ConfigServiceInstance

Appliquer le trafic HTTPS uniquement

Si vous souhaitez que le service XML ignore le trafic HTTP, créez le paramètre de registre suivant sur le Controller dans HKLM\Software\Citrix\DesktopServer\ et redémarrez le service Broker.

Pour ignorer le trafic HTTP, créez un DWORD XmlServicesEnableNonSsl et définissez-le sur 0.

Il existe une valeur de registre DWORD correspondante que vous pouvez créer pour ignorer le trafic HTTPS : DWORD XmlServicesEnableSsl. Assurez-vous qu'elle n'est pas définie sur 0.

Paramètres TLS sur les VDA

Un groupe de mise à disposition ne peut pas avoir un mélange d'un VDA avec TLS configuré et d'autres VDA sans TLS configuré. Lorsque vous configurez le protocole TLS pour un groupe de mise à disposition, vous devez avoir déjà configuré TLS pour tous les VDA dans ce groupe de mise à disposition.

Lorsque vous configurez le protocole TLS sur les VDA, les autorisations sur le certificat SSL installé sont modifiées, offrant au service ICA un accès en lecture à la clé privée du certificat, et informant le service ICA des opérations suivantes :

  • Quel certificat utiliser dans le magasin de certificat à utiliser pour TLS.
  • Quel numéro de port TCP utiliser pour les connexions TLS.

Le Pare-feu Windows (s'il est activé) doit être configuré pour autoriser les connexions entrantes sur ce port TCP. Cette configuration est effectuée pour vous si vous utilisez le script PowerShell.

  • Quelles sont les versions du protocole TLS à autoriser.

Important : Citrix vous recommande de vérifier leur utilisation de SSLv3 et de reconfigurer ces déploiements pour supprimer la prise en charge de SSLv3, le cas échéant. Consultez l'article CTX200238.

Les versions prises en charge du protocole TLS suivent une hiérarchie (de la plus basse à la plus élevée) : SSL 3.0, TLS 1.0, TLS 1.1 et TLS 1.2. Vous devez spécifier la version minimale autorisée ; toutes les connexions de protocole utilisant cette version ou une version supérieure sont autorisées.

Par exemple, si vous spécifiez TLS 1.1 comme version minimale, les connexions de protocole TLS 1.1 et TLS 1.2 sont autorisées. Si vous spécifiez SSL 3.0 en tant que version minimale, les connexions pour toutes les versions prises en charge sont alors autorisées. Si vous spécifiez TLS 1.2 comme version minimale, seules les connexions TLS 1.2 sont autorisées.

  • Quelles suites de chiffrement TLS sont autorisées.

Une suite de chiffrement sélectionne le cryptage qui sera utilisé pour une connexion. Les clients et les VDA peuvent prendre en charge plusieurs ensembles de suites de chiffrement. Lorsqu'un client (Citrix Receiver ou StoreFront) se connecte et envoie une liste des suites de chiffrement TLS pris en charge, le VDA fait correspondre une des suites de chiffrement du client avec l'une de suites de chiffrement de sa liste configurée et accepte la connexion. S'il n'existe aucune correspondance de suite de chiffrement, le VDA rejette la connexion.

Trois ensembles de suites de chiffrement (également appelés modes de conformité) sont pris en charge par le VDA : GOV (gouvernement), COM (commercial) et ALL (tout). Les suites de chiffrement acceptables dépendent du mode FIPS Windows ; voir http://support2.microsoft.com/kb/811833/fr pour plus d'informations sur le mode FIPS Windows. Le tableau suivant répertorie les suites de chiffrement compris dans chaque ensemble :

Suite de chiffrement TLS

GOV

COM

ALL

GOV

COM

ALL

Mode FIPS

Désactivé

Désactivé

Désactivé

Activé

Activé

Activé

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

x

 

x

x

 

x

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

x

 

x

x

 

x

TLS_RSA_WITH_AES_256_GCM_SHA384

x

 

x

x

 

x

TLS_RSA_WITH_AES_128_GCM_SHA256

x

x

x

x

x

x

TLS_RSA_WITH_AES_256_CBC_SHA256

x

 

x

x

 

x

TLS_RSA_WITH_AES_256_CBC_SHA

x

 

x

x

 

x

TLS_RSA_WITH_AES_128_CBC_SHA

 

x

x

 

x

x

TLS_RSA_WITH_RC4_128_SHA

 

x

x

 

 

 

TLS_RSA_WITH_RC4_128_MD5

 

x

x

 

 

 

TLS_RSA_WITH_3DES_EDE_CBC_SHA

x

 

x

x

 

x

 

Important : une étape supplémentaire est nécessaire lorsque le VDA se trouve sur un serveur Windows Server 2012 R2, Windows Server 2016 ou Windows 10 Anniversary Edition ou version ultérieure prise en charge. Cela affecte les connexions provenant de Citrix Receiver pour Windows version 4.6 et 4.7.

Sur le VDA (Windows Server 2016 ou Windows 10 Anniversary Edition ou version ultérieure), à l'aide de l'éditeur de stratégie de groupe, accédez à Configuration ordinateur > Modèles d'administration > Réseau > Paramètres de configuration SSL > Ordre des suites de chiffrement SSL. Sélectionnez l'ordre suivant :

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384_P384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384_P256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA

Remarque : les quatre premiers éléments spécifient également la courbe elliptique, P384 ou P256. Assurez-vous que l'option « curve25519 » n'est pas sélectionnée. Le mode FIPS n'empêche pas l'utilisation de l'option « curve25519 ».

Lorsque ce paramètre de stratégie de groupe est configuré, le VDA sélectionnera une suite de chiffrement uniquement si elle apparaît dans les deux listes : la liste Stratégies de groupe et la liste pour le mode de conformité sélectionné (COM, GOV ou ALL). La suite de chiffrement doit également s'afficher dans la liste envoyée par le client (Citrix Receiver ou StoreFront).

Cette configuration de stratégie de groupe affecte également d'autres applications et services TLS sur le VDA. Si vos applications requièrent des suites de chiffrement spécifiques, vous devez les ajouter à la liste Stratégie de groupe.

Configurer TLS sur un VDA à l'aide du script PowerShell

Le script Enable-VdaSSL.ps1 active ou désactive l'écouteur TLS sur un VDA. Ce script est disponible dans le dossier Support > Tools > SslSupport sur le support d'installation.

Lorsque vous activez le protocole TLS, le script désactive toutes les règles du Pare-feu Windows existantes pour le port TCP spécifié avant d'ajouter une règle qui permet au service ICA d'accepter des connexions entrantes sur le port TCP TLS uniquement. Cela désactive également les règles du Pare-feu Windows pour :
  • Citrix ICA 1494 (valeur par défaut : 8008)
  • Citrix CGP 2598 (valeur par défaut : 8008)
  • Citrix WebSocket 8008 (valeur par défaut : 8008)

Le résultat est que les utilisateurs peuvent se connecter uniquement via TLS ; ils ne peuvent pas utiliser de données brutes ICA, CGP ou WebSocket pour se connecter.

Le script contient des descriptions de la syntaxe suivante, ainsi que d'autres exemples ; vous pouvez utiliser un outil tel que le Bloc-notes++ pour consulter ces informations.

Important : vous devez spécifier soit le paramètre Enable ou Disable de même que les paramètres CertificateThumbPrint. Les autres paramètres sont facultatifs.

Syntaxe

Enable-VdaSSL {-Enable | -Disable} [–SSLPort <port>] [-SSLMinVersion "<min-ssl-version>"]
[-SSLCipherSuite"<suite>"] -CertificateThumbPrint "<thumbprint>"

Paramètre Description
Activer Installe et active l'écouteur TLS sur le VDA. Soit ce paramètre ou le paramètre -Disable est requis.
Désactiver Désactive l'écouteur TLS sur le VDA. Soit ce paramètre ou le paramètre –Enable est requis. Si vous spécifiez ce paramètre, aucun autre paramètre n'est valide.
SSLPort <port> Port TLS. Valeur par défaut : 443
SSLMinVersion "<min-ssl-version>"

Version minimale du protocole TLS, entourés de guillemets. Les valeurs valides sont : « SSL_3.0 », « TLS_1.0 », « TLS_1.1 » et « TLS_1.2 ». Valeur par défaut: « TLS_1.0 »

Important : Citrix recommande aux clients de vérifier leur utilisation de SSLv3 et de prendre des mesures pour reconfigurer leurs déploiements pour supprimer la prise en charge de SSLv3, le cas échéant. Consultez l'article CTX200238.

SSLCipherSuite "<suite>" Suite de chiffrement TLS, entourés de guillemets. Les valeurs valides sont : « GOV », « COM » et « ALL ». Valeur par défaut : « ALL »
CertificateThumbPrint "<thumbprint>" Empreinte numérique du certificat SSL dans le magasin de certificats, entourée de guillemets. Le script utilise l’empreinte numérique spécifiée pour sélectionner le certificat que vous voulez utiliser. Ce paramètre est requis ; sinon, un certificat incorrect est sélectionné.

Exemples

Le script suivant installe et active la version de protocole TLS 1.2. L’empreinte numérique (représentée en tant que « 12345678987654321 » dans cet exemple) est utilisée pour sélectionner le certificat à utiliser.

Enable-VdaSSL –Enable -CertificateThumbPrint "12345678987654321"

Le script suivant installe et active l'écouteur TLS et spécifie le port TLS 400, la suite de chiffrement GOV et une valeur de protocole minimale de TLS 1.2. L’empreinte numérique (représentée en tant que « 12345678987654321 » dans cet exemple) est utilisée pour sélectionner le certificat à utiliser.

Enable-VdaSSL – Enable –SSLPort 400 'SSLMinVersion "TLS_1.2"  
–SSLCipherSuite "GOV" -CertificateThumbPrint "12345678987654321"

Le script suivant désactive l'écouteur TLS sur le VDA.

Enable-VdaSSL –Disable

Configurer manuellement TLS sur un VDA

Lors de la configuration manuelle de TLS sur un VDA, vous offrez un accès en lecture générique à la clé privée du certificat TLS pour le service approprié sur chaque VDA : NT SERVICE\PorticaService pour un VDA pour OS Windows Desktop, ou NT SERVICE\TermService pour un VDA pour OS Windows Server. Sur la machine sur laquelle le VDA est installé :
  1. Lancez la console MMC (Microsoft Management Console) : Démarrer > Exécuter > mmc.exe.
  2. Ajouter le composant logiciel enfichable Certificats à la console MMC :
    1. Sélectionnez Fichier > Ajouter/Supprimer un composant logiciel enfichable.
    2. Sélectionnez Certificats et cliquez sur Ajouter.
    3. Lorsque vous y êtes invité par « Ce composant logiciel enfichable gérera toujours les certificats pour : », choisissez « Le compte d'ordinateur », puis cliquez sur Suivant.
    4. Lorsque vous y êtes invité par « Sélectionnez l'ordinateur à gérer par ce composant logiciel enfichable », choisissez « Ordinateur local », puis cliquez sur Terminer.
  3. Sous Certificats (Ordinateur local) > Personnel > Certificats, cliquez avec le bouton droit de la souris sur le certificat, puis sélectionnez Toutes les tâches > Gérer les clés privées.
  4. L'Éditeur de liste de contrôle d'accès affiche « Autorisations pour les clés privées (FriendlyName) » où (FriendlyName) est le nom de votre certificat SSL. Ajoutez l'un des services suivants et accordez-lui un accès en lecture :
    • Pour un VDA pour OS Windows Desktop, « PORTICASERVICE »
    • Pour un VDA pour OS de serveur Windows, « TERMSERVICE »
  5. Cliquez deux fois sur le certificat SSL installé. Dans la boîte de dialogue du certificat, sélectionnez l'onglet Détails, puis faites défiler vers le bas. Cliquez sur Empreinte numérique.
  6. Exécutez la commande regedit et rendez-vous sur HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\icawd.
    1. Modifier la clé d'empreinte numérique SSL et copiez la valeur de l'empreinte numérique du certificat SSL dans cette valeur binaire. Vous pouvez ignorer sans risque les éléments inconnus dans la boîte de dialogue Modifier la valeur binaire (tels que '0000' et les caractères spéciaux).
    2. Modifier la clé SSLEnabled et modifiez la valeur DWORD sur 1. (Pour désactiver SSL ultérieurement, changez la valeur DWORD sur 0).
    3. Si vous souhaitez modifier les paramètres par défaut (facultatif), utilisez les informations suivantes dans le même chemin d'accès du Registre :
      • SSLPort DWORD : numéro de port SSL. Valeur par défaut : 443.
      • SSLMinVersion DWORD : 1 = SSL 3.0, 2 = TLS 1.0, 3 = TLS 1.1, 4 = TLS 1.2. Valeur par défaut : 2 (TLS 1.0).
      • SSLCipherSuite DWORD : 1 = GOV, 2 = COM, 3 = ALL. Valeur par défaut : 3 (ALL).
  7. Assurez-vous que le port TCP TLS est ouvert dans le Pare-feu Windows s'il n'est pas la valeur par défaut (443). (Lors de la création de la règle de trafic entrant dans le Pare-feu Windows, assurez-vous que ses propriétés possèdent les entrées sélectionnées « Autoriser la connexion » et « Activé ».)
  8. Assurez-vous qu'aucune autre application ou service (tel que IIS) utilisent le port TCP TLS.
  9. Pour les VDA pour OS Windows Server, redémarrez la machine pour que les modifications prennent effet. (Il n'est pas nécessaire de redémarrer les machines contenant des VDA pour OS Windows Desktop).

Configurer TLS sur les groupes de mise à disposition

Effectuez cette procédure pour chaque groupe de mise à disposition qui contient les VDA vous avez configurés pour les connexions TLS.
  1. À partir de Studio, ouvrez la console PowerShell.
  2. Exécutez asnp Citrix.* pour charger les applets de commande du produit Citrix.
  3. Exécutez Get-BrokerAccessPolicyRule -DesktopGroupName '<delivery-group-name>' | Set-BrokerAccessPolicyRule -HdxSslEnabled $true.

    où <delivery-group-name> est le nom du groupe de mise à disposition contenant les VDA.

  4. Exécutez Set-BrokerSite -DnsResolutionEnabled $true.

Résolution des problèmes

Si une erreur de connexion se produit, consultez le journal des événements système du VDA.

Lors de l'utilisation de Receiver pour Windows, si vous recevez une erreur de connexion (comme 1030) qui indique une erreur TLS, désactivez Desktop Viewer, puis essayez de vous reconnecter, bien que la connexion échoue toujours, une description du problème TLS sous-jacent peut être fournie (par exemple, vous avez spécifié un modèle incorrect lors de la demande d'un certificat auprès de l'autorité de certification).

Communications entre le Controller et le VDA

Les communications entre le Controller et le VDA sont sécurisées par la protection des messages de Windows Communication Framework (WCF). Une protection supplémentaire au niveau du transport à l'aide de TLS n'est pas requise. La configuration WCF utilise Kerberos pour l'authentification mutuelle entre le Controller et le VDA. Le cryptage utilise AES en mode CBC avec une clé 256 bits. L'intégrité des messages est assurée par SHA-1.

Selon Microsoft, les protocoles de sécurité utilisés par WCF sont conformes aux normes OASIS (Organization for the Advancement of Structured Information Standards), y compris la stratégie WS-SecurityPolicy 1.2.En outre, Microsoft indique que WCF prend en charge tous les jeux d'algorithmes répertoriés dans la stratégie de sécurité 1.2.

Les communications entre les Controller et les VDA utilisent le jeu d'algorithmes basic256, dont les algorithmes sont indiqués ci-dessus.

TLS et redirection vidéo HTML5

La redirection vidéo HTML5 inclut la prise en charge de contenu vidéo via TLS (HTTPS).  Pour ce faire, des certificats personnalisés sont placés dans le magasin de certificats de l'ordinateur sur le VDA.

La redirection vidéo HTML5 est désactivée par défaut. 

Si vous n'avez pas l'intention d'utiliser la redirection vidéo HTML5 avec le contenu vidéo sur TLS, Citrix vous recommande de supprimer les deux certificats du magasin de certificats racines de confiance sur le VDA.  Ces certificats sont émis pour "Citrix HDX"/émis par "Citrix HDX" et émis pour "127.0.0.1"/émis par "Citrix HDX".

Citrix recommande de supprimer les fichiers libeay32.dll et ssleay32.dll du dossier d'installation de la redirection vidéo HTML5. Ceci est recommandé même si vous n’avez pas l’intention d’utiliser du contenu vidéo HTML5.

Pour plus d'informations sur la redirection de la vidéo pour HTML5, consultez la section Paramètres de stratégie multimédia.