导入密钥材料

2025-01-06 02:30:40

用户主密钥包含密钥元数据(密钥ID、密钥别名、描述、密钥状态与创建日期)和用于加解密数据的密钥材料。

Ÿ   当用户使用KMS管理控制台创建用户主密钥时,KMS系统会自动为该用户主密钥生成密钥材料。

Ÿ   当用户希望使用自己的密钥材料时,可通过KMS管理控制台的导入密钥功能创建密钥材料为空的用户主密钥,并将自己的密钥材料导入该用户主密钥中。

注意事项

当您选择密钥材料来源为外部,使用您自己导入的密钥材料时,需要注意以下几点:

Ÿ   请确保您使用了符合安全要求的随机源生成密钥材料;

Ÿ   用户在使用导入密钥时,需要对自己密钥材料的可靠性负责;

Ÿ   请保存密钥材料的原始备份,以便在意外删除密钥材料时,能及时将备份的密钥材料重新导入KMS。

导入密钥材料的功能特性

Ÿ   可用性与持久性

在将密钥材料导入KMS之前,用户需要确保密钥材料的可用性和持久性。

导入的密钥材料与通过KMS创建密钥时自动生成的密钥材料的区别,如下表所示。

密钥材料来源

说明

外部导入

Ÿ     支持手动删除密钥材料,但该主密钥及其元数据仍然保留。

Ÿ     导入密钥材料时,可以设置密钥材料过期时间,密钥材料过期后,KMS将自动删除密钥材料,但该主密钥及其元数据仍然保留。

Ÿ     导入的密钥材料被删除后,可以再次导入相同的密钥材料使得CMK再次可用。用户需自行备份密钥材料,以便密钥材料失效或误删除时重新导入该密钥材料。

KMS创建

Ÿ     不能手动删除密钥材料,不能设置密钥材料过期时间。

Ÿ     密钥材料只能通过设置CMK计划删除时间后,到期后随CMK一并删除。

Ÿ   关联性

当您将密钥材料导入CMK时,该CMK与该密钥材料永久关联,不能将其他密钥材料导入该CMK中,即便密钥材料已经过期或者被删除

Ÿ   独立性

CMK具有唯一性,即您使用CMK加密的数据,无法使用其他CMK进行解密,即便这些CMK都使用相同的密钥材料。

限制条件

Ÿ   AES_256类型的CMK需导入256位对称密钥作为密钥材料。

Ÿ   从KMS获取到的导入令牌与加密密钥材料的公钥具有绑定关系,一个令牌只能为其生成时指定的主密钥导入密钥材料。导入令牌的有效期为24小时,在有效期内可以重复使用,失效以后需要获取新的导入令牌和加密公钥。

操作步骤-导入密钥材料

1.     创建用户主密钥,其中密钥材料来源选择外部,并勾选我了解使用外部密钥材料的方法和意义”

    

2.     获取导入密钥材料参数。

1)在密钥列表,点击密钥ID,进入密钥详情,在密钥材料区域,单击获取导入密钥材料参数

2)在获取导入密钥材料参数对话框,选择公钥类型加密算法,单击确定

配置项说明

配置项

说明

公钥类型

l  取值:

Ÿ     RSA_2048(默认)

加密算法

取值:

Ÿ     RSAES_PKCS1_V1_5

Ÿ     RSAES_OAEP_SHA_1

Ÿ     RSAES_OAEP_SHA_256

3)在获取导入密钥材料参数对话框,下载加密公钥导入令牌,然后单击确定

注意:导入令牌存在过期时间,请关注过期时间,及时进行导入。

3.     使用OPENSSL加密密钥材料。

加密公钥是一个2048比特的RSA公钥,使用的加密算法需要与获取导入密钥材料参数时指定的一致。由于加密公钥经过Base64编码,因此在使用时需要先进行Base64解码。您可以使用OPENSSL通过以下步骤获取加密的密钥材料。

1)创建一个密钥材料,使用OPENSSL产生一个随机数。

2)将加密公钥进行Base64解码。

3)根据指定的加密算法(以RSAES_OAEP_SHA_1为例)加密密钥材料。

4)将加密后的密钥材料进行Base64编码,保存为文本文件。

代码示例:

openssl rand -out KeyMaterial.bin 32
openssl enc -d -base64 -A -in PublicKey_base64.txt -out PublicKey.bin
openssl rsautl -encrypt -in KeyMaterial.bin -oaep -inkey PublicKey.bin  -keyform DER  -pubin -out EncryptedKeyMaterial.bin
openssl enc -e -base64 -A -in EncryptedKeyMaterial.bin -out EncryptedKeyMaterial_base64.txt

采用OpenSSL加密密钥材料,支持RSAES_OAEP_SHA_256,RSAES_PKCS1_V1_5 和RSAES_OAEP_SH A_1 三种密钥算法。OpenSSL命令代码示例如下表所示:

密钥算法

OpenSSL加密生成密钥材料命令代码示例

RSAES_OAEP_SHA_256

openssl pkeyutl -in PlaintextKeyMaterial.bin -inkey PublicKey.bin -out EncryptedKeyMaterial.bin -keyform der -pubin –encrypt -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256

RSAES_PKCS1_V1_5

openssl rsautl encrypt -in PlaintextKeyMaterial.bin –pkcs -inkey PublicKey.bin -keyform der –pubin -out EncryptedKeyMaterial.bin

RSAES_OAEP_SHA_1

openssl rsautl -encrypt -in   KeyMaterial.bin -oaep -inkey PublicKey.bin  -keyform DER  -pubin -out   EncryptedKeyMaterial.bin

4.     导入密钥材料。

1)在密钥列表,点击密钥ID,进入密钥详情,在密钥材料区域,单击导入密钥材料

 

2)在导入密钥材料对话框,上传加密密钥材料导入令牌,单击确定。

3)设置密钥材料过期时间,单击确定。导入密钥材料成功后,密钥状态从待导入更新为启用中

操作步骤-删除密钥材料

1.     登录密钥管理服务控制台

2.     在页面最上方的导航栏选择密钥所在的区域

3.     在密钥列表,点击更多,进入密钥详情,在密钥材料区域,单击删除密钥材料

4.     在删除密钥材料对话框,单击确定。密钥材料删除成功后,密钥状态从启用中更新为待导入


PUWnusWwlRvG