【问题标题】:using java - How to read code signing/cert information from jar使用 java - 如何从 jar 中读取代码签名/证书信息
【发布时间】:2018-07-13 18:51:03
【问题描述】:

我正在寻找一种从 JAR 文件中读取代码签名/证书信息的方法。

其实我很想知道这个罐子:

  • 签名了吗?
  • 签名是否有效(签名后更改)?
  • 签署期间是否提供了 TSA?
  • 使用什么证书进行签名(CN、O、...)?
  • 签名/证书何时到期?

我正在考虑通过 Java 将 jarsigner 调用为 exec 并解析其命令行输出以检索此信息,但现在开始后看起来很糟糕。

还有其他方法可以获取这些信息吗?

我知道可以通过我在这里看到的一些方法来完成验证,但是我想要获得的信息呢?

【问题讨论】:

  • 证书什么时候过期都没关系。它在签署 JAR 文件时有效。在这方面它与 SSL 证书不一样,
  • @EJP :这很重要。不仅如此,特别是如果签署时没有提供 TSA。

标签: java jar code-signing jarsigner jar-signing


【解决方案1】:

您可以尝试使用 Jar 包来读取清单文件。 https://docs.oracle.com/javase/7/docs/api/java/util/jar/package-summary.html

Oracle 文档中有关于如何验证文件是否经过调和的信息 https://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#Signature_Validation

我不确定如何检查证书。

更新

根据文档,您可以使用 Jar utils 包https://docs.oracle.com/javase/7/docs/technotes/guides/security/time-of-signing.html#APIENHANCE 获取证书和时间戳信息。

检查https://www.programcreek.com/java-api-examples/java.util.jar.JarEntry SecNav.java 示例(获取 Jar 条目的证书和代码签名者)。

【讨论】:

    猜你喜欢
    • 2010-12-21
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多