ADC

Infrastructure de profils SSL

Des vulnérabilités dans la mise en œuvre de SSLv3 et RC4 ont mis en évidence 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 terminaison SSL, est un processus fastidieux. Par conséquent, les paramètres qui faisaient partie de la configuration des points de terminaison SSL ont été déplacés vers les profils SSL, ainsi que les chiffrements par défaut. Pour mettre en œuvre des modifications dans la configuration, y compris la prise en charge du chiffrement, il vous suffit de modifier le profil lié aux entités.

Les profils SSL frontaux et dorsaux par défaut contiennent tous les chiffrements et les courbes ECC par défaut, en plus des paramètres qui faisaient partie des anciens profils. Des exemples de sorties 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 principales. 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 à des entités SSL.

Le profil frontal contient des paramètres applicables à une entité frontale (l’entité qui reçoit les demandes d’un client). Il s’agit généralement d’un serveur virtuel SSL, d’un service SSL transparent ou de services internes sur l’appliance NetScaler. Le profil principal contient des paramètres applicables à une entité principale (entité de l’appliance ADC qui envoie les demandes des clients à un serveur principal). Généralement, cette entité est un service SSL ou un groupe de services sur l’appliance NetScaler. Si vous essayez de configurer un paramètre non pris en charge, l’erreur ERROR: Specified parameters are not applicable for this type of SSL profile apparaît. Certains paramètres SSL, tels que la taille de la mémoire CRL, la taille du cache OCSP, le contrôle UnDefaction et les données UnDefaction, ne font partie d’aucun profil, car ces paramètres sont indépendants des entités. Ces paramètres sont présents dans Gestion du trafic > SSL > Paramètres SSL avancés. Pour plus d’informations sur les paramètres SSL pris en charge sur un moniteur sécurisé, voir Définir les paramètres SSL sur un moniteur sécurisé.

Un profil SSL prend en charge les opérations suivantes :

  • Ajouter : crée un profil SSL sur l’appliance NetScaler. Spécifiez si le profil est frontal ou dorsal. La valeur par défaut est le front-end.
  • Définir : — Modifie les paramètres d’un profil existant.
  • Non défini : rétablit les valeurs par défaut des paramètres spécifiés. Si vous ne spécifiez aucun paramètre, un message d’erreur s’affiche. Si vous annulez la définition d’un profil sur une entité, le profil n’est pas lié à l’entité.
  • Supprimer : supprime un profil. Un profil utilisé par une entité ne peut pas être supprimé. L’effacement de la configuration supprime toutes les entités. Par conséquent, les profils sont également supprimés.
  • Lier : lie un profil à une entité SSL.
  • Dissocier : dissocie un profil d’une entité SSL.
  • Afficher : affiche tous les profils disponibles sur l’appliance NetScaler. Si un nom de profil est spécifié, les détails de ce profil sont affichés. Si une entité est spécifiée, les profils associés à cette entité sont affichés.

Important :

  • Un profil SSL a priorité sur les paramètres SSL. En d’autres termes, si vous configurez des paramètres SSL à l’aide de la commande set ssl parameter, puis que vous liez ultérieurement un profil à une entité SSL, les paramètres du profil sont prioritaires.

  • Après la mise à niveau, si vous activez les profils par défaut, vous ne pouvez pas annuler les modifications. En d’autres termes, 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, voir Profil SSL hérité.

  • Dans l’interface graphique et la CLI, une invite de confirmation est ajoutée lorsque vous activez le profil par défaut afin d’éviter de l’activer par erreur.

Les protocoles inférieurs à TLSv1.2 sont désactivés sur les services internes SSL. Si le profil par défaut (amélioré) est activé, le profil ns_default_ssl_profile_internal_frontend_service est lié aux services internes SSL et les protocoles SSLv3, TLSv1.0 et TLSv1.1 sont désactivés dans le profil.

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
<!--NeedCopy-->

Par défaut, certains paramètres SSL, appelés paramètres globaux, s’appliquent à tous les points de terminaison 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 être lié qu’à un seul profil.
  2. Pour supprimer un profil lié à un serveur virtuel, dissociez d’abord le profil.
  3. Un chiffrement ou un groupe de chiffrement peut être lié à plusieurs profils ayant des priorités différentes.
  4. Un profil peut comporter 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’attribuez pas de priorité à une suite de chiffrement ou à un groupe de chiffrement associé à un profil, la priorité la plus basse du profil 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 le groupe de chiffrement A et que vous y ajoutez des groupes de chiffrement X et Y existants, dans cet ordre, Y est affecté à une priorité inférieure à X. En d’autres termes, le groupe ajouté en premier 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 en tant que partie du deuxième groupe de chiffrement. La suite de chiffrement ayant 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*1 000 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, les services et les groupes de services auxquels il est lié.
  14. Si la fonctionnalité 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, un serveur virtuel, un service, un groupe de services ou un service interne.

