Firmante del tarro
Información general
Esta guía del usuario está integrada con el jarsigner
del SDK de Java se ha preparado utilizando las versiones de software y firmware que se indican a continuación:
- SO Windows 10 (Español)
- SO Linux Debian 11
- JDK: 8
- Firmware HSM5.0.26.0 (o superior)
- Cliente HSM4.7.30 (o superior)
Requisitos
- Conectividad con el HSM (puerto TCP 4433).
- Software cliente HSM instalado (véase el tema Instalación).
- Servicio HSM iniciado.
- Credenciales de la partición HSM donde se creará o utilizará la clave privada.
Firma de códigos
Advertencia
En los siguientes pasos de importación, los nombres de la clave, el certificado y la cadena en el archivo HSM deben seguir las reglas de denominación definidas en el tema Aplicación. Por ejemplo clave
, certificado_clave
e llavero
.
Firmar con jarsigner
utilizando el HSM se realiza a través de la API de integración JCA/JCE. Así que el paso inicial es configurar la API de integración para conectarse a la HSM. Para más detalles sobre la API JCA/JCE del HSM ver el tema JCA/JCE.
-
Importa o genera la clave en la partición elegida.
-
Importe el certificado y, opcionalmente, la cadena PKCS#7 de la Autoridad de Certificación (CA) que emitió el certificado a la partición elegida.
-
Generar el fichero de configuración JCA mediante el programa java
jcaconfig.jar
. Este programa se instala junto con el HSM. Para obtener más información sobre esta utilidad, consulte el tema Configuración. Ubicación por defecto Programas y bibliotecas Java HSM es la siguiente.- Ventanas:
Dinamo Networks DinamoC:Archivos de programa \HSM \sdk\java
- Linux:
/opt/dinamo
El nombre del archivo de configuración generado debe ser
Configuración.ND
.java -jar jca_config.jar -addr <HSM_IP> -usr <HSM_PARTITION> -pwd <HSM_PARTITION_PASSWORD> -file Configuration.ND
Donde -
<HSM_IP>
Dirección IP de HSM -<HSM_PARTITION>
partición de HSM -<HSM_PARTITION_PASSWORD>
Contraseña de partición - Ventanas:
-
Copie el archivo de configuración generado en la misma carpeta donde ejecutará el comando
jarsigner
. -
Copiar los archivos
ndjca.jar
etacndjavalib.jar
a la carpeta de extensiones de Java. Normalmente esta carpeta tiene la siguiente ruta, donde<VERSION>
es la versión del JDK instalada.- Ventanas:
C:\Program Files\Java\jdk<VERSION>\jre\lib\ext
- Linux:
/usr/local/openjdk-<VERSION>/jre/lib/ext/
- Ventanas:
-
Ejecute el comando
jarsigner
con los siguientes parámetros.jarsigner -tsa http://timestamp.digicert.com -providerName ND -storetype TAC -providerClass br.com.trueaccess.provider.netdfence.ND -keystore /dev/null -storepass <HSM_PARTITION_PASSWORD> <JAR_APPLICATION> key`
Donde -
<HSM_PARTITION_PASSWORD>
: contraseña de partición -<JAR_APPLICATION>
Aplicación Java (.jar) que tendrá su código firmado. -clave
: es el nombre de la clave privada que se generó o importó en el HSM.La firma de un ACT (Autoridad de Sellado de Tiempo), con la adición de marca de tiempo es opcional (parámetro
-tsa
).
Verificación
-
La comprobación de un archivo .jar firmado también se realiza con el programa
jarsigner
:jarsigner -verify -verbose app.jar s 1782 Wed Aug 31 18:04:42 UTC 2022 META-INF/MANIFEST.MF 1876 Wed Aug 31 18:04:42 UTC 2022 META-INF/KEY.SF 12143 Wed Aug 31 18:04:42 UTC 2022 META-INF/KEY.RSA 0 Tue Aug 30 21:50:40 UTC 2022 META-INF/ 0 Tue Aug 30 21:50:40 UTC 2022 br/ 0 Tue Aug 30 21:50:40 UTC 2022 br/com/ 0 Tue Aug 30 21:50:40 UTC 2022 br/com/trueaccess/ 0 Tue Aug 30 21:50:40 UTC 2022 com/ 0 Tue Aug 30 21:50:40 UTC 2022 com/dinamonetworks/ sm 170 Tue Aug 30 21:50:40 UTC 2022 br/com/trueaccess/NetDFence.class sm 2265 Tue Aug 30 21:50:40 UTC 2022 br/com/trueaccess/TacAccessToken.class sm 1252 Tue Aug 30 21:50:40 UTC 2022 br/com/trueaccess/TacException.class sm 60370 Tue Aug 30 21:50:40 UTC 2022 br/com/trueaccess/TacNDJavaLib.class sm 2360 Tue Aug 30 21:50:40 UTC 2022 br/com/trueaccess/TacSPBException.class sm 34425 Tue Aug 30 21:50:40 UTC 2022 com/dinamonetworks/Dinamo.class sm 718 Tue Aug 30 21:50:40 UTC 2022 com/dinamonetworks/HSMAllInfo.class sm 631 Tue Aug 30 21:50:40 UTC 2022 com/dinamonetworks/HSMCounterInfo.class sm 413 Tue Aug 30 21:50:40 UTC 2022 com/dinamonetworks/HSMDiskInfo.class sm 490 Tue Aug 30 21:50:40 UTC 2022 com/dinamonetworks/HSMStatInfo.class sm 576 Tue Aug 30 21:50:40 UTC 2022 com/dinamonetworks/JwsComponents.class sm 2006 Tue Aug 30 21:50:40 UTC 2022 com/dinamonetworks/PIXHTTPReqDetails.class sm 401 Tue Aug 30 21:50:40 UTC 2022 com/dinamonetworks/PIXResponse.class sm 1073 Tue Aug 30 21:50:40 UTC 2022 com/dinamonetworks/SVaultGenTokenInfo.class sm 514 Tue Aug 30 21:50:40 UTC 2022 com/dinamonetworks/SVaultGenTokenResponse.class s = signature was verified m = entry is listed in manifest k = at least one certificate was found in keystore i = at least one certificate was found in identity scope - Signed by "CN=Dinamo Networks, O=Dinamo Networks, ST=Distrito Federal, C=BR" Digest algorithm: SHA-256 Signature algorithm: SHA256withRSA, 3072-bit key Timestamped by "CN=DigiCert Timestamp 2022 - 2, O="DigiCert, Inc.", C=US" on Wed Aug 31 18:04:42 UTC 2022 Timestamp digest algorithm: SHA-256 Timestamp signature algorithm: SHA256withRSA, 4096-bit key jar verified. The signer certificate will expire on 2023-03-14. The timestamp will expire on 2031-11-09.