Volver a envolver claves

Puede volver a cifrar las claves de cifrado de datos utilizando la API de IBM® Key Protect.

Cuando se rota una clave raíz en Key Protect, nuevo material de clave pasa a estar disponible para proteger las claves de cifrado de datos (DEK) que están asociadas a la clave raíz. Con la API para volver a envolver, puede volver a cifrar o volver a envolver las DEK sin exponer las claves como texto sin formato.

Para saber cómo el cifrado de sobre le ayuda a controlar la seguridad de los datos en reposo en la nube, consulte Protección de datos con cifrado de sobre.

Cómo volver a envolver las claves utilizando la API

Puede volver a envolver una clave de cifrado de datos (DEK) específica con una clave raíz que gestiona en Key Protect sin exponer la DEK como texto sin formato.

Volver a envolver claves funciona combinando llamadas unwrap y wrap al servicio. Por ejemplo, puede emular una operación de rewrap llamando primero a la API unwrap API para acceder a una DEK, y después llamando a la API wrap para volver a cifrar la DEK utilizando el material de clave raíz más reciente.

Después de rotar una clave raíz en el servicio, vuelve a girar una clave de cifrado de datos que esté asociada a la clave raíz haciendo un POSTllamada al punto final siguiente.

https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/rewrap
  1. Recupere sus credenciales de servicio y de autenticación para trabajar con claves en el servicio.

  2. Copie el ID de la clave raíz rotada que ha utilizado para realizar la solicitud inicial de envolvimiento.

    Puede recuperar el ID de una clave realizando una solicitud GET api/v2/keys o visualizando las claves en Key Protect GUI.

  3. Copie el valor de ciphertext que se ha devuelto durante la última solicitud de envolvimiento.

  4. Vuelva a empaquetar la clave con el último material de clave raíz ejecutando lo siguiente mandato 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>"
                ]
            }'
    

    Sustituya las variables de la solicitud de ejemplo de acuerdo con la siguiente tabla.

Describe las variables necesarias para volver a envolver claves en Key Protect.
Variable Descripción
región Obligatorio. La abreviatura de región, como us-south o eu-gb, que representa el área geográfica donde reside su instancia de Key Protect.
Para más información, consulte Puntos finales de servicio regionales.
keyID_or_alias Obligatorio. El identificador o alias exclusivo de la clave raíz que ha utilizado para la solicitud de encapsulado inicial.
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 más información, consulte Recuperación de un token 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 al que pertenece la clave. Si no se especifica, Key Protect buscará la clave en todos los conjuntos de claves asociados con la instancia especificada. Se recomienda especificar el ID de conjunto de claves para optimizar la solicitud.
Nota: El ID de llavero de las claves que se crean sin una cabecera x-kms-key-ring es: por defecto.
For more information, see Teclas de agrupación.
correlation_ID El identificador exclusivo que se ha utilizado para rastrear y correlacionar transacciones.
encrypted_data_key Obligatorio. El valor de texto cifrado devuelto por la operación de envolver original.
additional_data OpcionalLos datos de autenticación adicionales (AAD) que se utilizan para proteger más la clave. Cada serie puede contener hasta 255 caracteres. Si ha suministrado AAD para la llamada wrap inicial, debe especificar los mismos AAD durante las llamadas unwrap o rewrap subsiguientes.

Importante: El servicio Key Protect no guarda datos de autenticación adicionales. Si proporciona AAD, guarde los datos en una ubicación segura para asegurarse de que pueda acceder y proporcionar los mismos AAD durante las llamadas unwrap o rewrap subsiguientes.

La clave de cifrado de datos recién encapsulada, la versión de clave original (keyVersion) asociada al texto cifrado proporcionado y la última versión de clave (rewrappedKeyVersion) asociada al nuevo texto cifrado, se devuelve en el cuerpo de entidad de la respuesta. El siguiente objeto JSON muestra un valor devuelto de ejemplo.

{
    "ciphertext": "eyJjaX ... h0Ijoi ... c1ZCJ9",
    "keyVersion": {
        "id": "02fd6835-6001-4482-a892-13bd2085f75d"
    },
    "rewrappedKeyVersion": {
        "id": "12e8c9c2-a162-472d-b7d6-8b9a86b815a6"
    }
}

Almacene y utilice el nuevo valor ciphertext para futuras operaciones de cifrado de sobre, de modo que los datos queden protegidos por la clave raíz más reciente.

Validación opcional

Verifique que la clave se ha vuelto a envolver satisfactoriamente mediante la decodificación de base64 del valor ciphertext.

$ echo <ciphertext> | base64 --decode

Sustituya <ciphertext> por el valor codificado en base64 devuelta en el paso anterior. El siguiente objeto JSON muestra una salida de CLI de ejemplo.

{
    "ciphertext": "mIzRrwZAA8+WqRckG6gt1ji8HlEEJPSiV+TRBSR4GVr+FlAZlC5KvRriRF0=",
    "iv": "lbwxXlAW2DS7+5jGz5Y1Kg==",
    "version": "4.0.0",
    "handle": "8e309bae-b3ec-4270-9b87-89f8697fe54f"
}