Citrix ADC

Infrastructure de profil SSL

Des vulnérabilités dans l’implémentation SSLv3 et RC4 ont souligné la nécessité d’utiliser les derniers chiffrements et protocoles pour négocier les paramètres de sécurité d’une connexion réseau. La mise en œuvre de toute modification de la configuration, telle que la désactivation de SSLv3 sur des milliers de points de terminaux SSL, est un processus fastidieux. Par conséquent, les paramètres qui faisaient partie de la configuration des points de fin SSL ont été déplacés vers les profils SSL, ainsi que les chiffrements par défaut. Pour implémenter des modifications dans la configuration, y compris la prise en charge du chiffrement, vous devez uniquement modifier le profil lié aux entités.

Les profils SSL frontal par défaut et back-end par défaut contiennent tous les chiffrements et courbes ECC par défaut, en plus des paramètres qui faisaient partie des anciens profils. Des exemples de résultats pour les profils par défaut sont fournis en annexe. L’opération Activer le profil par défaut lie automatiquement le profil frontal par défaut à toutes les entités frontales, et le profil principal par défaut à toutes les entités back-end. Vous pouvez modifier un profil par défaut en fonction de votre déploiement. Vous pouvez également créer des profils personnalisés et les lier aux entités SSL.

Le profil frontal contient des paramètres applicables à une entité frontale. Autrement dit, ils s’appliquent à l’entité qui reçoit des demandes d’un client. En règle générale, cette entité est un serveur virtuel SSL ou un service SSL transparent sur l’appliance Citrix ADC. Le profil back-end contient des paramètres applicables à une entité back-end. Autrement dit, ils s’appliquent à l’entité sur l’appliance ADC qui envoie des requêtes client à un serveur principal. En règle générale, cette entité est un service SSL sur l’appliance Citrix ADC. Si vous essayez de configurer un paramètre non pris en charge, l’erreurERROR: Specified parameters are not applicable for this type of SSL profile apparaît.

Important :

Après la mise à niveau, si vous activez les profils par défaut, vous ne pouvez pas annuler les modifications. Autrement dit, les profils ne peuvent pas être désactivés. Enregistrez la configuration et créez une copie du fichier de configuration (ns.conf) avant d’activer les profils. Toutefois, si vous ne souhaitez pas utiliser les fonctionnalités du profil par défaut, vous pouvez continuer à utiliser les anciens profils SSL. Pour plus d’informations sur ces profils, reportez-vous à la section Profil SSL hérité.

À partir de la version 11.1 51.x, dans l’interface graphique et l’interface de ligne de commande, une invite de confirmation est ajoutée lorsque vous activez le profil par défaut pour empêcher son activation par erreur.

Commande :

set ssl parameter -defaultProfile ENABLED
    Save your configuration before enabling the Default profile. You cannot undo the changes. Are you sure you want to enable the Default profile? [Y/N]Y
Done

Par défaut, certains paramètres SSL, appelés paramètres globaux, s’appliquent à tous les points de fin SSL. Toutefois, si un profil est lié à un point de terminaison SSL, les paramètres globaux ne s’appliquent pas. Les paramètres spécifiés dans le profil s’appliquent à la place.

Points à noter

  1. Un profil peut être lié à plusieurs serveurs virtuels, mais un serveur virtuel ne peut avoir qu’un seul profil lié à lui.
  2. Pour supprimer un profil lié à un serveur virtuel, dissociez d’abord le profil.
  3. Un groupe de chiffrement ou de chiffrement peut être lié à plusieurs profils à des priorités différentes.
  4. Un profil peut avoir plusieurs chiffrements et groupes de chiffrement liés à différentes priorités.
  5. Les modifications apportées à un groupe de chiffrement sont immédiatement répercutées dans tous les profils et dans tous les serveurs virtuels auxquels l’un des profils est lié.
  6. Si une suite de chiffrement fait partie d’un groupe de chiffrement, modifiez le groupe de chiffrement pour supprimer cette suite de chiffrement avant de supprimer la suite de chiffrement du profil.
  7. Si vous n’affectez pas de priorité à une suite de chiffrements ou à un groupe de chiffrements attachés à un profil, la priorité la plus basse lui est attribuée.
  8. Vous pouvez créer un groupe de chiffrement personnalisé (également appelé groupe de chiffrement défini par l’utilisateur) à partir de groupes de chiffrement et de suites de chiffrement existants. Si vous créez un groupe de chiffrement A et y ajoutez des groupes de chiffrement X et Y existants, dans cet ordre, Y est assigné à une priorité inférieure à X. Autrement dit, le groupe ajouté a une priorité supérieure.
  9. Si une suite de chiffrement fait partie de deux groupes de chiffrement attachés au même profil, la suite de chiffrement n’est pas ajoutée dans le deuxième groupe de chiffrement. La suite de chiffrement à la priorité la plus élevée est en vigueur lorsque le trafic est traité.
  10. Les groupes de chiffrement ne sont pas développés dans le profil. Par conséquent, le nombre de lignes dans le fichier de configuration (ns.conf) est considérablement réduit. Par exemple, si deux groupes de chiffrement contenant 15 chiffrements chacun sont liés à un millier de serveurs virtuels SSL, l’extension ajoute 30*1000 entrées liées au chiffrement dans le fichier de configuration. Avec le nouveau profil, il n’aurait que deux entrées : une pour chaque groupe de chiffrement lié à un profil.
  11. La création d’un groupe de chiffrement défini par l’utilisateur à partir de chiffrements et de groupes de chiffrement existants est une opération de copier-coller. Les modifications apportées au groupe d’origine ne sont pas reflétées dans le nouveau groupe.
  12. Un groupe de chiffrement défini par l’utilisateur répertorie tous les profils dont il fait partie.
  13. Un profil répertorie tous les serveurs virtuels SSL, services et groupes de services auxquels il est lié.
  14. Si la fonction de profil SSL par défaut est activée, utilisez le profil pour définir ou modifier l’un des attributs d’une entité SSL. Par exemple, serveur virtuel, service, groupe de services ou service interne.

