Java 什么';签署代码的意义是什么,比如JAR?

Java 什么';签署代码的意义是什么,比如JAR?,java,security,jar,sign,Java,Security,Jar,Sign,当每个人都可以用jarsigner来完成时,像Java的JAR一样对代码进行签名有什么意义? 它是如何提供安全性的?对JAR文件进行签名的目的是验证该文件是否未被篡改。一旦对jar文件进行了签名,您就可以验证该文件是否未被其他人修改。这样可以确保文件源于最初签名的人。如果中间有人修改了文件,签名验证过程将失败。您可以查看有关如何执行数字签名的更多详细信息。当您签署jar文件时,您可以表明是您签署了该文件,而不是其他人 当你在一份文件上签字时,这是同样的想法——只有你才能写下你的签名。其他人可以签

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

对JAR文件进行签名的目的是验证该文件是否未被篡改。一旦对jar文件进行了签名,您就可以验证该文件是否未被其他人修改。这样可以确保文件源于最初签名的人。如果中间有人修改了文件,签名验证过程将失败。您可以查看有关如何执行数字签名的更多详细信息。

当您签署jar文件时,您可以表明是您签署了该文件,而不是其他人

当你在一份文件上签字时,这是同样的想法——只有你才能写下你的签名。其他人可以签名,但他们会用自己的签名,而不是你的


有了手写签名,熟练的伪造者可以学会复制你的签名。由于需要获取此人的私钥,因此复制副本要困难得多。如果没有私钥,您就无法生成类似于他们的签名。

对jar进行签名会将内容绑定回特定的证书。那证书证明了什么

如果证书的私钥被盗,则不会太多。有防止篡改的装置来保存私钥。然而,私钥通常存在于开发人员的机器上。这些机器可能没有得到很好的保护

证书本身可以由知名的证书颁发机构(CA)签名。因此,最终用户对内容的来源有一定的信心。验证证书密钥持有人身份的数量各不相同。这导致了一场竞相触底的竞争,中科院简化了程序,以提供更低的价格


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

在上述大多数情况下,您指的是私钥,而不是证书。@EJP证书是否包括私钥?信任的签名机制并不是我的专长。你有一个证书,它是公开的,包含公钥,还有一个私钥。在Java密钥库中,私钥也被封装在证书中,但这只是一个实现细节,它从来没有这样出现过,您主要关心的是整个密钥库或(不知何故)私钥的被盗。谈论证书被盗没有意义,它们是公开的。@EJP有意义。虽然我认为常用的说法是用证书签名,但您向公共证书提供签名,以便对其进行验证;i、 e.您提供公钥,以便可以使用该公钥验证您使用私钥创建的签名;您提供证书以便确定身份。丢失该证书无关紧要,因为它不包含私钥,因此theief无法使用它创建更多签名,即隐藏您的身份。