【问题标题】:What's the point of the *.SF file in jarsigner?jarsigner 中的 *.SF 文件有什么意义?
【发布时间】:2017-02-13 05:01:06
【问题描述】:

我正在研究 jarsigner 的工作原理以及 META-INF 文件夹中每个文件的用途。据我了解,MANIFEST.MF 包含 zip/jar 中每个文件的列表及其摘要。 *.SF 文件包含清单文件的摘要,以及每个文件的列表以及清单中该文件部分的摘要。最后,*.DSA/RSA 文件包含 .SF 文件的数字签名。我的问题是,为什么需要 SF 文件?与简单地签署清单文件并将其存储在 .RSA/DSA 文件中相比,它有什么优势?

对文件名或内容的任何更改或文件删除都会导致清单发生更改,从而导致签名无效。

【问题讨论】:

  • 签名将采用什么格式以及如何验证 jar 中的所有其他文件? 它有什么优势?你真正想解决什么问题?
  • 签名文件是通过对SF文件的二进制内容进行签名生成的。如果没有 SF 文件,则将通过对清单文件的二进制内容进行签名来生成签名文件。 您实际上想解决什么问题? 只是想在使用工具之前了解它
  • 清单文件没有签名字段。他们本可以添加一个(我想),但他们没有(给出的通常原因是害怕破坏旧代码)。至于Java中的实现,你似乎已经知道了。那么我们可以为您提供什么帮助?
  • .SF 文件也没有签名字段。这只是清单文件的重新散列。
  • 因此它与清单文件同构,无需修改清单文件(或清单文件格式)。

标签: java jarsigner


【解决方案1】:

可以随时使用jar tool 将文件添加到jar file。在每种情况下,MANIFEST.MF file 都会更新。如果MANIFEST.MF file 是已签名的那个,signature 将无效。但是,如果 *.SF file 中列出的文件未更改,则使用单独的 *.SF file 仍然可以验证签名。

【讨论】:

    猜你喜欢
    • 2011-04-08
    • 2011-05-22
    • 2011-01-12
    • 2020-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 2017-04-27
    相关资源
    最近更新 更多