Key-Wrapping

Beim Key-Wrapping wird ein Schlüssel mithilfe eines anderen Schlüssels codiert, um ihn sicher zu speichern oder über einen nicht vertrauenswürdigen Kanal zu übertragen. Key-Wrapping kann je nach Kontext auf symmetrische oder asymmetrische Kryptografie zurückgreifen.

In Cloud Key Management Service wird Key-Wrapping genutzt, um von Nutzern bereitgestellte kryptografische Schlüssel sicher zu importieren. Zum Importieren von Schlüsseln ist ein Importjob erforderlich. Jeder Importjob hat eine Importmethode, die das zu verwendende Key-Wrapping-Protokoll angibt.

Cloud KMS erfordert bestimmte Formate für importiertes Schlüsselmaterial. Bevor Ihr Schlüsselmaterial für den Import verpackt wird, müssen Sie es möglicherweise in ein mit Cloud KMS kompatibles Format konvertieren. Unter Schlüssel für Import formatieren erhalten Sie Informationen zu den erforderlichen Formaten und eine Anleitung dazu, wie Sie Ihre Schlüssel bei Bedarf in das erforderliche Format konvertieren können.

Sobald Ihr Schlüsselmaterial korrekt formatiert ist, kann es von der Google Cloud CLI automatisch verpackt werden, bevor es sicher an Cloud KMS übertragen wird. Weitere Informationen finden Sie unter Schlüssel importieren. Alternativ können Sie die Schlüssel manuell mit den entsprechenden kryptografischen Protokollen verpacken. Unter Schlüssel mit OpenSSL unter Linux verpacken finden Sie ein Beispiel dafür.

Importmethoden

Cloud KMS bietet die folgenden Importmethoden:

Importmethode Schlüsseltyp des Importjobs Key-Wrapping-Algorithmus
RSA_OAEP_3072_SHA1_AES_256 3.072-Bit-RSA RSAES-OAEP mit SHA-1 + AES-KWP
RSA_OAEP_4096_SHA1_AES_256 4.096-Bit-RSA RSAES-OAEP mit SHA-1 + AES-KWP
RSA_OAEP_3072_SHA256_AES_256 (empfohlen) 3.072-Bit-RSA RSAES-OAEP mit SHA-256 + AES-KWP
RSA_OAEP_4096_SHA256_AES_256 4.096-Bit-RSA RSAES-OAEP mit SHA-256 + AES-KWP
RSA_OAEP_3072_SHA256 3.072-Bit-RSA RSAES-OAEP mit SHA-256
RSA_OAEP_4096_SHA256 4.096-Bit-RSA RSAES-OAEP mit SHA-256

Key-Wrapping-Algorithmen

Die von Cloud KMS bereitgestellten Importmethoden entsprechen den folgenden Key-Wrapping-Algorithmen:

RSAES-OAEP mit SHA-1/SHA-256 + AES-KWP

Dieser Key-Wrapping-Algorithmus ist ein hybrides Verschlüsselungsschema, das aus einem asymmetrischen Key-Wrapping-Vorgang und einem symmetrischen Key-Wrapping-Vorgang besteht:

  1. Der öffentliche Schlüssel aus dem Importjob wird zum Verschlüsseln eines einmaligen AES-256-Schlüssels verwendet. Die Verschlüsselung wird mit RSAES-OAEP und MGF-1 in Verbindung mit dem durch die Importmethode angegebenen Digest-Algorithmus durchgeführt. Der einmalige AES-256-Schlüssel wird zum Zeitpunkt des Wrappings generiert.
  2. Der einmalig verwendete AES-256-Schlüssel aus Schritt 1 wird verwendet, um das Zielschlüsselmaterial mithilfe des Algorithmus AES Key Wrap with Padding zu codieren.

Das verpackte Schlüsselmaterial für den Import ist ein Einbyte-Array, das sich aus den Ergebnissen von Schritt 1 gefolgt von den Ergebnissen von Schritt 2 zusammensetzt. Die Ergebnisse aus Schritt 1 und 2 werden also miteinander verkettet und bilden somit das verpackte Schlüsselmaterial.

Dieser Algorithmus ist mit dem Key-Wrapping-Algorithmus CKM_RSA_AES_KEY_WRAP in PKCS #11 identisch. Wenn Sie einen Schlüssel von einem HSM importieren und das HSM diesen Algorithmus unterstützt, können Sie ihn direkt verwenden. Alternativ können die Schritte 1 und 2 jeweils mit den PKCS #11-Mechanismen CKM_RSA_PKCS_OAEP und CKM_AES_KEY_WRAP_PAD durchgeführt werden.

Wenn Ihr Quell-HSM (oder ein anderer Schlüsselanbieter, wenn kein HSM verwendet wird) den Key-Wrapping-Mechanismus RSA AES nicht unterstützt, müssen Sie das Schlüsselmaterial manuell mit dem öffentlichen Schlüssel des Importjobs verpacken. Ein Beispiel für die Verwendung mit OpenSSL finden Sie unter Schlüssel mit OpenSSL unter Linux verpacken.

RSAES-OAEP mit SHA-256

Dies ist ein asymmetrischer Key-Wrapping-Vorgang, bei dem der öffentliche Schlüssel aus dem Importjob mit RSAES-OAEP unter Verwendung von MGF-1 und dem SHA-256-Digest-Algorithmus das Zielschlüsselmaterial direkt verschlüsselt. Er basiert auf dem PKCS #11 RSA OAEP-Mechanismus CKM_RSA_PKCS_OAEP. Die mit dieser Importmethode verbundenen Größenbeschränkungen machen sie zum Importieren von privaten RSA-Schlüsseln ungeeignet.