在将 public 密钥导入 GnuPG 之前验证它的扩展很热门吗?

Hot to verify a public key's extensions before importing it to GnuPG?

当我的密钥环中有用户以前的(现已过期)public 密钥时,如何验证用户的扩展 public 密钥文件的完整性(通过缺乏机密性和身份验证的连接下载时) ?他们的过期密钥是否有足够的信息来验证扩展密钥?考虑以下情况:

  1. 我的钥匙圈中有 Bob 信任的 public 密钥。
  2. Bob 的密钥昨天过期,所以他扩展了他的密钥对并上传了一个新的 ascii-armoured public 密钥到他的网站。
  3. 我通过 http 下载了 Bob 的新 public 密钥文件,我想验证它。

新的 public 密钥文件是否以可验证的方式用他的旧密钥签名?我如何利用我的密钥环中现有的(过期的)密钥验证新密钥文件的完整性?

对于具有 密钥对的一般情况: 如果密钥本身由他的旧密钥签名(这是进行此类密钥更改的通常方法)and/or 您下载的密钥文件是由他的旧密钥签名的,无论如何您都可以验证并验证签名:所发生的只是 GnuPG 表明密钥已经过期。

但是你写了

Bob's key expired yesterday, so he extended his keypair and uploaded a new ascii-armoured public key to his website

延长密钥的有效期不会产生不同的密钥。它们的密钥由 public 密钥和创建时间戳的元组标识,它们一起散列到密钥的 fingerprint。短密钥 ID 和长密钥 ID 都是从中派生出来的。如果他所做的只是延长密钥的有效期,只需导入密钥即可。您对该密钥的签名和信任仍然有效。

如果您希望在导入之前至少可以比较长密钥 ID,运行

gpg --keyid-format 0xlong [key-file]

并与钥匙链中已有的钥匙进行比较。


无论如何:不要简单地信任钥匙链中的钥匙,而是使用签名和信任。许多邮件客户端会自动获取密钥来验证签名,您可能已经获取了一些(未验证的)密钥来读取在其他密钥上发布的签名,...