nab*_*lex 12 java windows ssl https
(免责声明:我不是想象力的安全专家,也不是Windows专家)
建立:
理想情况下,我们希望在最后修复此问题,但如有必要,可以向客户提出修复.
客户端服务器必须通过HTTPS连接连接到我们的服务器,但它总是失败,wireshark显示以下对话:
> TLSv1: Client Hello
< TLSv1: Alert (21): Unexpected Message
Run Code Online (Sandbox Code Playgroud)
根据RFC(http://www.ietf.org/rfc/rfc2246.txt),警报(21)指的是解密失败,而且我在wireshark中看到的,客户端提出的密码都不是通过JRE 1.6(按照支持http://docs.oracle.com/javase/6/docs/technotes/guides/security/SunProviders.html#SupportedCipherSuites)在努力重现误差,以便能够检查它更接近,我测试了一些其他软件:
对于我未经训练的眼睛,这强化了这样一种观点,即不兼容的密码命题是Windows仅支持JVM不支持的密码套件的根本原因(对于TLSv1).我已经安装了充气城堡作为java.security文件中的附加提供程序无济于事.我搜索了高低,只找到了一个参考,可能是websphere支持TLSv1的Windows密码,但无法下载独立的提供程序来测试它.我们在JVM上运行的软件不支持JRE 1.7,因此升级不是一个选项(也许安全提供程序可以安全降级?但我还没有找到它的下载)我发现无法添加密码编写c ++代码(我已经玩过上面提到的注册表设置没有效果).
总而言之,我想知道以下事情之一是否会解决它以及如何实现它们:
当然也赞赏任何其他解决方案.
编辑
Java版本是Java version (64 bit): 1.6.0_19-b04.
建议的密码列表是:
安装了无限强度加密策略文件.我试图javax.net.debug=all从控制台设置和启动服务器,没有出现额外的输出.我已经sun.security.ssl.allowUnsafeRenegotiation=true无济于事了.
编辑2
事实证明,我们使用的软件使用HTTP的自定义堆栈而不是默认值.虽然我不确切知道TLS请求的哪一部分触发了错误(看到大多数TLSv1握手确实成功),但是发布了修复程序似乎解决了这个问题.
感谢您的反馈,如果徒劳无功,那将是一件非常有趣的事情.活到老,学到老.
事实证明,我们使用的软件使用自定义 HTTP 堆栈,而不是默认堆栈。已发布修复程序,似乎解决了问题,但我不知道 TLS 请求的哪一部分触发了错误(看来大多数 TLSv1 握手确实成功了)。
感谢您的反馈,这是一次有趣但徒劳的搜索。活到老,学到老。
| 归档时间: |
|
| 查看次数: |
12918 次 |
| 最近记录: |