你的SSL服务器上是否存在错误配置或已知漏洞这样的安全隐患呢?根据以下10个技巧,可以帮你避免这些常见的SSL安全威胁。
1.禁用SSLv2。早在15年前,这个版本的SSL协议早就被确认存在安全问题了,但还是有很多Web服务器仍然支持这个协议。
禁用它只需几分钟的时间。例如,在Apache v2中,你只需要改变默认设置:
-
SSLProtocol all
-
to
-
SSLProtocol all -SSLv2
2.禁止支持弱加密。几乎所有Web服务器都支持128位强度或者256位高强度的加密算法,但也有少部分的Web服务器支持弱加密。弱加密会被黑客利用,威胁企业信息安全。所以,没有理由去支持弱加密服务。同样,在几分钟之内就可以禁用掉这个服务,例如:
-
SSLCipherSuite RSA:!EXP:!NULL:+HIGH:+MEDIUM:-LOW
3.确保你的服务器没有支持不靠谱的重新握手和协商过程。SSL和TLS身份认证的漏洞容易遭到中间人攻击的利用,进而导致任何内容都可以重定义并注入到加密的数据流当中。大部分厂商都发布了此漏洞的补丁,若你还没有打这个补丁,最好还是先禁用这个重定义服务吧。
4.确保通过SSL认证的所有阶段。关键是要保护你的用户证书,也就是说用户通过SSL连接提交给你登录表单,同时,你要保护他们的证书安全。否则,黑客会通过他们自己的服务器来拦截你的信息并转发一个恶意信息给用户,以便窃取到用户们的授权证书。
5.在你的网页上不要把SSl保护的内容和明文内容混在一块。混合使用加密认证会导致你的网站受到攻击,因为像Javascipt这种单个未受保护的资源容易被注入恶意代码或者是受到中间人攻击。
6.使用HSTS加密保护你的域(包括子域)。用HSTS协议来保护你的网站,在你首次访问网站中的任何连接时,可以将HTTP自动转换成HTTPS。与此同时,若用户持非法私有证书,是不能再次浏览该网站的。这就意味着,黑客将不能你的用户转移到那些他们所操控的具有不安全SSL连接以及危险cookies信息的钓鱼网站了。
STS协议头必须保证只通过HTTPS发送,并且配置应该尽可能地清晰简单。其配置只需要简单的两行命令。例如在Apache中,你可以输入下面的命令:
-
Header set Strict-Transport-Security "max-age=XXXXXX"
-
Header append Strict-Transport-Security includeSubDomains
7.使用HttpOnly和安全标识来保护cookies。用来鉴定SSL会话持续时间的cookies常常会削弱SSL会话的安全性。HttpOnly标识可以隐藏你的客户端脚本,所以他们不能通过跨站点脚本攻击来窃取信息。也就是说,安全标识cookies只能通过加密的SSL来传输,因此不能被截获。
用HttpOnly来配置你的Web服务器,从而保护cookies。通过这样简单增加安全属性的方法,可以防御上述两种类型的攻击;用HttpOnly来设置Cookie Http响应前端:
-
Set-Cookie: =; =
-
; expires=; domain=
-
; secure; HttpOnly
8.使用扩展验证(Extended Validation(EV))证书。虽然这个证书对于你的网站安全来说并不是非常必要,但是EV证书可以在地址搜索栏上展示出明确的视觉确认效果,通过安全的SSL连接,用户可以一下子就确认是你的网站,而非钓鱼网站。
9.确保你的证书被包含在子域当中。为了避免网站用户得到错误的证书,你要确保https://www.yourdomain.com和https://yourdomain.com 都覆盖了你的SSL证书。
你可以使用多域名SSL证书,它可以允许你最多选择三个主名(SNAs)例如yourdomain.com 或 www.yourdomain.com
10.进行SSL服务器测试。使用Qualys公司的SSL实验室可以进行免费测试,你可以检查SSL服务器配置,认证链,以及协议和密码组在内的整体SSL安全状态。
原文链接:http://netsecurity.51cto.com/art/201108/279867.htm