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

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

注意:

  • 对 TLSv1.3 协议的仅软件支持适用于除 Citrix ADC FIPS 设备之外的所有 Citrix ADC MPX 设备。

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

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

支持的 Citrix ADC 功能

支持以下 SSL 功能:

  1. TLSv1.3 密码套件:
    • TLS1.3-AES256-GCM-SHA384 (0x1302)
    • TLS1.3_CHACHA20_POLY1305_SHA256 (0x1303)(仅在 VPX 上受支持,并且在没有分配 SSL 芯片的情况下在 SDX 上支持 VPX 实例)
    • TLS1.3-AES128_GCM-SHA256 (0x1301)
  2. 用于短暂衍射-赫尔曼密钥交换的 ECC 曲线:
    • P_256
    • P_384
    • P_521
  3. 启用基于票据的会话恢复时缩写握手

  4. 0-RTT 早期应用数据

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

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

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

  8. OCSP 装订

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

  10. 通过nstrace 数据包捕获实用程序对 TLS 1.3 流量密码进行可选日志记录。

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

支持的浏览器

支持以下浏览器版本并与 TLS 1.3 协议的 Citrix ADC 实现兼容:

  • 谷歌浏览器-版本 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>

示例

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

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

在命令提示窗口中,键入:

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

示例

set ssl vserver ssl-vs -sslProfile tls13profile

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

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

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

    可能的值:ENABLED, DISABLED

    默认值: DISABLED

    set ssl profile tls13profile -tls13 enable
    
    set ssl profile tls13profile -tls13 disable
    
  2. 设定发出的会话票据数量。

    tls13SessionTicketsPerAuthContext:TLS1.3 协商时 SSL 虚拟服务器问题的票证数,启用了基于票证的恢复,并且 (1) 握手完成或 (2) 握手后完成客户端身份验证。

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

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

    默认值:1

    最小值:1

    最大值:10

    set ssl profile tls13profile -tls13sessionTicketsPerAuthContext 1
    
    set ssl profile tls13profile -tls13sessionTicketsPerAuthContext 10
    
  3. 设置 DH 钥匙交换

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

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

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

    :当接受预共享密钥时,才会执行 DHE 密钥交换,仅当客户端请求时。

    可能的值:是,否

    默认值:否

    set ssl profile tls13profile dheKeyExchangeWithPsk yes
    
    set ssl profile tls13profile dheKeyExchangeWithPsk no
    
  4. 启用或禁用 0-RTT 早期数据接受

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

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

    可能的值:ENABLED, DISABLED

    默认值: DISABLED

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

默认密码组

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

限制

  • 在 Citrix ADC MPX 平台上,TLSv1.3 处理不会卸载到加密硬件。
  • 后端不支持 TLSv1.3。
  • Citrix Secure Web Gateway 设备和 Citrix ADC FIPS 设备不支持 TLSv1.3。

业务考虑因素

TLS 1.3 草稿版本兼容性说明:Citrix ADC 设备实现 TLS 1.3 协议的 RFC 8446 变体(而不是协议的早期草稿版本)。使用支持 RFC 8446(或可互操作的草稿编号-26、27 或 28)的 TLS 1.3 客户端来完成与 Citrix ADC 设备的 TLS 1.3 握手。实现 TLS 1.3 协议的不同草稿版本的客户端和服务器可能不互操作。

安全限制

TLSv1.3 服务器运营商应该记住 RFC 8446 中概述的向后兼容性的以下安全限制。NetScaler 设备上的默认配置符合这些限制。但是,NetScaler 设备不强制遵守这些规则。

  • RC4 密码套件的安全性被认为不足,如 RFC7465 所述。实现不得为任何版本的 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 流量