En este tema, se proporciona información sobre cómo crear y validar firmas digitales con base en claves MAC.
Se usa una sola clave que comparten el productor y el verificador para calcular una etiqueta MAC (es decir, la firma) sobre los datos de entrada. Cuando el verificador recibe el mensaje y su etiqueta MAC asociada, genera su propia etiqueta para su contenido y compara las etiquetas a fin de ver si coinciden.
Antes de comenzar
Cuando crees firmas digitales MAC, debes usar una clave que tenga el propósito de clave de
MAC
. Cuando crees la clave, usaMAC
.Otorga el permiso
cloudkms.cryptoKeyVersions.useToSign
sobre la clave MAC al usuario o servicio que realizará la firma. Puedes obtener información sobre los permisos de Cloud Key Management Service en Permisos y funciones.Si vas a validar una firma, otorga el permiso
cloudkms.cryptoKeyVersions.useToVerify
sobre la clave MAC al usuario o servicio que realizará la verificación.
Crea una firma MAC
gcloud
Para usar Cloud KMS en la línea de comandos, primero instala o actualiza a la versión más reciente de la CLI de Google Cloud.
gcloud kms mac-sign \ --version key-version \ --key key \ --keyring key-ring \ --location location \ --input-file input-file \ --signature-file signature-file
Reemplaza key-version por la versión de la clave que se usará para la firma. Reemplaza key por el nombre de la clave. Reemplaza key-ring por el nombre del llavero de claves en el que se encuentra la clave. Reemplaza location por la ubicación de Cloud KMS del llavero de claves. Reemplaza input-file y signature-file por las rutas locales para que el archivo se firme y el archivo de firma.
Para obtener información sobre todas las marcas y los valores posibles, ejecuta el comando con la marca --help
.
C#
Para ejecutar este código, primero configura un entorno de desarrollo de C# e instala el SDK de C# para Cloud KMS.
Go
Para ejecutar este código, primero configura un entorno de desarrollo de Go y, luego, instala el SDK de Go para Cloud KMS.
Java
Para ejecutar este código, primero configura un entorno de desarrollo de Java y, luego, instala el SDK de Java para Cloud KMS.
Node.js
Para ejecutar este código, primero configura un entorno de desarrollo de Node.js y, luego, instala el SDK de Node.js para Cloud KMS.
Python
Para ejecutar este código, primero configura un entorno de desarrollo de Python y, luego, instala el SDK de Python para Cloud KMS.
Ruby
Para ejecutar este código, primero configura un entorno de desarrollo de Ruby y, luego, instala el SDK de Ruby para Cloud KMS.
API
En estos ejemplos, se usa curl como un cliente HTTP para demostrar el uso de la API. Para obtener más información sobre el control de acceso, consulta Accede a la API de Cloud KMS.
Usa el método CryptoKeyVersions.macSign
para realizar la firma. La respuesta de este método contiene la firma codificada en base64.
Verifica una firma de MAC
gcloud
Para usar Cloud KMS en la línea de comandos, primero instala o actualiza a la versión más reciente de la CLI de Google Cloud.
gcloud kms mac-verify \ --version key-version \ --key key \ --keyring key-ring \ --location location \ --input-file input-file \ --signature-file signature-file
Reemplaza key-version por la versión de la clave que se usará para la verificación. Reemplaza key por el nombre de la clave. Reemplaza key-ring por el nombre del llavero de claves en el que se encuentra la clave. Reemplaza location por la ubicación de Cloud KMS del llavero de claves. Reemplaza input-file y signature-file por las rutas locales para los datos de entrada y el archivo de firma que se verificará.
Para obtener información sobre todas las marcas y los valores posibles, ejecuta el comando con la marca --help
.
C#
Para ejecutar este código, primero configura un entorno de desarrollo de C# e instala el SDK de C# para Cloud KMS.
Go
Para ejecutar este código, primero configura un entorno de desarrollo de Go y, luego, instala el SDK de Go para Cloud KMS.
Java
Para ejecutar este código, primero configura un entorno de desarrollo de Java y, luego, instala el SDK de Java para Cloud KMS.
Node.js
Para ejecutar este código, primero configura un entorno de desarrollo de Node.js y, luego, instala el SDK de Node.js para Cloud KMS.
Python
Para ejecutar este código, primero configura un entorno de desarrollo de Python y, luego, instala el SDK de Python para Cloud KMS.
Ruby
Para ejecutar este código, primero configura un entorno de desarrollo de Ruby y, luego, instala el SDK de Ruby para Cloud KMS.
API
En estos ejemplos, se usa curl como un cliente HTTP para demostrar el uso de la API. Para obtener más información sobre el control de acceso, consulta Accede a la API de Cloud KMS.
Usa el método CryptoKeyVersions.macVerify
para realizar la verificación. La firma que se verificará debe estar codificada en base64. La respuesta de este método contiene un valor booleano que indica si la firma se verificó con éxito o no.