[Perl] off topic: firma electronica

Tei 421621 en ingta.unizar.es
Vie Sep 30 04:24:58 CDT 2005


On jue, 2005-09-29 at 18:58 +0000, Joel Muñoz wrote:
> Disculpen que meta un tema fuera de este foro, pero he estado tratando de 
> investigar protocolo, configuracion, lenguaje de programacion, etc. para la 
> famosisisima Firma Electronica que se anexa a las facturas electronicas.
> 
> Alguno de uds. pueden ayudarme con estos detalles tecnicos?

yo no he oido nada. 

pero firmas electronicas hay muchas, desde el antiquisimo CRC al MD5
SHA-1 y otros. La idea es calcular un numero a partir de un documento, y
que este numero tengo el valor mas alto de entropia posible, de modo que
un pequeño cambio en el documento produzca un gran cambio en la firma
(si la recalculas).  

con este metodo podrias firmas una factura electronica, por ejemplo en
formato xml oasis y utilizando por ejemplo CRC (sumar todos los bytes en
grupos de m paquetes), si alguien modifica el documento la firma ya no
este numero, de modo que se detecta que ha sido manipulado.

hoy en dia se estan dando ataques con exito a varios de estos
algoritmos, en particular MD5, y hay demostracioens de que se puede
fabricar dos documentos completamente distintos (a proposito) pero que
sin embargo tienen la misma firma. 

esto abriria la puerta a que te presentaran una factura, la "rompieran",
y luego te presentaran otra con un total mucho mas grande que sin
embargo resultara en la misma firma. Tratandote de engañar.

si hay alguna iniciativa a nivel nacional en mexico de utilizar la firma
digital para facturas, me imagino que habran elegido un algoritmo muy
fuerte, que hoy en dia no se pueda romper, o que para romperlo haga
falta mucha potencia de calculo.. que hoy en dia solo esta en manos de
unos pocos estudiantes y aficionados a la informatica

en principio cualquier lenguaje de programacion es apto para esta clase
de tareas, sin embargo imagino recomendable utilizar uno que haga un
tratamiento muy serio del formato de las cadenas (utf-8, latin, etc..) o
bien tenga buenas librerias para cargar ficheros XML (porque imagino que
este sera el formato de los ficheros)

hoy en dia es muy importante el concepto de "Validacion", que significa
que las cosas no solo estan bien echas porque las has echo con un metodo
normalizado, sino que puedes probar es "bien" mediante unas pruebas
definidas y quizas automaticas. Si no puedes validar, no puedes fiarte.
La firma electronica es una mas de las tecnicas de validacion que
tenemos en nuestra mano los informaticos. Desgraciadamente hay muchisimo
trabajo por hacer para poder aplicar estas tecnologias al dia a dia y
que se beneficien los usuarios, dado que muchas veces los usuarios son
adepctos a tecnologias que no permiten o no han sido diseñadas para
tratamiento automatico, como el venerable formato .DOC de microsoft, del
que no existe documentacion publica ni esta sujeta a ningun organismo de
estandarizacion. En muchas ocasiones veo, con tristeza, que muchos
trabajos POR ORDENADOR se realizan a mano utilizando documentos de word.
Y de esta forma neganto todas las ventajas que tendria un ordenador
gracias a su capacidad de tratamiento automatico.  Para mi es como ver
gente arrastrando su coche con correas o llevandolo en la espalda, en
lugar de llevarlo al volante. Pero, claro, microsoft es muy fuerte y ha
gastado mucho dinero en retener a la gente en su formato, asi que antes
de empezar a trabajar hay que compensar todo ese esfuerzo de microsoft.
Pero ya se estan viendo iniciativas por estandarizar los documentos, y
probablemente eso que comentas de la firma electronica en facturas es
uno de tantos esfuerzos en esta (la buena) direccion. Y probablemente
(voy a ser un poco pesimista) fracase dado que Microsoft invertira todo
su poder, influencia y malas artes, en que fracase.



Más información sobre la lista de distribución Perl