Support for DTLS protocol

Notes:

  • DTLSv1.0 protocol is supported on Citrix ADC MPX/SDX (N2 and N3 based), VPX, and MPX 14000 FIPS appliances. It is not supported on external HSMs.
  • DTLS 1.0 protocol is supported on Citrix ADC appliances containing Intel Coleto SSL chips (from release 12.1 build 50.x).
  • DTLSv1.2 protocol is supported on the front-end of Citrix ADC VPX appliances (from release 13.0 build 47.x).
  • DTLS 1.2 protocol is supported on the front-end of Citrix ADC appliances containing Intel Coleto SSL chips (from release 13.0 build 52.x). For more information about the platforms containing Intel Coleto SSL chips, see Support for Intel Coleto SSL chip based platforms.
  • Service groups of type DTLS are not supported.
  • DTLSv1.2 protocol is supported on the front-end of Citrix ADC MPX (N3 based) appliances (from release 13.0 build 58.x).
  • For information about Enlightened Data Transport (EDT) support for Citrix Gateway, see HDX enlightened data transport support.
  • There are changes made to the DTLS profile from release 13.0 build 79.x. For more information, see DTLS profile.
  • From release 13.0 build 82.x, a new parameter maxBadmacIgnorecount is introduced in the DTLS profile to ignore bad MAC records received in a DTLS session. For more information, see DTLS profile.
  • For information about the platforms and builds supported, see Citrix ADC MPX hardware-software compatibility matrix

The SSL and TLS protocols have traditionally been used to secure streaming traffic. Both of these protocols are based on TCP, which is slow. Also, TLS cannot handle lost or reordered packets.

UDP is the preferred protocol for audio and video applications, such as Lync, Skype, iTunes, YouTube, training videos, and flash. However, UDP is not secure or reliable. The DTLS protocol is designed to secure data over UDP and is used for applications such as media streaming, VOIP, and online gaming for communication. In DTLS, each handshake message is assigned a specific sequence number within that handshake. When a peer receives a handshake message, it can quickly determine whether that message is the next one expected. If it is, the peer processes the message. If not, the message is queued for handling after all the previous messages have been received.

Create a DTLS virtual server and a service of type UDP. By default, a DTLS profile (nsdtls_default_profile) is bound to the virtual server. Optionally, you can create and bind a user-defined DTLS profile to the virtual server.

Note: RC4 ciphers are not supported on a DTLS virtual server.

DTLS configuration

You can use the command line (CLI) or the configuration utility (GUI) to configure DTLS on your ADC appliance.

Note: From release 13.0 build 47.x, the DTLS 1.2 protocol is supported on the front end of a Citrix ADC VPX appliance. While configuring a DTLSv1.2 virtual server, specify DTLS12. Default is DTLS1.

At the command prompt, type:

set ssl vserver DTLS [-dtls1 ( ENABLED | DISABLED )] [-dtls12 ( ENABLED | DISABLED )]

Create a DTLS configuration by using the CLI

At the command prompt, type:

add lb vserver <vserver_name> DTLS <IPAddress>  <port>
add service  <service_name>  <IPAddress> UDP 443
bind lb vserver  <vserver_name>  <udp_service_name>
<!--NeedCopy-->

The following steps are optional:

add dtlsProfile dtls-profile -maxretryTime <positive_integer>
set ssl vserver <vserver_name> -dtlsProfileName <dtls_profile_name>
<!--NeedCopy-->

Create a DTLS configuration by using the GUI

  1. Navigate to Traffic Management > Load Balancing > Virtual Servers.
  2. Create a virtual server of type DTLS, and bind a UDP service to the virtual server.
  3. A default DTLS profile is bound to the DTLS virtual server. To bind a different profile, in SSL Parameters, select a different DTLS profile. To create a profile, click the plus (+) next to DTLS Profile.

Support for SNI on a DTLS virtual server

For information about SNI, see Configure an SNI virtual server for secure hosting of multiple sites.

Configure SNI on a DTLS virtual server by using the CLI

At the command prompt, type:

