Reagrupando chaves
Para refazer a criptografia das chaves de criptografia de dados, utilize a API do IBM® Key Protect.
Ao girar uma chave raiz no Key Protect, um novo material de chave criptográfica se torna disponível para proteger as chaves de criptografia de dados (DEKs) associadas à chave raiz. Com a API de reagrupamento, é possível criptografar novamente ou reagrupar suas DEKs sem expor as chaves em seu formulário de texto sem formatação.
Para saber como a criptografia de envelope ajuda a controlar a segurança de dados em repouso na nuvem, consulte Protegendo dados com a criptografia de envelope.
Reagrupando chaves usando a API
É possível criptografar novamente uma chave de criptografia de dados (DEK) especificada com uma chave raiz que você gerencia no Key Protect, sem expor a DEK em sua forma de texto sem formatação.
O reagrupamento de chaves funciona combinando as chamadas unwrap e wrap para o serviço. Por exemplo, é possível emular uma operação rewrap chamando primeiramente a API unwrap para acessar uma
DEK e, em seguida, chamando a API wrap para criptografar novamente a DEK usando o material de chave raiz mais recente.
Depois de girar uma chave raiz no serviço, reenrole uma chave de criptografia de dados que esteja associada à chave raiz fazendo um chamada POST para o terminal a seguir.
https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/rewrap
-
Recupere suas credenciais de serviço e autenticação para trabalhar com chaves no serviço.
-
Copie o ID da chave raiz girada que você usou para executar a solicitação de agrupamento inicial.
Para recuperar o ID de uma chave, é possível fazer uma solicitação
GET api/v2/keysou visualizar as chaves na GUI do Key Protect . -
Copie o valor
ciphertextque foi retornado durante a solicitação de agrupamento mais recente. -
Reenquadre a chave com o material de chave raiz mais recente executando o seguinte
curla seguir.$ curl -X POST \ "https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/rewrap" \ -H "accept: application/vnd.ibm.kms.key_action+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "content-type: application/vnd.ibm.kms.key_action+json" \ -H "x-kms-key-ring: <key_ring_ID>" \ -H "correlation-id: <correlation_ID>" \ -d '{ "ciphertext": "<encrypted_data_key>", "aad": [ "<additional_data>", "<additional_data>" ] }'Substitua as variáveis na solicitação de exemplo de acordo com a tabela a seguir.
| Variável | Descrição |
|---|---|
| região | Obrigatório. A abreviação de região, como us-south ou eu-gb, que representa a área geográfica na qual a sua instância do Key Protect reside.Para obter mais informações, consulte Pontos de extremidade de serviço regionais. |
| keyID_or_alias | Obrigatório. O identificador ou alias exclusivo da chave raiz utilizada para a solicitação de agrupamento inicial. |
| IAM_token | Obrigatório. Seu token de acesso do IBM Cloud. Inclua o conteúdo completo do token do IAM, incluindo o valor Bearer, na solicitação curl. Para obter mais informações, consulte Recuperação de um token de acesso. |
| instance_ID | Obrigatório. O identificador exclusivo que é designado para sua instância de serviço Key Protect. Para obter mais informações, consulte Recuperação de um ID de instância. |
| key_ring_ID | Opcional. O identificador exclusivo do conjunto de chaves ao qual a chave pertence. Se não especificado, o Key Protect irá procurar a chave em cada conjunto de chaves associado à instância especificada. É recomendado especificar o ID do
conjunto de chaves para uma solicitação mais otimizada. Observação: a ID do chaveiro das chaves criadas sem um cabeçalho x-kms-key-ring é: default.For more information, see Teclas de agrupamento. |
| correlation_ID | O identificador exclusivo que é usado para rastrear e correlacionar transações. |
| encrypted_data_key | Obrigatório. O valor de texto cifrado que foi retornado pela operação de agrupamento original. |
| additional_data | Opcional Os dados de autenticação adicionais (AAD) que são usados para proteger melhor a chave. Cada sequência pode ter até 255 caracteres. Ao fornecer AAD para a chamada inicial de agrupamento, deve-se especificar o mesmo
AAD durante as chamadas de desagrupamento ou reagrupamento subsequentes. Importante: O serviço Key Protect não salva dados adicionais de autenticação. Ao fornecer o AAD, salve os dados em um local seguro para garantir que seja possível acessar e fornecer o mesmo AAD durante as solicitações de desagrupamento ou reagrupamento subsequentes. |
No corpo da entidade de resposta, são retornadas a chave de criptografia de dados recém-agrupada, a versão original da chave (keyVersion) associada ao texto cifrado fornecido e a versão mais recente da chave (rewrappedKeyVersion)
associada ao novo texto cifrado. O objeto JSON a seguir mostra um valor retornado de exemplo.
{
"ciphertext": "eyJjaX ... h0Ijoi ... c1ZCJ9",
"keyVersion": {
"id": "02fd6835-6001-4482-a892-13bd2085f75d"
},
"rewrappedKeyVersion": {
"id": "12e8c9c2-a162-472d-b7d6-8b9a86b815a6"
}
}
Armazene e use o novo valor ciphertext para operações futuras de criptografia de envelope para que os seus dados sejam protegidos pela chave raiz mais recente.
Validação opcional
Verifique se a chave foi reagrupada com sucesso codificando o valor ciphertext em base64.
$ echo <ciphertext> | base64 --decode
Substitua <ciphertext> pelo valor codificado em base64 retornado na etapa anterior. O objeto JSON a seguir mostra uma saída da CLI de exemplo.
{
"ciphertext": "mIzRrwZAA8+WqRckG6gt1ji8HlEEJPSiV+TRBSR4GVr+FlAZlC5KvRriRF0=",
"iv": "lbwxXlAW2DS7+5jGz5Y1Kg==",
"version": "4.0.0",
"handle": "8e309bae-b3ec-4270-9b87-89f8697fe54f"
}