当每个人都可以使用 jarsigner 来签名你的代码时,像 Java 的 jar 一样签名有什么意义?它如何提供安全性?
问问题
1308 次
3 回答
5
当你签署一个 jar 文件时,你可以表明是你签署了它,而不是其他人。
签署文件时的想法是一样的——只有你可以写你的签名。其他人可以签名,但他们会用他们的签名而不是你的签名来签名。
通过手写签名,熟练的伪造者可以学会复制您的签名。使用数字签名制作副本要困难得多,因为您需要获取该人的私钥。如果没有私钥,您将无法制作看起来像他们的签名。
于 2010-07-24T21:40:15.087 回答
5
对 jar 进行签名会将内容与特定证书联系起来。那么该证书证明了什么?
如果证书的私钥被盗了,那不是很多。有用于保存私钥的防篡改设备。但是,通常私钥通常位于开发人员机器上。这些机器可能没有得到很好的保护。
证书本身可以由众所周知的证书颁发机构 (CA) 签名。因此,最终用户对内容具有声明的来源有一定的信心。证书密钥持有者是他们声称的身份的验证量各不相同。这导致了一场逐底竞争,CA 简化程序以提供更低的价格。
即使对于未经验证的证书,使用相同证书签名的不同内容也显示出共同的来源。因此,如果您决定信任证书,您可以从同一来源接收更多内容,而无需信任其他任何人。
于 2010-07-24T22:12:25.573 回答