set ssl vserver <vServerName> -SNIEnable ENABLED
bind ssl vserver <vServerName> -certkeyName <string> -SNICert
show ssl vserver <vServerName>
<!--NeedCopy-->

Example:

set ssl vserver v1 -sniEnable ENABLED
bind ssl vserver  v1 -certkeyName san2 -sniCert
bind ssl vserver  v1 -certkeyName san13 –sniCert
bind ssl vserver  v1 -certkeyName san17 –sniCert
<!--NeedCopy-->
sh ssl vserver v1

Advanced SSL configuration for VServer v1:
DH: DISABLED
DH Private-Key Exponent Size Limit: DISABLED
Ephemeral RSA: ENABLED
Refresh Count: 0
Session Reuse: ENABLED
Timeout: 1800 seconds
Cipher Redirect: DISABLED

ClearText Port: 0
Client Auth: DISABLED
SSL Redirect: DISABLED
Non FIPS Ciphers: DISABLED
SNI: ENABLED
OCSP Stapling: DISABLED
HSTS: DISABLED
HSTS IncludeSubDomains: NO
HSTS Max-Age: 0
DTLSv1: ENABLED
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

DTLS profile name: nsdtls_default_profile

ECC Curve: P_256, P_384, P_224, P_521

1) CertKey Name: ca
CA Certificate  OCSPCheck: OptionalCA_Name Sent
2) CertKey Name: san2 Server Certificate for SNI
3) CertKey Name: san17 Server Certificate for SNI
4) CertKey Name: san13 Server Certificate for SNI


1) Cipher Name: DEFAULT
Description: Default cipher list with encryption strength >= 128bit
Done
<!--NeedCopy-->

Configure SNI on a DTLS virtual server by using the GUI

  1. Navigate to Traffic Management > Load Balancing > Virtual Servers.
  2. Open a DTLS virtual server and, in Certificates, click Server Certificate.
  3. Add a certificate or select a certificate from the list and select Server Certificate for SNI.
  4. In Advanced Settings, click SSL Parameters.
  5. Select SNI Enable.

Features not supported by a DTLS virtual server

The following options cannot be enabled on a DTLS virtual server:

  • SSLv2
  • SSLv3
  • TLSv1
  • TLSv1.1
  • TLSv1.2
  • Push encrypt trigger
  • SSLv2Redirect
  • SSLv2URL

Parameters not used by a DTLS virtual server

A DTLS virtual server ignores the following SSL parameters, even if set:

  • Encryption trigger packet count
  • PUSH encryption trigger timeout
  • SSL quantum size
  • Encryption trigger timeout
  • Subject/Issuer Name Insertion Format

Configure renegotiation on a DTLS service

Non-secure renegotiation is supported on a DTLS service. You can use the CLI or the GUI to configure this setting.

Configure renegotiation on a DTLS service by using the CLI

At the command prompt, type:

set ssl parameter -denysslreneg NONSECURE
<!--NeedCopy-->

Example:

set ssl parameter -denysslreneg NONSECURE


sh ssl parameter
Advanced SSL Parameters
-----------------------
SSL quantum size                                      : 8 KB
Max CRL memory size                                   : 256 MB
Strict CA checks                                      : NO
Encryption trigger timeout                            : 100 ms
Send Close-Notify                                     : YES
Encryption trigger packet count                       : 45
Deny SSL Renegotiation                                : NONSECURE
Subject/Issuer Name Insertion Format                  : Unicode
OCSP cache size                                       : 10 MB
Push flag                                             : 0x0 (Auto)
Strict Host Header check for SNI enabled SSL sessions : NO
PUSH encryption trigger timeout                       : 1 ms
Crypto Device Disable Limit                           : 0
Global undef action for control policies              : CLIENTAUTH
Global undef action for data policies                 : NOOP
Default profile                                       : DISABLED
SSL Insert Space in Certificate Header                : YES
Disable TLS 1.1/1.2 for SSL_BRIDGE secure monitors    : NO
Disable TLS 1.1/1.2 for dynamic and VPN services      : NO
Software Crypto acceleration CPU Threshold            : 0
Hybrid FIPS Mode                                      : DISABLED
Signature and Hash Algorithms supported by TLS1.2     : ALL
SSL Interception Error Learning and Caching           : DISABLED
SSL Interception Maximum Error Cache Memory           : 0 Bytes
Done
<!--NeedCopy-->

