Java SSL 重新协商(从 SSL 到清除 channel )

标签 java ssl interop

我正在 Java SE 中做一些需要我以不寻常的方式使用 SSL 的事情。
所需的步骤类似于:

  • 建立 SSL session ;
  • 交换一些私有(private)信息;
  • 重新协商连接参数以停止使用加密操作。

我还没有在 Java API 中找到解决此问题的方法。我相信问题的解决方案可以通过使用 session 重新协商来解决,但是使用没有加密操作的密码套件,但是没有这样的选择;或访问底层套接字并绕过加密操作。

这些选项中的任何一个都是可能的吗?您是否认为其他语言和框架(C、PHP、Ruby、.NET、Perl、Python 等)也可以使用此类功能?

谢谢你的帮助,
路易斯·科斯塔

最佳答案

您可以在 Java 中执行类似的操作,但这绝对不是标准的。我不能保证其他平台对此有必要的支持。

JSSE 通过 SSLEngine 提供对独立于传输的 SSL 的支持。 .您可以使用它来临时“装饰”带有 SSL 的套接字,然后在完成后将其关闭并直接使用原始套接字 IO。

我猜不出您为什么要在协商 SSL session 之后关闭 SSL。如果是为了性能,可以重新协商密码套件使用“NULL”保密性和完整性协议(protocol),只要双方都允许即可。您在 SSL 记录层中仍然会有一些开销。但是,协商 session 参数后 SSL 的开销非常低。如果您的应用程序对此开销非常敏感,您可能需要考虑专用的 SSL 硬件。

关于Java SSL 重新协商(从 SSL 到清除 channel ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/812275/

相关文章:

java - 在 paintComponent 中绘制另一个组件

java - 您必须添加未实现的方法吗?

python - 禁用 SSL 证书检查 Twisted Agents

ssl - 有没有办法获得 https 版本的亚马逊横幅?

.net - 隐藏进程的所有窗口(例如 Internet Explorer)

java - 为什么我在 Flying Saucer 中的柜台上突然出现 NPE?

java - 如何在 Salesforce 中使用带有 WHERE 子句的批量 API

SSL - 安装证书后 CN 无效(获取 CN *.herokuapp.com)

interop - 使用 Microsoft.Office.Interop.Outlook 访问其他 Exchange 邮箱

C# DLLImport 'Complex' 数组返回和参数