大型网站https实践(上)

发布时间:2022-05-13 18:10:18 作者: 来源: 浏览量(2796 )
摘要:百度在2015年即完成HTTPS改造,那大型网站的HTTPS改造中都有哪些实践经验,相信这是很多站长都想知道的,那么下面小编就为大家总结一下: 1 前言 HTTPS 在保护用户隐私,防止流量劫持方面发挥着非常关键的作用,但...

百度在2015年即完成HTTPS改造,那大型网站的HTTPS改造中都有哪些实践经验,相信这是很多站长都想知道的,那么下面小编就为大家总结一下:

 

1 前言

 

HTTPS 在保护用户隐私,防止流量劫持方面发挥着非常关键的作用,但与此同时,HTTPS 也会降低用户访问速度,增加网站服务器的计算资源消耗。

 

本文主要介绍 https 对用户体验的影响。

 

2 HTTPS 对访问速度的影响

 

在介绍速度优化策略之前,先来看下 HTTPS 对速度有什么影响。影响主要来自两方面:

 

协议交互所增加的网络 RTT(round trip time)。

 

加解密相关的计算耗时。

 

下面分别介绍一下。

 

2.1 网络耗时增加

 

由于 HTTP 和 HTTPS 都需要 DNS 解析,并且大部分情况下使用了 DNS 缓存,为了突出对比效果,忽略主域名的 DNS 解析时间。

 

用户使用 HTTP 协议访问www.baidu.com(或者 www.baidu.com) 时会有如下网络上的交互耗时:

 

2.2 计算耗时增加

 

上节还只是简单描述了 HTTPS 关键路径上必须消耗的纯网络耗时,没有包括非常消耗 CPU 资源的计算耗时,事实上计算耗时也不小(30ms 以上),从浏览器和服务器的角度分别介绍一下:

 

1, 浏览器计算耗时

 

a) RSA 证书签名校验,浏览器需要解密签名,计算证书哈希值。如果有多个证书链,浏览器需要校验多个证书。

 

b) RSA 密钥交换时,需要使用证书公钥加密 premaster。耗时比较小,但如果手机性能比较差,可能也需要 1ms 的时间。

 

c) ECC 密钥交换时,需要计算椭圆曲线的公私钥。

 

d) ECC 密钥交换时,需要使用证书公钥解密获取服务端发过来的 ECC 公钥。

 

e) ECC 密钥交换时,需要根据服务端公钥计算 master key。

 

f) 应用层数据对称加解密。

 

g) 应用层数据一致性校验。

 

2, 服务端计算耗时

 

a) RSA 密钥交换时需要使用证书私钥解密 premaster。这个过程非常消耗性能。

 

b) ECC 密钥交换时,需要计算椭圆曲线的公私钥。

 

c) ECC 密钥交换时,需要使用证书私钥加密 ECC 的公钥。

 

d) ECC 密钥交换时,需要根据浏览器公钥计算共享的 master key。

 

e) 应用层数据对称加解密。

 

f) 应用层数据一致性校验。

 

由于客户端的 CPU 和操作系统种类比较多,所以计算耗时不能一概而论。手机端的 HTTPS 计算会比较消耗性能,单纯计算增加的延迟至少在 50ms 以上。PC 端也会增加至少 10ms 以上的计算延迟。

 

服务器的性能一般比较强,但由于 RSA 证书私钥长度远大于客户端,所以服务端的计算延迟也会在 5ms 以上。

 

扫一扫二维码,直接手机访问此页

扫码访问手机页面

【免责声明】本网站的部分文章信息(文字、图片、音频视频文件等资源)来自于网络,均是为公众传播有益咨询信息之目的,其版权归版权所有人所有。 本站采用的非本站原创文章及图片等内容无法一一与版权者联系,如果本站所选内容的文章作者及编辑认为其作品不宜供大家浏览,或不应无偿使用, 请及时联系我们删除,同时向您深表歉意!请发送邮件153462496@qq.com进行联系。

感兴趣吗?

欢迎联系我们,我们愿意为您解答任何有关网站疑难问题!

在线客服
嘿,我来帮您!