1. 首页
  2. seo技术

扒一扒HTTPS网站的内幕

今年6月,维基媒体基金会发布公告,旗下所有网站将默认开启HTTPS,这些网站中Z为人所知的当然是全球Z大的在线百科-维基百科。而更早时候的3月,百度已经发布公告,百度全站默认开启HTTPS。淘宝也默默做了全站HTTPS。

今年6月,维基媒体基金会发布公告,旗下所有网站将默认开启HTTPS,这些网站中Z为人所知的当然是全球Z大的在线百科-维基百科。而更早时候的3月,百度已经发布公告,百度全站默认开启HTTPS。淘宝也默默做了全站HTTPS。


扒一扒HTTPS网站的内幕


网站实现HTTPS,在国外已经非常普及,也是必然的趋势。Google、Facebook、Twitter等巨头公司早已经实现全站HTTPS,而且为鼓励全球网站的HTTPS实现,Google甚至调整了搜索引擎算法,让采用HTTPS的网站在搜索中排名更靠前。但是在国内,HTTPS网站进展并不好,大部分的电商网站也仅仅是对账户登录和交易做HTTPS,比如京东;很多网站甚至连登录页面也没有实现HTTPS…这里面有很多的原因,比如现有架构改动的代价过大、CDN实现困难、对用户隐私和安全的不重视等。


扒一扒HTTPS网站的内幕


还有个重要原因是担心网站实现HTTPS后,网站的用户体验和性能下降明显。事实上,通过合理部署和

一、什么是HTTPS网站?


在介绍HTTPS网站前,首先简单介绍什么是HTTPS。


HTTPS可以理解为HTTP+TLS,HTTP是互联网中使用Z为广泛的协议,目前不部分的WEB应用和网站都是使用HTTP协议传输。主流版本是HTTP1.1,HTTP2.0还未正式普及,2.0由Google的SPDY协议演化而来,在性能上有明显的提升。


扒一扒HTTPS网站的内幕


TLS是传输层加密协议,是HTTPS安全的核心,其前身是SSL,主流版本有SSL3.0、TLS1.0、TLS1.1、TLS1.2。SSL3.0和TLS1.0由于存在安全漏洞,已经很少被使用到。


那网站为什么要实现HTTPS?


一言概之,为保护用户隐私和网络安全。通过数据加密、校验数据完整性和身份认证三种机制来保障安全。


扒一扒HTTPS网站的内幕


由于本文的重点是HTTPS网站的性能加速,对于HTTPS通信过程和加解密算法就不展开介绍了。


感兴趣的同学可以Google之,基础都是一样的。


二、HTTPS网站的直观了解


推荐一个在线版全球知名的HTTPS网站检测工具-SSL Labs。Qualys SSL Labs同时也是很具有影响力的SSL安全和性能研究机构。在线检测地址为:https://www.ssllabs.com/ssltest/。


扒一扒HTTPS网站的内幕


SSL Labs会对HTTPS网站的证书链、安全性、性能、协议细节进行全面检测,检测完毕后会进行打分,同时给出一份详细的检测报告和改进建议。


下面我们对一些常用网站进行检测。分别是12306购票页面、淘宝首页、百度首页、维基百科首页、WildDog首页的检测结果。


扒一扒HTTPS网站的内幕

12306购票页面


扒一扒HTTPS网站的内幕

淘宝首页


扒一扒HTTPS网站的内幕

百度首页


扒一扒HTTPS网站的内幕

维基百科首页


扒一扒HTTPS网站的内幕

WildDog首页


可以看到,虽然都是HTTPS网站,但是差距就是那么大…… 这里要顺便提下,12306真的很挫,百度和淘宝为兼容一些低端版本的用户,也是各种使用弱加密和协议。


三、提高HTTPS网站性能和访问速度


如果你认为网站加上TLS证书,就是HTTPS网站了,那你就跟12306犯了同样的错误……


