SSL性能影响

时间:2013-01-29 18:05:01

标签: performance ssl iis-7 login https

  

可能重复:
  How much overhead does SSL impose?

我最近与一位开发人员进行了对话,他告诉我在网站范围内实施SSL会使服务器负载增加300倍。这真的可信吗?我目前在所有页面上都使用SSL,我们每天都有数千名用户访问系统而没有任何明显的延迟。我们使用的是IIS 7服务器。

他的解决方案是仅在登录页面上使用SSL来保护登录凭据的传输。然后将它们重定向回HTTP ...这是一个好习惯吗?

3 个答案:

答案 0 :(得分:2)

HTTPS的代价是握手,无论是CPU(非对称加密操作都更昂贵)还是网络往返(不仅仅是握手本身,还包括检查证书撤销)。在此之后,使用对称加密完成加密,这不应该对现代CPU施加很大的开销。有一些方法可以减少由于握手造成的开销(特别是通过会话恢复,如果支持和配置)。

在许多情况下,将静态内容配置为在客户端也可以缓存是很有用的(请参阅Cache-Control: public)。某些浏览器默认不缓存HTTPS内容。

使用HTTPS时,服务器的CPU负载增加300听起来没有正确配置。

  

他的解决方案是只在登录页面上使用SSL来保护   传输登录凭据。然后将它们重定向回   HTTP ......这是一个好习惯吗?

许多网站都这样做(包括StackOverflow)。这取决于需要多少安全性。如果您这样做,则只会保护凭据。攻击者可以窃听以普通HTTP传递的cookie(或类似的身份验证令牌),并使用它来模拟经过身份验证的用户。

从HTTP切换到HTTPS或其他方式时需要非常小心。例如,一旦传递给普通HTTP,来自登录页面的身份验证令牌应被视为“已泄露”。特别是,您不能假设仍然使用该身份验证令牌的后续HTTPS请求来自合法用户(例如,不允许它编辑“我的帐户”详细信息或类似内容)。

答案 1 :(得分:0)

如果您通过SSL运行所有内容(包括图像),则由于所有内容都必须加密,因此开销要大得多。

与生成网页内容的工作相比,应用SSL的工作量在很大程度上取决于您的网站所做的工作。

我建议在使用和不使用SSL的典型网页上运行负载测试,以查看您在特定环境中的影响。

通过SSL运行所有内容的公司通常会使用appliance来终止SSL连接,以便Web服务器不会承担任务负担。

答案 2 :(得分:0)

他正在弥补。你肯定发现300是一个可疑的数字?请他证明一下。测试和测量。

它肯定会在服务器中加载更多负载,如果你确实遇到问题,大多数可以卸载到硬件加密加速器或前端盒,但根据我的经验,它可以忽略不计。有关详细信息,请参阅here

如果登录页面是您希望传输安全性的站点中唯一的页面,那么他在登录后恢复到HTTP的建议才有意义。情况不太可能如此。

坦率地说,他似乎对这一切都知之甚少。