您托管在密钥管理服务KMS(Key Management Service)的用户主密钥有不同的类型。您可以根据需要,使用不同类型的密钥完成特定功能,例如对数据进行加密和解密,或者用于数字签名的生成和验证。

密钥的算法

KMS的密钥支持多种算法,用于实现不同的密码运算。密钥主要分为对称密钥和非对称密钥两大类型。

密码算法大类 密码算法子类 是否支持加密、解密 是否支持签名、验签
对称密钥 AES 支持 不支持
对称密钥 SM4 说明 支持 不支持
非对称密钥 RSA 支持 支持
非对称密钥 ECC 不支持 支持
非对称密钥 SM2 说明 支持 支持
说明 仅中国内地的托管密码机支持SM4 、SM2密钥,详情请参见支持的地域

对称密钥主要用于数据的加密保护场景。如果您不指定具体的密钥规格(KeySpec),KMS默认创建对称密钥。通过使用KMS加解密的接口,您无需获得密钥的明文材料即可完成对数据的加解密操作。详情请参见对称加密概述

非对称密钥可用于数据加密和数字签名。您在KMS创建的非对称用户主密钥(CMK),由一对关联的公钥和私钥构成。公钥可以被分发给任何人,而私钥必须进行妥善保管。KMS可以确保私钥的安全性,不提供任何接口导出非对称密钥的私钥。您可以通过私钥运算的接口来使用私钥进行数据解密或数字签名。任何获得公钥的人,都可以使用公钥进行数据加密或验证私钥产生的签名。详情请参见非对称密钥概述

密钥的保护级别

KMS提供托管密码机,您可以指定用户主密钥的保护级别为HSM,将密钥托管在密码机中,使密钥获得高安全等级的专用硬件保护。保护级别为HSM的主密钥,其密钥材料的明文只会存在于密码机的内部。KMS通过密码机的接口进行密码运算,在运算过程中,KMS和阿里云的运维人员均无法接触到密钥材料的明文。这类密钥无法被明文导出密码机。详情请参见托管密码机简介使用托管密码机

如果您指定主密钥的保护级别为Software,则KMS通过软件模块对密钥进行保护,并且使用TPM对软件模块进行根保护。

密钥的托管者

通常情况下,您是KMS中的用户主密钥的托管者。在此情况下,密钥的Creator属性为您的阿里云账号的标识符。

在云服务集成KMS进行服务端加密的场景里,为了更方便您使用入门级的数据加密功能,缩减您在密钥生命周期和权限管理等方面的开销,KMS支持特定云服务为您自动托管一个加密密钥,专门用于相应的云服务对您的数据进行加密保护。这类由云服务托管的密钥被称为服务密钥。为了方便您辩识,服务密钥的Creator属性为相应的云服务代码,同时被关联了特殊的别名,格式为acs/<云服务代码>。例如:对象存储服务OSS为用户托管的服务密钥,Creator属性为OSS,同时被关联了别名acs/oss。详情请参见服务端集成加密概述