什么SSL密码套件的开销最小?

时间:2011-05-02 02:01:08

标签: performance security ssl cryptography

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

,它会改变吗?

4 个答案:

答案 0 :(得分:20)

这取决于您是否谈论网络或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的区别。此外,在一些较新的英特尔处理器上,有AES-specific instructions,这将使AES在这些系统上比RC4更快(VIA C7 x86克隆也为某些加密算法提供了一些硬件加速)。由于代码非常小,RC4可能会在某些极端情况下为您提供额外的优势 - 如果您的应用程序在代码大小上相当沉重并且遇到L1缓存问题。

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

答案 1 :(得分:4)

开销较小的密码组是RSA_WITH_RC4_MD5。请注意,在TLS中使用RC4的方式不会使其破坏,例如在WEP中,但仍然可以质疑其安全性。它也使用HMAC-MD5,它也不是最好的选择,即使还没有已知的攻击。不幸的是,有几个网站只使用该密码套件来提高效率。如果您使用带有AES-NI指令的intel服务器,您可能需要尝试使用RSA_WITH_AES_128_SHA1。在我测试过的系统中,它比RSA_WITH_RC4_MD5快。

答案 2 :(得分:2)

I was searching about SSL/TLS and bumped into this one. I know the thread is old and just wanted to add a few updates just in case someone gets lost here.

Some ciphers offer more security and some more performance. But since this was posted, several changes to SSL/TLS, most specially on security has been introduced.

For good and always updated ciphers check out this SSL/TLS generator by Mozilla

It is also worth to note that if you are concern with performance, there are other aspects in the SSL connection that you could explore such as:

  1. OCSP stapling
  2. Session resumption (tickets)
  3. Session resumption (caching)
  4. False Start (NPN needed)
  5. HTTP/2

答案 3 :(得分:1)

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

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