Configure renegotiation on a DTLS service by using the GUI

  1. Navigate to Traffic Management > Load Balancing > Services.
  2. Select a DTLS service and click Edit.
  3. Navigate to SSL > Advanced Settings.
  4. Select Deny SSL Renegotiation.

Features not supported by a DTLS service

The following options cannot be enabled on a DTLS service:

  • SSLv2
  • SSLv3
  • TLSv1
  • TLSv1.1
  • TLSv1.2
  • Push encrypt trigger
  • SSLv2Redirect
  • SSLv2URL
  • SNI
  • Secure renegotiation

Parameters not used by a DTLS service

A DTLS service ignores the following SSL parameters, even if set:

  • Encryption trigger packet count
  • PUSH encryption trigger timeout
  • SSL quantum size
  • Encryption trigger timeout
  • Subject/Issuer Name Insertion Format

Note:

SSL session reuse handshake fails on a DTLS service because session reuse is not currently supported on DTLS services.

Workaround: Manually disable session reuse on a DTLS service. At the CLI, type:

set ssl service <dtls-service-name> -sessReuse DISABLED

DTLS profile

A DTLS profile with the default settings is automatically bound to a DTLS virtual server. However, you can create a DTLS profile with specific settings to suit your requirement.

Use a DTLS profile with a DTLS virtual server or a VPN DTLS virtual server. You cannot use an SSL profile with a DTLS virtual server.

Note:

Change the maximum record size setting in the DTLS profile based on the changes in MTU and packet size. For example, the default max record size of 1459 bytes is calculated based on an IPv4 address header size. With IPv6 records, the header size is larger and therefore the maximum record size must be reduced to meet the following criteria.

max record size + UDP header(8bytes) + IP header size < MTU

Example:

Default DTLS profile
    1) Name: nsdtls_default_profile
    PMTU Discovery: DISABLED
    Max Record Size: 1459 bytes
    Max Retry Time: 3 sec
    Hello Verify Request: ENABLED
    Terminate Session: DISABLED
    Max Packet Count: 120 bytes

Custom DTLS profile
    1) Name: ns_dtls_profile_ipv6_1
    PMTU Discovery: DISABLED
    Max Record Size: 1450 bytes
    Max Retry Time: 3 sec
    Hello Verify Request: ENABLED
    Terminate Session: DISABLED
    Max Packet Count: 120 bytes
<!--NeedCopy-->

Create a DTLS profile by using the CLI

Notes: From release 13.0 build 79.x, the changes to the DTLS profile are as follows:

  • The helloverifyrequest parameter is enabled by default. Enabling this parameter helps mitigate the risk of an attacker or bots overwhelming the network throughput, potentially leading to outbound bandwidth exhaustion. That is, it helps mitigate the DTLS DDoS amplification attack.
  • The maxHoldQlen parameter is added. This parameter defines the number of datagrams that can be queued at the DTLS layer for processing. A high value of the maxHoldQlen parameter can cause memory buildup at the DTLS layer if UDP multiplexing is transmitting high UDP traffic. Therefore, configuring a lower value is recommended. Minimum value is 32, maximum value is 65535, and default value is 32.

From release 13.0 build 82.x, a new parameter maxBadmacIgnorecount is introduced in the DTLS profile to ignore bad MAC records received in a DTLS session. Using this parameter, bad records up to the value set in the parameter are ignored. The appliance terminates the session only after the limit is reached and sends an alert. This parameter setting is effective only when the terminateSession parameter is enabled.

ssl dtlsProfile <name> -maxRetryTime <positive_integer> -helloVerifyRequest ( ENABLED | DISABLED ) -terminateSession (ENABLED | DISABLED ) -maxHoldQLen <positive_integer> -maxBadmacIgnorecount <positive_integer>

