Ir al contenido

Authenticode

Información general

Authenticode es una tecnología de Microsoft utilizada para identificar quién ha publicado software. Utiliza técnicas criptográficas para verificar la integridad del código y quién lo ha publicado. Se trata de firmas digitales combinadas con organizaciones de confianza, incluidas autoridades de certificación.

Configuración del entorno

Las firmas basadas en SHA1 pueden realizarse sin ninguna configuración adicional, pero para firmar en SHA256 es necesario habilitar CNG.

  1. Para habilitar CNG, abra la consola DINAMOcon con permisos de administrador (haga clic con el botón derecho y seleccione Ejecutar como administrador). Una vez abierta, haz clic en Configuración del entorno.

    Consola Dinamocon
    Consola Dinamocon

  2. Seleccione la pestaña MS CAPI y marque la opción Activar CNG.

    Configuración del cliente HSM - Parámetros CSP
    Configuración del cliente HSM - Parámetros CSP

  3. Aplícalo y vuelve a la pantalla de inicio. Recuerda que para que esto funcione, el certificado también debe estar habilitado para la máquina local y ésta debe poder acceder al HSM. Para comprobarlo, basta con ir a Certificados en la pantalla de inicio y comprobar la tabla del menú Certificados. El icono del certificado debe aparecer en la columna Windows. Si no es así, haga clic con el botón derecho del ratón en el certificado y haga clic en Habilitar.

Firma

Se utilizará como ejemplo Signtool, una herramienta de línea de comandos de Microsoft diseñada para firmar, verificar e insertar marcas de tiempo en archivos.

Para utilizar la herramienta necesita - El archivo del certificado. - El nombre del contenedor MSCAPI relacionado.

  1. Para obtener el certificado, basta con guardarlo en un archivo; en la tabla de certificados de DINAMOcon, haga doble clic sobre el certificado.

    Tabla de certificados
    Tabla de certificados

  2. A continuación, haga clic en Detalles y en la opción Copiar en archivo.

    Certificado
    Certificado

  3. Elija la opción No, no exportar la clave privada.

    Exportar un certificado
    Exportar un certificado

  4. Seleccione el formato binario X.509 codificado por DER (*.cer).

    Exportar un certificado
    Exportar un certificado

  5. Guarda el archivo.

  6. En la misma tabla de certificados, anota el nombre del contenedor, que se encuentra en una de las columnas de la tabla de certificados.

    Tabla de certificados
    Tabla de certificados

  7. A continuación, basta con abrir el prompt y utilizar el siguiente comando:

signtool.exe sign /f certificate.cer /csp  "Dinamo HSM Cryptographic Provider" /v /kc container_name /fd sha256 arquivo.exe

Dónde: - certificado.cer es el certificado previamente guardado - nombre_contenedor es el nombre del contenedor que aparece en la columna Contenedor de la tabla de certificados DINAMOcon - archivo.exe es el archivo que desea firmar

Verificación

  1. Verificación de un archivo de código firmado con la norma Authenticode puede hacerse con el programa signtoolo mostrando las propiedades del archivo (en la ventana Firmas digitales).

Realizar correctamente el control con el programa signtool es necesario incluir la opción /pa para utilizar el Política estándar de verificación de autenticación en lugar de Política de verificación de controladores de Windows.

signtool verify /pa /v dinamo-4.7.31-x64-setup.msi

Verifying: dinamo-4.7.31-x64-setup.msi

Signature Index: 0 (Primary Signature)
Hash of file (sha256): 9BD26CD80866476402B36FA9EF19C8F72285E4FA8BECA451AC36100F514A562E

Signing Certificate Chain:
   Issued to: AAA Certificate Services
   Issued by: AAA Certificate Services
   Expires:   Sun Dec 31 20:59:59 2028
   SHA1 hash: D1EB23A46D17D68FD92564C2F1F1601764D8E349

      Issued to: Sectigo Public Code Signing Root R46
      Issued by: AAA Certificate Services
      Expires:   Sun Dec 31 20:59:59 2028
      SHA1 hash: 329B78A5C9EBC2043242DE90CE1B7C6B1BA6C692

            Issued to: Sectigo Public Code Signing CA R36
            Issued by: Sectigo Public Code Signing Root R46
            Expires:   Fri Mar 21 20:59:59 2036
            SHA1 hash: 0BC5E76773D2E44FC9903D4DFEFE451553BBEC4A

               Issued to: Dinamo Networks
               Issued by: Sectigo Public Code Signing CA R36
               Expires:   Tue Mar 14 20:59:59 2023
               SHA1 hash: D2E94D57511E818732108F8D56F96397600078B3

The signature is timestamped: Wed Aug 31 19:26:34 2022
Timestamp Verified by:
   Issued to: DigiCert Assured ID Root CA
   Issued by: DigiCert Assured ID Root CA
   Expires:   Sun Nov 09 21:00:00 2031
   SHA1 hash: 0563B8630D62D75ABBC8AB1E4BDFB5A899B24D43

      Issued to: DigiCert Trusted Root G4
      Issued by: DigiCert Assured ID Root CA
      Expires:   Sun Nov 09 20:59:59 2031
      SHA1 hash: A99D5B79E9F1CDA59CDAB6373169D5353F5874C6

            Issued to: DigiCert Trusted G4 RSA4096 SHA256 TimeStamping CA
            Issued by: DigiCert Trusted Root G4
            Expires:   Sun Mar 22 20:59:59 2037
            SHA1 hash: B6C8AF834D4E53B673C76872AA8C950C7C54DF5F

               Issued to: DigiCert Timestamp 2022 - 2
               Issued by: DigiCert Trusted G4 RSA4096 SHA256 TimeStamping CA
               Expires:   Mon Mar 14 20:59:59 2033
               SHA1 hash: 8508F386515CB3D3077DB6B4B7C07F1B4A5E41DE


Successfully verified: dinamo-4.7.31-x64-setup.msi

Number of files successfully Verified: 1
Number of warnings: 0
Number of errors: 0

Propiedad de firma digital del archivo