2

我是任何应用程序的安全部分的新手。我对数字证书有非常基本的了解。我听说像 Applets 和 Java web start 这样的应用程序在客户端计算机上运行并从远程计算机访问其服务需要进行数字签名才能不受任何限制地执行活动。

我有一个尚未签名的 Java Web 启动应用程序,每次用户访问它时都会显示一些安全警告。

以下是我的 Java web start 应用程序的详细信息。

  1. 应用程序使用 Java web-start 技术与运行在 Tomcat7 上的 Servlet 进行通信。
  2. 数据库是 SQL Server 2012。
  3. 服务器机器:Windows 64 位 2008 R2 企业服务器。
  4. Java 7 更新 25 64 位
  5. JWS-app 和 Web-app 所需的所有文件(JNLP、jarfiles)都打包为单个 war 文件并部署到 Tomcat7。

任何人都可以为以下查询提供一些想法:

  1. 在应用程序中签署 jar 文件是避免安全警告的唯一方法吗?
  2. 签署 jar 文件是否收费?有什么方法可以免费给罐子签名吗?
  3. 目前,在Tomcat7上作为JavaEE应用程序运行的服务是由Web启动应用程序通过http连接访问的。对 jar 进行签名后,我是否需要使用 https 而不是 http?
  4. 我发现我需要在 .jnlp 文件中添加以下标签:<security><all-permissions/></security>
  5. 除了上述更改之外,我还需要在 Java 或 xml 文件中做些什么吗?

显示警告

注意:对于通过 Internet 访问应用程序的用户,我们会收到一些连接重置错误。在将 java 版本从 Java5 升级到 Java7 后,我们注意到此错误。阅读一些安全策略已更改的地方,现在通过网络下载未签名的 jar 文件有一些问题。但不完全确定错误是由于升级到 java 版本还是由于应用程序代码的某些更改,因为我们在日志文件中除了连接重置之外没有任何异常。

提前致谢

4

1 回答 1

1

数字签名是使用不受信任的证书生成的。

这说明了。

在应用程序中签署 jar 文件是避免安全警告的唯一方法吗?

罐子显然已经进行了数字签名,但带有未经验证的证书。

签名的应用程序。会有不同的警告(Oracle 已经警告说,将来他们将默认 JVM 根本不运行它们)。

一个应用程序。使用经过验证的证书签名将产生与您当前看到的几乎相同的警告,除了将列出“发布者:”,并且如果用户勾选“始终允许”(显然不再出现在自签名或未签名代码上), JRE 将存储并记住该决定。

签署 jar 文件是否收费?有什么方法可以免费给罐子签名吗?

第二个问题的答案是“你现在花了多少钱?” 第一个答案是“是”。

目前,在Tomcat7上作为JavaEE应用程序运行的服务是由Web启动应用程序通过http连接访问的。对 jar 进行签名后,我是否需要使用 https 而不是 http?

不。

我发现我需要将以下标记添加到 .jnlp 文件中:<security><all-permissions/></security> 除了上述更改之外,我还需要在 Java 或 xml 文件中进行其他操作吗?

我怀疑你需要指定。甚至是沙盒应用程序。可以“打电话回家”到同一台服务器。如果使用受信任的证书进行数字签名,则警告会更温和。


您需要牢记的一件事是,所有这些安全性不是为了方便开发人员,而是为了最终用户的安全(以及用户对插件的信心)。因此,当您试图找到“摆脱它的空间”时,您实际上是在尝试在 JRE 中找到安全漏洞。

如果您确实找到了,请告诉我们,以便我们向 Oracle 提出高优先级错误报告并修复它。

于 2013-10-04T14:44:41.283 回答