第 4 章 配置 HTTPS Cipher Suites
摘要
本章介绍了如何指定客户端和服务器可用的密码套件列表,以建立 HTTPS 连接。在安全握手期间,客户端选择与服务器可用的其中一个密码套件匹配的加密套件。
4.1. 支持的 Cipher Suites
概述
密码套件 是安全算法的集合,它决定了如何实施 SSL/TLS 连接。
例如,SSL/TLS 协议要求使用消息摘要算法签名的消息。但是,选择摘要算法由用于连接的特定密码套件决定。通常,应用程序可选择 MD5 或 SHA 摘要算法。
Apache CXF 中可用于 SSL/TLS 安全性的密码套件取决于端点上指定的 JSSE 供应商。
JCE/JSSE 和安全供应商
Java Cryptography Extenss(JCE)和 Java 安全套接字扩展(JSSE)组成了一个可插拔框架,允许您将 Java 安全实施替换为任意第三方工具包(称为 安全供应商 )。
SunJSSE 供应商
在实践中,只有 SUN 的 JSSE 提供商名为 SunJSSE
,对 Apache CXF 的安全功能进行了测试。
因此,Apache CXF 中的 SSL/TLS 实现和 Apache CXF 中的可用密码套件列表有效由 SUN 的 JSSE 供应商中提供的。
SunJSSE 支持的密码套件
J2SE 1.5.0 Java 开发套件中的 SUN 的 JSSE 供应商支持以下密码套件(请参阅 SUN 的 JSSE 参考指南 的附录 A ):
标准密码:
SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA SSL_DHE_DSS_WITH_DES_CBC_SHA SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA SSL_DHE_RSA_WITH_DES_CBC_SHA SSL_RSA_EXPORT_WITH_DES40_CBC_SHA SSL_RSA_EXPORT_WITH_RC4_40_MD5 SSL_RSA_WITH_3DES_EDE_CBC_SHA SSL_RSA_WITH_DES_CBC_SHA SSL_RSA_WITH_RC4_128_MD5 SSL_RSA_WITH_RC4_128_SHA TLS_DHE_DSS_WITH_AES_128_CBC_SHA TLS_DHE_DSS_WITH_AES_256_CBC_SHA TLS_DHE_RSA_WITH_AES_128_CBC_SHA TLS_DHE_RSA_WITH_AES_256_CBC_SHA TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA TLS_KRB5_EXPORT_WITH_RC4_40_MD5 TLS_KRB5_EXPORT_WITH_RC4_40_SHA TLS_KRB5_WITH_3DES_EDE_CBC_MD5 TLS_KRB5_WITH_3DES_EDE_CBC_SHA TLS_KRB5_WITH_DES_CBC_MD5 TLS_KRB5_WITH_DES_CBC_SHA TLS_KRB5_WITH_RC4_128_MD5 TLS_KRB5_WITH_RC4_128_SHA TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA
null 加密,仅限完整性的密码:
SSL_RSA_WITH_NULL_MD5 SSL_RSA_WITH_NULL_SHA
匿名 Diffie-Hellman 密码(无身份验证):
SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA SSL_DH_anon_EXPORT_WITH_RC4_40_MD5 SSL_DH_anon_WITH_3DES_EDE_CBC_SHA SSL_DH_anon_WITH_DES_CBC_SHA SSL_DH_anon_WITH_RC4_128_MD5 TLS_DH_anon_WITH_AES_128_CBC_SHA TLS_DH_anon_WITH_AES_256_CBC_SHA
JSSE 参考指南
有关 SUN 的 JSSE 框架的更多信息,请参阅 JSSE 参考指南,访问以下位置:
http://download.oracle.com/javase/1.5.0/docs/guide/security/jsse/JSSERefGuide.html