导入密钥材料
操作场景
当用户希望使用自己的密钥材料,而不是KMS生成的密钥材料时,可通过密钥管理服务界面将自己的密钥材料导入到KMS,由KMS统一管理。
该任务指导用户通过密钥管理服务界面导入密钥材料。
- 导入的密钥与通过密钥管理服务创建的用户主密钥一样支持启用、禁用、计划删除和取消删除等操作。
- 用户仅能导入256位对称密钥。
前提条件
- 已获取管理控制台的登录帐号与密码。
- 已准备好待导入的密钥材料。
操作步骤
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域或项目。
- 选择 ,进入密钥管理服务界面。
- 单击页面右上角的“导入密钥”,弹出“导入密钥”对话框。
- 在弹出的对话框中填写密钥的“别名”、“企业项目”与“描述”。
图1 创建空密钥
- (可选)用户可根据自己的需要为用户主密钥添加标签,输入“标签键”和“标签值”。
- 当用户在创建密钥时,没有为该用户主密钥添加标签。若用户需要为该用户主密钥添加标签,可单击该用户主密钥的别名,进入密钥详情页面,为该用户主密钥添加标签。
- 同一个用户主密钥下,一个标签键只能对应一个标签值;不同的用户主密钥下可以使用相同的标签键。
- 用户最多可以给单个用户主密钥添加20个标签。
- 当同时添加多个标签,需要删除其中一个待添加的标签时,可单击该标签所在行的“删除”,删除标签。
- 单击“安全性与持久性”阅读并了解导入密钥的安全性和持久性。
- 勾选“我已经了解导入密钥的安全性和持久性”,创建密钥材料为空的用户主密钥。
- 单击“下一步”,进入“获取包装密钥和导入令牌”页面。根据表1选择密钥包装算法。
图2 获取包装密钥和导入令牌
表1 密钥包装算法说明 密钥包装算法
说明
设置
RSAES_OAEP_SHA_256
具有“SHA-256”哈希函数的OAEP的RSA加密算法。
请用户根据自己的HSM功能选择加密算法。
- 如果您的HSM支持“RSAES_OAEP_SHA_256”加密算法,推荐使用“RSAES_OAEP_SHA_256”加密密钥材料。
- 如果您的HSM不支持“OAEP”选项,用户可以使用“RSAES_PKCS1_V1_5”加密密钥材料。
须知:“RSAES_OAEP_SHA_1”加密算法已经不再安全,请谨慎选择。
RSAES_PKCS1_V1_5
PKCS#1 v1.5版本的RSA加密算法。
RSAES_OAEP_SHA_1
具有“SHA-1”哈希函数的OAEP的RSA加密算法。
- 单击“下载”,下载的文件包含包装密钥、导入令牌和说明文件,如图3所示。
- wrappingKey_密钥ID_下载时间:即包装密钥,用于加密密钥材料的包装密钥。
- importToken_密钥ID_下载时间:即导入令牌,KMS导入密钥材料时需要使用。
- README_密钥ID_下载时间:即说明文件,记录包装密钥序列号、密钥包装算法、包装密钥文件名称、令牌文件名称以及包装密钥和令牌的过期时间。
包装密钥和导入令牌将在24小时后失效,失效后将不能使用。如果包装密钥和导入令牌失效,请重新下载包装密钥和导入令牌。
同时,用户也可以通过调用API接口的方式获取包装密钥和导入令牌。- 调用“get-parameters-for-import”接口,获取包装密钥和导入令牌。
如下以获取密钥ID为“43f1ffd7-18fb-4568-9575-602e009b7ee8”,加密算法为“RSAES_PKCS1_V1_5”的包装密钥和导入令牌为例。
“public_key”:调用API接口返回的base64编码的包装密钥内容。
“import_token”:调用API接口返回的base64编码的导入令牌内容。
- 请求样例
{ "key_id": "43f1ffd7-18fb-4568-9575-602e009b7ee8", "wrapping_algorithm":"RSAES_PKCS1_V1_5" }
- 响应样例
{ "key_id": "43f1ffd7-18fb-4568-9575-602e009b7ee8", "public_key":"public key base64 encoded data", "import_token":"import token base64 encoded data", "expiration_time":1501578672 }
- 请求样例
- 保存包装密钥,包装密钥需要按照以下步骤转换格式。使用转换格式后的包装密钥进行加密的密钥材料才能成功导入管理控制台。
- 复制包装密钥“public_key”的内容,粘贴到“.txt”文件中,并保存为“PublicKey.b64”。
- 使用OpenSSL,执行以下命令,对“PublicKey.b64”文件内容进行base64转码,生成二进制数据,并将转码后的文件保存为“PublicKey.bin”。
openssl enc -d -base64 -A -in PublicKey.b64 -out PublicKey.bin
- 保存导入令牌,复制导入令牌“import_token”的内容,粘贴到“.txt”文件中,并保存为“ImportToken.b64”。
- 使用下载的“包装密钥”对待导入的密钥材料进行加密。
- 方法一:使用下载的包装密钥在自己的HSM中加密密钥材料,详细信息请参考您的HSM操作指南。
- 方法二:采用OpenSSL加密密钥材料。
若用户需要使用openssl pkeyutl命令,OpenSSL需要是1.0.2及以上版本。
如下以使用下载的包装密钥,加密生成的密钥材料(256位对称密钥)为例说明,操作步骤如下所示:- 执行以下命令,生成密钥材料(256位对称密钥),并将生成的密钥材料以“PlaintextKeyMaterial.bin”命名保存。
openssl rand -out PlaintextKeyMaterial.bin 32
- 使用下载的包装密钥加密密钥材料,并将加密后的密钥材料按“EncryptedKeyMaterial.bin”命名保存。
以下命令中的PublicKey.bin参数请以10下载的包装密钥名称wrappingKey_密钥ID_下载时间进行替换。
表2 使用下载的包装密钥加密生成的密钥材料 包装密钥算法
加密生成的密钥材料
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 pkeyutl
-in PlaintextKeyMaterial.bin
-inkey PublicKey.bin
-out EncryptedKeyMaterial.bin
-keyform der
-pubin -encrypt
-pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha1
- 执行以下命令,生成密钥材料(256位对称密钥),并将生成的密钥材料以“PlaintextKeyMaterial.bin”命名保存。
- 单击“下一步”,进入“导入密钥材料”页面。根据表3配置参数。
图4 导入密钥材料
- 单击“下一步”,进入“导入密钥令牌”页面。根据表4设置参数。
图5 导入密钥令牌
- 单击“确定”,完成导入密钥。
密钥ID、导入的密钥材料和导入的令牌需要全部匹配,密钥材料才能导入成功,否则会导入失败。
用户可在密钥列表中查看到导入的密钥信息,导入密钥的默认状态为“启用”。