使用 展開 AWS CloudHSM 金鑰 KMU - AWS CloudHSM

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 展開 AWS CloudHSM 金鑰 KMU

使用 AWS CloudHSM key_mgmt_util 工具中的 unWrapKey命令,將包裝 (加密) 對稱或私有金鑰從 檔案匯入 HSM。它旨在匯入由 key_mgmt_util 中wrapKey命令包裝的加密金鑰,但也可以用來取消包裝與其他工具包裝的金鑰。不過,在這些情況下,我們建議您使用 PKCS#11JCE軟體程式庫來展開金鑰。

匯入的金鑰的運作方式與 產生的金鑰相同 AWS CloudHSM。不過,其 OBJ_ATTR_LOCAL 屬性的值為零,這表示它們不是在本機產生。

匯入金鑰後,請務必標示或刪除金鑰檔案。此命令不會阻止您將相同的金鑰資料匯入許多次。結果 (具有不同金鑰控制代碼和相同金鑰資料的多個金鑰) 會難以追蹤金鑰資料的使用情形,也就很難防止超過其加密限制。

在執行任何 key_mgmt_util 命令之前,您必須啟動 key_mgmt_util,並以加密使用者 (CU) HSM身分登入

語法

unWrapKey -h unWrapKey -f <key-file-name> -w <wrapping-key-handle> [-sess] [-min_srv <minimum-number-of-HSMs>] [-timeout <number-of-seconds>] [-aad <additional authenticated data filename>] [-tag_size <tag size>] [-iv_file <IV file>] [-attest] [-m <wrapping-mechanism>] [-t <hash-type>] [-nex] [-u <user id list>] [-m_value <number of users needed for approval>] [-noheader] [-l <key-label>] [-id <key-id>] [-kt <key-type>] [-kc <key-class] [-i <unwrapping-IV>]

範例

這些範例示範如何使用 unWrapKey ,將封裝的金鑰從 檔案匯入 HSMs。在第一個範例中,我們取消包裝由 wrapKey key_mgmt_util 命令包裝的金鑰,因此有標頭。在第二個範例中,我們取消包裝在 key_mgmt_util 外部包裝的金鑰,因此不會有標頭。

範例 :取消包裝金鑰 (含標頭)

此命令會將 3DES 個對稱索引鍵的包裝副本匯入 HSM。金鑰會與具有標籤 的AES金鑰展開包裝6,其密碼編譯方式與用來包裝 3DES 個金鑰的金鑰相同。此輸出說明檔案中的金鑰已取消包裝並匯入,且匯入金鑰的控制代碼為 29

Command: unWrapKey -f 3DES.key -w 6 -m 4 Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Key Unwrapped. Key Handle: 29 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
範例 :取消包裝金鑰 (無標頭)

此命令會將 3DES 個對稱索引鍵的包裝副本匯入 HSM。金鑰會與具有標籤 的AES金鑰展開包裝6,其密碼編譯方式與用來包裝 3DES 個金鑰的金鑰相同。由於這 3DES 個金鑰未包裝在 key_mgmt_util 中,因此會指定 noheader 參數,以及其所需的隨附參數:金鑰標籤 (unwrapped3DES)、金鑰類別 (4) 和金鑰類型 ()21。此輸出說明檔案中的金鑰已取消包裝並匯入,且匯入金鑰的控制代碼為 8

Command: unWrapKey -f 3DES.key -w 6 -noheader -l unwrapped3DES -kc 4 -kt 21 -m 4 Cfm3CreateUnwrapTemplate2 returned: 0x00 : HSM Return: SUCCESS Cfm2UnWrapWithTemplate3 returned: 0x00 : HSM Return: SUCCESS Key Unwrapped. Key Handle: 8 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

參數

-h

顯示命令的說明。

必要:是

-f

包含包裝金鑰的檔案路徑和名稱。

必要:是

-w

指定包裝金鑰。在 上輸入AES金鑰或RSA金鑰的金鑰控制碼HSM。此為必要參數。若要尋找金鑰控點,請使用 findKey命令。

