Public-Key
PGP:在網路上,如果一切都被篡改了怎麼辦?
我試圖圍繞公鑰密碼術如何真正以安全的方式工作。
據我所知,您可以訪問 example.com 並下載他們的 PGP/GPG 公鑰並將其添加到您的密鑰環中。然後,他們向您發送一個用他們的私鑰簽名或用您的公鑰加密的文本文件(或其他文件);您可以驗證其真實性和/或解密它。
如果攻擊者在傳輸給您的過程中修改了網站並以他們的名義簽署了他們自己的假密鑰,然後您將其放入您的密鑰環中怎麼辦?然後你繼續驗證和解密被篡改的文件,假設它是有效的。
我假設我說的是中間人對整個網路流量的篡改,或者類似的事情。我只是不確定“簽名”如何防止密鑰和數據在傳輸過程中被偽造。
您描述的場景需要Web of Trust 中的多次故障*:*
- 攻擊者必須破壞密鑰伺服器並將您的公鑰的偽造副本放在那裡。
據推測,如果您足夠偏執地使用 PGP,您會讓其他人簽署您的密鑰,因此攻擊者必須讓這些人簽署假密鑰(或污染整個密鑰鏈)。 2. 其他使用者必須接受洩露的公鑰才能使用
真正的偏執狂只會從他們的所有者那裡實際獲取密鑰。普通的偏執狂(像我一樣)只在簽署密鑰時才堅持這一點。 3. 攻擊者必須破壞數據流(解密它 - 很容易的部分,因為它是用他們被破壞的密鑰加密的),修改它,重新加密它並用發件人的私鑰對其進行簽名
大概如果您偏執到足以使用 PGP,您會堅持要求您收到所有已簽名的文件。
簽名是使用發件人的私鑰進行的,因此攻擊者要麼洩露了發件人的密鑰,要麼讓你接受他們的公鑰的洩露版本,你將使用它來檢查假簽名。
關於這個主題有一本很棒的書——應用密碼學——它更多地解釋了這個系統崩潰所需的各種妥協。