helloVerifyRequest
              Send a Hello Verify request to validate the client.
              Possible values: ENABLED, DISABLED
              Default value: ENABLED

terminateSession
              Terminate the session if the message authentication code (MAC)
              of the client and server do not match.
              Possible values: ENABLED, DISABLED
              Default value: DISABLED

maxHoldQLen
              Maximum number of datagrams that can be queued at DTLS layer for
              processing
              Default value: 32
              Minimum value: 32
              Maximum value: 65535

maxBadmacIgnorecount
              Maximum number of bad MAC errors to ignore for a connection prior disconnect. Disabling parameter terminateSession
terminates session immediately when bad MAC is detected in the connection.
              Default value: 100
              Minimum value: 1
              Maximum value: 65535
<!--NeedCopy-->

Example:

> add ssl dtlsprofile dtls_profile -maxRetryTime 4 -helloVerifyRequest ENABLED -terminateSession ENABLED -maxHoldQLen 40 -maxBadmacIgnorecount 150
 Done
> sh dtlsprofile dtls_profile
1)  Name: dtls_profile
    PMTU Discovery: DISABLED
    Max Record Size: 1459 bytes
    Max Retry Time: 4 sec
    Hello Verify Request: ENABLED
    Terminate Session: ENABLED
    Max Packet Count: 120 bytes
    Max HoldQ Size: 40 datagrams
    Max bad-MAC Ignore Count: 150

 Done
<!--NeedCopy-->

Create a DTLS profile by using the GUI

  1. Navigate to System > Profiles > DTLS Profiles and click Add.
  2. In the Create DTLS Profile page, type values for the different parameters.

    DTLS profile

  3. Click Create.

Example for an end-to-end DTLS configuration

enable ns feature SSL LB

add server s1 198.51.100.2

en ns mode usnip

add service svc_dtls s1 DTLS 443

add lb vserver v1 DTLS 10.102.59.244 443

bind ssl vserver v1 -ciphername ALL

add ssl certkey servercert -cert servercert_aia_valid.pem -key serverkey_aia.pem

bind ssl vserver v1 -certkeyname servercert

bind lb vserver lb1 svc_dtls

sh lb vserver v1

                    v1 (10.102.59.244:4433) - DTLS     Type: ADDRESS
                    State: UP
                    Last state change was at Fri Apr 27 07:00:27 2018
                    Time since last state change: 0 days, 00:00:04.810
                    Effective State: UP
                    Client Idle Timeout: 120 sec
                    Down state flush: ENABLED
                    Disable Primary Vserver On Down : DISABLED
                    Appflow logging: ENABLED
                    No. of Bound Services :  1 (Total) 0 (Active)
                    Configured Method: LEASTCONNECTION
                    Current Method: Round Robin, Reason: A new service is bound         BackupMethod: ROUNDROBIN
                    Mode: IP
                    Persistence: NONE
                    L2Conn: OFF
                    Skip Persistency: None
                    Listen Policy: NONE
                    IcmpResponse: PASSIVE
                    RHIstate: PASSIVE
                    New Service Startup Request Rate: 0 PER_SECOND, Increment Interval: 0
                    Mac mode Retain Vlan: DISABLED
                    DBS_LB: DISABLED
                    Process Local: DISABLED
                    Traffic Domain: 0
                    TROFS Persistence honored: ENABLED
                    Retain Connections on Cluster: NO

    1) svc_dtls (10.102.59.190: 4433) - DTLS State: UP  Weight: 1
Done


