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.

  1. Rufen Sie Ihren Service- und Authentifizierungsnachweis ab, um mit den Schlüsseln im Service zu arbeiten.

  2. 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/keys Anfrage oder indem Sie Ihre Schlüssel in der Benutzeroberfläche anzeigen.

  3. Kopieren Sie den Wert von ciphertext, der während der ursprünglichen Wrapping-Anforderung zurückgegeben wurde.

  4. 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
    region Erforderlich. Die Regionsabkürzung, z. B. us-south oder au-syd, die das geografische Gebiet darstellt, in dem sich Ihre Hyper Protect Crypto Services-Serviceinstanz befindet. Weitere Informationen finden Sie unter Regionale Serviceendpunkte.
    port Erforderlich. Die Portnummer des API-Endpunkts.
    key_ID Erforderlich. Die eindeutige ID für den Rootschlüssel der ursprünglichen Wrapping-Anforderung.
    IAM_token Erforderlich. 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_ID Erforderlich. Die eindeutige ID, die Ihrer Hyper Protect Crypto Services-Serviceinstanz zugewiesen ist. Weitere Informationen finden Sie unter Instanz-ID abrufen.
    key_ring_ID Optional. 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-ring erstellt werden, lautet wie folgt: default. Weitere Informationen finden Sie im Abschnitt zum Verwalten von Schlüsselringen.

    correlation_ID Optional. Die eindeutige ID, die zum Überwachen und Korrelieren von Transaktionen verwendet wird.
    encrypted_data_key Der ciphertext Wert, 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ür ciphertext zugeordnet ist, wird ebenfalls zurückgegeben. Speichern und verwenden Sie das neue ciphertext Wert 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

  1. Laden Sie OpenSSLherunter und installieren Sie es.

  2. 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
    infile Der Name der Datei, in der sich Ihre base64-codierten Schlüsselinformationen befinden.
    outfile Der 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.