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