Las herramientas keytool, jar, jarsigner, y policytool est�n disponibles en el JDK 1.2 para facilitar varias operaciones relacionadas con la seguridad. (Observa que jar tambi�n estaba disponible en el JDK 1.1.)
Las herramientas keytool y jarsigner reemplazan a javakey, que fue una herramienta interina introducida en JDK 1.1. Estas nuevas herramientas proporcionan m�s caracter�sticas que javakey, incluyendo la habilidad de proteger el keystore y las claves privadas con password, y la habilidad de verificar ficheros JAR firmados, adem�s de generarlos. La nueva arquitectura del keystore reemplaza la base de datos de identidades que javakey creaba y manejaba. Es posible importar informaci�n desde una base de datos de identidades en un keystore, mediante un comando keytool.
�Key and Certificate Management Tool (keytool)
Se usa para crear parejas de claves p�blica/privada, emitir peticiones de certificados (que nosotros enviamos a la Autoridad de Certificaci�n apropiada), importar respuestas de certificados (obtenidos de la Autoridad de Certificaci�n), designar claves p�blicas pertenecientes a terceras partes como verdaderos, y manejar nuestro keystore.
Las claves y certificados se usan para firmar digitalmente nuestras aplicaciones y applets . Un keystore es una base de datos protegida que contiene claves y certificados. Los accesos al keystore est�n protegidos por una password (definida en el momento de su creaci�n, por la persona que la creo y s�lo modificable introduciendo la password actual). Adem�s, cada clave privada en el keystore est� protegida por su propia password.
El formato b�sico para el comando keytool es.
keytool opciones de comando
Comandos de ejemplo.
- -certreq - Genera una "Certificate Signing Request (CSR)" para enviarla a la Autoridad de Certificacion (CA) para que autentifiquen nuestra clave p�blica.
- -delete - Elimina la entrada especifica.
- -export - Exporta a un fichero el certificado de la clave p�blica de la entrad especificada.
- -genkey - Crea una entrada en el keystore conteniendo una clave privada recientemente generada y su correspondiente clave p�blica. Esta �ltima se sit�a en un certificado auto-firmado.
- -import - Importa un certificado para ser tratado como "certificado verdadero" o una respuesta de certificado devuelto por una CA. Esto �ltimo ser� usado para reemplazar el certificado auto-firmado.
- -identitydb - Importa informaci�n desde una base de datos de identidades del estilo JDK 1.1.x.
- -keypasswd - Asigna una password a la clave privada en una entrada.
- -list - Lista las entradas del keystore.
- -printcert - Imprime la informaci�n de un fichero especificado que contiene un certificado.
- -storepasswd - Asigna una password al keystore.
Cada comando tiene un n�mero de opciones, algunas de las cuales son obligatorias, y algunas que tienen valores por defecto so no se especifican.
Hay tres opciones que podr�an aparecer para todos los comandos de operaci�n de un keystore.
- -storetype storetype - especifica el tipo de keystore a ejemplarizar.
- -keystore keystore El nombre (y opcionalment el path) del keystore.
- -storepass storepass - especifica la password que se usar� para protefer la integridad del keystore.
- -v storepass - esto especifica la salida verbosa.
Otras opciones son.
- -alias aliasName - especifica el alias usado para referirse a una entrada particular del keystore.
- -validity numDays - especifica el tiempo durante el cual el certificado deber� considerarse v�lido (por defecto:90 d�as).
- -keypass keypass - especifica la password usada para protefer la integridad de la calve privada de una entrada del keystore.
Puedes ver ejemplos de uso de keytool en las lecciones Firmar C�digo y Concederle Permisos y Intercambiar Ficheros.
�Herramienta Java Archive (jar)
Esta herramienta se utiliza para crear ficheros JAR (llam�ndola usando el comando jar).
El formato de fichero JAR, nos permite juntar varios ficheros en un �nico archivo. T�picamente un fichero JAR contendr� los ficheros class y los recursos auxiliares asociados con los applets y las aplicaciones. Cuando queremos "firmar digitalmente" un c�digo, se usa la herramienta jar para situarlo en un fichero JAR y la herramienta jarsigner para firmarlos (despu�s de generar e importar las claves asociadas dentro del keystore usando keytool).
El formato b�sico delcomando para crear un fichero JAR es.
jar cf jar-file input-file(s)
Vemos las opciones y argumentos usados en este comando.
- La opci�n c indica que queremos crear un fichero JAR.
- La opci�n f indica que queremos que la salida vaya a un fichero en vez de a stdout.
- jar-file es el nombre que queremos para el fichero JAR resultante. Podemos usar cualquier nombre. Por convenci�n, los ficheros JAR tienen la extensi�n .jar, aunque no es obligatorio.
- El argumento input-file(s) es una lista separada por espacios de uno o m�s ficheros que queremos situar dentro del fichero JAR. Este argumento puede contener el s�mbolo de asterisco *. Si alguno de los "input-files" son directorios, el contenido de dichos directorios se a�adir� al fichero JAR, de forma recursiva.
Las opciones c y f pueden aparecer en cualquier orden, pero no debe haber espacio entre ellas.
Podemos a�adir otras opciones a cf del comando b�sico. Una que nosotros utilizaremos en nuestras lecciones es la opci�n v.
- v - produce salida verbose sobre stdout mientras se construye el fichero JAR. La salida verbosa escribe el nombre de cada fichero que se a�ade al fichero JAR.
Puedes ver la secci�n Ficheros JAR para ver m�s detalles sobre la herramienta jar. Tambi�n puedes ver las lecciones Firmar C�digo y Concederle Permisos e Intercambiar Ficheros.
�Herramienta de Firma y Verificaci�n JAR (jarsigner)
Esta herramienta se usa para firmar ficheros JAR o para verificar las firmas de ficheros JAR firmados.
La herramienta jarsigner accede a un keystore que es creado y manejado por keytool, cuando necesita encontrar la clav eprivada y su cadena de certificados asociada para usarlos cuando se firma el fichero JAR. Como los accesos al keystore y a la clave privada est�n protegidos por passwords, s�lo la gente que conozca las passwords puede acceder a ellas y usarlas para firmar el fichero JAR. La herramienta jarsigner pide la passwords necesarias.
La forma b�sica del comando para firmar ficheros JAR es.
jarsigner options jar-file alias
En este comando.
- options son especificaciones opcionales, algunas de las cuales se describen abajo.
- jar-file es el nombre (y path) del fichero JAR a firmar.
- alias es el alias que identifica la clave privada que se va a utilizar para firmar el fichero JAR, y el certificado (o cadena de certificados) asociado.
La herramienta jarsigner nos pedir� las passwords del keystore y de la entrada referenciada por el alias.
Esta forma b�sica del comando asume que el keystore a usar est� es un fichero llamado .keystore en nuestro directorio home. Sobreescribir� el fichero JAR original con el fichero JAR firmado.
En la pr�ctica, queremos usar est� comando en conjunci�n con una o m�s de las siguientes opciones, que deben preceder al nombre jar-file.
- -keystore�url - especifica un keystore a usar si no queremos usar el fichero por defecto.
- -storepass�password - nos permite introducir la password del keystore en la l�nea de comandos en vez de que nos la pida.
- -keypass�password - nos permite introducir la password de la entrada del alias en la l�nea de comandos en vez de que nos la pida.
- -signedjar�file - especifica el nombre el fichero JAR a crear si no queremos que sobreescriba el fichero original.
Puedes ver la secci�n "Archivos JAR" para m�s informaci�n sobre esta herramienta, o puedes ver la lecci�n Intercambiar ficheros para encontrar ejemplos que usan la herramienta jarsigner.
�Policy Tool (policytool) GUI tool
Esta herramienta se usa para crear y modificar los ficheros de configuraci�n de pol�tica externa que define la pol�tica de seguridad de nuestra instalaci�n.
Esta herramienta tiene un Interface Gr�fico de Usuario, donde seleccionamos botones y otras opciones en vez de teclear comandos como en las otras herramientas. Puedes ver las lecciones R�pida Visi�n para Controlar Applets, R�pida Visi�n para Controlar Aplicaciones, y Firmar C�digo y Concederle Permisos para ver ejemplos del uso de esta herramienta.
�Documentac�n Online sobre Herramientas
En la site p�blica de Sun puedes encontrar la siguiente documentaci�n sobre las herramientas de seguridad (en Ingl�s).
- jar documentation with Windows examples
- jar documentation with Solaris examples
- jarsigner documentation with Windows examples
- jarsigner documentation with Solaris examples
- keytool documentation with Windows examples
- keytool documentation with Solaris examples
- policytool documentation with Windows examples
- policytool documentation with Solaris examples