如何在我的私有存储库中修复“ W:<…>存储库未通过密钥<...>(弱摘要)对密钥进行充分签名”?


8

我维护了一系列私有存储库。用于签署回购协议的gpg密钥是使用“密钥类型:RSA”和“密钥长度:4096”制作的。在Ubuntu 14.04上,用于生成密钥的GPG版本是1.4.16。抱怨的机器的gpg为1.4.20(测试版为16.04)。

如何在我的专用存储库中修复“ W:<...>存储库未通过密钥<...>(弱摘要)对密钥进行充分签名”?

我承认我对加密不太了解,但是我认为4096长度的RSA密钥就足够了。


1
这是在签名哈希函数上,而不是密钥上。当它期望使用SHA-2时,它抱怨该对象具有SHA-1签名哈希。
托马斯·沃德

1
您需要编辑密钥。此页面或多或少对其进行了说明。debian-administration.org/users/dkg/weblog/48 留下评论,因为它不是适当的要求。
气球

Answers:


7

警告消息与加密算法无关(4k RSA密钥被认为是完全可以的,并且是目前的最佳实践)。本摘要算法则是另一回事,但:应用在邮件正文中的散列算法(在你的情况下,包装或包装列表)然后将其签署。GnuPG具有相当保守的默认设置来保持兼容,但是随着密码分析技术的进步,这些设置已逐渐超过了它们。

您不必创建新密钥,只需更改GnuPG的设置。Debian-administrator博客建议仍然可以,可以帮助您设置合理的默认值,这有点过分谨慎:

  1. 设置GnuPG使用的首选项(用于签名消息,加密给其他人,...):

    cat >>~/.gnupg/gpg.conf <<EOF
    personal-digest-preferences SHA256
    cert-digest-algo SHA256
    default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
    EOF
    
  2. 在密钥中设置首选算法,以供其他人使用(同时使用上述#1中的更新设置添加新的自签名):

    $ gpg --edit-key $KEYID
    Command> setpref SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
    Command> save
    

将来,应由GnuPG选择被认为是安全的摘要算法。


我正在使用另一个创建的存储库,但无法让它们更改哈希(它们“不支持”我的较新版本的操作系统)。有没有一种方法可以忽略这个问题?
古斯

GnuPG知道该选项--allow-weak-digest-algos,但是我不确定您如何将其传递apt。通知另一方有关旧版本和其他操作系统的MD5也已损坏。
詹斯·埃拉特

我还添加了“ digest-algo SHA512”配置选项,没有它,我仍然得到SHA1签名。通过验证gpg --verbose --verify Release.gpg Release,添加'--verbose'使其显示摘要类型。
Herman van Rink
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.