本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 KMU 產生 AWS CloudHSM ECC 金鑰對
使用 AWS CloudHSM key_mgmt_util 工具中的 genECCKeyPair
命令,在您的硬體安全模組 (HSM) 中產生橢圓曲線密碼編譯 genECCKeyPair
命令時,您必須指定橢圓曲線識別碼和金鑰對的標籤。您也可以將私有金鑰共用給其他 CU 使用者、建立不可擷取的金鑰、由規定人數控制的金鑰及工作階段結束時就過期的金鑰。命令成功時會傳回 HSM 指派給公有和私有 ECC 金鑰的金鑰控制代碼。您可以使用金鑰控制代碼來向其他命令識別金鑰。
執行任何 key_mgmt_util 命令之前,您必須先啟動 key_mgmt_util 並以加密使用者 (CU) 的身分登入 HSM。
提示
如要尋找您已建立之金鑰的屬性,例如類型、長度、標籤和 ID,請使用 getAttribute。如要尋找特定使用者的金鑰,請使用 getKeyInfo。如要根據金鑰屬性值來尋找金鑰,請使用 findKey。
語法
genECCKeyPair -h genECCKeyPair -i <EC curve id> -l <label> [-id <key ID>] [-min_srv <minimum number of servers>] [-m_value <0..8>] [-nex] [-sess] [-timeout <number of seconds> ] [-u <user-ids>] [-attest]
範例
以下範例示範如何使用 genECCKeyPair 在 HSM 中建立 ECC 金鑰對。
範例 :建立和檢查 ECC 金鑰對
此命令使用 NID_secp384r1 橢圓曲線和 ecc14
標籤建立 ECC 金鑰對。輸出顯示私有金鑰的金鑰控制代碼是 262177
,而公有金鑰的金鑰控制代碼是 262179
。公有和私有金鑰都會套用此標籤。
Command:
genECCKeyPair -i 14 -l ecc14
Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 262179 private key handle: 262177 Cluster Error Status Node id 2 and err state 0x00000000 : HSM Return: SUCCESS Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
產生金鑰後,您可以檢查其屬性。使用 getAttribute,將新 ECC 私有金鑰的所有屬性 (以常數 512
表示) 寫入 attr_262177
檔案。
Command:
getAttribute -o 262177 -a 512 -out attr_262177
got all attributes of size 529 attr cnt 19 Attributes dumped into attr_262177 Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS
然後使用 cat
命令來檢視 attr_262177
屬性檔案的內容。輸出顯示金鑰是橢圓曲線私有金鑰,可用於簽署,但不可用於加密、解密、包裝、取消包裝或驗證。金鑰為持久性且可匯出。
$
cat attr_262177
OBJ_ATTR_CLASS 0x03 OBJ_ATTR_KEY_TYPE 0x03 OBJ_ATTR_TOKEN 0x01 OBJ_ATTR_PRIVATE 0x01 OBJ_ATTR_ENCRYPT 0x00 OBJ_ATTR_DECRYPT 0x00 OBJ_ATTR_WRAP 0x00 OBJ_ATTR_UNWRAP 0x00 OBJ_ATTR_SIGN 0x01 OBJ_ATTR_VERIFY 0x00 OBJ_ATTR_LOCAL 0x01 OBJ_ATTR_SENSITIVE 0x01 OBJ_ATTR_EXTRACTABLE 0x01 OBJ_ATTR_LABEL ecc2 OBJ_ATTR_ID OBJ_ATTR_VALUE_LEN 0x0000008a OBJ_ATTR_KCV 0xbbb32a OBJ_ATTR_MODULUS 044a0f9d01d10f7437d9fa20995f0cc742552e5ba16d3d7e9a65a33e20ad3e569e68eb62477a9960a87911e6121d112b698e469a0329a665eba74ee5ac55eae9f5 OBJ_ATTR_MODULUS_BITS 0x0000019f
範例 使用無效的 EEC 曲線
此命令嘗試使用 NID_X9_62_prime192v1 曲線建立 ECC 金鑰對。由於該橢圓曲線不適用於 FIPS 模式的 HSM,命令會失敗。訊息報告叢集內有一部伺服器無法使用,但這通常不表示叢集內的 HSM 有問題。
Command:
genECCKeyPair -i 1 -l ecc1
Cfm3GenerateKeyPair returned: 0xb3 : HSM Error: This operation violates the current configured/FIPS policies Cluster Error Status Node id 0 and err state 0x30000085 : HSM CLUSTER ERROR: Server in cluster is unavailable
參數
- -h
-
顯示命令的說明。
必要:是
- -i
-
指定橢圓曲線的識別符。輸入識別符。
有效值:
-
2: NID_X9_62_prime256v1
-
14: NID_secp384r1
-
16: NID_secp256k1
必要:是
-
- -l
-
指使用者定義的金錀對標籤。輸入一個字串。相同標籤套用至金錀對中的兩個金鑰。
label
的大小上限為 127 個字元。您可以使用任何可以幫助您識別金錀的片語。標籤不具唯一性,因此您可使用標籤將金錀進行分組和分類。
必要:是
- -id
-
指使用者定義的金錀對識別符。輸入叢集中唯一的字串。預設為空字串。您指定的 ID 會套用至金錀對中的兩個金鑰。
預設:無 ID 值。
必要:否
- -min_srv
-
指在
-timeout
參數值過期之前同步金鑰所需的 HSM 數量下限。如果未在規定時間內同步至指定數量的伺服器,金鑰就不會建立。AWS CloudHSM 會自動將每個金鑰同步到叢集中的每個 HSM。要加速流程,請將
min_srv
值設定為少於叢集中之 HSM 的數量,並設定低逾時值。然而,請注意有些請求可能不會產生金鑰。預設:1
必要:否
- -m_value
-
指須核准使用金錀對中私有金鑰之密碼編譯操作的使用者數量。輸入
0
到8
之間的值。此參數會建立私有金鑰的規定人數驗證要求。預設值
0
會停用金鑰的規定人數驗證功能。啟用規定人數驗證時,指定數目的使用者必須簽署權杖,才能核准使用私用金鑰的密碼編譯操作,以及核准共用或取消共用私有金鑰的操作。如要尋找金鑰的
m_value
,請使用 getKeyInfo。只有當命令中的
-u
參數與一定數量的使用者共用金鑰對以符合m_value
要求時,此參數才有效。預設:0
必要:否
- -nex
-
使私有金鑰無法擷取。產生的私有金鑰無法從 HSM 匯出。公有金錀始終可擷取。
預設:金鑰對中的公有金鑰和私有金鑰均可擷取。
必要:否
- -sess
-
建立只在目前工作階段中存在的金鑰。工作階段結束後,金鑰無法復原。
當您僅短暫需要金鑰 (例如,加密後快速解密另一個金鑰的包裝金鑰) 時,請使用此參數。請勿使用工作階段金鑰來加密工作階段結束後可能需要解密的資料。
若要將工作階段金鑰更改為持久性 (權杖) 金鑰,請使用 setAttribute。
預設:此金鑰是持久性金鑰。
必要:否
- -timeout
-
指命令等待金鑰同步到
min_srv
參數指定數目的 HSM 的時長 (以秒為單位)。此參數只有在命令中同時使用
min_srv
參數時才有效。預設:無逾時。該命令會無限期等待,並且僅在將金錀同步到最小數目的伺服器時才返回。
必要:否
- -u
-
與指定使用者共用金錀對中的私有金鑰。此參數允許其他 HSM 加密使用者 (CU) 在密碼編譯操作中使用此金鑰。任何使用者均可在無需共用的情況下使用公有金錀。
輸入以逗號分隔的 HSM 使用者 ID 清單,例如 -
u 5,6
。請勿包含現行使用者的 HSM 使用者 ID。若要尋找 HSM 上 CU 的 HSM 使用者 ID,請使用 listUsers。之後,如要共用或取消共用現有金鑰,請使用 cloudhsm_mgmt_util 中的 shareKey。預設:只有目前使用者能使用匯入的私有金鑰。
必要:否
- -attest
執行完整性檢查,以驗證執行叢集的韌體未被篡改。
預設:無認證檢查。
必要:否