【问题标题】:SSL Speed: 128 vs 256 bitSSL 速度:128 与 256 位
【发布时间】:2009-08-01 11:34:41
【问题描述】:

我决定使用 SSL 对我的整个网站进行加密,即使实际上只需要其中的一部分。最终结果是该网站现在有点慢。所以,我的问题是:

  1. 我是否应该只加密网站的会员部分(请注意我的首页确实有登录表单)?
  2. 我是否应该将加密降低到 128 位?

如果站点通常较小,速度差异是否显着?

【问题讨论】:

    标签: security ssl performance


    【解决方案1】:

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

    1. 服务器负载。您将通过加密所有流量来增加服务器的 CPU 工作负载。但是,尤其是在现代硬件上,这不会导致非常明显的差异,除非是非常高流量的网站。

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

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

      一个。使用 2048 位 RSA 私钥。这是当前推荐的大小,作为安全性和速度之间的权衡。较大的密钥将花费更长的时间在客户端和服务器之间传输,并且会稍微占用更多 CPU。 (见openssl speed rsa2048 rsa4096。)

      b.确保您使用的是 HTTP keepalive 和 SSL 会话恢复。 HTTP keepalive 将允许客户端针对多个请求重用与服务器的现有连接,从而避免再次建立连接的需要。 SSL 会话恢复让客户端和服务器使用之前商定的 SSL 参数更快地启动新会话,从而减少新请求所需的往返数据包数量。

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

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

    良好的基准测试工具可能取决于您的平台。如果你在linux上,你可以试试apache自带的ab命令:http://en.wikipedia.org/wiki/ApacheBench。

    【讨论】:

    • 我会说“和”——而不是“和/或”。如果其中任何一个服务不安全,则可以对其进行修改或读取,从而使整个过程不安全。
    • 好点。我想说自从我写下这个答案以来的四年里,最佳实践已经发生了相当大的变化。将进行编辑以反映这一点。
    • 嘿。我没有注意到它是多久以前的 - 不过感谢您保持最新状态:)
    【解决方案2】:

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

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

    关于性能开销,与 AES-128 相比,使用 AES-256 将设置带宽上限 10-15% lower。我还没有找到任何有关延迟的信息,但预计 AES-128 的性能会显着优于 AES-256。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-23
      • 2011-10-01
      • 1970-01-01
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-03
      相关资源
      最近更新 更多