签名代码有什么意义,比如jar子?

当每个人都可以使用jarsigner时,签署代码如Java的jar子有什么意义? 它如何提供安全性?

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

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

签署文件时也是如此 – 只有你可以写下你的签名。 其他人可以签名,但他们会签名,而不是你签名。

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

签署jar会将内容绑定回特定证书。 那certificate什么是certificate?

如果证书的私钥被盗,那么不是很多。 有防篡改设备用于保存私钥。 但是,私钥经常出现在开发人员计算机上。 那些机器可能没有得到很好的保护。

证书本身可以由众所周知的证书颁发机构(CA)签名。 因此,最终用户对内容具有声明的来源有一定的信心。 证书密钥持有者所声称的身份validation数量各不相同。 这导致了CA的简化,以简化程序以提供更低的价格。

即使是未经validation的证书,使用相同证书签名的不同内容也会显示共同的来源。 因此,如果您决定信任证书,您可以从相同的来源收到更多内容,而不信任其他任何人。