Umschlagverschlüsselung

Einführung

Zum Speichern und Verschlüsseln von Daten für Google ist ein zentraler kryptografischer Key Management Service mit mehreren Ebenen von Schlüsseln für die verschlüsselten Daten erforderlich. Ein Beispiel für mehrere Ebenen von Schlüsseln ist Umschlagverschlüsselung, also die Verschlüsselung eines Schlüssels mit einem anderen Schlüssel.

Sie können Daten auf der Anwendungsebene, auf der Daten für Nutzer angezeigt werden, und auf der Speicherebene verschlüsseln, die physisches Speichern von Daten ermöglicht.

Auf der Speicherebene verschlüsselt Google Cloud standardmäßig inaktive Kundeninhalte mit Umschlagverschlüsselung und dem internen Key Management Service von Google als zentralem Schlüsselspeicher. Wenn Sie Daten selbst speichern und verschlüsseln, können Sie Cloud Key Management Service als zentralen Schlüsselspeicher auf der Anwendungsebene verwenden. Dies steht im Mittelpunkt dieses Themas.

Cloud KMS speichert Schlüssel in einer Schlüsselhierarchie, die der Vereinfachung dienen soll. Der Zugriff auf Ressourcen in der Schlüsselhierarchie wird durch Identity and Access Management geregelt. Die folgende Abbildung zeigt die Hauptebenen einer Cloud KMS-Schlüsselhierarchie:

Ressourcen

Weitere Informationen zur Schlüsselhierarchie finden Sie unter Objekthierarchie.

Data Encryption Keys

Der zum Verschlüsseln von Daten verwendete Schlüssel wird als Data Encryption Key (DEK) bezeichnet.

Best Practices für die Verwaltung von DEKs:

  • DEKs lokal generieren.
  • Beim Speichern immer dafür sorgen, dass DEKs inaktiv verschlüsselt werden.
  • Für einfachen Zugriff den DEK in der Nähe der Daten speichern, die er verschlüsselt.
  • Bei jedem Schreiben der Daten einen neuen DEK erzeugen. Dies bedeutet, dass die DEKs nicht rotiert werden müssen.
  • Nicht den gleichen DEK zum Verschlüsseln der Daten von zwei verschiedenen Nutzern verwenden.
  • Einen effizienten Algorithmus wie 256-Bit Advanced Encryption Standard (AES) im Galois Counter Mode (GCM) verwenden.

Key Encryption Keys

Der DEK wird mit einem Key Encryption Key (KEK) verschlüsselt (auch als zusammengefasst bezeichnet). Die Verschlüsselung eines Schlüssels mit einem anderen Schlüssel wird als Umschlagverschlüsselung bezeichnet.

Best Practices zur Verwaltung von KEKs:

  • KEKs zentral speichern.

  • Den Detaillierungsgrad der DEKs, die sie verschlüsseln, entsprechend ihrem Anwendungsfall festlegen. Nehmen wir beispielsweise eine Arbeitslast, die mehrere DEKs erfordert, um die Datenblöcke der Arbeitslast zu verschlüsseln. Mit einem einzelnen KEK können Sie alle DEKs zusammenfassen, die für die Verschlüsselung dieser Arbeitslast verantwortlich sind.

  • Rotieren Sie die Schlüssel regelmäßig und auch nach einem vermuteten Vorfall. Weitere Informationen finden Sie unter Schlüsselrotation.

Lastenausgleich von DEKs und KEKs

Mit einer geringeren Anzahl von KEKs als DEKs und einem zentralen Key Management Service ist das Speichern und Verschlüsseln von Daten im größeren Umfang überschaubarer. Eine zentrale Schlüsselfunktion ist auch ein einzelner Punkt, um den Datenzugriff einfacher prüfen und einschränken zu können.

Abhängig von Ihrer Situation und der Menge an Daten, die Sie verschlüsseln, können Sie sich für ein ähnliches Modell entscheiden. Mit einem einzelnen KEK können viele DEKs geschützt werden: Mit diesem Modell können einzelne Datenobjekte jeweils eigene DEKs haben, ohne dass die Menge der in einem zentralen Key Management Service gespeicherten Schlüssel massiv erhöht wird.

Cloud Key Management Service wurde für die Verwaltung von KEKs entwickelt, daher ist die maximale Dateneingabegröße für Encrypt und Decrypt 64 KiB. Für Daten, von denen Sie wissen, dass sie diese Grenze nicht erreichen, können Sie zum direkten Verschlüsseln und Entschlüsseln Cloud KMS verwenden.

Daten mit Umschlagverschlüsselung verschlüsseln

Zur Verschlüsselung von Daten werden DEK lokal generiert, Daten mit dem DEK verschlüsselt, ein KEK zum Zusammenfassen des DEK verwendet und die verschlüsselten Daten und der zusammengefasste DEK dann gespeichert. Der KEK bleibt immer in Cloud KMS.

Verschlüsselungsablauf

So verschlüsseln Sie Daten mit Umschlagverschlüsselung:

  1. Generieren Sie einen DEK lokal. Dazu können Sie eine Open Source-Bibliothek wie OpenSSL verwenden, wobei Sie einen Verschlüsselungstyp und ein Passwort angeben, aus denen der Schlüssel dann generiert wird. Sie können auf Wunsch auch Salt und Digest angeben.

  2. Verwenden Sie diesen DEK lokal zum Verschlüsseln Ihrer Daten.

    Zum Beispiel könnten Sie OpenSSL verwenden, wie im Beispiel Meldung verschlüsseln gezeigt. Es wird empfohlen, zur Verschlüsselung den 256-Bit Advanced Encryption Standard (AES-256) im Galois Counter Mode (GCM) zu verwenden.

  3. Generieren Sie einen neuen Schlüssel in Cloud KMS oder verwenden Sie einen vorhandenen Schlüssel, der dann als KEK fungiert. Nutzen Sie diesen Schlüssel dazu, um den DEK zu verschlüsseln (zusammenzufassen).

  4. Speichern Sie die verschlüsselten Daten und den zusammengefassten DEK.

Daten mithilfe von Umschlagverschlüsselung entschlüsseln

Bei der Entschlüsselung von Daten werden die verschlüsselten Daten und der zusammengefasste DEK abgerufen und der KEK, mit dem der DEK zusammengefasst wurde, wird abgerufen. Anschließend werden der DEK mit dem KEK entpackt und die Daten von dem zerlegten DEK entschlüsselt. Der KEK bleibt immer in Cloud KMS.

Entschlüsselungsablauf

So entschlüsseln Sie Daten mit Umschlagverschlüsselung:

  1. Rufen Sie die verschlüsselten Daten und den zusammengefassten DEK ab.

  2. Verwenden Sie den in Cloud KMS gespeicherten Schlüssel zum Entpacken des verschlüsselten DEK.

  3. Entschlüsseln Sie die verschlüsselten Daten mit dem Klartext-DEK. Angaben zur Verwendung von OpenSSL wie zuvor finden Sie im Beispiel Meldung entschlüsseln.

Beispielcode zum Verschlüsseln und Entschlüsseln mit Umschlagverschlüsselung finden Sie unter Clientseitige Verschlüsselung mit Tink und Cloud KMS.

Einbindung in Google Cloud-Dienste

In Cloud KMS sind mehrere Google Cloud-Produkte eingebunden, um die CMEK-Funktion (Customer-Managed Encryption Key, vom Kunden verwalteter Verschlüsselungsschlüssel) zu unterstützen. CMEK mit Cloud KMS bietet eine zusätzliche Schutzebene für Ihre Daten, ermöglicht Ihnen die Kontrolle über Ihre Verschlüsselungsschlüssel und nutzt die Vorteile von Cloud KMS für die Schlüsselverwaltung. Eine vollständige Liste der Produkte, die CMEK unterstützen, finden Sie unter Cloud KMS mit anderen Diensten verwenden.

Weitere Optionen für Google Cloud-Dienste

Für Daten, die in Google Cloud-Produkten gespeichert sind, die CMEK nicht unterstützen, können Sie eine eigene Verschlüsselungsmethode auf Anwendungsebene implementieren. Dazu muss Ihre eigene Umschlagverschlüsselung implementiert werden, wie oben beschrieben, damit Sie lokal verschlüsselte Daten in der Google Cloud speichern können. Ebenso können Sie mit Cloud KMS Daten verschlüsseln, die Sie bei anderen Clouddienstanbietern oder lokal speichern.

Die folgenden Produkte unterstützen nicht nur CMEK, sondern auch die CSEK-Funktion (Customer-Supplied Encryption Key, vom Kunden bereitgestellter Schlüssel).

Produkt CSEK-Thema
Cloud Storage Vom Kunden bereitgestellte Verschlüsselungsschlüssel
Compute Engine Laufwerke mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln verschlüsseln

Mit CSEK stellen Sie Ihren eigenen AES-256-Schlüssel als KEK bereit und Ihr Schlüssel schützt die DEKs, die Ihre Daten schützen. Ihr CSEK-Schlüssel wird durch eine zusätzliche Schutzebene mit einem Cloud KMS-Schlüssel geschützt.

Jetzt können Sie Schlüssel in Cloud KMS importieren und Ihre Schlüssel mit CMEK-fähigen Diensten importieren und verwenden, anstatt sich auf CSEK zu verlassen.