La firma digital y la necesidad de un estándar Web común sobre esto

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?

Sin categoría

3 thoughts on “La firma digital y la necesidad de un estándar Web común sobre esto

  1. Yo voy a hablar desde el punto de vista del desarrollador:

    Pues que te voy a decir yo que llevo pegandome 2 meses con la implementación de todas estas porquerías? y claro como es para administración pública no puedo hacer uso exclusivo de CAPICOM, tengo que tirar de Applet y a esto súmale la autenticación con DNie en IIS 7 que es un verdadero dolor de cabeza y claro está integrar todo esto con FBA y la tramitación… la mezcla de tecnologías conviviendo juntas, he llegado a ver en Ayuntamientos: ASP.NET, ASP 3.0, JSP, CGI… no me gustaría dar mantenimiento a esa plataforma…

    En resumen, que es una puta veguenza (Perdón por la expresión pero es que estoy más quemao que el palo de un churrero) que no haya nada de información al respecto… y que lo poco que encuentras es de pago y a saber como funciona…

    Ale ya me he quedao a gusto!!!

  2. Hola, desde el punto de vista del desarrollador .NET es complicado tener una referencia clara y documentada de DNIe, facturae.

    Microsoft tiene que aportar más en la medida de lo que pueda en colaboración con Administraciones. Éstas lo hacen en Java pensando en interoperabilidad entre muchos sistemas, pero Administración-Microsoft deberían profundizar y colaborar más.

    El post de Certificados Digitales en social.msdn, es una muestra de las dificultades que plantea hacerlo en .NET.

    autenticación con DNie en IIS 7 – IIS 6, un auténtico infierno…

    MVPs que tengan contacto con MS, insistan en esta vía …

    http://social.msdn.microsoft.com/Forums/es-ES/dotnetes/thread/ec47e21c-b296-4d53-bfad-b954ca2ed967

    Microsoft.Xades.dll not found
    http://social.msdn.microsoft.com/Forums/en-US/xmlandnetfx/thread/511f9be4-73f9-4955-9be4-a955668ea8be

    Salu2&grz

  3. Hola Preguntón:

    Lo de estos threads de Microsoft Social no tienen que ver con el tema que yo comento, que se restringe exclusivamente al lado cliente, y no al servidor como en las preguntas de esos hilos.

    De hecho de ese tema en concreto puedo hablar con mucho conocimiento de causa porque en 2005 llevé a cabo un proyecto de integración con firma digital avanzada Xades en .NET, en el que las otras partes estaban en Java y fue un infierno. Lo de Xades, es cierto que Microsoft tuvo una implementación interna del protocolo realizada por un ingeniero de Microsoft en Bélgica, pero nunca se hizo pública (aunque si se la pides amablemente te la facilita, doy fe). De todos modos el infierno vino más por entenderse con los servicios en Java (por cómo estaban implementados y documentados) que por el tema de la criptografía. Además en .NET 2.0 o superior la parte criptográfica está bastante mejorada repsecto a la versión 1.x de .NET y existen también bibliotecas Open Source por ahí bastante potentes escritas en C# y que te permiten hacer casi de todo.

    En resumen: el tema de mi post se refiere a la necesidad de un estándar en el lado cliente para acceder a los almacenes de certificados digitales y mecanismos de firma del sistema operativo. Y eso n creo que sea cosa de Microsoft sino de llegar a un consenso entre los principales fabricantes de navegadores (cosa imposible) o auspiciado por el W3C (lo que sería normal) para evitar problemas en el futuro.

    Saludos y gracias por participar.

    JM

Deja un comentario

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