使用 JNLP 启动的 Java 应用程序中的安全漏洞

时间:2021-01-17 18:23:56

标签: java security ssl ssl-certificate jnlp

我正在尝试使用 JNLP 文件启动 Java 应用程序“Java-app”。

场景:

  1. 此 Java 应用程序与运行在 同一台机器或不同的机器,让我们说这台机器作为 “机器-A”。
  2. Java-app 连接“X”以验证用户名和密码。
  3. 请注意,“Java-app”和“X”之间的连接是使用自签名或 CA 证书加密的。

安全漏洞

我在以下用例中面临安全漏洞:

如果来自同一 Intranet 中另一台机器的黑客“Machine-B”(与“Java-app”或服务器“X”无关)尝试使用虚拟 X509 证书嗅探它们之间的流量,然后黑客可以通过伪装成虚拟服务器来查看Java-app和“X”之间共享的密码。

已知但不可行的解决方法:

我认为这个问题是因为在连接到服务器“X”时,Java-app 没有实现正确的证书验证。当前逻辑只是验证 X509 证书是否有效。就这样。这将适用于黑客证书。 可能的修复:如果有效证书已经存储在“Machine=A”的密钥库中,那么当 Java-app 与服务器“X”连接时,它可以根据密钥库中的证书验证连接。但是由于向后兼容性问题,这对我来说是不可行的。

那么有没有办法在使用 JNLP 启动 Java 应用程序时执行此证书验证。

更新

我找到了这个链接:https://docs.oracle.com/javase/8/docs/technotes/guides/javaws/developersguide/development.html 在“如果应用程序被编写为在安全沙箱中运行,它必须遵循以下限制:”它提到“网络连接仅启用到下载 JAR 文件的主机。”...这是否意味着如果其他主机可以使用网络连接,那么可能会出现此安全问题?

0 个答案:

没有答案