我们的Java应用程序公开了许多不同的接口(SMTP,FTP,HTTP),由SSL/TLS保护.现在的目标是限制这些接口上允许的密码套件仅包括"强"密码套件.我已经有了一个列表,很清楚如何使它适用于特定的套接字
socket.setEnabledCipherSuites(ENABLED_SECURE_CIPHER_SUITES);
Run Code Online (Sandbox Code Playgroud)
或者用于Tomcat连接器
<Connector port="443" ciphers="..."/>
Run Code Online (Sandbox Code Playgroud)
问题是应用程序中已有5个位置我应该手动应用此限制.常见的SocketFactory似乎没有帮助,因为向第三方API或框架提供自定义SocketFactory并不总是可行的.是否有可能以某种方式在JRE级别上引入此限制,例如使用JCE提供程序配置或策略文件?
JRE:Oracle JRE 1.7.0_17
Jk1*_*Jk1 10
好吧,我设法让它工作.感谢EJP指向正确的方向.从Java 1.7开始,$ JRE_HOME/lib/security/java.security中还有两个附加属性:
jdk.certpath.disabledAlgorithms=MD2
Run Code Online (Sandbox Code Playgroud)
控制认证路径构建和验证的算法.
jdk.tls.disabledAlgorithms=MD5, SHA1, RC4, RSA keySize < 1024
Run Code Online (Sandbox Code Playgroud)
我正在寻找的一个JVM范围的SSL/TLS处理算法限制.符号在这里很明显; 可以禁止某些算法或限制密钥大小.Oracle JRE 7,Open JRE 7和(令人惊讶的)IBM Java v7都支持这两个属性
| 归档时间: |
|
| 查看次数: |
14249 次 |
| 最近记录: |