首页 > 系统相关 >nginx禁用3DES和DES弱加密算法,保证SSL证书安全 SSL/TLS协议信息泄露漏洞(CVE-2016-2183)

nginx禁用3DES和DES弱加密算法,保证SSL证书安全 SSL/TLS协议信息泄露漏洞(CVE-2016-2183)

时间:2023-02-17 13:22:51浏览次数:56  
标签:TLS ssl SHA RSA SSL ECDHE strong 加密算法

 

cp -r nginx-1.19.2 ./nginx-1.19.2.bak

查看完旧版本信息可以执行如下命令,给旧版本改个名

mv ./nginx ./nginx.old

漏洞名称

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

详细描述

TLS是安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。

TLS, SSH, IPSec协商及其他产品中使用的DES及Triple DES密码或者3DES及Triple 3DES存在大约四十亿块的生日界,这可使远程攻击者通过Sweet32攻击,获取纯文本数据。

{

listen 80;

listen 443 ssl https2;

#使用HTTP/2,需要Nginx1.9.7以上的版本

ssl on;

server_name http://ykqi.cn www.ykqi.cn;

index index.php index.html index.htm default.php default.htm default.html;

root /www/wwwroot/dist/ykqi;

#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则

#error_page 404/404.html;

add_header X-Frame-Options DENY;

#禁止被嵌入框架

add_header X-Content-Type-Options nosniff;

#防止在IE9、Chrome和Safari中的MIME类型混淆攻击

ssl_certificate /www/server/panel/vhost/ssl/1_ykqi_bundle.crt;

ssl_certificate_key /www/server/panel/vhost/ssl/2_ykqi.key;

#SSL证书文件位置

ssl_dhparam /www/server/panel/vhost/ssl/dhparam.pem;

#DH-Key交换**文件位置

#SSL优化配置

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

#只允许TLS协议

ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";

 

或者

我的选择

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!3DES:!ADH:!RC4:!DH:!DHE;

 

#加密套件,这里用了CloudFlares Internet facing SSL cipher configuration

ssl_prefer_server_ciphers on;

.......此处省略

配置完重新启动Nginx!

 

通过命令: nmap -sV --script ssl-enum-ciphers -p 443 www.example.com 可得:

Starting Nmap 6.40 ( http://nmap.org ) at 2021-10-08 14:51 CST
Nmap scan report for 127.0.0.1
Host is up (0.035s latency).
PORT    STATE SERVICE VERSION
443/tcp open  http    nginx 1.19.10
| ssl-enum-ciphers: 
|   TLSv1.2: 
|     ciphers: 
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - strong
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 - strong
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 - strong
|       TLS_ECDHE_RSA_WITH_RC4_128_SHA - strong
|       TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA - broken
|       TLS_ECDH_anon_WITH_AES_128_CBC_SHA - broken
|       TLS_ECDH_anon_WITH_AES_256_CBC_SHA - broken
|       TLS_ECDH_anon_WITH_RC4_128_SHA - broken
|       TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 - weak
|       TLS_RSA_EXPORT_WITH_RC4_40_MD5 - weak
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA256 - strong
|       TLS_RSA_WITH_AES_256_GCM_SHA384 - strong
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - strong
|     compressors: 
|       NULL
|_  least strength: strong

Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 8.09 seconds

结果中weak(柔弱的)、broken(损坏的)、strong(坚固的)字段表示加密强度,为了安全需要将128位以下弱加密算法禁用,Nginx 配置 SSL需明确指定算法:

重启是nginx.conf配置生效

nginx -s reload


 

标签:TLS,ssl,SHA,RSA,SSL,ECDHE,strong,加密算法
From: https://www.cnblogs.com/wjsqqj/p/17129809.html

相关文章

  • CVE-2016-2183(SSL/TLS)漏洞的办法
    运行gpedit.msc,打开“本地组策略编辑器” 启用“SSL密码套件顺序”  TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_......
  • 真正“搞”懂HTTPS协议17之TLS握手
    经过前两章的学习,我们知道了通信安全的定义以及TLS对其的实现~有了这些知识作为基础,我们现在可以正式的开始研究HTTPS和TLS协议了。嗯……现在才真正开始。我记得......
  • [build/linux-mipsel-static/obj/mbedtls.o] Error 1
    build/linux-mipsel-static/inc"src/mbedtls/mbedtls.c<command-line>:0:1:error:macronamesmustbeidentifiersmake[5]:***[build/linux-mipsel-static/obj/mb......
  • 想要整个自签名SSL证书,Chrome却提醒我没有指定主题备用名称...
    错误码是NET::ERR_CERT_COMMON_NAME_INVALID解决方法:给IP签名#!/bin/bashIP="1.2.3.4"keytool\-genkey\-alias"${IP}"\-sigalgSHA512withRSA......
  • 什么是国密改造?国密SSL证书起什么作用?
    国密改造是指政企单位按照《GB/T39786-2021 信息安全技术信息系统密码应用基本要求》进行的信息系统密码应用改造。更多信息访问沃通CA官网咨询了解。《GB/T39786—2021信......
  • linux安装openssl
    1.下载安装包https://www.openssl.org/source/old/openssl-3.1.0-alpha1.tar.gz2.创建/usr/local/opensslpackage路径,并把压缩文件放到路径下3.进入opensslpackage路......
  • Java中Class.forName和 ClassLoader.loadClass()区别
    一、类加载过程装载:通过累的全限定名获取二进制字节流,将二进制字节流转换成方法区中的运行时数据结构,在内存中生成Java.lang.class对象;  链接:执行下面的校验、准备和解......
  • c# - WebClient下载https协议文件报错 System.Net.WebException: 请求被中止: 未能创
    1.原因这是因为本地的 .net版本 低于4.6,但项目大多使用4.0或者4.5同时iis没有配置域名【本地测试机器一般都是没有域名的】2.解决方法1配置域名【服务器的才行,本......
  • Nginx部署ssl证书server配置项
    http{}里面配置#以下属性中,以ssl开头的属性表示与证书配置有关。server{listen443ssl;#配置HTTPS的默认访问端口为443。#如果未在此处配置HTTPS的默......
  • Springboot项目配置SSL问题
    项目写一半想发布看一眼,是微信小程序的项目,一切都准备好了结果没有发布成功。第一次发布小程序,才知道微信小程序必须要https协议的域名才可以。发布小程序大致流程编......