手動會話金鑰交換
下圖顯示如何使用此程式來傳送加密的訊息。
這種方法很容易受到至少一種常見的攻擊形式。 竊聽程式可以取得一或多個加密訊息和加密金鑰的複本。 然後,在一段時間后,竊聽程式可以將其中一則訊息傳送給接收者,而接收者將無法知道訊息沒有直接從原始發件者來。 此風險可藉由時間戳所有訊息或使用序號來降低。
將加密訊息傳送給另一位使用者最簡單的方式,是傳送以隨機會話密鑰加密的訊息,以及以接收者 金鑰交換公鑰加密的會話金鑰,。
以下是傳送加密會話金鑰的步驟。
傳送加密的會話金鑰
- 使用 cryptGenKey 函式,建立隨機 會話密鑰。
- 使用會話金鑰加密訊息。 此程式會在 數據加密和解密中討論。
- 使用 CryptExportKey 函式,將會話密鑰導出至 金鑰 BLOB,並指定以目的地使用者的金鑰交換公鑰加密金鑰。
- 將加密的訊息和加密金鑰 BLOB 傳送給目的地使用者。
- 目的地使用者會使用 cryptImportKey 函式,將密鑰 BLOB 匯入至其 CSP。 這會自動解密會話密鑰,前提是目的地使用者的金鑰交換公鑰已在步驟 3 中指定。
- 然後,目的地使用者可以使用工作階段金鑰來解密訊息,遵循 資料加密和解密中討論的程式,。