Firmante del tarro
Información general
Esta guía del usuario integrada con la utilidad jarsigner
del Java SDK se ha preparado utilizando las versiones de software y firmware que se indican a continuación:
- Sistema operativo Windows 11
- Sistema operativo Linux Debian 11
- JDK: 8 y 17
- Firmware HSM: 5.4.0.0 (o superior)
- Cliente HSM: 4.14.0.0 (o superior)
Requisitos
- Conectividad con el HSM (puerto TCP 4433);
- Servicio HSM iniciado;
- Clave y certificado/cadena de certificados en HSM;
- Credenciales de la partición HSM donde se creará o utilizará la clave privada.
Instalación de claves y certificados
Advertencia
En los siguientes pasos de importación, los nombres de la clave, el certificado y la cadena en el HSM deben seguir las reglas de nomenclatura definidas en el tema Implementación. Por ejemplo, clave
, clave_certificado
y clave_cadena
.
-
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.
Firma de códigos
La firma con jarsigner
mediante 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 al HSM. Para obtener más detalles sobre la API JCA/JCE de HSM, consulte el tema JCA/JCE.
-
DINAMOInstale el paquete Java . Siga el manual Guía deinstalación.
-
Ejecute el comando
jarsigner
con los siguientes parámetros.jarsigner -J-D"dinamo.hsm.jca.ip=<HSM_IP>" -J-D"dinamo.hsm.jca.user=<HSM_USER>" -J-D"dinamo.hsm.jca.pwd=<HSM_PWD>" -tsa http://timestamp.digicert.com -providerName ND -storetype TAC -providerClass br.com.trueaccess.provider.netdfence.ND -keystore NONE -storepass <HSM_PWD> "<JAR_APPLICATION>" <KEY>
jarsigner -J-cp -J"<DINAMO_JAVA_PACKAGE>" -J-D"dinamo.hsm.jca.ip=<HSM_IP>" -J-D"dinamo.hsm.jca.user=<HSM_USER>" -J-D"dinamo.hsm.jca.pwd=<HSM_PASSWORD>" -tsa http://timestamp.digicert.com -providerName ND -storetype TAC -providerClass br.com.trueaccess.provider.netdfence.ND -keystore NONE -storepass <HSM_PASSWORD> "<JAR_APPLICATION>" <KEY>
Dónde:
<DINAMO_JAVA_PACKAGE>
: path do pacote Java DINAMO;<HSM_IP>
: enderço do HSM;<HSM_USER>
: nome do usuário/partição;<HSM_PASSWORD>
: senha da usuário/partição;<JAR_APPLICATION>
: aplicação Java (.jar) que terá o código assinado;<KEY>
: é o nome da chave privada que foi gerada ou importada no HSM.
La firma de una ACT (Autoridad de Sellado de Tiempo) con la adición de una 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.