Wrapping von Datenverschlüsselungsschlüsseln mit Rootschlüsseln aufheben
Sie können ein Datenverschlüsselungsschlüssel(DEK)A cryptographic key used to encrypt data that is stored in an application. um auf die Inhalte zuzugreifen, verwenden Sie dieIBM Cloud®Hyper Protect Crypto Services API des Schlüsselverwaltungsdienstes, wenn Sie ein privilegierter Benutzer sind. Durch Unwrapping eines DEK wird der Inhalt entschlüsselt und seine Integrität überprüft und die ursprünglichen Schlüsselinformationen werden an Ihren IBM Cloud-Datenservice zurückgegeben.
Informationen darüber, wie Sie das Key-Wrapping unterstützt, die Sicherheit ruhender Daten in der Cloud zu gewährleisten, finden Sie in Envelope-Verschlüsselung.
Wrapping von Schlüsseln mit der API aufheben
Nachdem Sie einen Wrapping-Aufruf an den Service gerichtet haben, können Sie für einen angegebenen Datenverschlüsselungsschlüssel (DEK) das Unwrapping vornehmen, um auf den Inhalt zuzugreifen,
indem Sie einen POST-Aufruf an den folgenden Endpunkt ausführen.
https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/actions/unwrap
Rootschlüssel, die dieselben Schlüsselinformationen enthalten, können das Wrapping desselben Datenverschlüsselungsschlüssels (WDEK) aufheben.
-
Kopieren Sie die ID des GrundtonA symmetric wrapping key that is used for encrypting and decrypting other keys that are stored in a data service. die Sie zum Ausführen der ersten Wrap-Anforderung verwendet haben.
Sie können die ID eines Schlüssels abrufen, indem Sie
GET /v2/keysAnfrage oder indem Sie Ihre Schlüssel in der Benutzeroberfläche anzeigen. -
Kopieren Sie den Wert von
ciphertext, der während der ursprünglichen Wrapping-Anforderung zurückgegeben wurde. -
Führen Sie den folgenden cURL-Befehl aus, um die Schlüsselinformationen zu entschlüsseln und zu authentifizieren.
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>" }'Ersetzen Sie die Variablen in der Beispielanforderung entsprechend der folgenden Tabelle.
Tabelle 1. Beschreibt die Variablen, die zum Entpacken von Schlüsseln benötigt werden inHyper Protect Crypto Services Variabel Beschreibung regionErforderlich. Die Regionsabkürzung, z. B. us-southoderau-syd, die das geografische Gebiet darstellt, in dem sich Ihre Hyper Protect Crypto Services-Serviceinstanz befindet. Weitere Informationen finden Sie unter Regionale Serviceendpunkte.portErforderlich. Die Portnummer des API-Endpunkts. key_IDErforderlich. Die eindeutige ID für den Rootschlüssel der ursprünglichen Wrapping-Anforderung. IAM_tokenErforderlich. Ihr IBM Cloud-Zugriffstoken. Nehmen Sie den vollständigen Inhalt des IAM-Tokens einschließlich des Werts für Bearer in die cURL-Anforderung auf. Weitere Informationen finden Sie unter Zugriffstoken abrufen.instance_IDErforderlich. Die eindeutige ID, die Ihrer Hyper Protect Crypto Services-Serviceinstanz zugewiesen ist. Weitere Informationen finden Sie unter Instanz-ID abrufen. key_ring_IDOptional. Die eindeutige ID des Schlüsselrings, zu dem der Schlüssel gehört. Wenn diese Option nicht angegeben wird, sucht Hyper Protect Crypto Services den Schlüssel in jedem Schlüsselring, der der angegebenen Instanz zugeordnet ist. Es wird empfohlen, die Schlüsselring-ID für eine optimierte Anforderung anzugeben. Hinweis: Die Schlüsselring-ID der Schlüssel, die ohne den Header
x-kms-key-ringerstellt werden, lautet wie folgt: default. Weitere Informationen finden Sie im Abschnitt zum Verwalten von Schlüsselringen.correlation_IDOptional. Die eindeutige ID, die zum Überwachen und Korrelieren von Transaktionen verwendet wird. encrypted_data_keyDer ciphertextWert, der während einer Wrap-Operation zurückgegeben wurde.Die ursprünglichen Schlüsselinformationen werden im Entitätshauptteil der Antwort zurückgegeben. Der Antworthauptteil enthält auch die ID der Schlüsselversion, die zum Unwrapping des angegebenen Ciphertexts verwendet wurde. Das folgende JSON-Objekt zeigt einen zurückgegebenen Beispielwert an.
{ "plaintext": "Rm91ciBzY29yZSBhbmQgc2V2ZW4geWVhcnMgYWdv", "keyVersion": { "id": "02fd6835-6001-4482-a892-13bd2085f75d" } }Wenn von Hyper Protect Crypto Services erkannt wird, dass Sie den Rootschlüssel gewechselt haben, der für das Unwrapping und den Zugriff auf Ihre Daten verwendet wird, gibt der Service auch den Datenverschlüsselungsschlüssel mit dem neuen Wrapping (
ciphertext) im Antworthauptteil für das Unwrapping zurück. Die neueste Schlüsselversion (rewrappedKeyVersion), die dem neuen Wert fürciphertextzugeordnet ist, wird ebenfalls zurückgegeben. Speichern und verwenden Sie das neueciphertextWert für zukünftige Umschlagverschlüsselungsvorgänge, sodass Ihre Daten durch den neuesten Stammschlüssel geschützt sind.
Schlüsselinformationen decodieren
Wenn Sie das Wrapping eines Datenverschlüsselungsschlüssels aufheben, werden die Schlüsselinformationen in Base64-Codierung zurückgegeben. Sie müssen den Schlüssel decodieren, bevor Sie ihn verschlüsseln.
Schlüsselinformationen mit OpenSSL decodieren
-
Laden Sie OpenSSLherunter und installieren Sie es.
-
Führen Sie den folgenden Befehl aus, um Ihre Schlüsselinformationen in Base64-Codierung zu decodieren:
$ openssl base64 -d -in <infile> -out <outfile>Ersetzen Sie die Variablen in der Beispielanforderung entsprechend der folgenden Tabelle.
Tabelle 2. Beschreibt die Variablen, die zum Decodieren Ihrer Schlüsselinformationen erforderlich sind Variabel Beschreibung infileDer Name der Datei, in der sich Ihre base64-codierten Schlüsselinformationen befinden. outfileDer Name der Datei, in die die decodierten Schlüsselinformationen ausgegeben werden, nachdem der Befehl ausgeführt wurde. Wenn Sie das dekodierte Material direkt in der Kommandozeile und nicht in einer Datei ausgeben möchten, führen Sie den Befehl
openssl enc -base64 -d <<< '<key_material_string>', wobei key_material_string der zurückgegebene Klartext Ihrer Unwrap-Anfrage ist.