Contrôleur d'entrée Citrix ADC

Sécurisation d’entrée

La rubrique couvre les différentes manières de sécuriser votre entrée à l’aide de Citrix ADC et les annotations fournies par le Citrix ingress controller.

Le tableau suivant répertorie les cas d’utilisation TLS avec des exemples d’annotations que vous pouvez utiliser pour sécuriser votre entrée à l’aide du Citrix ADC d’entrée et du Citrix ingress controller :

Cas d’utilisation Exemples d’annotations
Activer le protocole TLSv1.3 ingress.citrix.com/frontend-sslprofile: '{"tls13":"enabled", "tls13sessionticketsperauthcontext":"1", "dhekeyexchangewithpsk":"yes"}'
Sécurité de transport stricte HTTP (HSTS) ingress.citrix.com/frontend-sslprofile: '{"hsts":"enabled", "maxage" : "157680000", "includesubdomain":"yes"}
Agrafage OCSP ingress.citrix.com/frontend-sslprofile: '{"ocspstapling":"enabled"}'
Définir l’authentification du client sur obligatoire ingress.citrix.com/frontend-sslprofile: '{"clientauth":"enabled", "clientcert" : "mandatory"}'
Extension du ticket de session TLS ingress.citrix.com/frontend-sslprofile: '{"sessionticket" : "enabled", "sessionticketlifetime : "300"}'
Réutilisation des sessions SSL ingress.citrix.com/frontend-sslprofile: '{"sessreuse" : "enabled", "sesstimeout : "120"}'
Groupes de chiffrement ingress.citrix.com/frontend-sslprofile:'{"snienable": "enabled", "ciphers" : [{"ciphername": "secure", "cipherpriority" :"1"}, {"ciphername": "secure", "cipherpriority" :"21"}]}'
Redirection de chiffrement ingress.citrix.com/frontend-sslprofile:'{"snienable": "enabled", "ciphers" : [{"ciphername": "secure", "cipherpriority" :"1"}], "cipherredirect":"enabled", "cipherurl": "https://redirecturl"}'

Activer le protocole TLSv1.3

À l’aide des annotations pour les profils SSL, vous pouvez activer la prise en charge du protocole TLS 1.3 sur le profil SSLet définir les paramètres tls13SessionTicketsPerAuthContext et dheKeyExchangeWithPsk dans le profil SSL pour Citrix ADC Ingress.

Le paramètre tls13SessionTicketsPerAuthContext vous permet de définir le nombre de tickets émis par Ingress Citrix ADC chaque fois que TLS 1.3 est négocié, que la reprise basée sur les tickets est activée et qu’une prise de contact est terminée ou que l’authentification du client après l’établissement du contact est terminée. La valeur peut être augmentée pour permettre aux clients d’ouvrir plusieurs connexions parallèles en utilisant un nouveau ticket pour chaque connexion. La valeur minimale que vous pouvez définir est 1 et la valeur maximale est 10. Par défaut, la valeur est définie sur 1.

Remarque :

Aucun billet n’est envoyé si la reprise est désactivée.

Le paramètre dheKeyExchangeWithPsk vous permet de spécifier si l’échange de clés Ingress Citrix ADC requires a DHE doit avoir lieu lorsqu’une clé prépartagée est acceptée lors d’une prise de contact de reprise de session TLS 1.3. Un échange de clés DHE garantit le secret de transmission, même si les clés de ticket sont compromises, au détriment des ressources supplémentaires nécessaires pour effectuer l’échange de DHE clés.

Voici un exemple d’annotation pour le profil HTTP afin d’activer la prise en charge du protocole TLS 1.3 sur le profil SSL et de définir les paramètres tls13SessionTicketsPerAuthContext et dheKeyExchangeWithPsk dans le profil SSL.

ingress.citrix.com/frontend-sslprofile: '{"tls13":"enabled", "tls13sessionticketsperauthcontext":"1", "dhekeyexchangewithpsk":"yes"}'

Sécurité de transport stricte HTTP (HSTS)

Les appliances Ingress Citrix ADC prennent en charge la sécurité de transport stricte HTTP (HSTS) en tant qu’option intégrée dans les profils SSL. À l’aide de HSTS, un serveur peut imposer l’utilisation d’une connexion HTTPS pour toutes les communications avec un client. En d’autres termes, le site n’est accessible qu’en utilisant HTTPS. La prise en charge de HSTS est requise pour la certification A+ des laboratoires SSL. Pour plus d’informations, consultez la section Prise en charge de Citrix ADC pour HSTS.

À l’aide des annotations pour les profils SSL, vous pouvez activer HSTS dans un profil frontal SSL sur le Citrix ADC Ingress. Voici un exemple d’annotation d’entrée :

ingress.citrix.com/frontend-sslprofile: '{"hsts":"enabled", "maxage" : "157680000", "includesubdomain":"yes"}'

