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).
-
Richiama le tue credenziali del servizio e di autenticazione per utilizzare le chiavi nel servizio.
-
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/keysrichiesta o visualizzando le chiavi nell'interfaccia utente. -
Copia il valore
ciphertextrestituito durante la richiesta di impacchettamento iniziale. -
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 regionObbligatorio. L'abbreviazione della regione, come us-southoau-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.portObbligatorio. Il numero di porta dell'endpoint API. key_IDObbligatorio. L'identificativo univoco della chiave root che hai utilizzato per la richiesta di impacchettamento iniziale. IAM_tokenObbligatorio. Il tuo token di accesso IBM Cloud. Includere l'intero contenuto del file IAMtoken, compreso il valore al portatore, nel filecURL richiesta. Per ulteriori informazioni, vedere Recupero di un token di accesso.instance_IDObbligatorio. 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_IDFacoltativo. 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_IDFacoltativo. L'identificativo univoco utilizzato per tracciare e correlare le transazioni. encrypted_data_keyIL ciphertextvalore 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 nuovociphertext. Conservare e utilizzare il nuovociphertextvalore 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
-
Scaricare e installare OpenSSL.
-
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 infileIl nome del file in cui risiede la tua stringa di materiale chiave codificata base64. outfileIl 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.