¿Algún día será simple usar la firma digital?

En Bolivia, la firma digital goza del mismo valor jurídico que la firma manuscrita desde la Ley 164 de 2011. La ADSIB inició operaciones en abril del año 2016, emitiendo a la fecha ochocientos certificados digitales. La firma digital es una promesa de desburocratización, digitalización y simplificación de los trámites y procesos administrativos. Sin embargo, a pesar de existir por más de quince años en el mundo, esta tecnología sigue muy difícil de usar, no solamente por la complejidad de sus conceptos para un usuario común, sino también porque no existe un entorno tecnológico óptimo para su uso.

Ahora, todo pasa por la web

Desde algunos años, las tecnologías web son predominantes, en parte por el impulso de las soluciones “en la nube” y por la necesidad de los usuarios de acceder a los mismos datos y aplicaciones desde cualquier dispositivo. Una gran parte de las aplicaciones de escritorio se han vuelto obsoletas, hasta se utilizan los conceptos web en este tipo de aplicaciones (ver Electron). Al momento de desarrollar sistemas de gobierno electrónico o de comercio en línea, y en vista de incorporar la firma digital, la mejor opción tecnológica parece ser un sistema web basado en la lógica “cliente-servidor”.

En este contexto actual, con hegemonía de las tecnologías web, los actores con mayor peso en la toma de decisiones ya no son las empresas que desarrollan sistemas operativos, sino que son los fabricantes de navegadores, principalmente Google, Microsoft, Firefox y Apple. Los consensos tecnológicos para la web están registrados por el W3C en sus estándares, como ocurrió por ejemplo con el HTML5 y el CSS3. Para la parte criptográfica, la API Javascript WebCrypto esta en los últimos pasos antes de ser aprobada por el W3C y esta soportada por todos los navegadores. Entre sus funcionalidades se encuentran generar pares de claves, cifrar y descifrar, firmar y verificar los documentos firmados digitalmente.

Excelente, entonces con WebCrypto, ¿tenemos toda la facilidad para desarrollar sistemas web con firma digital? Lamentablemente, ¡no!

El token: el nudo del problema

Al tener el mismo valor que la firma manuscrita, y al proveer adicionalmente propiedades cruciales como el “no-repudio”, la firma digital debe contar con el mayor nivel posible de protección contra la falsificación. Por esta razón, la reglamentación emitida por la ATT, de manera muy sabia, impone el uso de dispositivos hardware (tokens, smartcards) para la generación, almacenamiento y uso de claves criptográficas y certificados digitales.

Aquí surge el problema: la API WebCrypto solo maneja criptografía de tipo “software”, y no permite hacer acceder a los dispositivos hardware que la normativa boliviana obliga a usar.

Los esfuerzos de normalización

Con el fin de poder usar la firma digital y cualquier otro tipo de criptografía con hardware desde el navegador, se iniciaron discusiones desde 2013 con la propuesta de creación de un grupo de trabajo en la W3C, y la organización de un taller dedicado al tema en 2014. Como resultado, se estableció que los casos de uso relacionados a la autenticación de doble factor, en base a dispositivos criptográficos hardware, eran los más populares y con mayor proyección de mercado. Como consecuencia, se creó el grupo de trabajo Web Authentication, conformado en gran parte por los miembros de la iniciativa FIDO Alliance, con proyección a una implementación en los navegadores a mitad de 2017 con la norma FIDO 2.0. Si bien esta norma responde a la solicitud de muchos usuarios, y promete la desaparición de las contraseñas y de todos los problemas que conllevan, deja totalmente de lado la firma digital.

En marzo de 2016, se propuso la creación de un grupo de trabajo dedicado a proveer a la API WebCrypto el soporte para dispositivos criptográficos hardware, pero a pesar de obtener el apoyo de veinticinco empresas, la creación del grupo fue rechazada por Microsoft, Google y Firefox entre otras, volviendo nula toda esperanza de implementación en los navegadores. Las críticas de los fabricantes fueron: demasiados casos de uso a tomar en cuenta, ninguna solución técnica proveída, problemas potenciales de seguridad y de privacidad, pero más que todo para estas empresas estadounidenses: falta de un mercado específico identificado. En efecto, al contrario de Europa o América Latina, no existe todavía una normativa favorable a la firma digital en Estados Unidos.

Finalmente, en respuesta a este rechazo, en abril de 2016 se creó la comunidad llamada Hardware Based Secure Services Community Group, que produjo la propuesta técnica Hardware Based Secure Services features, y esta probando de sumar esfuerzos y argumentos para convencer los fabricantes de navegadores de aceptar la idea, y como primer paso de aceptar la creación de un nuevo grupo de trabajo, única forma de lograr una especificación respaldada por la W3C. Para conocer esta historia con mayores detalles, referirse al artículo de Virginie Galindo, la moderadora del grupo, en su blog.

Las soluciones actuales

Cualquiera sea la decisión de los fabricante de navegadores, lo seguro es que no habrá ninguna implementación a corto plazo. Mientras tanto, existen varias soluciones técnicas, menos ventajosas, para acceder al token desde el navegador. Históricamente, la primera solución, en un entorno tecnológico saturado por Windows e Internet Explorer, fue desarrollar sistemas usando el control ActiveX CAPICOM, dejando obviamente de lado todos los otros navegadores. Cuando surgieron nuevos navegadores como Firefox y Chrome, la solución principal fue usar una Applet Java desde el navegador. Sin embargo, con la decisión de Google de dejar de soportar NPAPI y las applets Java en Chrome, esta solución también quedó obsoleta.

Actualmente, la mejor solución consiste en instalar un aplicativo en el sistema operativo, que de un lado accede al controlador del token, y del otro lado expone los métodos criptográficos con un servicio web local. De esta forma, las aplicaciones web pueden acceder al token consumiendo este servicio web local. Es la solución que adoptaron la Aduana Nacional, la AGETIC y la ADSIB para sus respectivos firmadores. La desventaja de esta solución es que requiere instalar el aplicativo en la maquina de cada usuario, lo que implica, además de la capacitación que conlleva, tener que soportar todos los sistemas operativos. En este sentido, la solución más fácil de desplegar es mediante un programa Java, con el requerimiento de exigir una maquina virtual Java instalada en la maquina del usuario.

Corto plazo en Bolivia

La ADSIB, de manera conjunta con la AGETIC, el SENAVEX, la Aduana Nacional, la ASFI y el BCB, están trabajando en un proyecto común de firmador “estatal”, para juntar esfuerzos en el desarrollo informático, mejorando la calidad y la seguridad del software, y permitiendo además a los ciudadanos instalar un solo aplicativo para acceder a todas las aplicaciones de gobierno electrónico que requieren la firma digital. Este proyecto será de software libre, y se encuentra en la fase de especificación. Su presentación a detalle sera el objeto de un futuro artículo de blog.

Mediano plazo en la W3C

El firmador estatal tiene desventajas, y tendríamos mucho interés en la adopción de un estándar W3C sobre firma digital con tokens. Para lograr obtener esta implementación, es necesario que las partes interesadas hagan conocer sus requerimientos, en particular los países que optaron por la firma digital para su administración pública y la economía digital. En este sentido, sería muy positivo que el gobierno boliviano participe de una forma o la otra en la comunidad HBSS, posiblemente de manera conjunta con los otros gobiernos de la región que legalizaron la firma digital o electrónica, con el fin de probar de convencer los fabricantes de navegadores de la importancia de estas funcionalidades.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *