SSL速度:128对256位

时间:2009-08-01 11:34:41

标签: security ssl performance

我决定使用SSL加密我的整个网站,即使其中只有部分内容确实是必要的。最终结果是该网站现在有点慢。所以,我的问题是:

  1. 我是否应该只加密网站的会员部分(请记住我在首页上有登录表单)?
  2. 我应该将加密减少到128位吗?
  3. 如果网站通常很小,速度差异是否显着?

2 个答案:

答案 0 :(得分:3)

有几个不同的因素会影响SSL速度。

  1. 服务器负载。您将通过加密所有流量来增加服务器的CPU工作负载。但是,特别是在现代硬件上,除非流量非常高,否则不会产生明显的差异。

  2. 对称加密的密钥大小。我假设你的意思是将加密减少到128位。可能这不是整体速度的重要因素。您可以通过运行例如对openssl进openssl speed aes。您可能会发现AES 256并不比AES 128慢。

  3. SSL握手速度。 SSL握手在客户端和服务器之间引入了几个额外的往返,在普通HTTP中不需要。这意味着特别是在高延迟链接上,在您开始从服务器获取任何数据之前,它会更长。为了缓解这种情况,您可以做一些不同的事情:

    一个。使用2048位RSA私钥。这是目前推荐的尺寸,作为安全性和速度之间的权衡。较大的密钥在客户端和服务器之间传输需要更长的时间,并且将略微增加CPU密集度。 (见openssl speed rsa2048 rsa4096。)

    湾确保您使用HTTP keepalive和SSL会话恢复。 HTTP keepalive将允许客户端重用与服务器的现有连接以进行多个请求,从而无需再次建立连接。 SSL会话恢复使客户端和服务器可以使用他们先前商定的SSL参数来更快地启动新会话,从而减少新请求所需的往返数据包数量。

  4. 当只有部分网页通过SSL提供时,获得正确的保护可能会非常棘手。您肯定希望通过HTTPS提供登录表单和发布的页面。您还应在会话cookie上设置Secure标志,否则与服务器的任何明文通信都将包含cookie并允许窃听者模拟用户的会话。

    但总的来说,考虑到加密所有内容是多么容易,尝试找出需要保护的页面可能不值得。为了获得最佳安全性,您还应确保已设置Web服务器,以便它通过Qualys SSL实验室的SSL Server Test

    良好的基准测试工具可能取决于您的平台。如果您使用的是Linux,则可以尝试使用apache附带的ab命令:http://en.wikipedia.org/wiki/ApacheBench

答案 1 :(得分:0)

hmmmm,在研究MSIE中的性能问题时遇到了这个问题。也许信息在被答复时不可用,但是现在肯定有更好的信息。

一般的经验法则是,对于给定的算法,较大的密钥比较小的密钥更安全。令人惊讶的是它是not true for AES。 (在我写这篇文章时),AES-128比AES-256的安全性更高。

关于性能开销,使用AES-256会使带宽10-15% lower高于AES-128。我尚未找到有关延迟的任何信息,但希望AES-128在此方面明显优于AES-256。