一.SSL延迟
互联网迅猛发展的背后隐藏着许多安全隐患,对此,各种加密技术应运而生。SSL(Secure Socket Layer安全套接层)协议便是一种广泛应用于保障互联网交易安全的加密通讯协议。在SSL加密通道内对HTTP进行封装,成为HTTPS,大大提高了数据传输过程中的信息安全性。如今,大量的线上交易业务,如电子商务、股票、证券交易等都采用SSL加密技术来保证敏感数据传输的安全性。
然而,随着SSL通信量规模的日益庞大,其弊端也日益显现,其首要便是SSL延迟。在HTTPS中,完成TCP握手协议后还需完成SSL握手,因此,HTTPS比HTTP耗时;同时,握手之后,服务器须使用额外的处理能力来对传输的数据进行加密和解密,于是SSL的联机加密运算不可避免会消耗服务器的处理性能,直观地说,一台服务器启用SSL加密之后,其性能往往只达到原来的20%,其余80%的计算性能都消耗在了SSL的加密运算方面。尽管TLS1.3(SSL协议的标准化版本)的发布使得系统在进行握手时只需进行一次往返,减少了耗时,并在其他方面进一步提高了性能,但在更高流量的情况下,SSL/TLS仍旧可能会增加延迟。
二.SSL卸载
SSL卸载技术解决了上述问题:通过将HTTPS应用访问过程中的SSL加密解密过程转移到特定的集成电路(ASIC)处理器上,在满足高并发访问需求的同时,为程序或网站释放出处理能力,从而减少服务器端的性能压力,最终提升客户端的访问响应速度。
这一过程有时也称为负载均衡。
但由于SSL对应用层数据进行了加密,使得负载均衡器这样的设备无法提取用户会话中的cookies、URL、路径等信息。因此,通过SSL卸载技术,一方面全面卸除了系统负荷,另一方面也将SSL加密后的数据融入处理器。
三.SSL卸载的工作原理
1.SSL终结
使用SSL卸载功能的应用交付设备充当负载均衡器的角色。
将专用的SSL应用交付设备(采用专用的SSL卸载硬件芯片)置于网络服务器的前端,把所有传入的客户端请求引导到服务器,在服务器之间平衡或分配客户端的负载,使客户端只需要和SSL应用交付设备交互即可。这样,任何服务器的承载能力都不会过载;同时,客户端发起的HTTPS连接,经过SSL应用交付设备处理后,变成明文的HTTP数据,即可被WEB服务程序(例如IIS、APACHE)直接读取,无需特殊的驱动程序来传送和接受网络数据,从而提高服务器性能。
这一过程中,当客户端尝试连接到网站时,首先会连接到SSL应用交付设备——该连接是HTTPS;而交付设备和应用服务器之间的连接是HTTP。其中,SSL应用交付设备充当了SSL终结器的角色,因此这一过程又称为SSL终结。
2. SSL桥接
除了通过HTTP发送流量和请求外,SSL桥接在概念上与SSL终结非常相似,它会在将所有内容发送到应用程序服务器之前,进行重新加密。
四.SSL卸载的好处
1.提高服务器性能:通过卸载应用服务器上额外的SSL加密解密任务,使服务器专注于它们的主要功能,降低服务器负荷。
2.降低管理员操作复杂性:无需管理和配置多个服务器的证书,只需要在前端交付设备上实现即可。
3.根据使用的SSL应用交付设备(负载均衡器)的不同,它还可以帮助进行HTTPS检查、反向代理、cookie持久性、流量管理等等:在某些情况下,SSL卸载可以帮助进行流量检查。与加密一样重要的是,它有一个主要缺点:公鸡者可以隐藏在加密流量中。由于这一点,出现了很多引人注目的漏洞,比如,Magecart就使用HTTPS流量来混淆从各种支付页面中窃取的PCI。
因此,一旦你的组织达到一定的规模,检查HTTPS流量就很有必要了。而实现这一点的最好方法之一就是进行SSL卸载处理,无论是SSL终结还是SSL桥接,都允许你执行流量检查,在处理高并发流量时可以提供极大的帮助。
五.是否使用SSL卸载?
坦率地说,这一切都取决于您网站类型及流量。
像ESPN或CNN这样大型的媒体网站应当非常适合使用负载均衡器,因为它们都能处理大量的流量;另一方面,如果你只是为当地一家面包店运营一个网站,那么让你的服务器去处理所有的事情就可以了——尤其是TLS 1.3进行了改进的情况下。