Wrapping für Schlüssel durchführen

Sie können Ihre Verschlüsselungsschlüssel mit einem Rootschlüssel verwalten und schützen, indem Sie die IBM® Key Protect-API und -Konsole verwenden.

Wenn Sie einen DatenverschlüsselungsschlüsselEin Verschlüsselungsschlüssel, der zum Verschlüsseln von Daten verwendet wird, die in einer Anwendung gespeichert sind. mit einem root-SchlüsselEin symmetrischer Wrapping-Schlüssel, der zum Verschlüsseln und Entschlüsseln anderer Schlüssel verwendet wird, die in einem Datenservice gespeichert sind. (DEK), Key Protect die Stärke mehrerer Algorithmen zum Schutz der Privatsphäre und der Integrität Ihrer verschlüsselten Daten.

Informationen darüber, wie Key-Wrapping Sie unterstützt, die Sicherheit ruhender Daten in der Cloud zu gewährleisten, finden Sie in Daten mit Envelope-Verschlüsselung schützen.

Eine Taste mithilfe der Konsole umbrechen

Wenn Sie bereits eine Instanz von Key Protect haben und die DEK mithilfe einer grafischen Schnittstelle verschlüsseln möchten, können Sie die IBM Cloud Konsole verwenden.

Nachdem Sie Ihre „ eigene Schlüssel “ importiert oder erstellt haben, führen Sie die folgenden Schritte aus, um Ihre Daten mithilfe des Schlüssels zu verpacken:

  1. Melden Sie sich bei der „ IBM Cloud “-Konsole an.

  2. Wählen Sie in der Menüdie Ressourcenliste aus, um eine Liste Ihrer Ressourcen anzuzeigen.

  3. Wählen Sie in der IBM Cloud-Ressourcenliste die bereitgestellte Instanz von Key Protect aus.

  4. Wählen Sie den Rootschlüssel aus der Liste der Schlüssel aus, die Sie zum Umwickeln Ihrer Daten verwenden möchten.

  5. Klicken Sie auf das Symbol und dann auf die Option Envelope -Verschlüsselung, um das Seitenmenü zu öffnen. Stellen Sie sicher, dass die Option „Wrap-Taste“ ausgewählt ist.

  6. Sie können Key Protect erlauben, Ihre Daten zu verpacken oder Ihren eigenen Base64 verschlüsselten Klartext und zusätzliche Authentifizierungsdaten (AAD) bereitstellen, um die Daten zu verpacken. Wenn Sie sich dafür entscheiden, Ihren eigenen Klartext und Ihre AAD anzugeben, müssen Sie diese Angaben beim Entpacken Ihrer Daten machen. Wenn Sie noch keine Erfahrung mit der Erstellung von AAD- und „ Base64 “-kodiertem Klartext haben, lassen Sie Key Protect Ihre Daten umschließen, indem Sie die Option „Wrap key for me“ aktiviert lassen.

  7. Klicken Sie auf die Schaltfläche Wrap Key .

Wrapping für Schlüssel mit der API durchführen

Sie können einen bestimmten Datenverschlüsselungsschlüssel (DEK) mit einem Rootschlüssel schützen, den Sie in Key Protect verwalten.

Nach der Angabe eines Rootschlüssels im Service können Sie einen DEK mit der erweiterten Verschlüsselung mithilfe eines POST-Aufrufs zum folgenden Endpunkt einschließen.

https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/wrap
  1. Rufen Sie die Authentifizierungsnachweise, um mit den Schlüsseln im Service zu arbeiten.

  2. Kopieren Sie die Schlüsselinformationen, die Sie verwalten und schützen möchten.

    Wenn Sie über Manager- oder Writer-Berechtigungen für Ihre Key Protect-Instanz verfügen, können Sie das Schlüsselmaterial für einen bestimmten Schlüssel abrufen, indem Sie eine GET /v2/keys/<keyID_or_alias>-Anfrage stellen..

  3. Kopieren Sie die ID des Rootschlüssels, den Sie für das Wrapping verwenden möchten.

  4. Führen Sie den folgenden curl -Befehl aus, um den Schlüssel mit einer Wrap-Operation zu schützen.

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

Ersetzen Sie die Variablen in der Beispielanforderung entsprechend der folgenden Tabelle.