Où :

  • HSTS - L’état de la sécurité du transport HTTP Strict (HSTS) sur le profil SSL. À l’aide de HSTS, un serveur peut imposer l’utilisation d’une connexion HTTPS pour toutes les communications avec un client. Les valeurs prises en charge sont ACTIVÉES et DÉSACTIVÉES. Par défaut, la valeur est définie sur DÉSACTIVÉ.
  • maxage - Permet de définir le temps maximum, en secondes, dans l’en-tête STS (STS) pendant lequel le client doit envoyer uniquement des requêtes HTTPS au serveur. Le temps minimum que vous pouvez définir est 0 et le maximum est 4294967294. Par défaut, la valeur est 0.
  • IncludeSubdomains - Vous permet d’activer le HSTS pour les sous-domaines. Si la valeur est définie sur Yes, un client doit envoyer uniquement des demandes HTTPS pour les sous-domaines. Par défaut, la valeur est définie sur Non.

Agrafage OCSP

Le Citrix ADC Ingress peut envoyer l’état de révocation d’un certificat de serveur à un client, au moment de l’établissement de la liaison SSL, après avoir validé l’état du certificat à partir d’un répondeur OCSP. L’état de révocation d’un certificat de serveur est « agrafé » en fonction de la réponse que l’appliance envoie au client dans le cadre de l’établissement de liaison SSL. Pour plus d’informations sur l’implémentation Citrix ADC des rapports CRL et OCSP, consultez Agrafage OCSP.

Pour utiliser la fonction d’agrafage OCSP, vous pouvez l’activer à l’aide d’un profil SSL avec l’annotation d’entrée suivante :

ingress.citrix.com/frontend-sslprofile: '{"ocspstapling":"enabled"}'

Remarque :

Pour utiliser l’agrafage OCSP, vous devez ajouter un répondeur OCSP sur l’appliance Citrix ADC.

Définir l’authentification du client sur obligatoire

À l’aide des annotations pour les profils SSL, vous pouvez activer l’authentification client, l’appliance Citrix ADC Ingress demande le certificat client lors de l’établissement de liaison SSL.

L’appliance vérifie que le certificat présenté par le client est soumis à des contraintes normales, telles que la signature de l’émetteur et la date d’expiration.

Voici quelques cas d’utilisation :

  • Exigez un certificat client valide avant l’affichage du contenu du site Web. Cela limite le contenu du site Web aux machines et aux utilisateurs autorisés.

  • Demandez un certificat client valide. Si aucun certificat client valide n’est fourni, demandez à l’utilisateur de procéder à une authentification multifacteur.

L’authentification du client peut être définie sur obligatoire ou facultative.

  • Lorsqu’il est défini comme obligatoire, si le client SSL ne transmet pas de certificat client valide, la connexion est abandonnée. Moyens valides : signé/émis par une autorité de certification spécifique, et non expiré ou révoqué.
  • Lorsqu’elle est facultative, Citrix ADC demande le certificat client, mais procède à la transaction SSL même si le client présente un certificat non valide ou aucun certificat. Cette configuration est utile pour les scénarios d’authentification (par exemple, exiger une authentification à deux facteurs si aucun certificat client valide n’est fourni)

À l’aide des annotations pour les profils SSL, vous pouvez activer l’authentification client sur un serveur virtuel SSL et définir l’authentification du client sur Mandatory.

Voici un exemple d’annotation du profil SSL :

ingress.citrix.com/frontend-sslprofile: '{"clientauth":"enabled", "clientcert" : "mandatory"}'

Remarque :

Assurez-vous de lier le certificat client au serveur virtuel SSL sur l’entrée Citrix ADC.

Extension du ticket de session TLS

Une prise de contact SSL est une opération gourmande en CPU. Si la réutilisation de session est activée, l’opération d’échange de clés du serveur ou du client est ignorée pour les clients existants. Ils sont autorisés à reprendre leurs sessions. Cela améliore le temps de réponse et augmente le nombre de transactions SSL par seconde qu’un serveur peut prendre en charge. Toutefois, le serveur doit stocker les détails de chaque état de session, ce qui consomme de la mémoire et est difficile à partager entre plusieurs serveurs si les demandes sont équilibrées de charge entre les serveurs.

Les appliances Citrix ADC Ingress prennent en charge l’extension TLS SessionTicket. L’utilisation de cette extension indique que les détails de session sont stockés sur le client plutôt que sur le serveur. Le client doit indiquer qu’il prend en charge ce mécanisme en incluant l’extension TLS du ticket de session dans le message Hello du client. Pour les nouveaux clients, cette extension est vide. Le serveur envoie un nouveau ticket de session dans le message d’établissement de liaison NewSessionTicket. Le ticket de session est chiffré à l’aide d’une paire de clés connue uniquement du serveur. Si un serveur ne peut pas émettre de nouveau ticket actuellement, il effectue une prise de contact normale.

