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 功能:
- TLSv1.3 密码套件:
- TLS1.3-AES256-GCM-SHA384 (0x1302)
- TLS1.3_CHACHA20_POLY1305_SHA256 (0x1303)
- TLS1.3-AES128_GCM-SHA256 (0x1301)
- 短暂的 Diffie-Hellman 密钥交换的 ECC 曲线:
- P_256
- P_384
- P_521
-
启用基于票证的会话恢复时缩短握手
-
0-RTT 早期应用数据
-
可选或强制基于证书的客户端身份验证,支持客户端证书的 OCSP 和 CRL 验证
-
服务器名称扩展:使用 SNI 选择服务器证书
-
通过使用 application_level_protocol_协商扩展进行应用程序协议协商 (ALPN)。
-
OCSP 装订
-
日志消息和 AppFlow 记录是为 TLSv1.3 握手生成的。
-
nstrace
数据包捕获实用程序可选记录 TLS 1.3 流量密钥。 - 与实施 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 配置文件
- 导航到“系统”>“配置文件”。选择 SSL 配置文件。
- 单击“添加”并指定配置文件的名称。
-
在 协议中,选择 TLSv13。
- 单击确定。
使用 CLI 将 SSL 配置文件绑定到 SSL 虚拟服务器
在命令提示符下,键入:
set ssl vserver <vServerName> -sslProfile <tls13-profile-name>
<!--NeedCopy-->
示例:
set ssl vserver ssl-vs -sslProfile tls13profile
使用 GUI 将 SSL 配置文件绑定到 SSL 虚拟服务器
- 导航到 流量管理 > 负载平衡 > 虚拟服务器,然后选择 SSL 虚拟服务器。
- 在 高级设置中,单击 SSL 配置文件。
- 选择之前创建的TLSv1.3配置文件。
- 单击确定。
- 单击 Done(完成)。
TLSv1.3 协议的 SSL 配置文件参数
-
在 SSL 配置文件中启用或禁用 TLS1.3 参数。
tls13:对 SSL 配置文件的 TLSv1.3 协议支持的状态。
可能的值:ENABLED、DISABLED
默认值: 已禁用
set ssl profile tls13profile -tls13 enable <!--NeedCopy-->
set ssl profile tls13profile -tls13 disable <!--NeedCopy-->
-
设置已签发的会话票证的数量。
tls13SessionTicketsPerAuthContext:协商 TLS1.3、启用基于票证的恢复以及 (1) 握手完成或 (2) 握手后客户端身份验证完成时 SSL 虚拟服务器发出的票证数。
可以增加此值以使客户端能够为每个连接使用新票证打开多个并行连接。
如果禁用恢复,则不会发送票证。
默认值:1
最小值:1
最大值:10
set ssl profile tls13profile -tls13sessionTicketsPerAuthContext 1 set ssl profile tls13profile -tls13sessionTicketsPerAuthContext 10 <!--NeedCopy-->
-
设置 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-->
-
启用或禁用 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 流量。