为SSL套接字启用哪些密码套件?

为SSL套接字启用哪些密码套件?

我使用Java的SSLSocket来保护客户端和服务器程序之间的通信。服务器程序还为来自Web浏览器的HTTPS请求提供服务。

根据“用Java开始密码学“,第371页,你应该一直打电话setEnabledCipherSuites你的SSLSocketSSLServerSocket以确保以协商结束的密码套件对于您的目的来说是足够强大的。

话虽如此,给我的电话SSLSocketFactorygetDefaultCipherSuites方法得到一些180各种选择。这些选项范围从TLS_RSA_WITH_AES_256_CBC_SHA(我认为这是相当安全的)SSL_RSA_WITH_RC4_128_MD5(考虑到MD5的当前状态,不太确定这是否安全)SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA(不完全确定这做了什么)。

限制套接字的密码套件的合理列表是什么?

注意,客户端和服务器可以访问弹跳城堡服务提供程序,以及它们是否安装了无限的加密策略文件。


白衣染霜花
浏览 1327回答 3
3回答

料青山看我应如是

不要使用任何出口的东西。这是由于对强密码技术的出口限制造成的。编辑:更改为使用2009年文档。a 2009年NIST建议列出以下内容,包括TLS_RSA_WITE_AES_256_CBC_SHA(您提到过):TLS_RSA_WITH_NULL_SHA(除非您确信不需要任何隐私/机密性,否则不要使用此选项)。TLS_RSA_WITH_3DES_EDE_CBC_SHA TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA TLS_DH_DSS_WITH_AES_128_CBC_SHA TLS_DH_RSA_WITH_AES_128_CBC_SHA TLS_DHE_DSS_WITH_AES_128_CBC_SHA TLS_DHE_RSA_WITH_AES_128_CBC_SHA TLS_DH_DSS_WITH_AES_256_CBC_SHA TLS_DH_RSA_WITH_AES_256_CBC_SHA TLS_DHE_DSS_WITH_AES_256_CBC_SHA TLS_DHE_RSA_WITH_AES_256_CBC_SHA TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA TLS_ECDH_RSA_WITH_AES_128_CBC_SHA TLS_ECDH_RSA_WITH_AES_256_CBC_SHA TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS_PSK_WITH_3DES_EDE_CBC_SHA TLS_PSK_WITH_AES_128_CBC_SHA TLS_PSK_WITH_AES_256_CBC_SHA TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA TLS_DHE_PSK_WITH_AES_128_CBC_SHA TLS_DHE_PSK_WITH_AES_256_CBC_SHA TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA TLS_RSA_PSK_WITH_AES_128_CBC_SHA TLS_RSA_PSK_WITH_AES_256_CBC_SHA TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256  TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384  TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256  TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384

至尊宝的传说

在我的代码中,我看不出该在哪里调用Bouny城堡提供者.”,我进口了import org.bouncycastle.jce.provider.BouncyCastleProvider;在我的类文件中,在项目中使用JAR,在构建自定义之前sslContext包括这一行Security.addProvider(new BouncyCastleProvider());这帮助我获得了所需的密码,但排除不必要的密码,以上是很好的解释/例子!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java