Transformación digital del Applet

Desde la salida de la versión definitiva del estándar HTML5 en octubre de 2014, las empresas Google y Mozilla, impulsoras del estándar y desarrolladoras de los navegadores más utilizados, han ido tomando decisiones con el objetivo de promoverlo.

Por Martín Marsicano martin_marsicano-op

Entre esas decisiones, ambas empresas anunciaron que en futuras versiones de sus navegadores dejarían de soportar el plugin NPAPI (Netscape Plugin API), el cual permitía la interacción de una página web con distintas tecnologías como Adobe Flash, Microsoft Silverlight y los Applets de Java. Dichas tecnologías eran utilizadas por distintos reproductores de video y juegos, o para acceder a dispositivos en la máquina del usuario, como un escáner, u otras funcionalidades para distintos negocios. Además de promover el nuevo estándar, que provee algunas de las funcionalidades antes mencionadas, justificaron dicha acción debido a las múltiples vulnerabilidades de seguridad que se fueron encontrando en estas tecnologías, principalmente en Flash.

1

2

Fue por estos motivos que Google quitó el soporte de NPAPI en Chrome en julio de 2015, mientras que Mozilla lo hizo en marzo de 2017, aunque mantiene una versión llamada Extended Support Release o ESR en la cual continúa permitiendo la ejecución de dicho plugin.

Teniendo que buscar una alternativa para poder mantener dichos componentes funcionales, y que la solución no sea utilizar navegadores obsoletos (por ejemplo Internet Explorer, el cual ya no recibe actualizaciones de Microsoft), la industria pasó a utilizar la tecnología Java Web Start, que permite la ejecución del Applet mediante la ejecución de un archivo de extensión JNLP (Java Network Launching Protocol). De esta manera se logra mostrar el Applet de Java al usuario debiendo realizar unos pocos cambios.

Pero la ejecución de un componente de este modo trae sus complicaciones, tanto para el usuario como para el desarrollador. El usuario, debe descargar un archivo cada vez que quiere ejecutar el programa e ignorar un aviso de seguridad, si utiliza el navegador Google Chrome, cuando se descarga un archivo de este tipo. Además, el usuario debe aceptar la ejecución de dicho programa, que se ejecuta en una ventana  por fuera del navegador. Debido a esto último el desarrollador debe utilizar algún mecanismo para comunicar la página web del usuario con el Applet como Web Sockets o realizar un pooling desde JavaScript.

3

Por todo esto, fue necesario realizar una transformación digital sobre los componente desarrollados como Applets. Dicha transformación consiste en desarrollar una extensión del navegador que pudiendo utilizar HTML5 y JavaScript dibuja la interfaz gráfica, y mediante la tecnología Native Messaging de los navegadores, se puede comunicar con una aplicación instalada localmente en la máquina del usuario. De este modo, el componente vuelve a estar dentro de la ventana del navegador, se utilizan las ventajas de HTML5 y, realizando ciertos ajustes, se puede reutilizar el código del Applet para desarrollar una aplicación local. Además, la utilización de un componente de este tipo requiere realizar el proceso de instalación y ejecución una única vez.

A continuación se muestra el proceso de instalación de uno de los componentes del Kit de Identidad Digital, que fue desarrollado utilizando esta tecnología. Este permite obtener los datos de la cédula electrónica uruguaya, mediante una extensión del navegador y un lector de tarjetas conectado a la máquina, para luego enviárle la información a la aplicación web.

Escrito por Martín Marsicano, equipo de Seguridad de GeneXus Consulting.

 

Deja un comentario