首先,网站在加上TLS证书时,为什么会变慢?这主要又两方面造成:


  1. HTTPS比HTTP在通信时会产生更多的通信过程,随之RTT时间就会增加;

  2. HTTPS通信过程的非对称和对称加解密计算会产生更多的

    扒一扒HTTPS网站的内幕


    但是,每个HTTPS网站其实都有着巨大的

    HSTS


    HTTPS网站通常的做法是对HTTP的访问在

    1. 使用不安全的HTTP协议进行通信;

    2. 增加一个Round-Trip Time。


    而HSTS是HTTP Strict Transport Security的缩写,

    扒一扒HTTPS网站的内幕


    Session Resume


    Session Resume即会话复用,这提升HTTPS网站性能Z基础也是Z有效的方法。


    在HTTPS握手阶段,对

    扒一扒HTTPS网站的内幕


    TLS协议提供两种实现机制Session Resume,分别是Session cache和Session ticket。


    Session Cache


    Session Cache的原理是使用Session ID查询

    Session ticket


    Session ticket的原理是

    Session ticket可以很好的解决分布式问题,但Session ticket的支持率还不是很高,而且需要考虑

    OCSP Stapling


    在HTTPS通信过程时,浏览器会去验证

    CRL是证书撤销列表,CA机构会维护并定期更新CRL列表,但这个机制存在不足:


    1. CRL列表只会越来越大;

    2. 如果浏览器更新不及时,会造成误判。


    OCSP是实时证书在线验证协议,是对CRL机制的弥补,通过OCSP浏览器可以实时的向CA机构验证证书。但OCSP同样存在不足:


    1. 对CA机构要求过高,要求实时全球高可用;

    2. 客户端的访问隐私会在CA机构被泄露;

    3. 增加浏览器的握手时延。


    而OCSP Stapling是对OCSP缺陷的弥补,

    SPDY和HTTP2.0


    SPDY 是 Google 推出的

    扒一扒HTTPS网站的内幕


    Nginx stable版本当前只能支持到SPDY3.1,但Z新发布的1.9.5版本通过打patch的方式,可以支持HTTP2.0,这绝对是不一样的奇妙体验。不过不建议直接在线上环境部署,等到2015年年底吧,Nginx会发布Stable版本支持HTTP2.0.


    TCP

    因为TCP是HTTPS的承载,TCP的性能提升,上层业务都可以受益。


    慢启动是TCP规范中很重要的算法,其目的是为避免网络拥塞。通过客户端和

    在没有充足的理由时,

    另外,当前浏览器和

    TLS Record Size


    Size值如果过小,头部负载比重就会过大,Z高可达6%。


    Size值如果过大,那单个Record在TCP层会被分成多个包发送。浏览器必须等待这些全部达到后,才能解密,一旦出现丢包、拥塞、重传、甚至重新建立的情况,时延就会被相应增加。


    那TLS Record Size值如何选择呢?有两个参数可参考。


    首先,TLS Record Size要大于证书链和OCSP Stapling响应大小,证书链不会分成多个record;


    其次,要小于初始拥塞窗口值,保证

    一般来说,从根CA机构申请的证书为2-3KB左右,级数越多,证书链越大,ocsp响应为2KB左右,所以TLS Record Size是需要根据你的实际情况设置,Google的值5KB。WildDog当前的值是6KB。


    证书链完整且不冗余


    浏览器在验证服务器下发的证书链时,不仅仅验证网站证书。如果是多级证书,网站证书和根证书之间所有的中间证书都需要被验证。一旦出现证书链出现不完整,浏览器就会暂停握手过程,自行到因特网进行验证,这个时间基本是不可估算的。


    至于怎么查看,通过openssl命令查看,也可以通过SSL Labs帮你在线检测。


    移动设备上的ChaCha20-Poly1305


    去年的时候,谷歌已经在Android的Chrome浏览器上增加支持一个新的TLS加密套件,这个加密套件就是ChaCha20-Poly1305。它的设计者是伊利诺伊大学的教授和研究员Dan BernsteinChaCha20被用来加密,Poly1305被用来消息认证,两个操作都需要运行于TLS上。


    当前流行的加密套件AES-GCM在TLS 1.2支持,它是不安全RC4和AES-CBC加密套件的替代品。但是,在不支持硬件AES的设备上会引起性能问题,如大部分的智能手机、平板电脑、可穿戴设备。


    扒一扒HTTPS网站的内幕


    ChaCha20-Poly1305正式为解决这个问题而生。以下是Google的相关测试数据,在使用Snapdragon S4 Pro处理器的Nexus 4或其他手机中,AES-GSM的加密吞吐量是41.5MB/s,而ChaCha20-Poly1305是130.9MB/s。在使用OMAP 4460的老的Galaxy Nexus手机上,AES-GSM的吞吐量是24.1MB/s,而ChaCha20-Poly1305是75.3MB/s。


    当前,OpenSSL 1.0.2的分支上已经开始支持ChaCha20-Poly1305,而对ChaCha20-Poly1305支持Z好的当属BoringSSL。通过重新对Nginx的SSL库编译,可以支持到ChaCha20-Poly1305,不过对于线上环境,建议看明白源码再使用。


    除此之外,还有不少优化,成都地区专业SEO外包服务鲁大师seo博客 » 扒一扒HTTPS网站的内幕

    原创文章,作者:鲁 大师seo,如若转载,请注明出处:http://www.luseo.cn/archives/2916.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

15284716688

在线咨询:点击这里给我发消息

邮件:524595840@qq.com

工作时间:周一至周日,9:30-18:30