ssl弱加密算法漏洞原因(ssl20漏洞)

http://www.itjxue.com  2023-02-11 01:51  来源:未知  点击次数: 

SSH&SSL弱加密算法漏洞修复

一、SSH

SSH的配置文件中加密算法没有指定,默认支持所有加密算法,包括arcfour,arcfour128,arcfour256等弱加密算法。

修改SSH配置文件,添加加密算法:

vi /etc/ssh/sshd_config

Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc

最后面添加以下内容(去掉arcfour,arcfour128,arcfour256等弱加密算法):

ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于,前者是针对客户端的配置文件,后者则是针对服务端的配置文件。

保存文件后重启SSH服务:

service sshd restart or? service ssh restart

验证

ssh -vv -oCiphers=aes128-cbc,3des-cbc,blowfish-cbc server

ssh -vv -oMACs=hmac-md5 server

二、SSL

修改SSL配置文件中的的SSL Cipher参数

1、禁止apache服务器使用RC4加密算法

vi /etc/httpd/conf.d/ssl.conf

修改为如下配置

SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!RC4

重启apache服务

2、关于nginx加密算法

1.0.5及以后版本,默认SSL密码算法是HIGH:!aNULL:!MD5

0.7.65、0.8.20及以后版本,默认SSL密码算法是HIGH:!ADH:!MD5

0.8.19版本,默认SSL密码算法是? ? ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM

0.7.64、0.8.18及以前版本,默认SSL密码算法是ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP

低版本的nginx或没注释的可以直接修改域名下ssl相关配置为

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-AES

256-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-GC

M-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";

ssl_prefer_server_ciphers on;

需要nginx重新加载服务

ssl漏洞是什么

安全套接层(Secure Sockets Layer,SSL)是一种安全协议,在网景公司(Netscape)推出首版Web浏览器的同时提出,目的是为网络通信提供安全及数据完整性保障,SSL在传输层中对网络通信进行加密。

SSL采用公开密钥技术,保证两个应用间通信的保密性和可靠性,使客户与服务器应用之间的通信不被攻击者窃听。它在服务器和客户机两端可同时被支持,目前已成为互联网上保密通讯的工业标准。现行的Web浏览器亦普遍将HTTP和SSL相结合,从而实现安全通信。此协议其继任者是TLS。

SSL包含记录层(Record Layer)和传输层,记录层协议确定了传输层数据的封装格式。

编写加密代码十分复杂,所以很多网站使用一种开源的免费安全协议,即OpenSSL。

OpenSSL是套开放源代码的SSL包,其库是以C语言所写成,实现了基本的传输层数据加密功能。

此次OpenSSL爆出的漏洞被业内命名为“心脏出血”。此漏洞可以让攻击者获得服务器上64K内存中的数据内容,这部分数据中可能存有安全证书、用户名与密码等数据。

常见的几种SSL/TLS漏洞及攻击方式

SSL/TLS漏洞目前还是比较普遍的,首先关闭协议:SSL2、SSL3(比较老的SSL协议)配置完成ATS安全标准就可以避免以下的攻击了,最新的服务器环境都不会有一下问题,当然这种漏洞都是自己部署证书没有配置好导致的。

Export 加密算法

Export是一种老旧的弱加密算法,是被美国法律标示为可出口的加密算法,其限制对称加密最大强度位数为40位,限制密钥交换强度为最大512位。这是一个现今被强制丢弃的算法。

Downgrade(降级攻击)

降级攻击是一种对计算机系统或者通信协议的攻击,在降级攻击中,攻击者故意使系统放弃新式、安全性高的工作方式,反而使用为向下兼容而准备的老式、安全性差的工作方式,降级攻击常被用于中间人攻击,讲加密的通信协议安全性大幅削弱,得以进行原本不可能做到的攻击。 在现代的回退防御中,使用单独的信号套件来指示自愿降级行为,需要理解该信号并支持更高协议版本的服务器来终止协商,该套件是TLS_FALLBACK_SCSV(0x5600)

