Firefox USB

Motivación

Un ordenador personal público o compartido es un medio hostil, en tanto que no podemos conocer con total seguridad si la información que manejamos con él se encuentra segura. No es deseable, en estos casos, que se almacenen claves de acceso a webs protegidas, certificados digitales personales, ni siquiera el historial de páginas web visitadas.

Otro de los problemas habituales con el uso de ordenadores públicos es el tema de los plugins. Normalmente no se permite instalar ninguna aplicación extra en estos equipos, y es posible, por tanto, que no dispongamos de la versión necesaria de la máquina virtual de java, o de otros plugins necesarios.

Para solucionar este problema se propone un navegador:

  • independiente al que se encuentra en la máquina
  • con todos los plugins necesarios instalados e independientes
  • perfil independiente y, por tanto, caché e historial independientes
  • portable; que pueda usarse de equipo en equipo conservando los datos (contraseñas, certificados, historial…)

La solución que proponemos se basa en la modificación de un navegador Mozilla Firefox para que cumpla con las premisas anteriores.

El navegador modificado, junto con la máquina virtual java de Sun y los plugins mas solicitados se suministrarán en un dispositivo extraíble (tipo USB), y contará con un lanzador facilitando así su ejecución.

Desarrollo Técnico

Se van a usar las últimas versiones de las aplicaciones comentadas.

  • Librerías necesarias para firma electrónica JSS3.3 ( ficheros jss33.jar y libjss3.so)
  • Cliente para firma digital @firmaV5 ya instalado
  • Resto de plugins incluidos en Guadalinex V4.1 (se encuentran en /usr/lib/firefox/plugins)

Partimos de un dispositivo USB formateado en ext3 y con etiqueta portable. Usamos para ello gparted (hemos creado una particion ext3) y e2label.

En la raiz del directorio correspondiente al dispositivo extraíble se copiarán los directorios necesarios (firefox, máquina virtual de java) descomprimidos de sus respectivos instaladores descargados.

Instalamos los plugins que disponemos en nuestra máquina de una instalación estándar de Guadalinex.

cp /usr/lib/firefox/plugins/* firefox/plugins

Instalamos el plugin de java: dentro de firefox/plugins

cd firefox/plugins
rm libjavaplugin_oji.so # si existe uno previo lo borramos
ln -s ../../jre1.6.0_05/plugin/i386/ns7/libjavaplugin_oji.so 

(nótese que la ruta es relativa)

En el directorio raiz del dispositivo se incluirá el lanzador. Este lanzador modifica al navegador, en tanto que cambiamos la variable que marca el directorio Home del usuario que lo ha lanzado por la raiz del dispositivo. De esta forma el directorio de configuración de firefox se almacenará en la raiz de dicho dispositivo. Todas las claves, el historial, los certificados instalados residirán en este directorio.

Copiamos las librerías jss33.jar y libjss33.so suministradas por Telvent a sus respectivos emplazamientos

cp jss33.jar jre1.6.0_05/lib/ext
cp libjss33.so jre1.6.0_05/lib/i386/client

Copiamos el cliente de firma en la raiz del navegador

cp .clienteFirmaArrobaFirma5 NavegadorPortable/

Creamos el ejecutable que permitirá lanzar el firefox (archivo firefox-wrapper) en el entorno adecuado. Es el lanzador

Problemas encontrados

Según el desarrollo técnico previo, disponemos de un navegador totalmente independiente del que se encuentra instalado en la máquina que lo ejecuta, que usa un plugin de java distinto al ya instalado y con directorio propio donde almacenar los certificados, webs visitadas, favoritos, preferencias y caché.

El problema surge cuando copiamos la estructura de directorios y archivos que definen al firefox portable en dispositivo extraíble USB. El montaje de estos dispositivos se realiza de tal forma que todos los archivos contenidos en él pierden su carácter ejecutable,y sólo se pueden leer o escribir. Este comportamiento incide directamente en que no podamos abrir, por defecto y desde un dispositivo extraíble, el navegador que hemos preparado para ser portable.

El problema sólo reside en el montaje de la unidad, que se realiza con la opción noexec por razones de seguridad, y por tanto no permite ejecutar ningún archivo que se encuentren bajo ese punto de montaje.

Se proponen varias soluciones.

a) Añadir un script que monte de nuevo la unidad con permisos de ejecución de tal forma que al hacer click en el icono del navegador se abra éste. Al encontrarse este script en el dispositivo USB para poder ejecutarlo debemos moverlo a otra ubicación, por ejemplo, el escritorio.

b) Modificar la aplicación Hermes para que reconozca un dispositivo USB con una etiqueta concreta, por ejemplo portable, y lo monte con permiso de ejecución.

c) Modificar la aplicación Mount Systray y añadir una opción que permita decidir si se montan los dispositivos como ejecutables o no.

En principio y debido a la urgencia del desarrollo se ha elegido la primera opción.

Resultado final

 
start.txt · Última modificación: 2008/04/23 09:28 por jamartin
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki