Importar o material de chave - etapa 2: Fazer download da chave pública de empacotamento e do token de importação - AWS Key Management Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Importar o material de chave - etapa 2: Fazer download da chave pública de empacotamento e do token de importação

Depois de criar um material AWS KMS key sem chave, baixe uma chave pública de empacotamento RSA e um token de importação para essa chave KMS usando o AWS KMS console ou a API. GetParametersForImport A chave pública de empacotamento e o token de importação são um conjunto indivisível que deve ser usado em conjunto.

Você usará a chave pública de empacotamento para criptografar seu material de chave para transporte. Antes de fazer o download, selecione o comprimento (especificação de chave) do par de chaves de empacotamento RSA e o algoritmo de empacotamento que você usará para criptografar seu material de chave importado para transporte na etapa 3.

Cada conjunto de chave pública de empacotamento e de token de importação é válido por 24 horas. Se você não usá-los para importar material de chaves em até 24 horas após o download, será necessário fazer download de um novo conjunto. É possível fazer download de uma nova chave pública de empacotamento e de conjuntos de tokens de empacotamento a qualquer momento. Isso permitirá que você altere o comprimento da chave de empacotamento RSA (“especificação da chave”) ou substitua um conjunto perdido.

Também é possível baixar uma chave pública de empacotamento e o conjunto de tokens de importação para reimportar o mesmo material de chave para uma chave do KMS. É possível fazer isso para definir ou alterar o tempo de expiração do material de chaves ou para restaurar o material de chaves expirado ou excluído. Você deve baixar e recriptografar o material de chave toda vez que importá-lo para o AWS KMS.

Uso da chave pública de empacotamento

O download inclui uma chave pública, que é exclusiva da Conta da AWS, também chamada de chave pública de empacotamento.

Antes de importar material de chaves, criptografe o material de chaves com a chave pública de empacotamento e, depois, faça upload do material de chaves criptografado para o AWS KMS. Quando o AWS KMS recebe o material de chave criptografada, ele descriptografa o material da chave com a chave privada correspondente e, em seguida, recriptografa o material da chave sob uma chave simétrica AES, tudo dentro de um módulo de segurança de hardware (HSM) do AWS KMS.

Uso do token de importação

O download inclui um token de importação que contém metadados para garantir que o seu material de chaves seja importado corretamente. Ao fazer upload do material de chaves criptografado para o AWS KMS, você deve fazer upload do mesmo token de importação obtido por download nesta etapa.

Selecionar uma especificação de chave pública de empacotamento

Para proteger o material de chaves durante a importação, criptografe-o usando a chave pública de empacotamento baixada do AWS KMS e um algoritmo de empacotamento compatível. Selecione uma especificação de chave antes de fazer download da chave pública de empacotamento e do token de importação. Todos os pares de chaves de empacotamento são gerados em módulos de segurança de hardware (HSMs) do AWS KMS. A chave privada nunca sai do HSM em texto simples.

A especificação de chave da chave pública de empacotamento determina o comprimento das chaves no par de chaves RSA que protege o material de chave durante o transporte para o AWS KMS. Em geral, recomendamos o uso da chave pública de empacotamento mais longa possível. Oferecemos várias especificações de chave pública de empacotamento para oferecer suporte a uma variedade de HSMs e gerenciadores de chaves.

O AWS KMS oferece suporte às especificações de chave a seguir para as chaves de empacotamento RSA usadas para importar material de chaves de todos os tipos, exceto conforme indicado.

  • RSA_4096 (preferencial)

  • RSA_3072

  • RSA_2048

    nota

    A combinação a seguir NÃO é compatível: material de chave ECC_NIST_P521, especificação de chave de empacotamento pública RSA_2048 e um algoritmo de empacotamento RSAES_OAEP_SHA_*.

    Não é possível empacotar diretamente o material de chave ECC_NIST_P521 com uma chave de empacotamento pública RSA_2048. Use uma chave de empacotamento maior ou um algoritmo de empacotamento RSA_AES_KEY_WRAP_SHA_*.

Selecionar um algoritmo de empacotamento

Para proteger o material de chaves durante a importação, criptografe-o usando a chave pública de empacotamento baixada e um algoritmo de empacotamento.

O AWS KMS oferece suporte a vários algoritmos de empacotamento RSA padrão e um algoritmo de empacotamento híbrido de duas etapas. Em geral, recomendamos usar o algoritmo de empacotamento mais seguro que seja compatível com o material da chave importada e com a especificação da chave de empacotamento. Normalmente, você escolhe um algoritmo que é compatível com o módulo de segurança de hardware (HSM) ou com o sistema de gerenciamento de chaves que protege o material de chaves.

