Swrapper i tasti di crittografia dei dati con chiavi di root

Puoi spacchettare una chiave di crittografia dei dati(DEK)A cryptographic key used to encrypt data that is stored in an application. per accedere al contenuto utilizzando l'API del servizio di gestione delle chiavi IBM Cloud® Hyper Protect Crypto Services, se sei un utente privilegiato. L'apertura di una DEK decrittografa e controlla l'integrità del contenuto, restituendo il materiale della chiave originale al tuoIBM Cloud servizio dati.

Per ulteriori informazioni su come l'impacchettamento ti aiuta a controllare la sicurezza dei dati inattivi nel cloud, consulta Crittografia envelope.

Spacchettamento delle chiavi utilizzando l'API

Dopo aver effettuato una chiamata conclusiva al servizio, puoi aprire una chiave di crittografia dei dati specificata (DEK) per accedere ai contenuti creando un file POST chiamata al seguente endpoint.

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

I tasti di root che contengono lo stesso materiale chiave possono inavvolgere la stessa chiave di codifica dei dati (WDEK).

  1. Richiama le tue credenziali del servizio e di autenticazione per utilizzare le chiavi nel servizio.

  2. Copia l'ID del chiave radiceA symmetric wrapping key that is used for encrypting and decrypting other keys that are stored in a data service. utilizzato per eseguire la richiesta di wrap iniziale.

    È possibile recuperare l'ID di una chiave creando un file GET /v2/keys richiesta o visualizzando le chiavi nell'interfaccia utente.

  3. Copia il valore ciphertext restituito durante la richiesta di impacchettamento iniziale.

  4. Esegui il seguente comando cURL per decodificare e autenticare il materiale della chiave.

    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>"
    }'
    

    Sostituisci le variabili nella richiesta di esempio in base alla seguente tabella.

    Tabella 1. Descrive le variabili necessarie per unwrap chiavi in Hyper Protect Crypto Services
    Variabile Descrizione
    region Obbligatorio. L'abbreviazione della regione, come us-south o au-syd, che rappresenta l'area geografica in cui si trova la tua istanza del servizio Hyper Protect Crypto Services. Per ulteriori informazioni, vedere Endpoint del servizio regionale.
    port Obbligatorio. Il numero di porta dell'endpoint API.
    key_ID Obbligatorio. L'identificativo univoco della chiave root che hai utilizzato per la richiesta di impacchettamento iniziale.
    IAM_token Obbligatorio. Il tuo token di accesso IBM Cloud. Includere l'intero contenuto del file IAM token, compreso il valore al portatore, nel filecURL richiesta. Per ulteriori informazioni, vedere Recupero di un token di accesso.
    instance_ID Obbligatorio. L'identificativo univoco che viene assegnato alla tua istanza del servizio Hyper Protect Crypto Services. Per ulteriori informazioni, vedere Recupero di un ID istanza.
    key_ring_ID Facoltativo. L'identificatore univoco dell'anello chiave a cui appartiene la chiave. Se non specificato, Hyper Protect Crypto Services ricerca la chiave in ogni anello chiave associato all'istanza specificata. Si suggerisce di specificare il key ring ID per una richiesta più ottimizzata.

    Nota: l'ID key ring dei tasti creati senza intestazione x-kms-key-ring è: default. Per ulteriori informazioni, consultare Gestione degli anelli chiave.

    correlation_ID Facoltativo. L'identificativo univoco utilizzato per tracciare e correlare le transazioni.
    encrypted_data_key IL ciphertext valore restituito durante un'operazione di wrap.

    Il materiale della chiave originale viene restituito nel corpo-entità della risposta. Il corpo di risposta contiene anche l'ID della versione chiave utilizzata per savvolgere il testo cifrato fornito. Il seguente oggetto JSON mostra un valore restituito di esempio.

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

    Se Hyper Protect Crypto Services rileva che hai ruotato la chiave root utilizzata per spacchettare e accedere ai tuoi dati, il servizio restituisce anche una chiave di crittografia dei dati appena impacchettata (ciphertext) nel corpo della risposta di spacchettamento. Torna anche l'ultima versione chiave (rewrappedKeyVersion) associata al nuovo ciphertext. Conservare e utilizzare il nuovo ciphertext valore per le future operazioni di crittografia della busta in modo che i dati siano protetti dalla chiave root più recente.

Decodifica il tuo materiale chiave

Quando si scarta una chiave di codifica dei dati, il materiale chiave viene restituito in codifica base64. È necessario decodificare la chiave prima di crittografarla.

Utilizzo di OpenSSL per decodificare il materiale della chiave

  1. Scaricare e installare OpenSSL.

  2. Base64 codifica la tua stringa di materiale chiave eseguendo il seguente comando:

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

    Sostituisci le variabili nella richiesta di esempio in base alla seguente tabella.

    Tabella 2. Descrive le variabili necessarie per decodificare il tuo materiale chiave
    Variabile Descrizione
    infile Il nome del file in cui risiede la tua stringa di materiale chiave codificata base64.
    outfile Il nome del file in cui il tuo materiale chiave decodificato viene inputato dopo l'esecuzione del comando.

    Se vuoi eseguire l'output del materiale decodificato nella riga di comando direttamente piuttosto che in un file, esegui il comando openssl enc -base64 -d <<< '<key_material_string>', dove key_material_string è il testo semplice restituito dalla tua richiesta di unwrap.