Enregistrez la configuration en utilisant 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>
<!--NeedCopy-->

Exemple :

save config
shell
root@ns# cd /nsconfig
root@ns# cp ns.conf ns.conf.NS.11.0.jun.16
<!--NeedCopy-->

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 s’affiche 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é. En d’autres termes, si un profil (par exemple P1) est déjà lié à une entité SSL, le profil frontal par défaut ou le profil principal par défaut remplace P1. L’ancien profil (P1) n’est pas supprimé. Il s’agit désormais d’un profil SSL amélioré qui contient les paramètres précédents, ainsi que les chiffrements et les courbes ECC. Si vous ne souhaitez pas obtenir 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
<!--NeedCopy-->

Mettez à niveau le logiciel vers une version qui prend 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. En d’autres termes, 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 lier à nouveau P1 à l’entité SSL.

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

Paramètres faisant partie des profils par défaut

Exécutez les commandes suivantes pour répertorier les paramètres qui font partie des profils frontaux et dorsaux par défaut.

sh ssl profile ns_default_ssl_profile_frontend
sh ssl profile ns_default_ssl_profile_backend
<!--NeedCopy-->

Exemple :

> 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: NONE


    ECC Curve: P_256, P_384, P_224, P_521

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


> 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  ALL
    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

    Allow Extended Master Secret: NO

    ECC Curve: P_256, P_384, P_224, P_521

1)  Cipher Name: DEFAULT_BACKEND    Priority :1
    Description: Predefined Cipher Alias
 Done
 <!--NeedCopy-->

Cas d’utilisation

Une fois que vous avez activé les profils par défaut, ils sont liés à tous les points de terminaison 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 modifications sont immédiatement répercutées sur tous les points finaux. Vous pouvez également créer des profils SSL personnalisés avec certains paramètres personnalisés et certains paramètres 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, consultez 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 SSLavancés, faites défiler la page vers le bas et sélectionnezActiver le profil par défaut.

Si un profil n’était pas lié à un point de terminaison avant la mise à niveau, un profil par défaut est lié au point de terminaison 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 des chiffrements par défaut sont ajoutés au profil.

  1. (Facultatif) Modifiez manuellement tous 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, consultez Paramètres du serveur virtuel SSL.

Prise en charge de la renégociation sécurisée au niveau du back-end d’une appliance NetScaler

Cette fonctionnalité est prise en charge sur les plateformes suivantes :

  • VPX
  • Plates-formes MPX contenant des puces N2 ou N3
  • Plates-formes à puce Intel Coleto SSL

Cette fonctionnalité n’est pas encore prise en charge sur la plateforme FIPS.

La renégociation sécurisée est refusée par défaut sur le back-end d’un boîtier ADC. En d’autres termes, le paramètre denySSLReneg est défini sur ALL (par défaut).

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

  • NON
  • FRONTEND_CLIENT
  • FRONTEND_CLIENTSERVER
  • NON SÉCURISÉ

Activer la renégociation sécurisée à l’aide du 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
<!--NeedCopy-->

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 n’importe quelle valeur autre que ALL.

    Profil SSL de renégociation sécurisée back-end

Validation de l’en-tê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 demandes. Avec HTTP/2, les clients peuvent réutiliser les connexions entre les domaines couverts par le même certificat. Pour une session activée SNI, l’appliance ADC doit être en mesure de contrôler la façon dont l’en-tête d’hôte HTTP est validé pour tenir compte de ce changement. Dans les versions précédentes, la demande était supprimée si le paramètre était activé (défini sur « Oui ») et si la demande ne contenait pas l’en-tête d’hôte pour une session activée SNI. Si le paramètre était désactivé (défini sur « Non »), l’appliance n’a pas effectué la validation. Un nouveau paramètre SNIHTTPHostMatch est ajouté à un profil SSL et des 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 pour SNI uniquement. Le SNI doit être activé sur le serveur virtuel SSL ou le profil lié au serveur virtuel, et la demande 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 demande est couverte par le certificat utilisé pour établir cette session SSL.
  • STRICT - La connexion est transférée uniquement si la valeur de l’en-tête d’hôte dans la demande correspond à la valeur du nom du serveur transmise dans le message Client Hello de la connexion SSL.
  • NON - La valeur de l’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, le comportement du paramètre dropReqWithNoHostHeader change. La définition du paramètre dropReqWithNoHostHeader 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 )]
<!--NeedCopy-->

Définition des paramètres de profil SSL à l’aide de l’interface graphique

