SSL/TLS协议信息泄露漏洞(CVE-2016-2183)修复方法
Posted 晓梦林
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSL/TLS协议信息泄露漏洞(CVE-2016-2183)修复方法相关的知识,希望对你有一定的参考价值。
前言:
关于SSL/TLS协议信息泄露漏洞(CVE-2016-2183)的处理方法,网上教程一大堆。
我以 windows操作系统 为例,浅谈一下我对这个漏洞修复的理解。
一、win7操作系统
1、打开控制面板 打开网络和Internet
2、打开Internet 选项
3、选择高级
4、下滑选项 找到 TLS 只勾选 使用TLS 1.2
5、win+R 输入gpedit.msc 打开组策略编辑器
6、依次选择 计算机配置 管理模板 网络 SSL配置设置 并双击打开
7、点击已启用
8、将原有字符删除后 将 下列字符替换到SSL密码套件的输入框中
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P521,TLS_ECDHE_ECDSA,WITH_AES_256_GCM_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P521,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P521,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P521,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P521,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_NULL_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA
9、替换后点击 应用 确定
10、重启计算机 修复成功
二、win10操作系统
1、打开控制面板,找到internet选项。
2、选择internet属性,找到高级。取消勾选TLS 1.0、1.1、1.3
保留TLS1.2。 修改完成后,先应用,后确认。
3、接着按住键盘上的win + r 键,输入gpedit.msc 。
4、如下图,找到SSL密码套件顺序,选择已启用。
6、替换SSL密码套件中的代码,代码在下面:
此处是替换代码:
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P521,TLS_ECDHE_ECDSA,WITH_AES_256_GCM_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P521,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P521,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P521,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P521,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_NULL_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA
7、重启电脑,完成漏洞修复
关于SSL/TLS协议信息泄露漏洞(CVE-2016- 2183)解决方案
详细描述:
TLS是安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。 TLS, SSH, IPSec协商 及其他产品中使用的DES及Triple DES密码存在大约四十亿块的 生日界,这可使远程攻击者通过 Sweet32攻击,获取纯文本数据。 <*来源:Karthik Bhargavan Gaetan Leurent 链接:https://www.o penssl.org/news/secadv/20160922.txt *>
解决办法:
建议:避免使用DES算法 1、OpenSSL Security Advisory [22 Sep 2016] 链接:https://www.openssl.o rg/news/secadv/20160922.txt 请在下列网页下载最新版本: https://www.openssl.org/source/ 2、对 于nginx、apache、lighttpd等服务器禁止使用DES加密算法 主要是修改conf文件 3、Windows系统可 以参考如下链接: https://social.technet.microsoft.com/Forums/en-US/31b3ba6f-d0e6-417a-b6f 1- d0103f054f8d/ssl-medium-strength-cipher-suites-supported-sweet32cve20 162183? forum=ws2016
实际操作:
根据官网要求升级对应大版本到指定的分支,按照要求准备升级到最新版本openssl
步骤:
一、执行脚本文件进行下载对应版本openssl,代码如下
#!/bin/sh #下载安装指定版本openssl #以下是普通用户脚本,一些操作需要root权限的sudo,root用户可删除 wget http://www.openssl.org/source/openssl-1.0.1u.tar.gz sudo tar xzvf openssl-1.0.1u.tar.gz cd openssl-1.0.1u sudo ./config shared zlib make && make install sudo chmod 777 /usr/local/ssl cd /usr/local/ssl/ sudo ./bin/openssl version -a #替换旧版openssl sudo mv /usr/bin/openssl /usr/bin/openssl.old2 sudo mv /usr/include/openssl /usr/include/openssl.old2 sudo ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl sudo ln -s /usr/local/ssl/include/openssl/ /usr/include/openssl #配置库文件搜索路径 #root的写法 echo "/usr/local/ssl/lib" >> /etc/ld.so.conf echo "/usr/local/ssl/lib" |sudo tee -a /etc/ld.so.conf sudo ldconfig 二、重新编译nginx,指定相应的新版本的openssl模块 其次,重新配置模块并重新编译nginx文件,具体操作如下: #测试新版是否正常 openssl version -a #备注:如果你是普通用户创建的软链注意权限问题
二、重新编译nginx,指定相应的新版本的openssl模块
nginx -V ---------------------------------------------------------------------------- nginx version: nginx/1.16.1 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) built with OpenSSL 1.0.1e 22 Sep 2013 TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx --with-pcre=/ywj/src/pcre-8.35 -- with-http_ssl_module --with-http_realip_module --with-http_addition_module -- with-http_gzip_static_module --with-http_sub_module --with-http_dav_module -- with-http_flv_module --with-http_stub_status_module --without-http_charset_module --with-http_v2_module 具体编译模块按照业务需求查看
其次,重新配置模块并重新编译nginx文件,具体操作如下:
./configure --prefix=复制已有的模块+ with-openssl=/ytxt/src/openssl-1.0.1u #注意:这里新增模块with-openssl指定新的nginx ssl模块依赖的ssl库,如果没有这步最终的nginx的 ssl编译版本是openssl-1.0.1u,而运行版本还是原来的openssl-1.0.1e #编译完成后,执行make,但不执行make install make #先备份 mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx20181113.old #再复制最新额 cp ./objs/nginx /usr/local/nginx/sbin/nginx #查看最新版本 nginx -V ---------------------------------------------------------------------------- nginx version: nginx/1.16.1 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) built with OpenSSL 1.0.1u 22 Sep 2016 TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx --with-pcre=/ywj/src/pcre-8.35 -- with-http_ssl_module --with-http_realip_module --with-http_addition_module -- with-http_gzip_static_module --with-http_sub_module --with-http_dav_module -- with-http_flv_module --with-http_stub_status_module --without-http_charset_module --with-http_v2_module --with-openssl=/ytxt/openssl-1.0.1u
总结
第一步、升级openssl升级到指定的修正版本,这个从测试其版本的角度修复这个问题(这步基本解决自 动扫描漏洞的问题)
第二步、ssl的指定算法需要排除DES、3DES这样的算法,这个从算法匹配的角度解决这个问题
以上是关于SSL/TLS协议信息泄露漏洞(CVE-2016-2183)修复方法的主要内容,如果未能解决你的问题,请参考以下文章
SSL/TLS协议信息泄露漏洞(CVE-2016-2183)漏洞修复升级
SSL/TLS协议信息泄露漏洞(CVE-2016-2183)修复方法
关于SSL/TLS协议信息泄露漏洞(CVE-2016- 2183)解决方案
SSL/TLS协议信息泄露漏洞(CVE-2016-2183) 漏洞处理(转载)