Enregistrer la configuration à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

save config

shell

root@ns# cd /nsconfig

root@ns# cp ns.conf ns.conf.NS<currentreleasenumber><currentbuildnumber>

Exemple :

save config
shell
root@ns# cd /nsconfig
root@ns# cp ns.conf ns.conf.NS.11.0.jun.16

Activer le profil par défaut

Important :

Enregistrez votre configuration avant de mettre à niveau le logiciel et d’activer les profils par défaut.

À partir de la version 11.1 build 51.x, dans l’interface graphique et l’interface de ligne de commande, une invite de confirmation apparaît lorsque vous activez le profil par défaut pour éviter de l’activer par erreur.

Commande : La commande suivante active le profil par défaut et lie ce profil aux entités SSL auxquelles un profil est déjà lié. Autrement dit, si un profil (par exemple P1) est déjà lié à une entité SSL, P1 est remplacé par le profil frontal par défaut ou le profil principal par défaut. L’ancien profil (P1) n’est pas supprimé. Il s’agit maintenant d’un profil SSL amélioré et contient les paramètres précédents, ainsi que les chiffrements et courbes ECC. Si vous ne voulez pas le profil par défaut, vous pouvez lier explicitement P1 à l’entité SSL.

set ssl parameter -defaultProfile ENABLED
    Save your configuration before enabling the Default profile. You cannot undo the changes. Are you sure you want to enable the Default profile? [Y/N]Y
Done

Mettez à niveau le logiciel vers une version prenant en charge l’infrastructure de profil améliorée, puis activez les profils par défaut.

Remarques :

  • Si un profil hérité (P1) est déjà lié à une entité SSL et que vous activez le profil par défaut, le profil par défaut remplace la liaison précédente. Autrement dit, le profil par défaut est lié aux entités SSL. Si vous ne souhaitez pas que le profil par défaut soit lié, vous devez à nouveau lier P1 à l’entité SSL.

  • Une seule opération (Activer le profil par défaut ouset ssl parameter -defaultProfile ENABLED) active (lie) le profil frontal par défaut et le profil principal par défaut.

Cas d’utilisation

Après avoir activé les profils par défaut, ils sont liés à tous les points d’extrémité SSL. Les profils par défaut sont modifiables. Si votre déploiement utilise la plupart des paramètres par défaut et ne modifie que quelques paramètres, vous pouvez modifier les profils par défaut. Les changements sont immédiatement répercutés sur tous les points de fin. Vous pouvez également créer des profils SSL personnalisés avec des paramètres personnalisés et par défaut et les lier aux entités SSL.

L’organigramme suivant explique les étapes que vous devez effectuer :

Cas d'utilisation des profils SSL 1

  1. Pour plus d’informations sur la mise à niveau du logiciel, reportez-vous à la section Mise à niveau du logiciel système.

  2. Activez les profils par défaut à l’aide de l’interface de ligne de commande ou de l’interface graphique.

  • Sur la ligne de commande, tapez : set ssl parameter -defaultProfile ENABLED
  • Si vous préférez utiliser l’interface graphique, accédez à Gestion du trafic > SSL > Modifier les paramètres SSL avancés, faites défiler la page vers le bas et sélectionnez Activer le profil par défaut.