Pour ajouter un profil :

  1. Accédez à Système > Profils .

    Profils du système

  2. Sélectionnez Profils SSL. Cliquez sur Ajouter.

    Profil SSL

  3. Spécifiez des valeurs pour les différents paramètres.

    Paramètres du profil SSL

  4. Cliquez sur OK.
  5. Cliquez sur Terminé.

Pour réutiliser un profil SSL existant :

  1. Accédez à Système > Profils .
  2. Sélectionnez un profil existant et cliquez sur Ajouter.
  3. Spécifiez un autre nom, modifiez tous les paramètres, puis cliquez sur OK.
  4. Cliquez sur Terminé.

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 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 de charge entre les serveurs.

Les appliances NetScaler 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 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 maintenant, il effectue une prise de contact normale.

Cette fonctionnalité n’est disponible que dans les profils SSL frontaux, et uniquement au niveau de la partie frontale 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 TLS 1.1 et 1.2.
  • 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 la CLI

À l’invite de commandes, tapez :

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

Arguments :

SessionTicket : état de l’extension du 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 un délai, en secondes, après lequel le ticket de session expire et une nouvelle poignée de main SSL doit être initiée.

Valeur par défaut : 300

Valeur minimale : 0

Valeur maximale : 172800

Exemple :

add ssl profile profile1 -sessionTicket ENABLED -sessionTicketlifeTime 300
Done
<!--NeedCopy-->

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 Ticket de session.
  4. Vous pouvez également spécifier Durée de vie du ticket de session (en secondes).

Implémentation sécurisée des tickets de session

En utilisant des tickets de session TLS, les clients peuvent utiliser des poignées de contact 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 présenter un risque pour la sécurité. Vous pouvez sécuriser les tickets de session en les chiffrant à l’aide d’une clé symétrique. Pour atteindre la confidentialité, vous pouvez spécifier un intervalle de temps pendant lequel la clé du 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 des autres, 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 ticket de session manuellement sur toutes les appliances. Les données clés du ticket de session incluent 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 désormais 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é de 48 octets sont également prises en charge pour la compatibilité ascendante.

Remarque :

Lorsque vous saisissez manuellement les données clés du ticket de session, assurez-vous que la configuration de toutes les appliances NetScaler dans une configuration HA ou dans une configuration de cluster est la même.

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 la durée pendant laquelle la clé de ticket 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 sessionTicketKeyLifeTime est défini sur 10 minutes et prevSessionTicketKeyLifeTime 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 déjà connectés disposent de 5 minutes supplémentaires pendant lesquelles les tickets précédemment émis sont honorés pour une poignée de main abrégée.

Configurer les données des tickets 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>]
<!--NeedCopy-->

Arguments :

SessionTicket : utilisez les 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 gourmandes en CPU. Avec le paramètre ENABLED, un serveur envoie un ticket de session à un client, que le client peut utiliser pour effectuer une prise de contact abrégée.

Valeurs possibles : ACTIVÉ, DÉSACTIVÉ. Par défaut : DÉSACTIVÉ

SessionTicketLifetime : durée de vie, en secondes, du ticket de session. Passé 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 la durée spécifiée par le paramètre de durée de vie de la clé de ticket de session expire, régénérez la clé de ticket 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 : ACTIVÉ, DÉSACTIVÉ. Par défaut : ACTIVÉ

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

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é du ticket de session. Pendant ce temps, les clients existants peuvent reprendre leurs sessions en utilisant la clé de ticket de session précédente. Les tickets de session pour les nouveaux clients sont chiffré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)
<!--NeedCopy-->

Configurer les données des tickets 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 billet de session (secondes)
    • Actualisation automatique de la clé du ticket
    • Durée de vie de la clé du ticket de session (secondes)
    • Durée de vie des clés du ticket de session précédente (secondes)
  4. Cliquez sur OK.

Tapez les données du ticket de session SSL manuellement à 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
<!--NeedCopy-->

Arguments :

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

Valeurs possibles : ACTIVÉ, DÉSACTIVÉ. Par défaut : DÉSACTIVÉ

sessionTicketKeyData: Contains the session ticket name (0–15 bytes), the session AES key used to encrypt or decrypt the session ticket (16–31 bytes), and the session HMAC key used to compute the digest of the ticket (32–63 bytes). Externally generated by an administrator and added to a NetScaler appliance.

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
<!--NeedCopy-->

Saisissez les données du ticket de session SSL manuellement à 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 clés du ticket de session
    • Confirmer les données clés du ticket
  4. Cliquez sur OK.

Prise en charge de l’extension du secret principal dans le cadre de l’établissement de contacts SSL sur les plateformes NetScaler non FIPS

