Todos os produtos
Search
Central de documentação

Key Management Service:Usar criptografia de envelope

Última atualização: Jun 27, 2026

Criptografar grandes volumes de dados diretamente pelo KMS aumenta a latência de rede e envia informações sensíveis para fora da sua máquina. A criptografia de envelope resolve esse problema ao manter a criptografia dos dados localmente: o KMS gera e protege uma chave de dados, e sua aplicação usa essa chave para criptografar os dados na própria máquina, sem enviá-los ao KMS.

Este tópico aborda a criptografia de envelope em suas próprias aplicações. Para criptografia no lado do servidor em serviços da Alibaba Cloud, consulte Integração com o KMS .

Tipos de chave aplicáveis

Use chaves protegidas por software e chaves protegidas por hardware para criptografia de envelope nas suas aplicações.

Importante

Chaves de serviço e chaves mestras de cliente (CMKs) usadas como chaves padrão também são compatíveis com criptografia de envelope, mas restringem-se à criptografia no lado do servidor em serviços da Alibaba Cloud — não as utilize para criptografia em suas próprias aplicações. As chaves protegidas por software e as protegidas por hardware funcionam tanto para criptografia no lado do servidor nos serviços da Alibaba Cloud quanto para criptografia em suas aplicações.

Como funciona

A segurança dos dados criptografados depende da proteção da chave de dados capaz de descriptografá-los. Criptografar essa chave com uma chave separada do KMS e armazenar a versão criptografada junto aos dados é a melhor prática implementada pela criptografia de envelope.

Fluxo de criptografia

image..png

  1. Chame GenerateDataKey para gerar uma chave de dados. Passe os seguintes parâmetros:

    Parâmetro

    Descrição

    KeyId

    ID ou alias da chave do KMS a ser usada

    NumberOfBytes

    Tamanho da chave de dados em bytes. Defina como pelo menos 24 bytes. Para AES (Advanced Encryption Standard), use 16, 24 ou 32 bytes. Para 3DES (Triple Data Encryption Standard), use 16 ou 24 bytes.

  2. Receba a chave de dados do KMS. A resposta contém três campos:

    Aviso

    Mantenha o texto cifrado da chave de dados seguro. Se você perdê-lo, a descriptografia será impossível e seus dados não poderão ser recuperados.

    Campo

    Descrição

    Texto simples da chave de dados

    Usado para criptografar dados localmente

    Texto cifrado da chave de dados

    O texto simples criptografado com sua chave do KMS no modo GCM (Galois/Counter Mode). Armazene-o junto ao texto cifrado dos dados.

    Parâmetros de criptografia

    O algoritmo de criptografia e o vetor de inicialização (IV) usados para gerar o texto cifrado da chave de dados

  3. Use o texto simples da chave de dados para criptografar os dados localmente com uma biblioteca ou módulo criptográfico que atenda aos requisitos de linguagem e conformidade. Destrua o texto simples da chave de dados assim que possível após a conclusão da criptografia.

  4. Armazene o texto cifrado dos dados juntamente com o texto cifrado da chave de dados, o identificador da chave do KMS e os parâmetros de criptografia.

Fluxo de descriptografia

image..png

  1. Leia o texto cifrado dos dados armazenado, o texto cifrado da chave de dados, o identificador da chave do KMS e os parâmetros de criptografia.

  2. Chame Decrypt com o texto cifrado da chave de dados e os parâmetros de criptografia para obter o texto simples da chave de dados do KMS.

  3. Use o texto simples da chave de dados para descriptografar o texto cifrado dos dados localmente.

Casos de uso

Criptografia de vários arquivos com chaves independentes

O uso de uma única chave para um grande número de arquivos aumenta o risco de comprometimento dessa chave. Com a criptografia de envelope, cada arquivo recebe uma chave de dados exclusiva protegida por uma única chave do KMS, isolando a exposição individualmente.

Criptografia de grandes volumes de dados

Enviar grandes quantidades de dados ao KMS para criptografia pela rede adiciona latência e custo. A criptografia de envelope mantém o processo local — apenas a pequena chave de dados é trocada com o KMS — tornando viável criptografar conjuntos massivos, como dados completos de disco.

Limitações

A criptografia de envelope exige uma chave simétrica do KMS proveniente de uma instância de gerenciamento de chaves via software ou hardware. Especificações de chave compatíveis:

Tipo de instância

Especificações compatíveis

Gerenciamento de chaves por software

Aliyun_AES_256

Gerenciamento de chaves por hardware

Aliyun_AES_256, Aliyun_AES_192, Aliyun_AES_128, Aliyun_DES3_192

Pré-requisitos

Antes de começar, certifique-se de ter:

Exemplos de código

Os exemplos abaixo usam uma chave de dados AES de 32 bytes criptografada no modo GCM.

Java

Usa a biblioteca criptográfica SunJCE Provider.

Python

Usa a biblioteca criptográfica cryptography.hazmat.

Go

Usa a biblioteca criptográfica golang/crypto.

PHP

Usa a biblioteca criptográfica OpenSSL.

Veja também