Eine private Root CA sicher betreiben

Wir zeigen, wie die Root CA geschützt, möglichst offline gehalten und nur zum Ausstellen beziehungsweise Erneuern einer Intermediate CA verwendet wird.

Eine Root CA ist der wichtigste Vertrauensanker einer Zertifikatsstruktur.

Wird ihr Private Key kompromittiert, können Angreifer Zertifikate ausstellen, die scheinbar zur eigenen PKI gehören. Geht der Schlüssel dagegen verloren, können keine neuen Intermediate-CA-Zertifikate mehr ausgestellt werden.

Deshalb verwenden wir die Root CA nicht für tägliche Aufgaben.

Unsere Aufgabenverteilung sieht so aus:

Root CA
└── stellt nur Intermediate-CA-Zertifikate aus

Intermediate CA
├── stellt Producer-Zertifikate aus
└── stellt Recipient-Zertifikate aus

Die Root CA wird nur selten benötigt. Die operativen Zertifikate werden von der Intermediate CA ausgestellt.

Lernumgebung und produktiver Betrieb

Die OpenSSL-Beispiele in diesem How-to zeigen die grundlegenden Schutzmaßnahmen.

Für eine produktive PKI reichen einfache PEM-Dateien möglicherweise nicht aus. Abhängig vom Schutzbedarf sollte der Root Private Key in einem Hardware Security Module oder einem vergleichbar geschützten kryptografischen System erzeugt und verwendet werden.

Dieser How-to ersetzt kein organisationsspezifisches Sicherheits- und Schlüsselmanagementkonzept.

Den Root Private Key verschlüsseln

Im vorherigen How-to haben wir den Root Private Key unverschlüsselt erzeugt:

root-ca-key.pem

Für einen besser geschützten Betrieb erzeugen wir den Schlüssel von Anfang an verschlüsselt:

openssl genpkey \
  -algorithm RSA \
  -aes-256-cbc \
  -pkeyopt rsa_keygen_bits:3072 \
  -out root-ca-key.pem

OpenSSL fragt nach einer Passphrase.

Diese Passphrase schützt die PEM-Datei, falls jemand Zugriff auf das Speichermedium erhält.

Die Passphrase sollte:

  • lang und nicht leicht zu erraten sein;
  • nur autorisierten Personen bekannt sein;
  • nicht in Skripten oder Befehlszeilen gespeichert werden;
  • getrennt vom Private Key aufbewahrt werden.

Die Passphrase darf nicht über die Option -passout direkt in einen gemeinsam genutzten Befehl geschrieben werden. Sie könnte sonst in Shell-Verläufen, Protokollen oder Prozessinformationen erscheinen.

Einen bestehenden Root Private Key verschlüsseln

Existiert bereits ein unverschlüsselter Root Private Key, kann eine verschlüsselte Kopie erzeugt werden:

openssl pkey \
  -in root-ca-key.pem \
  -aes-256-cbc \
  -out root-ca-key-encrypted.pem

Die verschlüsselte Kopie prüfen wir mit:

openssl pkey \
  -in root-ca-key-encrypted.pem \
  -check \
  -noout

Das erwartete Ergebnis lautet:

Key is valid

Erst nachdem die verschlüsselte Kopie erfolgreich geprüft und sicher gesichert wurde, sollte entschieden werden, wie die unverschlüsselte Ausgangsdatei sicher entfernt wird.

Ein gewöhnliches Löschen garantiert bei modernen Dateisystemen, SSDs, Snapshots und Backups nicht, dass alle Kopien tatsächlich verschwunden sind.

Dateizugriff einschränken

Auf Unix-basierten Systemen beschränken wir den Zugriff auf den Eigentümer:

chmod 600 root-ca-key.pem

Die Berechtigungen können wir kontrollieren mit:

ls -l root-ca-key.pem

Das Ergebnis sollte sinngemäß so aussehen:

-rw-------  root-ca-key.pem

Dateiberechtigungen ersetzen keine Verschlüsselung. Beide Maßnahmen schützen gegen unterschiedliche Risiken.

Die Root CA offline halten

Die Root CA sollte nicht dauerhaft auf einem gewöhnlichen Arbeitsplatzrechner oder Server verfügbar sein.

Für unser Beispiel bedeutet „offline“:

  • Der Root Private Key liegt auf einem separaten geschützten System oder Speichermedium.
  • Das System ist normalerweise ausgeschaltet.
  • Es ist nicht dauerhaft mit einem Netzwerk verbunden.
  • Die Root CA wird nur für vorher festgelegte CA-Vorgänge aktiviert.
  • Nach dem Vorgang wird sie wieder sicher abgeschaltet und verwahrt.

Die Root CA wird insbesondere benötigt, um:

  • ein neues Intermediate-CA-Zertifikat auszustellen;
  • ein Intermediate-CA-Zertifikat zu erneuern;
  • einen geplanten Wechsel der Intermediate CA durchzuführen.

Sie wird nicht benötigt, um:

  • Package Manifests zu signieren;
  • KAP-KDMs zu signieren;
  • Producer-Zertifikate auszustellen;
  • Recipient-Zertifikate auszustellen.

Diese operativen Aufgaben übernimmt die Intermediate CA beziehungsweise der Producer.

Intermediate CA für den laufenden Betrieb verwenden

Die Intermediate CA darf Endzertifikate ausstellen:

Intermediate CA
├── Producer Certificate
└── Recipient Certificate

Ihr Zertifikat enthält:

CA:TRUE
pathlen:0

CA:TRUE erlaubt das Ausstellen von Zertifikaten.

