Questo argomento fornisce informazioni sulla creazione e sulla convalida delle firme digitali. in base alle chiavi MAC.
Una singola chiave, condivisa sia dal producer sia dal verificatore, viene utilizzata 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 un proprio tag dai contenuti del messaggio. Lo strumento di verifica può quindi confrontare con il tag generato per vedere 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 principale di
MAC
. Quando crei la chiave, utilizzaMAC
.Assicurati che le dimensioni del file che vuoi firmare non superino i limiti. Quando utilizzando una chiave Cloud HSM per creare o verificare le firme MAC, le dimensioni massime dei file è di 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 seguenti ruoli IAM sulla chiave:
-
Per creare firme:
Firmatario 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 a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.
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 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 il percorso la firma generata.
Per informazioni su tutti i flag e sui possibili valori, esegui il comando con
--help
flag.
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 prima configurare un ambiente di sviluppo Go e installa l'SDK Cloud KMS Go.
Java
Per eseguire questo codice, per prima cosa configura un ambiente di sviluppo Java e installare l'SDK Java di 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, configura prima un ambiente di sviluppo Python e installare l'SDK per Python di Cloud KMS.
Ruby
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Ruby e installare l'SDK Ruby Cloud KMS.
API
In questi esempi viene utilizzato curl come client HTTP per dimostrare l'uso dell'API. Per ulteriori informazioni sul controllo dell'accesso, vedi Accesso all'API Cloud KMS.
Utilizza la
CryptoKeyVersions.macSign
per eseguire la firma. La risposta da questo metodo contiene
con codifica Base64.
Verifica di una firma MAC
gcloud
Per utilizzare Cloud KMS nella riga di comando, devi prima Installa o esegui 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 in essere verificati.
Per informazioni su tutti i flag e sui possibili valori, esegui il comando con
--help
flag.
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 prima configurare un ambiente di sviluppo Go e installa l'SDK Cloud KMS Go.
Java
Per eseguire questo codice, per prima cosa configura un ambiente di sviluppo Java e installare l'SDK Java di Cloud KMS.
Node.js
Per eseguire questo codice, devi prima configurare un ambiente di sviluppo Node.js e installare l'SDK Node.js di Cloud KMS.
Python
Per eseguire questo codice, configura prima un ambiente di sviluppo Python e installare l'SDK per Python di Cloud KMS.
Ruby
Per eseguire questo codice, prima configura un ambiente di sviluppo Ruby e installa l'SDK Ruby di Cloud KMS.
API
In questi esempi viene utilizzato curl come client HTTP per dimostrare l'uso dell'API. Per ulteriori informazioni sul controllo dell'accesso, vedi Accesso all'API Cloud KMS.
Utilizza il metodo
CryptoKeyVersions.macVerify
per eseguire la verifica. La firma da verificare deve essere
con codifica Base64. La risposta da questo metodo contiene un valore booleano che indica
se la firma è stata verificata o meno.