Si un profil n’était pas lié à un point de fin avant la mise à niveau, un profil par défaut est lié au point de fin SSL. Si un profil était lié à un point final avant la mise à niveau, le même profil est lié après la mise à niveau et les chiffrements par défaut sont ajoutés au profil.

  1. (Facultatif) Modifiez manuellement les paramètres du profil par défaut.
  • Sur la ligne de commande, tapez :set ssl profile <name> suivi des paramètres à modifier.
  • Si vous préférez utiliser l’interface graphique, accédez à Système > Profils. Dans Profils SSL, sélectionnez un profil et cliquez sur Modifier.

Paramètres du profil SSL

Vous pouvez définir les paramètres SSL suivants dans un profil SSL. Vous pouvez définir certains de ces paramètres dans un serveur virtuel SSL. Pour plus d’informations sur les paramètres du serveur virtuel SSL, reportez-vous à la section Paramètres du serveur virtuel SSL.

Prise en charge de la renégociation sécurisée à l’arrière de l’appliance Citrix ADC

Remarque : Ce paramètre est introduit dans la version 13.0 build 58.x et ultérieure. Dans les versions et versions antérieures, seule la renégociation non sécurisée était prise en charge sur le back-end.

La fonctionnalité est prise en charge sur les plates-formes suivantes :

  • VPX
  • Plateformes MPX contenant des puces N2 ou N3
  • Plateformes basées sur puces Intel Coleto SSL

La fonctionnalité n’est pas encore prise en charge sur la plate-forme FIPS.

La renégociation sécurisée est refusée par défaut sur le back-end d’une appliance ADC. Autrement dit, ledenySSLReneg paramètre est défini sur ALL (par défaut).

Pour autoriser la renégociation sécurisée sur le back-end, sélectionnez l’un des paramètres suivants pour le paramètre denySSLReneg :

  • NON
  • FRONTEND_CLIENT
  • FRONTEND_CLIENTSERVER
  • NONSECURE

Activer la renégociation sécurisée à l’aide de la CLI

À l’invite de commandes, tapez :

set ssl profile <name> -denySSLReneg <denySSLReneg>

Exemple :

set ssl profile ns_default_ssl_profile_backend -denySSLReneg NONSECURE
 Done

sh ssl profile ns_default_ssl_profile_backend
1)  Name: ns_default_ssl_profile_backend    (Back-End)
    SSLv3: DISABLED TLSv1.0: ENABLED  TLSv1.1: ENABLED  TLSv1.2: ENABLED  TLSv1.3: DISABLED
    Server Auth: DISABLED
    Use only bound CA certificates: DISABLED
    Strict CA checks:       NO
    Session Reuse: ENABLED      Timeout: 300 seconds
    DH: DISABLED
    Ephemeral RSA: DISABLED
    Deny SSL Renegotiation      NONSECURE
    Non FIPS Ciphers: DISABLED
    Cipher Redirect: DISABLED
    SSL Redirect: DISABLED
    Send Close-Notify: YES
    Strict Sig-Digest Check: DISABLED
    Push Encryption Trigger: Always
    PUSH encryption trigger timeout:    1 ms
    SNI: DISABLED
    OCSP Stapling: DISABLED
    Strict Host Header check for SNI enabled SSL sessions:      NO
    Push flag:  0x0 (Auto)
    SSL quantum size:       8 kB
    Encryption trigger timeout  100 mS
    Encryption trigger packet count:    45

    ECC Curve: P_256, P_384, P_224, P_521

1)  Cipher Name: DEFAULT_BACKEND        Priority :2
    Description: Predefined Cipher Alias

1)  Service Name: s187
 Done

Activer la renégociation sécurisée à l’aide de l’interface graphique

  1. Accédez à Système > Profils > Profil SSL.
  2. Ajoutez ou modifiez un profil.
  3. Définissez Refuser la renégociation SSL sur toute valeur autre que ALL.

    Profil SSL de renégociation sécurisée

Validation d’en-tête hôte

Remarque : Ce paramètre est introduit dans la version 13.0 build 52.x.

Avec HTTP/1.1, les clients devaient utiliser plusieurs connexions pour traiter plusieurs requêtes. Avec HTTP/2, les clients peuvent réutiliser les connexions entre les domaines couverts par le même certificat. Pour tenir compte de cette modification, pour une session SNI activée, l’appliance ADC doit pouvoir contrôler la façon dont l’en-tête de l’hôte HTTP est validé. Dans les versions antérieures, l’appliance a supprimé la demande si le paramètre était activé (défini sur « Oui ») et que la demande ne contenait pas l’en-tête d’hôte d’une session SNI activée. Si le paramètre était désactivé (défini sur « Non »), l’appliance n’a pas effectué la validation. Un nouveau paramètreSNIHTTPHostMatch est ajouté à un profil SSL et aux paramètres globaux SSL pour avoir un meilleur contrôle sur cette validation. Ce paramètre peut prendre trois valeurs : CERT, STRICT et NONE. Ces valeurs fonctionnent comme suit pour les sessions activées SNI uniquement. SNI doit être activé sur le serveur virtuel SSL ou le profil lié au serveur virtuel, et la requête HTTP doit contenir l’en-tête de l’hôte.

  • CERT - La connexion est transférée si la valeur d’en-tête d’hôte dans la requête est couverte par le certificat utilisé pour établir cette session SSL.
  • STRICT - La connexion est transférée uniquement si la valeur d’en-tête d’hôte dans la requête correspond exactement à la valeur de nom de serveur transmise dans le message Client Hello de la connexion SSL.
  • NO - La valeur d’en-tête de l’hôte n’est pas validée.

