1Preface
HTTPS在保护用户隐私、防止流量劫持方面起到了关键作用,但同时HTTPS也会降低用户的访问速度,增加网站服务器的计算资源消耗。
本文主要介绍https对用户体验的影响。
这篇文章最早发表在百度运维部官方博客
2 HTTPS对访问速度的影响
在介绍速度优化策略之前,我们先来看看HTTPS对速度的影响。影响主要来自两个方面:
1。协议交互增加了网络RTT(往返时间)。
2。与加密和解密相关的计算需要时间。
下面分别介绍一下。
2.1网络时间消耗增加
因为HTTP和HTTPS都需要DNS解析,而且大部分情况下都使用DNS缓存,为了突出对比效果,忽略了主域名的DNS解析时间。
当用户使用HTTP协议访问http://www.baidu.com(或www.baidu.com)时,需要花时间在以下网络上进行交互:
可以看到,用户只需完成TCP三次握手,建立TCP连接,就可以直接发送HTTP请求获取应用层数据,整个访问过程不需要消耗计算资源。
接下来看看HTTPS的访问流程,比HTTP复杂多了。在某些情况下,使用HTTPS可能会增加7 RTT。下图:
HTTPS第一次请求所需的网络时间解释如下:
1。三次握手建立TCP连接。它需要一个RTT。
2。用HTTP发起GET请求,服务器返回302跳转到https://www.baidu.com。需要一个RTT和一个302跳跃延迟。
a)在大多数情况下,用户不会手动进入https://www.baidu.com访问HTTPS,服务器只能返回302强制浏览器跳转到https。
b)浏览器处理302次跳转也需要时间。
3。三次握手重建TCP连接。它需要一个RTT。
a)302跳转到HTTPS服务器后,由于端口和服务器不同,需要重新完成三次握手,建立TCP连接。
4。TLS完成握手阶段1。至少需要一个RTT。
a)这个阶段主要是完成加密套件的协商和证书的认证。
b)服务器和浏览器会协商相同的密钥交换算法、对称加密算法、内容一致性检查算法、证书签名算法、椭圆曲线(ECC算法不要求)等。
c)浏览器获得证书后,需要验证证书的有效性,比如是否过期或者被撤销。
5。解析证书颁发机构站点的域名系统。它需要一个RTT。
a)浏览器获得证书后,可能需要启动OCSP或CRL请求来查询证书状态。
b)浏览器首先获取证书中的CA域名。
c)如果错过CAche,浏览器需要解析ca域名的DNS。
6。三次握手建立CA站点的TCP连接。它需要一个RTT。
a)DNS解析为IP后,需要完成三次握手才能建立TCP连接。
7。启动OCSP请求并获得响应。它需要一个RTT。
8。完整的握手阶段2需要一个RTT和计算时间。
a)完全握手的第二阶段主要是密钥协商。
9。完成握手后,应用层(即HTTP)数据在浏览器和服务器之间传输。
当然不是每个请求都需要添加7 RTT才能完成HTTPS第一个请求交互。大概不到0.01%的请求需要经过上述步骤,并且需要满足以下条件:
1。肯定是第一个要求。即TCP连接建立后发起的第一个请求,连接上的后续请求不需要再有上述行为。
2。必须发生完全握手,正常情况下,80%的请求可以实现简化握手。
3。浏览器需要打开OCSP或CRL功能。Chrome默认关闭ocsp,firefox和IE默认都打开。
4。浏览器错过了OCSP缓存。ocsp的一般更新周期是7天,火狐的查询周期也是7天,也就是说Ocsp查询7天只会出现一次。
5。浏览器错过了CA站点的DNS缓存。只有当它错过域名系统缓存时,证书颁发机构的域名系统才会被解析。
2.2计算时间增加
前一节只简单描述了在HTTPS关键路径上必须消耗的纯网络时间,不包括消耗CPU资源的计算时间。实际上
b)在RSA密钥交换过程中,premaster需要用证书的公钥加密。时间比较少,但是如果手机性能差的话,可能需要1ms。
c)交换ECC密钥时,需要计算椭圆曲线的公钥和私钥。
d)在ECC密钥交换过程中,需要对证书公钥进行解密,才能获得服务器发送的ECC公钥。
e) ECC在ECC密钥交换过程中,需要根据服务器的公钥来计算主密钥。
f)应用层数据的对称加密和解密。
g)应用层数据一致性检查。
2,服务器计算需要时间
a) RSA在交换密钥时需要使用证书的私钥对premaster进行解密。这个过程非常消耗性能。
b)交换ECC密钥时,需要计算椭圆曲线的公钥和私钥。
c)在ECC密钥交换过程中,需要用证书的私钥对ECC的公钥进行加密。
d)交换ECC密钥时,需要根据浏览器公钥计算共享主密钥。
e)应用层数据的对称加密和解密。
f)应用层数据一致性检查。
由于客户端的CPU和操作系统种类繁多,计算时间消耗不能一概而论。手机上的HTTPS计算会消耗性能,简单计算造成的延迟至少是50 ms,PC端也会增加至少10ms的计算延迟。
59
59
59
59
59
59
59
59
59
59