Desenvolvimiento de claves de cifrado de datos con claves raíz

Puedes desenvolver un clave de cifrado de datos(DEK)A cryptographic key used to encrypt data that is stored in an application. para acceder a los contenidos mediante el uso delIBM Cloud®Hyper Protect Crypto Services API del servicio de administración de claves, si es un usuario privilegiado. Desenvolver una DEK descifra y comprueba la integridad del contenido, y devuelve el material de clave original a su servicio de datos de IBM Cloud.

Para conocer cómo el envolvimiento de claves ayuda a controlar la seguridad de los datos en reposo en la nube, consulte Cifrado de sobre.

Desenvolvimiento de claves utilizando la API

Después de realizar una llamada para envolver al servicio, puede desenvolver una clave de cifrado de datos (DEK) especificada para acceder al contenido realizando una llamada POST al siguiente punto final.

https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/actions/unwrap

Las claves raíz que contienen el mismo material de clave pueden desenvolver la misma clave de cifrado de datos (WDEK).

  1. Recupere sus credenciales de servicio y de autenticación para trabajar con claves en el servicio.

  2. Copiar el DNI del clave raízA symmetric wrapping key that is used for encrypting and decrypting other keys that are stored in a data service. que utilizó para realizar la solicitud de ajuste inicial.

    Puede recuperar el ID de una clave realizando una GET /v2/keys solicitud, o viendo sus claves en la interfaz de usuario.

  3. Copie el valor del ciphertext devuelto durante la solicitud inicial de envolvimiento.

  4. Ejecute el siguiente mandato cURL para descifrar y autenticar el material de la clave.

    curl -X POST \
      'https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>?action=unwrap' \
      -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>"
    }'
    

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

    Tabla 1. Describe las variables necesarias para desencapsular claves enHyper Protect Crypto Services
    Variable Descripción
    region Obligatorio. La abreviatura de región, como us-south o au-syd, que representa el área geográfica donde reside su instancia de servicio de Hyper Protect Crypto Services. Para obtener más información, consulte Puntos finales de servicio regional.
    port Obligatorio. El número de puerto del punto final de API.
    key_ID Obligatorio. El identificador único de la clave raíz que ha utilizado para la solicitud inicial de envolvimiento.
    IAM_token Obligatorio. Su señal de acceso de IBM Cloud. Incluya el contenido completo de la señal IAM, incluido el valor de Bearer, en la solicitud cURL. Para obtener más información, consulte Recuperación de una señal de acceso.
    instance_ID Obligatorio. El identificador exclusivo que está asignado a su instancia de servicio de Hyper Protect Crypto Services. Para obtener más información, consulte Recuperación de un ID de instancia.
    key_ring_ID Opcional. El identificador exclusivo del conjunto de claves al que pertenece la clave. Si no se especifica, Hyper Protect Crypto Services busca la clave en cada conjunto de claves asociado a la instancia especificada. Se recomienda especificar el ID del conjunto de claves para una solicitud más optimizada.

    Nota: El ID del conjunto de claves que se ha creado sin una cabecera x-kms-key-ring es: default. Para obtener más información, consulte Gestionar conjuntos de claves.

    correlation_ID Opcional. El identificador exclusivo que se ha utilizado para rastrear y correlacionar transacciones.
    encrypted_data_key El ciphertext valor que se devolvió durante una operación de ajuste.

    El material original de la clave 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 desenvolver el texto cifrado suministrado. El siguiente objeto JSON muestra un valor devuelto de ejemplo.

    {
      "plaintext": "Rm91ciBzY29yZSBhbmQgc2V2ZW4geWVhcnMgYWdv",
      "keyVersion": {
        "id": "02fd6835-6001-4482-a892-13bd2085f75d"
      }
    }
    

    Si Hyper Protect Crypto Services detecta que ha rotado la clave raíz que se utiliza para desenvolver y acceder a los datos, el servicio también devuelve una clave de cifrado de datos recién envuelta (ciphertext) en el cuerpo de respuesta desenvuelto. También se devuelve la versión de clave más reciente (rewrappedKeyVersion) que está asociada al nuevo ciphertext. Almacenar y utilizar el nuevo ciphertext valor para futuras operaciones de cifrado de sobres para que sus datos estén protegidos por la última clave raíz.

Decodificación del material de clave

Cuando se desenvuelve una clave de cifrado de datos, se devuelve el material de clave en codificación base64. Debe decodificar la clave antes de cifrarla.

Utilización de OpenSSL para decodificar el material de clave

  1. Descargue e instale OpenSSL.

  2. Codifique en base64 la serie de material de la clave ejecutando el mandato siguiente:

    $ openssl base64 -d -in <infile> -out <outfile>
    

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

    Tabla 2. Describe las variables necesarias para descodificar el material clave
    Variable Descripción
    infile El nombre del archivo en el que reside la serie del material de clave codificada en base64.
    outfile El nombre del archivo en el que se emite el material de clave decodificado después de ejecutar el mandato.

    Si desea generar el material decodificado directamente en la línea de comando en lugar de en un archivo, ejecute el comando openssl enc -base64 -d <<< '<key_material_string>', donde key_material_string es el texto sin formato devuelto por su solicitud de desencapsulado.