信封加密

最近更新时间:2019-04-30 16:07:38

简介

信封加密(Envelope Encryption)是一种应对海量数据的高性能加解密方案。对于较大的文件或者对性能敏感的数据加密,使用 GenerateDataKey 接口生成 AES 数据加密密钥 DEK,只需要传输数据加密密钥 DEK 到 KMS 服务端(通过CMK 进行加解密),所有的业务数据都是采用高效的本地对称加密处理,对业务的访问体验影响很小。

示意图

操作步骤

创建明文 DEK

  1. 通过 KMS 云 API 来创建一个 AES 256 规格的数据密钥,详细操作步骤请参阅 生成数据密钥
  2. 用户通过第三方工具或者开发库创建(比如 OpenSSL)。

创建和保存密文 DEK

  1. 密文 DEK 可以通过 KMS 云 API 对明文加密生成,也可以通过在线工具来处理,详细操作步骤请参阅 加密解密
  2. 密文 DEK 由用户自行保存,常见的实现方案中,密文 DEK 会和密文业务数据保存在一起,比如存储场景下保存在一个或类似访问途径的存储容器,通信场景下与密文 DEK 和密文业务数据共同组成一个报文。

优势

高效

所有的业务数据都是采用高效的本地对称加密处理,对业务的访问体验影响很小。而对于 DEK 的创建和加解密开销,除了非常极端的情况下,您需要采用"一次一钥"的方案,大部分场景下可以在一段时间内复用一个 DEK 的明文和密文,所以大多数情况下这部分开销非常小。

安全易用

信封加密的安全性类似于常见公钥体系,DEK 保护业务数据,而腾讯云 KMS 则保护 DEK 并提供更好的可用性,您的主密钥无论如何都不会被泄露,只有有用密钥访问权限的对象才有能力操作 CMK。

何时在云上使用信封加密?

  1. 较大体积:目前 KMS API 支持4KB以下数据加解密。
  2. 海量数据,低延迟:想对业务数据加解密,但是又比较在乎访问延迟。腾讯云 KMS 后台虽然拥有非常高的性能,但是是远程调用且采用非对称加密,而信封加密方案大多数操作使用高性能的本地对称加密。

常见方案对比

敏感信息加密 信封加密
相关密钥 CMK CMK、DEK
性能 非对称加密,远程调用 少量远程非对称加密,海量本地对称加密
主要场景 密钥、证书、小型数据 海量大型数据