Firma digital en Chrome
Contexto
Tradicionalmente, las aplicaciones java de firma digital servidas en web, usaban Applets para el acceso a la clave privada. Los applets se apoyaban en una tecnología denominada NPAPI (Netscape Plugin Application Programming Interface). Se trata de una API que permite desarrollar extensiones para navegadores. En una arquitectura NPAPI, un plugin cualquiera declara un Content-Type. Cuando el navegador se encuentra un Content-Type que no sabe abrir, carga el Plugin adecuado y lo ejecuta desde dentro de la propia página. En ese caso, se activa el Plugin correspondiente realizando la lógica que corresponda y entregando los datos al navegador.
Debido a la antigüedad y los problemas de seguridad que presenta esta tecnología, además de la consolidación de la web sin Plugins derivada de la irrupción de HTML5, los principales navegadores programaron en sus hojas de ruta la desactivación de esta tecnología. El primero en dar el paso fue Google Chrome, en su versión 45, publicada en septiembre de 2015. Desde la versión 42, NPAPI ya venía desactivada por defecto, si bien los usuarios podían activarla accediendo al menú de configuración.
Ya en julio de 2015, Microsoft lanzaba Windows 10, en el que Microsoft Edge, su navegador por defecto, no soportaba NPAPI.
Posteriormente, se sumaron otros navegadores como Mozilla Firefox y Opera.
Esto afectaba a nuestra solución PortaSigma y las herramientas para integradores de aplicaciones web (PortaSigma Tools).
La solución de ISIGMA
Tras analizar las diferentes arquitecturas posibles, se concluyó que para suplir la lógica que proporcionaban los applets manteniendo las funcionalidades de forma segura, se hacía imprescindible la instalación de software en el equipo del usuario firmante. Una vez asumida esta necesidad, se realizaron las siguientes consideraciones:
- El Software que se instalaría en los equipos de los usuarios, proporcionaría valor añadido al usuario, para no ser percibido como un parche
- La solución debía proporcionar la mayor interoperabilidad posible, sin requerir extensiones específicas para cada tipo de navegador
Desde el año 2009, ISIGMA distribuye la aplicación gratuita de firma digital ClickSign, disponible en la web de producto. Se trata de un producto maduro, que basa su éxito en la sencillez de uso. ClickSign permite firmar digitalmente documentos PDF en local, usando certificados digitales en software, token o tarjeta.
Se decidió que ClickSign proporcionaba el valor añadido necesario, ya que permitía a los usuarios firmar digitalmente documentos PDF de forma autónoma, usando sus certificados digitales. Además, presentaba las siguientes ventajas adicionales, que lo convertían en una solución muy natural:
- Se trataba de un software que ya estaba incluido dentro de la hoja de ruta de desarrollo de ISIGMA, lo que garantizaba la constancia de mantenimiento necesaria en los entornos más habituales (Windows, MAC, Linux)
- Es una aplicación gratuita, lo que facilita su divulgación
Así, se dotó a ClickSign de la tecnología necesaria para proporcionar el servicio de firma web, garantizando interoperabilidad desde cualquier navegador, incluidos Google Chrome, Microsoft Edge y Mozilla Firefox.
La primera vez que un firmante trata de acceder a PortaSigma desde uno de los navegadores mencionados sin disponer de los componentes necesarios, se lanza un proceso autoguiado para la instalación de ClickSign.
Tecnología de comunicación por servicio
Para la implementación, se optó por utilizar la tecnología de Comunicación por Servicio. Consiste en que una aplicación nativa actúa como servidor de sockets TCP o de servidor HTTP, pudiendo ser accesible desde código Javascript en el navegador web.
La siguiente figura muestra cómo se comunica ClickSign (aplicación local) con la aplicación web (PortaSigma):
La aplicación local se ejecuta como un servicio en la máquina del usuario, escuchando a la espera de una solicitud en un puerto TCP fijo, mientras que la aplicación web es la que inicia el diálogo mediante una llamada WebSocket o HTTP al localhost.
La seguridad en las comunicaciones se garantiza a través de la implementación del protocolo TLS utilizada.
Conclusiones
Gracias a esta solución, ISIGMA proporciona una solución óptima para servir la firma digital de documentos PDF en aplicaciones web, cuando la clave privada del firmante reside en el equipo del firmante. Esto incluye tanto certificados digitales en software, como tarjetas criptográficas o Tokens.
El componente necesario para la firma digital en web, es una herramienta gratuita que los usuarios pueden utilizar también para firmar digitalmente sus propios documentos PDF de forma autónoma.
PortaSigma también es accesible a través de una sencilla API basada en WebServices REST, lo que permite la integración de esta eficaz tecnología de firma digital en cualquier aplicación web.
Y lo más importante, se trata de una solución compatible con todos los navegadores ( Google Chrome, Microsoft Edge, Mozilla Firefox, Opera, etc) sin necesidad de instalar extensiones específicas para cada caso.