打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SSL/TLS协议信息泄露漏洞(CVE-2016-2183)

根据漏洞扫描的提示查看官网给出的解释,如下:
SWEET32 Mitigation (CVE-2016-2183)

SWEET32 (https://sweet32.info) is an attack on older block cipher algorithms
that use a block size of 64 bits. In mitigation for the SWEET32 attack DES based
ciphersuites have been moved from the HIGH cipherstring group to MEDIUM in
OpenSSL 1.0.1 and OpenSSL 1.0.2. OpenSSL 1.1.0 since release has had these
ciphersuites disabled by default.

    OpenSSL 1.0.2 users should upgrade to 1.0.2i
    OpenSSL 1.0.1 users should upgrade to 1.0.1u

根据官网要求升级对应大版本到指定的分支,比如我默认的是centos6自带的1.0.1e,这个版本是有很多漏洞的,按照要求准备升级到1.0.1u
步骤

一、执行脚本文件进行下载对应版本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  --prefix=/usr/local/ssl

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

#测试新版是否正常
openssl version -a

#备注:如果你是普通用户创建的软链注意权限问题
  
二、重新编译nginx,指定相应的新版本的openssl模块

    找到之前下载的nginx源码包,我的是nginx-1.16.1,进入主目录执行如下命令:
    首先查看当前nginx的版本及模块,复制configure arguments准备下次重新编译使用
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=/usr/local/src/openssl-1.0.1u(使用源码包路径即可!!!)
#注意:这里新增模块with-openssl指定新的nginx ssl模块依赖的ssl库,如果没有这步最终的nginx的ssl编译版本是openssl-1.0.1u,而运行版本还是原来的openssl-1.0.1e

#编译完成后,执行make,但不执行make install
make

替换原来的nginx为新版本的
#先备份
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

 其他注意事项

我的某个服务器自动升级证书脚本执行失败,会报curl: (35) SSL connect error,经分析不能执行curl -o https://*****这样的脚本,后来发现openssl的版本依赖的nss不支持,本来像直接升级nss可惜操作不顺利直接升级openssl到新版本(可以通过包管理库yum进行安装,避免依赖问题)

yum install nmap;
nmap -sV --script ssl-enum-ciphers -p 443 js.iz***e100.cn

443/tcp open  http    nginx 1.16.1
| ssl-enum-ciphers:
|   TLSv1.0
|     Ciphers (13)
|       TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA
|       TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
|       TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA
|       TLS_RSA_WITH_AES_128_CBC_SHA
|       TLS_RSA_WITH_AES_256_CBC_SHA
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
|     Compressors (1)
|       uncompressed
|   TLSv1.1
|     Ciphers (13)
|       TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA
|       TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
|       TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA
|       TLS_RSA_WITH_AES_128_CBC_SHA
|       TLS_RSA_WITH_AES_256_CBC_SHA
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
|     Compressors (1)
|       uncompressed
|   TLSv1.2
|     Ciphers (25)
|       TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
|       TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
|       TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
|       TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
|       TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA
|       TLS_RSA_WITH_AES_128_CBC_SHA
|       TLS_RSA_WITH_AES_128_CBC_SHA256
|       TLS_RSA_WITH_AES_128_GCM_SHA256
|       TLS_RSA_WITH_AES_256_CBC_SHA
|       TLS_RSA_WITH_AES_256_CBC_SHA256
|       TLS_RSA_WITH_AES_256_GCM_SHA384
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
|     Compressors (1)
|_      uncompressed

 其中包含TLS_RSA_WITH_3DES_EDE_CBC_SHA或者其他DES的字样,通过nmap这个探测可以测试当前tls的加密级别,解决方案直接在nginx的ssl_ciphers中去掉DES、3DES这样的算法以及添加!DES:!3DES:来屏蔽隐藏的
总结

第一步、升级openssl升级到指定的修正版本,这个从测试其版本的角度修复这个问题(这步基本解决自动扫描漏洞的问题)
第二步、ssl的指定算法需要排除DES、3DES这样的算法,这个从算法匹配的角度解决这个问题
————————————————
版权声明:本文为CSDN博主「神笔馬郎」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wo240/article/details/111300976

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Nginx服务器中关于SSL的安全配置详解
Nginx服务器使用Let’s Encrypt配置SSL
tomcat开启https及TLS升级为1.2
OpenSSL中的CipherList(加密算法套件)
Tomcat开启https配置CA证书
stunnel+haproxy SSL以及问题记录
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服