Saltar la navegación

3.4.- Utilizando ficheros Jar firmados.

Una vez que tenemos el fichero jar firmado (sGetProps.jar) y el certificado de seguridad (Javier.cert), podemos intentar ejecutar directamente la aplicación, pero veremos que al utilizar el SecurityManger nos da problemas de seguridad.

java –cp sGetProps.jar GetProps
java –Djava.security.manager –cp sGetProps.jar GetProps

Captura de pantalla que muestra el resultado de la ejecución de java –Djava.security.manager –cp sGetProps.jar GetProps.

Para que la aplicación funcione correctamente, primero debemos importar el certificado ejecutando:

keytool –import alias Javier –file Javier.cert –keystore DAM

donde:

  • -import alias Javier. Indica que se va a importar el certificado con el alias Javier.
  • -keystore DAM. Indica el keystore donde se guarda el certificado.

Una vez que tenemos el alias, tenemos que configurar las políticas de acceso para que el usuario Javier pueda ejecutar correctamente la aplicación. Para ello, debemos realizar los siguientes pasos:

  • Ejecutamos el comando policytool para iniciar la herramienta que permite administrar las políticas de acceso.
  • Nos vamos al menú Archivo -> Abrir y seleccionamos el fichero java.policy que se encuentra en c:\Archivos de programa\Java\jre7\lib\security\java.policy (hay que tener cuidado porque la ubicación puede cambiar dependiendo de la versión de java).
     Captura de pantalla de las herramientas de  Políticas de seguridad de java.
  • Una vez abierto el fichero de políticas de acceso tenemos que indicar el keystore que vamos a utilizar. Para ello, en el menú Almacen de claves seleccionamos Editar y en el campo URL de almacén de claves indicamos la ubicación de las claves (que en nuestro caso es file:\c:\ejemplo\DAM).
  • Añadimos una entrada para permitir el acceso de nuestro código. Para ello, realizamos los siguientes pasos:
  • Pulsamos el botón Agregar Entrada de Política y podemos indicar el origen del fichero por su ubicación (codebase) o por su firma (SignedBy). En esta ocasión, en el campo SignedBy escribimos nuestro usuario Javier.
  • Pulsamos en Agregar Permiso y añadimos un permisos con los siguientes datos:
  • añadimos una nueva política de acceso con los siguientes datos:
    • PropertyPermission = java.util.PropertyPermission
    • Nombre de Destino = user.home
    • Acciones = read
  • Pulsamos en Agregar Permiso para añadir el segundo permiso con los siguientes datos:
    • PropertyPermission = java.util.PropertyPermission
    • Nombre de Destino = java.home
    • Acciones = read
  • Finalmente, guardamos todos los cambios.
    Captura de pantalla que muestra la edición de permisos de las políticas de seguridad. .

Una vez configurada la política de acceso, volvemos a ejecutar la aplicación y ya podemos comprobar que la aplicación se ejecuta correctamente.

java –Djava.security.manager –cp sGetProps.jar GetProps
java –Djava.security.manager –cp sGetProps.jar GetProps.