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

roo*_*ook 11 security performance ssl cryptography

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

Tho*_*nin 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特定指令,这些指令会使AES在这些系统上比RC4更快(VIA C7 x86克隆也为某些加密算法提供了一些硬件加速).由于代码非常小,RC4可能会在某些极端情况下为您提供额外的优势 - 如果您的应用程序在代码大小上相当沉重并且遇到L1缓存问题.

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