Valeurs possibles : NO, CERT, STRICT Valeur par défaut : CERT

Avec l’introduction du nouveau paramètre,SNIHTTPHostMatch il y a un changement dans le comportement dudropReqWithNoHostHeader paramètre. LedropReqWithNoHostHeader paramètre n’affecte plus la façon dont l’en-tête de l’hôte est validé par rapport au certificat SNI.

Définir les paramètres de profil SSL à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

set ssl profile <name> [-ssllogProfile <string>] [-dh ( ENABLED | DISABLED ) -dhFile <string>] [-dhCount <positive_integer>][-dhKeyExpSizeLimit ( ENABLED | DISABLED )] [-eRSA ( ENABLED | DISABLED) [-eRSACount <positive_integer>]] [-sessReuse ( ENABLED | DISABLED )
[-sessTimeout <positive_integer>]] [-cipherRedirect ( ENABLED | DISABLED ) [-cipherURL <URL>]] [-clientAuth ( ENABLED | DISABLED )[-clientCert ( Mandatory | Optional )]] [-sslRedirect ( ENABLED |
DISABLED )] [-redirectPortRewrite ( ENABLED | DISABLED )] [-ssl3 (ENABLED | DISABLED )] [-tls1 ( ENABLED | DISABLED )] [-tls11 ( ENABLED| DISABLED )] [-tls12 ( ENABLED | DISABLED )] [-tls13 ( ENABLED |DISABLED )] [-SNIEnable ( ENABLED | DISABLED )] [-ocspStapling (ENABLED | DISABLED )] [-serverAuth ( ENABLED | DISABLED )] [-commonName <string>] [-pushEncTrigger <pushEncTrigger>] [-sendCloseNotify ( YES |
NO )] [-clearTextPort <port|*>] [-insertionEncoding ( Unicode | UTF-8)] [-denySSLReneg <denySSLReneg>] [-quantumSize <quantumSize>]
[-strictCAChecks ( YES | NO )] [-encryptTriggerPktCount <positive_integer>] [-pushFlag <positive_integer>][-dropReqWithNoHostHeader ( YES | NO )] [-SNIHTTPHostMatch <SNIHTTPHostMatch>] [-pushEncTriggerTimeout <positive_integer>]
[-sslTriggerTimeout <positive_integer>] [-clientAuthUseBoundCAChain (ENABLED | DISABLED )] [-sslInterception ( ENABLED | DISABLED )][-ssliReneg ( ENABLED | DISABLED )] [-ssliOCSPCheck ( ENABLED | DISABLED )] [-ssliMaxSessPerServer <positive_integer>] [-HSTS ( ENABLED| DISABLED )] [-maxage <positive_integer>] [-IncludeSubdomains ( YES | NO )] [-preload ( YES | NO )] [-sessionTicket ( ENABLED | DISABLED )][-sessionTicketLifeTime <positive_integer>] [-sessionTicketKeyRefresh (ENABLED | DISABLED )] {-sessionTicketKeyData } [-sessionKeyLifeTime <positive_integer>] [-prevSessionKeyLifeTime <positive_integer>]
[-cipherName <string> -cipherPriority <positive_integer>][-strictSigDigestCheck ( ENABLED | DISABLED )]
[-skipClientCertPolicyCheck ( ENABLED | DISABLED )] [-zeroRttEarlyData ( ENABLED | DISABLED )] [-tls13SessionTicketsPerAuthContext
<positive_integer>] [-dheKeyExchangeWithPsk ( YES | NO )]

Extension de ticket de session TLS

Une poignée de main SSL est une opération intensive en CPU. Si la réutilisation de session est activée, l’opération d’échange de clés serveur/client est ignorée pour les clients existants. Ils sont autorisés à reprendre leurs sessions. Cette action 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 entre les serveurs.

Les appliances Citrix ADC prennent en charge l’extension SessionTicket TLS. 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 client. Pour les nouveaux clients, cette extension est vide. Le serveur envoie un nouveau ticket de session dans le message de poignée de main 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 maintenant, il termine une poignée de main normale.

