当前位置: 首页 > news >正文

SSL/TLS协议信息泄露漏洞修复

概述:CVE-2016-2183 是一个涉及 SSL/TLS 协议信息泄露的漏洞,也被称为 "SWEET32" 攻击。该漏洞利用了某些对称加密算法(如 3DES)的弱点,攻击者可以通过捕获和分析大量的加密流量,可能会恢复明文数据。

目录

1. 升级算法

1.1 更新 OpenSSL 配置

1. 使用 yum 更新系统

2. 检查 OpenSSL 版本

3. 更新 OpenSSL

4. 从源代码编译 OpenSSL(可选)

5. 验证安装

2. 配置服务器

2.1配置 Web 服务器

2.2重启服务

检查和更新系统

验证安装

更新 Nginx 配置

3.扫描验证


1. 升级算法

为了防止被 SWEET32 攻击利用,应该在服务器配置中禁用 3DES 加密算法。可以通过更新 OpenSSL 和相关服务的配置文件来实现。

1.1 更新 OpenSSL 配置

1. 使用 yum 更新系统

首先,尝试更新系统并升级所有现有软件包:

sudo yum update

2. 检查 OpenSSL 版本

确认当前系统中的 OpenSSL 版本:

openssl version

3. 更新 OpenSSL

如果 yum 仓库中有更新的 OpenSSL 版本,使用以下命令进行安装:

sudo yum install openssl openssl-devel

如果没有可用的更新版本,并且需要更高版本的 OpenSSL,可以考虑从源代码编译安装最新的 OpenSSL 版本:

4. 从源代码编译 OpenSSL(可选)

注意: 从源代码编译安装软件包是有风险的,请确保备份重要数据。

# 安装所需的编译工具和依赖项
sudo yum groupinstall 'Development Tools'
sudo yum install perl-core zlib-devel# 下载并解压 OpenSSL 源代码
wget https://www.openssl.org/source/openssl-1.1.1v.tar.gz
tar -zxf openssl-1.1.1v.tar.gz
cd openssl-1.1.1v# 配置并编译安装 OpenSSL
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
make
sudo make install# 备份原有的 OpenSSL 可执行文件,并更新为新的版本
sudo mv /usr/bin/openssl /usr/bin/openssl.bak
sudo ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl# 更新库文件路径
sudo sh -c "echo '/usr/local/openssl/lib' > /etc/ld.so.conf.d/openssl.conf"
sudo ldconfig -v

 如果下载不了:https://cloud.189.cn/t/YJre2aAzEvEr (访问码:8eik)

5. 验证安装

再次检查 OpenSSL 版本以确认升级成功:

openssl version

2. 配置服务器

2.1配置 Web 服务器

Apache HTTPD: 如果你使用的是 Apache,可以通过修改 /etc/httpd/conf.d/ssl.conf 文件来禁用 3DES。

sudo vi /etc/httpd/conf.d/ssl.conf

找到 SSLCipherSuite 这一行,并将其修改为:

SSLCipherSuite HIGH:!aNULL:!MD5:!3DES
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

Nginx: 如果你使用的是 Nginx,可以通过修改 /etc/nginx/nginx.conf 文件来禁用 3DES。

sudo vi /etc/nginx/nginx.conf

找到 ssl_ciphers 这一行,并将其修改为:

# 优化后的加密套件配置ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-CHACHA20-POLY1305:!3DES:!aNULL:!MD5:!RC4';
# 使用更安全的 TLS 版本ssl_protocols TLSv1.2 TLSv1.3;

2.2重启服务

sudo systemctl restart httpd  # Apache
sudo systemctl restart nginx  # Nginx
检查和更新系统

确保系统上的软件包都是最新的,包括 OpenSSL:

sudo dnf update openssl
验证安装

再次检查 OpenSSL 版本以确认升级成功:

openssl version
更新 Nginx 配置

一旦 OpenSSL 升级完成,按照之前的步骤更新 Nginx 配置以禁用不安全的协议和加密套件,然后重启 Nginx:

sudo systemctl restart nginx

3.扫描验证

更新配置后,再次使用 nmap 进行扫描,确认 TLSv1.0 和 TLSv1.1 已禁用,且 3DES 加密算法不再被支持。

nmap --script ssl-enum-ciphers -p 443 <your_server_ip>

正确的应该长这样:

如果是以下这种说明没有成功!!新的配置并没有生效,TLSv1.0 和 TLSv1.1 仍然被支持,并且 3DES 加密算法也依然存在

结果:Host is up (0.024s latency).
PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers:
|   SSLv3: No supported ciphers found
|   TLSv1.0:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - strong
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - strong
|     compressors:
|       NULL
|   TLSv1.1:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - strong
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - strong
|     compressors:
|       NULL
|   TLSv1.2:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - strong
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 - strong
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA256 - strong
|       TLS_RSA_WITH_AES_128_GCM_SHA256 - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA256 - strong
|       TLS_RSA_WITH_AES_256_GCM_SHA384 - strong
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - strong
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - strong
|     compressors:
|       NULL
|_  least strength: strongNmap done: 1 IP address (1 host up) scanned in 1.47 seconds

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++初学(14)
  • 回顾前面刷过的算法(8)
  • Java-希尔排序算法介绍、应用场景和示例代码
  • spingboot实现常规增删改查
  • erlang学习:gen_server书上案例22.6练习题4
  • jmeter通过参数文件、循环组件实现多账号登陆
  • npm install 报错解决记录
  • Golang 使用redis stream实现一个实时推送功能
  • Groupings sets详解
  • 东方银行--用 MinIO 和 Dremio 替代 Hadoop
  • React18快速入门教程
  • C HTML格式解析与生成
  • 浅谈Kafka(二)
  • EmguCV学习笔记 VB.Net 第5章 图像变换
  • 【机器学习】 1. 总览介绍
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 230. Kth Smallest Element in a BST
  • canvas 高仿 Apple Watch 表盘
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • Fabric架构演变之路
  • Java 网络编程(2):UDP 的使用
  • Java编程基础24——递归练习
  • oschina
  • PermissionScope Swift4 兼容问题
  • python 装饰器(一)
  • Spring核心 Bean的高级装配
  • Vue 动态创建 component
  • Windows Containers 大冒险: 容器网络
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 服务器之间,相同帐号,实现免密钥登录
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 前端代码风格自动化系列(二)之Commitlint
  • 世界上最简单的无等待算法(getAndIncrement)
  • 微服务框架lagom
  • 小李飞刀:SQL题目刷起来!
  • ionic入门之数据绑定显示-1
  • mysql面试题分组并合并列
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • 正则表达式-基础知识Review
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (AngularJS)Angular 控制器之间通信初探
  • (C++20) consteval立即函数
  • (ibm)Java 语言的 XPath API
  • (LeetCode 49)Anagrams
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .Net Core和.Net Standard直观理解
  • .NET Framework 3.5安装教程
  • .net framework 4.8 开发windows系统服务
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .net 提取注释生成API文档 帮助文档
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • @Bean有哪些属性
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解