JavaFX应用程序 - 需要签名的内容?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaFX应用程序 - 需要签名的内容?相关的知识,希望对你有一定的参考价值。

我正在部署JavaFX应用程序,但我不太确定需要签署什么和不需要签名。这是我的想法:

- 安装文件:显然需要签名。

- 启动应用程序的EXE:我认为这需要签名,虽然感觉有点好笑,因为它不是我的代码。

- 我的JAR文件:我相信这些也需要签名,但我不确定如果不这样做会发生什么可怕的事情。

- 我从互联网上抓起的图书馆JAR:我不觉得我应该签署这些。有什么理由吗?

- Java运行时:我猜我没有理由签署这个,如果我这样做,我可能会违反某些协议。

- JNLP文件:不使用此,没理由触及此。

我看得出来了吗?我签署了正确的文件吗?

答案

我的一个朋友说“这不是你做的......这是你在法庭上可以证明的。”

在这方面,我建议你从法律的角度来看待这个问题,并假设它可以适用的最坏情况;即,在有人篡改您的软件后,您将在法律上承担责任。

数字签名专门针对这些类型的问题而设计。

在这方面,让我们将您的答案分成两个不同的分类部分:

  1. 您正在发布的软件 - 包括您的jar,jnlp,捆绑的.exes等。 所有这些必须被烧焦,以确保您不会受到任何未经授权的自己的代码调节的影响。你是否已经发布了jnlp并不重要。如果某人生成了一个入侵者,并且它会追溯到您,那么您未能验证自己发布的该jnlp版本将无法正常运行。
  2. 其他人发布的软件。 - 包括您正在使用的所有内容,以使您的系统正常工作。 (jre,libs) 当使用这样的东西时,最好确保你使用lib制造商发布的任何软件的真实副本。使用他们的校验和/签名/等。根据需要验证和验证其软件完整性。您必须阅读他们的责任和免责声明,如果他们没有自己提供。 一般来说,当涉及到除您自己以外的软件来源时,尽可能少地信任是一个好主意。不幸的是,存在许多受损或恶意的库,这些库实际上存在安全风险。 确保您发布经过外部发行人认证的下载的lib并且因此不对其中检测到的任何恶意代码负责,这始终是一个好主意。

要回答你的问题......这实际上取决于客户端点以及你因为他们提供安全风险而被起诉的可能性(我建议你总是期望这是100%)。如果您要承担赔偿责任......您需要相应地处理。

简而言之......这个问题的最佳答案是尽可能地在发生最坏情况时掩盖自己。

另一答案

您的应用程序是否需要提升权限如果安装程序以Windows为目标,您希望将应用程序安装到Program Files,则需要对安装程序进行签名。没有它,Windows将在权限升级请求期间提供黄色横幅。

所以 - 签署安装程序。

理想情况下,启动应用程序的exe也应该签名。但对于Java应用程序,这可能是一个静音点。签署exe很容易,我只会这样做。

Sign launcher exe - 可选,但我会这样做

Jar文件。这是一个有趣的,取决于你的目标是什么。即,操作系统和最终用户可能不会意识到您的Jar的签名或未签名的性质。因此,您可能需要自己验证jar的完整性。请参阅https://docs.oracle.com/javase/tutorial/deployment/jar/signindex.html也许启动器应用程序可以在启动步骤之前执行完整性检查?

库jar,与上面的情况类似,如果你想确保没有人将diff jar放入你的应用程序或某些这样的用例中,你需要自己验证。

Java运行时如果您发货,这是否已由Oracle或您的JVM供应商签署?

以上是关于JavaFX应用程序 - 需要签名的内容?的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 JavaFX 中将自签名证书添加到我的 WebEngine 以连接到 https Web 服务器吗?

JavaFx TableView 内容在混淆后消失

JavaFX 项目的有效 JAR 签名

使用 javafx 从 webview 获取内容

使用 JavaFX 缩放窗口时自动将程序内容居中

在 Java 程序中调用 JavaFX 并等待等待退出,然后再运行更多代码