La presente página se ha confeccionado gracias a la ayuda de los usuarios del servicio TCS, que nos han enviado información con sus experiencias.
Tabla de contenido
- Solicitar certificados de firma de código
- Firmar con un certificado generado en un token HSM
- Firmar en Windows 10 (UPF)
Certificados de firma de código OV con YubiKey
Esta información se ha obtenido del wiki de la red holandesa Surfnet Code-signing certificaten, y hemos traducido automáticamente con Google. Para cualquier actualización se recomienda acudir a la fuente original.
Nota: Necesita una YubiKey que sea compatible con FIPS. Las YubiKeys estándar no lo son . Consulte https://www.yubico.com/products/yubikey-fips/ para conocer los dispositivos adecuados.
Sectigo tiene el siguiente manual disponible para usar una YubiKey: https://www.sectigo.com/knowledge-base/detail/Key-Generation-and-Attestation-with-YubiKey/kA03l000000roEV . Esto ha sido probado por nosotros. A continuación se presentan algunas adiciones:
1.1 Le recomendamos encarecidamente que primero cambie al menos el PIN PIV y la clave de administración. Esta es una capa adicional de seguridad, esencial si pierde la YubiKey o la deja en su PC mientras se aleja.
2.2 generar attestation.pem ( attestation.crt intermediateCA.crt > attestation.pem
) está en 'Windows (cualquier shell)' pero se aplica a todos los sistemas operativos. La codificación en base64 ( cat attestation.pem | base64
) solo es posible en Linux, pero también es necesaria en MacOS.
2.2 el manual le permite colocar los archivos en la carpeta YubiKey Manager, pero en las computadoras portátiles administradas es posible que no tenga permisos de lectura/escritura allí. En ese caso, colóquelos en su escritorio o en otra carpeta a la que pueda acceder.
Se pueden omitir 3.1 y 3.2. Un perfil de 'Firma de código Sectigo OV (atestación de clave)' está disponible como estándar y se delega a cada organización.
3.3 a 3.5 debe ser realizado por el RAO ​​(administrador) de la institución, a partir de 3.6 el usuario final puede continuar con la carga del CSR y Atestación de Clave.
3.3 Después del paso 8, no olvide verificar si el formulario ha sido delegado a su propia organización para su protección. Al lado del botón "Cuentas" que usó anteriormente, hay un botón "Delegar".
3.4 ya se ha implementado en la mayoría de los dominios.
3.5 Encontrará las invitaciones en Certificados → Certificados de firma de código → Arriba a la derecha. El enlace del correo electrónico funciona una vez, así que asegúrese de que el usuario final ya haya completado los pasos anteriores. Recomendamos hacer esto durante una conversación (chat/teléfono) con el usuario final. El enlace es único, por lo que si un usuario tiene que buscar algo (que suele ser el caso), necesitará un nuevo enlace.
3.6 al final puede descargar el certificado como 'Certificado (con emisor posterior), codificado PEM', esta es la forma en que YubiKey puede analizar el certificado.
3.6 Para muchas aplicaciones necesitarás conocer la huella digital del certificado, que puedes obtener, por ejemplo, conopenssl x509 -noout -in /pad/naar/.pem -fingerprint
Firmar en Windows 10
Se ha instalado JDK 1.8 de 64bits.
A continuación hay que seguir el procedimiento de Sectigo How To Sign Java .jar Files Using an EV Code Signing Certificate.
- Conectar el Token USB en un ordenador Windows 10
-
Crear un fichero con nombre eToken.cfg y contenido
name=eToken library=c:\\WINDOWS\\system32\\eTPKCS11.dll
-
Abrir una ventana de MS-DOS (Ejecutando como Administrador) ir al path de la instalación del Java
(C:\Program Files\Java\JDK-1.8\bin) Ejectutar el comando
keytool -list -keystore NONE -storetype PKCS11 -providerclass sun.security.pkcs11.SunPKCS11 -providerArg eToken.cfg
-
Introducir el password del Token y aparecerá el "Alias". Debemos anotarlo porque hace falta para poder firmar.
-
Copiar los ficheros que se quieren firmar en un directorio c:\ en nuestro caso eran c:\jars
-
Instalar el software SafeNet Authentication Client
-
Exportar el certificado del Token USB con el software SafeNet Authentication Client Tools, haciendo clic en "Advanced View"
Seleccionamos el certificado y hacemos clic en "Export Certificate" -
Una vez lo tenemos exportado (sólo el certificado), ya que la Private Key "nunca" se exportará del Token USB, hay que convertir este CRT a formato PEM
Ejemplo:
Openssl.exe x509 -inform DER -outform PEM -in my_certificate.crt -out my_certificate.crt.pem
Abrimos el certificado, y en la Ruta de Certificación, vamos uno a uno (los 3 certificados) hacemos un "Copy To File" lo exportamos y lo concatenamos en un fichero con nombre chain.crt y lo copiamos en el directorio c:/jars
-
Firmar los ficheros, en nuestro caso JARS
Utilitzamos el comando JARSIGNER
Abrimos una ventana de MS-DOS y en el path de la instalación del JAVA
(C:\Program Files\Java\JDK-1.8\bin) ejecutamos el comando:jarsigner -tsa http://timestamp.sectigo.com/rfc3161 -keystore NONE -storetype PKCS11 -providerClass sun.security.pkcs11.SunPKCS11 -providerArg ./eToken.cfg -certs -certchain c:\jars\chain.crt c:\jars\FICHERO.jar Sectigo_20230718121746
Después hay que verificar siempre que se haya firmado y comprobar la nueva fecha de expiración del certificado de código
jarsigner -verify -verbose c:\jars\FICHERO.jar
Si aparecen s= signature was verified y la información jar verified junto con la frase The signer certificate will expire on FECHA_EXPIRACIÓN que coincida con la del certificado de Firma de Código, es que ha funcionado!