我维护了一系列私有存储库。用于对存储库进行签名的 gpg 密钥由“密钥类型:RSA”和“密钥长度:4096”生成。用于生成密钥的 GPG 版本在 Ubuntu 14.04 上为 1.4.16。出现问题的机器的 gpg 版本为 1.4.20(在 16.04 的测试版上)。
我该如何修复我的私有存储库中的“W:<...> 存储库未通过密钥 <...> (弱摘要) 进行充分签名”?
我承认我对加密了解不多,但我认为 4096 长度的 RSA 密钥就足够了。
答案1
警告消息与加密算法无关(4k RSA 密钥目前被认为是完全没问题的,也是最佳实践)。消化但是算法是另外一回事:散列算法应用于消息主体(在您的例子中是软件包或软件包列表),然后对其进行签名。GnuPG 具有相当保守的默认设置以保持兼容性,但这些默认设置正逐渐被密码分析方面的进步所取代。
您不必创建新密钥,只需更改 GnuPG 的设置即可。Debian 管理员博客的提议仍然适用并帮助您设置合理但有点过于谨慎的默认值:
设置 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
在您的密钥中设置首选算法以供其他人使用(同时使用上面#1 中的更新设置添加新的自签名):
$ gpg --edit-key $KEYID Command> setpref SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed Command> save
将来,GnuPG 应该选择被认为安全的摘要算法。