Extended Master Secret (EMS) est une extension facultative du protocole TLS (Transport Layer Security). Un nouveau paramètre est ajouté qui s’applique à la fois aux profils SSL frontaux et dorsaux afin de prendre en charge l’EMS sur l’appliance NetScaler. 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 : EMS ne s’applique qu’aux poignées de mains qui utilisent le protocole TLS version 1.0, 1.1 ou 1.2.

Support de plateforme pour EMS

  • Plates-formes MPX et SDX contenant des puces Cavium N3 ou des cartes cryptographiques Intel Coleto Creek. Les plates-formes suivantes sont livrées avec des 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 déterminer si votre matériel est équipé de puces Coleto (COL) ou N3.

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

  • Plates-formes logicielles uniquement : VPX, CPX et BLX.

Le service EMS ne peut pas être activé sur les plateformes suivantes :

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

  • Plateformes MPX et SDX contenant des puces cryptographiques 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 permettre à EMS d’être négocié avec l’homologue, activez le paramètre sur le profil SSL lié au serveur virtuel (frontal) ou au service (backend).

Activer EMS à l’aide du 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
<!--NeedCopy-->

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

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

Activer EMS en utilisant 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 principal étendu sur OUI.

    EMS

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

Un paramètre alpnProtocol est ajouté aux profils SSL frontaux pour négocier le protocole d’application dans l’extension ALPN pour les connexions gérées par le serveur virtuel SSL_TCP. 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 : Le paramètre alpnProtocol est pris en charge uniquement sur les profils SSL frontaux et s’applique aux connexions SSL gérées par des 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>

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

  • AUCUN : 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
 <!--NeedCopy-->

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 ancienne configuration que vous avez enregistrée avant d’activer les profils par défaut. Les modifications entrent en vigueur après le redémarrage de l’appliance.

Charger une ancienne configuration en utilisant 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
<!--NeedCopy-->

Renégociations SSL limitant le débit

Lorsque la renégociation SSL est activée, le nombre de demandes de renégociation n’est pas limité. Par conséquent, le NetScaler est vulnérable aux attaques DoS qui peuvent finalement entraîner l’arrêt complet du traitement du trafic SSL par NetScaler. Le paramètre maxRenegrate est introduit dans le profil SSL pour pallier ce problème en limitant le nombre de demandes de renégociation reçues en une seconde sur une entité SSL.

Ce paramètre est configurable uniquement denySSLReneg s’il n’est pas défini sur ALL. Lorsqu’elle maxRenegRate est définie sur zéro, la limitation de débit est désactivée (paramètre par défaut). Lorsqu’il est défini sur une valeur entière comprise entre 1 et 65 535, la limitation de débit est activée et le nombre maximum de demandes de renégociation par seconde adressées à chaque entité liée au profil SSL est limité à cette valeur entière. Par exemple, si vous définissez le paramètre maxRenegRate sur 100 dans le profil ssl-profile-1SSL et que ce profil est lié à deux serveurs virtuels v1 et v2, alors v1 a une limite de 100 et v2 une limite de 100 demandes de renégociation.

Remarque :

Cette fonctionnalité n’est pas prise en charge par le protocole DTLS.

Pour ajouter la limite lors de la création d’un profil SSL à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

add ssl profile pf1 -denySSLReneg (NO | FRONTEND_CLIENT | FRONTEND_CLIENTSERVER | NONSECURE) -maxRenegRate 100

Pour définir la limite d’un profil SSL existant à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

set ssl profile pf1 denySSLReneg (NO | FRONTEND_CLIENT | FRONTEND_CLIENTSERVER | NONSECURE) -maxRenegRate 100

Exemple Dans les commandes suivantes, « MaxRenegrate » est défini sur 100. Par conséquent, un maximum de 100 demandes par seconde sont autorisées à toutes les entités auxquelles le profil est lié.

set ssl profile pf1 denySSLReneg (NO | FRONTEND_CLIENT | FRONTEND_CLIENTSERVER | NONSECURE) -maxRenegRate 100

add ssl profile pf1 -denySSLReneg (NO | FRONTEND_CLIENT | FRONTEND_CLIENTSERVER | NONSECURE) -maxRenegRate 100

Pour spécifier la limite à l’aide de l’interface graphique

  1. Accédez à Système > Profils > Profil SSL.
  2. Cliquez sur Ajouter pour créer un profil ou sélectionnez un profil existant.
  3. Pour un nouveau profil, indiquez un nom.
  4. Définissez Refuser la renégociation SSL sur n’importe quelle valeur autre que ALL.
  5. Spécifiez le taux de renégociation maximal.
  6. Cliquez sur OK.
  7. Cliquez sur Terminé.