In diesem Thema wird beschrieben, wie Sie Ihre Schlüssel formatieren, damit sie von Cloud KMS als neue Schlüsselversionen importiert werden können.
Welches Format für das Schlüsselmaterial verwendet werden muss, hängt davon ab, ob das Schlüsselmaterial in einen symmetrischen oder in einen asymmetrischen Schlüssel importiert wird. Weitere Informationen zum Unterschied zwischen symmetrischen und asymmetrischen Schlüsseln finden Sie unter Schlüsselzwecke und -algorithmen.
Unterstützte Schlüsselformate
Symmetrische Schlüssel für die Verschlüsselung müssen 16 Byte (nur für rohe symmetrische Verschlüsselung) oder 32 Byte Binärdaten umfassen und dürfen nicht codiert sein. Wenn Ihr Schlüssel hex- oder base64-codiert ist, müssen Sie ihn vor dem Import entschlüsseln.
Symmetrische Schlüssel zum Signieren (MAC-Schlüssel) müssen eine Länge haben, die der Ausgabelänge der verwendeten kryptografischen Hash-Funktion entspricht, (z. B. HMAC-SHA256-Schlüssel müssen eine Länge von 32 Byte haben) und dürfen nicht codiert sein. Wenn Ihr Schlüssel hex- oder base64-codiert ist, müssen Sie ihn vor dem Import entschlüsseln.
Asymmetrische Schlüssel für die Verschlüsselung oder Signierung müssen im PKCS #8-Format vorliegen und DER-codiert sein. Das PCKS #8-Format ist in RFC5208 definiert. Die DER-Codierung ist in der International Tel Nachrichten Union X.680 definiert. Asymmetrische Schlüssel müssen eine der von Cloud KMS unterstützten Längen- und Algorithmuskombinationen verwenden.
Einige Aspekte eines Schlüssels, z. B. die Länge des Schlüssels, können nach der Erstellung des Schlüssels nicht mehr geändert werden. In diesen Fällen kann der Schlüssel nicht in Cloud KMS importiert werden.
Einen symmetrischen Schlüssel überprüfen
Mit dem Befehl wc
können Sie die Länge eines symmetrischen Schlüssels überprüfen.
wc -c /path/to/unwrapped-key
Einen symmetrischen Verschlüsselungschlüssel mit einer anderen Länge als 32 können Sie nicht importieren.
Symmetrische Signaturschlüssel (MAC-Schlüssel) müssen eine Länge haben, die der Ausgabelänge der verwendeten kryptografischen Hash-Funktion entspricht (Beispiel: HMAC-SHA256-Schlüssel müssen eine Länge von 32 Byte haben).
Prüfen Sie das Format eines Schlüssels mit dem Befehl file
.
file /path/to/unwrapped-key
Wenn die Ausgabe
data
lautet, hat der Schlüssel das richtige Format für den Import.Wenn die Ausgabe
ASCII text
ist, zeigen Sie mit dem Befehlcat
den Inhalt der Datei an.Wenn es sich um eine Zeichenfolge aus Buchstaben und Zahlen handelt, die mit einem
=
-Zeichen endet, ist sie möglicherweise base64-codiert. Verwenden Sie den Befehlbase64
(Base64.exe
unter Windows), um ihn zu decodieren. Das folgende Beispiel zeigt einen base64-codierten Schlüssel:THzArjassB+giKeNeT1Zr74OgV24t+Ep+37Ec6ojB3Y=
Wenn sie eine oder mehrere Zeilen mit Hexadezimalzahlen enthält, ist sie möglicherweise Hex-codiert. Verwenden Sie zum Decodieren den Befehl
xxd
(oder denFormat-Hex
PowerShell-Befehl unter Windows). Das folgende Beispiel zeigt einen Hex-codierten Schlüssel:00000000: 4c7c c0ae 36ac b01f a088 a78d 793d 59af L|..6.......y=Y. 00000010: be0e 815d b8b7 e129 fb7e c473 aa23 0776 ...]...).~.s.#.v
Wenn er einen anderen Text enthält, ist er möglicherweise kein gültiger symmetrischer Schlüssel.
Asymmetrische Schlüssel formatieren
Asymmetrische Schlüssel, die einen der unterstützten Algorithmen verwenden, können importiert werden. In der Praxis ist es schwierig, rückwirkend den Algorithmus zu ermitteln, der zum Erstellen eines asymmetrischen Schlüssels verwendet wird. Aus diesem Grund empfehlen wir, die folgenden Befehle für jeden asymmetrischen Schlüssel auszuführen, bevor Sie versuchen, ihn in Cloud KMS zu importieren.
Prüfen Sie das Format eines Schlüssels mit dem Befehl
file
.file /path/to/unwrapped-key
Wenn die Ausgabe
PEM
ist, liegt der Schlüssel im PEM-Format vor. Wenn es sich umASCII text
handelt, liegt er wahrscheinlich im PEM-Format vor. Führen Sie in beiden Fällen den folgenden Befehl aus, um sie in das PCKS#8 DER-Format zu konvertieren:openssl pkcs8 -topk8 -nocrypt -inform PEM -outform DER \ -in /path/to/asymmetric-key-pem \ -out /path/to/formatted-key
Wenn die Ausgabe
data
ist, liegt der Schlüssel wahrscheinlich im DER-Format vor, aber möglicherweise nicht im PKCS #8-Format. Führen Sie den folgenden Befehl aus, um sicherzustellen, dass der Schlüssel das richtige Format hat. Der Befehl hat keine Auswirkungen, wenn der Schlüssel bereits im richtigen Format vorliegt. In diesem Fall können Sie mit dem Befehldiff
überprüfen, ob die Ein- und Ausgabedatei identisch sind.openssl pkcs8 -topk8 -nocrypt -inform DER -outform DER \ -in /path/to/asymmetric-key-der \ -out /path/to/formatted-key
Fehlerbehebung
Wenn Sie die oben genannten Befehle ausführen und meinen, dass der Schlüssel in einem geeigneten Format vorliegt, der Import jedoch weiterhin fehlschlägt, überprüfen Sie in der Google Cloud Console auf Fehler und lesen Sie Fehlerbehebung bei fehlgeschlagenen Importen.