ADC

RFC 8446 中定义的 TLSv1.3 协议支持

NetScaler VPX 和 NetScaler MPX 设备现在支持 RFC 8446 中指定的 TLSv1.3 协议。

备注:

  • 从版本 13.0 Build 71.x 及更高版本中,以下平台支持 TLS1.3 硬件加速:

    • MPX 5900
    • MPX/SDX 8900
    • MPX/SDX 9100
    • MPX/SDX 15000
    • MPX/SDX 15000-50G
    • MPX/SDX 16000
    • MPX/SDX 26000
    • MPX/SDX 26000-50S
    • MPX/SDX 26000-100G
  • 除 NetScaler FIPS 设备外,所有其他 NetScaler MPX 和 SDX 设备均仅提供对 TLSv1.3 协议的软件支持。

  • TLSv1.3 仅支持增强型配置文件。要启用增强配置文件,请参阅启用默认配置文件

  • 若要使用 TLS1.3,您必须使用符合 RFC 8446 规范的客户端。

支持的 NetScaler 功能

支持以下 SSL 功能:

  1. TLSv1.3 密码套件:
    • TLS1.3-AES256-GCM-SHA384 (0x1302)
    • TLS1.3_CHACHA20_POLY1305_SHA256 (0x1303)
    • TLS1.3-AES128_GCM-SHA256 (0x1301)
  2. 短暂的 Diffie-Hellman 密钥交换的 ECC 曲线:
    • P_256
    • P_384
    • P_521
  3. 启用基于票证的会话恢复时缩短握手

  4. 0-RTT 早期应用数据

  5. 可选或强制基于证书的客户端身份验证,支持客户端证书的 OCSP 和 CRL 验证

  6. 服务器名称扩展:使用 SNI 选择服务器证书

  7. 通过使用 application_level_protocol_协商扩展进行应用程序协议协商 (ALPN)。

  8. OCSP 装订

  9. 日志消息和 AppFlow 记录是为 TLSv1.3 握手生成的。

  10. nstrace 数据包捕获实用程序可选记录 TLS 1.3 流量密钥。

  11. 与实施 RFC 8446 的 TLS 客户端的互操作性。例如,Mozilla Firefox、Google Chrome 和 OpenSSL。

支持的浏览器

以下浏览器版本受支持并与 NetScaler 实现 oF TLS 1.3 协议兼容:

  • Google Chrome - 版本 72.0.3626.121(官方版本)(64 位)
  • Mozilla Firefox - 65.0.2(64 位)
  • Opera-版本:58.0.3135.79

配置

默认情况下,在 SSL 配置文件上禁用 TLSv1.3。

使用 CLI 添加 SSL 配置文件

在命令提示符下,键入:

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

示例

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

使用 GUI 添加 SSL 配置文件

  1. 导航到“系统”>“配置文件”。选择 SSL 配置文件
  2. 单击“添加”并指定配置文件的名称。
  3. 协议中,选择 TLSv13

    创建 TLSv13 个人档案

  4. 单击确定

使用 CLI 将 SSL 配置文件绑定到 SSL 虚拟服务器

在命令提示符下,键入:

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

示例

set ssl vserver ssl-vs -sslProfile tls13profile

使用 GUI 将 SSL 配置文件绑定到 SSL 虚拟服务器

  1. 导航到 流量管理 > 负载平衡 > 虚拟服务器,然后选择 SSL 虚拟服务器。
  2. 高级设置中,单击 SSL 配置文件
  3. 选择之前创建的TLSv1.3配置文件。
  4. 单击确定
  5. 单击 Done(完成)。

TLSv1.3 协议的 SSL 配置文件参数

  1. 在 SSL 配置文件中启用或禁用 TLS1.3 参数。

    tls13:对 SSL 配置文件的 TLSv1.3 协议支持的状态。

    可能的值:ENABLED、DISABLED

    默认值: 已禁用

    set ssl profile tls13profile -tls13 enable
    <!--NeedCopy-->
    
    set ssl profile tls13profile -tls13 disable
    <!--NeedCopy-->
    
  2. 设置已签发的会话票证的数量。

    tls13SessionTicketsPerAuthContext:协商 TLS1.3、启用基于票证的恢复以及 (1) 握手完成或 (2) 握手后客户端身份验证完成时 SSL 虚拟服务器发出的票证数。

    可以增加此值以使客户端能够为每个连接使用新票证打开多个并行连接。

    如果禁用恢复,则不会发送票证。

    默认值:1

    最小值:1

    最大值:10

    set ssl profile tls13profile -tls13sessionTicketsPerAuthContext 1
    
    set ssl profile tls13profile -tls13sessionTicketsPerAuthContext 10
    <!--NeedCopy-->
    
  3. 设置 DH 密钥交换

    dheKeyExchangeWithPsk:指定在 TLS 1.3 会话恢复握手期间接受预共享密钥时,SSL 虚拟服务器是否要求进行 DHE 密钥交换。即使票证密钥被泄露,DHE 密钥交换也能确保向前保密,但代价是执行 DHE 密钥交换所需的额外资源。

    如果启用了会话票证,可用设置的工作方式如下:

    :接受预共享密钥时,无论客户端是否支持密钥交换,都需要交换 DHE 密钥。如果客户端在提供预共享密钥时不支持 DHE 密钥交换,则握手中止并发出致命警报。

    :只有在客户端请求预共享密钥时,才会执行 DHE 密钥交换。

    可能的值:是、否

    默认值:NO

    set ssl profile tls13profile dheKeyExchangeWithPsk yes
    
    set ssl profile tls13profile dheKeyExchangeWithPsk no
    <!--NeedCopy-->
    
  4. 启用或禁用 0-RTT 提前数据接受

    zeroRttEarlyData:TLS 1.3早期应用程序数据的状态。适用设置的工作方式如下:

    启用:握手完成前可能会处理早期应用程序数据。 禁用:忽略早期应用程序数据。

    可能的值:ENABLED、DISABLED

    默认值: 已禁用

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

默认密码组

默认密码组包括 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-->

限制

  • 后端不支持 TLSv1.3。
  • Citrix Secure Web Gateway 设备和 NetScaler FIPS 设备不支持 TLSv1.3。
  • TLSv1.3 握手仅支持具有 1024 位及更大密钥的 RSA 证书。

安全限制

TLSv1.3 服务器操作员必须牢记 RFC 8446 中概述的向后兼容性的以下安全限制。NetScaler 设备上的默认配置符合这些限制。但是,NetScaler 设备不会强制遵守这些规则。

  • 正如 RFC7465 中所述,RC4 密码套件的安全性被认为是不够的。实施不得为任何版本的 TLS 提供或协商 RC4 密码套件。

  • 旧版本的 TLS 允许使用低强度密码。不得为任何版本的 TLS 提供或协商强度小于 112 位的密码。

  • 如 RFC7568 中所述,SSL 3.0 [SSLv3] 的安全性被认为是不够的,因此不得协商。当启用 TLSv1.3 时禁用 SSLv3(默认情况下禁用 SSLv3)。

  • 如 RFC6176 中所述,SSL 2.0 [SSLv2] 的安全性被认为是不够的,因此不得协商。当启用 TLS 1.3 时禁用 SSLv2(默认情况下禁用 SSLv2)。

注意:

有关在 TLS1.3 上运行的协议故障排除的信息,请参阅 从数据包跟踪中解密 TLS1.3 流量

RFC 8446 中定义的 TLSv1.3 协议支持