Cette fonctionnalité n’est disponible que dans les profils SSL frontaux et uniquement dans le cadre de la communication dans laquelle l’appliance agit en tant que serveur et génère des tickets de session.

Limitations

  • Cette fonctionnalité n’est pas prise en charge sur une plate-forme FIPS.
  • Cette fonctionnalité est prise en charge uniquement avec les versions 1.1 et 1.2 de TLS.
  • La persistance des ID de session SSL n’est pas prise en charge avec les tickets de session.

Activer l’extension de ticket de session TLS à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

set ssl profile <name> -sessionTicket (ENABLED | DISABLED ) [-sessionTicketLifeTime <positive_integer>

Arguments :

SessionTicket : État de l’extension de ticket de session TLS. L’utilisation de cette extension indique que les détails de session sont stockés sur le client plutôt que sur le serveur, tel que défini dans la RFC 5077.

Valeurs possibles : ENABLED, DISABLED

Valeur par défaut : DISABLED

SessionTicketLifetime : spécifiez une heure, en secondes, après laquelle le ticket de session expire et une nouvelle poignée de main SSL doit être lancée.

Valeur par défaut : 300

Valeur minimale : 0

Valeur maximale : 172800

Exemple :

add ssl profile profile1 -sessionTicket ENABLED -sessionTicketlifeTime 300
Done

Activer l’extension de ticket de session TLS à l’aide de l’interface graphique

  1. Accédez à Système > Profils. Sélectionnez Profils SSL.
  2. Cliquez sur Ajouter et spécifiez un nom pour le profil.
  3. Sélectionnez le ticket de session.
  4. Le cas échéant, spécifiez Durée de vie du ticket de session (secondes).

Mise en œuvre sécurisée des tickets de session

En utilisant des tickets de session TLS, les clients peuvent utiliser des poignées de main abrégées pour une reconnexion plus rapide aux serveurs. Toutefois, si les tickets de session ne sont pas chiffrés ou modifiés pendant de longues périodes, ils peuvent poser un risque de sécurité. Vous pouvez sécuriser les tickets de session en les chiffrant avec une clé symétrique. Pour obtenir le secret de transfert, vous pouvez spécifier un intervalle de temps auquel la clé de ticket de session est actualisée.

L’appliance génère les clés de ticket de session par défaut. Toutefois, si plusieurs appliances d’un déploiement doivent déchiffrer les tickets de session de l’autre, elles doivent toutes utiliser la même clé de ticket de session. Par conséquent, vous devez définir (ajouter ou charger) les mêmes données de clé de session manuellement sur toutes les appliances. Les données de la clé de ticket de session comprennent les informations suivantes :

  • Nom du ticket de session.
  • Clé AES de session utilisée pour chiffrer ou déchiffrer le ticket.
  • Clé HMAC de session utilisée pour calculer le résumé du ticket.

Vous pouvez maintenant configurer les données de clé de ticket de session d’une longueur de 64 octets pour prendre en charge les clés HMAC 256 bits, comme recommandé dans la RFC 5077. Des longueurs de clés de 48 octets sont également prises en charge pour une compatibilité descendante.

Remarque :

Lors de la saisie manuelle des données de clé de ticket de session, assurez-vous que la configuration de toutes les appliances Citrix ADC dans une configuration HA ou dans une configuration de cluster est identique.

Le paramètre sessionTicketKeyLifeTime spécifie la fréquence à laquelle une clé de ticket de session est actualisée. Vous pouvez définir le paramètre prevSessionTicketKeyLifeTime pour spécifier combien de temps la clé de session précédente sera conservée pour le décryptage des tickets à l’aide de cette clé, après la génération d’une nouvelle clé. Le paramètre prevSessionTicketKeyLifeTime prolonge la durée pendant laquelle un client peut utiliser une poignée de main abrégée pour se reconnecter. Par exemple, si ellesessionTicketKeyLifeTime est définie sur 10 minutes etprevSessionTicketKeyLifeTime sur 5 minutes, une nouvelle clé est générée après 10 minutes et utilisée pour toutes les nouvelles sessions. Cependant, les clients précédemment connectés disposent de 5 minutes supplémentaires pour lesquelles les tickets émis précédemment sont honorés pour une poignée de main abrégée.

Configurer les données de ticket de session SSL à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

set ssl profile <name> -sessionTicket ENABLED -sessionTicketLifeTime <positive_integer> -sessionTicketKeyRefresh ( ENABLED | DISABLED )] -sessionTicketKeyLifeTime <positive_integer> [-prevSessionTicketKeyLifeTime <positive_integer>]

Arguments :

SessionTicket : utilisez les tickets de session comme décrit par RFC 5077. L’établissement de la prise de contact initiale nécessite des opérations de chiffrement à clé publique à forte intensité de processeur. Avec le paramètre ENABLED, un serveur émet un ticket de session à un client, que le client peut utiliser pour effectuer une poignée de main abrégée.

