第三方工具检测8883端口(mosquitto mqtt服务器)和443(python下使用aiohttp库web生成的server)有DOS漏洞,需要禁用相关端口的ssl的重协商功能。或者直接在openssl源码中禁用重协商功能也可以。请问要怎么做才能禁用重协商?8883下的mosquitto使用的是库,只有配置文件可以修改。443端口的python版本是3.8。只要能解决掉该DOS漏洞的方法都可以。
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
禁用ssl重协商以达到解决DOS漏洞
收起
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除
- 收藏 举报
当前问题酬金
¥ 36 (您已提供 ¥ 20, 还可追加 ¥ 464)
支付方式
扫码支付
12条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
技术宅program 2023-06-09 16:05关注获得1.08元问题酬金 mosquitto.conf 配置中加上ssl_options reused_session false
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 1无用举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
夜深人静的哝玛 2023-06-10 18:10关注openssl.cnf文件中你可以设置一些用来禁用
[system_default_sect] Options = !SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS [ssl_client] Options = !SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS [ssl_server] Options = !SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS #conf文件中禁用重协商 listener 8883 tls_version tlsv1.2 tls_ciphers HIGH:!aNULL:!MD5:!RC4:!DSS tls_no_ticket true tls_options no_renegotiation
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 1无用举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
阿尔法斗士 2023-06-09 23:22关注获得0.72元问题酬金 1、首先,你需要找到OpenSSL 的配置文件:
在Linux系统中,一般在 /etc/ssl/openssl.cnf 或 /usr/local/ssl/openssl.cnf 目录下;
在Windows系统中,一般在 OpenSSL 安装目录下的 bin\openssl.cfg 文件中。2、其次,找到 [system_default_sect] 或 [default] 段,添加以下内容来禁用重协商功能:
[system_default_sect] Options = -SessionTicket -renegotiate
3、最后保存并退出配置文件。
关于 8883 端口的 Mosquitto 使用库的情况,你可以在 Mosquitto 的配置文件 mosquitto.conf 中加入以下行禁用客户端与代理的重协商功能:
# 在mosquitto.conf配置文件中的内容 listener 8883 tls_version tlsv1.2 ciphers <your_cipher_string> reneg_limit 0
对于 443 端口的 Python 下使用 aiohttp 库 web 生成的 server,您需要在创建 TLS 上下文时将 options 参数设置为 ssl.OP_NO_RENEGOTIATION,如下所示:
import ssl import aiohttp context = ssl.SSLContext(protocol=ssl.PROTOCOL_TLS) context.options |= ssl.OP_NO_SSLv2 | ssl.OP_NO_SSLv3 | ssl.OP_NO_TLSv1 | ssl.OP_NO_TLSv1_1 | ssl.OP_NO_RENEGOTIATION # 创建 app 时,将 context 对象传递给 ssl 参数 app = web.Application() web.run_app(app, host='127.0.0.1', port=443, ssl_context=context)
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
yy64ll826 2023-06-13 14:12关注获得1.08元问题酬金 tls 禁用重协商_SSL/TLS高危不安全重新协商漏洞
可以参考下
https://blog.csdn.net/weixin_29999895/article/details/111955780本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
关注
获得2.52元问题酬金 1、关闭renegotiation协议或限制SSL重协商数,以防止TLS DOS攻击:在Apache 2.2.15以上版本中,可以通过在配置文件httpd.conf中,添加如下字串:SSLInsecureRenegotiation Off;如使用的Apache版本低于2.2.15,则可以通过限制SSL重协商的次数防止DOS攻击。 2、使用WEB应用防火墙防止中间人攻击:通过WEB应用防火墙,对HTTP Header请求头进行过滤和监控,舍弃嵌入式的Http请求行,以防止中间人攻击。 3、禁止使用SSLv3协议 可先使用openssl客户端检测是否支持SSLv3:
openssl s_client -ssl3 -connect [host]:443
如果服务器不支持SSLv3会返回类似下面的信息:
SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:/xx/src/ssl/s3_pkt.c:1125:SSL alert number 40 SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:/xx/src/ssl/s3_pkt.c:546:
【Nginx、Apache、IIS禁用SSLv3方法】: Apache
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:RC4-SHA:!aNULL:!MD5:!DSSNginx
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:RC4-SHA:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!DSS:!PKS; ssl_session_timeout 5m; ssl_session_cache builtin:1000 shared:SSL:10m;
IIS 请参考:http://support2.microsoft.com/kb/187498/en-us 或:http://support2.microsoft.com/kb/187498/zh-cn 进行手工修复,或者使用fix it向导进行修复。
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
阳光宅男xxb 2023-06-16 07:55关注获得2.16元问题酬金 把433端口禁用调吧,然后你再把python下使用aiohttp库web生成的server的端口换成其它端口。或者在服务器禁用客户端重新协商功能看看是否可行
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
GIS工具开发 2023-06-16 13:38关注获得1.08元问题酬金 在 Python 中,可以使用 ssl 模块设置 SSL OP_NO_RENEGOTIATION 选项来禁用 SSL 重协商
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
关注
获得2.88元问题酬金 试试这个办法是否可行:
import ssl from aiohttp import web app = web.Application() ssl_context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) ssl_context.options |= ssl.OP_NO_TLSv1 | ssl.OP_NO_TLSv1_1 | ssl.OP_NO_SSLv2 | ssl.OP_NO_SSLv3 | ssl.OP_NO_RENEGOTIATION web.run_app(app, ssl_context=ssl_context)
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决评论 打赏无用 1举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
isjiff 2023-06-09 15:06关注获得0.72元问题酬金 对于 mosquitto mqtt 服务器(使用的是库):
mosquitto 是一个轻量级的 MQTT 消息代理服务软件,如果您使用的是 Linux 系统,具体的配置文件位置可以在命令行执行 mosquitto -h 查看。进入配置文件后,需要加入两个配置项:#禁止 SSL/TLS 重协商 ssl_options renegotiation_limit=-1 #禁止 SSLv2 和 SSLv3 协议 listener 8883 protocol mqtt cafile /etc/ssl/certs/broker.crt keyfile /etc/mosquitto/certs/broker.key require_certificate true tls_version tlsv1.2 ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
其中,ssl_options renegotiation_limit=-1 表示禁止 SSL/TLS 重协商;tls_version tlsv1.2 表示只接受 TLS 1.2 版本的协议,同时也禁止了 SSLv2 和 SSLv3 协议;ciphers 指定了 SSL/TLS 支持的密码套件。
对于使用 aiohttp 库生成的 web server:
在 Python 3.8 版本中,可以通过设置 SSLContext 的 renegotiation_cb 属性来禁用重协商:python import ssl from aiohttp import web ssl_ctx = ssl.create_default_context(purpose=ssl.Purpose.CLIENT_AUTH) ssl_ctx.options |= ssl.OP_NO_SSLv2 | ssl.OP_NO_SSLv3 ssl_ctx.set_ciphers('ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384') ssl_ctx.renegotiation_cb = ssl.disable_renegotiation app = web.Application() app.add_routes([...]) web.run_app(app, ssl_context=ssl_ctx, port=443)
其中,ssl.disable_renegotiation 是一个自定义的回调函数,用来禁用 SSL/TLS 重协商功能。
如果想直接修改 OpenSSL 源代码来禁止重协商功能,需要对源码进行修改并重新编译安装。具体操作可以参考 OpenSSL 的官方文档。
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决评论 打赏无用 1举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
Minuw 2023-06-09 15:08关注获得1.08元问题酬金 禁用 SSL 重协商功能可以通过修改 OpenSSL 库配置文件来实现
openssl_conf = openssl_init [openssl_init] ssl_conf = ssl_sect [ssl_sect] options = DONT_INSERT_EMPTY_FRAGMENTS
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决评论 打赏无用 1举报 编辑记录微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
关注
获得1.08元问题酬金 去这个
openssl/s3_lib.c
文件中,找到这行代码if (s->s3->flags & SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS)
改一下if (s->s3->flags & SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS || s->s3->flags & SSL3_FLAGS_CCS_OK)
然后再重新编译和安装OpenSSL库
完美且暴力 , 爱不爱本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决评论 打赏无用 1举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
才华横溢caozy 2023-06-09 16:17关注借助chatgpt:
修改mosquitto和aiohttp的配置文件。
mosquitto:listener 0.0.0.0 8883 protocols mqtt 51843 ssl-default-bind-ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK ssl_prefer_server_ciphers on; ssl_ciphers "EECDH+aRSA+RC4+3DES+EDH+AESGCM+AES256+EECDH+aRSA+RC4+3DES+EDH";
aiohttp:
import asyncio from aiohttp import web async def hello(request): return web.Response(text="Hello, world") app = web.Application() app.router.add_get('/', hello) # 禁用SSL重协商功能 if hasattr(asyncio, 'start_tls') and hasattr(asyncio, 'create_server'): asyncio.set_event_loop(asyncio.new_event_loop()) loop = asyncio.get_event_loop() server = loop.create_server(app.make_handler(), 'localhost', 443) server.serve_forever() else: app.run_forever()
最后调试一下看看,应该没有问题。
import logging logging.basicConfig(level=logging.DEBUG)
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决评论 打赏无用 2举报 编辑记录微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容
报告相同问题?
- 2015-09-06 14:41回答 2 已采纳 http://www.techienote.com/weak-ciphers-in-weblogic-application-server/
- 2016-01-29 11:36回答 4 已采纳 I was able to solve this problem with the help of one my friends with a lot of Linux experience. A
- 2023-03-17 18:34回答 4 已采纳 https://iknow.lenovo.com.cn/detail/kd_6295.html
- 2020-12-24 10:17金柔的博客 小凯seo博客将这篇内容转载过来和朋友们分享一下,题目是《SSL/TLS高危不安全重新协商漏洞》,正文部分如下:发布时间:2009年8月漏洞等级:高危漏洞原理:重新协商的漏洞在于新旧TLS连接之间没有连续性,即使这两个...
- 2022-08-03 12:40回答 1 已采纳 如果重来一遍,我绝对不会昨天用命令行安装安卓的sdk,把sstap的udp搞崩了😅明明unity自己就能安
- 2022-10-06 21:55回答 2 已采纳 通过rpad或repeat构造长字符串,加以计算量大的pattern,通过repeat的参数可以控制延时长短。
- 2022-03-15 16:36回答 4 已采纳 <a-select-option v-for="menu in menus" :key="menu.name" :value="menu.id" :disabled="menu.name===
- 2020-12-24 10:17学习中的小包的博客 此更新会部署一个在受影响的系统上禁用传输层安全 (TLS) 和安全套接字层 (SSL) 重新协商支持的替代方法,以帮助保护连接到此类服务器的客户端以免被该漏洞所利用。TLS 重新协商是传输层安全协议的组件,并且是某些...
- 2017-08-22 09:45回答 3 已采纳 修改my.cnf文件,然后重启mysql ``` [mysqld] ... skip_ssl # disable_ssl ... ```
- 2022-03-01 11:49回答 7 已采纳 开机后没有自动开启VMware DHCP service 和 VMware NAT service服务。只要在开启主机时开启这两个服务,打开虚拟机后就能自动联上网
- 2021-12-18 08:48回答 2 已采纳 估计要找你下你公司的IT,1.如果你的电脑是重装系统了,应该是驱动没装,2.你的无线网卡因为某种原因被物理关闭了(按到了关闭无线网卡的键或组合键之类的)3.系统里禁用了网卡。
- 2018-08-15 13:04圣骐的博客 openssl相关漏洞处理 网络设备在客户的机房上线,一般都会使用扫描工具进行扫描,以查看是否存在漏洞...服务器支持 TLS Client-initiated 重协商攻击(CVE-2011-1473)【原理扫描】 受诫礼攻击漏洞 临时解...
- 2015-11-11 17:23回答 1 已采纳 Here is the solution in joomla 'configuration.php', Set public $force_ssl = '0'; if required rem
- 2016-06-18 09:03煜铭2011的博客 德国黑客组织“The Hacker’s Choice”发布了工具THC SSL DOS,与传统DDoS工具不同的是,只需要一台执行单一攻击的电脑就能迅速消耗服务器资源,造成服务器拒绝服务。 这个攻击方式的本质是消耗服务器的CPU资源,...
- 2017-09-08 08:35Remy1119的博客 一、什么是重协商 大部分TLS连接都以handshake为开始,经过应用数据的交换,最后关闭会话。如果在第一次handshake之后(可能经历了应用数据的交换也可能没有)请求重新协商,就会发起一次新的handshake,对新的...
- 没有解决我的问题, 去提问
悬赏问题
- ¥15 eclipse无法正常运行
- ¥15 定义了函数,但是无法根据函数定义触发器
- ¥20 5变量卡诺图化简得出与非门电路图
- ¥15 Python爬取交通拥堵指数数据
- ¥15 使用vba抓取重定向网页问题
- ¥20 付费需求测试程序(细谈)。
- ¥15 为什么这段c++代码会报这么多语法错误?
- ¥20 如何利用C语言实现用最小二乘法选配两个经验公式
- ¥50 vue-codemirror如何对指定行 指定位置的 字符进行背景颜色或者字体颜色的修改?
- ¥30 遇到一个的问题,请教各位