原文阅读:https://www.infinisign.com/fa...html
迄今为止,SSL/TLS已经阻止了基于SSL的无数次的网络攻击,本文介绍了SSL/TLS常见的几种漏洞以及过往的攻击方式,针对这些漏洞及攻击摒弃了老旧的加密算法,详细以下:
Export是一种老旧的弱加密算法,是被美国法律标示为可出口的加密算法,其限制对称加密最大强度位数为40位,限制密钥交换强度为最大512位。这是一个现今被强制丢弃的算法。nginx
降级攻击是一种对计算机系统或者通讯协议的攻击,在降级攻击中,攻击者故意使系统放弃新式、安全性高的工做方式,反而使用为向下兼容而准备的老式、安全性差的工做方式,降级攻击常被用于中间人攻击,讲加密的通讯协议安全性大幅削弱,得以进行本来不可能作到的攻击。 在现代的回退防护中,使用单独的信号套件来指示自愿降级行为,须要理解该信号并支持更高协议版本的服务器来终止协商,该套件是TLS_FALLBACK_SCSV(0x5600)web
MITM(Man-in-the-MiddleAttack) ,是指攻击者与通信的两端分别建立独立的联系,并交换其全部收到的数据,使通信的两端认为他们正在经过一个私密的链接与对方直接对话,但事实上整个对话都被攻击者彻底控制,在中间人攻击中,攻击者能够拦截通信双方的通话并插入新的内容。一个中间人攻击能成功的前提条件是攻击者可以将本身假装成每一个参与会话的终端,而且不被其余终端识破。算法
BEAST(CVE-2011-3389) BEAST是一种明文攻击,经过从SSL/TLS加密的会话中获取受害者的COOKIE值(经过进行一次会话劫持攻击),进而篡改一个加密算法的 CBC(密码块链)的模式以实现攻击目录,其主要针对TLS1.0和更早版本的协议中的对称加密算法CBC模式。缓存
因为早期的BEAST野兽攻击而采用的加密算法,RC4算法能减轻野兽攻击的危害,后来随着客户端版本升级,有了客户端缓解方案(Chrome 和 Firefox 提供了缓解方案),野兽攻击就不是什么大问题了。一样这是一个现今被强制丢弃的算法。安全
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 压缩。oracle
Heartbleed(CVE-2014-0160) 是一个于2014年4月公布的 OpenSSL 加密库的漏洞,它是一个被普遍使用的传输层安全(TLS)协议的实现。不管是服务器端仍是客户端在 TLS 中使用了有缺陷的 OpenSSL,均可以被利用该缺陷。因为它是因 DTLS 心跳扩展(RFC 6520)中的输入验证不正确(缺乏了边界检查)而致使的,因此该漏洞根据“心跳”而命名。这个漏洞是一种缓存区超读漏洞,它能够读取到本不该该读取的数据。若是使用带缺陷的Openssl版本,不管是服务器仍是客户端,均可能所以受到攻击。加密
2014年10月14号由Google发现的POODLE漏洞,全称是Padding Oracle On Downloaded Legacy Encryption vulnerability,又被称为“贵宾犬攻击”(CVE-2014-3566),POODLE漏洞只对CBC模式的明文进行了身份验证,可是没有对填充字节进行完整性验证,攻击者窃取采用SSL3.0版加密通讯过程当中的内容,对填充字节修改而且利用预置填充来恢复加密内容,以达到攻击目的。
TLS POODLE(CVE-2014-8730) 该漏洞的原理和POODLE漏洞的原理一致,但不是SSL3协议。因为TLS填充是SSLv3的一个子集,所以能够从新使用针对TLS的POODLE攻击。TLS对于它的填充格式是很是严格的,可是一些TLS实如今解密以后不执行填充结构的检查。即便使用TLS也不会容易受到POODLE攻击的影响。
CCS(CVE-2014-0224) 全称openssl MITM CCS injection attack,Openssl 0.9.8za以前的版本、1.0.0m以前的以及1.0.1h以前的openssl没有适当的限制ChangeCipherSpec信息的处理,这容许中间人攻击者在通讯之间使用0长度的主密钥。
FREAK(CVE-2015-0204) 客户端会在一个全安全强度的RSA握手过程当中接受使用弱安全强度的出口RSA密钥,其中关键在于客户端并无容许协商任何出口级别的RSA密码套件。
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 的全部版本。
2016年3月发现的针对TLS的新漏洞攻击——DROWN(Decrypting RSA with Obsolete and Weakened eNcryption,CVE-2016-0800),也即利用过期的、弱化的一种RSA加密算法来解密破解TLS协议中被该算法加密的会话密钥。 具体说来,DROWN漏洞能够利用过期的SSLv2协议来解密与之共享相同RSA私钥的TLS协议所保护的流量。 DROWN攻击依赖于SSLv2协议的设计缺陷以及知名的Bleichenbacher攻击。
一般检查如下两点服务器的配置
Openssl Padding Oracle(CVE-2016-2107) openssl 1.0.1t到openssl 1.0.2h以前没有考虑某些填充检查期间的内存分配,这容许远程攻击者经过针对AES CBC会话的padding-oracle攻击来获取敏感的明文信息。
参考资料: