GenrSA KeyPair - AWS CloudHSM

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

GenrSA KeyPair

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]

示例

这些示例演示如何在您的 HSM 中使用 genRSAKeyPair 创建非对称密钥对。

例 :创建并检查 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 命令,该命令将获取属性文件的内容。有关解释密钥属性的帮助,请参阅 密钥属性引用

生成的十六进制值确认它是一个类型为 RSA (OBJ_ATTR_CLASS 0x02) 的公有密钥 (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 密钥对并与用户 4 (HSM 上的另一个 CU) 共享私有密钥。该命令使用 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。

必需:是

-环

指定公有指数。此值必须为大于或等于 65537 的奇数。

必需:是

-l

指定用户定义的密钥对标签。键入字符串。同样的标签适用于配对中的两个密钥。label 的最大大小为 127 个字符。

您可使用任何短语,以帮助您识别密钥。由于标签并非唯一,因此您可将其用于分组和分类密钥。

必需:是

-id

为密钥对指定用户定义标识符。在集群中键入唯一字符串。默认值是空字符串。您指定的 ID 适用于密钥对中的两个密钥。

默认值:无 ID 值。

必需:否

-min_srv

指定在 -timeout 参数的值到期之前密钥在其上同步的 HSM 数量的最小值。如果密钥在分配的时间内未同步到指定数量的服务器,则不会创建它。

AWS CloudHSM 自动将每个密钥同步到集群中的每个 HSM。要加快此过程,请将 min_srv 的值设置为小于集群中的 HSM 数,并设置一个较低的超时值。但请注意,一些请求可能无法生成密钥。

默认值:1

必需:否

-m_value

指定必须批准使用密钥对中的私有密钥进行任何加密操作的用户数量。键入 08 范围的值。

此参数规定了私有密钥的仲裁身份验证要求。默认值 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

运行完整性检查,以验证运行集群的固件是否被篡改。

默认:不执行认证检查。

必需:否

相关 主题