如何保护您的服务器免受 POODLE SSLv3 漏洞的影响
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
简介
2014年10月14日,SSL加密协议第3版中的一个漏洞被披露。这个漏洞被称为POODLE(Padding Oracle On Downgraded Legacy Encryption),允许攻击者使用中间人攻击来读取使用该协议加密的信息的明文。
尽管SSLv3是一个较老的协议版本,主要已经过时,许多软件仍会在更好的加密选项不可用时退回到SSLv3。更重要的是,如果SSLv3是连接的可用备选项,攻击者可以强制使用SSLv3连接。
POODLE漏洞影响任何可以使用SSLv3进行通信的服务或客户端。由于这是协议设计上的缺陷,而不是实现问题,每一个使用SSLv3的软件都是脆弱的。
要了解更多关于该漏洞的信息,请参考CVE-2014-3566中的CVE信息。
什么是POODLE漏洞?
POODLE漏洞是SSL协议第3版中的一个弱点,允许中间人在一个特定的上下文中解密SSLv3加密消息的明文内容。
谁受到这个漏洞的影响?
这个漏洞影响任何可以被迫使用SSLv3进行通信的软件。这意味着任何实现包括SSLv3支持的回退机制的软件都是脆弱的,可以被利用。
一些可能受到影响的常见软件包括Web浏览器、Web服务器、VPN服务器、邮件服务器等。
它是如何工作的?
简而言之,POODLE漏洞存在是因为SSLv3协议没有充分检查发送的加密消息中的填充字节。
由于接收方无法验证这些填充字节,攻击者可以替换这些填充字节并将其传递给预期的目标。当以特定方式完成时,修改后的有效载荷有可能会被接收方接受而不会有任何投诉。
平均每256个请求中会有一个请求被目标接受,允许攻击者解密一个单个字节。这可以轻松重复,以逐步解密额外的字节。任何能够重复强制参与者使用该协议重新发送数据的攻击者都可以在很短的时间内破解加密。
如何保护自己?
应该采取行动来确保在作为客户端和服务器的角色中都不会受到影响。由于加密通常是在客户端和服务器之间协商的,这是一个涉及双方的问题。
服务器和客户端应该采取措施完全禁用SSLv3支持。许多应用程序默认使用更好的加密,但实现SSLv3支持作为备选项。这应该被禁用,因为恶意用户可以强制SSLv3通信,如果双方都允许它作为一种可接受的方法。
如何保护常见应用程序
下面,我们将介绍如何在一些常见的服务器应用程序上禁用SSLv3。请注意评估您的服务器,以保护可能依赖于SSL/TCP加密的任何其他服务。
由于POODLE漏洞不代表一个实现问题,而是整个协议的固有问题,因此没有解决方法,唯一可靠的解决方案是不使用它。
Nginx Web服务器
要在Nginx Web服务器上禁用SSLv3,您可以使用ssl_protocols
指令。这将位于您的配置中的server
或http
块中。
例如,在Ubuntu上,您可以将此全局添加到/etc/nginx/nginx.conf
中的http
块内,或者添加到/etc/nginx/sites-enabled
目录中的每个server
块内。
sudo nano /etc/nginx/nginx.conf
要禁用SSLv3,您的ssl_protocols
指令应设置如下:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
在进行上述修改后,您应该重新启动服务器:
sudo service nginx restart
Apache Web服务器
要在Apache Web服务器上禁用SSLv3,您需要调整mod_ssl
模块提供的SSLProtocol
指令。
该指令可以在服务器级别或虚拟主机配置中设置。根据您的发行版的Apache配置,SSL配置可能位于一个单独的文件中。
在Ubuntu上,服务器级别的规范可以通过编辑/etc/apache2/mods-available/ssl.conf
文件来调整。如果mod_ssl
已启用,符号链接将连接此文件到mods-enabled
子目录:
sudo nano /etc/apache2/mods-available/ssl.conf
在CentOS上,您可以在此处调整SSL配置文件(如果SSL已启用):
sudo nano /etc/httpd/conf.d/ssl.conf
在文件中,您可以找到SSLProtocol
指令。如果没有找到,可以创建它。修改它以明确删除对SSLv3的支持:
SSLProtocol all -SSLv3 -SSLv2
保存并关闭文件。重新启动服务以启用您的更改。
在Ubuntu上,您可以输入:
sudo service apache2 restart
在CentOS上,这将是:
sudo service httpd restart
HAProxy 负载均衡器
要在 HAProxy 负载均衡器中禁用 SSLv3,您需要打开 haproxy.cfg
文件。
它位于 /etc/haproxy/haproxy.cfg
:
sudo nano /etc/haproxy/haproxy.cfg
在您的前端配置中,如果启用了 SSL,您的 bind
指令将指定公共 IP 地址和端口。如果使用了 SSL,您将需要在该行末尾添加 no-sslv3
:
frontend namebind public_ip:443 ssl crt /path/to/certs no-sslv3
保存并关闭文件。
您需要重新启动服务以实施更改:
sudo service haproxy restart
OpenVPN VPN 服务器
最近版本的 OpenVPN 实际上不允许 SSLv3。该服务不会受到此特定问题的影响,因此您无需调整配置。
请参阅 OpenVPN 论坛上的此帖子以获取更多信息。
Postfix SMTP 服务器
如果您的 Postfix 配置设置为需要加密,它将使用一个名为 smtpd_tls_mandatory_protocols
的指令。
您可以在主 Postfix 配置文件中找到它:
sudo nano /etc/postfix/main.cf
对于始终使用加密的 Postfix 服务器,您可以通过设置此参数来确保不接受 SSLv3 和 SSLv2。如果您不强制加密,则无需进行任何操作:
smtpd_tls_mandatory_protocols=!SSLv2, !SSLv3
保存您的配置。重新启动服务以实施更改:
sudo service postfix restart
Dovecot IMAP 和 POP3 服务器
要在 Dovecot 服务器上禁用 SSLv3,您需要调整一个名为 ssl_protocols
的指令。根据您的发行版的打包方法,SSL 配置可能保存在另一个配置文件中。
对于大多数发行版,您可以通过打开此文件来调整此指令:
sudo nano /etc/dovecot/conf.d/10-ssl.conf
在其中,如果您使用的是 Dovecot 2.1 或更高版本,请将 ssl_protocols
指令设置为禁用 SSLv2 和 SSLv3:
ssl_protocols = !SSLv3 !SSLv2
如果您使用的是低于 2.1 版本的 Dovecot,您可以通过以下方式设置 ssl_cipher_list
来禁用 SSLv3:
ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL:!SSLv3
保存并关闭文件。
重新启动服务以实施更改:
sudo service dovecot restart
进一步步骤
除了服务器端应用程序,您还应更新任何客户端应用程序。
特别是,由于它们的降级协议协商,Web 浏览器可能会受到此问题的影响。确保您的浏览器不允许 SSLv3 作为可接受的加密方法。这可能可以在设置中调整,也可以通过安装额外的插件或扩展来实现。
结论
由于广泛支持 SSLv3,即使启用了更强的加密,此漏洞也具有广泛影响和危险性。您需要采取措施来保护自己,无论是作为使用 SSL 加密资源的消费者还是提供者。
确保检查所有可能利用 SSL/TLS 的网络可访问服务。通常,这些应用程序需要明确的指示才能完全禁用像 SSLv3 这样的较弱加密形式。
相关文章:
如何保护您的服务器免受 POODLE SSLv3 漏洞的影响
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 2014年10月14日,SSL加密协议第3版中的一个漏洞被披露。这个漏洞被称为POODLE(Padding Oracle On Downgrad…...

如何用pyhton修改1000+图片的名字?
import os oldpath input("请输入文件路径(在windows中复制那个图片文件夹的路径就可以):") #注意window系统中的路径用这个‘\分割,但是编程语言中一般都是正斜杠也就是’/‘ #这里写一个代码,将 \ > / path "" fo…...

使用fpm工具制作Vim.rpm包
背景:生产环境中的CentOS 7在安全扫描中被扫描出vim存在堆缓冲区溢出(CVE-2024-45306)等漏洞。根据漏洞说明,需要升级到最新版。 奈何CentOS 7已经停止维护了,所以,想在网上找一个最新版的vim.rpm相当不容易…...

Dorado7 全局缓存当前登录人信息 localStorage
登录成功时赋值 com.gs.mcf.view/index.js // like12 add,20240906,全局缓存当前登录人信息var currentName view.get(#userNameLb).get(tip);if(window.localStorage){localStorage.setItem("currentName", currentName);} 使用 // like12 add,20240906,全局缓存…...

【2024最新版】网络安全学习路线-适合入门小白
首先说明,我是一名CTF的web手,这是我自己亲身学习网络安全的路线,希望能够帮到大家,我虽然不是大牛,但我也希望能够帮助一些网安小白找到自己学习的方向,后面有就业的详细安全技术要求,如果真想…...
高可用之限流-07-token bucket 令牌桶算法
限流系列 开源组件 rate-limit: 限流 高可用之限流-01-入门介绍 高可用之限流-02-如何设计限流框架 高可用之限流-03-Semaphore 信号量做限流 高可用之限流-04-fixed window 固定窗口 高可用之限流-05-slide window 滑动窗口 高可用之限流-06-slide window 滑动窗口 sen…...

软件测试学习笔记丨Pycharm运行与调试
本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/23454 Pycharm作为集成开发环境,除了可以编写脚本,还可以运行和调试自己的代码,下面就为大家介绍一下pycharm运行和调试代码的功能如何使用。 代码运行 编…...

flask基础学习
一、Python之flask、Django、Tornado框架 一)django 主要是用来搞快速开发的,他的亮点就是快速开发,节约成本。 正常的并发量不过10000,如果要实现高并发的话,就要对django进行二次开发,比如把整个笨重的框…...