MITM(中间人攻击)

MITM(Man-in-the-MiddleAttack) ,是指攻击者与通讯的两端分别创建独立的联系,并交换其所有收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个对话都被攻击者完全控制,在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。一个中间人攻击能成功的前提条件是攻击者能够将自己伪装成每个参与会话的终端,并且不被其他终端识破。

BEAST(野兽攻击)

BEAST(CVE-2011-3389) BEAST是一种明文攻击,通过从SSL/TLS加密的会话中获取受害者的COOKIE值(通过进行一次会话劫持攻击),进而篡改一个加密算法的 CBC(密码块链)的模式以实现攻击目录,其主要针对TLS1.0和更早版本的协议中的对称加密算法CBC模式。

RC4 加密算法

由于早期的BEAST野兽攻击而采用的加密算法,RC4算法能减轻野兽攻击的危害,后来随着客户端版本升级,有了客户端缓解方案(Chrome 和 Firefox 提供了缓解方案),野兽攻击就不是什么大问题了。同样这是一个现今被强制丢弃的算法。

CRIME(罪恶攻击)

CRIME(CVE-2012-4929),全称Compression Ratio Info-leak Made Easy,这是一种因SSL压缩造成的安全隐患,通过它可窃取启用数据压缩特性的HTTPS或SPDY协议传输的私密Web Cookie。在成功读取身份验证Cookie后,攻击者可以实行会话劫持和发动进一步攻击。

SSL 压缩在下述版本是默认关闭的: nginx 1.1.6及更高/1.0.9及更高(如果使用了 OpenSSL 1.0.0及更高), nginx 1.3.2及更高/1.2.2及更高(如果使用较旧版本的 OpenSSL)。

如果你使用一个早期版本的 nginx 或 OpenSSL,而且你的发行版没有向后移植该选项,那么你需要重新编译没有一个 ZLIB 支持的 OpenSSL。这会禁止 OpenSSL 使用 DEFLATE 压缩方式。如果你禁用了这个,你仍然可以使用常规的 HTML DEFLATE 压缩。

Heartbleed(心血漏洞)

Heartbleed(CVE-2014-0160) 是一个于2014年4月公布的 OpenSSL 加密库的漏洞,它是一个被广泛使用的传输层安全(TLS)协议的实现。无论是服务器端还是客户端在 TLS 中使用了有缺陷的 OpenSSL,都可以被利用该缺陷。由于它是因 DTLS 心跳扩展(RFC 6520)中的输入验证不正确(缺少了边界检查)而导致的,所以该漏洞根据“心跳”而命名。这个漏洞是一种缓存区超读漏洞,它可以读取到本不应该读取的数据。如果使用带缺陷的Openssl版本,无论是服务器还是客户端,都可能因此受到攻击。

POODLE漏洞(卷毛狗攻击)

2014年10月14号由Google发现的POODLE漏洞,全称是Padding Oracle On Downloaded Legacy Encryption vulnerability,又被称为“贵宾犬攻击”(CVE-2014-3566),POODLE漏洞只对CBC模式的明文进行了身份验证,但是没有对填充字节进行完整性验证,攻击者窃取采用SSL3.0版加密通信过程中的内容,对填充字节修改并且利用预置填充来恢复加密内容,以达到攻击目的。

TLS POODLE(TLS卷毛狗攻击)

TLS POODLE(CVE-2014-8730) 该漏洞的原理和POODLE漏洞的原理一致,但不是SSL3协议。由于TLS填充是SSLv3的一个子集,因此可以重新使用针对TLS的POODLE攻击。TLS对于它的填充格式是非常严格的,但是一些TLS实现在解密之后不执行填充结构的检查。即使使用TLS也不会容易受到POODLE攻击的影响。

CCS

