Questa pagina mostra come creare e convalidare le firme digitali basate su chiavi MAC.
Una singola chiave, condivisa sia dal produttore che dal verificatore, viene utilizzata per calcolare un tag MAC dai dati di input. Il tag MAC funge da firma digitale. Quando il verificatore riceve il messaggio e il relativo tag MAC associato, genera il proprio tag dai contenuti del messaggio. Il verificatore può quindi confrontare il tag ricevuto con quello generato per verificare se corrispondono. Se i due tag corrispondono, il verificatore sa che il messaggio ricevuto è lo stesso firmato dal produttore.
Prima di iniziare
Quando crei firme digitali MAC, devi utilizzare una chiave con scopo chiave
MAC
. Quando crei la chiave, utilizzaMAC
.Assicurati che il file che vuoi firmare rientri nel limite di dimensione.Quando utilizzi una chiave Cloud HSM, la dimensione massima del file per cui puoi creare una firma MAC è 16 KiB. Per tutte le altre chiavi, la dimensione massima del file è di 64 KiB.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare e verificare le firme, chiedi all'amministratore di concederti i seguenti ruoli IAM per la chiave:
-
Per creare le firme:
Cloud KMS CryptoKey Signer (
roles/cloudkms.signer
) -
Per verificare le firme:
Cloud KMS CryptoKey Verifier (
roles/cloudkms.verifier
) -
Per creare e verificare le firme:
Firmatario/Responsabile verifica Cloud KMS CryptoKey (
roles/cloudkms.signerVerifier
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Creazione di una firma MAC
gcloud
Per utilizzare Cloud KMS sulla riga di comando, esegui l'installazione o l'upgrade alla versione più recente di Google Cloud CLI.
gcloud kms mac-sign \ --version KEY_VERSION \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --input-file INPUT_FILE_PATH \ --signature-file SIGNED_FILE_PATH
Sostituisci quanto segue:
KEY_VERSION
: il numero di versione della chiave.KEY_NAME
: il nome della chiave.KEY_RING
: il nome del mazzo di chiavi che contiene la chiave.LOCATION
: la posizione di Cloud KMS della raccolta di chiavi.INPUT_FILE_PATH
: il percorso locale del file che vuoi firmare.SIGNED_FILE_PATH
: il percorso locale in cui vuoi salvare la firma generata.
Per informazioni su tutti i flag e i possibili valori, esegui il comando con il flag --help
.
C#
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo C# e installare l'SDK C# Cloud KMS.
Go
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Go Cloud KMS.
Java
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Java e installare l'SDK Java Cloud KMS.
Node.js
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Node.js e installare l'SDK Node.js di Cloud KMS.
Python
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Python e installare l'SDK Python Cloud KMS.
Ruby
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Ruby e installare l'SDK Ruby Cloud KMS.
API
Questi esempi utilizzano curl come client HTTP per dimostrare l'utilizzo dell'API. Per ulteriori informazioni sul controllo dell'accesso, consulta Accedere all'API Cloud KMS.
Utilizza il metodo
CryptoKeyVersions.macSign
per eseguire la firma. La risposta di questo metodo contiene la firma con codifica base64.
Verificare una firma MAC
gcloud
Per utilizzare Cloud KMS sulla riga di comando, esegui l'installazione o l'upgrade alla versione più recente di Google Cloud CLI.
gcloud kms mac-verify \ --version KEY_VERSION \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --input-file INPUT_FILE_PATH \ --signature-file SIGNED_FILE_PATH
KEY_VERSION
: il numero di versione della chiave.KEY_NAME
: il nome della chiave.KEY_RING
: il nome del mazzo di chiavi che contiene la chiave.LOCATION
: la posizione di Cloud KMS della raccolta di chiavi.INPUT_FILE_PATH
: il percorso locale del file firmato.SIGNED_FILE_PATH
: il percorso locale del file della firma da verificare.
Per informazioni su tutti i flag e i possibili valori, esegui il comando con il flag --help
.
C#
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo C# e installare l'SDK C# Cloud KMS.
Go
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Go Cloud KMS.
Java
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Java e installare l'SDK Java Cloud KMS.
Node.js
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Node.js e installare l'SDK Node.js di Cloud KMS.
Python
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Python e installare l'SDK Python Cloud KMS.
Ruby
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Ruby e installare l'SDK Ruby Cloud KMS.
API
Questi esempi utilizzano curl come client HTTP per dimostrare l'utilizzo dell'API. Per ulteriori informazioni sul controllo dell'accesso, consulta Accedere all'API Cloud KMS.
Utilizza il metodo
CryptoKeyVersions.macVerify
per eseguire la verifica. La firma da verificare deve essere codificata in base64. La risposta di questo metodo contiene un valore booleano che indica se la firma è stata verificata correttamente o meno.