Questa pagina mostra come creare e convalidare le firme digitali in base alle chiavi MAC.
Per calcolare un tag MAC dai dati di input viene utilizzata una singola chiave, condivisa sia dal produttore sia dal verificatore. 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 il tag 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 lo scopo della chiave
MAC
. Quando crei la chiave, utilizzaMAC
.Assicurati che il file che vuoi firmare rientri nel limite di dimensioni del file.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 è 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 firme:
Firmatario Cloud KMS CryptoKey (
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 ulteriori informazioni sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Creare una firma MAC
gcloud
Per utilizzare Cloud KMS dalla riga di comando, devi prima installare o eseguire l'upgrade all'ultima versione 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 delle chiavi automatizzate che contengono la chiave.LOCATION
: la posizione di Cloud KMS delle chiavi automatizzate.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 valori possibili, 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 di 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 di Cloud KMS.
Ruby
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Ruby e installare l'SDK Ruby di Cloud KMS.
API
Questi esempi utilizzano curl come client HTTP per dimostrare l'utilizzo dell'API. Per saperne di più sul controllo dell'accesso, consulta Accesso all'API Cloud KMS.
Utilizza il
metodo
CryptoKeyVersions.macSign
per eseguire la firma. La risposta di questo metodo contiene la
firma con codifica Base64.
Verifica di una firma MAC
gcloud
Per utilizzare Cloud KMS dalla riga di comando, devi prima installare o eseguire l'upgrade all'ultima versione 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 delle chiavi automatizzate che contengono la chiave.LOCATION
: la posizione di Cloud KMS delle chiavi automatizzate.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 valori possibili, 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 di 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 di Cloud KMS.
Ruby
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Ruby e installare l'SDK Ruby di Cloud KMS.
API
Questi esempi utilizzano curl come client HTTP per dimostrare l'utilizzo dell'API. Per saperne di più 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 verifica della firma è stata eseguita correttamente.