sh ssl vserver v1

                    Advanced SSL configuration for VServer v1:
                    DH: DISABLED
                    DH Private-Key Exponent Size Limit: DISABLED        Ephemeral RSA: ENABLED                               Refresh Count: 0
                    Session Reuse: ENABLED                 Timeout: 1800 seconds
                    Cipher Redirect: DISABLED
                    ClearText Port: 0
                    Client Auth: DISABLED
                    SSL Redirect: DISABLED
                    Non FIPS Ciphers: DISABLED
                    SNI: DISABLED
                    OCSP Stapling: DISABLED
                    HSTS: DISABLED
                    HSTS IncludeSubDomains: NO
                    HSTS Max-Age: 0
                    DTLSv1: ENABLED
                    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
                    DTLS profile name: nsdtls_default_profile

                    ECC Curve: P_256, P_384, P_224, P_521

    1)            CertKey Name: servercert               Server Certificate

    1)            Cipher Name: DEFAULT
                    Description: Default cipher list with encryption strength >= 128bit

    2)            Cipher Name: ALL
                    Description: All ciphers supported by NetScaler, excluding NULL ciphers
     Done

sh service svc_dtls

                    svc_dtls (10.102.59.190:4433) - DTLS
                    State: UP
                    Last state change was at Fri Apr 27 07:00:26 2018
                    Time since last state change: 0 days, 00:00:22.790
                    Server Name: s1
                    Server ID : None                 Monitor Threshold : 0
                    Max Conn: 0        Max Req: 0           Max Bandwidth: 0 kbits
                    Use Source IP: NO
                    Client Keepalive(CKA): NO
                    Access Down Service: NO
                    TCP Buffering(TCPB): NO
                    HTTP Compression(CMP): NO
                    Idle timeout: Client: 120 sec           Server: 120 sec
                    Client IP: DISABLED
                    Cacheable: NO
                    SC: OFF
                    SP: OFF
                    Down state flush: ENABLED
                    Monitor Connection Close : NONE
                    Appflow logging: ENABLED
                    Process Local: DISABLED
                    Traffic Domain: 0

    1)            Monitor Name: ping-default
                                    State: UP               Weight: 1              Passive: 0
                                   Probes: 5              Failed [Total: 0 Current: 0]
                                    Last response: Success - ICMP echo reply received.
                       Response Time: 2.77 millisec
     Done

sh ssl service svc_dtls

                    Advanced SSL configuration for Back-end SSL Service svc_dtls:
                    DH: DISABLED
                    DH Private-Key Exponent Size Limit: DISABLED        Ephemeral RSA: DISABLED
                    Session Reuse: ENABLED                 Timeout: 1800 seconds
                    Cipher Redirect: DISABLED
                    ClearText Port: 0
                    Server Auth: DISABLED
                    SSL Redirect: DISABLED
                    Non FIPS Ciphers: DISABLED
                    SNI: DISABLED
                    OCSP Stapling: DISABLED
                    DTLSv1: ENABLED
                    Send Close-Notify: YES
                    Strict Sig-Digest Check: DISABLED
                    Zero RTT Early Data: ???
                    DHE Key Exchange With PSK: ???
                    Tickets Per Authentication Context: ???
                    DTLS profile name: nsdtls_default_profile
                    ECC Curve: P_256, P_384, P_224, P_521
    1)            Cipher Name: DEFAULT_BACKEND
                    Description: Default cipher list for Backend SSL session
     Done


> sh dtlsProfile nsdtls_default_profile
1)  Name: nsdtls_default_profile
    PMTU Discovery: DISABLED
    Max Record Size: 1459 bytes
    Max Retry Time: 3 sec
    Hello Verify Request: DISABLED
    Terminate Session: ENABLED
    Max Packet Count: 120 bytes
    Max HoldQ Size: 32 datagrams
    Max bad-MAC Ignore Count: 10

 Done
<!--NeedCopy-->

DTLS support for IPv6 address

DTLS is supported with IPv6 addresses also. However, to use DTLS with IPv6 addresses the maximum record size must be adjusted in the DTLS profile.

If the default value is used for the maximum record size, the initial DTLS connection might fail. Adjust the maximum record size using a DTLS profile.

DTLS cipher support

