Ficheros JAR (Java ARchives)

El JDK de Java contiene las herramientas que necesitas para firmar ficheros JAR. Dependiendo de la versi�n del JDK que tengas, utilizar�s.

.�La Herramienta JAR de Firma y Verificaci�n del JDK 1.2

Esta herramienta se invoca utilizando el comando jarsigner, por lo tanto, nos referiremos a ella como "Jarsigner".

Para firmar un fichero JAR, primero debes tener una clave privada. Las claves privadas y sus correspondientes claves p�blicas est�n almacenadas en bases de datos protegidas llamadas keystores. Un keystore puede contener las claves de muchos firmantes potenciales. Cada clave del keystore puede ser identificada por un alias que suele ser el nombre del firmante propietario de la clave. Por ejemplo, la clave perteneciente a Rita Jones, podr�a tener el alias "rita".

La forma b�sica para el comando de firma de un fichero JAR es

jarsigner jar-file alias

En este comando.

  • jar-file Es el nombre del fichero JAR a firmar.
  • alias es el alias que identifica la clave privada que se utilizar� para firmar el fichero JAR, y su certificado asociado.

La herramienta Jarsigner te pedir� las passwords para el keystore y el alias.

La forma b�sica de este comando asume que el keystore a utilizar es un fichero llamado .keystore en tu directorio. Crear� la firma y el fichero de bloques de firmas con los nombres x.SF y x.DSA respectivamente, donde x son las primeras ocho letras del alias, todas en may�sculas. Este comando b�sico, sobre-escribir� el fichero JAR original con el fichero JAR firmado.

En la pr�ctica, podr�as querer utilizar este comando en conjunci�n con una o m�s de estas funciones.

  • -keystore�file - especifica un fichero keystore por defecto si no quieres utilizar la base de datos por defecto .keystore.
  • -storepass�password - Te permite introducir la password del keystore en la l�nea de comandos en vez de pedirtelo.
  • -keypass�password - Te permite introducir la password del alias en la l�nea de comandos en vez de pedirtelo.
  • -sigfile�file - especifica el nombre base para los ficheros .SF y .DSA si no quieres que el nombre base se tome de tu alias. file debe estar compuesto solo por letras may�sculas (A-Z), numerales (0-9), subrayado.
  • -signedjar�file - especifica el nombre del fichero JAR firmado a generar, si no quieres que el fichero original sea sobre-escrito con el fichero firmado.

.�Ejemplo

Veamos un par de ejemplos de firma de ficheros JAR con la herramienta Jarsigner. En estos ejemplos asumimos que.

  • Tu alias es "johndoe".
  • la keystore que quieres utilizar es un fichero llamado "mykeys" en el directorio de trabajo actual.
  • la password del keystore es "abc123".
  • la password de tu alias es "mypass".

Para firmar un fichero JAR llamado app.jar, podr�as utilizar este comando.

jarsigner -keystore mykeys -storepass abc123 
          -keypass mypass app.jar johndoe

Como este comando no utiliza la opci�n -sigfile, los ficheros .SF y .DSA se crearan con los nombres JOHNDOE.SF y JOHNDOE.DSA. Como el comando no utiliza la opci�n -signedjar, el fichero firmado resultante sobre-escribir� la versi�n original de app.jar.

Veamos que suceder�a si utilizaramos una combinaci�n de opciones diferente.

jarsigner -keystore mykeys -sigfile SIG 
          -signedjar SignedApp.jar app.jar johndoe

Esta vez, te pedir� que introduzcas las passwords para el Keystore y el alias porque no se han especificado en la l�nea de comandos. (Por razones de seguridad, probablemente no es una buena idea especificar tus passwords en la l�nea de comandos.) Los ficheros de firma y bloque de firmas se llamar�n SIG.SF y SIG.DSA, respectivamente, y el fichero firmado SignedApp.jar se situar� en el directorio actual. El fichero JAR original permanece como estaba.

.�P�gina de Referencia de Jarsigner

Las p�ginas completas de referencia de la herramienta de firma y verificaci�nde ficherso JAR est�n on-line.

.�La herramienta de Seguridad Java del JDK 1.1

Si est�s utilizando la versi�n 1.1 del JDK, utilizar�s la herramienta de seguridad Java para firmar ficheros JAR. Para llamar a esta herramienta se utiliza el comando javakey, por eso, la llamaremos "Javakey" para acortar.

La herramienta Javakey maneja una base de datos que contiene parejas de claves p�blica/privada y los certificados relacionados. Para firmar un fichero JAR con esta herramienta, necesitas tener una pareja de claves p�blica/privada en esta base de datos. La herramienta JavaKey buscar� la base de datos en la localizaci�n especificada por la propiedad identity.database en el fichero de propiedades de seguridad, java.security. Normalmente la base de datos contiene pares de claves de muchos firmantes potenciales, cada par de claves est� asociado con el nombre de usuario de un firmante.

Adem�s de los pares de claves, la base de datos de Javakey contiene certificados para las claves p�blicas. Cuando se a�ade un certificado a la base de datos, Javakey le asigna un n�mero �nico para prop�sitos de identificaci�n.

Para firmar un fichero, debes proporcionar a Javakey esta informaci�n.

  • El nombre de usuario del par de claves a utilizar.
  • El n�mero de certificado a utilizar.
  • El nombre que deben tener los ficheros de firma y de bloque de firmas.
  • El nombre del fichero JAR firmado.

Esta informaci�n se proporciona utilizando un directive file, que es b�sicamente un fichero de propiedades que lee Javakey cuando firma un fichero JAR. Aqu� tienes un ejemplo.

# The signer property specifies the username corresponding to 
# the key pair that Javakey is to use to sign the JAR file.  
# In this example, Javakey will sign the file using the key pair 
# belonging to user "rita".

signer=rita

# The cert property tells Javakey which certificate to use. Each 
# certificate in Javakey's database is identified by a number.
# To see a list of all the certificates and associated numbers in 
# the database, use the command 'javakey -ld'.

cert=1

# The signature.file property specifies the name that the signature 
# file and signature block file are to have.  In this example, 
# the files will be named SIGFILE.SF and SIGFILE.DSA, respectively.

signature.file=sigfile

# The out.file property specifies the name that Javakey should give 
# to the signed JAR file it produces.  This property is optional.
# If it's not present, Javakey will give the signed file the name 
# of the original JAR file, but with a .sig filename extension.

out.file=rita.jar

Una vez que tu fichero directivo est� listo, puedes firmar tu fichero JAR utilizando un comando con esta forma.

javakey -gs directive-file jar-file

En este comando.

  • -gs es la opci�n que le dice a Javakey que firme un fichero JAR.
  • directive-file es el path y el nombre del fichero deirectivo que Javakey deber�a utilizar.
  • jar-file es el path y el nombre del fichero JAR que quieres firmar.

Javakey situar� el fichero JAR firmado en el directivo actual.

Javakey puede realizar muchas otras funciones relacionadas con el manejo de bases de datos de claves y certificados. Puedes ver la documentaci�n on-line del JDK para m�s informaci�n sobre JavaKey.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO