GCP - KMS Enum

Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

KMS

Der Cloud Key Management Service dient als sicherer Speicher für kryptografische Schlüssel, die für Operationen wie Verschlüsselung und Entschlüsselung sensibler Daten unerlässlich sind. Diese Schlüssel sind in Schlüsselringen organisiert, was eine strukturierte Verwaltung ermöglicht. Darüber hinaus kann der Zugriff genau konfiguriert werden, entweder auf der Ebene des einzelnen Schlüssels oder für den gesamten Schlüsselring, um sicherzustellen, dass Berechtigungen genau mit den Sicherheitsanforderungen übereinstimmen.

KMS-Schlüsselringe werden standardmäßig als global erstellt, was bedeutet, dass die Schlüssel innerhalb dieses Schlüsselrings von jedem Standort aus zugänglich sind. Es ist jedoch möglich, spezifische Schlüsselringe in bestimmten Regionen zu erstellen.

Schlüsselschutzniveau

  • Software-Schlüssel: Software-Schlüssel werden vollständig in der Software von KMS erstellt und verwaltet. Diese Schlüssel sind nicht durch ein Hardware-Sicherheitsmodul (HSM) geschützt und können für Test- und Entwicklungszwecke verwendet werden. Software-Schlüssel werden für die Produktion nicht empfohlen, da sie eine geringe Sicherheit bieten und anfällig für Angriffe sind.

  • Cloud-gehostete Schlüssel: Cloud-gehostete Schlüssel werden von KMS in der Cloud mit Hilfe einer hochverfügbaren und zuverlässigen Infrastruktur erstellt und verwaltet. Diese Schlüssel sind durch HSMs geschützt, aber die HSMs sind nicht einem bestimmten Kunden gewidmet. Cloud-gehostete Schlüssel sind für die meisten Produktionsfälle geeignet.

  • Externe Schlüssel: Externe Schlüssel werden außerhalb von KMS erstellt und verwaltet und werden für kryptografische Operationen in KMS importiert. Externe Schlüssel können in einem Hardware-Sicherheitsmodul (HSM) oder einer Softwarebibliothek gespeichert werden, je nach Wunsch des Kunden.

Schlüsselzwecke

  • Symmetrische Verschlüsselung/Entschlüsselung: Wird verwendet, um Daten mit einem einzigen Schlüssel für beide Operationen zu verschlüsseln und zu entschlüsseln. Symmetrische Schlüssel sind schnell und effizient für die Verschlüsselung und Entschlüsselung großer Datenmengen.

  • Asymmetrische Signierung: Wird für sichere Kommunikation zwischen zwei Parteien ohne Weitergabe des Schlüssels verwendet. Asymmetrische Schlüssel bestehen aus einem öffentlichen Schlüssel und einem privaten Schlüssel. Der öffentliche Schlüssel wird mit anderen geteilt, während der private Schlüssel geheim gehalten wird.

  • Asymmetrische Entschlüsselung: Wird verwendet, um die Echtheit einer Nachricht oder Daten zu überprüfen. Eine digitale Signatur wird mit einem privaten Schlüssel erstellt und kann mit dem entsprechenden öffentlichen Schlüssel überprüft werden.

  • MAC-Signierung: Wird verwendet, um die Datenintegrität und Authentizität durch Erstellung eines Message Authentication Code (MAC) mit einem geheimen Schlüssel sicherzustellen. HMAC wird häufig zur Nachrichtenauthentifizierung in Netzwerkprotokollen und Softwareanwendungen verwendet.

Rotationszeitraum & Programmierter Zerstörungszeitraum

Standardmäßig alle 90 Tage, aber es kann einfach und vollständig angepasst werden.

Der "Programmierte Zerstörungszeitraum" ist die Zeit seit der Anforderung des Benutzers zur Löschung des Schlüssels bis zur tatsächlichen Löschung des Schlüssels. Er kann nach Erstellung des Schlüssels nicht geändert werden (Standard 1 Tag).

Primäre Version

Jeder KMS-Schlüssel kann mehrere Versionen haben, eine davon muss die Standardversion sein, die verwendet wird, wenn bei der Interaktion mit dem KMS-Schlüssel keine Version angegeben ist.

Auflistung

Wenn Sie Berechtigungen zum Auflisten der Schlüssel haben, können Sie auf sie zugreifen:

# List the global keyrings available
gcloud kms keyrings list --location global
gcloud kms keyrings get-iam-policy <KEYRING>

# List the keys inside a keyring
gcloud kms keys list --keyring <KEYRING> --location <global/other_locations>
gcloud kms keys get-iam-policy <KEY>

# Encrypt a file using one of your keys
gcloud kms decrypt --ciphertext-file=[INFILE] \
--plaintext-file=[OUTFILE] \
--key [KEY] \
--keyring [KEYRING] \
--location global

# Decrypt a file using one of your keys
gcloud kms decrypt --ciphertext-file=[INFILE] \
--plaintext-file=[OUTFILE] \
--key [KEY] \
--keyring [KEYRING] \
--location global

Privilege Escalation

Post Exploitation

References

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated