Pgp
PGP 消息是否容易受到中間人攻擊?
假設 Alice 想向 Bob 發送一條 PGP 加密消息。
她生成一個對稱密鑰,用 Bob 的公鑰對其進行加密,然後將消息和加密的對稱密鑰都發送給 Bob。然後 Bob 能夠解密她的消息。
但是,如果 MiTM 攻擊者修改了加密的對稱密鑰和消息,並將它們發送給 Bob,會怎樣呢?
攻擊者不能篡改原始消息嗎?我理解錯了什麼?
正如其他人所說,這是不可能的原因是無法偽造簽名的消息。當然,攻擊者可以簽署任何消息,但只能使用屬於他們自己的公鑰/證書的私鑰。
那麼會發生什麼:
- Alice 用她的私鑰簽署消息,表明她的公鑰/證書;
- Alice 使用 Bob 的公鑰加密簽名的消息(因為 PGP 使用先簽名後加密);
- Bob 收到消息並使用他的私鑰對其進行解密;
- Bob 得到 Alice 的密鑰 ID 並查找她的公鑰/證書,發現是她;
- Bob 驗證消息下的簽名是 Alice 的簽名。
現在 Malory(使用普通名稱的 MitM)顯然可以向 Bob 發送加密消息,但是她無法解密 Alice 的消息,因為她沒有 Bob 的私鑰。
關於簽名生成:Malory 可以放下她自己的簽名並更改 ID,但這樣消息就不會來自 Alice。
當然,這確實需要 Bob 事先知道並信任 Alice 的公鑰/證書,否則 Malory 可以創建一個密鑰對並將公鑰/證書發送給 Bob,冒充 Alice。使用 PGP,信任是使用信任網路創建的。
由於信任網路對 PGP 來說從未如此安全,因此強烈建議直接建立信任,例如通過郵寄證書然後通過電話驗證密鑰指紋。PGP 的設計考慮到了這一點(例如,建立一個易於驗證的指紋系統並要求對信任庫中的公鑰/證書的明確信任)。