À l’aide des annotations pour les profils SSL, vous pouvez activer l’utilisation de tickets de session, conformément à la RFC 5077. Vous pouvez également définir la durée de vie des tickets de session émis par le Citrix ADC Ingress, à l’aide du paramètre sessionticketlifetime.

Voici l’exemple d’annotation d’entrée :

ingress.citrix.com/frontend-sslprofile: '{"sessionticket" : "enabled", "sessionticketlifetime : "300"}'

Réutilisation des sessions SSL

Vous pouvez réutiliser une session SSL existante sur une appliance Citrix ADC. Alors que le processus de renégociation SSL consiste en une poignée de main SSL complète, la réutilisation SSL consiste en une poignée de main partielle car le client envoie l’ID SSL avec la demande.

À l’aide des annotations pour les profils SSL, vous pouvez activer la réutilisation de session et également définir la valeur du délai d’expiration de session (en secondes) sur l’entrée Citrix ADC.

Voici l’exemple d’annotation d’entrée :

ingress.citrix.com/frontend-sslprofile: '{"sessreuse" : "enabled", "sesstimeout : "120"}'

Par défaut, l’option de réutilisation de session est activée sur l’appliance et la valeur du délai d’expiration pour celle-ci est définie sur 120 secondes. Par conséquent, si un client envoie une demande sur une autre connexion TCP et l’ID de session SSL précédent dans les 120 secondes, l’appliance effectue une poignée de main partielle.

Utilisation de groupes de chiffrement

Le Citrix ADC Ingress est livré avec des groupes de chiffrement intégrés. Pour utiliser des chiffrements qui ne font pas partie du groupe de chiffrement DEFAULT, vous devez les lier explicitement à un profil SSL. Vous pouvez également créer un groupe de chiffrement défini par l’utilisateur à lier au serveur virtuel SSL sur l’entrée Citrix ADC.

Les groupes de chiffrement intégrés peuvent être utilisés dans Citrix ADC de niveau 1 et de niveau 2, et le groupe de chiffrement défini par l’utilisateur ne peut être utilisé que dans Citrix ADC de niveau 1.

Pour utiliser un groupe de chiffrement défini par l’utilisateur, assurez-vous que Citrix ADC possède un groupe de chiffrement défini par l’utilisateur. Procédez comme suit :

  1. Créez un groupe de chiffrement défini par l’utilisateur. Par exemple, testgroup.
  2. Liez tous les chiffrements requis au groupe de chiffrement défini par l’utilisateur.
  3. Notez le nom du groupe de chiffrement défini par l’utilisateur.

Pour obtenir des instructions détaillées, reportez-vous à la section Configurer un groupe de chiffrement défini par l’utilisateur.

À l’aide des annotations pour les profils SSL, vous pouvez lier les groupes de chiffrement intégrés, un groupe de chiffrement défini par l’utilisateur ou les deux au profil SSL.

Voici la syntaxe de l’annotation d’entrée que vous pouvez utiliser pour lier les groupes de chiffrement intégrés et un groupe de chiffrement défini par l’utilisateur à un profil SSL :

ingress.citrix.com/frontend-sslprofile:'{"snienable":"enabled", "ciphers" : [{"ciphername": "secure", "cipherpriority" :"1"}, {"ciphername": "testgroup", "cipherpriority" :"2"}]}'

L’annotation d’entrée lie le groupe de chiffrement intégré et le groupe de chiffrement défini par l’utilisateur au profil SSL. SECUREtestgroup

Utilisation de la redirection de chiffrement

Lors de l’établissement de la liaison SSL, le client SSL (généralement un navigateur Web) annonce la suite de chiffrements qu’il prend en charge, dans l’ordre de préférence de chiffrement configuré. Dans cette liste, le serveur SSL sélectionne ensuite un chiffrement qui correspond à sa propre liste de chiffrements configurés.

Si les chiffrements annoncés par le client ne correspondent pas à ceux configurés sur le serveur SSL, l’établissement de liaison SSL échoue. L’échec est annoncé par un message d’erreur cryptique affiché dans le navigateur. Ces messages mentionnent rarement la cause exacte de l’erreur.

Avec la redirection de chiffrement, vous pouvez configurer un serveur virtuel SSL pour fournir des messages d’erreur précis et significatifs en cas d’échec d’une négociation SSL. Lorsque l’établissement de liaison SSL échoue, l’appliance Citrix ADC redirige l’utilisateur vers une URL précédemment configurée ou, si aucune URL n’est configurée, affiche une page d’erreur générée en interne.

Voici la syntaxe de l’annotation d’entrée que vous pouvez utiliser pour lier des groupes de chiffrement et activer la redirection de chiffrement vers laquelle rediriger la demande redirecturl.

 ingress.citrix.com/frontend-sslprofile:'{"snienable": "enabled", "ciphers" : [{"ciphername": "secure", "cipherpriority" :"1"}], "cipherredirect":"enabled", "cipherurl": "https://redirecturl"}'