ADC

支持 TLS 1.3 协议

NetScaler VPX 和 NetScaler MPX 设备现在支持 RFC 8446 中指定的 TLS 1.3 协议。

备注:

  • 以下平台支持 TLS 1.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 设备均提供对 TLS 1.3 协议的纯软件支持。

  • 只有增强版配置文件支持 TLS 1.3。要启用增强配置文件,请参阅启用默认配置文件。“默认”和“增强”这两个术语可以互换用于 SSL 配置文件。

  • 要使用 TLS 1.3,必须使用符合 RFC 8446 规范的客户端。

支持的 NetScaler 功能

支持以下 SSL 功能:

SSL 功能 前端支持 后端支持
Cipher suite TLS 1.3-AES256-GCM-SHA384 (0x1302)
密码套件 TLS 1.3_CHACHA20_POLY1305_SHA256 (0x1303)
Cipher suite TLS 1.3-AES128_GCM-SHA256 (0x1301)
ECC 曲线 P_256 用于短暂的 DH 密钥交换
ECC 曲线 P_384 用于短暂的 DH 密钥交换
ECC 曲线 P_521 用于短暂的 DH 密钥交换
启用基于票证的会话恢复时缩短握手
0-RTT 早期应用数据
0-RTT 早期应用程序数据的重播攻击防护 *NA
可选或强制基于证书的客户端身份验证,支持对等证书的 OCSP 和 CRL 验证
服务器名称扩展:使用 SNI 选择服务器证书 *NA
使用 application_level_protocol_geotionage 扩展进行应用程序协议协商 (ALPN)
OCSP 装订 *NA
日志消息和 AppFlow 记录是为 TLS 1.3 握手生成的
nstrace 数据包捕获实用程序可选 TLS 1.3 流量秘密记录
与实现 RFC 8446 的 TLS 对等端的互操作性。例如,Mozilla Firefox、Google Chrome 和 OpenSSL。

*NA-不适用

配置

默认情况下,在 SSL 配置文件上,TLS 1.3 处于禁用状态。尽管您可以在旧版配置文件上启用 TLS 1.3,但旧版配置文件不支持某些功能,例如启用基于票证的会话恢复时的缩短握手,以及 0-RTT 早期应用程序数据。

使用 CLI 添加前端 SSL 配置文件

在命令提示符下,键入:

add ssl profile tls13profile -tls13 ENABLED
<!--NeedCopy-->

示例

sh ssl profile tls13profile
1)  Name: tls13profile           (Front-End)
    SSLv3: DISABLED               TLSv1.0: ENABLED  TLSv1.1: ENABLED  TLSv1.2: ENABLED  TLSv1.3: ENABLED
    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 配置文件

在命令提示符下,键入:

add ssl profile profile1 -sslprofileType BackEnd -tls13 ENABLED
<!--NeedCopy-->

示例

add ssl profile tls13profile2 -sslprofileType BackEnd

sh ssl profile tls13profile2

1) Name: tls13profile2 (Back-End)

    SSLv3: DISABLED TLSv1.0: ENABLED  TLSv1.1: ENABLED  TLSv1.2: ENABLED  TLSv1.3: ENABLED
    Server Auth: DISABLED
    Use only bound CA certificates: DISABLED
    Strict CA checks: NO
    Session Reuse: ENABLED Timeout: 300 seconds
    DH: DISABLED
    Ephemeral RSA: DISABLED
    Deny SSL Renegotiation ALL
    Non FIPS Ciphers: DISABLED
    Cipher Redirect: DISABLED
    SSL Redirect: DISABLED
    Send Close-Notify: YES
    Strict Sig-Digest Check: DISABLED
    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
    Allow Extended Master Secret: NO
    ECC Curve: P_256, P_384, P_224, P_521

1) Cipher Name: DEFAULT_BACKEND Priority :1
    Description: Predefined Cipher Alias

 Done
<!--NeedCopy-->

使用 GUI 添加后端 SSL 配置文件

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

    SSL 后端配置文件

  4. 协议中,选择 TLSv13
  5. 单击 确定 ,然后单击 完成

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

在命令提示符下,键入:

set ssl vserver <vserverName> -sslProfile <profile-name>

示例

set ssl vserver ssl-vs -sslProfile tls13profile

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

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

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

在命令提示符下,键入:

set ssl service <serviceName> -sslProfile <profile-name>

示例

set ssl service ssl-service -sslProfile tls13profile2

注意:

如果将前端配置文件绑定到 SSL 服务,则会出现警告。

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

  1. 导航到“流量管理”>“负载平衡”>“服务”,然后选择 SSL 服务。
  2. 单击编辑
  3. 高级设置中,单击 SSL 配置文件
  4. 选择之前创建的 TLS 1.3 配置文件。
  5. 单击 确定 ,然后单击 完成

TLS 1.3 协议的 SSL 配置文件参数

注意:

只有 tls13 适用于后端 SSL 配置文件。

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

    tls13:对 SSL 配置文件的 TLS 1.3 协议支持状态。

    可能的值:ENABLED、DISABLED

    默认值: 已禁用

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

    tls13SessionTicketsPerAuthContext:协商 TLS 1.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-->
    

默认密码组

默认密码组包括 TLS 1.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: TLS 1.3-AES256-GCM-SHA384         Priority : 27
    Description: TLS 1.3 Kx=any      Au=any  Enc=AES-GCM(256) Mac=AEAD   HexCode=0x1302

28) Cipher Name: TLS 1.3_CHACHA20_POLY1305_SHA256     Priority : 28
    Description: TLS 1.3 Kx=any      Au=any  Enc=CHACHA20/POLY1305(256) Mac=AEAD   HexCode=0x1303

29) Cipher Name: TLS 1.3-AES128_GCM-SHA256        Priority : 29
    Description: TLS 1.3 Kx=any      Au=any  Enc=AES-GCM(128) Mac=AEAD   HexCode=0x1301
Done
<!--NeedCopy-->
sh cipher DEFAULT_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
...
...
27) Cipher Name: TLS 1.3-AES256-GCM-SHA384   Priority : 27
    Description: TLS 1.3 Kx=any      Au=any  Enc=AES-GCM(256) Mac=AEAD   HexCode=0x1302
28) Cipher Name: TLS 1.3-CHACHA20-POLY1305-SHA256    Priority : 28
    Description: TLS 1.3 Kx=any      Au=any  Enc=CHACHA20/POLY1305(256) Mac=AEAD   HexCode=0x1303
29) Cipher Name: TLS 1.3-AES128-GCM-SHA256   Priority : 29
    Description: TLS 1.3 Kx=any      Au=any  Enc=AES-GCM(128) Mac=AEAD   HexCode=0x1301
 Done
<!--NeedCopy-->

限制

  • NetScaler FIPS 设备不支持 TLS 1.3。
  • TLS 1.3 握手中仅支持具有 1024 位及更大密钥的 RSA 证书。

安全限制

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

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

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

  • 如 RFC7568 中所述,SSL 3.0 [SSLv3] 的安全性被认为是不够的,因此不得协商。启用 TLS 1.3 时禁用 SSLv3(SSLv3 默认处于禁用状态)。

注意:

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

支持 TLS 1.3 协议