Cómo firmar con un token sin introducir la contraseña

Un problema habitual para nuestros usuarios es la necesidad de introducir la contraseña del token cada vez que lo firman. Esto no sólo es molesto, sino que también impide la automatización. En este artículo, por fin ofrecemos una solución.

Opción uno - Single logon

Una opción trivial y rápida es activar la opción Enable single logon en la pestaña Advanced de Client settings. Esto significa que, una vez introducida la contraseña, Safenet no volverá a pedírsela hasta que cierre la sesión.

Configuración de Single logon en Safenet
Configuración de Single logon en Safenet

Opción dos – la contraseña se almacena al firmar

Al realizar la propia firma, existe la opción de almacenar la contraseña al firmar el archivo - entonces Safenet no le pedirá más la contraseña. Para ello, se utilizan los parámetros /f, /csp y /k; la contraseña debe introducirse en este último junto con el nombre del contenedor.

Aquí tiene un ejemplo de dónde puede encontrar los valores de datos necesarios, por favor prepárelos:

    Exportación del certificado de Safenet
    Exportación del certificado de Safenet
  • /f CERTIFICATE.cer - localización de la exportación del certificado del token en el archivo (por supuesto, no se puede exportar una clave privada).
  • Averiguación de Container name y Cryptographic provider
    Averiguación de Container name y Cryptographic provider
  • /csp - denominación Cryptographic provider - se encuentra en Safenet en la sección private key, por ejemplo, "eToken Base Cryptographic Provider"
  • /k - contraseña del token que se introduce al firmar. Combínelo con el nombre del contenedor; la contraseña tiene que estar entre paréntesis cómo en el siguiente ejemplo.
    "[{{TokenPasswordHere}}]=KeyContainerNameHere"

Combinar y firmar todo

Todas las informaciones anteriormente averiguadas se complementan al comando de firma mediante los parámetros. El comando de firma en su conjunto tiene el siguiente aspecto:

signtool sign /f "C:\Users\User\CERTIFICATE.cer" /csp "eToken Base Cryptographic Provider" /k "[{{tokenpassword}}]=Containername" /fd SHA256 /t http://timestamp.digicert.com "C:\Users\UserAPP.exe"

El archivo Signtool firmará el archivo sin pedir la contraseña; ni siquiera le pedirá que introduzca su contraseña de Safenet.

Fuente:

Hilo Automate Extended Validation (EV) code signing with SafeNet eToken en StackOverflow