2017-05-15 93 views
0

我正在使用以下命令验证gpg密钥。为什么md5在rpm签名验证输出中提到--nodigest选项

rpm --checksig <rpm name> --nodigest 

我的rpm使用RSA/SHA256算法进行签名。

问题是:为什么我的输出中有(md5)。

输出:rsa (md5) pgp OK

当我运行与-v(详细)相同的命令启用,它没有提及MD5的

输出:

Header V3 RSA/SHA256 Signature, key ID b1275ea3: OK 
    V3 RSA/SHA256 Signature, key ID b1275ea3: OK 
+1

我不知道哪个版本的rpm工具以及您使用的是哪个版本,但是最新的Fedora文档:https://docs.fedoraproject.org/en-US/Fedora/25/html/System_Administrators_Guide /s1-check-rpm-sig.html解释它。要使用的新命令是'rpmkey'。如果你用'-Kv'选项运行它,它将输出一个MD5摘要部分,以确保你的包在传输过程中没有被修改过。 –

+0

我同意完整性检查是必要的,但通过做--nodigest我说我没有兴趣检查这一点,只需要签名验证。通过一些rpm代码,发现如下:case RPMSIGTAG_PGP: n =(upper?“(MD5)PGP”:“(md5)pgp”);这意味着对于RPMSIGTAG_PGP追加这个字符串的输出,但问题仍然是为什么md5? – Rupesh

+0

http://ftp.rpm.org/max-rpm/s1-rpm-checksig-using-rpm-k.html这里说校验和是在构建和验证时计算的,看来它使用的是md5哈希功能为此目的。但我同意你的看法,这个选项看起来并不像应该那样工作。 –

回答

1

当签名加入到RPM上个世纪,唯一可用的数字签名实现是PGP(当时是RSA/MD5)。

rpm --checksig输出的简化形式是提供额外的用户信息和添加(md5)到输出的早期尝试。

rpm --checksig的真正缺陷在于输出尝试使用大写和小写和括号在单行内汇总非常复杂的完整性检查,所有这些都几乎是不可理喻的书呆子。

使用-Kvv查看更多有用的细节。

+0

好吧,你看到这与gpg实用程序的错误。我在想,如果他们是真正的MD5检查他们正在做,如果是的话,那对我来说会是一个问题,如果这只是一个消息,我可以。 – Rupesh

+0

RPM通常使用比MD5更强的散列来验证包和文件,但不会阻止用户使用MD5。 –