Citrix ADC

Prise en charge du protocole TLSv1.3 tel que défini dans la RFC 8446

Les appliances Citrix ADC VPX et Citrix ADC MPX prennent désormais en charge le protocole TLSv1.3, spécifié dans la RFC 8446.

Remarques :

  • Depuis la version 13.0 build 71.x et les versions ultérieures, l’accélération matérielle TLS1.3 est prise en charge sur les plates-formes suivantes :

    • MPX 5900
    • MPX/SDX 8900
    • MPX/SDX 15000
    • MPX/SDX 15000-50G
    • MPX/SDX 26000
    • MPX/SDX 26000-50S
    • MPX/SDX 26000-100G

    - La prise en charge logicielle du protocole TLSv1.3 est disponible sur tous les autres appliances Citrix ADC MPX et SDX, à l’exception des appliances Citrix ADC FIPS.

  • TLSv1.3 n’est pris en charge qu’avec le profil amélioré. Pour activer le profil amélioré, voir Activer le profil amélioré.

  • Pour utiliser TLS1.3, vous devez utiliser un client conforme à la spécification RFC 8446.

Fonctionnalités Citrix ADC prises en charge

Les fonctionnalités SSL suivantes sont prises en charge :

  1. Suites de chiffrement TLSv1.3 :
    • TLS1.3-AES256-GCM-SHA384 (0x1302)
    • TLS1.3_CHACHA20_POLY1305_SHA256 (0x1303)
    • TLS1.3-AES128_GCM-SHA256 (0x1301)
  2. Courbes ECC pour l’échange de clés éphémère Diffie-Hellman :
    • P_256
    • P_384
    • P_521
  3. Poignées de contact abrégées lorsque la reprise de session basée sur des tickets est activée

  4. Données d’application précoce 0-RTT

  5. Authentification client facultative ou obligatoire basée sur un certificat, avec prise en charge de la validation OCSP et CRL des certificats clients

  6. Extension du nom du serveur : sélection du certificat du serveur à l’aide de SNI

  7. Négociation du protocole d’application (ALPN) à l’aide de l’extension application_level_protocol_negotiation.

  8. Agrafage OCSP

  9. Les messages de journal et les enregistrements AppFlow sont produits pour les prises de contact TLSv1.3.

  10. Enregistrement facultatif des secrets de trafic TLS 1.3 par l’utilitaire de capture de nstrace paquets.

  11. Interopérabilité avec les clients TLS implémentant la RFC 8446. Par exemple, Mozilla Firefox, Google Chrome et OpenSSL.

Les versions de navigateur suivantes sont prises en charge et compatibles avec l’implémentation Citrix ADC du protocole TLS 1.3 :

  • Google Chrome - Version 72.0.3626.121 (version officielle) (64 bits)
  • Mozilla Firefox - 65.0.2 (64 bits)
  • Opera - Version:58.0.3135.79

Configuration

TLSv1.3 est désactivé par défaut sur un profil SSL.

Ajouter un profil SSL à l’aide de la CLI

À l’invite de commandes, tapez :

add ssl profile <tls13-profile-name>
<!--NeedCopy-->

Exemple :

add ssl profile tls13profile

