ssl证书漏洞(ssl证书被盗)

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

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漏洞是什么

SSL也就是Secure Socket Layer,是一种在Web会话双方和客户间实现安全会话的通讯协议。可以帮助会话双方建立信任关系,实现安全会话。要做到这些还需要结合证书机制,所以会话双发首先要从CA申请数字证书,然后用数字证书中的公钥建立信任关系,再用密钥加密要传输的数据。浏览器与WEB服务器之间再SSL的基础上建立应用层会话,通信协议为HTTPS。

由于使用HTTPS/SSL的会话双方是通过一个加密的安全通道进行数据传输,所以很容易给人一个错误的认识,就是在这种机制下一定是安全的,但事实是否定的。原因很简单,因为理想的安全系统是不存在的,SSL同样不例外。

SSL安全漏洞主要体现在以下几个方面:

1.SSL服务缺陷

SSL是为网络通信提供安全保障的但其自身的安全却有可能不理想,而且对于SSL服务自身的安全缺陷是最致命的安全漏洞。这一点也不好笑。在流行的OpenSSL系统就有许多的安全漏洞,最典型的就是存在于各个版本的缓冲区溢出漏洞。

OpenSSL是一种开放源码的SSL实现,用来实现网络通信的高密度加密,现在被广泛地应用于各种网络应用程序中。目前OpenSSL已经发现的严重安全漏洞主要有:

●OpenSSL服务器SSLV2握手进程缓冲区溢出漏洞。

●OpenSSL客户端SSLV3握手进程缓冲区溢出漏洞。

●使用Kerberos的OpenSSL服务器SSLV3握手进程缓冲区溢出漏洞。

●OpenSSL在64位平台下处理整数ASCLL字符存在缓冲区漏洞。

●OpenSSL的ASN.1库在处理畸形证书时存在编码错误容易引发拒绝服务攻击。

2002年9月以来,有许多利用OpenSSL安全漏洞的蠕虫,比如"Apache/mod_ssl","Slapper","bugtraq.c"蠕虫。这些蠕虫的攻击对象是使用OpenSSL 0.8.6d之前的SSL模块(mod_ssl)和在Linux上运行的Apache服务器,但仅限于SSL v2设置位有效的且硬件位Intel x86的设备。

蠕虫将以下请求发往连接在Internet上的TCP80端口,并搜索攻击对象的Apache服务器:

GET /mod_ssl:error:HTTP-request HTTP/1.0

如果根据反应确认是Apache服务器,那么就会通过TCP 443发送蠕虫的源代码.之后编辑送入的源代码,并在被攻击设备上执行。让后被感染的设备上再寻找下一个目标。在各台设备上运行的蠕虫通过UDP 2002端口通信,并形成P2P网络。使用这一网络,可以将特定的数据保包一齐向特定目标发送,也就是说可以作为DDOS攻击的平台使用。

现在可以看出,OpenSSL系统的安全漏洞不仅危害SSL通信的安全,而且对整个网络系统的安全也有一定的影响。

2.攻击证书

证书的可信度首先取决于CA,而CA的表现却并不能让人满意。

像Verisign之类的安全CA机构并不总是可靠的,系统管理员经常犯的错误就是过于信任Verisign等公共的CA机构。但是,对于用户的证书,CA机构可能不像对网站数字证书那么重视和关心其准确性。对用户的证书的审核,颁发,吊销等工作环节可能不够严密,容易造成证书验证不准确,滥发,滥用,传递中被窃取甚至劫持等。

更位严重的是,由于微软的IIS提供了"客户端证书映射"功能,用于将客户端提交证书中的名字映射到NT的用户帐号,在这种情况下如果管理员的证书被窃取或被劫持,那么就能是黑客获得系统管理员权限。

黑客可以尝试暴力破解攻击。虽然暴力破解攻击证书比暴力破解攻击口令更位困难,但仍然算一种攻击方式。要暴力破解攻击客户端认证,首先要编辑一个一个用户名列表,然后为每一个名字向CA申请证书。每一各证书都用于尝试获取访问权限。用户名的选择越好,其中一个证书被认可的可能性就越高。暴力破解证书的方便之处就是只需要猜一个有效的用户名,而不是用户名和口令。

3. 窃取证书

除了上面的方法外,黑客还可能窃取有效证书及相应的私有密钥。最简单就是用木马。这种攻击几乎可使证书形同虚设。它攻击的是客户端系统,并获取其控制权,然后设法利用,窃取或劫持用户的证书。

证书服务的关键就是密钥,但是用户经常将密钥保存在不安全的地方,这就又给了黑客可乘之机。对付这种攻击的唯一有效方法也许就是将证书保存在智能卡之类的设备中。

4.管理盲点

由于SSL会话是加密的,系统管理员没办法使用现有的安全漏洞扫描或IDS来审查或监控网络上的SSL交易。这样就出现了管理上的盲点。

IDS是通过监控网络传输来寻找没有经过认证的活动。任何符合已知的攻击模式或者并未经过政策上授权的网络活动都被标起来以供系统管理员监视。而要让IDS能够发生作用,IDS必须能够监视所有的网络流量信息,但是SSL的加密技术却使得通过HTTP传输的信息无法让IDS辨认。

我们可以通过最新的安全扫描软件审查一般的网页服务器来寻找已知的安全盲点,这种扫描软件并不会检查经过SSL保护的服务器。受到SSL保护的网页服务器的确拥有与一般服务器同样的安全盲点,可是也许是因为建立SSL连接所需要的时间以及困难度,安全漏洞扫描软件并不会审查受到SSL保护的网页服务器。没有网络监视系统再加上没有安全漏洞审查,使得最重要的服务器反而成为受到最少保护的服务器

常见的几种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 作为哈希算法的所有算法

免费SSL证书是否有安全保障?

您好!

互联网无论是哪种免费产品,稳定性很低,供应商不会承担有效质量责任,为了稳定长效的发展,请使用收费产品,根据情况选择适合自己的品牌机构。

关于免费SSL证书适合可靠,历史证明,不可靠。

Startssl、Wosign、Symantec等,因提供大量免费证书导致被浏览器不信任,并且受到惩罚,目前CA机构已经被迫倒闭或转移资产,使用免费证书的网站也付出了惨痛的代价。

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

Windows server 2008或2012、2016远程桌面服务SSL加密默认是开启的,且有默认的CA证书。由于SSL/ TLS自身存在漏洞缺陷,当开启远程桌面服务,使用漏洞扫描工具扫描,发现存在SSL/TSL漏洞。

例如如下漏洞:

1、登录服务器,打开windows powershell,运行gpedit.msc,打开“本地组策略编辑器”。

2、打开“本地组策略编辑器”-“计算机配置”-“管理模板”-“网络”-“SSL配置设置”, 在“SSL密码套件顺序”选项上,右键“编辑”。

3、在“SSL密码套件顺序”选在“已启用(E)” ,在“SSL密码套件”下修改SSL密码套件算法,仅保留TLS 1.2 SHA256 和 SHA384 密码套件、TLS 1.2 ECC GCM 密码套件。

删除原有内容替换为:

修改后,点击“应用”、“确定”,即可。

4、重启服务器即可。

(责任编辑:IT教学网)

更多

推荐微软认证文章