Valeurs possibles : ENABLED, DISABLED. Par défaut : DISABLED

SessionTicketLifetime : Durée de vie, en secondes, du ticket de session. Après l’expiration de ce délai, les clients ne peuvent pas utiliser ce ticket pour reprendre leurs sessions.

Valeur maximale : 172800. Valeur minimale : 0. Par défaut : 300.

SessionTicketKeyRefresh : Lorsque le temps spécifié par le paramètre de durée de vie de la clé de session expire, régénérez la clé de session utilisée pour chiffrer ou déchiffrer les tickets de session. Activé automatiquement si SessionTicket est activé. Désactivé si un administrateur saisit les données du ticket de session.

Valeurs possibles : ENABLED, DISABLED. Par défaut : ENABLED

SessionKeyLifetime : Durée de vie, en secondes, d’une clé symétrique utilisée pour chiffrer les tickets de session émis par une appliance Citrix ADC.

Valeur maximale : 86400. Valeur minimale : 600. Par défaut : 3000

PrevSessionKeyLifetime : Durée, en secondes, pendant laquelle la clé symétrique précédente utilisée pour chiffrer les tickets de session reste valide pour les clients existants après l’expiration de la durée de vie de la clé de session. Dans ce délai, les clients existants peuvent reprendre leurs sessions à l’aide de la clé de ticket de session précédente. Les tickets de session pour les nouveaux clients sont cryptés à l’aide de la nouvelle clé.

Valeur maximale : 172800. Valeur minimale : 0. Par défaut : 0

Exemple :

set ssl profile ns_default_ssl_profile_frontend -sessionTicket ENABLED -sessionTicketlifeTime 120 -sessionTicketKeyRefresh ENABLED -sessionTicketKeyLifeTime 100 -prevSessionTicketKeyLifeTime 60

Done

show ssl profile ns_default_ssl_profile_frontend

    Session Ticket: ENABLED
    Session Ticket Lifetime: 120 (secs)
    Session Key Auto Refresh: ENABLED
    Session Key Lifetime: 100 (secs)
    Previous Session Key Lifetime: 60 (secs)

Configurer les données de ticket de session SSL à l’aide de l’interface graphique

  1. Accédez à Système > Profils, puis sélectionnez Profil SSL.

  2. Sélectionnez ns_default_ssl_profile_frontend et cliquez sur Modifier.

  3. Dans la section Paramètres de base, cliquez sur l’icône en forme de crayon et définissez les paramètres suivants :

    • Ticket de session
    • Durée de vie du ticket de session (secondes)
    • Actualisation automatique de la clé de ticket de session
    • Durée de vie de la clé de ticket de session (secondes)
    • Durée de vie de la clé de ticket de session précédente (secondes)
  4. Cliquez sur OK.

Tapez manuellement les données de ticket de session SSL à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

set ssl profile <name> -sessionTicket ENABLED

set ssl profile <name> -sessionTicketKeyData

show ssl profile ns_default_ssl_profile_frontend

Arguments :

SessionTicket : utilisation des tickets de session comme décrit par la RFC 5077. L’établissement de la prise de contact initiale nécessite des opérations de chiffrement à clé publique à forte intensité de processeur. Avec le paramètre ENABLED, un serveur émet un ticket de session à un client, que le client peut utiliser pour effectuer une poignée de main abrégée.

Valeurs possibles : ENABLED, DISABLED. Par défaut : DISABLED

SessionTicketKeyData : contient le nom du ticket de session (de 0 à 15 octets), la clé AES de session utilisée pour chiffrer ou déchiffrer le ticket de session (de 16 à 31 octets) et la clé HMAC de session utilisée pour calculer le résumé du ticket (de 32 à 63 octets). Généré en externe par un administrateur et ajouté à une appliance Citrix ADC.

Longueur maximale : 64 octets

Exemple :

set ssl profile ns_default_ssl_profile_frontend -sessionTicket ENABLED

Done

set ssl profile ns_default_ssl_profile_frontend -sessionTicketKeyData 111111111111111111111111111111111111111111111111

Done

show ssl profile ns_default_ssl_profile_frontend

    1) Name: ns_default_ssl_profile_frontend (Front-End)
    SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED
    Client Auth: DISABLED
    Use only bound CA certificates: DISABLED
    Strict CA checks: NO
    Session Reuse: ENABLED Timeout: 120 seconds
    DH: DISABLED
    DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
    Deny SSL Renegotiation ALL
    Non FIPS Ciphers: DISABLED
    Cipher Redirect: DISABLED
    SSL Redirect: DISABLED
    Send Close-Notify: YES
    Push Encryption Trigger: Always
    PUSH encryption trigger timeout: 1 ms
    SNI: DISABLED
    OCSP Stapling: DISABLED
    Strict Host Header check for SNI enabled SSL sessions: NO
    Push flag: 0x0 (Auto)
    SSL quantum size: 8 kB
    Encryption trigger timeout 100 mS
    Encryption trigger packet count: 45
    Subject/Issuer Name Insertion Format: Unicode
    Session Ticket: ENABLED
    Session Ticket Lifetime: 300 (secs)
    Session Key Auto Refresh: DISABLED
    Session Key Lifetime: 3000 (secs)
    Previous Session Key Lifetime: 0 (secs)
    Session Key Data: 84dad1afc6d56b0deeb0a7fd7f299a207e8d8c15cdd087a5684a11a329fd732e87a0535d90883
    47e8c181ba266f5c8838ae472cb3ab9255b683bf922fad32cee816c329989ef7cdeb278e93ac37882e3

    ECC Curve: P_256, P_384, P_224, P_521

    1) Cipher Name: DEFAULT Priority :4
    Description: Predefined Cipher Alias

    1) Internal Service Name (Front-End): nsrnatsip-127.0.0.1-5061
    2) Internal Service Name (Front-End): nskrpcs-127.0.0.1-3009
    3) Internal Service Name (Front-End): nshttps-::1l-443
    4) Internal Service Name (Front-End): nsrpcs-::1l-3008
    5) Internal Service Name (Front-End): nshttps-127.0.0.1-443
    6) Internal Service Name (Front-End): nsrpcs-127.0.0.1-3008
    7) Vserver Name: v1

Done

Tapez manuellement les données de ticket de session SSL à l’aide de l’interface graphique

  1. Accédez à Système > Profils, puis sélectionnez Profil SSL.

  2. Sélectionnez ns_default_ssl_profile_frontend et cliquez sur Modifier.

  3. Dans la section Paramètres de base, cliquez sur l’icône en forme de crayon et définissez les paramètres suivants :

    • Ticket de session
    • Données de clé de ticket de session
    • Confirmer les données de clé de ticket de session
  4. Cliquez sur OK.

Prise en charge du secret maître étendu dans la poignée de main SSL sur les plates-formes Citrix ADC non FIPS

Remarque : Ce paramètre est introduit dans la version 13.0 build 61.x.

Extended Master Secret (EMS) est une extension facultative du protocole TLS (Transport Layer Security). Pour prendre en charge EMS sur l’appliance Citrix ADC, un nouveau paramètre est ajouté qui s’applique aux profils SSL frontal et back-end. Si le paramètre est activé et que l’homologue prend en charge EMS, l’appliance ADC utilise le calcul EMS. Si l’homologue ne prend pas en charge EMS, le calcul EMS n’est pas utilisé pour la connexion même si le paramètre est activé sur l’appliance. Pour plus d’informations sur EMS, consultez la RFC 7627.

Remarque : Extended Master Secret n’est applicable que pour les poignées de main qui utilisent le protocole TLS version 1.0, 1.1 ou 1.2.

Support de plateforme pour EMS

  • Plateformes MPX et SDX contenant des puces Cavium N3 ou des cartes cryptographiques Intel Coleto Creek. Les plates-formes suivantes sont livrée avec les puces Intel Coleto :
  • MPX 5900
  • MPX/SDX 8900
  • MPX/SDX 26000
  • MPX/SDX 26000-50S
  • MPS/SDX 26000-100G
  • MPX/SDX 15000-50G

Vous pouvez également utiliser la commande « show hardware » pour identifier si votre appliance possède des puces Coleto (COL) ou N3.

  • Plateformes MPX et SDX sans cartes crypto (logiciel uniquement).

  • Plateformes logicielles uniquement : VPX, CPX et BLX.

EMS ne peut pas être activé sur les plates-formes suivantes :

  • MPX 9700 plates-formes FIPS et MPX 14000 FIPS.

  • Plateformes MPX et SDX contenant des puces crypto Cavium N2.

Si le paramètre est activé, l’appliance ADC tente d’utiliser EMS dans les connexions TLS 1.2, TLS 1.1 et TLS 1.0. Le paramètre n’affecte pas les connexions TLS 1.3 ou SSLv3.

Pour autoriser la négociation EMS avec l’homologue, activez le paramètre sur le profil SSL lié au serveur virtuel (frontal) ou au service (backend).

Activer le secret maître étendu à l’aide de la CLI

À l’invite de commandes, tapez :

set ssl profile <profile name> [-allowExtendedMasterSecret (YES | NO)]

Exemples

set ssl profile ns_default_ssl_profile_frontend  -allowExtendedMasterSecret YES

set ssl profile ns_default_ssl_profile_backend  -allowExtendedMasterSecret YES

