Configurare una chiave di firma della CA

Un'autorità di certificazione (CA) in Certificate Authority Service (CA Service) richiede una chiave di crittografia per firmare i certificati che emette. Questa chiave di firma stabilisce l'attendibilità per la tua infrastruttura a chiave pubblica (PKI).

Questo documento descrive le strategie di gestione delle chiavi che puoi scegliere per la chiave di firma della CA e come configurarla. Puoi scegliere una chiave gestita da Google per una gestione semplificata con una configurazione minima oppure una chiave gestita dal cliente per un controllo più diretto sul ciclo di vita e sulle proprietà della chiave. Google-owned and managed key

Utilizzare una chiave gestita da Google Google-owned and managed key

Quando utilizzi una chiave gestita da Google Google-owned and managed key, scegli l'algoritmo di crittografia e le dimensioni della chiave. CA Service crea e gestisce il ciclo di vita di una chiave di servizio Cloud Key Management Service dedicata in un progetto gestito da Google.

Esaminare gli algoritmi delle chiavi di firma supportati

Cloud KMS supporta due famiglie di algoritmi per le operazioni di firma asimmetrica adatte alle CA: RSA ed ECDSA.

RSA

Gli schemi di firma basati su RSA offrono un'ampia compatibilità. Utilizza RSA se devi supportare i sistemi legacy. Cloud KMS offre le varianti RSA_SIGN_PSS e RSA_SIGN_PKCS1. Per saperne di più, consulta RFC 8017.

RSA-PSS è lo schema di firma più recente e con una sicurezza più verificabile ed è consigliato per la maggior parte delle nuove implementazioni. RSA_SIGN_PKCS1 viene fornito per la compatibilità con i sistemi precedenti che non supportano ancora PSS.

ECDSA

Le chiavi a curva ellittica forniscono una sicurezza simile a RSA con dimensioni delle chiavi più piccole. Cloud KMS supporta EC_SIGN_P256 e EC_SIGN_P384. ECDSA è spesso preferito per le prestazioni e l'efficienza sui sistemi moderni.

Catene miste

L'utilizzo di famiglie di algoritmi diverse all'interno della stessa catena di certificati può causare problemi per alcuni sistemi. Per mitigare potenziali problemi, ti consigliamo di avere catene separate per RSA ed ECDSA.

Esaminare le dimensioni delle chiavi supportate

Anche se le dimensioni delle chiavi più grandi all'interno della stessa famiglia forniscono una maggiore sicurezza, queste chiavi causano anche l'archiviazione e la trasmissione di più dati via cavo. Inoltre, le operazioni di crittografia e firma a volte possono richiedere più tempo con dimensioni delle chiavi più grandi, anche se la differenza potrebbe essere impercettibile.

Per le chiavi di durata più lunga, ad esempio quelle associate a CA radice o subordinate di lunga durata, puoi utilizzare dimensioni delle chiavi con una maggiore sicurezza rispetto ad altre chiavi. Ad esempio, puoi utilizzare una chiave RSA a 4096 bit per una CA radice e chiavi RSA a 2048 bit per le CA subordinate con durate più brevi.

Scegliere un algoritmo di firma per la chiave della CA

Quando scegli un algoritmo di firma per la chiave della CA, tieni presente i seguenti passaggi:

  1. Scegli una famiglia di algoritmi.

    Se stai creando una CA subordinata che si collega a una CA radice esistente, utilizza la stessa famiglia della radice.

    Se stai creando una nuova CA radice, ma devi lavorare con sistemi legacy che non supportano ECDSA, utilizza uno degli algoritmi di firma RSA.

    In caso contrario, se nessuna di queste condizioni si applica a te, ti consigliamo di utilizzare uno degli algoritmi di firma a curva ellittica.

  2. Solo RSA: scegli un algoritmo di firma.

    Se prevedi di lavorare con librerie o framework legacy che non supportano PSS, utilizza uno degli algoritmi RSA_SIGN_PKCS1.

    In caso contrario, utilizza uno degli algoritmi RSA_SIGN_PSS.

  3. Scegli le dimensioni della chiave.

    Per una nuova CA radice o una CA subordinata che dovrebbe avere una durata di anni, ti consigliamo di utilizzare le dimensioni della chiave più grandi disponibili per quella famiglia di algoritmi.

    • Per RSA, le dimensioni della chiave più grandi supportate sono 4096 bit.
    • Per ECDSA, le dimensioni della chiave più grandi supportate sono 384 bit.

    Per le CA subordinate con una durata più breve, puoi utilizzare dimensioni delle chiavi più piccole, ad esempio 2048 bit per RSA o 256 bit per ECDSA.