A tabela a seguir mostra os algoritmos de empacotamento compatíveis com cada tipo de material de chave e chave do KMS. Os algoritmos estão listados em ordem de preferência.

Material de chave Algoritmo e especificação de empacotamento compatíveis
Chave de criptografia simétrica

Chave AES de 256 bits

Chave 128-bit SM4 (somente nas regiões da China)

Algoritmos de empacotamento:

RSAES_OAEP_SHA_256

RSAES_OAEP_SHA_1

Algoritmos de empacotamento obsoletos:

RAES_PKCS1_V1

nota

Em 10 de outubro de 2023, AWS KMS não oferece suporte ao algoritmo de encapsulamento RSAES_PKCS1_V1_5.

Especificações da chave de empacotamento:

RSA_2048

RSA_3072

RSA_4096

Chave privada RSA assimétrica
Algoritmos de empacotamento:

RSA_AES_KEY_WRAP_SHA_256

RSA_AES_KEY_WRAP_SHA_1

Especificações da chave de empacotamento:

RSA_2048

RSA_3072

RSA_4096

Chave privada assimétrica de curva elíptica (ECC)

Não é possível usar os algoritmos de empacotamento RSAES_OAEP_SHA_* com a especificação da chave de empacotamento RSA_2048 para empacotar o material da chave ECC_NIST_P521.

Algoritmos de empacotamento:

RSA_AES_KEY_WRAP_SHA_256

RSA_AES_KEY_WRAP_SHA_1

RSAES_OAEP_SHA_256

RSAES_OAEP_SHA_1

Especificações da chave de empacotamento:

RSA_2048

RSA_3072

RSA_4096

Chave de HMAC
Algoritmos de empacotamento:

RSAES_OAEP_SHA_256

RSAES_OAEP_SHA_1

Especificações da chave de empacotamento:

RSA_2048

RSA_3072

RSA_4096

  • RSA_AES_KEY_WRAP_SHA_256 - Um algoritmo de empacotamento híbrido de duas etapas que combina a criptografia do seu material de chave com uma chave simétrica AES que você gera e, em seguida, criptografa a chave simétrica AES com a chave de empacotamento pública RSA baixada e o algoritmo de empacotamento RSAES_OAEP_SHA_256.

    É necessário um algoritmo de empacotamento RSA_AES_KEY_WRAP_SHA_* para empacotar material de chave privada RSA.

  • RSA_AES_KEY_WRAP_SHA_1 - Um algoritmo de empacotamento híbrido de duas etapas que combina a criptografia do seu material de chave com uma chave simétrica AES que você gera e, em seguida, criptografa a chave simétrica AES com a chave pública de empacotamento RSA baixada e o algoritmo de empacotamento RSAES_OAEP_SHA_1.

    Um algoritmo de empacotamento RSA_AES_KEY_WRAP_SHA_* é necessário para empacotar material de chave privada RSA.

  • RSAES_OAEP_SHA_256 — O algoritmo de criptografia RSA com Preenchimento da criptografia assimétrica ideal (OAEP) e função de hash SHA-256.

  • RSAES_OAEP_SHA_1 — O algoritmo de criptografia RSA com Preenchimento da criptografia assimétrica ideal (OAEP) e função de hash SHA-1.

  • RSAES_PKCS1_V1_5 (Obsoleto; a partir de 10 de outubro de 2023, o AWS KMS não oferece suporte ao algoritmo de empacotamento RSAES_PKCS1_V1_5) - o algoritmo de criptografia RSA com o formato de preenchimento definido no PKCS #1 Versão 1.5.

Fazer download da chave pública de empacotamento e do token de importação (console)

