具有信任级别 4 的签名密钥的 GnuPG 警告

信息安全 pgp gnupg
2021-09-04 20:30:21

使用公钥加密文档时,我收到警告:

$gpg --encrypt -r 6B7F10E4 file.pdf

It is NOT certain that the key belongs to the person named
in the user ID.  If you *really* know what you are doing,
you may answer the next question with yes.

Use this key anyway? (y/N)

我将信任级别设置为 4 并签署了密钥:

$ gpg --edit-key 6B7F10E4
gpg> trust
Please decide how far you trust this user to correctly verify other users' keys
(by looking at passports, checking fingerprints from different sources, etc.)

1 = I don't know or won't say
2 = I do NOT trust
3 = I trust marginally
4 = I trust fully
5 = I trust ultimately
m = back to the main menu

Your decision?

4 <Enter>
gpg> sign

Are you sure that you want to sign this key with your
key ... (8F3A3A54)

Really sign? (y/N)

y <Enter>
gpg> save

但是在使用该密钥加密文档时,我仍然会收到该警告。我还需要做什么才能将其删除?

3个回答

该消息说 GnuPG 无法验证发出正确签名的密钥。换句话说,您知道签名确实是由给定的私钥发布的,但不确定是谁实际发布了这个密钥。

GnuPG 中的信任仅在基于 OpenPGP 信任网络中的证书验证密钥时才相关,另请阅读“关于信任的 gpg 输出的确切含义是什么?” . 信任级别定义了您对密钥所有者对其他密钥的认证的信任程度,但需要已验证的密钥例如,如果在已经验证的密钥上发布,信任级别 4(“完全信任”),默认情况下定义由有效且完全受信任的密钥认证的所有密钥也是有效的。

“终极信任”(第五级)是特殊的:它在验证密钥时用作引入者,从而使密钥得到验证,并始终将由该密钥认证的其他密钥视为已验证。应该用于不是自己颁发的密钥,gpg --edit-key以及sign其他人的密钥,而不是颁发信任(在验证密钥实际上属于该方之后)。如果您不想发布公共证书,还lsign可以发布 GnuPG 在共享公钥时不会导出的本地签名。

警告始终显示,但您自己的键(级别 5)除外,被“本身”接受。

此处解释了 gpg 信任级别:https ://gpgtools.tenderapp.com/kb/faq/what-is-ownertrust-trust-levels-explained

您已为尚未验证的密钥分配了信任级别。验证的工作原理是从具有最终信任的密钥(应该是您自己的密钥)通过可信密钥对被验证密钥的签名找到可信密钥的路径。

在您的情况下,信任路径相当短,因为您已经签署了密钥。由于它未显示为已验证,这意味着您自己的密钥未标记为受信任。

通过将其他人的密钥标记为受信任,他们签名的所有密钥现在也被标记为已验证。