JAR文件:数字签名

时间:2010-05-06 08:35:22

标签: manifest signature jar

如果JAR文件经过数字签名,签名是否会成为清单文件的一部分?

2 个答案:

答案 0 :(得分:4)

几乎。实际上,它不是签名的JAR文件,而是其内容。

从技术上讲,JAR归档中要签名的各个文件都使用合适的散列函数(例如SHA-1)进行散列。哈希值在清单中报告。然后在*.SF目录中添加一个额外的文件(META-INF/文件);该文件包含每个签名文件的条目:每个条目包含清单中相应条目的哈希值(因此它或多或少是哈希的哈希值)。 *.SF还包含一个条目,其中包含清单中主标题的哈希值。最后,*.SF文件本身已签名,从而生成*.RSA*.DSA文件(本身位于META-INF/目录中),该文件遵循CMS格式(之前被称为“PKCS#7”)。 CMS依赖于X.509证书的整个备件。

所以这是间接的。必须理解的是,只有JAR中的单个文件才能签名;在给定的JAR文件中可以混合使用有符号和无符号的部分。

答案 1 :(得分:0)

显然答案是肯定的: “开发人员可以对JAR文件进行数字签名。在这种情况下,签名信息将成为清单文件的一部分。” (http://en.wikipedia.org/wiki/JAR_%28file_format%29