Gpg

gpg --recv-keys 有效,但 auto-key-retrieve 無效

  • October 26, 2020

我正在嘗試驗證文件

https://clientupdates.dropboxstatic.com/dbx-releng/client/dropbox-lnx.x86_64-108.4.453.tar.gz

使用此處提供的簽名:

https://clientupdates.dropboxstatic.com/dbx-releng/client/dropbox-lnx.x86_64-108.4.453.tar.gz.asc

我正在使用以下命令:

gpg --verify dropbox-lnx.x86_64-108.4.453.tar.gz.asc

這導致以下輸出:

gpg: assuming signed data in 'dropbox-lnx.x86_64-108.4.453.tar.gz'
gpg: Signature made Tue 20 Oct 2020 10:53:17 PM CEST
gpg:                using RSA key FC918B335044912E
gpg: Can't check signature: No public key

我的 GPG 配置~/.gnupg/gpg.conf如下所示:

keyserver keyserver.ubuntu.com
auto-key-retrieve

強調auto-key-retrieve. 此設置有效,如下所示:我之前成功驗證了文件,即使我沒有有問題的公鑰;它在驗證過程中按預期檢索。

gpg --search-keys FC918B335044912E還表明可以在我正在使用的密鑰伺服器上找到密鑰。我也gpg --recv-keys可以,之後驗證顯然有效。

我的問題,這可能源於對操作的誤解gpg:為什麼我可以手動獲取有問題的密鑰,但不能自動使用auto-key-retrieve,即使我知道它可以與其他密鑰一起使用?

在對此進行了更深入的研究之後,我想我現在至少可以自己部分回答這個問題。當然,仍然歡迎任何補充資訊。:)

原因可能是給定簽名不包含密鑰的指紋,而僅包含密鑰 ID。例如,您可以使用gpg --list-packets. 對於有問題的簽名,您會得到

:signature packet: algo 1, keyid FC918B335044912E
   version 4, created 1603227197, md5len 0, sigclass 0x00
   digest algo 8, begin of digest fd b9
   hashed subpkt 2 len 4 (sig created 2020-10-20)
   subpkt 16 len 8 (issuer key ID FC918B335044912E)
   data: [2046 bits]

對於另一個auto-key-retrieve有效的簽名,它看起來像這樣:

:signature packet: algo 1, keyid BCAA30EA9C0D5763
   version 4, created 1543944543, md5len 0, sigclass 0x00
   digest algo 10, begin of digest 84 51
   hashed subpkt 33 len 21 (issuer fpr v4 1A4E8B7277C42E53DBA9C7B9BCAA30EA9C0D5763)
   hashed subpkt 2 len 4 (sig created 2018-12-04)
   subpkt 16 len 8 (issuer key ID BCAA30EA9C0D5763)
   data: [2046 bits]

強調線

   hashed subpkt 33 len 21 (issuer fpr v4 1A4E8B7277C42E53DBA9C7B9BCAA30EA9C0D5763)

man gpg在關於 的部分中明確指出auto-key-retrieve

嘗試查找密鑰的方法順序是:

$$ … $$ 5. 如果配置了任何密鑰伺服器並且頒發者指紋是簽名的一部分(自 GnuPG 2.1.16 起),則嘗試配置的密鑰伺服器。

(強調我的。)

--recv-keys另一方面,也確實通過密鑰 ID 進行查找。


旁注:沒有指紋的 Dropbox 鍵很奇怪。在 2019 年 7 月 5 日的此送出中給出的刪除密鑰 ID 查找的部分原因是,即使在那時,指紋顯然也很長時間預設包含在簽名中。Dropbox 簽名是從 2020-10-20 開始的。一起行動吧,Dropbox!xP

引用自:https://unix.stackexchange.com/questions/616160