En las últimas semanas he tenido que presentar telemáticamente diversos documentos en otras tantas Administraciones del Estado, tanto locales como nacionales. En todas era necesario, como no, firmar digitalmente ciertos documentos o el propio envío de información en sí. En cada una de ellas el método para conseguirlo era diferente: control ActiveX, programa Java, una combinación de ambos… Lo único que tenían en común es que es un absoluto dolor conseguir llevar a buen término la operación :-(
Y no digamos también si intentamos usar el DNIe (o “DNI digital”) en un banco o para hacer algún trámite on-line: otro terrible dolor. Es más: yo no he conseguido aún usar mi DNIe con ninguno de los bancos con los que trabajo.
En todos los casos tienes problemas con el software, debes lanzar el navegador como administrador, instalar componentes, y conocer todo tipo de terminología “esotérica” para entender lo que haces. Y si me cuesta a mí que soy un usuario avanzado y entiendo bien el funcionamiento subyacente de todo eso y la terminología, qué no le ocurrirá a un usuario “normal”, con conocimientos básicos de informática. Hoy por hoy veo imposible que mi padre haga un trámite on-line él solo con la administración.
Todo esto me ha hecho pensar en la necesidad de disponer algún tipo de estándar de programación y metodología para todos los navegadores que permita simplificar el uso de la criptografía de clave pública basada en certificados. De este modo el desarrollo y, sobre todo, el uso de estas funcionalidades por parte de los usuarios sería muy sencillo y exento de problemas.
Dado que todos los sistemas operativos del mercado soportan el uso de certificados digitales y que todos los navegadores son capaces de sacarle partido ¿por qué no disponemos ya de algo así?
La primera cosa que se me ocurrió es “la gran esperanza blanca” del desarrollo Web: el futuro HTML5. La verdad es que no me sonaba haber leído en los borradores del estándar nada acerca de criptografía o seguridad de clave pública, pero por si acaso lo verifiqué. En el actual draft de HTML5 no aparece nada al respecto.
Una verdadera lástima. HTML5 va a suponer una revolución si conseguimos que todos los navegadores lo soporten bien (y parece que hay voluntad de eso), e incluye algunas APIs muy interesantes demandadas por todos los programadores. Pero me parece una verdadera pena que se pierda una oportunidad como está de implicar a todos los fabricantes de navegadores en el soporte de la criptografía de clave pública con una API común promovida por la W3C. Esto por si solo impulsaría de verdad la sociedad de la información, más que los millones de euros gastados en otras cosas :-(
El caso es que he intentado enterarme del motivo por el que HTML5 no contempla estas capacidades, y si realmente se “les ha olvidado” o no. Lo único que he encontrado es este documento de Anders Rundgren, un ex-ingeniero de RSA, en el que cita y muestra correo intercambiado con la gente del equipo de HTML5 que dicen que lo descartan intencionadamente porque HTML ya es muy grande y no hay mucha demanda para este asunto en particular.
¿Qué no hay mucha demanda? ¡Alucino!. Si no hay demanda de eso que baje Dios y lo vea.
En fin, insisto en creo que se está perdiendo una oportunidad de oro de incorporar un estándar para la implementación de firmas digitales en HTML5, en un momento en el que parece haber consenso en el sector en torno a esta nueva especificación y que ello perjudicará mucho al avance de la sociedad de la información en todo el mundo :-(
Y tú ¿qué opinas?