By default, a DTLS cipher group is bound when you create a DTLS virtual server or service. DEFAULT_DTLS contains the ciphers that a front-end DTLS entity supports. This group is bound by default when you create a DTLS virtual server. DEFAULT_DTLS_BACKEND contains the ciphers that are supported to a back-end DTLS entity. This group is bound by default to a DTLS back-end service. DTLS_FIPS contains the ciphers that are supported on the Citrix ADC FIPS platform. This group is bound by default to a DTLS virtual server or service created on a FIPS platform.

DTLS cipher support on Citrix ADC VPX, MPX/SDX (N2 and N3 based) appliances

How to read the tables:

Unless a build number is specified, a cipher suite is supported for all builds in a release.

Example:

  • 10.5, 11.0, 11.1, 12.0, 12.1, 13.0: All builds of 10.5, 11.0, 11.1, 12.0, 12.1, 13.0 releases.
  • -NA-: not applicable.

DTLS cipher support on Citrix ADC VPX, MPX/SDX (N2 and N3 based) appliances

Cipher Suite Name Hex Code Wireshark Cipher Suite Name Builds Supported (front end) Builds Supported (back end)
TLS1-AES-256-CBC-SHA 0x0035 TLS_RSA_WITH_AES_256_CBC_SHA 11.0, 11.1, 12.0, 12.1, 13.0 12.0, 12.1, 13.0
TLS1-AES-128-CBC-SHA 0x002f TLS_RSA_WITH_AES_128_CBC_SHA 11.0, 11.1, 12.0, 12.1, 13.0 12.0, 12.1, 13.0
SSL3-DES-CBC-SHA 0x0009 TLS_RSA_WITH_DES_CBC_SHA 11.0, 11.1, 12.0, 12.1, 13.0 -NA-
SSL3-DES-CBC3-SHA 0x000a TLS_RSA_WITH_3DES_EDE_CBC_SHA 11.0, 11.1, 12.0, 12.1, 13.0 12.0, 12.1, 13.0
SSL3-EDH-RSA-DES-CBC3-SHA 0x0016 TLS_DHE_RSA_WITH_3DES_EDE_CBC_S 11.0, 11.1, 12.0, 12.1, 13.0 -NA-
SSL3-EDH-RSA-DES-CBC-SHA 0x0015 TLS_DHE_RSA_WITH_DES_CBC_SHA 11.0, 11.1, 12.0, 12.1, 13.0 -NA-
TLS1-ECDHE-RSA-AES256-SHA 0xc014 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 12.1, 13.0 12.1, 13.0
TLS1-ECDHE-RSA-AES128-SHA 0xc013 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 12.1, 13.0 12.1, 13.0
TLS1-ECDHE-RSA-DES-CBC3-SHA 0xc012 TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA 12.1, 13.0 -NA-
TLS1-DHE-RSA-AES-128-CBC-SHA 0x0033 TLS_DHE_RSA_WITH_AES_128_CBC_SHA 12.1, 13.0 12.1, 13.0
TLS1-DHE-RSA-AES-256-CBC-SHA 0x0039 TLS_DHE_RSA_WITH_AES_256_CBC_SHA 12.1, 13.0 12.1, 13.0

To view the list of default ciphers supported on the front end, at the command prompt, type:

show ssl cipher DEFAULT_DTLS
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
3)    Cipher Name: TLS1-ECDHE-RSA-AES256-SHA    Priority : 3
    Description: SSLv3 Kx=ECC-DHE  Au=RSA  Enc=AES(256)  Mac=SHA1   HexCode=0xc014
4)    Cipher Name: TLS1-ECDHE-RSA-AES128-SHA    Priority : 4
    Description: SSLv3 Kx=ECC-DHE  Au=RSA  Enc=AES(128)  Mac=SHA1   HexCode=0xc013
5)    Cipher Name: TLS1-DHE-RSA-AES-256-CBC-SHA    Priority : 5
    Description: SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1   HexCode=0x0039
6)    Cipher Name: TLS1-DHE-RSA-AES-128-CBC-SHA    Priority : 6
    Description: SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1   HexCode=0x0033
7)    Cipher Name: TLS1-ECDHE-RSA-DES-CBC3-SHA Priority : 7
    Description: SSLv3 Kx=ECC-DHE  Au=RSA  Enc=3DES(168) Mac=SHA1   HexCode=0xc012
