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