用户主密钥主要用于加密保护数据密钥并产生信封,也可直接用于加密少量的数据。由KMS托管的用户主密钥有不同的类型,您可以根据自己的需要,使用不同类型的密钥完成特定的功能。

密钥的算法

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。详情请参见服务端集成加密概述