{"copy":"Copiar","expand":"Desplegar","collapse":"Empacar","copy_success":"\u00a1Copiado!","copy_error":"\u00a1La copia fall\u00f3!"}

Firma utilizando KeyLocker cloud HSM

Este artículo te enseñará a firmar utilizando la nube y KeyLocker HSM. La guía es relevante para todas las plataformas y diversas herramientas de firma, desde signtool hasta jarsigner. La información proporcionada también es la base para firmar utilizando el Software Trust Manager de DigiCert ONE; por lo tanto, el principio de firma se aplica a ambos servicios mencionados.

Compatibilidad de KeyLocker

Seguramente, antes de probar KeyLocker, te preguntarás si será posible usarlo en tu flujo de trabajo y si funcionará para ti. KeyLocker y las bibliotecas relacionadas admiten (al igual que el Software Trust Manager en DC1) herramientas de firma de terceros. En el sitio web de DigiCert, encontrarás en el artículo Integración de herramientas de firma una lista completa de formatos de archivo que puedes firmar con herramientas compatibles usando KeyLocker.

Aquí mencionaré solo los más populares SignTool en la versión de 32 bits y 64 bits:

  • SignTool (32-bit): .doc, .docm, .dot, .dotm, .msi, .cab, .exe, .dll, .mpp, .mpt, .pot, .potm, .ppa, .ppam, .pps, .ppsm, .ppt, .pptm, .pub, .vdw*, .vdx*, .vsd*, .vsdm, .vss*, .vssm, .vst*, .vstm, .vsx*, .vtx*, .wiz*, .xla, .xlam, .xls, .xlsb, .xlsm, .xlt, .xltm
  • SignTool (64-bit): .appx, .appxbundle, .arx, .cab, .cat, .cbx, .cpl, .crx, .dbx, .deploy, .dll, .drx, .efi, .exe, .js, .msi, .msix, .msixbundle, .msm, .msp, .ocx, .psi, .psm1, .stl, .sys, .vbs, .vsix, .wsf, .xsn

Guía en KeyLocker

Después de iniciar sesión en KeyLocker, verás el Asistente de configuración, que te ayudará a descargar la aplicación DigiCert ONE Clients. Con ella, iniciarás sesión en el ordenador en tu cuenta de KeyLocker, instalarás las bibliotecas necesarias incluido SMCTL y establecerás variables para la autenticación en el sistema. Es una mejora significativa en comparación con el proceso anterior.

En el primer paso del asistente de KeyLocker, descarga la app de DigiCert ONE Clients, instálala y ejecútala. El inicio de sesión es el mismo que configuraste en la interfaz web de KeyLocker.

Obtendrás las credenciales de autenticación en el asistente de KeyLocker

En el siguiente paso en la aplicación de escritorio, instala SMCTL, que es la herramienta principal para la firma en sí.

Instalación de SMCTL

Después de la instalación, verás una selección de tres posibles métodos para almacenar la variable de KeyLocker en el sistema. Recomendamos mantener la opción predeterminada "Store my credentials". Los datos se almacenarán en el sistema y no tendrás que volver a iniciar sesión en la cuenta antes de cada firma.

Elección del método de autenticación para KeyLocker

Cuando elijas almacenar en el sistema, en Windows las credenciales estarán en el Administrador de Credenciales (Credential Manager).

Las credenciales de acceso a KeyLocker se almacenan en el Administrador de Credenciales. Estarán allí permanentemente y no tendrás que ingresarlas nuevamente.

Una vez configuradas las credenciales en el sistema, lo cual se realiza automáticamente por la app DigiCert ONE Clients, procede al tercer paso del asistente. En este punto, se te pedirá que ejecutes el comando SMCTL healthcheck en tu sistema, el cual probará la comunicación del entorno local con KeyLocker y la autenticación correcta. Todo debería proceder sin problemas, así que confirma "I have run the healthcheck command in SMCTL" y haz clic en el botón Check Status.

Prueba de configuración correcta

Verás una confirmación en verde You're ready to start signing with SMCTL, lo que significa que todo está configurado correctamente, la comunicación funciona y puedes empezar a firmar.

Elige la plataforma correcta entre las cuatro opciones, que utilizas para firmar, y luego verás un ejemplo (guía) para firmar usando KeyLocker.

Configuración de KeyLocker completada

Firma de archivos

Para firmar, recomendamos principalmente usar la utilidad SMCTL, que funciona en la línea de comandos (CLI). La segunda variante es la utilidad DigiCert​​®​​ Click-to-sign (ver el último párrafo).

Las guías para firmar archivos para las principales plataformas (Authenticode, Docker, Java...) se encuentran directamente en la interfaz web de KeyLocker. Después de completar el asistente (título "Setup complete!"), puedes hacer clic en una de las plataformas ofrecidas y la interfaz te mostrará un comando listo utilizando el certificado seleccionado. Solo tienes que copiarlo en el CLI y especificar el archivo a firmar. ¡No puede ser más simple!

Firma de archivos usando SMCTL (recomendado)

