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 das Schlüsselmaterial korrekt formatiert ist, kann die Google Cloud CLI das Material automatisch verpacken, 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 entsprechendes Beispiel.
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:
- Der öffentliche Schlüssel aus dem Importjob wird verwendet, um einen einmalig verwendbaren AES-256-Schlüssel zu codieren. Die Verschlüsselung erfolgt mit RSAES-OAEP und MGF-1 sowie dem von der Importmethode angegebenen Digest-Algorithmus. Der einmalig verwendete AES-256-Schlüssel wird zum Zeitpunkt des Wrappings generiert.
- 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 Schlüssel-Wrapping-Vorgang, bei dem das Zielschlüsselmaterial direkt mit dem öffentlichen Schlüssel aus dem Importjob mit RSAES-OAEP, MGF-1 und dem SHA-256-Digest-Algorithmus verschlüsselt wird. Er basiert auf dem PKCS #11-RSA-OAEP-Mechanismus CKM_RSA_PKCS_OAEP. Aufgrund der Größenbeschränkungen ist diese Importmethode nicht für den Import von RSA-Schlüsseln geeignet.