使用 產生 AWS CloudHSM RSA金鑰對 KMU - AWS CloudHSM

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

使用 產生 AWS CloudHSM RSA金鑰對 KMU

使用 AWS CloudHSM key_mgmt_util 工具中的 genRSAKeyPair命令來產生RSA非對稱金鑰對。您需要指定金鑰類型、模數長度及公有指數。此命令產生指定長度的模數並建立金鑰對。您可以指派 ID、與其他HSM使用者共用金鑰、建立無法擷取的金鑰,以及工作階段結束時過期的金鑰。當命令成功時,它會傳回 HSM指派給金鑰的金鑰控制碼。您可以使用金鑰控制代碼來向其他命令識別金鑰。

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

提示

若要尋找您建立之金鑰的屬性,例如類型、長度、標籤和 ID,請使用 getAttribute。若要尋找特定使用者的金鑰,請使用 getKeyInfo。若要根據金鑰的屬性值尋找金鑰,請使用 findKey

語法

genRSAKeyPair -h genRSAKeyPair -m <modulus length> -e <public exponent> -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]

範例

這些範例示範如何使用 在 中genRSAKeyPair建立非對稱金鑰對HSMs。

範例 :建立和檢查RSA金鑰對

此命令會建立具有 2048 位元模數和指數 65537 的RSA金鑰對。輸出顯示公有金鑰控制代碼是 2100177,私有金鑰控制代碼是 2100426

Command: genRSAKeyPair -m 2048 -e 65537 -l rsa_test Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 2100177 private key handle: 2100426 Cluster Status: Node id 0 status: 0x00000000 : HSM Return: SUCCESS Node id 1 status: 0x00000000 : HSM Return: SUCCESS

下一個命令會使用 getAttribute來取得我們剛建立之公有金鑰的屬性。此命令會將輸出寫入 attr_2100177 檔案。接著以 cat 命令來取得屬性檔案的內容。如需金錀屬性的解譯說明,請參閱 AWS CloudHSM 的金鑰屬性參考 KMU

產生的十六進位值確認其為公有金鑰 (OBJ_ATTR_CLASS 0x02),類型為 RSA(OBJ_ATTR_KEY_TYPE 0x00)。您可以使用此公有金鑰來加密 (OBJ_ATTR_ENCRYPT 0x01),但不能解密 (OBJ_ATTR_DECRYPT 0x00)。結果還包括金鑰長度 (512,0x200)、模數、模數長度 (2048,0x800) 及公有指數 (65537,0x10001)。

Command: getAttribute -o 2100177 -a 512 -out attr_2100177 Attribute size: 801, count: 26 Written to: attr_2100177 file Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS $ cat attr_2100177 OBJ_ATTR_CLASS 0x02 OBJ_ATTR_KEY_TYPE 0x00 OBJ_ATTR_TOKEN 0x01 OBJ_ATTR_PRIVATE 0x01 OBJ_ATTR_ENCRYPT 0x01 OBJ_ATTR_DECRYPT 0x00 OBJ_ATTR_WRAP 0x01 OBJ_ATTR_UNWRAP 0x00 OBJ_ATTR_SIGN 0x00 OBJ_ATTR_VERIFY 0x01 OBJ_ATTR_LOCAL 0x01 OBJ_ATTR_SENSITIVE 0x00 OBJ_ATTR_EXTRACTABLE 0x01 OBJ_ATTR_LABEL rsa_test OBJ_ATTR_ID OBJ_ATTR_VALUE_LEN 0x00000200 OBJ_ATTR_KCV 0xc51c18 OBJ_ATTR_MODULUS 0xbb9301cc362c1d9724eb93da8adab0364296bde7124a241087d9436b9be57e4f7780040df03c2c 1c0fe6e3b61aa83c205280119452868f66541bbbffacbbe787b8284fc81deaeef2b8ec0ba25a077d 6983c77a1de7b17cbe8e15b203868704c6452c2810344a7f2736012424cf0703cf15a37183a1d2d0 97240829f8f90b063dd3a41171402b162578d581980976653935431da0c1260bfe756d85dca63857 d9f27a541676cb9c7def0ef6a2a89c9b9304bcac16fdf8183c0a555421f9ad5dfeb534cf26b65873 970cdf1a07484f1c128b53e10209cc6f7ac308669112968c81a5de408e7f644fe58b1a9ae1286fec b3e4203294a96fae06f8f0db7982cb5d7f OBJ_ATTR_MODULUS_BITS 0x00000800 OBJ_ATTR_PUBLIC_EXPONENT 0x010001 OBJ_ATTR_TRUSTED 0x00 OBJ_ATTR_WRAP_WITH_TRUSTED 0x00 OBJ_ATTR_DESTROYABLE 0x01 OBJ_ATTR_DERIVE 0x00 OBJ_ATTR_ALWAYS_SENSITIVE 0x00 OBJ_ATTR_NEVER_EXTRACTABLE 0x00
範例 :產生共用RSA金鑰對

此命令會產生RSA金鑰對,並與 上的另一個 CU 使用者 4 共用私有金鑰HSM。此命令會使用 m_value 參數來要求至少兩次核准,才能將金鑰對的私有金鑰用於密碼編譯操作。當您使用 m_value 參數時,您在命令中還必須使用 -u,且 m_value 不可超過使用者總數 (-u 的值個數 + 擁有者)。

Command: genRSAKeyPair -m 2048 -e 65537 -l rsa_mofn -id rsa_mv2 -u 4 -m_value 2 Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 27 private key handle: 28 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 1 and err state 0x00000000 : HSM Return: SUCCESS

參數

-h

顯示命令的說明。

必要:是

-m

指模數的長度 (以位元為單位)。最小值為 2048。

必要:是

-e

指公有指數。值必須為大於或等於 65537 的奇數。

必要:是

-l

指使用者定義的金錀對標籤。輸入一個字串。相同標籤套用至金錀對中的兩個金鑰。label 的大小上限為 127 個字元。

您可以使用任何可以幫助您識別金錀的片語。標籤不具唯一性,因此您可使用標籤將金錀進行分組和分類。

必要:是

-id

指使用者定義的金錀對識別符。輸入叢集中唯一的字串。預設為空字串。您指定的 ID 會套用至金錀對中的兩個金鑰。

預設:無 ID 值。

必要:否

-min_srv

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

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

預設:1

必要:否

-m_value

指須核准使用金錀對中私有金鑰之密碼編譯操作的使用者數量。輸入 08 之間的值。

此參數會建立私有金鑰的規定人數驗證要求。預設值 0 會停用金鑰的規定人數驗證功能。啟用規定人數驗證時,指定數目的使用者必須簽署權杖,才能核准使用私用金鑰的密碼編譯操作,以及核准共用或取消共用私有金鑰的操作。

若要尋找金鑰m_value的 ,請使用 getKeyInfo

只有當命令中的 -u 參數與一定數量的使用者共用金鑰對以符合 m_value 要求時,此參數才有效。

預設:0

必要:否

-nex

使私有金鑰無法擷取。產生的私有金鑰無法從 匯出HSM。公有金錀始終可擷取。

預設:金鑰對中的公有金鑰和私有金鑰均可擷取。

必要:否

-sess

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

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

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

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

必要:否

-timeout

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

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

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

必要:否

-u

與指定使用者共用金錀對中的私有金鑰。此參數授予其他HSM加密使用者 (CUs) 在密碼編譯操作中使用私有金鑰的許可。任何使用者均可在無需共用的情況下使用公有金錀。

輸入以逗號分隔HSM的使用者 清單IDs,例如 -u 5,6。請勿包含目前HSM使用者的使用者 ID。若要在 CUs上尋找 IDs HSM的使用者HSM,請使用 listUsers。若要共用和取消共用現有金鑰,請在 cloudhsm_mgmt_util shareKey中使用 。

預設:只有目前使用者能使用匯入的私有金鑰。

必要:否

-attest

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

預設:無認證檢查。

必要:否

相關主題