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 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. Généralement, 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. C’est-à-dire qu’ils s’appliquent à l’entité sur l’appliance ADC qui envoie des demandes client à un serveur principal. Généralement, cette entité est un service SSL sur l’appliance Citrix ADC. 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.
Important :
Un profil SSL a priorité sur les paramètres SSL. C’est-à-dire que si vous configurez les paramètres SSL à l’aide de la
set ssl parameter
commande, puis liez un profil à une entité SSL, les paramètres du profil ont priorité.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, voir Profil SSL hérité.
À partir de la version 11.1 51.x, dans l’interface graphique et CLI, une invite de confirmation est ajoutée lorsque vous activez le profil par défaut pour empêcher l’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
<!--NeedCopy-->
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
- Un profil peut être lié à plusieurs serveurs virtuels, mais un serveur virtuel ne peut avoir qu’un seul profil lié à lui.
- Pour supprimer un profil lié à un serveur virtuel, dissociez d’abord le profil.
- Un groupe de chiffrement ou de chiffrement peut être lié à plusieurs profils à des priorités différentes.
- Un profil peut avoir plusieurs chiffrements et groupes de chiffrement liés à différentes priorités.
- 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é.
- 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.
- 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.
- 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.
- 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é.
- 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.
- 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.
- Un groupe de chiffrement défini par l’utilisateur répertorie tous les profils dont il fait partie.
- Un profil répertorie tous les serveurs virtuels SSL, services et groupes de services auxquels il est lié.
- 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.
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>
<!--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 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é. C’est-à-dire que si un profil (par exemple P1) est déjà lié à une entité SSL, le profil frontal par défaut ou le profil back-end par défaut remplace P1. 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
<!--NeedCopy-->
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 ou
set 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 :
-
Pour plus d’informations sur la mise à niveau du logiciel, reportez-vous à la section Mise à niveau du logiciel système.
-
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.
- (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, 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 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
- Plates-formes à puce SSL Intel Coleto
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. C’est-à-dire que le denySSLReneg
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 l’interface de ligne de commande
À 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
- Accédez à Système > Profils > Profil SSL.
- Ajouter ou modifier un profil.
-
Définissez Refuser la renégociation SSL sur toute valeur autre que ALL.
Validation 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 des 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 cette modification. Dans les versions antérieures, la demande a été supprimée si le paramètre était activé (défini sur « Oui ») et si la requête ne contenait pas l’en-tête hôte d’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 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 uniquement pour les sessions activées SNI. SNI doit être activé sur le serveur virtuel SSL ou sur 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 de l’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 d’en-tête d’hôte dans la requête correspond à la valeur du nom du serveur passée dans le message Client Hello de la connexion SSL.
- NO - 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
il y a un changement dans le comportement du dropReqWithNoHostHeader
paramètre. Le dropReqWithNoHostHeader
paramètre n’affecte plus la façon dont l’en-tête d’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éfinir les paramètres de profil SSL à l’aide de l’interface graphique
Pour ajouter un profil :
- Accédez à Système > Profils.
- Sélectionnez Profils SSL. Cliquez sur Ajouter.
- Spécifiez les valeurs pour les différents paramètres.
- Cliquez sur OK.
- Cliquez sur Terminé.
Pour réutiliser un profil SSL existant :
- Accédez à Système > Profils.
- Sélectionnez un profil existant et cliquez sur Ajouter.
- Spécifiez un nom différent, modifiez les paramètres, puis cliquez sur OK.
- Cliquez sur Terminé.
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>
<!--NeedCopy-->
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
<!--NeedCopy-->
Activer l’extension de ticket de session TLS à l’aide de l’interface graphique
- Accédez à Système > Profils. Sélectionnez Profils SSL.
- Cliquez sur Ajouter et spécifiez un nom pour le profil.
- Sélectionnez le ticket de session.
- 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>]
<!--NeedCopy-->
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)
<!--NeedCopy-->
Configurer les données de ticket de session SSL à l’aide de l’interface graphique
-
Accédez à Système > Profils, puis sélectionnez Profil SSL.
-
Sélectionnez ns_default_ssl_profile_frontend et cliquez sur Modifier.
-
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)
-
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
<!--NeedCopy-->
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 : 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 Citrix ADC 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-->
Tapez manuellement les données de ticket de session SSL à l’aide de l’interface graphique
-
Accédez à Système > Profils, puis sélectionnez Profil SSL.
-
Sélectionnez ns_default_ssl_profile_frontend et cliquez sur Modifier.
-
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
-
Cliquez sur OK.
Prise en charge de Extended Master Secret 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). Un nouveau paramètre s’applique aux profils SSL frontal et back-end pour prendre en charge EMS sur l’appliance Citrix ADC. 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, reportez-vous à la RFC 7627.
Remarque : EMS s’applique uniquement aux handshakes qui utilisent le protocole TLS version 1.0, 1.1 ou 1.2.
Prise en charge des plateformes EMS
- Plates-formes MPX et SDX contenant soit des puces Cavium N3 soit des cartes crypto Intel Coleto Creek. Les plates-formes suivantes sont livrés 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 appliance possède des puces Coleto (COL) ou N3.
-
Plates-formes MPX et SDX sans carte crypto (logiciel uniquement).
-
Plates-formes logicielles uniquement : VPX, CPX et BLX.
EMS ne peut pas être activé sur les plates-formes suivantes :
-
MPX 9700 FIPS et MPX 14000 plates-formes 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 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 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
<!--NeedCopy-->
Le tableau suivant présente 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 back-end par défaut | NON |
Profil défini par l’utilisateur | NON |
Activer EMS à l’aide de l’interface graphique
- Accédez à Système > Profils > Profil SSL.
- Ajoutez un profil ou modifiez un profil.
-
Définissez Autoriser le secret maître étendu sur YES.
Prise en charge du traitement de l’extension ALPN dans le message de bonjour du client
Remarque : Cette fonctionnalité est prise en charge dans la version 13.0 build 61.x et ultérieure.
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 bonjour client.
Remarque : Le alpnProtocol
paramètre est pris en charge uniquement sur les profils SSL frontaux et est applicable aux connexions SSL gérées par les serveurs virtuels de type SSL_TCP.
Définir 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 alpnProtocol
paramètre 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é comme 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éfinir le protocole dans le profil SSL frontal à l’aide de l’interface graphique
-
Accédez à Système > Profils, puis sélectionnez Profil SSL.
-
Sélectionnez ns_default_ssl_profile_frontend et cliquez sur Modifier.
-
Dans la liste Protocole ALPN, sélectionnez HTTP2.
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
<!--NeedCopy-->
Dans cet article
- Points à noter
- Enregistrer la configuration à l’aide de l’interface de ligne de commande
- Activer le profil par défaut
- Cas d’utilisation
- Paramètres du profil SSL
- Prise en charge de la renégociation sécurisée au niveau du back-end d’une appliance Citrix ADC
- Validation en-tête hôte
- Définir les paramètres de profil SSL à l’aide de l’interface de ligne de commande
- Définir les paramètres de profil SSL à l’aide de l’interface graphique
- Extension de ticket de session TLS
- Mise en œuvre sécurisée des tickets de session
- Prise en charge de Extended Master Secret dans la poignée de main SSL sur les plates-formes Citrix ADC non-FIPS
- Prise en charge du traitement de l’extension ALPN dans le message de bonjour du client
- Charger une ancienne configuration