小优化,大功效,一招儿让HTTPS访问性能大幅提升
网宿科技 06/01

众所周知,HTTPS比明文传输的HTTP更安全,并且,随着Google、百度、Apple等巨头极力推动,各大网站纷纷开启全站HTTPS,HTTPS有逐渐取代HTTP之势头。

可是,HTTPS的安全,是以牺牲性能为代价的,网宿对相同配置环境和硬件的服务器做同一资源的HTTP和HTTPS访问,数据表明,HTTPS总体耗时是HTTP的2倍多 。

HTTPS相较于HTTP增加了SSL握手的阶段,SSL加解密的性能优劣,很大程度上决定了网站的访问速度。

ECC证书——更快更安全的技术手段

在实施SSL加密过程中,主要会使用到非对称密钥交换和对称内容加密两大算法,非对称密钥交换算法主要有RSA、ECC等,对称内容加密算法主要有DES、AES等;使用RSA算法的证书称为RSA证书,使用ECC算法的证书称为ECC证书。

当前数字证书普遍采用RSA加密算法,这种加密算法的密钥长度必须是2048位以上,才能在一定程度上维持信息传输的安全性,这对互联网设备的计算能力、内存和带宽都是一大挑战。

但从2014年开始,ECC 证书在国外被普遍开始使用,2015年国内开始接受ECC证书。ECC 和 RSA 相比,在许多方面都有绝对的优势,主要体现在以下方面:

●抗攻击性强

●CPU 占用少

●内容使用少

●网络消耗低

●加密速度快

相同安全等级下证书体积对比情况

ECC证书

RSA证书

ECC:RSA

163bit

1024bit

1:6

256bit

3072bit

1:12

384bit

7680bit

1:20

512bit

15360bit

1:30

下图是ECC证书与RSA证书的性能对比,可以看到,在高并发的场景下,ECC证书表现稳定,保持在一个比较低的状态,而RSA证书的时延在并发达到一定阈值时会骤然上升。

提升HTTPS性能——合理地使用ECC证书

虽然ECC证书相较于RSA证书有多方面的优势,但其短板在于浏览器的支持并不是很友好,以下是不同的操作系统及浏览器版本的ECC支持情况,可以看到ECC的兼容性较差,而RSA则几乎是所有环境都能支持。

客户端环境

版本

ECC支持情况

SNI支持情况

操作系统

Windows

Vista+

Vista+

MacOS

10.6+

10.5+

iOS

7.0+

8.0+

Android

4.0+

3.0+

浏览器

IE

7.0+

7.0+

Firefox

2.0+

2.0+

Chrome

1.0+

6.0+

Safari

4.0+

3.0+

ECC证书的完全普及也许还需要一定时间,但用户体验的提升不能等。在ECC与RSA的漫长过渡时间里,一个小小的优化,就能够大大提升HTTPS网站的访问性能。

小优化,大功效——网宿证书优选方案

针对同一域名,在网宿CDN节点上同时部署 RSA和ECC两份证书文件。网宿CDN节点作为服务端,根据客户端发送的Client Hello中的信息,判断客户端是否支持ECC证书;若支持则返回ECC证书,若不支持则返回RSA证书,并使用相对应的非对称加解密算法完成剩余的握手过程。

该方案可以在保障客户端支持的情况下,提供了对 RSA/ECC 双证书的支持。它的实现既能够为大多数的浏览器提供更快、更安全的体验;与之同时,也能够保障老旧的浏览器可以获取RSA证书,具有较好的兼容性。

测试结果显示,客户在部署网宿证书优选方案之后,双证书时的SSL握手性能比只用RSA单证书的情况提升了30% 。

如果你想要获得最优的用户体验,那么改善每一毫秒都是至关重要的。

证书优选方案,使HTTPS性能更上一个台阶,除此之外,网宿还通过HSTS协议优化、部署HTTPS加速专用硬件等手段,为客户进一步优化HTTPS访问性能。

本文由新知号发布,如有版权问题请联系我们进行处理。
联系方式:system@shangyexinzhi.com
2000+知识点 7000+案例
商业新知助力数字化转型
下载