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.
-
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 -
Seleccione la pestaña MS CAPI y marque la opción Activar CNG.
Configuración del cliente HSM - Parámetros CSP -
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.
-
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 -
A continuación, haga clic en Detalles y en la opción Copiar en archivo.
Certificado -
Elija la opción No, no exportar la clave privada.
Exportar un certificado -
Seleccione el formato binario X.509 codificado por DER (*.cer).
Exportar un certificado -
Guarda el archivo.
-
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 -
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
- Verificación de un archivo de código firmado con la norma Authenticode puede hacerse con el programa
signtool
o 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