Utilizzare una chiave gestita dal cliente

Puoi configurare la CA in modo che utilizzi una chiave di firma asimmetrica nuova o esistente gestita nel tuo progetto Cloud KMS. Questa opzione fornisce il controllo diretto sul ciclo di vita, sulle autorizzazioni e sulle proprietà della chiave. Cloud KMS definisce l'algoritmo e le dimensioni della chiave. Quando configuri e crei la CA, seleziona la versione della chiave esistente anziché i parametri dell'algoritmo.

Distinguere le chiavi di firma da una chiave di crittografia

L'utilizzo di una chiave Cloud Key Management Service come chiave di firma della CA è diverso dall'utilizzo di una o più chiavi Cloud KMS per la crittografia dei dati at-rest. La distinzione principale tra questi due tipi di chiavi è il relativo CryptoKeyPurpose configurato in Cloud KMS:

  • Chiavi di firma della CA: richiedono una chiave con CryptoKeyPurpose di ASYMMETRIC_SIGN. Queste chiavi eseguono operazioni di firma digitale per l'emissione di certificati.
  • Chiavi di crittografia dei dati at-rest: richiedono una chiave con CryptoKeyPurpose di ENCRYPT_DECRYPT. Queste chiavi criptano e decriptano i dati. Le chiavi di crittografia dei dati at-rest sono anche note come chiavi di crittografia gestite dal cliente (CMEK).

Non puoi utilizzare una singola chiave Cloud KMS sia per la firma sia per la crittografia dei dati at-rest. Questi scopi si escludono a vicenda e li imposti al momento della creazione della chiave.

CA Service supporta anche la crittografia dei dati at-rest per risorse come i pool di CA, che configuri separatamente utilizzando le chiavi con lo scopo ENCRYPT_DECRYPT. Per saperne di più, consulta Creare un pool di CA.

Prima di iniziare

Assicurati che siano soddisfatti i seguenti requisiti:

  • La chiave deve essere nel tuo progetto Cloud KMS. Consulta Creare chiavi.
  • Lo scopo della chiave deve essere ASYMMETRIC_SIGN.

  • L'algoritmo della chiave deve essere un algoritmo di firma asimmetrica supportato.

  • La chiave deve trovarsi nella stessa località del pool di CA. Ad esempio, se il pool di CA si trova in us-central1, anche la chiave Cloud KMS deve trovarsi in us-central1. Per informazioni sulle località Cloud KMS, consulta Località Cloud KMS.

  • La versione della chiave che intendi utilizzare deve essere abilitata.

Ruoli obbligatori

Per assicurarti che il account di servizio disponga delle autorizzazioni necessarie per utilizzare la chiave gestita dal cliente per le operazioni di firma, chiedi all'amministratore di concedere al account di servizio il ruolo IAM Cloud Key Management Service CryptoKey Signer/Verifier (roles/cloudkms.signerVerifier) sulla chiave Cloud Key Management Service.

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

L'amministratore potrebbe anche essere in grado di concedere al account di servizio le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.

Recuperare l'ID risorsa della versione della chiave

Quando crei la CA, devi fornire l'ID risorsa completo della CryptoKeyVersion Cloud KMS specifica. Copia questa stringa per utilizzarla nella procedura di creazione della CA.

Il formato dell'ID risorsa richiesto è il seguente:

projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KMS_KEY/cryptoKeyVersions/VERSION

Sostituisci quanto segue:

  • KMS_PROJECT_ID: l'ID del progetto che contiene la chiave KMS.
  • LOCATION: la località della chiave KMS. Deve essere la stessa località del pool di CA.
  • KEY_RING: il nome delle chiavi automatizzate KMS.
  • KMS_KEY: il nome della chiave KMS.
  • VERSION: la versione della chiave KMS.

Per saperne di più, consulta Recuperare un ID risorsa di Cloud KMS. Utilizza questo ID quando crei un'autorità di certificazione.

Passaggi successivi