security - 从 PGP 签名中看出哪些算法在其创建过程中起作用
问题描述
我正在处理一个 Debian 存储库,该存储库显然包含一个InRelease
可能以不再合适的方式签名的文件。症状是客户端The repository '... InRelease is not signed
在运行时收到警告apt-get update
。
InRelease
-----BEGIN PGP SIGNED MESSAGE-----
包含以and开头的部分-----BEGIN PGP SIGNATURE-----
,因此它已签名,并且我已经调整了我的 PGPpersonal-digest-preferences
和personal-cipher-preferences
设置以排除 SHA-1 的使用。但是仍然缺少一些东西。
我的问题是:当我检查实际签名( 和 之间的 ASCII 盔甲----BEGIN PGP SIGNATURE-----
)-----END PGP SIGNATURE-----
时,有没有办法判断哪些算法在其创建中起作用,特别是 SHA-1 是否在其创建中起作用?我想答案是否定的,但我想听听专家的意见。
更新-----BEGIN PGP SIGNATURE-----
读取后的第一行Hash: SHA256
看起来不错(因为我在SHA256
首选项设置中选择了第一个),但问题仍然存在。
更新我现在也通过使用附加参数调用apt-ftparchive packages
和apt-ftparchive release
(分别用于创建文件Packages
和)从索引中排除了 SHA-1 ,但问题仍然存在。Releases
--no-sha1
解决方案
所以现在看起来签名已经有效(在按照描述删除 SHA-1 摘要之后),但签名密钥尚不知道。
因此,将签名密钥添加到客户端add-key add key.pub
会使问题消失。
推荐阅读
- c# - Simple Injector 在注册后缺少一种开放的泛型类型 - 可能会发生什么?
- laravel - 多对多关系的分页
- reactjs - 如何使用反应钩子切换
- c# - 无法使用 HttpWebRequest 与服务器协商 HTTPS 连接
- php - 如何在 Controller 中将 AND 附加到我的 Laravel 查询
- stripe-payments - Stripe 结帐付款无法支付
- python - 如何将python库安装到特定环境(没有conda)
- c# - 从 MVC 控制器动作调用 APIController 动作
- kubernetes - 无法访问邮递员中的服务
- python - discord.py:为什么我的加入消息不起作用?