网络信息安全已经成为电子商务和网络信息业发展的一个瓶颈,安全套接层(SSL)协议能较好地解决安全处理问题,而SSL加速器有效地提高了网络安全处理的性能。
SSL已经普及于各种互联网服务,它给应用带来了极高的安全性,但同时给服务器带来了极大的运算压力。
SSL加速器可以使用现成的CPU,但大多数是使用ASIC和RISC板卡来完成最艰难的计算工作。
SSL加速卡可以完全卸载服务器的SSL运算负担,降低数据服务的运营成本。
没有有使用SSL加速卡之前,服务器的CPU资源大量消耗在处理SSL加解密的工作中,无法兼顾处理其他应用程序,企业只能不断的购置更多的服务器来分担这些负荷,如果得不到解决将会严重影响服务的访问速度和服务的质量,用户将会流失。通过简单的安装Next SSL加速卡,可以把SSL运算完全转移到SSL加速卡上,服务器的CPU可以完全专注的处理主要业务。
据说,Netscape公司当年设计SSL协议的时候,有人提过,将互联网所有链接都变成HTTPs开头的加密链接。
这个建议没有得到采纳,原因之一是HTTPs链接比不加密的HTTP链接慢很多。(另一个原因好像是,HTTPs链接默认不能缓存。)
自从我知道这个掌故以后,脑袋中就有一个观念:HTTPs链接很慢。但是,它到底有多慢,我并没有一个精确的概念。直到今天我从一篇文章中,学到了测量HTTPs链接耗时的方法。
首先我解释一下,为什么HTTPs链接比较慢。
HTTPs链接和HTTP链接都建立在TCP协议之上。HTTP链接比较单纯,使用三个握手数据包建立连接之后,就可以发送内容数据了。
上图中,客户端首先发送SYN数据包,然后服务器发送SYN+ACK数据包,最后客户端发送ACK数据包,接下来就可以发送内容了。这三个数据包的发送过程,叫做TCP握手。
再来看HTTPs链接,它也采用TCP协议发送数据,所以它也需要上面的这三步握手过程。而且,在这三步结束以后,它还有一个SSL握手。
总结一下,就是下面这两个式子。
- HTTP耗时 = TCP握手
- HTTPs耗时 = TCP握手 + SSL握手
所以,HTTPs肯定比HTTP耗时,这就叫SSL延迟。
命令行工具 curl 有一个w参数,可以用来测量TCP握手和SSL握手的具体耗时,以访问支付宝为例。
$ curl -w "TCP handshake: %{time_connect}, SSL handshake: %{time_appconnect}/n" -so /dev/null https://www.alipay.com TCP handshake: 0.022, SSL handshake: 0.064
上面命令中的w参数表示指定输出格式,time_connect变量表示TCP握手的耗时,time_appconnect变量表示SSL握手的耗时(更多变量请查看文档和实例),s参数和o参数用来关闭标准输出。
从运行结果可以看到,SSL握手的耗时(64毫秒)大概是TCP握手(22毫秒)的三倍。也就是说,在建立连接的阶段,HTTPs链接比HTTP链接要长3倍的时间,具体数字取决于CPU的快慢和网络状况。
所以,如果是对安全性要求不高的场合,为了提高网页性能,建议不要采用保密强度很高的数字证书。一般场合下,1024位的证书已经足够了,2048位和4096位的证书将进一步延长SSL握手的耗时。
: » ssl加速原理
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/252556.html