TL;DR:文档中有一个错误,您对签名的理解是正确的。
签名文件是由公共 [原文如此,这应该是私有] 密钥签名的原始文件的摘要......
签署文件通常是通过计算文件的哈希和来执行的(对于大量数据,非对称加密非常慢),最终使用私钥加密,因此任何人都可以使用公钥解密它。如果解密过程产生的哈希和与从原始文档计算的哈希值相同,则它必须已使用私钥加密 - 只有签名者知道;因此作者身份得到验证。
加密(撇开像 OpenPGP 这样的混合密码系统的方面,但一般概念保持不变)以相反的方式工作;公钥用于加密,所以只有私钥可以用来解密信息。
我为文档问题添加了一个错误报告(自 2015 年 7 月 29 日起关闭/修复)。
那么,有人可以简单地解释一下签名和验证签名的过程包括哪些内容以及段落是什么?例如对于像Apache Maven这样的软件版本-> https://maven.apache.org/download.cgi?Preferred= ftp://apache.mirrors.tds.net/pub/apache.org/?
- 您需要获取用于签署软件的公钥(通常,您将使用
gpg --recv-key [key-id]
.
- 验证密钥的完整性,例如通过与开发人员交谈、您的信任网络、产品 HTTPS 加密网站(取决于您在验证作者身份时的偏执程度)。
- 如果尚未通过您的信任网络验证密钥,则发出签名以验证密钥,如果您不想创建公共签名,则还有永远不会传输到密钥服务器网络的本地签名。
- 最后,用于
gpg --verify
检查签名确实是由产品维护者的密钥签发的。