Envolvimiento de claves
Puede gestionar y proteger las claves de cifrado con una clave raíz utilizando la API y la consola de IBM® Key Protect.
Cuando se envuelve una clave de cifrado de datosUna clave criptográfica utilizada para cifrar los datos almacenados en una aplicación. con una clave raízUna clave de encapsulado simétrica que se utiliza para cifrar y descifrar otras claves almacenadas en un servicio de datos. (DEK), Key Protect combina la fuerza de varios algoritmos para proteger la privacidad y la integridad de los datos cifrados.
Para conocer cómo el envolvimiento de claves ayuda a controlar la seguridad de los datos en reposo en la nube, consulte Protección de datos con cifrado de sobre.
Envolver una clave mediante la consola
Si ya tiene una instancia de Key Protect y desea cifrar la DEK utilizando una interfaz gráfica, puede utilizar la consola IBM Cloud.
Una vez que hayas importado o creado tus propias claves, sigue estos pasos para cifrar tus datos utilizando la clave:
-
Inicia sesión en la consola de IBM Cloud.
-
En el Menú, elija la Lista de recursos para ver una lista de sus recursos.
-
Desde la lista de recursos de IBM Cloud seleccione su instancia suministrada de Key Protect.
-
Elija la clave raíz de la lista de claves que desea utilizar para envolver los datos.
-
Pulse el icono
⋯y, a continuación, pulse la opción Cifrado de sobre para abrir el panel lateral. Asegúrate de que la opción «Wrap key» esté seleccionada. -
Puede permitir que Key Protect envuelva sus datos o proporcionar su propio texto plano codificado en Base64 y datos de autenticación adicionales (AAD), según sea necesario, para envolver los datos. Si decides proporcionar tu propio texto sin cifrar y AAD, deberás facilitarlos al descomprimir tus datos. Si no tienes experiencia en la creación de texto sin cifrar codificado en AAD y Base64, deja que Key Protect se encargue de codificar tus datos manteniendo seleccionada la opción « Wrap key for me ».
-
Pulse el botón Envolver clave.
Envolvimiento de claves utilizando la API
Proteja una clave de cifrado de datos (DEK) específica con una clave raíz que gestionará en Key Protect.
Después de designar una clave raíz en el servicio, puede envolver una DEK con cifrado avanzado realizando una llamada POST al siguiente punto final.
https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/wrap
-
Recupere sus credenciales de autenticación para trabajar con claves en el servicio.
-
Copie el material de la clave de la DEK que desea gestionar y proteger.
Si tiene privilegios de gestor o de escritor sobre la instancia de Key Protect, puede recuperar el material de clave para una clave específica realizando una solicitud
GET /v2/keys/<keyID_or_alias>. -
Copie el ID de la clave raíz que desea utilizar para envolver.
-
Ejecute el siguiente mandato
curlpara proteger la clave con una operación de envolver.$ curl -X POST \ "https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/wrap" \ -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 '{ "plaintext": "<data_key>", "aad": [ "<additional_data>", "<additional_data>" ] }'
Sustituya las variables de la solicitud de ejemplo de acuerdo con la siguiente tabla.
| Variable | Descripción |
|---|---|
| región | Obligatorio. La abreviatura de la región, como us-south o eu-gb, que representa la zona geográfica donde reside la instancia de Key Protect. Para obtener más información, consulte Puntos finales de servicio regionales. |
| keyID_or_alias | Obligatorio. El identificador exclusivo o el alias de la clave raíz que desea utilizar para encapsular. |
| IAM_token | Obligatorio. Su señal de acceso de IBM Cloud. Incluya el contenido completo de la señal IAM, incluido el valor Bearer, en la solicitud curl. Para obtener más información, consulte Recuperación de una señal de acceso. |
| instance_ID | Obligatorio. El único identificador que está asignado a su instancia de servicio de Key Protect. Para obtener más información, consulte Recuperación de un ID de instancia. |
| ID_conjunto_claves | Opcional. El identificador exclusivo del conjunto de claves del que forma parte la clave. Si no se especifica, Key Protect busca la clave en cada conjunto de claves asociado a la instancia especificada. Se recomienda especificar
el ID del llavero para una solicitud más optimizada. Nota: El ID del conjunto de claves que se crea sin una cabecera x-kms-key-ring es default. Para obtener más información, consulte Agrupación de claves. |
| correlation_ID | Opcional. El identificador exclusivo que se ha utilizado para rastrear y correlacionar transacciones. |
| data_key | Opcional. El material de la clave de la DEK que desea gestionar y proteger. El valor de texto sin formato debe estar codificado en base64. Para obtener más información sobre cómo codificar el material de clave, consulte Codificación del material de clave. Para generar una nueva DEK, omita el atributo de texto sin formato. El servicio genera un texto sin formato aleatorio (32 bytes), envuelve dicho valor y devuelve tanto el valor generado como el envuelto en la respuesta. Los valores generados y empaquetados están codificados mediante el algoritmo « Base64 », por lo que es necesario descodificarlos para descifrar las claves. |
| additional_data | Opcional. Los datos de autenticación adicionales (AAD) que se utilizan para reforzar la seguridad de la clave. Cada serie puede contener hasta 255 caracteres. Si proporcionó los AAD cuando realizó al servicio la llamada de envolvimiento, debe especificar los mismos AAD durante la llamada de desenvolvimiento subsiguiente. Importante: El servicio « Key Protect » no guarda datos de autenticación adicionales. Si facilitas un AAD, guarda los datos en un lugar seguro para asegurarte de que puedas acceder a él y facilitar el mismo AAD en futuras solicitudes de desbloqueo. |
La clave de cifrado de datos envuelta, con el material de la clave codificado en base64, se devuelve en el cuerpo de entidad de la respuesta. El cuerpo de la respuesta también contiene el ID de la versión de clave que se ha utilizado para envolver el texto sin formato suministrado. El siguiente objeto JSON muestra un ejemplo de valor devuelto.
{
"ciphertext": "eyJjaXBoZXJ0ZXh0IjoiYmFzZTY0LWtleS1nb2VzLWhlcmUiLCJpdiI6IjRCSDlKREVmYU1RM3NHTGkiLCJ2ZXJzaW9uIjoiNC4wLjAiLCJoYW5kbGUiOiJ1dWlkLWdvZXMtaGVyZSJ9",
"keyVersion": {
"id": "02fd6835-6001-4482-a892-13bd2085f75d"
}
}
Si omite el atributo plaintext cuando realice la solicitud de envolvimiento, el servicio devolverá tanto la clave de cifrado de datos (DEK) generada como la DEK envuelta en formato con codificación base64.
{
"plaintext": "Rm91ciBzY29yZSBhbmQgc2V2ZW4geWVhcnMgYWdv",
"ciphertext": "eyJjaXBoZXJ0ZXh0IjoiYmFzZTY0LWtleS1nb2VzLWhlcmUiLCJpdiI6IjRCSDlKREVmYU1RM3NHTGkiLCJ2ZXJzaW9uIjoiNC4wLjAiLCJoYW5kbGUiOiJ1dWlkLWdvZXMtaGVyZSJ9",
"keyVersion": {
"id": "12e8c9c2-a162-472d-b7d6-8b9a86b815a6"
}
}
El valor plaintext representa la DEK desenvuelta y el valor ciphertext representa la DEK envuelta; ambos están codificados en base64. El valor keyVersion.id representa la versión de la clave raíz utilizada
para envolver.
Si desea que Key Protect genere una nueva clave de cifrado de datos (DEK) por usted, también puede pasar un cuerpo vacío en una solicitud de envolvimiento. La DEK generada, que contiene el material de claves con codificación base64, se devolverá en la respuesta de cuerpo de entidad, junto con la DEK empaquetada.