![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
安全套接字层性能技巧
使用此页面来了解安全套接字层 (SSL) 性能技巧。性能问题通常涉及功能和速度之间的平衡,一定要加以考虑。通常,涉及的功能和处理越多,那么性能越差。
- 握手
- 批加密和批解密
建立 SSL 连接时,将进行 SSL 握手。建立连接后,SSL 将为每次读/写操作执行批量加密和批量解密。SSL 握手的性能成本比批加密和批解密的性能成本高得多。
要增强 SSL 性能,请减少个别 SSL 连接和握手的数量。
减少连接数会提高通过 SSL 连接的安全通信的性能,以及通过简单传输控制协议/因特网协议 (TCP/IP) 连接的非安全通信的性能。减少个别 SSL 连接的一种方法是使用支持 HTTP 1.1 的浏览器。如果您无法升级到 HTTP 1.1,那么减少个别 SSL 连接有可能是无法实现的。
- 验证最大保持活动数是否至少与 Web 服务器的每个线程的最大请求数(或 UNIX 上 IBM® HTTP
Server 的最大进程数)一样大。确保 Web 服务器插件能够为每个与应用程序服务器的可能并发连接获取一个活动连接。否则,应用程序服务器在处理单个请求后会关闭连接。此外,Web 容器线程池中的最大线程数应大于最大保持活动数,以防止活动连接使用 Web 容器线程。注: 不推荐使用 HTTP 传输。有关如何为基于通道的配置设置最大保持活动值的指示信息,请参阅HTTP 传输通道设置。
- 增加每个活动连接的最大请求数。缺省值是 100,这意味着应用程序服务器在 100 次请求后会关闭来自插件的连接。然后,该插件必须打开新连接。此参数的目的是防止连接到应用程序服务器时发生拒绝服务攻击,并防止连续发送请求占用应用程序服务器中的线程。
- 如果系统执行几次 SSL 握手,那么使用硬件加速键。
WebSphere Application Server 当前支持的硬件加速器将提高 SSL 握手性能,但无法提高批量加密和批量解密性能。因为 Web 服务器连接的生存时间短,所以加速器通常有益于 Web 服务器。WebSphere Application Server 中的所有其他 SSL 连接均是长生命周期。
不支持 IBM 加密协处理器与 WebSphere Application Server 配合使用。 但是,您可以使用 IBM 加密协处理器来改进其他产品的 SSL 性能,例如 IBM HTTP Server for iSeries(通过 Apache 功能加强)。
- 使用具有更佳性能的备用密码套件。
密码套件的性能在软件和硬件中是有区别的。仅因为密码套件在软件中的性能较好,并不意味着它在硬件中的性能也会较好。某些算法在硬件中通常无效(例如数据加密标准 (DES) 和三重 DES (3DES)),然而,专用硬件可以提供这些相同算法的有效实现。
用于单个 SSL 连接的密码套件会影响批量加密和批量解密的性能。以下图表显示每个密码套件的性能。计算数据的测试软件是客户机和服务器软件的 Java™ 安全套接字扩展 (JSSE),它不使用加密硬件支持。测试不包括建立连接的时间,而仅包括通过已建立的连接传输数据的时间。因而,对于长时间运行的连接,数据将显示各种密码套件的相关 SSL 性能。
在建立连接前,客户机会为每个测试用例启用单个密码套件。在建立连接后,客户机会计算将整数写到服务器所用的时间,和服务器将指定的字节数写回到客户机所用的时间。验证数据量不会影响密码套件的相关性能。
- 批量加密性能仅受密码套件名中跟在 WITH 后面的内容的影响,这是因为 WITH 前面的部分用于标识仅在 SSL 握手期间使用的算法。
- MD5 和安全散列算法 SHA 是用于提供数据完整性的两种散列算法。MD5 通常比 SHA 快,但是 SHA 比 MD5 安全。
- DES 和 RC2 比 RC4 慢。三重 DES 最安全,但是在仅使用软件时,性能成本较高。
- 在提供最佳性能的同时还提供隐私保护的密码套件是 SSL_RSA_WITH_RC4_128_MD5。即使 SSL_RSA_EXPORT_WITH_RC4_40_MD5 在密码强度方面比 RSA_WITH_RC4_128_MD5 弱,但批量加密的性能相同。因此,只要 SSL 连接是长时间运行的连接,那么高安全级别和中等安全级别的性能差异可忽略不计。建议您对参与只在 WebSphere Application Server 中通信的所有组件使用高级别的安全性,不要使用中级别的安全性。确保连接是长期运行连接。