Schlüsselzwecke und Algorithmen

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_CURVE ist die elliptische Kurve
  • DIGEST_ALGORITHM ist 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_ALGORITHM ist der Padding-Algorithmus
  • MODULUS_BIT_LENGTH ist die Bitlänge des Schlüssels
  • DIGEST_ALGORITHM ist der Digest-Algorithmus

Beachten Sie: einige Algorithmen sind formatiert als