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) 漏洞处理(转载)

漏洞修复---SSL/TLS协议信息泄露漏洞(CVE-2016-2183)原理扫描

漏洞修复---SSL/TLS协议信息泄露漏洞(CVE-2016-2183)原理扫描