概述

最近更新时间:2020-07-28 09:44:40

信封加密(Envelope Encryption)是一种应对海量数据的高性能加解密方案。对于较大的文件或者对性能敏感的数据加密,使用 GenerateDataKey 接口生成数据加密密钥 DEK,只需要传输数据加密密钥 DEK 到 KMS 服务端(通过CMK 进行加解密),所有的业务数据都是采用高效的本地对称加密处理,对业务的访问体验影响很小。
在实际业务场景中,对数据加密性能要求较高,数据加密量大的场景下,可通过生成 DEK 来对本地数据进行加解密,保证了业务加密性能的要求,同时也由 KMS 确保了数据密钥的随机性和安全性。

KMS 加密方案对比

对比项 敏感信息加密 信封加密
相关密钥 CMK CMK、DEK
性能 对称加密,远程调用 少量远程对称加密,海量本地对称加密
主要场景 密钥、证书、小型数据,适用于调用频率较低的场景 海量大型数据,适用于对性能要求较高的场景

示意图

本场景中,KMS 生成的 CMK 作为重要资源,通过 CMK 生成和获取 DEK 的明文和密文。用户根据实际业务场景,首先在内存中通过 DEK 明文来对本地数据进行加密,然后将 DEK 密文和密文数据落盘,其次在业务解密场景中需通过 KMS 来解密 DEK 密文,最后通过解密出来的 DEK 明文在内存中解密。

功能特点

  • 高效:所有的业务数据都是采用高效的本地对称加密处理,对业务的访问体验影响很小。而对于 DEK 的创建和加解密开销,除了非常极端的情况下,您需要采用"一次一钥"的方案,大部分场景下可以在一段时间内复用一个 DEK 的明文和密文,所以大多数情况下这部分开销非常小。
  • 安全易用:信封加密的安全性由 KMS 密钥安全提供保障。由DEK 保护业务数据,而腾讯云 KMS 则保护 DEK 并提供更好的可用性,您的主密钥主要用来生成 DEK,并且只有具备密钥访问权限的对象才能操作。

注意事项

  • 需注意 SecretId 和 SecretKey 的保密存储:
    • 腾讯云接口认证主要依靠 SecretID 和 SecretKey,SecretID 和 SecretKey 是用户的唯一认证凭证。业务系统需要该凭证调用腾讯云接口。
  • 需注意 SecretID 和 SecretKey 的权限控制:
    • 建议使用子账号,根据业务需要进行接口授权的方式管控风险。
  • 需注意业务系统对明文密钥的处理:
    • 信封加密场景中采用的是对称加密,故明文密钥不可落盘,需在业务流程的内存中使用。
  • 需注意后台系统对数据密钥的处理:
    • 信封加密场景中采用的是对称加密,可根据业务需求复用同一个数据密钥或针对不同用户、不同时间使用不同的数据密钥进行加密,避免 DEK 重复。
目录