Ir al contenido

¡Se acercan los certificados de 47 días! ¿Estás preparado?

Actúa ahora →

Realizar firmas con Jarsigner y la biblioteca PKCS#11

Jarsigner

La firma de código es un proceso fundamental en el desarrollo de software que garantiza la autenticidad e integridad de las aplicaciones, protegiéndolas de manipulaciones y modificaciones no autorizadas. Para optimizar este proceso, la biblioteca PKCS#11 de Encryption Consulting ofrece una potente solución para firmar código con Jarsigner en diversos sistemas operativos, como Windows, Linux (Ubuntu) y macOS.

Jarsigner

La herramienta Jarsigner, incluida en el Java Development Kit (JDK), proporciona un mecanismo sólido para firmar digitalmente archivos, lo que la convierte en una herramienta esencial para los desarrolladores de Java que distribuyen aplicaciones en varias plataformas.

Es útil firmar los siguientes tipos de archivos:

  • .frasco: Archivos de almacenamiento Java, que son archivos de propósito general para clases y recursos Java.  
  • .oreja: Archivos de archivo empresarial, utilizados para empaquetar aplicaciones empresariales Java EE.  
  • .guerra: Archivos de archivo de aplicaciones web, utilizados para empaquetar aplicaciones web Java.  
  • .sar: Archivos de archivo de servicio, utilizados para empaquetar servicios en algunos entornos Java EE.

Configuración del contenedor PKCS#11 en Ubuntu

Requisitos previos

Antes de analizar el proceso de firma mediante la herramienta Jarsigner y nuestro contenedor PKCS11 en una máquina Linux (Ubuntu), asegúrese de que lo siguiente esté listo:

  • Versión de Ubuntu:Versión de Ubuntu 22.04 o posterior (el entorno probado es Ubuntu 24.02)  
  • Dependencias:Instalar liblog4cxx12 y curl. 

Para instalar las dependencias, ejecute los siguientes comandos

  • sudo apt-get install curl 
  • sudo apt-get install liblog4cxx12 

Instalación del contenedor PKCS#11 de EC 

Paso 1: Vaya a la sección Herramientas de firma de EC CodeSign Secure v3.02 y descargue el paquete PKCS#11 Wrapper para Ubuntu.

Herramientas de firma CE

Paso 2: A continuación, genere un certificado de autenticación P12 desde el menú desplegable Configuración del sistema > Usuario > Generar certificado de autenticación.

Certificado de autenticación P12

