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 :

  • La prise en charge logicielle uniquement du protocole TLSv1.3 est disponible sur tous les appliances Citrix ADC MPX, à 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é, reportez-vous à la section 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 éphémère de clés Diffie-Hellman :
    • P_256
    • P_384
    • P_521
  3. Poignées de main abrégées lorsque la reprise de session basée sur un ticket est activée

  4. Données d’application anticipée 0-RTT

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

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

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

  8. Association d’OCSP

  9. Les messages de journal et les enregistrements AppFlow sont produits pour les poignées de main TLSv1.3.

  10. Journalisation facultative des secrets de trafic TLS 1.3 par l’utilitaire de capture denstrace 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)
  • Opéra - 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 l’interface de ligne de commande

À l’invite de commandes, tapez :

add ssl profile <tls13-profile-name>

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

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 Protocole, sélectionnez TLSv13.

    Créer un profil TLSv13

  4. Cliquez sur OK.

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

Exemple :

set ssl vserver ssl-vs -sslProfile tls13profile

Liez 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
    
    set ssl profile tls13profile -tls13 disable
    
  2. Définir le nombre de tickets de session émis.

    TLS13SessionTicketsPerAuthContext : nombre de tickets que le serveur virtuel SSL émet lorsque TLS1.3 est négocié, la reprise basée sur les tickets est activée et (1) une poignée de main est terminée ou (2) l’authentification du client se termine après la poignée de main.

    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 ticket 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
    
  3. Définir l’échange de clés DH

    dheKeyExchangeWithPsk: spécifie 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 poignée de main de reprise de session TLS 1.3. Un échange de clés DHE garantit le secret avant, même si les clés de ticket sont compromises, au détriment des ressources supplémentaires nécessaires à l’échange de clés DHE.

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

    YES : 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 poignée de main est interrompue avec une alerte fatale, si le client ne prend pas en charge l’échange de clés DHE lors de l’offre d’une clé pré-partagée.

    NO : 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 : YES, NO

    Valeur par défaut : NO

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

    zeroRttEarlyData: état des données d’application précoces de TLS 1.3. Les paramètres applicables fonctionnent comme suit :

    ENABLED : Les données d’application anticipées peuvent être traitées avant la fin de la poignée de main. DISABLED : les données d’application précoces sont ignorées.

    Valeurs possibles : ENABLED, DISABLED

    Valeur par défaut : DISABLED

    set ssl profile tls13profile -zeroRttEarlyData ENABLED
    
    set ssl profile tls13profile -zeroRttEarlyData DISABLED
    

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

Limitations

  • Sur la plate-forme Citrix ADC MPX, le traitement TLSv1.3 n’est pas déchargé vers du matériel crypto.
  • TLSv1.3 n’est pas pris en charge sur le back-end.
  • TLSv1.3 n’est pas pris en charge sur une appliance Citrix Secure Web Gateway et sur une appliance Citrix ADC FIPS.

Considérations opérationnelles

Note de compatibilité de la version provisoire de TLS 1.3 : Une appliance Citrix ADC implémente la variante RFC 8446 du protocole TLS 1.3 (par opposition aux versions provisoires antérieures du protocole). Utilisez un client TLS 1.3 prenant en charge la RFC 8446 (ou un brouillon interopérable # 26, 27 ou 28) pour terminer une prise de contact TLS 1.3 avec une appliance Citrix ADC. Les clients et serveurs qui implémentent différentes versions provisoires du protocole TLS 1.3 peuvent ne pas interagir entre eux.

Restrictions de sécurité

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

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

  • Les anciennes versions de TLS ont permis l’utilisation de chiffrements à faible résistance. 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 jugée 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 jugée 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écutant sur TLS1.3, reportez-vous à la section Décryptage du trafic TLS1.3 à partir de la trace de paquets.

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