<body>

Sitios web relacionados: PingBlog | Fotos

domingo, febrero 19, 2006

Echando código: Desarrollando un sistema de votación Open Source

Jan 2006 018
A veces es bueno ver las señales, si las ignoramos pueden traer cosas desagradables...


Leyendo el Blog de Reste@dos me topé con un articulo titulado "se vende un diván". En el se comentá que un software Open Source podría restaurar la confianza en el proceso electoral y que si este es debidamente auditado, podría hacer más limpio el proceso electoral.

¿Es eso verdad? Bueno, Resteado propone que un grupo de Venezolanos escriba el software el cual eventualmente será incluido en esta (o en futuras elecciones). Yo digo lo siguiente:
  • Contrariamente a lo que se expresa en Resteados blog, el movimiento Open Source Venezolano no está integrado. Si no me cree, lean los articulos que existen en la red sobre el despelote existente relacionado con el decreto 3390. Por otro lado, existe la inquietud e interés en trabajar en el tema.
  • El software y Hardware utilizado para esta plataforma deben ser lo suficientemente flexible como para soportar cambios rápidos. La escalabilidad, tolerancia a fallos y seguridad serán factores claves por lo que herramientas poco maduras serán eliminadas de manera inmediata (por ejemplo, ¿programar el sistema en Groovy y Quizas en Rails?). El lenguaje seleccionado debe contar con una audiencia numerosa que le permita al grupo que desarrolla la aplicación el conseguir una piscina grande de mano de obra y talento para desarrollar la aplicación (por ejemplo # de programadores de C++ Vs. # de programadores en LISP. Si, la comparación es odiosa...).
  • Alguien tiene que pagar por esto: Sea el Gobierno, sea la oposición, esto debe ser pagado por alguien. El hacer gratuito el código permitirá que sea auditado de manera más fácil y que este sea estudiado por una cantidad mayor de observadores. Pero alguien debe pagarle a los programadores para que lo hagan. El software no se escribe sólo, quizas la cooperación de varios grupos permitira esto. ¿En cuanto tiempo se puede reunir el capital necesario para pagar por este sistema en estas elecciones? (el dinero no es problema, Smartmatic cobró millones por sus sistemas. Pero detrás de esos millones había una compañia respaldando un producto y respondiendo a acusaciones).
  • Tiempo de desarollo y certificación: ¿En cuanto tiempo se puede tener una versión beta¿. ¿En cuanto tiempo se puede certificar (para que todos los grupos involucrados estén contentos)? Este es un sistema complejo que requerirá tiempo y muchas pruebas.
El escribir este tipo de sistemas tiene muchos inconvenientes. En los Estados Unidos hay desconfianza en diversos sectores y la propuesta de un sistema abierto ya ha sido mostrada con anterioridad. Por ejemplo en California (USA) ya hay grupos (entre ellos RedHat) trabajando en el problema.

Yo en particular creo que a estas alturas en Venezuela lo mejor es simplemente auditar las máquinas y código de SmartMatic. Además de las pruebas de caja cerrada que se hicieron, quizas una auditiría de el código permitiría encontrar cosas poco seguras o que no concuerden (un grupo muy selecto de personas podría hacer esto ya que el código es cerrado y me imagino que sólo después de firmar un acuerdo de confidencialidad).

Algo que podría inspirar más confianza es saber como el Gobierno nacional está probando las máquinas (no veo porque esta información no puede ser de dominio público).
Esto se puede mejorar a corto plazo, no debería ser tan costoso y si se hace de manera adecuada debería generar más confianza.

Aqui el tiempo es el factor crítico...

En pocas palabras, un proyecto de código gratuito (hardware y software) es algo que llevará varios años, una cantidad considerable de dinero y sobre todo determinación. El camino a corto y mediano plazo auditar lo mejor posible el código propietario, además de contar con alternativas (gratuitas automatizadas o manuales) para auditar los resultados, una especie de "sanity check" de las máquinas, las cuales serian tratadas como una caja negra.

Yo no soy un experto en el tema, y de hecho esto requerirá la participación de diversos grupos (tecnología, legislación, etc.). Mientras tanto los dejo con otro articulo en el cual se critican y poponen cosas interesantes.

Buscar en Technorati: ,

2 Comentarios:

Blogger Andres dijo que...

Auditar el código de Smarmatic no asegura que ese sea el código que se utilice al momento de la votación.

Hay varios puntos grises en el proceso.

Luego hago un comentario más específico.

Saludos

10:46 AM (enlace permanente)  
Blogger KodeGeek dijo que...

Hola Andres,

Yo creo que si se puede. Si tu haces un checksum de el código compilado deberia darte lo mismo que el código compilado dentro de la máquina, ¿no es así?

Tambien cuando hablo de la auditoria me refiero a el hardware (que tanto trabajo hace el hardware en la encriptación por ejemplo y como se almacenan los datos).

Pero de nuevo, el punto más importante es quizas como el Gobierno prueba las venditas máquinas. Eso debería ser de dominio público, pues es una prueba de conformidad.

5:29 AM (enlace permanente)  

Publicar un comentario en la entrada

<< Regresar