Google Cloud KMS und Sectigo Code Signing: Fortgeschrittenes Schlüsselmanagement und Code‑Signierung

Google Cloud KMS

Moderne Cloud‑Umgebungen verlangen nach robustem Schutz kryptografischer Schlüssel und vertrauenswürdigen Code‑Signaturen. Der Google Cloud Key Management Service (KMS) bietet eine skalierbare, vollständig verwaltete Lösung zum Erstellen, Speichern und Verwalten von Verschlüsselungsschlüsseln, während ein Sectigo Code Signing‑Zertifikat eine unanfechtbare digitale Signatur für Ihre Software gewährleistet. Dieser Beitrag beleuchtet die Architektur von Google Cloud KMS, die Integration mit Sectigo Code Signing und praktische Umsetzungsszenarien.

1. Architektur von Google Cloud KMS

1.1. HSM‑Knoten und Schlüssel­schutz
  • Cloud HSM (FIPS 140‑2 Level 3) stellt eine hardwaregesicherte Umgebung für die private Schlüsselspeicherung bereit.
  • Unterstützte Schlüsseltypen:
    • Symmetrisch – AES‑256‑GCM / GCM‑SIV
    • Asymmetrisch – RSA‑2048/3072/4096, EC P‑256/P‑384/P‑521
  • Die Trennung von Control Plane (Verwaltung) und Data Plane (Krypto‑Operationen) ermöglicht vollständiges Auditieren über Cloud Audit Logs.
1.2. IAM‑Modell und Autorisierung
  • Vorgefertigte und benutzerdefinierte Rollen:
    • roles/cloudkms.admin – Vollzugriff
    • roles/cloudkms.cryptoKeyEncrypterDecrypter – nur Verschlüsseln/Entschlüsseln
    • roles/cloudkms.viewer – Lesezugriff
  • Richtlinien auf Projekt-, Ordner- und Organisationsebene sorgen für mehrstufige Sicherheit.
1.3. Schlüsselrotation und Wiederherstellung
  • Automatische Rotation lässt sich über die Eigenschaft rotationPeriod konfigurieren.
  • Schlüssel im Status „destroy scheduled“ können innerhalb des definierten destroy_scheduled_duration‑Fensters vor der endgültigen Löschung wiederhergestellt werden.

2. Sectigo Code Signing – PKI‑Überblick

2.1. Rolle im Software‑Lebenszyklus
  • Garantiert die Identität des Herausgebers und die Integrität des Codes.
  • Schützt vor Manipulation, Man‑in‑the‑Middle‑Angriffen und Warnungen des Betriebssystems.
2.2. Komponenten des Zertifikats
  • Privater Schlüssel: lokal oder in HSM/Cloud KMS gesichert.
  • CSR (Certificate Signing Request): mit Tools wie OpenSSL erzeugt.
  • Vertrauenskette: Root → Intermediate → Herausgeber‑Zertifikat.

3. Integration von Google Cloud KMS mit Sectigo Code Signing

3.1. Asymmetrischen Schlüssel in KMS erzeugen
gcloud kms keys create code-signing-key \
  --location=global \
  --keyring=signing-ring \
  --purpose=asymmetric-signing \
  --default-algorithm=RSA_SIGN_PKCS1_4096_SHA256
3.2. CSR exportieren
gcloud kms keys versions create \
  --key code-signing-key \
  --location global \
  --keyring signing-ring \
  --protection-level hsm \
  --generate-upload-job \
  --algorithm rsa-sign-pkcs1-4096-sha256

gcloud kms import-job describe import-job-1 \
  --location global \
  --keyring signing-ring
# CSR aus der Ausgabe extrahieren und bei Sectigo einreichen
3.3. Sectigo‑Zertifikat anfordern
  1. CSR im unsere Portal hochladen.
  2. Nach Validierung Zertifikat im PEM‑ oder PKCS#7‑Format herunterladen.
3.4. Zertifikat in Cloud KMS importieren
gcloud kms import-key-version \
  --location=global \
  --keyring=signing-ring \
  --key=code-signing-key \
  --import-job=import-job-1 \
  --algorithm=rsa-sign-pkcs1-4096-sha256 \
  --wrapped-key-material=certificatesection.pem

Cloud KMS verwaltet nun das Schlüssel‑Zertifikat‑Paar und ist bereit für die Signierung von Binärdateien.

4. Praxisbeispiel: CI/CD und Signierung

  1. CI‑Pipeline (z. B. Jenkins, GitLab CI) baut das Artefakt.
  2. Signing‑Schritt:
    gcloud kms asymmetric-sign \
      --location=global \
      --keyring=signing-ring \
      --key=code-signing-key \
      --version=1 \
      --digest-algorithm=sha256 \
      --digest=$(openssl dgst -sha256 -binary myapp.jar | base64) \
      > signature.bin
    
    jarsigner -keystore NONE \
      -signedjar myapp-signed.jar \
      -signatureFile signature.bin \
      myapp.jar
    
  3. Verifikation:
    gcloud kms asymmetric-verify \
      --location=global \
      --keyring=signing-ring \
      --key=code-signing-key \
      --version=1 \
      --digest-algorithm=sha256 \
      --digest=$(openssl dgst -sha256 -binary myapp-signed.jar | base64) \
      --signature=signature.bin
    

5. Best Practices

  • Umgebungsisolation: Getrennte Keyrings für Dev/Test und Produktion.
  • Least Privilege IAM: Nur die Rolle cryptoKeySigner für Signierung vergeben.
  • Monitoring: Cloud Audit Logs für alle KMS‑Operationen aktivieren.
  • Automatische Rotation: rotationPeriod auf 30–90 Tage setzen.
  • Sichere CSR‑Erstellung: CSR ausschließlich von HSM/Cloud KMS generieren und einreichen.

Die Kombination von Google Cloud KMS mit einem Sectigo Code Signing‑Zertifikat bietet eine sichere, skalierbare End‑to‑End‑Lösung für Schlüsselmanagement und digitale Code‑Signierung. HSM‑Grade‑Sicherheit, feingranulare IAM‑Richtlinien und CI/CD‑Integration gewährleisten einen robusten Workflow, der strenge Compliance‑ und Audit‑Anforderungen erfüllt.