Questo argomento fornisce informazioni sulla creazione e sulla convalida delle firme digitali basate sulle chiavi MAC.
Un'unica chiave, condivisa sia dal producer 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 tag MAC associato, genera il proprio tag dai contenuti del messaggio. Il verificatore può quindi confrontare il tag ricevuto con quello generato per vedere se corrispondono. Se i due tag corrispondono, il verificatore sa che il messaggio ricevuto è uguale a quello firmato dal producer.
Prima di iniziare
Quando crei firme digitali MAC, devi utilizzare una chiave con lo scopo chiave di
MAC
. Quando crei la chiave, utilizzaMAC
.Assicurati che le dimensioni del file che vuoi firmare non superino i limiti di dimensione. Quando utilizzi una chiave Cloud HSM per creare o verificare le firme MAC, la dimensione massima del file è 16 KiB. Per tutte le altre chiavi, la dimensione massima del file è 64 KiB.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare e verificare le firme, chiedi all'amministratore di concederti i seguenti ruoli IAM sulla chiave:
-
Per creare le firme:
Firmatario di CryptoKey Cloud KMS (
roles/cloudkms.signer
) -
Per verificare le firme:
Verificatore CryptoKey Cloud KMS (
roles/cloudkms.verifier
) -
Per creare e verificare le firme:
Firmatario/verificatore CryptoKey Cloud KMS (
roles/cloudkms.signerVerifier
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Creazione di una firma MAC
gcloud
Per utilizzare Cloud KMS nella riga di comando, devi prima installare o eseguire 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 keyring che contiene la chiave.LOCATION
: la località Cloud KMS del keyring.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, prima configura un ambiente di sviluppo C# e installa l'SDK C# di Cloud KMS.
Go
Per eseguire questo codice, prima configura un ambiente di sviluppo Go e installa l'SDK Cloud KMS Go.
Java
Per eseguire questo codice, prima configura un ambiente di sviluppo Java e installa l'SDK Java di Cloud KMS.
Node.js
Per eseguire questo codice, prima configura un ambiente di sviluppo Node.js e installa l'SDK Node.js di Cloud KMS.
Python
Per eseguire questo codice, prima configura un ambiente di sviluppo Python e installa l'SDK Python di Cloud KMS.
Ruby
Per eseguire questo codice, devi prima configurare un ambiente di sviluppo Ruby e poi installare l'SDK Ruby di Cloud KMS.
API
In questi esempi viene utilizzato curl come client HTTP per dimostrare l'utilizzo dell'API. Per maggiori informazioni sul controllo dell'accesso, consulta Accesso all'API Cloud KMS.
Utilizza il metodo
CryptoKeyVersions.macSign
per eseguire la firma. La risposta da questo metodo contiene la firma
con codifica Base64.
Verifica di una firma MAC
gcloud
Per utilizzare Cloud KMS nella riga di comando, devi prima installare o eseguire 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 keyring che contiene la chiave.LOCATION
: la località Cloud KMS del keyring.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, prima configura un ambiente di sviluppo C# e installa l'SDK C# di Cloud KMS.
Go
Per eseguire questo codice, prima configura un ambiente di sviluppo Go e installa l'SDK Cloud KMS Go.
Java
Per eseguire questo codice, prima configura un ambiente di sviluppo Java e installa l'SDK Java di Cloud KMS.
Node.js
Per eseguire questo codice, prima configura un ambiente di sviluppo Node.js e installa l'SDK Node.js di Cloud KMS.
Python
Per eseguire questo codice, prima configura un ambiente di sviluppo Python e installa l'SDK Python di Cloud KMS.
Ruby
Per eseguire questo codice, devi prima configurare un ambiente di sviluppo Ruby e poi installare l'SDK Ruby di Cloud KMS.
API
In questi esempi viene utilizzato curl come client HTTP per dimostrare l'utilizzo dell'API. Per maggiori informazioni sul controllo dell'accesso, consulta Accesso 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.