若要建立包裝金鑰,請使用 genSymKey產生AES金鑰 (類型 31),或使用 genRSAKey配對產生RSA金鑰對 (類型 0)。如果您使用的是RSA金鑰對,請務必使用其中一個金鑰包裝金鑰,並將其與另一個金鑰展開包裝。若要驗證金鑰是否可以用作包裝金鑰,請使用 getAttribute取得屬性的值,該OBJ_ATTR_WRAP屬性由常數 表示262

必要:是

-sess

建立只在目前工作階段中存在的金鑰。工作階段結束後,金鑰無法復原。

當您僅短暫需要金鑰 (例如,加密後快速解密另一個金鑰的包裝金鑰) 時,請使用此參數。請勿使用工作階段金鑰來加密工作階段結束後可能需要解密的資料。

若要將工作階段金鑰變更為持久性 (金鑰) 金鑰,請使用 setAttribute

預設:此金鑰是持久性金鑰。

必要:否

-min_srv

指定 -timeout 參數值過期前HSMs,在其中同步金鑰的最小數量。如果未在規定時間內同步至指定數量的伺服器,金鑰就不會建立。

AWS CloudHSM 會自動將每個金鑰同步到叢集HSM中的每個金鑰。若要加速程序,請將 的值設定為min_srv小於叢集HSMs中的 數目,並設定低逾時值。然而,請注意有些請求可能不會產生金鑰。

預設:1

必要:否

-timeout

指定命令等待金鑰同步至 min_srv 參數所HSMs指定數目的時間 (以秒為單位)。

此參數只有在命令中同時使用 min_srv 參數時才有效。

預設:無逾時。該命令會無限期等待,並且僅在將金錀同步到最小數目的伺服器時才返回。

必要:否

-attest

執行完整性檢查,以驗證執行叢集的韌體未被篡改。

預設:無認證檢查。

必要:否

-nex

使金鑰無法擷取。產生的金鑰無法從 匯出HSM

預設:此金鑰可擷取。

必要:否

-m

表示包裝機制的值。雲端HSM支援下列機制:

Mechanism Value
AES_KEY_WRAP_PAD_PKCS5 4
NIST_AES_WRAP_NO_PAD 5
NIST_AES_WRAP_PAD 6
RSA_AES 7
RSA_OAEP (如需資料大小上限,請參閱本節後文的備註) 8
AES_GCM 10
CLOUDHSM_AES_GCM 11
RSA_PKCS (如需資料大小上限,請參閱本節後文的備註)。請參閱下列備註 1 查看即將進行的變更。 12

必要:是

注意

使用RSA_OAEP包裝機制時,您可以包裝的金鑰大小上限取決於RSA金鑰模數和指定雜湊的長度,如下所示:金鑰大小上限 = modulusLengthIn位元組 (2*hashLengthIn位元組)-2。

使用 RSA_PKCS 包裝機制時,您可以包裝的金鑰大小上限取決於RSA金鑰模數,如下所示:金鑰大小上限 = (modulusLengthIn位元組 -11)。

-t
雜湊演算法 Value
SHA1 2
SHA256 3
SHA384 4
SHA512 5
SHA224 (對 RSA_AESRSA_OAEP 機制有效) 6

必要:否

-noheader

如果您的金鑰是在 key_mgmt_util 外部包裝,則您必須指定此參數和所有其他相關參數。

必要:否

注意

指定此參數時,您也必須指定下列 -noheader 參數:

  • -l

    指定要新增到取消包裝金鑰的標籤。

    必要:是

  • -kc

    指定要取消包裝的金鑰類別。以下是可接受的值:

    3 = 來自公私金鑰對的私有金鑰

    4 = 私密 (對稱) 金鑰

    必要:是

  • -kt

    指定要取消包裝的金鑰類型。以下是可接受的值:

    0 = RSA

    1 = DSA

    3 = ECC

    16 = GENERIC_SECRET

    21 = DES3

    31 = AES

    必要:是

您也可以選擇指定以下 -noheader 參數:

  • -id

    要新增到取消包裝金鑰的 ID。

    必要:否

  • -i

    要使用的取消包裝初始化向量 (IV)。

    必要:否

【1】 根據NIST指引,在 2023 年之後處於 FIPS 模式的叢集不允許這樣做。對於處於非FIPS 模式的叢集,在 2023 年之後仍然允許。如需詳細資訊,請參閱 FIPS 140 合規:2024 機制棄用

相關主題