Réencapsulage des clés
Rechiffrez vos clés de chiffrement de données à l'aide de l'API IBM® Key Protect.
Lorsque vous appliquez une rotation à une clé racine dans Key Protect, un nouveau matériel de clé cryptographique devient disponible pour protéger les clés de chiffrement de données associées à la clé racine. Avec l'API de réencapsulage, vous pouvez chiffrer à nouveau ou réencapsuler vos clés de chiffrement de données sans exposer les clés sous leur forme textuelle.
Pour savoir comment le chiffrement d'enveloppe vous permet de contrôler la sécurité des données au repos dans le cloud, voir Protection des données avec le chiffrement d'enveloppe.
Réencapsulage des clés à l'aide de l'API
Vous pouvez rechiffrer une clé de chiffrement de données spécifiée avec une clé racine que vous gérez dans Key Protect, sans exposer cette clé de chiffrement de données sous sa forme textuelle.
Le réencapsulage des clés fonctionne en combinant des appels unwrap et wrap au service. Par exemple, vous pouvez émuler une opération rewrap en commençant par appeler l'API unwrap pour accéder
à une clé de chiffrement de données, puis en appelant l'API wrap pour rechiffrer cette clé à l'aide des informations de clé racine les plus récentes.
Après la rotation d'une clé racine dans le service, réenvelopper une clé de chiffrement des données associée à la clé racine en effectuant un appel POST au nœud final
suivant.
https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/rewrap
-
Extrayez vos données d'authentification et de service afin d'utiliser les clés dans le service.
-
Copiez l'ID de la clé racine pivotée que vous avez utilisée pour exécuter la demande initiale d'encapsulage.
Vous pouvez extraire l'ID d'une clé en effectuant une demande
GET api/v2/keysou en affichant vos clés dans l'interface utilisateur Key Protect . -
Copiez la valeur
ciphertextqui a été renvoyée lors de la dernière demande d'encapsulage initiale. -
Remballez la clé avec le dernier matériau de la clé racine en exécutant la procédure suivante commande
curl.$ 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>" ] }'Remplacez les variables de l'exemple de demande conformément au tableau suivant :
| Variable | Description |
|---|---|
| région | Obligatoire. Abréviation de la région, comme us-south ou eu-gb, qui représente la zone géographique dans laquelle se trouve votre instance Key Protect.Pour plus d'informations, voir Points de terminaison des services régionaux. |
| keyID_or_alias | Obligatoire. Identificateur unique ou alias de la clé racine que vous avez utilisé pour la demande d'encapsulage initiale. |
| IAM_token | Obligatoire. Votre jeton d'accès IBM Cloud. Incluez le contenu complet du jeton IAM, notamment la valeur Bearer, dans la requête curl. Pour plus d'informations, voir Récupération d'un jeton d'accès. |
| instance_ID | Obligatoire. Identificateur unique affecté à votre instance de service Key Protect. Pour plus d'informations, voir Récupération d'un identifiant d'instance. |
| key_ring_ID | Optionnel. Identificateur unique du fichier de clés auquel appartient la clé. S'il n'est pas indiqué, Key Protect recherche la clé dans chaque fichier de clés associé à l'instance indiquée. Il est recommandé d'indiquer l'ID du fichier
de clés pour une demande optimisée. Note : L'identifiant du porte-clés des clés créées sans en-tête x-kms-key-ring est : default.For more information, see Touches de regroupement. |
| correlation_ID | Identificateur unique qui est utilisé pour suivre et corréler des transactions. |
| encrypted_data_key | Obligatoire. Valeur de texte chiffré renvoyée par l'opération d'encapsulage d'origine. |
| additional_data | Facultatif Données d'authentification supplémentaires (AAD) utilisées pour sécuriser davantage la clé. Chaque chaîne peut inclure jusqu'à 255 caractères. Si vous avez indiqué des données d'authentification supplémentaires
pour l'appel d'encapsulage initial, vous devez spécifier ces mêmes données lors des appels de désencapsulage ou de réencapsulage ultérieurs. Important : Le service Key Protect n'enregistre pas de données d'authentification supplémentaires. Si vous indiquez des données d'authentification supplémentaires, sauvegardez ces données dans un emplacement sécurisé afin de pouvoir y accéder et fournir les mêmes données lors des demandes de désencapsulage ou de réencapsulage ultérieures. |
Clé de chiffrement de données nouvellement encapsulée, version de Clé d'origine (keyVersion) qui est associé au texte chiffré et à la dernière version de clé (rewrappedKeyVersion) associée au nouveau texte chiffré est
renvoyée dans le corps de l'entité de réponse. L'objet JSON suivant illustre un exemple de valeur renvoyée :
{
"ciphertext": "eyJjaX ... h0Ijoi ... c1ZCJ9",
"keyVersion": {
"id": "02fd6835-6001-4482-a892-13bd2085f75d"
},
"rewrappedKeyVersion": {
"id": "12e8c9c2-a162-472d-b7d6-8b9a86b815a6"
}
}
Stockez et utilisez la nouvelle valeur ciphertext pour les futures opérations de chiffrement d'enveloppe, afin que vos données soient protégées par la clé la plus récente.
Validation facultative
Vérifiez que la clé a été réencapsulée avec succès en décodant en base64 la valeur ciphertext.
$ echo <ciphertext> | base64 --decode
Remplacez <ciphertext> par la valeur codée base64 renvoyée à l'étape précédente. L'objet JSON suivant présente un exemple de sortie CLI.
{
"ciphertext": "mIzRrwZAA8+WqRckG6gt1ji8HlEEJPSiV+TRBSR4GVr+FlAZlC5KvRriRF0=",
"iv": "lbwxXlAW2DS7+5jGz5Y1Kg==",
"version": "4.0.0",
"handle": "8e309bae-b3ec-4270-9b87-89f8697fe54f"
}