Firmar y verificar datos

Las firmas digitales se utilizan para garantizar la integridad de los datos y la autenticidad. En este documento se explica cómo usar la CLI gdcloud para firmar datos y verificar firmas con claves asimétricas gestionadas por el sistema de gestión de claves (KMS).

Esta página está dirigida a los usuarios del grupo de operadores de aplicaciones, como los equipos de DevOps, que realizan operaciones de gestión de claves en Google Distributed Cloud (GDC) air-gapped. Para obtener más información, consulta el artículo Audiencias de la documentación de GDC air-gapped.

Antes de empezar

Para firmar y verificar datos con claves, solicita los permisos necesarios, prepara tu entorno y crea una clave de firma si aún no tienes una.

Solicitar roles de gestión de identidades y accesos

Ponte en contacto con el administrador de gestión de identidades y accesos de tu organización para que te asigne el siguiente rol en el espacio de nombres de tu proyecto:

  • Desarrollador de KMS (kms-developer): permite ver claves y realizar operaciones criptográficas, como cifrar, descifrar, firmar y verificar datos en un proyecto.

Prepara tu entorno

  1. Instala e inicializa la CLI de gdcloud si aún no lo has hecho.

  2. Autentícate en GDC con la CLI gdcloud. Para ello, necesitas el certificado de la autoridad de certificación (AC) de la consola de tu organización:

    1. Descarga el certificado AC:

      echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATH
      

      Haz los cambios siguientes:

      • CONSOLE_URL: la URL de la consola de tu organización (por ejemplo, console.org-1.zone1.google.gdch.test)
      • CA_CERT_PATH: la ruta completa donde quieres guardar el archivo del certificado de la AC (por ejemplo, /tmp/my-org-ca.crt)
    2. Inicia sesión con el certificado de la AC que has descargado:

      gdcloud auth login --login-config-cert=CA_CERT_PATH
      

Comprueba que haya una clave de firma

Para firmar y verificar datos, debes usar una clave de firma. La creación y la verificación de claves requieren permisos de gestión de identidades y accesos independientes, como se indica en las páginas enlazadas.

Firmar datos

Para firmar datos, usa el comando gdcloud kms keys asymmetric-sign. Este comando crea una firma digital de un archivo de entrada con una clave de firma y guarda la firma codificada en Base64:

  gdcloud kms keys asymmetric-sign \
  namespaces/NAMESPACE/signingKeys/KEY_NAME \
  --input-file=INPUT_PATH \
  --signature-file=SIGNATURE_FILE

Haz los cambios siguientes:

  • NAMESPACE: el espacio de nombres del proyecto (por ejemplo, kms-test1)
  • KEY_NAME: el nombre de la clave que se usa para firmar (por ejemplo: key-1)
  • INPUT_PATH: la ruta del archivo de entrada que quieres firmar
  • SIGNATURE_FILE: la ruta del archivo de salida donde se guardará la firma codificada en Base64

Después de ejecutar el comando, verás un archivo de salida que has especificado en el parámetro --signature-file y que contiene la firma codificada en Base64.

Verificar datos

Después de firmar los datos, verifica la firma digital en Base64 con el comando gdcloud kms keys asymmetric-verify. Este comando verifica si la firma digital codificada en Base64 que recibes después de ejecutar el comando gdcloud kms keys asymmetric-sign es válida:

gdcloud kms keys asymmetric-verify \
namespaces/NAMESPACE/signingKeys/KEY_NAME \
  --input-file=INPUT_PATH \
  --signature-file=SIGNATURE_FILE

Haz los cambios siguientes:

  • NAMESPACE: el espacio de nombres del proyecto (por ejemplo, kms-test1)
  • KEY_NAME: el nombre de la clave que se usa para firmar (por ejemplo: key-1)
  • INPUT_PATH: la ruta del archivo de entrada original que se ha firmado
  • SIGNATURE_FILE: la ruta del archivo que contiene la firma codificada en Base64 que quieres verificar

Después de ejecutar el comando, verás el resultado Verification OK si la verificación se ha realizado correctamente. Si no se ha realizado correctamente, verás el resultado Verification Failure.