CA-Signierschlüssel konfigurieren
Eine Zertifizierungsstelle (Certificate Authority, CA) im Certificate Authority Service (CA Service) benötigt einen kryptografischen Schlüssel, um die von ihr ausgestellten Zertifikate zu signieren. Dieser Signierschlüssel stellt das Vertrauen in Ihre Public-Key-Infrastruktur (PKI) her.
In diesem Dokument werden die Strategien zur Schlüsselverwaltung beschrieben, die Sie für Ihren CA-Signierschlüssel auswählen können, und wie Sie ihn konfigurieren. Sie können einen von Google verwalteten Schlüssel für eine vereinfachte Verwaltung mit minimaler Einrichtung oder einen vom Kunden verwalteten Schlüssel für eine direktere Kontrolle über den Lebenszyklus und die Eigenschaften des Schlüssels auswählen. Google-owned and managed key
Von Google verwalteten Schlüssel verwenden Google-owned and managed key
Wenn Sie einen von Google verwalteten Schlüssel verwenden, wählen Sie den kryptografischen Algorithmus und die Schlüsselgröße aus. Google-owned and managed keyCA Service erstellt und verwaltet den Lebenszyklus eines dedizierten Cloud Key Management Service-Schlüssels in einem von Google verwalteten Projekt.
Unterstützte Signierschlüsselalgorithmen prüfen
Cloud KMS unterstützt zwei Algorithmusfamilien für asymmetrische Signiervorgänge, die für CAs geeignet sind: RSA und ECDSA.
RSA
Auf RSA basierende Signaturschemas bieten eine breite Kompatibilität. Verwenden Sie RSA, wenn Sie ältere Systeme unterstützen müssen. Cloud KMS bietet die Varianten RSA_SIGN_PSS und RSA_SIGN_PKCS1. Weitere Informationen finden Sie unter RFC 8017.
RSA-PSS ist das neuere, nachweislich sicherere Signaturschema und wird für die meisten neuen Implementierungen empfohlen. RSA_SIGN_PKCS1 wird zur Kompatibilität mit älteren Systemen bereitgestellt, die PSS noch nicht unterstützen.
ECDSA
Elliptic Curve-Schlüssel bieten eine ähnliche Sicherheit wie RSA, jedoch mit kleineren Schlüsselgrößen. Cloud KMS unterstützt EC_SIGN_P256 und EC_SIGN_P384. ECDSA wird auf modernen Systemen oft aufgrund seiner Leistung und Effizienz bevorzugt.
Gemischte Ketten
Die Verwendung verschiedener Algorithmusfamilien in derselben Zertifikatkette kann bei einigen Systemen zu Problemen führen. Um potenzielle Probleme zu vermeiden, empfehlen wir, separate Ketten für RSA und ECDSA zu verwenden.
Unterstützte Schlüsselgrößen prüfen
Größere Schlüsselgrößen innerhalb derselben Familie bieten zwar eine höhere Sicherheit, führen aber auch dazu, dass mehr Daten gespeichert und über das Netzwerk übertragen werden. Außerdem können Verschlüsselungs- und Signiervorgänge bei größeren Schlüsselgrößen manchmal länger dauern, obwohl der Unterschied möglicherweise nicht wahrnehmbar ist.
Für langlebigere Schlüssel, z. B. solche, die mit Stamm- oder langlebigen untergeordneten CAs verknüpft sind, können Sie Schlüsselgrößen mit einer höheren Sicherheitsstärke als bei anderen Schlüsseln verwenden. Sie können beispielsweise einen 4096-Bit-RSA-Schlüssel für eine Stamm-CA und 2048-Bit-RSA-Schlüssel für untergeordnete CAs mit kürzerer Lebensdauer verwenden.
Signieralgorithmus für Ihren CA-Schlüssel auswählen
Beachten Sie die folgenden Schritte, wenn Sie einen Signieralgorithmus für Ihren CA-Schlüssel auswählen:
Algorithmusfamilie auswählen
Wenn Sie eine untergeordnete CA erstellen, die mit einer vorhandenen Stamm-CA verkettet ist, verwenden Sie dieselbe Familie wie die Stamm-CA.
Wenn Sie eine neue Stamm-CA erstellen, aber mit älteren Systemen arbeiten müssen, die ECDSA nicht unterstützen, verwenden Sie einen der RSA-Signieralgorithmen.
Andernfalls empfehlen wir, einen der Elliptic Curve-Signieralgorithmen zu verwenden.
Nur RSA: Signieralgorithmus auswählen
Wenn Sie mit älteren Bibliotheken oder Frameworks arbeiten möchten, die PSS nicht unterstützen, verwenden Sie einen der
RSA_SIGN_PKCS1-Algorithmen.Andernfalls verwenden Sie einen der
RSA_SIGN_PSS-Algorithmen.Schlüsselgröße auswählen
Für eine neue Stamm-CA oder eine untergeordnete CA mit einer Lebensdauer von mehreren Jahren empfehlen wir, die größte Schlüsselgröße zu verwenden, die für diese Algorithmusfamilie verfügbar ist.
- Für RSA beträgt die größte unterstützte Schlüsselgröße 4096 Bit.
- Für ECDSA beträgt die größte unterstützte Schlüsselgröße 384 Bit.
Für untergeordnete CAs mit einer kürzeren Lebensdauer können Sie kleinere Schlüsselgrößen verwenden, z. B. 2048 Bit für RSA oder 256 Bit für ECDSA.
Äquivalenz der Schlüsselstärke
Die Sicherheitsstärke von privaten Schlüsselgrößen hängt vom verwendeten Algorithmus ab. In der folgenden Tabelle sind die Schlüsselgrößen aufgeführt, die ungefähr die gleiche Sicherheit bieten:
| Schlüsselstärke | RSA-Äquivalent | ECDSA-Äquivalent |
|---|---|---|
| 112 Bit | RSA-2048 | - |
| 128 Bit | RSA-3072 | P-256 |
| 156 Bit | RSA-4096 | - |
| 192 Bit | - | P-384 |
Vom Kunden verwalteten Schlüssel verwenden
Sie können Ihre CA so konfigurieren, dass sie einen neuen oder vorhandenen asymmetrischen Signierschlüssel verwendet, der in Ihrem eigenen Cloud KMS-Projekt verwaltet wird. Mit dieser Option haben Sie die direkte Kontrolle über den Lebenszyklus, die Berechtigungen und die Eigenschaften des Schlüssels. Cloud KMS definiert den Algorithmus und die Größe des Schlüssels. Wenn Sie Ihre CA konfigurieren und erstellen, wählen Sie die vorhandene Schlüsselversion und nicht die Algorithmusparameter aus.
Signierschlüssel von einem Verschlüsselungsschlüssel unterscheiden
Die Verwendung eines Cloud Key Management Service-Schlüssels als CA-Signierschlüssel unterscheidet sich von der Verwendung eines oder mehrerer Cloud KMS-Schlüssel zur Verschlüsselung inaktiver Daten. Der Hauptunterschied zwischen diesen beiden Schlüsseltypen ist ihr konfigurierter CryptoKeyPurpose in Cloud KMS:
- CA-Signierschlüssel:Erfordern einen Schlüssel mit dem
CryptoKeyPurposevonASYMMETRIC_SIGN. Mit diesen Schlüsseln werden digitale Signaturen für die Ausstellung von Zertifikaten erstellt. - Schlüssel zur Verschlüsselung inaktiver Daten:Erfordern einen Schlüssel mit dem
CryptoKeyPurposevonENCRYPT_DECRYPT. Mit diesen Schlüsseln werden Daten verschlüsselt und entschlüsselt. Schlüssel zur Verschlüsselung inaktiver Daten werden auch als kundenverwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEKs) bezeichnet.
Sie können nicht einen einzelnen Cloud KMS-Schlüssel sowohl für die Signierung als auch für die Verschlüsselung inaktiver Daten verwenden. Diese Zwecke schließen sich gegenseitig aus und werden bei der Schlüsselerstellung festgelegt.
CA Service unterstützt auch die Verschlüsselung inaktiver Daten für Ressourcen wie CA-Pools, die Sie separat mit Schlüsseln mit dem Zweck ENCRYPT_DECRYPT konfigurieren. Weitere Informationen finden Sie unter CA
-Pool erstellen.
Hinweis
Achten Sie darauf, dass die folgenden Anforderungen erfüllt sind:
- Der Schlüssel muss sich in Ihrem Cloud KMS-Projekt befinden. Weitere Informationen finden Sie unter Schlüssel erstellen.
Der Zweck des Schlüssels muss
ASYMMETRIC_SIGNsein.Der Algorithmus des Schlüssels muss ein unterstützter asymmetrischer Signieralgorithmus sein.
Der Schlüssel muss sich am selben Standort wie Ihr CA-Pool befinden. Wenn sich Ihr CA-Pool beispielsweise in
us-central1befindet, muss sich auch der Cloud KMS-Schlüssel inus-central1befinden. Informationen zu Cloud KMS-Standorten finden Sie unter Cloud KMS-Standorte.Die Schlüsselversion, die Sie verwenden möchten, muss aktiviert sein.
Erforderliche Rollen
Damit das Dienstkonto die erforderlichen
Berechtigungen hat, um den vom Kunden verwalteten Schlüssel für Signiervorgänge zu verwenden,
bitten Sie Ihren Administrator, dem
Dienstkonto die IAM-Rolle „Cloud Key Management Service CryptoKey-Signierer/Prüfer“ (roles/cloudkms.signerVerifier) für den Cloud Key Management Service-Schlüssel zu gewähren.
Ihr Administrator kann dem Dienstkonto möglicherweise auch die erforderlichen Berechtigungen über benutzerdefinierte Rollen oder andere vordefinierte Rollen erteilen.
Ressourcen-ID der Schlüsselversion abrufen
Wenn Sie die CA erstellen, müssen Sie die vollständige Ressourcen-ID der jeweiligen Cloud KMS-CryptoKeyVersion angeben. Kopieren Sie diesen String zur Verwendung bei der CA-Erstellung.
Das erforderliche Ressourcen-ID-Format sieht so aus:
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KMS_KEY/cryptoKeyVersions/VERSION
Ersetzen Sie Folgendes:
- KMS_PROJECT_ID: die ID des Projekts, das Ihren KMS-Schlüssel enthält
- LOCATION: der Standort des KMS-Schlüssels. Dies muss derselbe Standort wie Ihr CA-Pool sein.
- KEY_RING: der Name des KMS-Schlüsselbunds
- KMS_KEY: der Name des KMS-Schlüssels
- VERSION: die KMS-Schlüsselversion
Weitere Informationen finden Sie unter Cloud KMS-Ressourcen-ID abrufen. Verwenden Sie diese ID, wenn Sie eine Zertifizierungsstelle erstellen.
Nächste Schritte
- Stamm-CA erstellen.
- Untergeordnete CA erstellen.
- Erfahren Sie mehr über Cloud KMS: Schlüsselzwecke und Algorithmen.
- Erfahren Sie mehr über Cloud KMS: Digitale Signaturen.
- Speicher-Buckets konfigurieren.