Você pode usar o console do AWS KMS para fazer download da chave pública de empacotamento e do token de importação.

  1. Se você acabou de concluir as etapas para criar uma chave do KMS sem material de chave e está na página Download wrapping key and import token (Baixar chave de empacotamento e token de importação), vá para Passo 9.

  2. Faça login no AWS Management Console e abra o console do AWS Key Management Service (AWS KMS) em https://console.aws.amazon.com/kms.

  3. Para alterar a Região da AWS, use o seletor de regiões no canto superior direito da página.

  4. No painel de navegação, escolha Customer managed keys (Chaves gerenciadas pelo cliente).

    dica

    É possível importar material de chave somente para uma chave do KMS simétrica com uma Origin (Origem) de External (Import key material) (Externa [Importar material de chave]). Isso indica que a chave do KMS foi criada sem material de chave. Para adicionar a coluna Origin (Origem) à tabela, no canto superior direito da página, selecione o ícone de configurações ( ). Ative Origin (Origem) e escolha Confirm (Confirmar).

  5. Escolha o alias ou o ID da chave do KMS com importação pendente.

  6. Expanda a seção Cryptographic configuration (Configuração criptográfica) e visualize seus valores. As guias estão abaixo da seção General configuration (Configuração geral).

    É possível importar material de chave somente para uma chave do KMS com uma Origin (Origem) de External (Import key material) (Externa [Importar material de chave]). Para obter informações sobre como criar chaves do KMS com material de chave importado, consulte Importação de material chave para AWS KMS chaves.

  7. Escolha a guia Key material (Material de chaves) e, em seguida, Import key material (Importar material de chave).

    A guia Key material (Material de chave) aparece somente para chaves do KMS que tenham um valor Origin (Origem) de External (Import key material) (Externo (Importar material de chave)).

  8. Em Selecionar especificação da chave de empacotamento, escolha a configuração da sua chave do KMS. Após a criação dessa chave, não será possível alterar a especificação da chave.

  9. Para Select wrapping algorithm, escolha a opção que você usará para criptografar o material de chaves. Para obter mais informações sobre as opções, consulte Selecionar um algoritmo de empacotamento.

  10. Escolha Download wrapping key and import token (fazer download da chave de empacotamento e token de importação) e salve o arquivo.

    Se houver a opção Next (Próximo), para continuar o processo agora, selecione Next (Próximo). Para continuar mais tarde, selecione Cancel (Cancelar).

  11. Descompacte o arquivo .zip que você salvou na etapa anterior (Import_Parameters_<key_id>_<timestamp>).

    A pasta contém os seguintes arquivos:

    • Uma chave pública RSA de empacotamento em um arquivo chamado WrappingPublicKey.bin.

    • Um token de importação em um arquivo chamado ImportToken.bin.

    • Um arquivo de texto chamado README.txt. Este arquivo contém informações sobre a chave pública de empacotamento, o algoritmo de encapsulamento a ser usado para criptografar o material de chaves e a data e hora em que a chave pública de empacotamento e o token de importação expiram.

  12. Para continuar o processo, consulte criptografe o material de chaves.

Baixar a chave pública de empacotamento e o token de importação (API do AWS KMS)

Para baixar a chave pública e o token de importação, use a GetParametersForImportAPI. Especifique a chave do KMS que será associada ao material de chave importado. Essa chave do KMS deve ter um valor de Origem de EXTERNAL.

Este exemplo especifica o algoritmo de empacotamento RSA_AES_KEY_WRAP_SHA_256, a especificação de chave pública de empacotamento RSA_3072 e um exemplo de ID de chave. Substitua esses valores de exemplo por valores válidos para download. Para o ID de chave, é possível usar o ID de chave ou o ARN da chave, mas não é possível usar um alias de nome ou ARN de alias nessa operação.

$ aws kms get-parameters-for-import \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --wrapping-algorithm RSA_AES_KEY_WRAP_SHA_256 \ --wrapping-key-spec RSA_3072

Quando o comando é bem-sucedido, a saída é semelhante à seguinte:

{ "ParametersValidTo": 1568290320.0, "PublicKey": "public key (base64 encoded)", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "ImportToken": "import token (base64 encoded)" }

Para preparar os dados para a próxima etapa, o base64 decodifica a chave pública e o token de importação e salva os valores decodificados nos arquivos.

Para o base64 decodificar a chave pública e o token de importação:

  1. Copie a chave pública codificada em base64 (representada pela chave pública codificada em base64 no exemplo de saída), cole-os em um novo arquivo e salve o arquivo. Dê um nome descritivo ao arquivo, como PublicKey.b64.

  2. Use o OpenSSL para decodificar o conteúdo do arquivo base64 e salve os dados decodificados em um novo arquivo. O exemplo a seguir decodifica os dados no arquivo que você salvou na etapa anterior (PublicKey.b64) e salva a saída em um novo arquivo chamado WrappingPublicKey.bin.

    $ openssl enc -d -base64 -A -in PublicKey.b64 -out WrappingPublicKey.bin
  3. Copie o token de importação codificado em base64 (representado pelos token de importação codificado em base64 no exemplo de saída), cole-os em um novo arquivo e salve o arquivo. Dê ao arquivo um nome descritivo, por exemplo importtoken.b64.

  4. Use o OpenSSL para decodificar o conteúdo do arquivo base64 e salve os dados decodificados em um novo arquivo. O exemplo a seguir decodifica os dados no arquivo que você salvou na etapa anterior (ImportToken.b64) e salva a saída em um novo arquivo chamado ImportToken.bin.

    $ openssl enc -d -base64 -A -in importtoken.b64 -out ImportToken.bin

Vá para Etapa 3: Criptografar o material de chave.