Cet article fournit des informations sur la création et la validation de signatures numériques basées sur des clés MAC.
Une clé unique, partagée par le producteur et le vérificateur, est utilisée pour calculer un tag MAC (la signature) sur les données d'entrée. Lorsque le vérificateur reçoit le message et le tag MAC associé, il génère son propre tag pour son contenu et compare les tags pour voir s'ils correspondent.
Avant de commencer
Lorsque vous créez des signatures numériques MAC, vous devez utiliser une clé dotée de l'objectif de clé
MAC
. Lorsque vous créez la clé, utilisezMAC
.Accordez l'autorisation
cloudkms.cryptoKeyVersions.useToSign
sur la clé MAC à l'utilisateur ou au service qui effectuera la signature. Pour en savoir plus sur les autorisations et les rôles dans Cloud Key Management Service, consultez la page Autorisations et rôles.Si vous souhaitez valider une signature, accordez l'autorisation
cloudkms.cryptoKeyVersions.useToVerify
sur la clé MAC à l'utilisateur ou au service qui effectuera la validation.
Créer une signature MAC
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à niveau vers la dernière version de la CLI Google Cloud.
gcloud kms mac-sign \ --version key-version \ --key key \ --keyring key-ring \ --location location \ --input-file input-file \ --signature-file signature-file
Remplacez key-version par la version de la clé à utiliser pour la signature. Remplacez key par le nom de la clé. Remplacez key-ring par le nom du trousseau de clés où se trouve la clé. Remplacez location par l'emplacement Cloud KMS du trousseau de clés. Remplacez input-file et signature-file par les chemins d'accès locaux du fichier à signer et du fichier de signature.
Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help
.
C#
Pour exécuter ce code, commencez par configurer un environnement de développement C#, puis installez le SDK Cloud KMS pour C#.
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go, puis installez le SDK Cloud KMS pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Cloud KMS pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Cloud KMS pour Node.js.
Python
Pour exécuter ce code, commencez par configurer un environnement de développement Python, puis installez le SDK Cloud KMS pour Python.
Ruby
Pour exécuter ce code, commencez par configurer un environnement de développement Ruby, puis installez le SDK Cloud KMS pour Ruby.
API
Ces exemples utilisent curl comme client HTTP pour démontrer l'utilisation de l'API. Pour en savoir plus sur le contrôle des accès, consultez la page Accéder à l'API Cloud KMS.
Utilisez la méthode CryptoKeyVersions.macSign
pour effectuer la signature. La réponse de cette méthode contient la signature encodée en base64.
Valider une signature MAC
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à niveau vers la dernière version de la CLI Google Cloud.
gcloud kms mac-verify \ --version key-version \ --key key \ --keyring key-ring \ --location location \ --input-file input-file \ --signature-file signature-file
Remplacez key-version par la version de la clé à utiliser pour la validation. Remplacez key par le nom de la clé. Remplacez key-ring par le nom du trousseau de clés où se trouve la clé. Remplacez location par l'emplacement Cloud KMS du trousseau de clés. Remplacez input-file et signature-file par les chemins d'accès locaux des données d'entrée et du fichier de signature à valider.
Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help
.
C#
Pour exécuter ce code, commencez par configurer un environnement de développement C#, puis installez le SDK Cloud KMS pour C#.
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go, puis installez le SDK Cloud KMS pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Cloud KMS pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Cloud KMS pour Node.js.
Python
Pour exécuter ce code, commencez par configurer un environnement de développement Python, puis installez le SDK Cloud KMS pour Python.
Ruby
Pour exécuter ce code, commencez par configurer un environnement de développement Ruby, puis installez le SDK Cloud KMS pour Ruby.
API
Ces exemples utilisent curl comme client HTTP pour démontrer l'utilisation de l'API. Pour en savoir plus sur le contrôle des accès, consultez la page Accéder à l'API Cloud KMS.
Utilisez la méthode CryptoKeyVersions.macVerify
pour effectuer la validation. La signature à valider doit être encodée en base64. La réponse de cette méthode contient une valeur booléenne indiquant si la signature a été validée ou non.