【问题标题】:What SSL cipher suite has the least overhead?什么 SSL 密码套件的开销最小?
【发布时间】:2016-04-21 12:10:14
【问题描述】:

SSL cipher suite 的开销最小是什么?一个明显受损的套件将是不可取的,但是存在年龄程度的问题。例如,RC4 仍在 SSL 3.0 规范中。对于一个高流量的网站有什么好的建议?如果不用于 http,密码套件会改变吗?

【问题讨论】:

  • 如果这不是一个通用问题,您应该检查您的服务器,如果使用的 CPU 已经包含用于加速对称加密操作的加密扩展(例如 AES)。另请参阅en.wikipedia.org/wiki/AES_instruction_set 此外,您的软件已经过编译,以便使用这些功能。

标签: performance security ssl cryptography


【解决方案1】:

这取决于您谈论的是网络开销还是 CPU 开销。

网络开销与数据包大小有关。最初的握手意味着一些非对称密码学; DHE 密码套件(当服务器证书仅用于数字签名时)暗示ServerKeyExchange 消息,与 RSA 密钥交换相比,它需要几百个额外的字节。这是一次性成本,客户端将重用会话(使用仅对称的缩短密钥交换继续之前的 TLS 会话)。

此外,数据通过“记录”进行交换。一条记录最多可以嵌入 16 kB 的数据。记录的大小开销范围从 21 字节(使用 RC4 和 MD5)到 57 字节(使用 16 字节分组密码,例如 AES、SHA-1 和 TLS 1.1 或更高版本)。所以最坏的情况是 0.34% 的大小开销。

SSL 的 CPU 开销现在非常小。使用openssl speed 获取一些原始数据;在我的 PC(两年前的 2.4 GHz Core2)上,RC4 似乎比 AES 快两倍,但 AES 已经达到 160 MBytes/s,即比 100baseT 以太网传输速度快 16 倍。完整性检查(使用 MD5 或 SHA-1)将比加密快得多。因此,CPU 开销最少的密码套件应该是SSL_RSA_WITH_RC4_128_MD5,但它需要一些相当特殊的设置才能真正注意到与TLS_RSA_WITH_AES_128_CBC_SHA 的区别。此外,在一些较新的 Intel 处理器上,有AES-specific instructions,这将使这些系统上的 AES 比 RC4 更快(VIA C7 x86 克隆还为某些加密算法提供了一些硬件加速)。 RC4 可能会在某些极端情况下为您提供额外的优势,因为它的代码非常小——以防您的应用程序的代码量很大并且您遇到 L1 缓存问题。

(像往常一样,对于性能问题,实际测量总是优于理论。)

【讨论】:

  • 虽然密码套件没有定义,但值得补充的是,您的 RSA 密钥的大小会严重影响设置新会话的 CPU 开销。
【解决方案2】:

开销较小的密码套件是 RSA_WITH_RC4_MD5。请注意,在 TLS 中使用 RC4 的方式不会破坏它,例如在 WEP 中,但它的安全性仍然值得怀疑。它还使用 HMAC-MD5,这也不是最佳选择,尽管目前还没有已知的攻击。一些网站(不幸的是)仅使用该密码套件来提高效率。如果您使用带有 AES-NI 指令的英特尔服务器,您可能需要尝试使用 RSA_WITH_AES_128_SHA1。在我测试过的系统中,它比 RSA_WITH_RC4_MD5 快。

【讨论】:

【解决方案3】:

我在搜索 SSL/TLS 时遇到了这个。我知道这个帖子很旧,只是想添加一些更新,以防有人在这里迷路。

一些密码提供更高的安全性和更高的性能。但自从发布此消息以来,对 SSL/TLS 进行了一些更改,尤其是在安全性方面。

对于良好且始终更新的密码,请查看this SSL/TLS generator by Mozilla

还值得注意的是,如果您关心性能,您可以探索 SSL 连接的其他方面,例如:

  1. OCSP 装订
  2. 会话恢复(票证)
  3. 会话恢复(缓存)
  4. 错误开始(需要 NPN)
  5. HTTP/2

【讨论】:

    【解决方案4】:

    SSL 中的 RC4 不再被认为是安全的。

    http://www.isg.rhul.ac.uk/tls/ 详细介绍了使用 RC4 对 SSL 进行成功的实际攻击(尽管仍然不是非常有效)。

    【讨论】:

    • 这应该是对“RC4”答案的评论。
    猜你喜欢
    • 1970-01-01
    • 2011-10-23
    • 2015-08-11
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 2012-03-18
    相关资源
    最近更新 更多