修复因目标系统使用过期的 TLS 1.0 协议而带来的安全风险,需要从"客户端"和"服务器端"(或受影响的目标系统)两个角度入手。TLS 1.0 已被证明存在严重的安全漏洞(如 POODLE 攻击),因此现代安全实践强烈建议禁用或完全移除它。
以下是具体的修复办法:
"一、 服务器端修复(最推荐,最根本的解决方案)"
服务器端应该负责实施最安全的标准,并拒绝使用已知不安全的旧协议版本。具体操作取决于你使用的服务器软件(如 Nginx, Apache, IIS, Tomcat 等):
1. "修改服务器配置文件:"
"禁用 TLS 1.0:" 在服务器的 SSL/TLS 配置中,明确指定启用更安全的协议版本(如 TLS 1.1, TLS 1.2, TLS 1.3),并显式地禁用 TLS 1.0。
"配置示例(以 Nginx 为例):"
```nginx
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; # 只允许 TLS 1.1, 1.2, 1.3
ssl_prefer_server_ciphers off; # 推荐关闭,优先使用现代密码套件
# 如果需要,
相关内容:
详细描述
该插件连接到目标主机服务,检测到目标服务加密通信使用的SSL加密算法。 远程服务利用旧版 TLS 加密流量。
解决办法
启用 TLS 1.2 和/或 1.3 支持,禁用 TLS 1.0 支持
nginx样例配置如下:
server {
listen 4433 ssl;
server_name xxx.cn;
ssl_certificate /etc/nginx/crt/server.crt;
ssl_certificate_key /etc/nginx/crt/server.key;
# 启用高版本TLS
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5:!RSA;
# ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers on;
}启用测试办法
- nginx支持tls1.2
# openssl s_client -connect xx:4433 -tls1_3
$ openssl s_client -connect xx:4433 -tls1_2
CONNECTED(00000003)
Can't use SSL_get_servername
depth=0 CN = xxxx
verify error:num=18:self signed certificate
verify return:1
depth=0 CN = xxx
verify return:1
---
Certificate chain
0 s:CN = xxx
i:CN = xxx
---
Server certificate
-----BEGIN CERTIFICATE-----输出了服务端证书代表支持TLSv1.2
也可以通过curl测试,比如这段输出代表TLSv1.3协议被使用:
# curl -kv https://xxxx:4433
* Trying xxx...
* Connected to xx (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use http/1.1
* Server certificate:
* subject: CN=xxx
* start date: Jun 22 07:51:21 2023 GMT
* expire date: Jun 19 07:51:21 2033 GMT
* issuer: CN=xxx
* SSL certificate verify result: self signed certificate (18), continuing anyway.
> GET / HTTP/1.1
> Host: xx:4433
> User-Agent: curl/7.71.1
> Accept: */*
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):- nginx禁用tls1.1测试
$ openssl s_client -connect xx:4433 -tls1
CONNECTED(00000003)
281473151814288:error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version:ssl/record/rec_layer_s3.c:1544:SSL alert number 70
---
no peer certificate available
---
No client certificate CA names sent
---注意事项
- Nginx 和 OpenSSL 版本:TLS 1.3 需要 Nginx ≥ 1.13.0 且 OpenSSL ≥ 1.1.1,若版本过低,需先升级(或仅启用 TLS 1.2)。
# 检查openssl版本
$ openssl version
OpenSSL 1.1.1f 31 Mar 2020- 兼容性影响:禁用 TLS 1.0 可能影响老旧设备(如 Windows XP、IE 8 及以下),需评估业务兼容性后操作。
目标主机支持RSA密钥交换
详细描述
目标主机支持 RSA 密钥交换意味着缺乏前向保密,存在历史流量解密风险,是过时且不推荐使用的配置,建议更新为 ECDHE 等临时密钥交换算法,以增强会话安全性和隐私保护。
解决办法
禁用 RSA key exchange:只支持临时密钥交换算法(如 ECDHE_RSA 或 ECDHE_ECDSA)。
强制 TLS 1.2 或 TLS 1.3,并优先选择支持前向保密的密码套件,比如:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384增加nginx配置:
ssl_ciphers HIGH:!aNULL:!MD5:!RSA;
# ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256;具体在nginx.conf位置参考上面漏洞的配置文件。


微信扫一扫打赏
支付宝扫一扫打赏