Tabelle 1. Variablen, die benötigt werden, um einen bestimmten Schlüssel zu verpacken Key Protect
Variable Beschreibung
Bereich Erforderlich. Die Abkürzung der Region, z. B. us-south oder eu-gb, die den geografischen Bereich bezeichnet, in dem sich Ihre Key Protect-Instanz befindet. Weitere Informationen finden Sie in Regionale Serviceendpunkte.
keyID_or_alias Erforderlich. Die eindeutige ID oder der Aliasname für den Rootschlüssel, den Sie für das Wrapping verwenden wollen.
IAM_token Erforderlich. Ihr IBM Cloud-Zugriffstoken. Fügen Sie den vollständigen Inhalt des IAM-Tokens, einschließlich des Träger-Wertes, in die Curl-Anforderung ein. Weitere Informationen finden Sie unter Zugriffstoken abrufen.
instance_id Erforderlich. Die eindeutige ID, die Ihrer Key Protect-Serviceinstanz zugewiesen ist. Weitere Informationen finden Sie unter Instanz-ID abrufen.
key_ring_ID Optional. Die eindeutige Kennung des Schlüsselrings, zu dem der Schlüssel gehört. Wenn diese Option nicht angegeben wird, sucht Key Protect den Schlüssel in jedem Schlüsselring, der der angegebenen Instanz zugeordnet ist. Die Angabe der Schlüsselring-ID wird für eine optimierte Anfrage empfohlen. Hinweis: Die Schlüsselring-ID der Schlüssel, die ohne den Header x-kms-key-ring erstellt werden, ist default. Weitere Informationen finden Sie unter Gruppierungsschlüssel.
correlation_ID Optional. Die eindeutige ID, die zum Überwachen und Korrelieren von Transaktionen verwendet wird.
data_key Optional. Die Schlüsselinformationen des DEK, den Sie verwalten und schützen wollen. Der Wert für den unverschlüsselten Text muss base64-kodiert sein. Weitere Informationen zum Verschlüsseln der Schlüsselinformationen finden Sie unter Schlüsselinformationen verschlüsseln. Um einen neuen DEK zu erzeugen, lassen Sie das Klartext-Attribut weg. Der Service generiert einen zufälligen Klartext (32 Byte), führt das Wrapping für diesen Wert durch und gibt dann den generierten Wert und den Wert mit dem Wrapping in der Antwort zurück. Die generierten und umschlossenen Werte sind im „ Base64 “-Format kodiert und müssen dekodiert werden, um die Schlüssel zu entschlüsseln.
additional_data Optional. Die zusätzlichen Authentifizierungsdaten (AAD), die zur weiteren Sicherung des Schlüssels verwendet werden. Jede Zeichenfolge kann bis zu 255 Zeichen enthalten. Wenn AAD bei einer Wrapping-Aufruf für den Service angegeben werden, müssen Sie dieselben AAD während des nachfolgenden Unwrap-Aufrufs verwenden. Wichtig: Der Dienst „ Key Protect “ speichert keine zusätzlichen Authentifizierungsdaten. Wenn Sie AAD bereitstellen, speichern Sie die Daten an einem sicheren Ort, um sicherzustellen, dass Sie bei nachfolgenden Unwrap-Anfragen auf dieselbe AAD zugreifen und diese bereitstellen können.

Der Datenverschlüsselungsschlüssel nach dem Wrapping, der die mit Base64-Codierung verschlüsselte Schlüsselinformationen enthält, wird im Entitätshauptteil der Antwort zurückgegeben. Der Antworthauptteil enthält außerdem die ID der Schlüsselversion, die für das Wrapping des bereitgestellten Klartexts verwendet wurde. Das folgende JSON-Objekt zeigt einen Beispiel-Rückgabewert.

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

Wenn bei der Wrapping-Anforderung das Attribut plaintext nicht angegeben wird, gibt der Service sowohl den generierten Datenverschlüsselungsschlüssel (DEK) als auch den DEK nach dem Wrapping im Format mit Base64-Codierung zurück.

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

Der Wert für plaintext stellt den DEK ohne Wrapping dar und der Wert für ciphertext stellt den DEK mit dem Wrapping dar, und zwar beide Werte in Base64-Codierung. Der Wert für keyVersion.id stellt die Version des Rootschlüssels dar, der für das Wrapping verwendet wurde.

Wenn Key Protect einen neuen Datenverschlüsselungsschlüssel (DEK) generieren soll, können Sie auch einen leeren Hauptteil in einer Wrapping-Anforderung übergeben. Der generierte DEK, der die mit Base64-Codierung verschlüsselten Schlüsselinformationen enthält, wird im Entitätshauptteil der Antwort zusammen mit dem DEK nach dem Wrapping zurückgegeben.