Firma de Código Dual

28 abr 2023

Firma de Código Dual

Descargo de responsabilidad: dado que se aplicó un parche Windows 7 para poder admitir firmas SHA-2, GlobalSign ha seguido el cese obligatorio de emisión de certificados CodeSigning SHA-1 desde principios del 2021. Este artículo sigue disponible para los clientes que aún tienen certificados SHA-1 activos y que pueden usarlos para otros fines.

Nota: A partir del 26 de enero de 2021, GlobalSign ya no ofrecerá los servicios de Marca de Tiempo SHA-1 Authenticode y CodeSign.

Introducción

En algunas situaciones, es posible que deba firmar una aplicación con dos firmas diferentes (algoritmos hash). Por lo general, esto ocurre cuando desea firmar una aplicación que se usará en Windows 7 y Windows 10.

Windows 10 es compatible con los certificados de firma de código SHA256 (algoritmo hash SHA-2); mientras que Windows 7 solo puede admitir certificados de firma de código SHA-1 (algoritmo hash SHA-1). Consulte El aviso de seguridad de Microsoft: Disponibilidad de soporte de Firma de Código SHA-2 para Windows 7 y Windows Server 2008 R2: 10 de marzo de 2015.

Esto significa que para firmar un archivo que se usará en una máquina con Windows 7 (que no se ha actualizado a la última versión), deberá usar nuestro Certificado de firma de código estándar emitido con la opción de algoritmo SHA1. Sin embargo, para que el archivo se use en una máquina con Windows 10, deberá firmarse con un Certificado de firma de código estándar emitido en SHA256 o un Certificado de firma de código EV.

Información Adicional: 

Los certificados de firma de código EV ofrecen una reputación SmartScreen inmediata y solo se emiten en SHA256.


Si se utiliza un Certificado de firma de código estándar para ambas firmas, solo es necesario solicitar un Certificado de firma de código, ya que el Certificado se puede volver a emitir en cualquiera de los algoritmos hash de forma gratuita. Siga las instrucciones en la guía vinculada para volver a emitir su certificado: Reemitir Certificado de Cliente.
También es importante tener en cuenta que cada copia individual de un certificado de firma de código estándar creará su propia reputación SmartScreen. Por lo tanto, si decide volver a emitir su Certificado de firma de código estándar, su nuevo Certificado no tendrá reputación de SmartScreen y deberá crearse desde cero.

Proceso de Firma Dual

Para firmar su archivo con dos certificados de firma de código diferentes, el comando de firma normal deberá usarse dos veces. Tenga en cuenta que, sin embargo, esto deberá modificarse ligeramente para cada comando.

En un proceso de firma estándar se utilizará el comando /a. Este comando seleccionaría automáticamente el mejor certificado para usar para firmar el archivo (consulte  Opciones importantes de Signtool en este artículo para más información). Ahora que firmará dos veces con un Certificado diferente en cada firma, el comando utilizado para seleccionar el Certificado deberá ser diferente. Sin embargo, ahora que desea realizar una doble firma con dos Certificados diferentes, el comando /a no funcionará ya que seleccionará el mismo Certificado durante cada firma. Este comando deberá reemplazarse con un comando diferente que le permita especificar manualmente el Certificado que desea usar.

Método 1: Si está firmando un archivo con dos certificados con diferentes nombres comunes, reemplace el comando /a con /n "su nombre común de certificado".

Método 2: Si ambos certificados tienen el mismo nombre común, reemplace el comando /a con /sha1 Hash.

El hash es la huella digital de su certificado. Un ejemplo de este comando sería: /sha1 81c560ba1c8c9fe07e7f16f37960e87be5565696