【SSM详细教程】-04-Spring基于注解的组件扫描
精品专题: 01.《C语言从不挂科到高绩点》课程详细笔记 https://blog.csdn.net/yueyehuguang/category_12753294.html?spm1001.2014.3001.5482https://blog.csdn.net/yueyehuguang/category_12753294.html?spm1001.2014.3001.5482 02. 《SpringBoot详细教程》课…...
Keepalived:构建高可用性的秘密武器
Keepalived:构建高可用性的秘密武器 在现代的IT环境中,高可用性是确保业务连续性和用户体验的关键要素。一旦系统出现故障或停机,企业可能会面临巨大的经济损失和声誉损害。因此,实施高可用性解决方案至关重要。Keepalived作为一…...
【C++刷题】力扣-#228-汇总区间
题目描述 给定一个整数数组 nums,返回所有唯一的区间,这些区间包含数组中的每个数字,形式为 [a, b],其中 a 和 b 是数字的最小和最大值。 示例 示例 1: 输入: nums [0,1,2,4,5,7] 输出: [["0,2"],["4,5"],…...
交通银行核心系统分布式实践
1、背景:客户需求和痛点 交通银行已有核心ECIF、贷记卡核心、借记卡新核心等数百套系统上线OceanBase分布式数据库。其中,贷记卡(俗称信用卡)属于 A类核心业务系统,支撑了信用卡授权、用卡、额度、账务等核心业务功能,约7千万卡量,日交易量和数据量都在千万级别。 交通银行…...
深入剖析:.Net8 引入非root用户运行的新特性提升应用安全性
在云原生的时代,容器化技术如Docker和Kubernetes已经成为现代软件开发的重要基石。随着.Net8的发布,微软进一步优化了这些环境的支持,特别是在提升容器应用安全性方面迈出了重要一步。本文将深入探讨.Net8中非根用户功能的新增特性࿰…...
多签机制简明理解及实例说明
目录 Multisignature机制简明理解及实例说明 Multisignature机制中的公钥、私钥、Nonce及签名验签详解 加密货币托管账户的多重签名机制 Multisignature机制简明理解及实例说明 一、基本概念 Multisignature(多重签名)机制是一种先进的加密技术,它允许一笔交易必须由多…...

PCL 点云配准 LM-ICP算法(精配准)
目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 法线计算函数 2.1.2 执行 LM-ICP 函数 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接: PCL点云算法与项目实战案例汇总(长期更新&a…...
Mac 编译 Unreal 源码版本
在Mac上编译Unreal Engine源码需要遵循以下步骤: 安装必要的依赖项: Xcode Python(建议使用2.7版本) Java(使用JDK 8) CMake Ninja SVN(用于获取某些依赖项) 获取Unreal Engi…...

开源vGPU方案 HAMi实现细粒度GPU切分——筑梦之路
前言 为什么需要 GPU 共享、切分等方案? 在使用GPU的过程中我们会发现,直接在裸机环境使用,都可以多个进程共享 GPU,怎么到 k8s 环境就不行了? 1. 资源感知 在 k8s 中资源是和节点绑定的,对于 GPU 资源…...

性能测试工具JMeter
本次使用的博客系统的url: http://8.137.19.140:9090/blog_edit.html 1. JMeter介绍 环境要求:要求java,jdk版本大于8; Apache JMeter 是 Apache 组织基于 Java 开发的压⼒测试⼯具,⽤于对软件做性能测试;…...
Kubernetes ETCD的恢复与备份
在 Kubernetes 中,ETCD 扮演着至关重要的角色: 1. 集群状态存储 2. 服务发现 3. 配置管理 4. 分布式锁和协调 5. 故障恢复 ETCD 存储了 Kubernetes 集群中所有的状态信息,包括节点、Pod、Service、ConfigMap、Secrets 等。ETCD 支持服务发现…...

笔记整理—linux网络部分(2)Linux网络框架
前文说过,在OSI中将网络分为7层,这是理论上将其分为7层,但实际上可以将其分为4层。如TCP协议就是将其分为4层。理论只是提出一种指导意见,但不是行业范本。 驱动层只关系有没有接到包,不关心包经过多少次转发ÿ…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...
LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)
在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...

MySQL体系架构解析(三):MySQL目录与启动配置全解析
MySQL中的目录和文件 bin目录 在 MySQL 的安装目录下有一个特别重要的 bin 目录,这个目录下存放着许多可执行文件。与其他系统的可执行文件类似,这些可执行文件都是与服务器和客户端程序相关的。 启动MySQL服务器程序 在 UNIX 系统中,用…...

【工具教程】多个条形码识别用条码内容对图片重命名,批量PDF条形码识别后用条码内容批量改名,使用教程及注意事项
一、条形码识别改名使用教程 打开软件并选择处理模式:打开软件后,根据要处理的文件类型,选择 “图片识别模式” 或 “PDF 识别模式”。如果是处理包含条形码的 PDF 文件,就选择 “PDF 识别模式”;若是处理图片文件&…...