Impacchettamento delle chiavi

È possibile gestire e proteggere le proprie chiavi di crittografia tramite una chiave radice utilizzando il IBM® Key Protect API e Console.

Quando si avvolge una chiave di crittografia dei datiUna chiave di crittografia utilizzata per crittografare i dati archiviati in un'applicazione. con una chiave chiave principaleUna chiave di impacchettamento simmetrica utilizzata per la crittografia e la decrittografia di altre chiavi archiviate in un servizio di dati. (DEK), Key Protect combina la forza di più algoritmi per proteggere la privacy e l'integrità dei dati crittografati integrità dei dati crittografati.

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

Avvolgimento di un tasto tramite la console

Se si dispone già di un'istanza di Key Protect e si desidera crittografare il DEK utilizzando un'interfaccia grafica, è possibile utilizzare 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 dall'elenco delle chiavi che si desidera utilizzare per avvolgere i dati.

  5. Fare clic sull'icona e poi sull'opzione Codifica busta per aprire il pannello laterale. Assicurarsi che sia selezionata l'opzione "Tasto a capo".

  6. È possibile consentire a Key Protect di avvolgere i dati o fornire il proprio testo in chiaro codificato Base64 e dati di autenticazione aggiuntivi (AAD), se necessario, per avvolgere i dati. Se si sceglie di fornire il proprio testo in chiaro e l'AAD, è necessario fornirlo quando si scaricano i dati. Se non si ha esperienza nella creazione di testo in chiaro codificato AAD e Base64, si può consentire a Key Protect di avvolgere i dati lasciando selezionata l'opzione Wrap key for me.

  7. Fai clic sul pulsante " Wrap key ".

Impacchettamento delle chiavi utilizzando l'API

Puoi proteggere una chiave di crittografia dei dati (o DEK, data encryption key) specificata con una chiave root che gestisci in Key Protect.

Dopo aver designato una chiave root nel servizio, puoi impacchettare una DEK con la crittografia avanzata effettuando una chiamata POST al seguente endpoint.

https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/wrap
  1. Recupera le tue credenziali di autenticazione per poter utilizzare le chiavi nel servizio.

  2. Copia il materiale della chiave della DEK che vuoi gestire e proteggere.

    Se si dispone di privilegi di manager o di scrittore per il proprio sito web istanza Key Protect, è possibile recuperare il materiale della chiave per una chiave specifica facendo una GET /v2/keys/<keyID_or_alias> richiesta.

  3. Copia l'ID della chiave root che vuoi utilizzare per l'impacchettamento.

  4. Eseguire il seguente comando curl per proteggere la chiave con un'operazione di avvolgimento.

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

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

Tabella 1. Variabili necessarie per avvolgere una chiave specificata in Key Protect
Variabile Descrizione
regione Obbligatorio. L'abbreviazione della regione, ad esempio us-south o eu-gb, che indica l'area geografica in cui si trova l'istanza di Key Protect. Per ulteriori informazioni, consultare la sezione " Endpoint di servizio regionali ".
keyID_or_alias Obbligatorio. L'identificatore univoco o l'alias della chiave radice che si desidera utilizzare per il wrapping.
IAM_token Obbligatorio. Il tuo token di accesso IBM Cloud. Includi l'intero contenuto del token IAM, compreso il valore Bearer, nella richiesta curl. Per ulteriori informazioni, consulta la sezione " Ottenere un token di accesso ".
instance_id Obbligatorio. L'identificativo univoco che viene assegnato alla tua istanza del servizio Key Protect. Per ulteriori informazioni, consultare la sezione " Come recuperare l'ID di un'istanza ".
iD_anello_chiave Facoltativo. L'identificatore univoco del portachiavi di cui fa parte la chiave. Se non specificato, Key Protect cerca la chiave in ogni portachiavi associato all'istanza specificata. Si consiglia di specificare l'ID del portachiavi per ottimizzare la richiesta. L'ID del portachiavi creato senza intestazione x-kms-key-ring è default. Per ulteriori informazioni, vedere Raggruppamento di chiavi.
iD correlazione Facoltativo. L'identificativo univoco utilizzato per tracciare e correlare le transazioni.
chiave_dati Facoltativo. Il materiale della chiave della DEK che vuoi gestire e proteggere. Il valore in chiaro deve essere codificato secondo lo standard Base64. Per ulteriori informazioni sulla codifica del materiale della chiave, vedere Codifica del materiale della chiave. Per generare un nuovo DEK, ometti l'attributo "plaintext". Il servizio genera un testo non crittografato casuale (32 byte), impacchetta il valore e restituisce sia il valore generato sia quello impacchettato nella risposta. I valori generati e avvolti sono codificati in Base64 ed è necessario decodificarli per decifrare le chiavi.
dati_aggiuntivi Facoltativo. I dati di autenticazione aggiuntivi (AAD) utilizzati per garantire una maggiore sicurezza della chiave. Ogni stringa può contenere fino a 255 caratteri. Se fornisci AAD quando effettui una chiamata di impacchettamento, devi specificare lo stesso AAD durante la seguente chiamata di spacchettamento. Importante: il servizio Key Protect non salva dati di autenticazione aggiuntivi. Se si fornisce un AAD, salvare i dati in un luogo sicuro per assicurarsi di poter accedere e fornire lo stesso AAD in occasione di successive richieste di "unwrap".

La tua chiave di crittografia dei dati impacchettata (o WDEK, wrapped data encryption key), contenente il materiale codificato con base64, viene restituita nel corpo-entità della risposta. Il corpo della risposta contiene anche l'ID della versione della chiave utilizzata per avvolgere il testo in chiaro fornito. Il seguente oggetto JSON mostra un esempio di valore restituito.

{
    "ciphertext": "eyJjaXBoZXJ0ZXh0IjoiYmFzZTY0LWtleS1nb2VzLWhlcmUiLCJpdiI6IjRCSDlKREVmYU1RM3NHTGkiLCJ2ZXJzaW9uIjoiNC4wLjAiLCJoYW5kbGUiOiJ1dWlkLWdvZXMtaGVyZSJ9",
    "keyVersion": {
        "id": "02fd6835-6001-4482-a892-13bd2085f75d"
    }
}

Se ometti l'attributo plaintext quando esegui la richiesta di impacchettamento, il servizio restituisce sia la chiave di crittografia dei dati (o DEK, data encryption key) generata sia la DEK impacchettata in formato con codifica base64.

{
    "plaintext": "Rm91ciBzY29yZSBhbmQgc2V2ZW4geWVhcnMgYWdv",
    "ciphertext": "eyJjaXBoZXJ0ZXh0IjoiYmFzZTY0LWtleS1nb2VzLWhlcmUiLCJpdiI6IjRCSDlKREVmYU1RM3NHTGkiLCJ2ZXJzaW9uIjoiNC4wLjAiLCJoYW5kbGUiOiJ1dWlkLWdvZXMtaGVyZSJ9",
    "keyVersion": {
        "id": "12e8c9c2-a162-472d-b7d6-8b9a86b815a6"
    }
}

Il valore plaintext rappresenta il DEK non impacchettato e il valore ciphertext rappresenta il DEK impacchettato e sono entrambi codificati Base64. Il valore keyVersion.id rappresenta la versione della chiave principale utilizzata per il wrapping.

Se desideri che Key Protect generi una nuova DEK per tuo conto, puoi anche passare un corpo che non contiene alcun dato in una richiesta di impacchettamento. La tua DEK generata, contenente il materiale con codifica base64, viene restituita nel corpo-entità della risposta, insieme alla DEK impacchettata.