签名和验证发布的过程如何,为什么 apache 说签名文件由 public 密钥签名?
How is the process of signing and verifying a release and why apache says that the signature file signed by a public key?
我已经开始学习 GPG,但我对找到的信息有些困惑。 GnuPG documentation 表示
A signature is created using the private key of the signer
但在 Apache's site,他们说:
The signature file is a digest of the original file signed by a public key...
在 same site, in another section 上,他们说:
A digital signature is created from an original document using a private key.
现在我想签名的过程涉及使用持有者的私钥对发布的散列进行签名,而不是像 Apache 在我发布的第二个 link 中所说的那样 public ,还是我错了?否则,如果 he/she 没有持有者的私钥,有人怎么能解密用 public 密钥签名的版本的哈希值?
那么,谁能简单解释一下签名和验证签名的过程是什么,有哪些段落,例如对于像 Apache Maven?
这样的软件版本
TL;DR: 文档中有错误,您对签名的理解是正确的。
The signature file is a digest of the original file signed by a public [sic, this is should be private] key...
签署文档通常是通过计算文档的哈希和来执行的(非对称加密对于大量数据非常慢),最后使用私钥加密 ,因此任何人都可以使用 public 密钥 解密 它。如果解密过程产生的哈希和与从原始文档计算得出的哈希和相同,则它一定是使用私钥加密的——只有签名者才知道;至此作者身份得到验证。
加密(撇开 OpenPGP 等混合密码系统的方面不谈,但一般概念保持不变)以相反的方式工作; public密钥用于加密,因此只能使用私钥来解密信息。
我添加了一个 bug report for the documentation issue(closed/fixed 自 2015-07-29 以来)。
Then, could someone simply explain in what the processes of signing and verifying a signature consist and what are the passages?, e.g. for a software release like Apache Maven -> https://maven.apache.org/download.cgi?Preferred=ftp://apache.mirrors.tds.net/pub/apache.org/ ?
- 您需要获取用于签署软件的 public 密钥(通常,您将使用
gpg --recv-key [key-id]
. 从密钥服务器下载它
- 验证密钥的完整性,例如通过与开发人员交谈、您的信任网络、产品 HTTPs 加密网站(取决于您在验证作者身份时的偏执程度)。
- 如果密钥尚未通过您的信任网络验证,请发出签名来证明密钥,如果您不想创建 public,还有一些本地签名永远不会传输到关键服务器网络。
- 最后用
gpg --verify
验证签名确实是由产品维护者的密钥签发的
我已经开始学习 GPG,但我对找到的信息有些困惑。 GnuPG documentation 表示
A signature is created using the private key of the signer
但在 Apache's site,他们说:
The signature file is a digest of the original file signed by a public key...
在 same site, in another section 上,他们说:
A digital signature is created from an original document using a private key.
现在我想签名的过程涉及使用持有者的私钥对发布的散列进行签名,而不是像 Apache 在我发布的第二个 link 中所说的那样 public ,还是我错了?否则,如果 he/she 没有持有者的私钥,有人怎么能解密用 public 密钥签名的版本的哈希值?
那么,谁能简单解释一下签名和验证签名的过程是什么,有哪些段落,例如对于像 Apache Maven?
这样的软件版本TL;DR: 文档中有错误,您对签名的理解是正确的。
The signature file is a digest of the original file signed by a public [sic, this is should be private] key...
签署文档通常是通过计算文档的哈希和来执行的(非对称加密对于大量数据非常慢),最后使用私钥加密 ,因此任何人都可以使用 public 密钥 解密 它。如果解密过程产生的哈希和与从原始文档计算得出的哈希和相同,则它一定是使用私钥加密的——只有签名者才知道;至此作者身份得到验证。
加密(撇开 OpenPGP 等混合密码系统的方面不谈,但一般概念保持不变)以相反的方式工作; public密钥用于加密,因此只能使用私钥来解密信息。
我添加了一个 bug report for the documentation issue(closed/fixed 自 2015-07-29 以来)。
Then, could someone simply explain in what the processes of signing and verifying a signature consist and what are the passages?, e.g. for a software release like Apache Maven -> https://maven.apache.org/download.cgi?Preferred=ftp://apache.mirrors.tds.net/pub/apache.org/ ?
- 您需要获取用于签署软件的 public 密钥(通常,您将使用
gpg --recv-key [key-id]
. 从密钥服务器下载它
- 验证密钥的完整性,例如通过与开发人员交谈、您的信任网络、产品 HTTPs 加密网站(取决于您在验证作者身份时的偏执程度)。
- 如果密钥尚未通过您的信任网络验证,请发出签名来证明密钥,如果您不想创建 public,还有一些本地签名永远不会传输到关键服务器网络。
- 最后用
gpg --verify
验证签名确实是由产品维护者的密钥签发的