【问题标题】:Implementing SSL between JAVA GUI & C++ Server在 JAVA GUI 和 C++ 服务器之间实现 SSL
【发布时间】:2013-04-09 07:44:00
【问题描述】:

我有一个用 JAVA 设计并充当客户端的 GUI,并且可以与用 C/C++ 编写的服务器进行远程通信。它们之间的通信是通过套接字进行的。但是,发送的消息没有加密,容易受到中间人攻击。我想知道保护通信的最佳解决方案是什么,并想实施 SSL。是否可以这样做,如果可以,我应该研究什么工具包。

【问题讨论】:

  • @MM:他说的是Java客户端,OpenSSL在这种情况下是没有用的!
  • @GyroGearless:OpenSSL 是一个工具包,具有许多功能,例如加密/解密。怎么会忍不住?只需在一侧加密并在另一侧解密。
  • @MM:OpenSSL 是一个很好的工具包,但我不知道有一种简单的方法(JNI 绑定?)可以将它集成到 Java 应用程序中。也许没有必要这样做,因为 Java 已经“内置”了 SSL
  • @GyroGearless:记住另一面是 C/C++,我建议双方都使用单一解决方案。

标签: java c ssl client-server communication


【解决方案1】:

Java 包含一个名为 JSSE 的 SSL 实现。请参阅 javax.net.ssl 包的 Javadoc。还有一个教程,JDK附带了几个例子。

【讨论】:

    【解决方案2】:

    您甚至可能根本不需要修改服务器。你可以在它前面贴上stunnel

    警告:使用 TLS/SSL,您可能需要报告或记录一大堆额外的错误情况,尤其是关于证书(错误、过期、由于网络/DNS 问题而无法验证)

    【讨论】:

    • 在客户端实现 JSSE。在服务器上,您仅将 C++ 应用程序绑定到 127.0.0.1 上的本地端口。将 stunnel 绑定到公共网络接口,它解密传入的 SSL 并将其转发到未修改但无法访问的 C++ 服务器应用程序。
    猜你喜欢
    • 2019-04-15
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多