共用方式為


儲存會話金鑰

注意

本節假設用戶擁有一組 公開/私鑰組。 如需建立金鑰組的指示和範例,請參閱 範例 C 程式:建立金鑰容器和產生金鑰

 

儲存會話金鑰

  1. 使用 CryptExportKey 函式建立簡單的密鑰 BLOB。 這會將會話金鑰從 CSP 傳輸到應用程式的記憶體空間。 指定以交換公鑰來簽署金鑰 BLOB。
  2. 將已簽署的金鑰 BLOB 儲存至磁碟。 假設所有磁碟都不安全。
  3. 需要金鑰時,請從磁碟讀取金鑰 BLOB。
  4. 使用 CryptImportKey 函式將金鑰 BLOB 匯回 CSP。

如需建立會話金鑰並將該金鑰導出至可寫入磁碟檔案的簡單金鑰 BLOB 的範例,請參閱範例 C 程式:匯出會話金鑰

此程式只提供最少的安全性。 如果預存會話金鑰將在稍後用來加密數據,則上述程式不提供足夠的安全性。

若要提供更高的安全性,請先使用交換私鑰簽署金鑰 BLOB,再將密鑰儲存至磁碟。 稍後從磁碟讀取密鑰 BLOB 時,可以驗證其簽章,以確保密鑰 BLOB 完好無損。

如果金鑰 BLOB 未被簽名,任何有權存取儲存密鑰的磁碟或媒體的使用者都可以建立新的會話密鑰。

新的工作階段金鑰可以使用原始使用者的公鑰來加密,而這個新金鑰可以取代原始的交換金鑰。 如果使用者不知情地使用替代的會話密鑰來加密檔案和訊息,則建立替代密鑰的人員可以輕鬆地解密它們。

數位簽名在哈希和數位簽名中有詳述。