Paso 3: Vaya a su sistema cliente Ubuntu y edite los archivos de configuración ( ec_PKCS#11client.ini y PKCS#11properties.cfg ) descargados en el PKCS#11 Wrapper.

editar archivos de configuración de Ubuntu

Instale Java en su máquina Ubuntu.

También necesitará instalar Java (Java 8-17) en su máquina Ubuntu para que Jarsigner funcione con nuestro Wrapper PKCS11.

Paso 1: Instala Java 17 en tu máquina Ubuntu.

sudo apt instalar openjdk-17-jdk

comando de instalación de Java

Paso 2: Establezca Java 17 como la versión activa.

sudo update-alternativas –config java

establecer versión activa

Paso 3: Compruebe si Java se ha instalado correctamente o no.

java -version

comprobar la versión de Java

Paso 4: Establezca Java 17 como la versión activa.

Ejecutar: nano ~/.bashrc

Después de ejecutar el comando anterior, agregue estas líneas al final del archivo:

exportar JAVA_HOME=

export PATH = $ JAVA_HOME / bin: $ PATH

Establecer la versión activa de java17

Presione Ctrl + X, luego Y para confirmar y luego Enter para guardar.

Paso 5: Recargar el archivo bashrc

Ejecutar: source ~/.bashrc

Paso 6: Compruebe si la variable se ha configurado.

echo $ JAVA_HOME

Si no es así, abra una nueva terminal e inténtelo nuevamente.

Firma

Paso 1: Cambie el directorio de trabajo de la terminal a la carpeta que contiene los archivos “ec_pkcs11client.ini” y “pkcs11properties.cfg”.

Cambiar directorio de trabajo

Paso 2: Ejecute el comando de firma desde este directorio.

-keystore NINGUNO -storepass NINGUNO -storetype PKCS11 -sigalg SHA256withRSA -providerClass sun.security.pkcs11.SunPKCS11 -providerArg -jar firmado -tsa http://marca de tiempo.digicert.com

A continuación se proporciona un comando de muestra:

jarsigner -keystore NINGUNO -storepass NINGUNO -storetype PKCS11 -sigalg SHA256withRSA -providerClass sun.security.pkcs11.SunPKCS11 -providerArg pkcs11properties.cfg -signedjar helloworld_signed.jar helloworld.jar gpg2 -tsa http://timestamp.digicert.com

Verificación

Paso 1: Para verificar, ejecute el siguiente comando:

-verificar -certs -verbose

Paso 2: A continuación se proporciona un comando de ejemplo:

jarsigner -verify helloworld_signed.jar -certs -verbose

Configuración del contenedor PKCS#11 en Windows

Requisitos previos

Antes de analizar el proceso de uso de la herramienta Jarsigner y nuestro contenedor PKCS11 en una máquina Windows, asegúrese de tener listo lo siguiente:

  • Versión de Windows: Windows 11 (el entorno probado es Windows 11 23H2) 

Instalación del contenedor PKCS#11 de EC 

Paso 1: Vaya a la sección Herramientas de firma de EC CodeSign Secure v3.02 y descargue el paquete PKCS#11 para Windows.

Ventanas de herramientas de firma CE

Paso 2: A continuación, genere un certificado de autenticación P12 desde el menú desplegable Configuración del sistema > Usuario > Generar certificado de autenticación.

Certificado de autenticación P12

Paso 3: Vaya a su sistema cliente Windows y edite los archivos de configuración ( ec_PKCS#11client.ini y PKCS#11properties.cfg ) descargados en el PKCS#11 Wrapper.

Editar archivos de configuración
Editar archivos de configuración

Instalar Java en su máquina Windows

También necesitará instalar Java (Java 8-22) en su máquina Windows para que Jarsigner funcione con nuestro Wrapper PKCS11.

Paso 1: Instale Java 22 (instalador .exe) en su equipo Windows desde el sitio web oficial de Oracle.

instalar java en windows

Paso 2: Siga las instrucciones para instalar Java 22 en su máquina.

Pasos de instalación de Java
Pasos de instalación de Java

Paso 3: Establezca Java 22 como la versión activa almacenando la ruta del binario en la variable PATH.

establecer Java como versión activa

Firma

Paso 1: Cambie el directorio de trabajo de la terminal a la carpeta que contiene los archivos “ec_pkcs11client.ini” y “pkcs11properties.cfg”.

cambiar directorio de trabajo

Paso 2: Ejecute el comando de firma desde este directorio.

-keystore NINGUNO -storepass NINGUNO -storetype PKCS11 -sigalg SHA256withRSA -providerClass sun.security.pkcs11.SunPKCS11 -providerArg -jar firmado -tsa http://marca de tiempo.digicert.com

A continuación se proporciona un comando de muestra:

jarsigner -keystore NINGUNO -storepass NINGUNO -storetype PKCS11 -sigalg SHA256withRSA -providerClass sun.security.pkcs11.SunPKCS11 -providerArg pkcs11properties.cfg -signedjar helloworld_signed.jar helloworld.jar gpg2 -tsa http://timestamp.digicert.com

Verificación

Paso 1: Para verificar, ejecute el siguiente comando:

-verificar -certs -verbose

Paso 2: A continuación se proporciona un comando de ejemplo:

jarsigner -verify helloworld_signed.jar -certs -verbose

Configuración del contenedor PKCS#11 en MacOS

Requisitos previos

Antes de analizar el proceso de uso de la herramienta Jarsigner y nuestro contenedor PKCS11 en una máquina MacOS, asegúrese de tener listo lo siguiente:

  • Versión de macOS: Sequoia 15.2 (entorno de prueba Sequoia 15.2) 
  • Dependencias:Instalar liblog4cxx y curl. 

Para instalar las dependencias, ejecute los siguientes comandos

  • brew install curl
  • brew install log4cxx

Instalación del contenedor PKCS#11 de EC 

Paso 1: Vaya a la sección Herramientas de firma de EC CodeSign Secure v3.02 y descargue el paquete PKCS#11 para MacOS.

Herramientas de firma EC para Mac

Paso 2: A continuación, genere un certificado de autenticación P12 desde el menú desplegable Configuración del sistema > Usuario > Generar certificado de autenticación.

Certificado de autenticación P12

Paso 3: Vaya a su sistema cliente MacOS y edite los archivos de configuración ( ec_PKCS#11client.ini y PKCS#11properties.cfg ) descargados en el PKCS11 Wrapper.

Editar archivo de configuración

Instale Java en su máquina MacOS.

También necesitará instalar Java (Java 8-17) en su máquina MacOS para que Jarsigner funcione con nuestro Wrapper PKCS11.

Paso 1: Instala Java 17 en tu ordenador MacOS.

brew install openjdk@17

Paso 2: Localiza la ubicación donde está instalado Java 17 en tu máquina.

Información de preparación para openjdk@17

Paso 3: Establezca Java 17 como la versión activa.

Para Zsh: nano ~/.zshrc

Para Bash: nano ~/.bash_profile

Después de ejecutar el comando anterior, agregue estas líneas:

exportar PATH= :$RUTA

exportar JAVA_HOME=

establecer java como activo

Paso 4: Recargar las variables de entorno

Para Zsh: source ~/.zshrc

Para Bash: source ~/.bash_profile

Firma

Paso 1: Cambie el directorio de trabajo de la terminal a la carpeta que contiene los archivos “ec_pkcs11client.ini” y “pkcs11properties.cfg”.

Paso 2: Ejecute el comando de firma desde este directorio.

-keystore NINGUNO -storepass NINGUNO -storetype PKCS11 -sigalg SHA256withRSA -providerClass sun.security.pkcs11.SunPKCS11 -providerArg -jar firmado -tsa http://marca de tiempo.digicert.com

A continuación se proporciona un comando de muestra:

jarsigner -keystore NINGUNO -storepass NINGUNO -storetype PKCS11 -sigalg SHA256withRSA -providerClass sun.security.pkcs11.SunPKCS11 -providerArg pkcs11properties.cfg -signedjar helloworld_signed.jar helloworld.jar gpg2 -tsa http://timestamp.digicert.com

Verificación

Paso 1: Para verificar, ejecute el siguiente comando:

-verificar -certs -verbose

Paso 2: A continuación se proporciona un comando de ejemplo:

jarsigner -verify helloworld_signed.jar -certs -verbose

Solución de firma de código empresarial

Obtenga una solución para todas sus necesidades criptográficas de firma de código de software con nuestra solución de firma de código.

Conclusión

CodeSign Secure de Encryption Consulting lleva la firma de código a un nuevo nivel al ofrecer una plataforma integral que no solo optimiza el proceso de firma, sino que también refuerza significativamente la seguridad de la organización. Gracias a funciones avanzadas como la integración del Módulo de Seguridad de Hardware , el hash del lado del cliente y el análisis antivirus, CodeSign Secure garantiza que las claves de firma permanezcan protegidas y que las aplicaciones firmadas estén libres de malware.

CodeSign Secure se integra fácilmente en los flujos de trabajo de CI/CD, lo que lo convierte en la solución ideal para organizaciones que buscan automatizar y escalar sus flujos de trabajo de desarrollo, cumpliendo al mismo tiempo con estrictas políticas de seguridad. Gracias a sus registros de auditoría detallados y la aplicación rigurosa de las políticas, ofrece transparencia y responsabilidad, ayudando a las empresas a cumplir con los requisitos de cumplimiento normativo y a generar confianza con sus usuarios.

Al integrarse perfectamente con Jarsigner, la biblioteca PKCS#11 de Encryption Consulting simplifica la configuración y ejecución de las tareas de firma, ofreciendo una experiencia consistente y segura en cualquier plataforma. Ya sea que desarrolle en Windows, implemente en Ubuntu o realice pruebas en macOS, esta biblioteca permite a los desarrolladores mantener altos estándares de seguridad con una complejidad mínima.