Spacchettamento delle chiavi

IBM® Key Protect combina la forza di più algoritmi per proteggere la privacy e l'integrità dei dati crittografati. È possibile scartare una chiave di crittografia dei datiUna chiave di crittografia utilizzata per crittografare i dati archiviati in un'applicazione. (DEK), per accedere al suo contenuto, utilizzando l'API e la console IBM® Key Protect for IBM Cloud®. Lo spacchettamento di una DEK decodifica e controlla l'integrità del suo contenuto, restituendo il materiale della chiave di origine al tuo servizio di dati IBM Cloud.

Per sapere come il key wrapping vi aiuta a controllare la sicurezza dei dati a riposo nel cloud cloud, vedere Protezione dei dati con la crittografia a busta.

Sbrogliare una chiave usando la console

Se si dispone già di un'istanza di Key Protect e si desidera crittografare il DEK utilizzando un'interfaccia grafica, si può usare la console IBM Cloud.

Dopo aver importato o creato le proprie chiavi, completare i passaggi seguenti per avvolgere i dati utilizzando la chiave:

  1. Accedere alla consoleIBM Cloud.

  2. Dal menu, scegliere Elenco risorse per visualizzare l'elenco delle risorse.

  3. Dal tuo elenco risorse IBM Cloud, seleziona la tua istanza di cui è stato eseguito il provisioning di Key Protect.

  4. Scegliere la chiave radice utilizzata per avvolgere i dati dall'elenco delle chiavi.

  5. Fare clic sull'icona ⋯ per aprire un elenco di opzioni per il DEK che si desidera scartare.

  6. Fare clic sull'opzione Codifica busta per aprire il pannello laterale. Scegliere la scheda "Sblocca chiave" se non è già evidenziata.

  7. Inserire nei campi appropriati il testo richiesto per quanto sopra, compreso il testo cifrato e qualsiasi dato aggiuntivo memorizzato localmente allo scopo di decodificare il DEK.

  8. Fare clic sul pulsante Unwrap Key.

Spacchettamento delle chiavi utilizzando l'API

Dopo aver effettuato una chiamata di impacchettamento al servizio, puoi spacchettare una chiave di crittografia dei dati (o DEK, data encryption key) specificata per accedere al suo contenuto eseguendo una chiamata POST al seguente endpoint.

https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/unwrap

Le chiavi radice che contengono lo stesso materiale chiave possono scartare la stessa chiave di crittografia dei dati (WDEK) dati (WDEK).

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

  2. Copia l'ID della chiave root che hai utilizzato per eseguire la richiesta di impacchettamento iniziale.

    È possibile trovare l'ID di una chiave nel file istanza Key Protect recuperando l'elenco delle chiavi recuperando un elenco di chiavi, o accedendo alla dashboard Key Protect.

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

  4. Eseguire il seguente comando curl per decifrare e autenticare il materiale della chiave materiale.

    $ curl -X POST \
        "https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/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>",
                "aad": [
                    "<additional_data>",
                    "<additional_data>"
                ]
            }'
    

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

Descrive le variabili necessarie per scartare le chiavi in Key Protect.
Variabile Descrizione
regione Richiesto. L'abbreviazione della regione, come us-south o eu-gb, che rappresenta l'area geografica in cui risiede l'istanza Key Protect.

Per ulteriori informazioni, vedere Endpoint del servizio regionale.
keyID_or_alias Richiesto. L'identificatore unico o l'alias della chiave principale utilizzato per la richiesta iniziale di wrap.
IAM_token Richiesto. Il tuo token di accesso IBM Cloud. Includere l'intero contenuto del token IAM, compreso il valore Bearer, nella richiesta curl.

Per ulteriori informazioni, vedere Recupero di un token di accesso.
instance_id Richiesto. L'identificatore unico assegnato all'istanza del servizio Key Protect.

Per ulteriori informazioni, vedere Recupero dell'ID di un'istanza.
iD_anello_chiave Facoltativo. L'identificatore univoco del portachiavi di cui fa parte la chiave. Se non specificato, Key Protect cercherà la chiave in ogni portachiavi associato all'istanza specificata. Si consiglia di specificare l'ID del portachiavi per una richiesta più ottimizzata

Nota: L'ID del portachiavi creato senza intestazione x-kms-key-ring è: default.

For more information, see Tasti di raggruppamento.
iD correlazione Facoltativo: l'identificativo univoco utilizzato per tracciare e correlare le transazioni.
dati_aggiuntivi Facoltativo: i dati di autenticazione aggiuntivi (AAD) utilizzati per proteggere ulteriormente la chiave. Ogni stringa può contenere fino a 255 caratteri. Se si fornisce l'AAD quando si effettua una chiamata di wrap al servizio, è necessario specificare lo stesso AAD durante la chiamata di unwrap.
chiave_dati_crittografati Richiesto. Il valore del testo cifrato restituito durante un'operazione di wrap.

Il materiale della chiave originale viene restituito nel corpo-entità della risposta. Il corpo della risposta contiene anche l'ID della versione della chiave che è stata usata per il testo cifrato fornito.

Il testo in chiaro restituito è codificato in base64. Per ulteriori informazioni su come decodificare il materiale chiave, vedere Decodifica del materiale chiave. Il seguente oggetto JSON mostra un valore restituito di esempio.

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

Se Key Protect 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. Viene restituita anche l'ultima versione della chiave rewrappedKeyVersion) associata al nuovo ciphertext viene restituita. Memorizzare e utilizzare il nuovo ciphertext per le future operazioni di crittografia della busta, in modo che i dati siano protetti dalla chiave di dati siano protetti dalla chiave principale più recente.

Decodificare il materiale chiave

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

Utilizzo di OpenSSL per decodificare le chiavi

  1. Scaricare e installare OpenSSL.

  2. Decodificare la stringa di materiale della chiave codificata in base64 eseguendo il seguente comando:

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

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

Descrive le variabili necessarie per decodificare il materiale chiave.
Variabile Descrizione
infile Il nome del file in cui risiede la stringa di materiale chiave codificata base64.
outfile Il nome del file in cui il materiale della chiave decodificata verrà visualizzato dopo l'esecuzione del comando.

Se si desidera inviare il materiale decodificato direttamente nella riga di comando anziché in un file, eseguire il comando anziché in un file, eseguire il comando openssl enc -base64 -d <<< '<key_material_string>' dove key_material_string è il testo in chiaro restituito dalla richiesta di unwrap.