Puede encontrar la huella digital siguiendo la siguiente guía:

  1. Abra el Cliente de Autenticación de SafeNet.
  2. Inserte el token que contiene sus Certificados instalados.
  3. Haga clic en el icono de engranaje en la parte superior derecha para acceder a la vista avanzada:

    codesigning3.png
  4. Busque su certificado como se muestra en la captura de pantalla a continuación y haga doble clic en él:

    codesigning3.png
  5. Esto abrirá la pantalla Certificado que se muestra a continuación:

    codesigning5.png
  6. Luego, desplácese hasta la parte inferior de la pestaña "Detalles" para encontrar la huella digital de su certificado. Esto se puede copiar para su uso posterior en su comando de firma. El hash para este certificado en particular sería: 81c560ba1c8c9fe07e7f16f37960e87be5565696

Requisitos Previos

  • Certificado de firma de código de GlobalSign descargado e instalado en un token de hardware.
  • Kit de Desarrollo de Software (SDK) de Windows para Windows 8.1
  • Los pedidos SHA-256  también  utilizan el Certificado Cruzado R1-R3 – predeterminado el 31 de marzo de 2014 y posteriores. (El certificado cruzado R1-R3 deberá instalarse en la computadora de firma pero no se especificará como un certificado adicional durante el procedimiento de firma).

Opciones Importantes de SignTool

  • /ac  - Especifique un certificado adicional.
  • /a  -  selecciona automáticamente el mejor certificado de firma. Sign Tool encontrará todos los certificados válidos que cumplan con todas las condiciones especificadas y seleccionará el que sea válido durante más tiempo. Si esta opción no está presente, Sign Tool espera encontrar solo un certificado de firma válido.
  • /n "Nombre común del certificado"  Especifica el certificado para firmar el archivo desde su almacén de certificados de Windows usando el nombre común del certificado.
  • /fd SHA256  -  Especifique el algoritmo de resumen de archivos utilizado para crear firmas de archivos.
  • /t  -  Especifique un servidor de marca de tiempo compatible con Microsoft Authenticode.
  • /tr  -  Especifique un servidor de marca de tiempo confiable compatible con RFC 3161. *Recomendado*
  • /td SHA256  -  Debe llamarse después de "/tr" , este comando especifica el algoritmo de resumen de marca de tiempo. *Recomendado*
  • /sha1 Hash  - se utiliza para seleccionar el certificado de firma mediante el hash SHA-1 (huella digital).                                 

Nota: La marca de tiempo de su código es extremadamente importante y se recomienda encarecidamente para cada pieza de código que firme. Esta marca de tiempo permitirá que el archivo que firme siga siendo válido mucho después de que el Certificado haya caducado.

URL para la marca de tiempo:
SHA-2 based: http://timestamp.globalsign.com/tsa/r6advanced1

Procedimiento

  1. Puede cerrar la sesión de los archivos de un directorio de trabajo o colocarlos en la carpeta Windows SDK\bin.
  2. Abra el símbolo del sistema: Windows 7: Inicio > Ejecutar > cmd, o para Windows 8, presione la tecla de Windows, luego escriba cmd y presione Intro.
  3. Navegue al directorio con signtool.exe.
  4. Use el siguiente comando para firmar su archivo: 
    signtool sign /sha1 Hash /tr http://timestamp.globalsign.com/tsa/r6advanced1 /td SHA256 c:/path/to/your/file.exe
  5. Luego, vuelva a firmar su archivo usando el siguiente comando con el hash del segundo certificado: 
    signtool sign /as /sha1 Hash /tr http://timestamp.globalsign.com/tsa/r6advanced1 /td SHA256 /fd SHA256 c:/path/to/your/file.exe
  6. Ingrese su contraseña de token. Si la firma es exitosa, verá un mensaje informándole.
  7. Para verificar la firma exitosa, use los siguientes comandos:
    Authenticode:  signtool verify /v /pa
    Firma del Controlador de Kernel:  signtool verify /v /kp

También puede verificar la firma dentro de las propiedades del archivo, en la pestaña Firmas Digitales.

Related Articles

Alertas de Sistema de GlobalSign

Ver alertas recientes del sistema.

Ver Alertas

Atlas Discovery

Escanee sus puntos finales (endpoints) para localizar todos sus Certificados.

Registrarse

Prueba de Configuración para SSL

Verifique la instalación de su certificado para detectar problemas y vulnerabilidades de SSL.

Contacte a Soporte