pathlen:0 verhindert, dass die Intermediate CA weitere untergeordnete CAs ausstellt.

Die Intermediate CA kann auf einem kontrollierten operativen System betrieben werden. Ihr Private Key muss weiterhin geschützt werden, darf aber unter definierten Sicherheitsbedingungen häufiger verwendet werden als der Root Private Key.

Sichere Backups anlegen

Der Verlust des Root Private Key kann dazu führen, dass die bestehende PKI nicht mehr regulär erneuert werden kann.

Deshalb sollte es mindestens ein geprüftes Backup geben.

Für Backups gelten dieselben Schutzanforderungen wie für den Originalschlüssel:

  • Der Private Key bleibt verschlüsselt.
  • Backup und Passphrase werden getrennt aufbewahrt.
  • Der Zugriff ist auf autorisierte Personen beschränkt.
  • Die Backup-Medien liegen an getrennten geschützten Orten.
  • Die Wiederherstellung wird kontrolliert getestet.
  • Jede vorhandene Kopie wird dokumentiert.

Ein Backup ist erst dann verlässlich, wenn geprüft wurde, dass es tatsächlich gelesen und verwendet werden kann.

Dazu kann die Schlüsseldatei geprüft werden:

openssl pkey \
  -in root-ca-key-backup.pem \
  -check \
  -noout

Der Test sollte in einer kontrollierten Umgebung erfolgen. Der wiederhergestellte Schlüssel darf dabei nicht ungeschützt zurückbleiben.

Root-CA-Vorgänge dokumentieren

Jede Verwendung der Root CA sollte nachvollziehbar dokumentiert werden.

Dazu gehören mindestens:

  • Datum und Zweck des Vorgangs;
  • beteiligte autorisierte Personen;
  • Seriennummer und Gültigkeitszeitraum des ausgestellten Zertifikats;
  • verwendete Zertifikatsrichtlinie;
  • Ergebnis der anschließenden Zertifikatsprüfung;
  • Aufbewahrungsort der aktualisierten öffentlichen Zertifikate;
  • besondere Vorkommnisse oder Abweichungen.

Für einen produktiven Betrieb sollte außerdem festgelegt werden, ob ein Root-CA-Vorgang nur durch mehrere gemeinsam handelnde Personen freigegeben werden darf.

Ausgestellte Zertifikate prüfen

Nach dem Ausstellen eines Intermediate-CA-Zertifikats prüfen wir die Verbindung zur Root CA:

openssl verify \
  -CAfile root-ca.pem \
  intermediate-ca.pem

Das erwartete Ergebnis lautet:

intermediate-ca.pem: OK

Zusätzlich sehen wir das Zertifikat an:

openssl x509 \
  -in intermediate-ca.pem \
  -text \
  -noout

Wir prüfen insbesondere:

Issuer:      KAPRI Example Root CA
Subject:     KAPRI Example Intermediate CA
CA:TRUE
pathlen:0
Key Usage: Certificate Sign, CRL Sign

Erst nach erfolgreicher Prüfung wird das Intermediate-CA-Zertifikat für den operativen Betrieb freigegeben.

Auf einen Schlüsselverlust vorbereitet sein

Für den Ausfall einer CA müssen zwei Fälle unterschieden werden.

Der Root Private Key ist verloren

Ist der Schlüssel nicht mehr verfügbar, aber nachweislich nicht kompromittiert, können bestehende Zertifikatsketten zunächst weiterhin geprüft werden.

Die Root CA kann jedoch keine neuen Intermediate-CA-Zertifikate mehr ausstellen. Ohne verwendbares Backup muss eine neue Root CA aufgebaut und sicher verteilt werden.

Der Root Private Key ist möglicherweise kompromittiert

Bei einer möglichen Kompromittierung darf der Schlüssel nicht weiterverwendet werden.

Dann müssen insbesondere:

  • die betroffene Root CA außer Betrieb genommen werden;
  • alle von ihr abhängigen Zertifikate als nicht mehr vertrauenswürdig behandelt werden;
  • eine neue Root CA mit einem neuen Schlüsselpaar aufgebaut werden;
  • neue Intermediate-, Producer- und Recipient-Zertifikate ausgestellt werden;
  • betroffene Systeme und Vertrauensspeicher aktualisiert werden;
  • Ursache und Umfang des Vorfalls untersucht und dokumentiert werden.

Ein solcher Ablauf sollte festgelegt werden, bevor ein tatsächlicher Vorfall eintritt.

Ergebnis

Für den sicheren Betrieb unserer privaten Root CA gelten fünf grundlegende Regeln:

Root Private Key verschlüsseln
        ↓
Zugriff stark beschränken
        ↓
Root CA möglichst offline halten
        ↓
Intermediate CA für operative Zertifikate verwenden
        ↓
Backups und Notfallverfahren vorbereiten

Die Root CA wird nur selten eingesetzt.

Die Intermediate CA übernimmt die Ausstellung von Producer- und Recipient-Zertifikaten.

Der Producer signiert Package Manifests und KAP-KDMs.

Das Recipient-Zertifikat wird zur recipient-spezifischen Verschlüsselung von File Keys verwendet.

Durch diese Trennung bleibt der wichtigste Vertrauensanker der Zertifikatsstruktur vor den Risiken des täglichen Betriebs geschützt.


Diese Website verwendet Cookies, um Ihnen die bestmögliche Nutzererfahrung zu bieten. Mehr erfahren

Kontakt

Wir freuen uns auf Ihre Nachricht.

Mit dem Absenden akzeptieren Sie unsere Datenschutzerklärung

Login