Los archivos JAR, también conocidos como archivos Java, se utilizan para agrupar varios archivos de clase Java y sus datos asociados en un solo archivo. Desempeñan un papel esencial en la distribución de programas Java, permitiendo una distribución y operación sin complicaciones en diversas plataformas. Firmar los archivos JAR para garantizar su validez e integridad es un aspecto importante de la distribución de programas Java. Esto es especialmente crucial para proteger aplicaciones web y garantizar la fiabilidad de bibliotecas de terceros. La herramienta JarSigner es proporcionada por el Kit de Desarrollo de Java (JDK) para este propósito.
JarSigner crea un archivo de firma para el archivo Jar inicial. Este archivo de firma incluye criptográfico hashes de todo el contenido del archivo Jar. La herramienta luego utiliza un firma digital algoritmo para construir un segundo archivo de firma (RSAEstos dos archivos de firma, junto con los archivos iniciales, se guardan en el archivo JAR. JarSigner extrae el archivo JAR inicial y sus archivos de firma relacionados durante el proceso de verificación. Los valores hash del archivo JAR inicial se calculan y se comparan con los valores registrados en el archivo de firma. El archivo JAR se considera legítimo y confiable si los valores hash coinciden. De lo contrario, se considera inválido y no se puede ejecutar.
La adición de una firma digital facilita la verificación del origen y la identidad de los archivos JAR. Los algoritmos criptográficos desempeñan un papel importante para garantizar una protección robusta mediante la implementación de técnicas matemáticas avanzadas en el proceso de firma. Existen diversos métodos para firmar archivos JAR. A continuación, se ofrece una breve descripción de los distintos enfoques.
Firmar archivos JAR con la herramienta JarSigner
Esta sección detalla cómo firmar archivos jar con la herramienta JarSigner. Para que funcione, es necesario tener instalado Java. Descargue e instale Java desde https://www.oracle.com/java/technologies/downloadsHay diferentes formas de utilizar JarSigner: con el Firma de código segura KSP, símbolo del sistema, A través de la Eclipse IDE, oa través de un Oleoducto Jenkins.
Con CodeSign Secure KSP
- Accede a la instalación del JDK de Java y accede a la carpeta bin (normalmente ubicada en C:\Archivos de programa\Java\jdk-20\bin). Allí encontrarás la aplicación JarSigner "Jasigner.exe".
- Puede arrastrar la aplicación a la línea de comando para obtener su ruta o simplemente navegar a esa carpeta usando cmd.
- En cmd, primero especificaremos el tipo de tienda mediante "-storetype Windows-My". Aquí es donde entra en juego nuestro KSP.
- Especifique el algoritmo de firma con: sigalg SHA256 con RSAPuede utilizar el algoritmo de firma que elija.
- Especificar servidor de marca de tiempo: –tsahttp://timestamp.digicert.com
- Especifique el archivo Jar que desea firmar.
- Especifique el alias de clave del certificado.
En resumen, el comando se parece al siguiente. Debe ejecutarse desde el directorio donde se encuentra la aplicación JarSigner.
-storetype Windows-My -sigalg SHA256withRSA -tsa http://timestamp.digicert.com C:\Users\ja785\Desktop\test.jar “evcodesigning”

Podemos ejecutar el verificador Jar Signer para comprobar si los archivos Jar han sido firmados o no.
Se realiza en el mismo directorio que el del firmante y con el siguiente comando.
-verificar

Con símbolo del sistema
A continuación se muestra una lista de los parámetros de comando disponibles y una breve explicación de sus funciones.
| -s o –signo | Archivo jar a firmar. |
| -v o –verificar | Archivo jar a verificar. |
| -c o –cert-path | Ruta del archivo del certificado. |
| -u o –usuario | Nombre de usuario. Un nombre de usuario en el servidor de Encryption Consulting. |
| -k o –tecla | Clave para firma/verificación proporcionada por el servidor de Encryption Consulting. |
| -a o –algoritmo | Algoritmo para la firma/verificación. Se debe utilizar una de las siguientes opciones: SHA-256 SHA-384 SHA-512 |
| -o o –salida | Archivo de salida a la ruta como el archivo firmado. |
| -h o –ayuda | Ayuda |
| -versión | Mostrar número de versión |
| -verboso | Mostrar registros de depuración |
Para firmar un archivo jar usando JarSigner, primero abra un símbolo del sistema de administrador e ingrese este comando:
cd C:\Users\Administrator\Desktop\JarSigner-main (1)\JarSigner-main\JarSignerAgent\target
El comando para firmar es el siguiente, recuerda el contenido en son entradas de ejemplo, deberá especificar los nombres de archivos y rutas específicos:
java -classpath .;jarsigner-jar-with-dependencies.jar;”C:\Archivos de programa\Java\jdk1.8.0_202\lib\tools.jar” com.security.SignerMain -s “
El resultado esperado es el siguiente:

Para verificar un archivo jar usando JarSigner, ingrese este comando:
java -classpath .;jarsigner-jar-with-dependencies.jar;”C:\Archivos de programa\Java\jdk1.8.0_202\lib\tools.jar” com.security.SignerMain -v “
El resultado esperado es el siguiente:

Con Eclipse (Proyecto Maven)
Para firmar un archivo jar usando el IDE de Eclipse, primero deberá instalar eclipsar.
- Cuando aparezca el asistente de instalación, seleccione Eclipse IDE para desarrolladores Java y haga clic en instalar.

- Asegúrese de que el archivo CodeSignerAgent.zip esté descomprimido. Luego, en la interfaz de Eclipse, haga clic en "Importar" en la esquina superior izquierda de la ventana.

- Luego seleccione Importar proyectos Maven existentes.

- Luego seleccione el directorio CodeSignerAgent en el navegador como se muestra a continuación:

- Cree una biblioteca JDK haciendo clic en la biblioteca del proyecto. Seleccione JDK 1.8 como ruta de la biblioteca. Instale JDK 1.8 si no está disponible.
Referencia: https://www.oracle.com/in/java/technologies/javase/javase8-archive-downloads.html


- Añade esta biblioteca JDK a la biblioteca del proyecto. Elimina la biblioteca JRE.

- Luego abra el archivo pom.xml del proyecto y cambie la ruta JDK 1.8 según su máquina.

- Luego haga clic derecho en el proyecto y seleccione Ejecutar como: Instalación de Maven

- La compilación exitosa se mostrará a continuación y, en la carpeta de destino del proyecto, se creará JarSigner.jar.


Oleoducto Jenkins
Usar JarSigner en una pipeline puede ser útil para probar posibles actualizaciones y nuevas compilaciones. El proyecto JarSigner está preconfigurado en el panel de Jenkins.
Para iniciar sesión, abra un navegador web (preferiblemente Google Chrome) y escriba http://localhost:8080/ para acceder al panel de Jenkins.

Aquí podrás ver todas las builds y algo de información general sobre ellas.
En el panel de Jenkins, siga los pasos a continuación:
- Desde el Panel de Control, haga clic en Nuevo Elemento.

- Ingrese cualquier nombre de elemento y haga clic en Proyecto Freestyle y haga clic en Aceptar.

- En la página de configuración, en General, coloque una descripción como desee.

Aquí es donde se ejecuta el código JarSigner, mediante la adición de un Paso de construcción que Ejecuta un comando por lotes de Windows Podemos llamar al código JarSigner y ejecutarlo a través de la tubería de Jenkins.

Guarde los cambios haciendo clic en Guardar en la parte inferior.
Una vez guardado, haz clic en "Compilar ahora" y verás el número de compilación en pantalla. Para obtener más información sobre los pasos y la configuración general de la compilación, puedes hacer clic en Configurar junto al botón Construir ahora.

En la parte inferior izquierda de la lista de botones, haga clic en la flecha hacia arriba en Historial de compilación para ver las compilaciones más recientes del proyecto. Seleccione la más reciente y verá la página de información de la compilación. Para ver el resultado de la compilación, haga clic en Salida de consola botón en el lado izquierdo de la pantalla.

También puede ver la salida de la consola en formato de texto simple haciendo clic Ver como texto sin formato bajo el Salida de consola Botón. Como se muestra a continuación, esta compilación ejecuta JarSigner.

Conclusión
En conclusión, comprender los conceptos de la firma de archivos JAR y el uso de la herramienta "jar signer" es esencial tanto para desarrolladores como para usuarios de Java. Al aprovechar esta funcionalidad, se puede mejorar la seguridad y la fiabilidad de las aplicaciones, protegiéndolas contra posibles manipulaciones y garantizando la fiabilidad de las bibliotecas de terceros. Dado que la seguridad de las aplicaciones web sigue siendo una prioridad, familiarizarse con el proceso de firma de archivos JAR resultará fundamental para mantenerse a la vanguardia en este panorama en rápida evolución.
Consultoría de cifrado comprende la necesidad de firmar archivos y aplicaciones en esta era digital. Nuestra plataforma de firma de código, CodeSign seguro, demuestra nuestra dedicación a la seguridad. Ofrecemos generación de firmas con Módulos de seguridad de hardware, junto con hash del lado del cliente y análisis de virus. Nos comprometemos con su seguridad y estamos aquí para brindarle la información y las herramientas que necesita para proteger lo que más le importa. Visite www.encryptionconsulting.com para obtener más información sobre cualquiera de nuestros productos o para reservar una demostración segura de CodeSign.
