JAR ファイルがデジタル署名されている場合、署名はマニフェスト ファイルの一部になりますか?
2 に答える
ほとんど。実際に署名されるのは JAR ファイルではなく、その内容です。
技術的には、署名される JAR アーカイブ内の個々のファイルは、適切なハッシュ関数 (SHA-1 など) でハッシュされます。ハッシュ値はマニフェストで報告されます。次に、追加のファイル (*.SF
ファイル) がMETA-INF/
ディレクトリに追加されます。そのファイルには、署名された各ファイルのエントリが含まれています。各エントリには、マニフェスト内の対応するエントリのハッシュが含まれています (つまり、多かれ少なかれ、ハッシュのハッシュです)。には、マニフェストのメイン ヘッダーの*.SF
ハッシュを含むエントリも含まれています。最後に、*.SF
ファイル自体が署名され、 CMS形式 (以前は「PKCS#7」と呼ばれていました) に従う*.RSA
or*.DSA
ファイル (ディレクトリ内のそれ自体) になります。CMS は、X.509 証明書の道具一式に依存しています。META-INF/
したがって、これはかなり間接的です。理解しておく必要があるのは、JAR 内の個々のファイルのみが署名されるということです。特定の JAR ファイルに、署名された部分と署名されていない部分が混在している可能性があります。
明らかに答えは「はい」です。「開発者はJARファイルにデジタル署名できます。その場合、署名情報はマニフェストファイルの一部になります。」(http://en.wikipedia.org/wiki/JAR_%28file_format%29)