Firmare e verificare i dati

Le firme digitali vengono utilizzate per garantire l'integrità e l'autenticità dei dati. Questo documento spiega come utilizzare la CLI gdcloud per firmare i dati e verificare le firme utilizzando le chiavi asimmetriche gestite dal Key Management System (KMS).

Questa pagina è destinata ai gruppi di operatori di applicazioni, come i team DevOps, quando eseguono operazioni di gestione delle chiavi in Google Distributed Cloud (GDC) air-gapped. Per saperne di più, consulta la sezione Pubblico della documentazione di GDC con air gap.

Prima di iniziare

Per firmare e verificare i dati utilizzando le chiavi, richiedi le autorizzazioni necessarie, prepara l'ambiente e crea una chiave di firma, se non ne hai già una.

Richiedi i ruoli IAM

Contatta l'amministratore IAM dell'organizzazione per concederti il seguente ruolo nello spazio dei nomi del progetto:

  • Sviluppatore KMS (kms-developer): visualizza le chiavi ed esegui operazioni di crittografia come la crittografia, la decrittografia, la firma e la verifica dei dati all'interno di un progetto.

Prepara l'ambiente

  1. Installa e inizializza il gdcloud CLI, se non l'hai già fatto.

  2. Esegui l'autenticazione a GDC utilizzando la CLI gdcloud. Questa procedura richiede il certificato dell'autorità di certificazione (CA) per la console della tua organizzazione:

    1. Scarica il certificato CA:

      echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATH
      

      Sostituisci quanto segue:

      • CONSOLE_URL: l'URL della console della tua organizzazione (ad esempio console.org-1.zone1.google.gdch.test)
      • CA_CERT_PATH: il percorso completo in cui vuoi salvare il file del certificato CA (ad esempio /tmp/my-org-ca.crt)
    2. Accedi utilizzando il certificato CA scaricato:

      gdcloud auth login --login-config-cert=CA_CERT_PATH
      

Assicurati che esista una chiave di firma

Per firmare e verificare i dati, devi utilizzare una chiave di firma. La creazione e la verifica delle chiavi richiedono autorizzazioni IAM separate, come descritto nelle pagine collegate.

Firma i dati

Per firmare i dati, utilizza il comando gdcloud kms keys asymmetric-sign. Questo comando crea una firma digitale di un file di input utilizzando una chiave di firma e salva la firma codificata in base64:

  gdcloud kms keys asymmetric-sign \
  namespaces/NAMESPACE/signingKeys/KEY_NAME \
  --input-file=INPUT_PATH \
  --signature-file=SIGNATURE_FILE

Sostituisci quanto segue:

  • NAMESPACE: lo spazio dei nomi del progetto, ad esempio: kms-test1
  • KEY_NAME: il nome della chiave utilizzata per la firma, ad esempio key-1
  • INPUT_PATH: il percorso del file di input che vuoi firmare
  • SIGNATURE_FILE: il percorso del file di output in cui salvare la firma codificata in base64

Dopo aver eseguito il comando, vedrai un file di output specificato nel flag --signature-file che contiene la firma codificata in base64.

Verifica dati

Dopo aver firmato i dati, verifica la firma digitale in base64 utilizzando il comando gdcloud kms keys asymmetric-verify. Questo comando verifica se la firma digitale codificata in base64 che ricevi dopo aver eseguito il comando gdcloud kms keys asymmetric-sign è valida:

gdcloud kms keys asymmetric-verify \
namespaces/NAMESPACE/signingKeys/KEY_NAME \
  --input-file=INPUT_PATH \
  --signature-file=SIGNATURE_FILE

Sostituisci quanto segue:

  • NAMESPACE: lo spazio dei nomi del progetto, ad esempio: kms-test1
  • KEY_NAME: il nome della chiave utilizzata per la firma, ad esempio key-1
  • INPUT_PATH: il percorso del file di input originale che è stato firmato
  • SIGNATURE_FILE: il percorso del file contenente la firma codificata in base64 da verificare

Se l'operazione va a buon fine, dopo aver eseguito il comando vedrai l'output Verification OK. In caso contrario, vedrai l'output di errore Verification Failure.