Las firmas digitales se usan para garantizar la integridad y la autenticidad de los datos. En este documento, se explica cómo usar la CLI de gdcloud para firmar datos y verificar firmas con claves asimétricas administradas por el Sistema de administración de claves (KMS).
Esta página está dirigida a los públicos que pertenecen al grupo de operadores de aplicaciones, como los equipos de DevOps, cuando realizan operaciones de administración de claves en Google Distributed Cloud (GDC) aislado. Para obtener más información, consulta Públicos de la documentación de Google Distributed Cloud aislado.
Antes de comenzar
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.
Solicita roles de IAM
Comunícate con el administrador de IAM de tu organización para que te otorgue el siguiente rol en el espacio de nombres de tu proyecto:
- Desarrollador de KMS (
kms-developer): Puede ver claves y realizar operaciones criptográficas, como encriptar, desencriptar, firmar y verificar datos dentro de un proyecto.
Prepara el entorno
Instala e inicializa la CLI de gcloud, si aún no lo hiciste.
Autentícate en GDC con la CLI de gdcloud. Este proceso requiere el certificado de la autoridad certificadora (AC) de la consola de tu organización:
Descarga el certificado de la CA:
echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATHReemplaza lo siguiente:
CONSOLE_URL: URL de la consola de tu organización (comoconsole.org-1.zone1.google.gdch.test)CA_CERT_PATH: Es la ruta de acceso completa en la que deseas guardar el archivo del certificado de CA (por ejemplo,/tmp/my-org-ca.crt).
Accede con el certificado de CA descargado:
gdcloud auth login --login-config-cert=CA_CERT_PATH
Asegúrate de que exista 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 IAM independientes, como se detalla en las páginas vinculadas.
- Si necesitas crear una clave de firma, sigue las instrucciones en Crea una clave de firma.
- Para verificar que existe una clave de firma, sigue las instrucciones que se indican en Cómo verificar la creación de la clave de firma.
Datos de la firma
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
Reemplaza lo siguiente:
- NAMESPACE: Es el espacio de nombres del proyecto, por ejemplo,
kms-test1. - KEY_NAME: Es el nombre de la clave que se usa para firmar, por ejemplo,
key-1. - INPUT_PATH: Es la ruta de acceso al archivo de entrada que deseas firmar.
- SIGNATURE_FILE: Es la ruta de acceso del archivo de salida en el que se guardará la firma codificada en base64.
Después de ejecutar el comando, verás un archivo de salida que especificaste en la marca --signature-file y que contiene la firma codificada en Base64.
Verificar datos
Después de firmar tus 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
Reemplaza lo siguiente:
- NAMESPACE: Es el espacio de nombres del proyecto, por ejemplo,
kms-test1. - KEY_NAME: Es el nombre de la clave que se usa para firmar. Por ejemplo:
key-1 - INPUT_PATH: Es la ruta de acceso del archivo de entrada original que se firmó.
- SIGNATURE_FILE: Es la ruta de acceso al archivo que contiene la firma codificada en base64 que se verificará.
Después de ejecutar el comando, verás el resultado Verification OK si se realizó correctamente. De lo contrario, verás el resultado de error Verification Failure.