大型网站https实践三:基于协议和配置的优化

大型网站https实践三:基于协议和配置的优化

ID:33705424

大小:53.00 KB

页数:19页

时间:2019-02-28

大型网站https实践三:基于协议和配置的优化_第1页
大型网站https实践三:基于协议和配置的优化_第2页
大型网站https实践三:基于协议和配置的优化_第3页
大型网站https实践三:基于协议和配置的优化_第4页
大型网站https实践三:基于协议和配置的优化_第5页
资源描述:

《大型网站https实践三:基于协议和配置的优化》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、建站知识前言上文讲到S对用户访问速度的影响。就为大家介绍S在访问速度,计算性能,安全等方面基于协议和配置的优化。S访问速度优化.TcpfastopenS和使用TCP协议进行传输,也就意味着必须通过三次握手建立TCP连接,但一个RTT的时间内只传输一个syn包是不是太浪费?能不能在syn包发出的同时捎上应用层的数据?其实是可以的,这也是tcpfastopen的思路,简称TFO。具体原理可以参考rfc。遗憾的是TFO需要高版本内核的支持,linux从.以后支持TFO,但是目前的windows系统还不支持TFO,所

2、以只能在内部服务器之间发挥作用。.HSTS前面提到过将用户请求跳转到S,这会有两个影响:、不安全,跳转不仅暴露了用户的访问站点,也很容易被中间者支持。、降低访问速度,跳转不仅需要一个RTT,浏览器执行跳转也需要执行时间。两种机制实现sessionresume,分别介绍一下。..SessioncacheSessioncache的原理是使用clienthello中的sessionid查询服务端的sessioncache,如果服务端有对应的缓存,则直接使用已有的session信息提前完成握手,称为简化握手。Sess

3、ioncache有两个缺点:、需要消耗服务端内存来存储session内容。、目前的开源软件包括nginx,apache只支持单机多进程间共享缓存,不支持多机间分布式缓存,对于百度或者其他大型互联而言,单机sessioncache几乎没有作用。Sessioncache也有一个非常大的优点:sessionid是TLS协议的标准字段,市面上的浏览器全部都支持sessioncache。百度通过对TLS握手协议及服务器端实现的优化,已经支持全局的sessioncache,能够明显提升用户的访问速度,节省服务器计算资源。

4、..Sessionticket上节提到了sessioncache的两个缺点,sessionticket能够弥补这些不足。Sessionticket的原理参考RFC。简述如下:Domain:www.007ckf.comMore:hgs2wserver将session信息加密成ticket发送给浏览器,浏览器后续握手请求时会发送ticket,server端如果能成功解密和处理ticket,就能完成简化握手。显然,sessionticket的优点是不需要服务端消耗大量资源来存储session内容。Sessionti

5、cket的缺点:、sessionticket只是TLS协议的一个扩展特性,目前的支持率不是很广泛,只有%左右。、sessionticket需要维护一个全局的key来加解密,需要考虑KEY的安全性和部署效率。总体来讲,sessionticket的功能特性明显优于sessioncache。希望客户端实现优先支持sessionticket。.OcspstaplingOcsp全称在线证书状态检查协议(rfc),用来向CA站点查询证书状态,比如是否撤销。通常情况下,浏览器使用OCSP协议发起查询请求,CA返回证书状态内

6、容,然后浏览器接受证书是否可信的状态。这个过程非常消耗时间,因为CA站点有可能在国外,络不稳定,RTT也比较大。那有没有办法不直接向CA站点请求OCSP内容呢?ocspstapling就能实现这个功能。详细介绍参考RFC第节。简述原理就是浏览器发起clienthello时会携带一个certificatestatusrequest的扩展,服务端看到这个扩展后将OCSP内容直接返回给浏览器,完成证书状态检查。由于浏览器不需要直接向CA站点查询证书状态,这个功能对访问速度的提升非常明显。Nginx目前已经支持这个o

7、cspstaplingfile,只需要配置ocspstaplingfile的指令就能开启这个功能:ssl_staplingon;ssl_stapling_fileocsp.staple;.Falsestart通常情况下,应用层数据必须等完全握手全部结束之后才能传输。这个其实比较浪费时间,那能不能类似TFO一样,在完全握手的第二个阶段将应用数据一起发出来呢?google提出了falsestart来实现这个功能。详细介绍参考s://tools.ietf.org/html/draft-bmoeller-tls-fa

8、lsestart-。简单概括Falsestart的原理就是在client_key_exchange发出时将应用层数据一起发出来,能够节省一个RTT。Falsestart依赖于PFS(perfectforwardsecrecy完美前向加密),而PFS又依赖于DHE密钥交换系列算法(DHE_RSA,ECDHE_RSA,DHE_DSS,ECDHE_ECDSA),所以尽量优先支持ECDHE密钥交换算法实现f

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。