对称加密是最常用的数据加密保护方式,KMS提供了简单易用的接口,方便您在云上轻松实现数据加解密的功能。

您在KMS中创建的用户主密钥,如果不指定特定的KeySpec参数,则是对称密钥。阿里云支持主流的对称密钥算法并且提供足够的安全强度,保证数据加密的安全性。

对称密钥的类型

KMS支持的对称密钥算法类型为:
  • AES

    KMS支持的AES密钥强度为256比特,KeySpec为Aliyun_AES_256。加密接口使用GCM模式进行数据加密。软件和HSM保护级别的密钥均支持AES类型的对称密钥。

  • SM4

    KMS支持中国国家标准规定的商用对称密码算法SM4,KeySpec为Aliyun_SM4。加密接口使用GCM模式进行数据加密。KMS通过托管密码机提供SM4算法,请查看支持的地域

加解密特性

加密时,您只需要指定主密钥的标识符(或者主密钥别名),KMS使用指定的主密钥完成加密后,返回密文数据。调用Decrypt接口进行解密时,您只需要传入密文数据,而不需要再次指定主密钥的标识符,这适用于调用EncryptGenerateDataKeyGenerateDataKeyWithoutPlaintext产生的密文数据。

使用额外认证数据

KMS的对称密钥使用了分组密码算法的GCM模式,支持您传入额外的认证数据(Additional Authenticated Data,简称AAD),为需要加密的数据提供额外的完整性保护。KMS对额外认证数据的传入进行了封装,更方便的支持您自定义认证数据,详情请参见EncryptionContext说明

信封加密

KMS通过GenerateDataKeyGenerateDataKeyWithoutPlaintext接口,一次性产生两级密钥结构,支持更快速的实现信封加密。请参考什么是信封加密?以及使用KMS信封加密在本地加密、解密数据

轮转对称加密密钥

KMS生成的对称CMK支持多个密钥版本,同时支持CMK基于密钥版本进行自动轮转,您可以自定义密钥轮转的策略。

在CMK包含多个版本时,KMS的加密动作(包含Encrypt、GenerateDataKey、GenerateDataKeyWithoutPlaintext)使用指定CMK的最新的密钥版本对数据进行加密。解密时,您不需要传入CMK标识符和版本标识符,KMS自动发现传入密文数据使用的CMK以及对应的加密密钥版本,使用相应版本的密钥材料对数据进行解密。

密钥的自动轮转通过产生新的密钥版本来实现,轮转后,调用KMS接口产生的密文数据自动使用最新版本;而轮转之前产生的密文数据仍然可以使用旧的密钥版本解密。请参考自动轮转密钥了解更多。

使用自带密钥

为了满足更高的安全合规要求,KMS支持您使用自带密钥(BYOK)用于云上数据的加密保护。对于自带密钥的情形,我们推荐您使用托管密码机对密钥进行保护,将您的密钥导入到保护级别为HSM的CMK中。导入到托管密码机中的密钥只能被销毁,其明文无法被导出。参考导入密钥材料了解更多。