CCS(CVE-2014-0224) 全称openssl MITM CCS injection attack,Openssl 0.9.8za之前的版本、1.0.0m之前的以及1.0.1h之前的openssl没有适当的限制ChangeCipherSpec信息的处理,这允许中间人攻击者在通信之间使用0长度的主密钥。

FREAK

FREAK(CVE-2015-0204) 客户端会在一个全安全强度的RSA握手过程中接受使用弱安全强度的出口RSA密钥,其中关键在于客户端并没有允许协商任何出口级别的RSA密码套件。

Logjam

Logjam(CVE-2015-4000) 使用 Diffie-Hellman 密钥交换协议的 TLS 连接很容易受到攻击,尤其是DH密钥中的公钥强度小于1024bits。中间人攻击者可将有漏洞的 TLS 连接降级至使用 512 字节导出级加密。这种攻击会影响支持 DHE_EXPORT 密码的所有服务器。这个攻击可通过为两组弱 Diffie-Hellman 参数预先计算 512 字节质数完成,特别是 Apache 的 httpd 版本 2.1.5 到 2.4.7,以及 OpenSSL 的所有版本。

DROWN(溺水攻击/溺亡攻击)

2016年3月发现的针对TLS的新漏洞攻击——DROWN(Decrypting RSA with Obsolete and Weakened eNcryption,CVE-2016-0800),也即利用过时的、弱化的一种RSA加密算法来解密破解TLS协议中被该算法加密的会话密钥。 具体说来,DROWN漏洞可以利用过时的SSLv2协议来解密与之共享相同RSA私钥的TLS协议所保护的流量。 DROWN攻击依赖于SSLv2协议的设计缺陷以及知名的Bleichenbacher攻击。

通常检查以下两点服务器的配置

服务器允许SSL2连接,需要将其关闭。

私钥同时用于允许SSL2连接的其他服务器。例如,Web服务器和邮件服务器上使用相同的私钥和证书,如果邮件服务器支持SSL2,即使web服务器不支持SSL2,攻击者可以利用邮件服务器来破坏与web服务器的TLS连接。

Openssl Padding Oracle

Openssl Padding Oracle(CVE-2016-2107) openssl 1.0.1t到openssl 1.0.2h之前没有考虑某些填充检查期间的内存分配,这允许远程攻击者通过针对AES CBC会话的padding-oracle攻击来获取敏感的明文信息。

强制丢弃的算法

aNULL 包含了非验证的 Diffie-Hellman 密钥交换,这会受到中间人(MITM)攻击

eNULL 包含了无加密的算法(明文)

EXPORT 是老旧的弱加密算法,是被美国法律标示为可出口的

RC4 包含的加密算法使用了已弃用的 ARCFOUR 算法

DES 包含的加密算法使用了弃用的数据加密标准(DES)

SSLv2 包含了定义在旧版本 SSL 标准中的所有算法,现已弃用

MD5 包含了使用已弃用的 MD5 作为哈希算法的所有算法

poodle攻击原因

poodle攻击原因:因为出现漏洞,这个漏洞需要到安装SSL证书的服务器上去修复。

此漏洞是针对SSL3.0中CBC模式加密算法的一种padding oracle攻击,可以让攻击者获取SSL通信中的部分信息明文,如果将明文中的重要部分获取了,比如cookie,session,则信息的安全出现了隐患。从本质上说,这是SSL设计上的缺陷,SSL先认证再加密是不安全的。

poodle漏洞影响:

绝大多数SSL服务器和客户端,影响范围广泛。但攻击者如要利用成功,需要能够控制客户端和服务器之间的数据(执行中间人攻击)。

简单来说:Poodle攻击的原理,就是黑客故意制造安全协议连接失败的情况,触发浏览器的降级使用 SSL 3.0,然后使用特殊的手段,从 SSL 3.0 覆盖的安全连接下提取到一定字节长度的隐私信息。

(责任编辑:IT教学网)

更多

推荐PHP+MySQL视频文章