对称加密是最常用的数据加密保护方式。KMS提供了简单易用的接口,方便您在云上轻松实现数据加解密功能。
如果您不指定具体的密钥规格(KeySpec),KMS默认创建对称密钥。阿里云支持主流的对称密钥算法并且提供足够的安全强度,保证数据加密的安全性。
对称密钥的类型
算法 | 密钥长度 | 密钥规格 | 数据加密模式 | 保护级别 |
---|---|---|---|---|
AES | 256比特 | Aliyun_AES_256 | GCM |
|
SM4 说明 | 128比特 | Aliyun_SM4 | GCM | HSM |
加解密特性
调用Encrypt、ReEncrypt、GenerateDataKey或GenerateDataKeyWithoutPlaintext接口加密时,您只需指定用户主密钥的标识符(或别名),KMS使用指定的用户主密钥完成加密后,返回密文数据。调用Decrypt接口进行解密时,您只需要传入密文数据,而不需要再次指定主密钥的标识符。
使用额外认证数据
KMS的对称密钥使用了分组密码算法的GCM模式,支持您传入额外的认证数据(Additional Authenticated Data,简称AAD),为需要加密的数据提供额外的完整性保护。KMS对额外认证数据的传入进行了封装,帮助您更方便的自定义认证数据,详情请参见EncryptionContext说明。
信封加密
KMS通过GenerateDataKey和GenerateDataKeyWithoutPlaintext接口,一次性产生两级密钥结构,支持更快速的实现信封加密。详情请参见使用KMS信封加密在本地加密和解密数据。
轮转对称加密密钥
KMS生成的对称主密钥支持多个密钥版本,同时支持用户主密钥基于密钥版本进行自动轮转,您可以自定义密钥轮转的策略。
在CMK包含多个版本时,KMS的加密动作(例如:Encrypt、GenerateDataKey和GenerateDataKeyWithoutPlaintext)使用指定用户主密钥的最新密钥版本对数据进行加密。解密时,您不需要传入用户主密钥标识符和版本标识符,KMS会自动发现传入密文数据使用的用户主密钥以及对应的加密密钥版本,使用相应版本的密钥材料对数据进行解密。
密钥的自动轮转通过产生新的密钥版本来实现。轮转后,调用KMS接口产生的密文数据自动使用最新版本,而轮转之前产生的密文数据仍然可以使用旧的密钥版本解密。详情请参见自动轮转密钥。
使用自带密钥
为了满足更高的安全合规要求,KMS支持您使用自带密钥(BYOK)进行云上数据的加密保护。对于自带密钥的情形,我们推荐您使用托管密码机对密钥进行保护,将您的密钥导入到保护级别为HSM的用户主密钥中。导入到托管密码机中的密钥只能被销毁,其明文无法被导出。详情请参见导入密钥材料。