2017-04-26 182 views

回答

4

從技術上講,它僅僅意味着對應私鑰的持有者簽署了提交。在實踐中,可以推斷1)所述密鑰的持有者是具有一些可證實的聲譽的人,2)該人聲明瞭該代碼的作者身份,以及3)自從他們簽署該代碼以來該代碼沒有改變。我對GPG密鑰持有者如何與他人建立身份的知識非常有限,但這是一般想法。

爲什麼要檢查所有這些?如果有問題的軟件對某種類型的安全至關重要,那麼攻擊者可能會通過用破損的軟件替換您認爲自己獲得的軟件來危害您,例如有一些你無法輕易識別的後門。畢竟,你需要一些代碼,你點擊「下載」,並且你信任通過電線到達的東西是寫在按鈕上的東西。但是,理想情況下,攻擊者將無法模仿真實作者的簽名,因爲他們不會擁有作者的私鑰。而且他們不能僅僅改變代碼並且僅僅保留簽名,因爲它涉及到代碼本身的散列。

請參閱Code Signing的維基百科。

+0

如果作者使用多臺計算機工作,簽名如何工作?每臺電腦都有自己的鑰匙嗎? –

+0

在這一點上我只是喋喋不休的維基百科。這當然不是微不足道的。你必須有一些安全攜帶鑰匙的方法。 – Chris

+1

@StevenVascellaro爲了正確設置,每臺計算機都需要訪問作者的私鑰。您可以複製密鑰,但使用代理如['gpg-agent'](https://www.gnupg.org/documentation/manuals/gnupg/Invoking-GPG_002dAGENT.html)更安全,因此私鑰存儲在一個地方;代理可以將密鑰傳遞給遠程帳戶,而不必接觸遠程磁盤(並且任何具有root訪問權限的人都可以看到)。 – Schwern