Seguridad en la Plataforma Java 2 JDK 1.2

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).

COMPARTE ESTE ARTÍCULO

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