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. Mit diesem Signaturschlüssel wird Vertrauen für Ihre Public-Key-Infrastruktur (PKI) geschaffen.

In diesem Dokument werden die Strategien zur Schlüsselverwaltung beschrieben, die Sie für Ihren CA-Signaturschlüssel auswählen können, und es wird erläutert, wie Sie ihn konfigurieren. Sie können Google-owned and managed key für eine vereinfachte Verwaltung mit minimaler Einrichtung auswählen oder einen kundenverwalteten Schlüssel, um mehr direkte Kontrolle über den Lebenszyklus und die Eigenschaften des Schlüssels zu haben.

Verwenden Sie eine Google-owned and managed key

Wenn Sie einen Google-owned and managed keyverwenden, wählen Sie den kryptografischen Algorithmus und die Schlüsselgröße aus. CA Service erstellt und verwaltet den Lebenszyklus eines dedizierten Cloud Key Management Service-Schlüssels in einem von Google verwalteten Projekt.

Unterstützte Algorithmen für Signaturschlüssel ansehen

Cloud KMS unterstützt zwei Algorithmusfamilien für asymmetrische Signaturvorgänge, die für CAs geeignet sind: RSA und ECDSA.

RSA

RSA-basierte Signaturschemas bieten eine breite Kompatibilität. Verwenden Sie RSA, wenn Sie Legacy-Systeme unterstützen müssen. Cloud KMS bietet RSA_SIGN_PSS- und RSA_SIGN_PKCS1-Varianten. Weitere Informationen finden Sie unter RFC 8017.

RSA-PSS ist das neuere, besser nachweisbar sichere 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-Schlüssel, haben aber eine geringere Schlüsselgröße. Cloud KMS unterstützt EC_SIGN_P256 und EC_SIGN_P384. ECDSA wird auf modernen Systemen oft aus Leistungs- und Effizienzgründen 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 ansehen

Größere Schlüsselgrößen innerhalb derselben Familie bieten zwar eine höhere Sicherheitsstärke, führen aber auch dazu, dass mehr Daten gespeichert und über das Netzwerk übertragen werden. Außerdem können Verschlüsselungs- und Signaturvorgänge mit größeren Schlüsselgrößen manchmal länger dauern, wobei 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ürzeren Laufzeiten verwenden.

Signaturalgorithmus für den CA-Schlüssel auswählen

Berücksichtigen Sie bei der Auswahl eines Signaturalgorithmus für Ihren CA-Schlüssel die folgenden Schritte:

  1. 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 Legacy-Systemen arbeiten müssen, die ECDSA nicht unterstützen, verwenden Sie einen der RSA-Signaturalgorithmen.

    Andernfalls, wenn keine dieser Bedingungen auf Sie zutrifft, empfehlen wir Ihnen, einen der Signaturalgorithmen für elliptische Kurven zu verwenden.

  2. Nur RSA: Signaturalgorithmus auswählen

    Wenn Sie mit Legacy-Bibliotheken oder ‑Frameworks arbeiten möchten, die PSS nicht unterstützen, verwenden Sie einen der RSA_SIGN_PKCS1-Algorithmen.

    Verwenden Sie andernfalls einen der RSA_SIGN_PSS-Algorithmen.

  3. Wählen Sie eine Schlüsselgröße aus.

    Für eine neue Stamm-CA oder eine untergeordnete CA, die voraussichtlich mehrere Jahre lang gültig sein wird, empfehlen wir, die größte verfügbare Schlüsselgröße für die jeweilige Algorithmusfamilie zu verwenden.

    • Bei RSA beträgt die maximale unterstützte Schlüsselgröße 4.096 Bit.
    • Bei 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. 2.048 Bit für RSA oder 256 Bit für ECDSA.

Vom Kunden verwalteten Schlüssel verwenden

Sie können Ihre Zertifizierungsstelle so konfigurieren, dass sie einen neuen oder vorhandenen asymmetrischen Signierschlüssel verwendet, der in Ihrem eigenen Cloud KMS-Projekt verwaltet wird. Diese Option bietet direkte Kontrolle über den Lebenszyklus, die Berechtigungen und die Eigenschaften des Schlüssels. In Cloud KMS werden der Algorithmus und die Größe des Schlüssels definiert. Wenn Sie Ihre Zertifizierungsstelle 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-Signaturschlüssel unterscheidet sich von der Verwendung eines oder mehrerer Cloud KMS-Schlüssel für die Verschlüsselung ruhender Daten. Der Hauptunterschied zwischen diesen beiden Schlüsseltypen ist ihre konfigurierte CryptoKeyPurpose in Cloud KMS:

  • Schlüssel für die Signierung durch die Zertifizierungsstelle:Erfordert einen Schlüssel mit dem CryptoKeyPurpose von ASYMMETRIC_SIGN. Mit diesen Schlüsseln werden digitale Signaturen für die Ausstellung von Zertifikaten erstellt.
  • Verschlüsselungsschlüssel für ruhende Daten:Erfordern einen Schlüssel mit der CryptoKeyPurpose von ENCRYPT_DECRYPT. Mit diesen Schlüsseln werden Daten verschlüsselt und entschlüsselt. Verschlüsselungsschlüssel für ruhende Daten werden auch als kundenverwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) bezeichnet.

Sie können nicht einen einzelnen Cloud KMS-Schlüssel sowohl für die Signierung als auch für die Verschlüsselung ruhender Daten verwenden. Diese Zwecke schließen sich gegenseitig aus und werden bei der Schlüsselerstellung festgelegt.

CA Service unterstützt auch die Verschlüsselung ruhender 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

Folgende Anforderungen müssen erfüllt sein:

  • 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_SIGN sein.

  • Der Algorithmus des Schlüssels muss ein unterstützter asymmetrischer Signaturalgorithmus sein.

  • Der Schlüssel muss sich am selben Standort wie Ihr CA-Pool befinden. Wenn sich Ihr CA-Pool beispielsweise in us-central1 befindet, muss sich auch der Cloud KMS-Schlüssel in us-central1 befinden. 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 zum Verwenden des vom Kunden verwalteten Schlüssels für Signaturvorgänge hat, bitten Sie Ihren Administrator, dem Dienstkonto die IAM-Rolle Cloud Key Management Service CryptoKey Signer/Verifier (roles/cloudkms.signerVerifier) für den Cloud Key Management Service-Schlüssel zuzuweisen.

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

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 Zertifizierungsstelle erstellen, müssen Sie die vollständige Ressourcen-ID des jeweiligen Cloud KMS-CryptoKeyVersion angeben. Kopieren Sie diesen String für die Verwendung beim Erstellen der Zertifizierungsstelle.

Die erforderliche Ressourcen-ID hat folgendes Format:

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 Speicherort 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