La utilidad SMCTL proviene de DigiCert y también puede servir para simplificar la firma de archivos con herramientas de terceros (aún necesitas al menos signtool). SMCTL trabaja con las herramientas más comunes: Signtool, Apksigner, Jarsigner, Mage, Nuget. La herramienta se encuentra en la carpeta C:/Program Files/DigiCert/DigiCert Keylocker Tools/smctl.exe

En el último paso del asistente, haz clic en Authenticode y en el siguiente diálogo, elige el certificado disponible en KeyLocker. Recibirás un comando completo para firmar, donde agregarás el destino y lo ejecutarás localmente en tu CLI. Inmediatamente recibirás una confirmación de firma exitosa del archivo.

Guía para firmar en la plataforma Windows - Authenticode

La documentación completa de SMCTL se encuentra en el sitio web de DigiCert.

Firma de archivos usando Signtool

La siguiente guía se refiere a la herramienta Signtool del paquete Windows SDK. Es la herramienta de firma más utilizada en la plataforma Windows.

El comando Signtool necesita especificar qué archivo quieres firmar, con qué certificado y posiblemente otros parámetros relacionados. Puedes referirte al certificado de firma de varias maneras: puedes dejar que Signtool elija automáticamente el certificado basándose en el almacén, o puedes hacer una selección manual del certificado al hacer referencia a un archivo con el certificado almacenado (por supuesto, solo la parte pública sin la clave privada), o puedes usar el hash SHA-1 del certificado.

Aquí hay un ejemplo de firma usando el hash de la huella digital del certificado:

C:/>signtool.exe sign /sha1 ecb0f10ab1XXXXXXXXXX1681fb70a31e32288263 /tr http://timestamp.digicert.com /td SHA256 /fd SHA256 C:/Users/User/Documents/HelloSign.exe

Y aquí hay un ejemplo de firma usando KeyLocker y un archivo con el certificado:

C:/Users/User>signtool.exe sign /csp "DigiCert Signing Manager KSP" /kc key_558469087 /f C:/Users/User/Documents/cert_558469087.crt /tr http://timestamp.digicert.com /td SHA256 /fd SHA256 C:/Users/User/Documents/HelloSign.exe
Done Adding Additional Store
Successfully signed: C:/Users/User/Documents/HelloSign.exe

Puedes verificar la validez de la firma con el comando: signtool verify /v file.exe Las propiedades de la firma también se pueden encontrar en el Explorador y Propiedades del archivo firmado (botón derecho del ratón).

Firma de archivos usando Jarsigner

Jarsigner puede utilizarse junto con KeyLocker gracias a la biblioteca PKCS11; puedes firmar de forma simplificada mediante SMCTL, o directamente usando Jarsigner y la biblioteca PKCS11.

Ejemplo de firma usando Jarsigner: jarsigner -keystore NONE -storepass NONE -storetype PKCS11 -sigalg SHA256withRSA -providerClass sun.security.pkcs11.SunPKCS11 -providerArg pkcs11properties2.cfg -signedjar C:/Users/Name/Desktop/signed/signedjar.jar C:/Users/Name/Desktop/ToSign/jartosign.jar key3 -tsa "http://timestamp.digicert.com"

Verifica la exactitud de la firma con el comando: jarsigner -verify -certs -verbose

La documentación de Jarsigner está disponible en el sitio web de DigiCert.

Firma usando DigiCert​​®​​ Click-to-sign

Esta utilidad ofrece una interfaz gráfica para facilitar la firma del archivo. El resultado y el principio de la firma no difiere de las herramientas de línea de comandos; por el contrario, éstas permiten una configuración más detallada de los parámetros de firma. DigiCert​​®​​ Click-to-sign solo ofrece opciones simplificadas, que pueden ser suficientes para la mayoría de los usuarios.

DigiCert​​®​​ Click-to-sign tiene una gran ventaja: para configurarlo, es necesario pasar por el asistente de configuración de credenciales (Secrets) para KeyLocker. El asistente no solo probará fácilmente la conexión a la nube, sino que establecerá estas variables en el sistema. No tendrás que configurarlas manualmente.

La firma misma con esta herramienta es extremadamente simple: haces clic derecho en el archivo a firmar y en el menú seleccionas Click to Sign. Luego, puedes firmar directamente o con confirmación de la configuración de la firma.

Revisión antes de firmar en DigiCert​​®​​ Click-to-sign

La documentación de Click-to-sign está disponible en el sitio web de DigiCert.

Nota: Si Click-to-sign no funciona, establece las rutas a Click-to-sign y a la aplicación de firma (Signtool) en la variable PATH, separadas por punto y coma. Por ejemplo:
Path: C:/Program Files/DigiCert/DigiCert Keylocker Tools;C:/Program Files (x86)/Windows Kits/10/bin/10.0.22621.0x64;

Integración en CI/CD

La principal ventaja de KeyLocker es la posibilidad de automatizar firmas mediante la integración en el flujo de trabajo CI/CD. DigiCert ha preparado varios scripts y plugins para las herramientas y plataformas de desarrollo más utilizadas. Los plugins están disponibles para Azure DevOps, GitHub y Jenkins. Ofrecen aún más scripts de integración para la biblioteca PKCS11.

La información completa está disponible en el artículo integraciones CI/CD.

Documentación y otros recursos: