SSL相关漏洞解决方法
最近用绿盟扫描系统进行内网网系统扫描,有几台设备被扫出了SSL相关漏洞,在此做一个简短的加固方法。
本次涉及漏洞
1.漏洞名称:SSL 3.0 POODLE攻击信息泄露漏洞(CVE-2014-3566)【原理扫描】
2.SSL/TLS 受诫礼(BAR-MITZVAH)攻击漏洞(CVE-2015-2808)【原理扫描】
知识普及1:SSL协议要点
SSL(Secure Sockets Layer 安全套接层)是一种基于Web应用的安全通信协议,最早由Netscape(网景)公司提出。SSL介于TCP协议和应用层协议之间,主要作用就是将HTTP、FTP等应用层的数据进行加密然后依托可靠的TCP协议在互联网上传输到目的地,其中最典型的应用就是https。
SSL提供3个基本的安全服务:
1)身份合法性:数据发送方和接收方要确认彼此身份,要确保各自的身份不会被冒充。
2)数据机密性:所有传输的数据都进行加密,并且要确保即使数据被截获也无法破解。
3)数据完整性:确保收到的数据与发送方发出的数据一致,没有被篡改。
SSL协议主要采用的数据加密算法:
1)非对称加密算法:数据加密和解密使用不同的密钥,如RSA公钥加密算法。优点是安全级别高,很难被破解;缺点是加密解密的速度慢,因此只适用于小量数据的加密。SSL协议采用非对称加密算法实现数字签名,验证数据发送方(或接收方)的身份,同时也用非对称加密算法交换密钥(用于数据加密的对称加密算法的密钥,以及用于数据完整性验证的MAC算法)。
2)对称加密算法:数据加密和解密使用同一个密钥,如DES、3DES、RC4等都是对称加密算法。优点是加解密速度快,适用于大数据量的加密,但安全性较差。SSL协议采用对称加密算法对传输的数据进行加密。
3)MAC算法:Message Authentication Codes,即消息认证码算法,MAC含有密钥散列函数算法,兼容了MD和SHA算法的特性,并在此基础上加入了密钥。SSL协议采用MAC算法来检验消息的完整性。
知识普及2:SSL协议的版本
目前在用的SSL协议主要有5个版本,分别是SSL2.0、SSL3.0、TLS1.0、TLS1.1和TLS1.2,这里的TLS(Transport Layer Security,传输层安全)协议是SSL协议的升级版。
在SSL协议曝出Poodle漏洞后,微信公众平台将取消对SSLv2、SSLv3两个版本的支持,浏览器及其他采用SSL协议的平台也会逐渐取消对SSLv2、SSLv3的支持,目前只建议使用TLSv1.0、TLSv1.1和TLSv1.2三个版本。
1.漏洞名称:SSL 3.0 POODLE攻击信息泄露漏洞(CVE-2014-3566)【原理扫描】
涉及设备漏洞服务
此次设备受此漏洞波及影响主要是因为上述系统部署了Tomcat 的https服务,而Tomcat https服务默认情况下支持SSL 3.0协议(目前在用的SSL协议主要有5个版本,分别是SSL2.0、SSL3.0、TLS1.0、TLS1.1和TLS1.2.SSL3.0是已过时且不安全的协议,目前已被TLS 1.0,TLS 1.1,TLS 1.2替代)
漏洞描述和利用
SSL3.0是已过时且不安全的协议,目前已被TLS 1.0,TLS 1.1,TLS 1.2替代,因为兼容性原因,大多数的TLS实现依然兼容SSL3.0。
为了通用性的考虑,目前多数浏览器版本都支持SSL3.0,TLS协议的握手阶段包含了版本协商步骤,一般来说,客户端和服务器端的最新的协议版本将会被使用。其在与服务器端的握手阶段进行版本协商的时候,首先提供其所支持协议的最新版本,若该握手失败,则尝试以较旧的协议版本协商。能够实施中间人攻击的攻击者通过使受影响版本浏览器与服务器端使用较新协议的协商的连接失败,可以成功实现降级攻击,从而使得客户端与服务器端使用不安全的SSL3.0进行通信,此时,由于SSL 3.0使用的CBC块加密的实现存在漏洞,攻击者可以成功破解SSL连接的加密信息,比如获取用户cookie数据。这种攻击被称为POODLE攻击(Padding Oracle On Downgraded Legacy Encryption)。此漏洞影响绝大多数SSL服务器和客户端,影响范围广泛。但攻击者如要利用成功,需要能够控制客户端和服务器之间的数据(执行中间人攻击)。
漏洞处理方法
修改tomcat server.xml 在下面加入 sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" 来关闭SSL V3
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA"
keystoreFile="/home/kl/.keystore" keystorePass="eastcom"/>
2.SSL/TLS 受诫礼(BAR-MITZVAH)攻击漏洞(CVE-2015-2808)【原理扫描】
涉及设备漏洞服务
此次设备受此漏洞波及影响主要是因为上述系统部署了Tomcat 的https服务,Web容器开启了SSL/TLS访问方式,并未屏蔽RC4这种存在已被有效破解的加密算法导致。
漏洞描述和利用
SSL/TLS协议是一个被广泛使用的加密协议,Bar Mitzvah攻击实际上是利用了"不变性漏洞",这是RC4算法中的一个缺陷,它能够在某些情况下泄露SSL/TLS加密流量中的密文,从而将账户用户名密码,信用卡数据和其他敏感信息泄露给黑客。
漏洞处理方法
修改tomcat server.xml 在下面加入标红的串值
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"
ciphers="TLS_ECDHE_RSA_WITAES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA" keystoreFile="/home/kl/.keystore" keystorePass="new1234"/>
本地检测此漏洞是否处理方法
如果能够查看到证书信息,那么就是存在风险漏洞
如果显示sslv3 alerthandshake failure,表示该服务器没有这个漏洞
存在漏洞的情况截图
引用部分文章链接:
https://www.sslshopper.com/article-how-to-disable-ssl-2.0-in-iis-7.html
http://www.secpulse.com/archives/5682.html
http://www.freebuf.com/articles/network/62442.html
http://blog.csdn.net/lyq8479/article/details/40709175
http://kk876435928.blog.51cto.com/3530246/1773114
转载于:https://www.cnblogs.com/Bluesky-bk/p/10059991.html
SSL相关漏洞解决方法相关推荐
- 利用宝塔 开启apache tomcat ssl 失败的解决方法
利用宝塔 开启apache tomcat ssl 失败的解决方法 参考文章: (1)利用宝塔 开启apache tomcat ssl 失败的解决方法 (2)https://www.cnblogs.co ...
- SQL注入漏洞解决方法
本文只指针编码层次的SQL注入漏洞解决方法,例子代码是以java为主. 1,参数化的预编译查询语句 不安全例子 String query = "SELECT account_balance ...
- 允许Traceroute探测漏洞解决方法
允许Traceroute探测漏洞解决方法 详细描述 本插件使用Traceroute探测来获取扫描器与远程主机之间的路由信息.攻击者也可以利用这些信息来了解目标网络的网络拓扑. 解决办法 在防火墙出站规 ...
- 数据相关,资源相关,控制相关的解决方法
解决结构相关问题: 解决方法:1.后续指令停顿2.指令存储器和数据存储器分开,多部件3.指令预存技术(适用于访存周期短的情况) 解决数据相关问题: 解决方法:旁路技术 解决控制相关问题: 解决方法:分 ...
- HTTPS访问Git远程仓库,上报SSL证书错误解决方法
第一次使用Git,创建一个新的远程仓库的时候抛出了如下异常: fatal: unable to access 'https://xxxxx:xxxxxxxxxx.git/': SSL certific ...
- 【TortoiseGit】HTTPS访问Git远程仓库,上报SSL证书错误解决方法
错误:fatal: unable to access 'https://xxx.xxx.com/xxx/xxx.git/': SSL certificate problem: unable to ge ...
- Maven相关错误解决方法
1."编码 gbk 的不可映射字符" 解决方法,在project节点下加入以下配置 <properties><project.build.sourceEncodi ...
- 软件提示“setup has detected that your computer needs to be rebooted before continuing”相关信息解决方法
网络上的解决方法可用,但有一个小trick出现在PendingFileRenameOperations 这一个注册表选项在左侧树形结构中不出现,参考网络上的方法:点击 Session Manager, ...
- pip安装第三方包出现ssl错误的解决方法
我的情况是这样的 centos7系统,内置python2.7,python3.4,(后来加上自己又安装了一个python3.6) pip安装第三方包时,用pip2可以安装,没有报错. pip3安装会报 ...
最新文章
- java读取doc文档
- 使用celery的backend异步获取结果
- ionic入门教程第一课--环境搭建和新建ionic项目
- wxWidgets:多重继承
- 最新开源:3TS腾讯事务处理技术验证系统(下)
- java cxf 工具_利用CXF工具开发WebService接口
- 榜单:全球 35 位 35 岁以下科技创新青年
- 动手学深度学习(PyTorch实现)(八)--AlexNet模型
- .net通用权限框架B/S (五)--WEB(1)首页
- [转载] 动态口令,动态密码生成(OTP)
- HTTP协议中GET、POST和HEAD的介绍
- CCS软件的基础使用(以点灯为例)
- 技术人的未来(三)——红海与蓝海
- 2022年前端面试题加答案
- 广域网宽带接入技术二PPPoE原理及配置
- 2007年度中文博客百条经典语录
- 5. DR与BDR选举
- go包管理工具之govender
- 企业微信登录报错:应用程序无法正常启动(0xc0000142);Win10应用程序无法正常启动0xc0000142错误的解决方法
- Centos配置iptables开放ftp服务