本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用受信任的金鑰 AWS CloudHSM
AWS CloudHSM 支援受信任的金鑰包裝,以保護資料金鑰免受內部威脅。本主題說明如何建立可信任金鑰來保護資料安全。
了解可信任金鑰
可信任金鑰是用來包裝其他金鑰的金鑰,管理員和加密管理員 (COs) 會使用屬性 CKA_TRUSTED
明確識別為可信任。此外,管理員和加密管理員 (CO) 會使用 CKA_UNWRAP_TEMPLATE
和相關屬性來指定可信任金鑰取消資料金鑰包裝後可執行的動作。由可信任金鑰取消資料金鑰包裝也必須包含這些屬性,取消包裝的操作才能成功,其有助於確保只允許已取消包裝的資料金鑰用於您想要的用途。
使用屬性 CKA_WRAP_WITH_TRUSTED
來識別您要使用可信任金鑰包裝的所有資料金鑰。這樣做可讓您限制資料金鑰,讓應用程式只能使用可信任金鑰來取消包裝。一旦您在資料金鑰上設定此屬性,屬性就會變成唯讀,而且無法變更。設定這些屬性後,應用程式只能使用您信任的金鑰來取消資料金鑰包裝,並且取消包裝一律會產生具有會限制這些金鑰使用方式屬性的資料金鑰。
可信任的金鑰屬性
下列屬性可讓您將金鑰標示為可信任、指定資料金鑰只能使用可信任金鑰進行包裝和取消包裝,以及控制資料金鑰在取消包裝後可執行的操作:
-
CKA_TRUSTED
:將此屬性 (除CKA_UNWRAP_TEMPLATE
外) 套用於將會包裝資料金鑰的金鑰,以表明管理員或加密管理員 (CO) 已完成必要的盡職調查並信任此金鑰。只有管理員或 CO 可以設定CKA_TRUSTED
。加密使用者 (CU) 擁有金鑰,但只有 CO 可以設置其CKA_TRUSTED
屬性。 -
CKA_WRAP_WITH_TRUSTED
:將此屬性套用於可匯出的資料金鑰,以表明只能使用標記為CKA_TRUSTED
的金鑰包裝此金鑰。一旦設定CKA_WRAP_WITH_TRUSTED
為 true,屬性就會變成唯讀,而且您無法變更或移除屬性。 -
CKA_UNWRAP_TEMPLATE
:將此屬性套用於包裝金鑰 (除CKA_TRUSTED
外),以指定服務必須自動套用於服務取消包裝資料金鑰的屬性名稱和值。當應用程式提交金鑰以取消包裝時,還可提供自有的取消包裝範本。如果您指定取消包裝範本,且應用程式提供了自有的取消包裝範本,則 HSM 會使用這兩個範本將屬性名稱和值套用於金鑰。但是,如果用於包裝金鑰的CKA_UNWRAP_TEMPLATE
中的值與應用程式在取消包裝請求期間提供的屬性衝突,取消包裝請求會失敗。
如需關於屬性的詳細資訊,請參閱下列主題:
如何使用可信任金鑰來包裝資料金鑰
若要使用可信任金鑰來包裝資料金鑰,您必須完成三個基本步驟:
對於您計劃使用可信任金鑰包裝的資料金鑰,請將其
CKA_WRAP_WITH_TRUSTED
屬性設定為 true。對於您計劃用來包裝資料金鑰的可信任金鑰,請將其
CKA_TRUSTED
屬性設定為 true。使用可受信任金鑰來包裝資料金鑰。
步驟 1:將資料金鑰的 CKA_WRAP_WITH_TRUSTED
設定為 true
對於要包裝的資料金鑰,選擇以下選項之一以將金鑰的 CKA_WRAP_WITH_TRUSTED
屬性設定為 true。這樣做會限制資料金鑰,因此應用程式只能使用可信任金鑰來包裝。
選項 1:如果產生一個新的金鑰,將 CKA_WRAP_WITH_TRUSTED
設定為 true
使用 PKCS #11、JCE 或 CloudHSM CLI 產生金鑰。如需詳細資訊,請參閱下列範例。
選項 2:如果使用現有金鑰,請使用 CloudHSM CLI 將其 CKA_WRAP_WITH_TRUSTED
設定為 true
若要將現有金鑰的 CKA_WRAP_WITH_TRUSTED
屬性設定為 true,請依照下列步驟執行:
步驟 2:將可信任金鑰的 CKA_TRUSTED
設定為 true
若要讓金鑰成為可信任金鑰,其 CKA_TRUSTED
屬性必須設定為 true。您可以使用 CloudHSM CLI 或 CloudHSM 管理公用程式 (CMU) 來執行此操作。
如果使用 CloudHSM CLI 設定金鑰的
CKA_TRUSTED
屬性,請參閱 如何使用 CloudHSM CLI 將金鑰標示為可信任。如果使用 CMU 來設定金鑰的
CKA_TRUSTED
屬性,請參閱 如何使用 CMU 將金鑰標示為可信任。
步驟 3。使用可受信任金鑰來包裝資料金鑰
若要使用您在步驟 2 中設定的可信任金鑰來包裝步驟 1 所述的資料金鑰,請參閱下列連結以取得程式碼範例。每個都示範如何包裝金鑰。
如何使用可信任金鑰取包裝消資料金鑰
若要解開資料金鑰,您需要 CKA_UNWRAP
設定為 true 的可信任金鑰。若要成為金鑰,其還必須滿足下列條件:
金鑰的
CKA_TRUSTED
屬性必須設定為 true。金鑰必須使用
CKA_UNWRAP_TEMPLATE
和相關屬性來指定資料金鑰在取消包裝後可以執行的動作。例如,如果您希望取消包裝的金鑰不可匯出,您可以將CKA_EXPORTABLE = FALSE
設定為CKA_UNWRAP_TEMPLATE
的一部分。
注意
CKA_UNWRAP_TEMPLATE
僅可與 PKCS #11 一同使用。
當應用程式提交要取消包裝的金鑰時,應用程式也可以提供自有的取消包裝範本。如果您指定取消包裝範本,且應用程式提供了自有的取消包裝範本,則 HSM 會使用這兩個範本將屬性名稱和值套用於金鑰。但是,如果在取消包裝請求期間,可信任金鑰中的值與應用程式提供的屬性 CKA_UNWRAP_TEMPLATE
衝突,則取消包裝請求會失敗。
若要查看關於使用可信任金鑰取消包裝金鑰的範例,請參閱此 PKCS #11 範例