2017-05-15 38 views
0

我正在使用以下命令驗證gpg密鑰。爲什麼md5在rpm簽名驗證輸出中提到--nodigest選項

rpm --checksig <rpm name> --nodigest 

我的rpm使用RSA/SHA256算法進行簽名。

問題是:爲什麼我的輸出中有(md5)。

輸出:rsa (md5) pgp OK

當我運行與-v(詳細)相同的命令啓用,它沒有提及MD5的

輸出:

Header V3 RSA/SHA256 Signature, key ID b1275ea3: OK 
    V3 RSA/SHA256 Signature, key ID b1275ea3: OK 
+1

我不知道哪個版本的rpm工具以及您使用的是哪個版本,但是最新的Fedora文檔:https://docs.fedoraproject.org/en-US/Fedora/25/html/System_Administrators_Guide /s1-check-rpm-sig.html解釋它。要使用的新命令是'rpmkey'。如果你用'-Kv'選項運行它,它將輸出一個MD5摘要部分,以確保你的包在傳輸過程中沒有被修改過。 –

+0

我同意完整性檢查是必要的,但通過做--nodigest我說我沒有興趣檢查這一點,只需要簽名驗證。通過一些rpm代碼,發現如下:case RPMSIGTAG_PGP: n =(upper?「(MD5)PGP」:「(md5)pgp」);這意味着對於RPMSIGTAG_PGP追加這個字符串的輸出,但問題仍然是爲什麼md5? – Rupesh

+0

http://ftp.rpm.org/max-rpm/s1-rpm-checksig-using-rpm-k.html這裏說校驗和是在構建和驗證時計算的,看來它使用的是md5哈希功能爲此目的。但我同意你的看法,這個選項看起來並不像應該那樣工作。 –

回答

1

當簽名加入到RPM上個世紀,唯一可用的數字簽名實現是PGP(當時是RSA/MD5)。

rpm --checksig輸出的簡化形式是提供額外的用戶信息和添加(md5)到輸出的早期嘗試。

rpm --checksig的真正缺陷在於輸出嘗試使用大寫和小寫和括號在單行內彙總非常複雜的完整性檢查,所有這些都幾乎是不可理喻的書呆子。

使用-Kvv查看更多有用的細節。

+0

好吧,你看到這與gpg實用程序的錯誤。我在想,如果他們是真正的MD5檢查他們正在做,如果是的話,那對我來說會是一個問題,如果這只是一個消息,我可以。 – Rupesh

+0

RPM通常使用比MD5更強的散列來驗證包和文件,但不會阻止用戶使用MD5。 –