Le tableau suivant indique la valeur par défaut duallowExtendedMasterSecret paramètre sur différents profils définis par défaut et par l’utilisateur.

Profile Paramètre par défaut
Profil frontal par défaut NON
Profil sécurisé frontal par défaut OUI
Profil principal par défaut NON
Profil défini par l’utilisateur NON

Activer le secret maître étendu à l’aide de l’interface graphique

  1. Accédez à Système > Profils > Profil SSL.
  2. Ajoutez un profil ou modifiez un profil.
  3. Définissez Autoriser le secret maître étendu sur YES.

    Secret maître étendu

Prise en charge du traitement de l’extension ALPN dans le message Hello client

Remarque : Cette fonctionnalité est prise en charge dans la version 13.0 build 61.x et ultérieure.

Pour négocier le protocole d’application dans l’extension ALPN pour les connexions gérées par le serveur virtuel SSL_TCP, un paramètre alpnProtocol est ajouté aux profils SSL frontaux. Seul le protocole spécifié dans le profil SSL est négocié, si le même protocole est reçu dans l’extension ALPN du message hello client.

Remarque : LealpnProtocol paramètre est pris en charge uniquement sur les profils SSL frontal et s’applique aux connexions SSL gérées par les serveurs virtuels de type SSL_TCP.

Définissez le protocole dans le profil SSL frontal à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

set ssl profile ns_default_ssl_profile_frontend -alpnProtocol <protocol_name>

LealpnProtocol paramètre peut prendre trois valeurs. Longueur maximale : 4096 octets.

  • NONE : La négociation du protocole d’application n’a pas lieu. il s’agit du réglage par défaut.
  • HTTP1 : HTTP1 peut être négocié en tant que protocole d’application.
  • HTTP2 : HTTP2 peut être négocié en tant que protocole d’application.

Exemple :

set ssl profile ns_default_ssl_profile_frontend -ALPNProtocol HTTP2
> sh ssl profile ns_default_ssl_profile_frontend
1)  Name: ns_default_ssl_profile_frontend   (Front-End)
    SSLv3: DISABLED TLSv1.0: ENABLED  TLSv1.1: ENABLED  TLSv1.2: ENABLED  TLSv1.3: DISABLED
    Client Auth: DISABLED
    Use only bound CA certificates: DISABLED
    Strict CA checks:   NO
    Session Reuse: ENABLED  Timeout: 120 seconds
    DH: DISABLED
    DH Private-Key Exponent Size Limit: DISABLED    Ephemeral RSA: ENABLED  Refresh Count: 0
    Deny SSL Renegotiation  ALL
    Non FIPS Ciphers: DISABLED
    Cipher Redirect: DISABLED
    SSL Redirect: DISABLED
    Send Close-Notify: YES
    Strict Sig-Digest Check: DISABLED
    Zero RTT Early Data: DISABLED
    DHE Key Exchange With PSK: NO
    Tickets Per Authentication Context: 1
    Push Encryption Trigger: Always
    PUSH encryption trigger timeout:    1 ms
    SNI: DISABLED
    OCSP Stapling: DISABLED
    Strict Host Header check for SNI enabled SSL sessions:  NO
    Match HTTP Host header with SNI:    CERT
    Push flag:  0x0 (Auto)
    SSL quantum size:   8 kB
    Encryption trigger timeout  100 mS
    Encryption trigger packet count:    45
    Subject/Issuer Name Insertion Format:   Unicode

    SSL Interception: DISABLED
    SSL Interception OCSP Check: ENABLED
    SSL Interception End to End Renegotiation: ENABLED
    SSL Interception Maximum Reuse Sessions per Server: 10
    Session Ticket: DISABLED
    HSTS: DISABLED
    HSTS IncludeSubDomains: NO
    HSTS Max-Age: 0
    HSTS Preload: NO
    Allow Extended Master Secret: NO
    Send ALPN Protocol: HTTP2

 Done

Définissez le protocole dans le profil SSL frontal à l’aide de l’interface graphique

  1. Accédez à Système > Profils, puis sélectionnez Profil SSL.

  2. Sélectionnez ns_default_ssl_profile_frontend et cliquez sur Modifier.

  3. Dans la liste Protocole ALPN, sélectionnez HTTP2.

    Sélection du protocole ALPN dans l'interface graphique

Charger une ancienne configuration

L’activation des profils par défaut n’est pas réversible. Toutefois, si vous décidez que votre déploiement ne nécessite pas les profils par défaut, vous pouvez charger une configuration plus ancienne que vous avez enregistrée avant d’activer les profils par défaut. Les modifications sont effectives après le redémarrage de l’appliance.

Charger une ancienne configuration à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

shell

root@ns# clear config

root@ns# cd /nsconfig

root@ns# cp ns.conf.NS.11.0.jun.16 ns.conf

root@ns# reboot