【问题标题】:How is the process of signing and verifying a release and why apache says that the signature file signed by a public key?签名和验证发布的过程是怎样的,为什么 apache 说签名文件由公钥签名?
【发布时间】:2015-07-23 19:40:19
【问题描述】:

我已经开始学习 GPG,但我对我找到的信息有点困惑。 GnuPG documentation 这么说

使用签名者的私钥创建签名

但是在Apache's site,他们说:

签名文件是由公钥签名的原始文件的摘要...

same site, in another section 上,他们说:

使用私钥从原始文档创建数字签名。

现在我认为签名过程涉及使用持有者的私钥而不是像 Apache 在我发布的第二个链接中所说的公共密钥对发布的哈希进行签名,还是我错了?否则,如果他/她没有持有者的私钥,他/她怎么能解密用公钥签名的发布的哈希?

那么,有人可以简单地解释一下签名和验证签名的过程包括哪些内容以及段落是什么,例如对于像Apache Maven 这样的软件版本?

【问题讨论】:

    标签: apache gnupg public-key software-release private-key


    【解决方案1】:

    TL;DR:文档有错误,你对签名的理解是对的。

    签名文件是由公共 [原文如此,这应该是私有] 密钥签名的原始文件的摘要......

    签署文件通常是通过计算文件的哈希和来执行的(非对称加密对于大量数据来说非常慢),最后使用私钥加密,所以任何人都可以解密它使用公钥。如果解密过程产生的散列和与从原始文档计算的结果相同,则它必须已使用私钥加密 - 只有签名者知道;因此作者身份得到验证。

    加密(撇开像 OpenPGP 这样的混合密码系统,但一般概念保持不变)反过来工作;公钥是用来加密的,所以只有私钥可以用来解密信息。

    我添加了一个bug report for the documentation issue(自 2015 年 7 月 29 日起关闭/修复)。

    那么,有人可以简单地解释一下签名和验证签名的过程包括哪些内容以及段落是什么?例如对于像 Apache Maven 这样的软件版本 -> https://maven.apache.org/download.cgi?Preferred=ftp://apache.mirrors.tds.net/pub/apache.org/ ?

    1. 您需要获取用于签署软件的公钥(通常,您将使用 gpg --recv-key [key-id] 从密钥服务器下载它。
    2. 验证密钥的完整性,例如与开发人员交谈、您的信任网络、产品 HTTPs 加密网站(取决于您在验证作者身份时的偏执程度)。
    3. 如果尚未通过您的信任网络验证密钥,请发布签名以验证密钥,如果您不想创建公共签名,还有永远不会传输到密钥服务器网络的本地签名。
    4. 最后,使用gpg --verify 来检查签名确实是由产品维护者的密钥签发的。

    【讨论】:

    • 你的意思是[原文如此,这应该是private]? '获取用于使用gpg --recv-key [key-id] 对软件进行签名的公钥',是否与为 Apache 的公钥执行 gpg --import KEYS 相同?
    • 当然,这应该是私有的。是的,gpg --recv-keyscurl [the-key] | gpg --import 非常相似,具有一些魔法来为您选择的密钥服务器生成 URI。你当然可以直接从 Apache 获取密钥。
    • 对。就最后一个问题,第3点在整个验证签名过程中的目的是什么? issue a signature to certify the key...?是什么意思
    • 如果 GnuPG 可以建立信任路径,它将能够完全验证签名(有效的签名需要经过验证的密钥)。否则,您将收到warning message printed like posted on security.SE
    • 所以你是说 GnuPG 必须确保我使用的公钥来自可信来源,不是吗?
    猜你喜欢
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 2013-08-17
    • 2012-07-26
    • 2016-06-22
    • 1970-01-01
    • 2012-11-28
    • 2020-03-15
    相关资源
    最近更新 更多