【发布时间】: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 文件也没有签名字段。这只是清单文件的重新散列。
-
因此它与清单文件同构,无需修改清单文件(或清单文件格式)。