Public-Key
長期非對稱密鑰在前向保密即時通訊協議中的作用?
我試圖以一個簡單的即時消息協議為例,了解前向保密的一般工作原理。告訴我這個過程是否正確:
Alice 和 Bob 各自生成一對長期的公私鑰對,然後親自驗證公鑰指紋。這些密鑰的唯一用途是用於身份驗證(簽署消息,以及在會話密鑰交換期間簽署事物)。這些密鑰永遠不會用於任何類型的加密。
Alice 和 Bob 使用明文的 Diffie-Hellman 等密鑰交換算法,在此過程中僅使用步驟 1 中的密鑰對彼此進行身份驗證。他們最終得到一個共享的會話密鑰。
Alice 向 Bob 發送一條消息,使用在步驟 2 中協商的會話密鑰使用對稱密碼對其進行加密。
Bob 使用在步驟 2 中協商的密鑰對 Alice 的消息進行解密。
對於發送的每個新消息,該過程重複,從第 2 步。第 1 步永遠不會重複。
前向保密(通過生成新的會話密鑰)確保如果步驟 1 中的長期私鑰被洩露,過去的通信無法被解密,但是,如果發生這種情況,可能會繼續偽裝成 Alice 或 Bob,可能會洩露所有未來的消息.
我在這裡哪裡出錯了?提前非常感謝!
我認為你在任何一點上都沒有錯。
“完美的前向保密”是一個令人困惑的名字。實際上,這意味著持有其中一個密鑰的人無法使用它來解密過去的消息。
您通常還需要另外兩個屬性:
- 當有人按照您的建議冒充 Alice 或 Bob 時,應該將真正的合作夥伴從對話中剔除以使其可檢測到。
- 當某人獲得密鑰後,在 Alice 和 Bob 切換到新密鑰後,他應該無法解密消息。有時稱為後向保密。
可能還有更多我現在沒有想到的事情,如果是群發消息,它會變得更加複雜。處理這些將使您的步驟 (3.) - (5.) 更加複雜!