Public-Key

長期非對稱密鑰在前向保密即時通訊協議中的作用?

  • August 1, 2019

我試圖以一個簡單的即時消息協議為例,了解前向保密的一般工作原理。告訴我這個過程是否正確:

  1. Alice 和 Bob 各自生成一對長期的公私鑰對,然後親自驗證公鑰指紋。這些密鑰的唯一用途是用於身份驗證(簽署消息,以及在會話密鑰交換期間簽署事物)。這些密鑰永遠不會用於任何類型的加密。

  2. Alice 和 Bob 使用明文的 Diffie-Hellman 等密鑰交換算法,在此過程中僅使用步驟 1 中的密鑰對彼此進行身份驗證。他們最終得到一個共享的會話密鑰。

  3. Alice 向 Bob 發送一條消息,使用在步驟 2 中協商的會話密鑰使用對稱密碼對其進行加密。

  4. Bob 使用在步驟 2 中協商的密鑰對 Alice 的消息進行解密。

  5. 對於發送的每個新消息,該過程重複,從第 2 步。第 1 步永遠不會重複。

前向保密(通過生成新的會話密鑰)確保如果步驟 1 中的長期私鑰被洩露,過去的通信無法被解密,但是,如果發生這種情況,可能會繼續偽裝成 Alice 或 Bob,可能會洩露所有未來的消息.

我在這裡哪裡出錯了?提前非常感謝!

我認為你在任何一點上都沒有錯。

“完美的前向保密”是一個令人困惑的名字。實際上,這意味著持有其中一個密鑰的人無法使用它來解密過去的消息。

您通常還需要另外兩個屬性:

  1. 當有人按照您的建議冒充 Alice 或 Bob 時,應該將真正的合作夥伴從對話中剔除以使其可檢測到。
  2. 當某人獲得密鑰後,在 Alice 和 Bob 切換到新密鑰後,他應該無法解密消息。有時稱為後向保密。

可能還有更多我現在沒有想到的事情,如果是群發消息,它會變得更加複雜。處理這些將使您的步驟 (3.) - (5.) 更加複雜!

引用自:https://crypto.stackexchange.com/questions/55860