目标系统TLS1.0协议漏洞修复,应对过期版TLS1.0的安全策略与办法

修复因目标系统使用过期的 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位置参考上面漏洞的配置文件。

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章