对代码(如 jar)进行签名有什么意义?

2022-09-02 01:33:27

当每个人都可以使用jarsigner来签署像Java的jars一样对代码进行签名时,这有什么意义呢?它如何提供安全性?


答案 1

对 JAR 文件进行签名的目的是验证该文件是否未被篡改。对 jar 文件进行签名后,您可以验证此文件是否未被其他人修改。这可确保文件源自最初签名的人员。如果有人在签名验证过程之间修改了文件,则验证过程将失败。您可以查看本文,了解有关如何使用公钥加密来执行数字签名的更多详细信息。


答案 2

当您签署 jar 文件时,您可以显示是签名的,而不是其他人。

当您签署文档时,这是相同的想法 - 只有您可以写您的签名。其他人可以签名,但他们会用他们的签名签名,而不是你的签名。

通过手写签名,熟练的伪造者可以学习复制您的签名。使用数字签名,制作副本要困难得多,因为您需要获取该人的私钥。没有私钥,您就无法制作看起来像他们的签名。