HTTPS最佳安全部署实践

发布时间:2018/1/24 20:59:24 打印 字号:

一、全网HTTPS使用和安全概况

        百度在2015年3月将搜索服务全站HTTPS化以来,HTTPS正被越来越多的网站和企业使用。但是我们发现,进行正确的HTTPS配置和安全部署情况并不乐观,安全指数分析了全网13288198个网站,其中有1089693个网站使用了HTTPS,占比8.2%。使用HTTPS的网站中有1080884个网站存在配置或安全问题,占比99.19%。(2017年3月1日数据)

        中国互联网网站HTTPS使用和安全情况:     

https1.JPG    https2.JPG

        我们希望:通过使用HTTPS带来的安全改善、HTTPS证书有效性、HTTPS安全部署、HTTPS漏洞等多个角度,推进中国互联网网站提升HTTPS安全,避免被浏览器HTTPS危险、不安全提示和访问拦截。

二、使用HTTPS带来的安全改善

1. 更好地保护用户的隐私。

        在HTTP时代,用户所有浏览数据都是明文和服务器之间交互的,可能会被窃取和修改。比如在公共场合连接的 WIFI 热点。使用HTTPS以后,因为对于传输过程和数据都进行了加密,避免了中间节点的监听,密码和隐私泄露风险得到很大程度的降低。

2. 避免用户访问到伪造的服务器。

        用户访问网站被指向伪造的页面上,之后会发生多少不可想象的事情?HTTPS认证用户和网站真实性机制,可避免劫持伪造。

3. HTTPS 还可以防止流量劫持

        用户在访问网站时,可以不被流量劫持插入的广告打扰了。

        流量劫持实例(左图是劫持页面,右图为正常页面):

jc.png

三、HTTPS证书有效性

        证书是为了确认服务端身份,但网络上充满了无效的证书,浏览器对使用无效证书的访问,给出危险、不安全警告,将是否选择继续访问由用户选择,而大多数用户是无法区分这是配置还是真的存在安全问题。

证书无效的主要原因有:

1. 证书主机名与域名不匹配

浏览器拦截实例:

zjm.png

2. 使用过期的证书

浏览器拦截实例:

gq.png

3. 使用不安全的证书签名算法

        2009年SHA1算法被完全破解,Chrome等浏览器在对2016年内到期的SHA1证书提示安全警告,对2017年后到期的SHA1证书则提示错误,建议将SHA256作为证书签名算法。

浏览器拦截实例:

qm.png

4. 证书链顺序校验不正确

        从根证书到叶子证书,当前证书的主题使用者与上一个证书的颁发者不同。

浏览器拦截实例:

zsl.png

        中国互联网网站使用无效HTTPS证书情况:  

https3.JPG    https4.JPG


四、部署安全的HTTPS

1. 不使用不安全的SSL/TLS版本

       SSL 2于1994年11月发布,有严重的弱点,被认为是失败的协议。

       SSL 3于1995年12月发布,存在POODLE攻击漏洞。

       TLS 1.0 于1999年1月发布,存在BEAST攻击(TLS1.0及更早版本的可预见的初始化向量漏洞)漏洞。

       上面这些协议版本存在严重安全问题,绝对不能使用。

2. HSTS头部署

        HTTP严格传输安全(HTTP Strict transport security,HSTS),配置浏览器对整个域名空间使用HTTPS来加密。在使用HSTS之后,所有与网站的不安全通信都是不允许的。这一目标通过自动把明文链接转换成安全链接来实现。一个额外的特性是不允许用户绕过证书警告(证书警告是中间人攻击的标志,而研究表明大多数用户都会无视警告,所以最好永远禁止用户这么做)。

支持HSTS是一项能大幅提高网站安全性的措施。新的网站应该在设计的时候就考虑到HSTS,而旧的站点则应该尽快支持。了解更多>>

3. HPKP头部署

        互联网的信任机制完全依赖于CA(证书颁发机构)厂商颁发的证书,而任意一个CA厂商都可以签发任意一个域名的证书,导致攻击者可以从CA厂商开始入手。因此需要使用白名单的方式来选择信任的CA,公钥扎钉public key pinning技术的出现,可以允许你强制指定签发证书的CA,只有指定的CA为你的域名签发的证书才能使用。目前该技术有三种实现方式,DANE(基于DNSSEC)、HTTP公钥扎钉和TACK(证书密钥可信保证)。了解更多>>

    中国互联网网站HTTPS安全部署情况:    

https5.JPG    https6.JPG


五、修复HTTPS漏洞

1. OpenSSL心脏出血漏洞

        发现时间:2014年4月 漏洞等级:高危

        危害:OpenSSL的代码中没有对读长度进行检查,攻击者可以利用这个缺陷,在一个心跳请求中获取到服务器进程中最大为64KB的数据。通过发出多个这样的请求,攻击这就可以无限制地获取内存数据。服务器的进程中必然存在敏感信息:例如会话票证的密钥、TLS的会话密钥以及各类密码,攻击者就可以得到这些信息。了解更多>>

2. OpenSSL CCS注入漏洞

        发现时间:2014年6月 漏洞等级:高危

        危害:该漏洞使得攻击者可以拦截恶意中间节点加密和解密数据,同时迫使使用弱密钥的SSL客户端暴露在恶意节点。了解更多>>

3. 协议降级漏洞

        等级:高危

        危害:攻击者作为中间人迫使TLS握手使用一个低等级的协议或者使用低强度的密码套件,目前浏览器为了兼容性都支持自愿协议降级,它们会首先使用其支持的最高TLS版本尝试连接,如果首次连接失败,则降低协议版本直到连接建立,这一兼容性措施使得攻击者可以利用不安全的低版本协议漏洞进行攻击。了解更多>>

4. 不安全重新协商漏洞

        发现时间:2009年8月 漏洞等级:高危

        危害:重新协商漏洞在于新旧TLS连接之间没有连续性,即使这两个连接发生在同一个TCP连接上。也就是说,服务器并不会验证新旧两条TLS连接的另外一端是同一个。当重新协商发生在HTTP请求中时,上层应用不会得到通知。攻击者通过中间人攻击,攻击数据和正常访问端数据会被服务器合并处理,从而使得攻击成功。了解更多>>

        中国互联网网站HTTPS漏洞情况:      

https7.JPG    https8.JPG


六、其他

1、SSL/TLS版本和使用最多的CA厂商

https9.JPG    https10.JPG


2、证书类型选购指南

类型要求浏览器友好性适用站点市场前景

域名验证DV(Domain Validated)

需要对域名所有权进行验证,自动签发,最便宜
个人站点 

组织验证OV(Organization Validated)

需要验证域名拥有者公司信息
公司

1.公钥扎钉技术的推广,DV证书前景惨淡

2.DV证书是通过whois协议来获取域名信息,然后基于域名所有者信息来签发证书的,验证过程通常是邮件沟通,如果攻击者获得了这个邮箱的访问权限,那么伪造一张DV证书非常容易 

扩展验证EV(Extended Validation)

需要和线下身份绑定

1.公司信息显示在浏览器地址并突出为绿色

2.对证书吊销支持更友好 

公司