支持 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 配置文件
- 导航到“系统”>“配置文件”。选择 SSL 配置文件。
- 单击“添加”并指定配置文件的名称。
-
在 协议中,选择 TLSv13。
- 单击 确定 ,然后单击 完成。
使用 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 配置文件
- 导航到“系统”>“配置文件”。选择 SSL 配置文件。
- 单击“添加”并指定配置文件的名称。
-
在 SSL 配置文件类型中,选择 后端。
- 在 协议中,选择 TLSv13。
- 单击 确定 ,然后单击 完成。
使用 CLI 将 SSL 配置文件绑定到 SSL 虚拟服务器
在命令提示符下,键入:
set ssl vserver <vserverName> -sslProfile <profile-name>
示例:
set ssl vserver ssl-vs -sslProfile tls13profile
使用 GUI 将 SSL 配置文件绑定到 SSL 虚拟服务器
- 导航到 流量管理 > 负载平衡 > 虚拟服务器,然后选择 SSL 虚拟服务器。
- 单击编辑。
- 在 高级设置中,单击 SSL 配置文件。
- 选择之前创建的 TLS 1.3 配置文件。
- 单击 确定 ,然后单击 完成。
使用 CLI 将 SSL 配置文件绑定到 SSL 服务
在命令提示符下,键入:
set ssl service <serviceName> -sslProfile <profile-name>
示例:
set ssl service ssl-service -sslProfile tls13profile2
注意:
如果将前端配置文件绑定到 SSL 服务,则会出现警告。
使用 GUI 将 SSL 配置文件绑定到 SSL 服务
- 导航到“流量管理”>“负载平衡”>“服务”,然后选择 SSL 服务。
- 单击编辑。
- 在 高级设置中,单击 SSL 配置文件。
- 选择之前创建的 TLS 1.3 配置文件。
- 单击 确定 ,然后单击 完成。
TLS 1.3 协议的 SSL 配置文件参数
注意:
只有 tls13 适用于后端 SSL 配置文件。
-
在 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-->
-
设置已签发的会话票证的数量。
tls13SessionTicketsPerAuthContext:协商 TLS 1.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-->
默认密码组
默认密码组包括 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 流量。