【问题标题】:Allow a jar to run only if it is signed仅在签名后才允许 jar 运行
【发布时间】:2019-01-02 18:20:38
【问题描述】:

我想配置 jdk,以便如果我要执行 java -jar myjar.jar,那么 myjar 只会在它已被签名(由特定签名者)签名时执行。我找到了this 的答案,但我不确定编辑策略文件是否是解决方案。根据我通过阅读here 的理解,您似乎只能授予/限制应用程序读取/写入某些目标的权限,而不能授予/限制应用程序本身运行的权限。例如,使用策略文件文档中的示例,我可以添加

  grant signedBy "Duke" {
      permission java.io.FilePermission "/tmp/*", "read,write";
  };

允许“Duke”签名的 jar 读取/写入 /tmp/ 中的文件,但我不能添加限制,以便 只有“Duke”签名的 jar 可以首先运行.

我知道使用jarsigner -verify 来验证罐子的能力,但我希望有一个配置Java 运行时本身的解决方案。有没有办法使用策略文件或其他方式来实现这一点?

谢谢

【问题讨论】:

    标签: java keystore jarsigner jar-signing


    【解决方案1】:

    据我所知,使用安全策略是不可能的。在当前的 Java 安全概念中,禁止 JAR 的执行是没有意义的。

    不过,您可以扩展 Java 的安全管理器类来实现您想要的功能。但请注意,这可能不是一项简单的任务。

    【讨论】:

      猜你喜欢
      • 2018-05-26
      • 2019-10-22
      • 2014-12-31
      • 2016-06-04
      • 2014-02-18
      • 1970-01-01
      • 2019-09-01
      • 2017-08-23
      • 1970-01-01
      相关资源
      最近更新 更多