sh ssl profile tls13profile
1)  Name: tls13profile           (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
    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

    ECC Curve: P_256, P_384, P_224, P_521

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

Ajouter un profil SSL à 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. Dans Protocol, sélectionnez TLSv13.

    Créer un profil TLSv13

  4. Cliquez sur OK.

Lier un profil SSL à un serveur virtuel SSL à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

set ssl vserver <vServerName> -sslProfile <tls13-profile-name>
<!--NeedCopy-->

Exemple :

set ssl vserver ssl-vs -sslProfile tls13profile

Lier un profil SSL à un serveur virtuel SSL à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels, puis sélectionnez un serveur virtuel SSL.
  2. Dans Paramètres avancés, cliquez sur Profil SSL.
  3. Sélectionnez le profil TLSv1.3 créé précédemment.
  4. Cliquez sur OK.
  5. Cliquez sur Terminé.

Paramètres de profil SSL pour le protocole TLSv1.3

  1. Activez ou désactivez les paramètres TLS1.3 dans un profil SSL.

    tls13 : état de la prise en charge du protocole TLSv1.3 pour le profil SSL.

    Valeurs possibles : ENABLED, DISABLED

    Valeur par défaut : DISABLED

    set ssl profile tls13profile -tls13 enable
    <!--NeedCopy-->
    
    set ssl profile tls13profile -tls13 disable
    <!--NeedCopy-->
    
  2. Définissez le nombre de billets de session émis.

    TLS13SessionTicketsPerAuthContext : Nombre de tickets émis par le serveur virtuel SSL lorsque TLS1.3 est négocié, que la reprise basée sur les tickets est activée et que (1) une négociation se termine ou (2) l’authentification du client se termine après l’établissement de la liaison.

    Cette valeur peut être augmentée pour permettre aux clients d’ouvrir plusieurs connexions parallèles à l’aide d’un nouveau ticket pour chaque connexion.

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

    Valeur par défaut : 1

    Valeur minimale : 1

    Valeur maximale : 10

    set ssl profile tls13profile -tls13sessionTicketsPerAuthContext 1
    
    set ssl profile tls13profile -tls13sessionTicketsPerAuthContext 10
    <!--NeedCopy-->
    
  3. Jeu d’échange de clés DH

    dheKeyExchangeWithPsk: indique si un serveur virtuel SSL nécessite un échange de clés DHE lorsqu’une clé prépartagée est acceptée lors d’une prise de contact de reprise de session TLS 1.3. Un échange de clés DHE garantit le secret de transmission, même si les clés de ticket sont compromises, au détriment des ressources supplémentaires nécessaires pour effectuer l’échange de clés DHE .

    Les paramètres disponibles fonctionnent comme suit, si le ticket de session est activé :

    OUI : L’échange de clés DHE est requis lorsqu’une clé pré-partagée est acceptée, que le client prenne ou non en charge l’échange de clés. La prise de contact est annulée avec une alerte fatale, si le client ne prend pas en charge l’échange de clés DHE lorsqu’il propose une clé pré-partagée.

    NON : L’échange de clés DHE est effectué lorsqu’une clé pré-partagée est acceptée, uniquement si le client le demande.

    Valeurs possibles : OUI, NON

    Valeur par défaut : NON

    set ssl profile tls13profile dheKeyExchangeWithPsk yes
    
    set ssl profile tls13profile dheKeyExchangeWithPsk no
    <!--NeedCopy-->
    
  4. Activer ou désactiver l’acceptation anticipée des données 0-RTT

    zeroRttEarlyData: état des données relatives aux premières applications du protocole TLS 1.3. Les paramètres applicables fonctionnent comme suit :

    ACTIVÉ : Les premières données d’application peuvent être traitées avant la fin de la prise de contact. DÉSACTIVÉ : les premières données d’application sont ignorées.

    Valeurs possibles : ENABLED, DISABLED

    Valeur par défaut : DISABLED

    set ssl profile tls13profile -zeroRttEarlyData ENABLED
    
    set ssl profile tls13profile -zeroRttEarlyData DISABLED
    <!--NeedCopy-->
    

Groupe de chiffrement par défaut

Le groupe de chiffrement par défaut inclut les chiffrements TLS1.3.

sh cipher DEFAULT
1) Cipher Name: TLS1-AES-256-CBC-SHA    Priority : 1
    Description: SSLv3 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA1   HexCode=0x0035

2)  Cipher Name: TLS1-AES-128-CBC-SHA    Priority : 2
    Description: SSLv3 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA1   HexCode=0x002f
…
…
27) Cipher Name: TLS1.3-AES256-GCM-SHA384         Priority : 27
    Description: TLSv1.3 Kx=any      Au=any  Enc=AES-GCM(256) Mac=AEAD   HexCode=0x1302

28) Cipher Name: TLS1.3_CHACHA20_POLY1305_SHA256     Priority : 28
    Description: TLSv1.3 Kx=any      Au=any  Enc=CHACHA20/POLY1305(256) Mac=AEAD   HexCode=0x1303

29) Cipher Name: TLS1.3-AES128_GCM-SHA256        Priority : 29
    Description: TLSv1.3 Kx=any      Au=any  Enc=AES-GCM(128) Mac=AEAD   HexCode=0x1301
Done
<!--NeedCopy-->

Limitations

  • TLSv1.3 n’est pas pris en charge sur le serveur principal.
  • TLSv1.3 n’est pas pris en charge sur une appliance Citrix Secure Web Gateway et sur une appliance Citrix ADC FIPS.

Restrictions relatives

Les opérateurs de serveur TLSv1.3 doivent garder à l’esprit les restrictions de sécurité suivantes relatives à la compatibilité descendante décrites dans la RFC 8446. La configuration par défaut sur un boîtier NetScaler est conforme à ces restrictions. Toutefois, une appliance NetScaler n’impose pas le respect de ces règles.

  • La sécurité des suites de chiffrement RC4 est considérée comme insuffisante comme décrit dans le document RFC7465. Les implémentations ne doivent pas proposer ou négocier de suites de chiffrement RC4 pour aucune version de TLS.

  • Les anciennes versions de TLS permettaient l’utilisation de chiffrements à faible intensité. Les chiffrements dont la force est inférieure à 112 bits ne doivent pas être proposés ou négociés pour aucune version de TLS.

  • La sécurité de SSL 3.0 [SSLv3] est considérée comme insuffisante comme décrit dans la RFC7568 et ne doit pas être négociée. Désactivez SSLv3 lorsque TLSv1.3 est activé (SSLv3 est désactivé par défaut).

  • La sécurité de SSL 2.0 [SSLv2] est considérée comme insuffisante comme décrit dans la RFC6176 et ne doit pas être négociée. Désactivez SSLv2 lorsque TLS 1.3 est activé (SSLv2 est désactivé par défaut).

Remarque :

Pour plus d’informations sur le dépannage des protocoles exécutés sur TLS1.3, consultez Déchiffrement du trafic TLS1.3 du suivi des paquets.

Prise en charge du protocole TLSv1.3 tel que défini dans la RFC 8446