8)    Cipher Name: SSL3-DES-CBC3-SHA    Priority : 8
    Description: SSLv3 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=SHA1   HexCode=0x000a
<!--NeedCopy-->

To view the list of default ciphers supported on the back end, at the command prompt, type:

show ssl cipher DEFAULT_DTLS_BACKEND
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
3)    Cipher Name: TLS1-ECDHE-RSA-AES256-SHA    Priority : 3
    Description: SSLv3 Kx=ECC-DHE  Au=RSA  Enc=AES(256)  Mac=SHA1   HexCode=0xc014
4)    Cipher Name: TLS1-ECDHE-RSA-AES128-SHA    Priority : 4
    Description: SSLv3 Kx=ECC-DHE  Au=RSA  Enc=AES(128)  Mac=SHA1   HexCode=0xc013
5)    Cipher Name: TLS1-DHE-RSA-AES-256-CBC-SHA    Priority : 5
    Description: SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1   HexCode=0x0039
6)    Cipher Name: TLS1-DHE-RSA-AES-128-CBC-SHA    Priority : 6
    Description: SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1   HexCode=0x0033
7)    Cipher Name: TLS1-ECDHE-RSA-DES-CBC3-SHA Priority : 7
    Description: SSLv3 Kx=ECC-DHE  Au=RSA  Enc=3DES(168) Mac=SHA1   HexCode=0xc012
8)    Cipher Name: SSL3-DES-CBC3-SHA    Priority : 8
    Description: SSLv3 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=SHA1   HexCode=0x000a
<!--NeedCopy-->

DTLS cipher support on the Citrix ADC MPX 14000 FIPS platform

Note: Enlightened Data Support (EDT) is supported on the FIPS platform if the following conditions are met:

  • UDT MSS value set on StoreFront is 900.
  • Windows client version is 4.12 or later.
  • DTLS enabled VDA version is 7.17 or later.
  • Non-DTLS VDA version is 7.15 LTSR CU3 or later.

How to read the tables:

Unless a build number is specified, a cipher suite is supported for all builds in a release.

Example:

  • 10.5, 11.0, 11.1, 12.0, 12.1, 13.0: All builds of 10.5, 11.0, 11.1, 12.0, 12.1, 13.0 releases.
  • -NA-: not applicable.
Cipher suite Name Hex Code Wireshark Cipher suite Name Builds Supported (front end) Builds Supported (back end)
TLS1-AES-256-CBC-SHA 0x0035 TLS_RSA_WITH_AES_256_CBC_SHA 11.0, 11.1, 12.0, 12.1–49.x, 13.0 12.0, 12.1–49.x, 13.0
TLS1-AES-128-CBC-SHA 0x002f TLS_RSA_WITH_AES_128_CBC_SHA 11.0, 11.1, 12.0, 12.1–49.x, 13.0 12.0, 12.1–49.x, 13.0
SSL3-DES-CBC-SHA 0x0009 TLS_RSA_WITH_DES_CBC_SHA 11.0, 11.1, 12.0, 12.1–49.x, 13.0 -NA-
SSL3-DES-CBC3-SHA 0x000a TLS_RSA_WITH_3DES_EDE_CBC_SHA 11.0, 11.1, 12.0, 12.1–49.x, 13.0 12.0, 12.1–49.x, 13.0
SSL3-EDH-RSA-DES-CBC3-SHA 0x0016 TLS_DHE_RSA_WITH_3DES_EDE_CBC_S 11.0, 11.1, 12.0, 12.1–49.x, 13.0 -NA-
SSL3-EDH-RSA-DES-CBC-SHA 0x0015 TLS_DHE_RSA_WITH_DES_CBC_SHA 11.0, 11.1, 12.0, 12.1–49.x, 13.0 -NA-
TLS1-ECDHE-RSA-AES256-SHA 0xc014 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 12.1–49.x, 13.0 12.1–49.x, 13.0
TLS1-ECDHE-RSA-AES128-SHA 0xc013 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 12.1–49.x, 13.0 12.1–49.x, 13.0
TLS1-ECDHE-RSA-DES-CBC3-SHA 0xc012 TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA 12.1–49.x, 13.0 -NA-
TLS1-DHE-RSA-AES-128-CBC-SHA 0x0033 TLS_DHE_RSA_WITH_AES_128_CBC_SHA 12.1–49.x, 13.0 12.1–49.x, 13.0
TLS1-DHE-RSA-AES-256-CBC-SHA 0x0039 TLS_DHE_RSA_WITH_AES_256_CBC_SHA 12.1–49.x, 13.0 12.1–49.x, 13.0

