Jeder Cloud Key Management Service-Schlüssel hat einen Zweck, der die kryptografischen Funktionen des Schlüssels definiert. Durch den Zweck wird außerdem bestimmt, welche Algorithmen für die Versionen des Schlüssels unterstützt werden. Der Algorithmus legt fest, welche Parameter für einzelne kryptografische Vorgänge verwendet werden müssen. Jeder Schlüssel hat außerdem ein Schutzniveau, das angibt, ob kryptografische Vorgänge auf Software-Ebene oder in einem Hardware-Sicherheitsmodul (Hardware Security Module, HSM) ausgeführt werden.
Schlüsselzwecke
Cloud KMS bietet Schlüsselzwecke für folgende Szenarien:
| Szenario | Schlüsselzweck (SDK) | Schlüsselzweck (API) | Unterstützte Methoden |
|---|---|---|---|
| Symmetrische Verschlüsselung | encryption |
ENCRYPT_DECRYPT |
cryptoKeys.encrypt, cryptoKeys.decrypt |
| Unbearbeitete symmetrische Verschlüsselung | raw-encryption |
RAW_ENCRYPT_DECRYPT |
cryptoKeys.rawEncrypt, cryptoKeys.rawDecrypt |
| Asymmetrische Signatur | asymmetric-signing |
ASYMMETRIC_SIGN |
cryptoKeyVersions.asymmetricSign, cryptoKeyVersions.getPublicKey |
| Asymmetrische Verschlüsselung | asymmetric-encryption |
ASYMMETRIC_DECRYPT |
cryptoKeyVersions.asymmetricDecrypt, cryptoKeyVersions.getPublicKey |
| Mechanismen zur Schlüsselkapselung | key-encapsulation |
KEY_ENCAPSULATION |
cryptoKeyVersions.decapsulate, cryptoKeyVersions.getPublicKey |
| MAC-Signatur | mac |
MAC |
cryptoKeyVersions.macSign, cryptoKeyVersions.macVerify |
Wenn Sie einen Schlüssel erstellen, legen Sie den Zweck und den Algorithmus dieses Schlüssels fest. Je nach Zweck können Sie den Algorithmus ändern, wenn Sie neue Schlüsselversionen erstellen. Der Zweck selbst kann nicht geändert werden.
Zwei Schlüssel mit demselben Zweck können unterschiedliche zugrunde liegende Algorithmen verwenden, müssen aber denselben Satz von kryptografischen Vorgängen unterstützen.
Symmetrische Verschlüsselungsalgorithmen
Der Schlüsselzweck ENCRYPT_DECRYPT ermöglicht die symmetrische Verschlüsselung. Alle Schlüssel mit dem Schlüsselzweck ENCRYPT_DECRYPT verwenden den Algorithmus GOOGLE_SYMMETRIC_ENCRYPTION. Bei diesem Algorithmus werden keine Parameter verwendet. Er nutzt AES-Schlüssel (Advanced Encryption Standard) mit 256 Bit im Galois Counter Mode (GCM), die mit Cloud KMS-internen Metadaten aufgefüllt sind.
Symmetrische Verschlüsselungsalgorithmen wie AES-256 gelten im Allgemeinen als quantensicher. Sie können weiterhin symmetrische Verschlüsselung verwenden.
Asymmetrische Signaturalgorithmen
Der Schlüsselzweck ASYMMETRIC_SIGN ermöglicht asymmetrische Signaturen. Schlüssel mit dem Schlüsselzweck ASYMMETRIC_SIGN verwenden unterschiedliche Algorithmen. Dies richtet sich danach, ob der Schlüssel Elliptische-Kurven-Signaturen oder RSA-Signaturen unterstützt.
Bei einem Schlüssel mit dem Zweck ASYMMETRIC_SIGN können Sie durch Ändern des Algorithmus zwischen Schlüsseln unterschiedlicher Größe und verschiedenen Signaturschemata wechseln.
Asymmetrische Signaturalgorithmen, die elliptische Kurven und RSA verwenden, sind anfällig für Angriffe durch zukünftige Quantencomputer. Wenn Sie Ihre Signaturen langfristig nicht abstreitbar machen möchten, wählen Sie stattdessen einen asymmetrischen Post-Quanten-Signaturalgorithmus aus.
Elliptische-Kurven-Signaturalgorithmen
So sieht das Format eines Elliptische-Kurven-Signaturalgorithmus aus:
EC_SIGN_ELLIPTIC_CURVE_DIGEST_ALGORITHM
Dabei gilt:
ELLIPTIC_CURVEist die elliptische KurveDIGEST_ALGORITHMist der Digest-Algorithmus
Die folgende Tabelle enthält die möglichen Algorithmen für Elliptische-Kurven-Schlüssel mit dem Zweck ASYMMETRIC_SIGN. Verwenden Sie für die Algorithmusnamen Kleinbuchstaben mit dem gcloud-Befehl und Großbuchstaben mit der Cloud Key Management Service API.
| Algorithmus (SDK) | Algorithmus (API) | Beschreibung |
|---|---|---|
ec-sign-ed25519 |
EC_SIGN_ED25519 |
EdDSA auf Curve25519 im PureEdDSA-Modus, bei dem Rohdaten anstelle von gehashten Daten als Eingabe verwendet werden |
ec-sign-p256-sha256 **(empfohlen)** |
EC_SIGN_P256_SHA256 |
ECDSA auf der P-256-Kurve mit einem SHA-256-Digest |
ec-sign-p384-sha384 |
EC_SIGN_P384_SHA384 |
ECDSA auf der P-384-Kurve mit einem SHA-384-Digest |
ec-sign-secp256k1-sha256 |
EC_SIGN_SECP256K1_SHA256 |
ECDSA auf der Secp256k1-Kurve mit einem SHA-256-Digest |
RSA-Signaturalgorithmen
So sieht das Format eines RSA-Signaturalgorithmus aus:
RSA_SIGN_PADDING_ALGORITHM_MODULUS_BIT_LENGTH_DIGEST_ALGORITHM
Dabei gilt:
PADDING_ALGORITHMist der Padding-AlgorithmusMODULUS_BIT_LENGTHist die Bitlänge des SchlüsselsDIGEST_ALGORITHMist der Digest-Algorithmus
Beachten Sie: einige Algorithmen sind formatiert als
RSA_SIGN_RAW_PADDING_ALGORITHM_MODULUS_BIT_LENGTH
und lassen den Digest-Algorithmus weg. Diese Algorithmen sind Varianten der PKCS #1-Signatur, bei der die Codierung in eine DigestInfo weggelassen wird. In der Variante:
- Ein Digest wird für die zu signierende Nachricht berechnet.
- Das PKCS #1-Padding wird direkt auf den Digest angewendet.
- Wird unter Verwendung des privaten RSA-Schlüssels eine Signatur des gepaddeten Digests berechnet.
Die folgende Tabelle enthält die möglichen Algorithmen für RSA-Schlüssel mit dem Zweck ASYMMETRIC_SIGN. Verwenden Sie für die Algorithmusnamen Kleinbuchstaben mit dem gcloud-Befehl und Großbuchstaben mit der Cloud Key Management Service API.
| Algorithmus (SDK) | Algorithmus (API) | Beschreibung |
|---|---|---|
rsa-sign-pss-2048-sha256 |
RSA_SIGN_PSS_2048_SHA256 |
RSASSA-PSS-2048-Bit-Schlüssel mit einem SHA-256-Digest |
rsa-sign-pss-3072-sha256(empfohlen) |
RSA_SIGN_PSS_3072_SHA256 |
RSASSA-PSS-3072-Bit-Schlüssel mit einem SHA-256-Digest |
rsa-sign-pss-4096-sha256 |
RSA_SIGN_PSS_4096_SHA256 |
RSASSA-PSS-4096-Bit-Schlüssel mit einem SHA-256-Digest |
rsa-sign-pss-4096-sha512 |
RSA_SIGN_PSS_4096_SHA512 |
RSASSA-PSS-4096-Bit-Schlüssel mit einem SHA-512-Digest |
rsa-sign-pkcs1-2048-sha256 |
RSA_SIGN_PKCS1_2048_SHA256 |
RSASSA-PKCS1 v1_5 mit einem 2048-Bit-Schlüssel und einem SHA-256-Digest |
rsa-sign-pkcs1-3072-sha256 |
RSA_SIGN_PKCS1_3072_SHA256 |
RSASSA-PKCS1 v1_5 mit einem 3072-Bit-Schlüssel und einem SHA-256-Digest |
rsa-sign-pkcs1-4096-sha256 |
RSA_SIGN_PKCS1_4096_SHA256 |
RSASSA-PKCS1 v1_5 mit einem 4096-Bit-Schlüssel und einem SHA-256-Digest |
rsa-sign-pkcs1-4096-sha512 |
RSA_SIGN_PKCS1_4096_SHA512 |
RSASSA-PKCS1 v1_5 mit einem 4096-Bit-Schlüssel und einem SHA-512-Digest |
rsa-sign-raw-pkcs1-2048 |
RSA_SIGN_RAW_PKCS1_2048 |
RSASSA-PKCS1-v1_5-Signatur ohne Codierung mit einem 2048-Bit-Schlüssel |
rsa-sign-raw-pkcs1-3072 |
RSA_SIGN_RAW_PKCS1_3072 |
RSASSA-PKCS1-v1_5-Signatur ohne Codierung mit einem 3072-Bit-Schlüssel |
rsa-sign-raw-pkcs1-4096 |
RSA_SIGN_RAW_PKCS1_4096 |
RSASSA-PKCS1-v1_5-Signatur ohne Codierung mit einem 4096-Bit-Schlüssel |
Die verwendete Salt-Länge für das probabilistische Signaturschema (Probabilistic Signature Scheme, PSS) entspricht der Länge des Digest-Algorithmus. RSA_SIGN_PSS_2048_SHA256 verwendet z. B. ein PSS mit einer Salt-Länge von 256 Bits. Bei PSS wird der im Algorithmusnamen angegebene Digest-Algorithmus auch für die Maskengenerierungsfunktion (MGF1) verwendet. Wenn Sie beispielsweise RSA_SIGN_PSS_2048_SHA256 verwenden, senden Sie einen SHA-256-Hash der Daten, die signiert werden sollen. Cloud KMS verwendet intern SHA-256 als Hash-Algorithmus für MGF1 beim Berechnen der Signatur.
PQC-Signaturalgorithmen
Signaturalgorithmen für Post-Quanten-Kryptografie (PQC) beginnen mit dem Präfix PQ_SIGN_. In der folgenden Tabelle sind die PQC-Algorithmen aufgeführt, die Cloud KMS für Schlüssel mit dem Zweck ASYMMETRIC_SIGN verwenden kann. Die reinen Algorithmen verwenden Rohdaten als Eingabe, während die Pre-Hash-Algorithmen einen Hash der Daten akzeptieren.
| Algorithmus (SDK) | Algorithmus (API) | Variante | Beschreibung |
|---|---|---|---|
pq-sign-ml-dsa-65 |
PQ_SIGN_ML_DSA_65 |
Pure | Modul-Lattice-Based Digital Signature Algorithm |
pq-sign-slh-dsa-sha2-128s |
PQ_SIGN_SLH_DSA_SHA2_128S |
Pure | Zustandsloser hashbasierter Algorithmus für digitale Signaturen. |
pq-sign-hash-slh-dsa-sha2-128s-sha256 |
PQ_SIGN_HASH_SLH_DSA_SHA2_128S_SHA256 |
Pre-Hash | Zustandsloser hashbasierter Algorithmus für digitale Signaturen. |
Asymmetrische Verschlüsselungsalgorithmen
Der Schlüsselzweck ASYMMETRIC_DECRYPT ermöglicht die RSA-Verschlüsselung. So sieht das Format eines ASYMMETRIC_DECRYPT-Algorithmus aus:
RSA_DECRYPT_PADDING_ALGORITHM_MODULUS_BIT_LENGTH_DIGEST_ALGORITHM
Dabei gilt:
PADDING_ALGORITHMist der Padding-AlgorithmusMODULUS_BIT_LENGTHist die Bitlänge des SchlüsselsDIGEST_ALGORITHMist der Digest-Algorithmus
Die asymmetrische Verschlüsselung mit RSA-Algorithmen ist anfällig für Quantencomputer, einschließlich HNDL-Angriffen („harvest now, decrypt later“). Bei einem HNDL-Angriff fängt ein Angreifer einen Geheimtext ab, den er nicht entschlüsseln kann, und speichert ihn in der Hoffnung, ihn irgendwann mit Quantencomputing entschlüsseln zu können. Wenn Sie Daten übertragen, die trotz Fortschritten im Bereich des Quantencomputings langfristig vertraulich bleiben müssen, wählen Sie stattdessen einen Algorithmus zur Schlüsselkapselung aus.
Die folgende Tabelle enthält die möglichen Algorithmen für RSA-Schlüssel mit dem Zweck ASYMMETRIC_DECRYPT. Verwenden Sie für die Algorithmusnamen Kleinbuchstaben mit dem gcloud-Befehl und Großbuchstaben mit der Cloud Key Management Service API.
| Algorithmus (SDK) | Algorithmus (API) | Beschreibung |
rsa-decrypt-oaep-2048-sha1 |
RSA_DECRYPT_OAEP_2048_SHA1 |
RSAES-OAEP-2048-Bit-Schlüssel mit SHA-1-Digest. |
rsa-decrypt-oaep-2048-sha256 |
RSA_DECRYPT_OAEP_2048_SHA256 |
RSAES-OAEP-2048-Bit-Schlüssel mit einem SHA-256-Digest |
rsa-decrypt-oaep-3072-sha1 |
RSA_DECRYPT_OAEP_3072_SHA1 |
RSAES-OAEP-3072-Bit-Schlüssel mit SHA-1-Digest. |
rsa-decrypt-oaep-3072-sha256(empfohlen)> |
RSA_DECRYPT_OAEP_3072_SHA256 |
RSAES-OAEP-3072-Bit-Schlüssel mit einem SHA-256-Digest |
rsa-decrypt-oaep-4096-sha1 |
RSA_DECRYPT_OAEP_4096_SHA1 |
RSAES-OAEP-4096-Bit-Schlüssel mit einem SHA-1-Digest |
rsa-decrypt-oaep-4096-sha256 |
RSA_DECRYPT_OAEP_4096_SHA256 |
RSAES-OAEP-4096-Bit-Schlüssel mit einem SHA-256-Digest |
rsa-decrypt-oaep-4096-sha512 |
RSA_DECRYPT_OAEP_4096_SHA512 |
RSAES-OAEP-4096-Bit-Schlüssel mit einem SHA-512-Digest |
Alle diese Algorithmen verwenden OAEP (Optimal Asymmetric Encryption Padding) mit der Maskengenerierungsfunktion MGF1. MGF1 erfordert einen Digest-Algorithmus. In Cloud KMS wird die Digest-Funktion, die mit MGF1 verwendet werden soll, als Teil des Algorithmusnamens für den Schlüssel angegeben. Wenn Sie beispielsweise den Algorithmus RSA_DECRYPT_OAEP_3072_SHA256 verwenden, sollten Sie SHA-256 mit MGF1 zum Verschlüsseln von Daten nutzen.
Algorithmen für die Schlüsselkapselung
Der KEY_ENCAPSULATION-Schlüsselzweck wird verwendet, um gemeinsame Secrets mithilfe von Schlüsselkapselungsmechanismen zu erstellen.
In der folgenden Tabelle sind die möglichen Algorithmen für Schlüssel mit dem Zweck KEY_ENCAPSULATION aufgeführt. Alle diese Algorithmen sind so konzipiert, dass sie postquantensicher sind. Verwenden Sie für die Algorithmusnamen Kleinbuchstaben mit dem gcloud-Befehl und Großbuchstaben mit der Cloud Key Management Service API.
| Algorithmus (SDK) | Algorithmus (API) | Beschreibung |
ml-kem-768 |
ML_KEM_768 |
Modul-Lattice-basierter Mechanismus für die Schlüsselkapselung mit dem Parametersatz ML-KEM-768 (FIPS 203) |
ml-kem-1024 |
ML_KEM_1024 |
Modulbasierter Schlüsselkapselungsmechanismus mit dem Parametersatz ML-KEM-1024 (FIPS 203) |
kem-xwing |
KEM_XWING |
X-Wing-Hybrid-KEM, das ML-KEM-768 mit X25519 kombiniert |
MAC-Signaturalgorithmen
Der MAC-Schlüsselzweck ermöglicht die symmetrische MAC-Signatur. Schlüssel mit dem MAC-Schlüsselzweck unterstützen nur die HMAC-Signatur.
HMAC-Signaturalgorithmen
So sieht das Format eines HMAC-Signaturalgorithmus aus:
HMAC_HASH_ALGORITHM
Dabei gilt:
HASH_ALGORITHMist der Hash-Algorithmus
Die meisten symmetrischen Algorithmen gelten im Allgemeinen als quantensicher. Der HMAC-SHA1-Algorithmus ist jedoch nicht quantensicher. Wenn Ihre symmetrischen Signaturen trotz der Entwicklungen im Bereich des Quantencomputings langfristig vertrauenswürdig bleiben sollen, wählen Sie einen HMAC-Schlüssel mit einer größeren Digest-Größe.
In der folgenden Tabelle sind die HMAC-Algorithmen aufgeführt, die für Schlüssel mit dem Zweck MAC verfügbar sind. Verwenden Sie für die Algorithmusnamen Kleinbuchstaben mit dem gcloud-Befehl und Großbuchstaben mit der Cloud Key Management Service API.
| Algorithmus (SDK) | Algorithmus (API) | Beschreibung |
hmac-sha1 |
HMAC_SHA1 |
HMAC mit einem SHA-1-Digest |
hmac-sha224 |
HMAC_SHA224 |
HMAC mit einem SHA-224-Digest |
hmac-sha256(empfohlen) |
HMAC_SHA256 |
HMAC mit einem SHA-256-Digest |
hmac-sha384 |
HMAC_SHA384 |
HMAC mit einem SHA-384-Digest |
hmac-sha512 |
HMAC_SHA512 |
HMAC mit einem SHA-512-Digest |
Algorithmus-Empfehlungen
Beim digitalen Signieren wird empfohlen, Elliptische-Kurven-Signaturalgorithmen zu verwenden. EC_SIGN_P256_SHA256 ist der empfohlene Elliptische-Kurven-Algorithmus.
Wenn Sie RSA-Signaturalgorithmen verwenden, lautet der empfohlene RSA-Signaturalgorithmus RSA_SIGN_PSS_3072_SHA256.
Für die asymmetrische Verschlüsselung wird der Algorithmus RSA_DECRYPT_OAEP_3072_SHA256 empfohlen.
Für die MAC-Signierung wird der Algorithmus HMAC_SHA256 empfohlen.
Für die Schlüsselkapselung empfehlen wir die Verwendung von KEM_XWING, einem hybriden Algorithmus, der einen mehrschichtigen Schutz sowohl vor klassischen als auch vor potenziellen Quantenangreifern bieten kann.
Eine Liste der unterstützten Algorithmuswerte für die gcloud CLI finden Sie unter --default-algorithm.
Schutzniveaus
Das Schutzniveau gibt an, wie kryptografische Vorgänge ausgeführt werden. Nachdem Sie einen Schlüssel erstellt haben, können Sie das Schutzniveau nicht mehr ändern.
| Schutzniveau | Beschreibung |
|---|---|
SOFTWARE |
Kryptografische Vorgänge werden auf Software-Ebene ausgeführt. |
HSM |
Kryptografische Vorgänge werden in einem HSM ausgeführt. |
HSM_SINGLE_TENANT |
Kryptografische Vorgänge werden in einem dedizierten |
: cluster of HSM partitions, exclusively created for a
: single-tenant Cloud HSM instance.
EXTERNAL | Kryptografische Vorgänge werden mit einem Schlüssel ausgeführt,
: der in einem externen Schlüsselmanager gespeichert ist,
: der über das Internet verbunden ist. Google Cloud Beschränkt auf symmetrische Verschlüsselung und asymmetrische Signierung.
EXTERNAL_VPC | Kryptografische Vorgänge werden mit einem Schlüssel ausgeführt, der
: in einem externen Schlüsselverwaltungssystem gespeichert ist, das über Google Cloud über
: Virtual Private Cloud (VPC) verbunden ist. Auf symmetrische Verschlüsselung und asymmetrische Signaturen beschränkt.
Alle Schlüsselzwecke werden für Schlüssel mit dem Schutzniveau SOFTWARE oder HSM unterstützt.