To view the list of default ciphers supported on a Citrix ADC FIPS appliance, at the command prompt, type:

show ssl cipher DTLS_FIPS
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
3)    Cipher Name: TLS1-ECDHE-RSA-AES256-SHA    Priority : 3
    Description: SSLv3 Kx=ECC-DHE  Au=RSA  Enc=AES(256)  Mac=SHA1   HexCode=0xc014
4)    Cipher Name: TLS1-ECDHE-RSA-AES128-SHA    Priority : 4
    Description: SSLv3 Kx=ECC-DHE  Au=RSA  Enc=AES(128)  Mac=SHA1   HexCode=0xc013
5)    Cipher Name: TLS1-ECDHE-RSA-DES-CBC3-SHA  Priority : 5
    Description: SSLv3 Kx=ECC-DHE  Au=RSA  Enc=3DES(168) Mac=SHA1   HexCode=0xc012
6)    Cipher Name: SSL3-DES-CBC3-SHA    Priority : 6
    Description: SSLv3 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=SHA1   HexCode=0x000a
<!--NeedCopy-->

DTLSv1.2 cipher support on the front-end VPX appliances, MPX/SDX (Coleto and N3 based) appliances

The following table lists the additional ciphers supported for the DTLSv1.2 protocol.

Cipher suite Name Hex Code Wireshark Cipher suite Name Builds Supported (VPX front end) Builds Supported (Coleto based) Builds Supported (N3 based)
TLS1.2-AES256-GCM-SHA384 0x009d TLS_RSA_WITH_AES_256_GCM_SHA384 13.0–47.x 13.0–52.x 13.0–58.x
TLS1.2-AES128-GCM-SHA256 0x009c TLS_RSA_WITH_AES_128_GCM_SHA256 13.0–47.x 13.0–52.x 13.0–58.x
TLS1.2-ECDHE-RSA-AES256-GCM-SHA384 0xc030 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 13.0–47.x 13.0–52.x 13.0–58.x
TLS1.2-ECDHE-RSA-AES128-GCM-SHA256 0xc02f TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 13.0–47.x 13.0–52.x 13.0–58.x
TLS1.2-DHE-RSA-AES256-GCM-SHA384 0x009f TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 13.0–47.x 13.0–52.x 13.0–58.x
TLS1.2-DHE-RSA-AES128-GCM-SHA256 0x009e TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 13.0–47.x 13.0–52.x 13.0–58.x
TLS1.2-AES-256-SHA256 0x003d TLS_RSA_WITH_AES_256_CBC_SHA256 13.0–47.x 13.0–52.x 13.0–58.x
TLS1.2-AES-128-SHA256 0x003c TLS_RSA_WITH_AES_128_CBC_SHA256 13.0–47.x 13.0–52.x 13.0–58.x
TLS1.2-ECDHE-RSA-AES-256-SHA384 0xc028 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 13.0–47.x 13.0–52.x 13.0–58.x
TLS1.2-ECDHE-RSA-AES-128-SHA256 0xc027 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 13.0–47.x 13.0–52.x 13.0–58.x
TLS1.2-DHE-RSA-AES-256-SHA256 0x006b TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 13.0–47.x 13.0–52.x 13.0–58.x
TLS1.2-DHE-RSA-AES-128-SHA256 0x0067 TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 13.0–47.x 13.0–52.x 13.0–58.x